Merge remote-tracking branch 'origin/master'

This commit is contained in:
Matthew Cech
2019-06-02 22:46:54 -07:00
8 changed files with 212 additions and 11 deletions
+1
View File
@@ -8,6 +8,7 @@ boop=1
buildhelp=1 buildhelp=1
c++, g++, cplus, cpp=1 c++, g++, cplus, cpp=1
catch=1 catch=1
charactercreate=1
choose=1 choose=1
crouton=1 crouton=1
dbflush=1 dbflush=1
+1
View File
@@ -47,6 +47,7 @@ info, about=
showpoll= showpoll=
rpg= rpg=
tweet= tweet=
charactercreate=
help= help=
fetch= fetch=
crouton= crouton=
+6
View File
@@ -198,6 +198,12 @@ YeetInfo=Yeet yourself or yeet a friend with @!
[CommandCrouton] [CommandCrouton]
CroutonInfo=Crouton CroutonInfo=Crouton
[CommandCharacterCreate]
CharacterCreateDuplicate=
CharacterCreateInfo=
CharacterCreateSuccess=
CharacterCreateNullInfo=
[CommandTeey] [CommandTeey]
TeeyInfo=Teey yourself back into existance, or teey a friend with @! TeeyInfo=Teey yourself back into existance, or teey a friend with @!
+38
View File
@@ -0,0 +1,38 @@
package commands;
import core.CharacterManager;
import core.Command;
import core.LocStrings;
import dataStructures.KittyChannel;
import dataStructures.KittyGuild;
import dataStructures.KittyRating;
import dataStructures.KittyRole;
import dataStructures.KittyUser;
import dataStructures.Response;
import dataStructures.UserInput;
public class CommandCharacterCreate extends Command
{
public CommandCharacterCreate(KittyRole level, KittyRating rating) { super(level, rating); }
@Override
public String HelpText() { return LocStrings.Stub("CharacterCreateInfo"); }
@Override
public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res)
{
String [] info = input.args.split(",");
if(info.length < 3)
{
res.Call(LocStrings.Stub("CharacterCreateNullInfo"));
return;
}
if(CharacterManager.instance.addCharacter(user, info[0], info[1], info[2]))
{
res.Call(LocStrings.Stub("CharacterCreateSuccess"));
return;
}
res.Call(LocStrings.Stub("CharacterCreateDuplicate"));
}
}
+79
View File
@@ -0,0 +1,79 @@
package core;
import java.util.Vector;
import dataStructures.KittyCharacter;
import dataStructures.KittyUser;
import utils.GlobalLog;
import utils.LogFilter;
public class CharacterManager
{
public static CharacterManager instance;
private Vector <KittyCharacter> characters = new Vector<KittyCharacter>();
public CharacterManager()
{
if(instance == null)
{
instance = this;
}
else
{
GlobalLog.Error(LogFilter.Core, "Attempted to create a second CharacterManager singleton!");
return;
}
}
public boolean addCharacter(KittyUser user, String name, String bio, String refImage)
{
for(KittyCharacter character:characters)
{
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
{
return false;
}
}
characters.add(new KittyCharacter(user, name, bio, refImage));
return true;
}
public boolean removeCharacter(KittyUser user, String name)
{
for(KittyCharacter character:characters)
{
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
{
characters.remove(character);
return true;
}
}
return false;
}
public boolean editRefImage(KittyUser user, String name, String refImage)
{
for(KittyCharacter character:characters)
{
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
{
return character.editRefImage(user, refImage);
}
}
return false;
}
public boolean editBio(KittyUser user, String name, String bio)
{
for(KittyCharacter character:characters)
{
if(character.getName().equals(name) && character.getOwner().discordID.equals(user.discordID))
{
return character.editBio(user, bio);
}
}
return false;
}
}
+1
View File
@@ -423,6 +423,7 @@ public class ObjectBuilderFactory
manager.Register(LocCommands.Stub("crouton"), new CommandCrouton(KittyRole.General, KittyRating.Safe)); manager.Register(LocCommands.Stub("crouton"), new CommandCrouton(KittyRole.General, KittyRating.Safe));
manager.Register(LocCommands.Stub("benchmark, bench"), new CommandBenchmark(KittyRole.General, KittyRating.Safe)); manager.Register(LocCommands.Stub("benchmark, bench"), new CommandBenchmark(KittyRole.General, KittyRating.Safe));
manager.Register(LocCommands.Stub("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe)); manager.Register(LocCommands.Stub("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe));
manager.Register(LocCommands.Stub("charactercreate"), new CommandCharacterCreate(KittyRole.General, KittyRating.Safe));
manager.Register(LocCommands.Stub("leaderboard"), new CommandLeaderboard(KittyRole.General, KittyRating.Safe)); manager.Register(LocCommands.Stub("leaderboard"), new CommandLeaderboard(KittyRole.General, KittyRating.Safe));
return manager; return manager;
+68 -1
View File
@@ -1,5 +1,72 @@
package dataStructures; package dataStructures;
public class KittyCharacter { public class KittyCharacter
{
private KittyUser owner;
private String name;
private String bio;
private String refImage;
public KittyCharacter(KittyUser owner, String name, String bio, String refImage)
{
this.owner = owner;
this.name = name;
this.bio = bio;
this.refImage = refImage;
}
private boolean allowedToEdit(KittyUser editor)
{
if(editor.identifier.equals(owner.identifier))
{
return true;
}
return false;
}
public boolean editBio(KittyUser editor, String bio)
{
if(allowedToEdit(editor))
{
this.bio = bio;
return true;
}
return false;
}
public boolean editRefImage(KittyUser editor, String refImage)
{
if(allowedToEdit(editor))
{
this.refImage = refImage;
return true;
}
return false;
}
public KittyUser getOwner()
{
return owner;
}
public String getName()
{
return name;
}
public String getBio()
{
return bio;
}
public String getRefImage()
{
return refImage;
}
public String toString()
{
return name + " " + bio + " " + refImage;
}
} }
+17 -9
View File
@@ -1,25 +1,31 @@
package main; package main;
import java.util.List;
import javax.security.auth.login.LoginException; import javax.security.auth.login.LoginException;
import core.*;
import core.benchmark.BenchmarkManager; import core.CharacterManager;
import core.CommandEnabler;
import core.CommandManager;
import core.DatabaseManager;
import core.ObjectBuilderFactory;
import core.RPManager;
import core.Stats;
import core.lua.PluginManager; import core.lua.PluginManager;
import core.lua.PluginUser;
import dataStructures.KittyChannel; import dataStructures.KittyChannel;
import dataStructures.KittyCore; import dataStructures.KittyCore;
import dataStructures.KittyGuild; import dataStructures.KittyGuild;
import dataStructures.KittyRole;
import dataStructures.KittyUser; import dataStructures.KittyUser;
import dataStructures.Response; import dataStructures.Response;
import dataStructures.UserInput; import dataStructures.UserInput;
import net.dv8tion.jda.core.AccountType; import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.entities.*; import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.events.message.guild.*; import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Game;
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.core.hooks.ListenerAdapter; import net.dv8tion.jda.core.hooks.ListenerAdapter;
import offline.*; import offline.Ref;
import utils.GlobalLog; import utils.GlobalLog;
import net.dv8tion.jda.core.*;
import java.util.*;
// http://www.slf4j.org/ - this JDA logging tool has been disabled by specifying NOP implementation. // http://www.slf4j.org/ - this JDA logging tool has been disabled by specifying NOP implementation.
// This is the application entry point, and bot startup location! // This is the application entry point, and bot startup location!
@@ -35,6 +41,7 @@ public class Main extends ListenerAdapter
private static Stats stats; private static Stats stats;
private static RPManager rpManager; private static RPManager rpManager;
private static PluginManager pluginManager; private static PluginManager pluginManager;
private static CharacterManager charManager;
// Initialization and setup // Initialization and setup
public static void main(String[] args) throws InterruptedException, LoginException, Exception public static void main(String[] args) throws InterruptedException, LoginException, Exception
@@ -45,6 +52,7 @@ public class Main extends ListenerAdapter
commandEnabler = ObjectBuilderFactory.ConstructCommandEnabler(); commandEnabler = ObjectBuilderFactory.ConstructCommandEnabler();
commandManager = ObjectBuilderFactory.ConstructCommandManager(commandEnabler); commandManager = ObjectBuilderFactory.ConstructCommandManager(commandEnabler);
stats = ObjectBuilderFactory.ConstructStats(commandManager); stats = ObjectBuilderFactory.ConstructStats(commandManager);
charManager = new CharacterManager();
rpManager = ObjectBuilderFactory.ConstructRPManager(); rpManager = ObjectBuilderFactory.ConstructRPManager();
pluginManager = ObjectBuilderFactory.ConstructPluginManager(); pluginManager = ObjectBuilderFactory.ConstructPluginManager();