|
|
|
@@ -4,12 +4,23 @@ import java.util.ArrayList;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.Semaphore;
|
|
|
|
|
|
|
|
|
|
import javax.security.auth.login.LoginException;
|
|
|
|
|
|
|
|
|
|
import commands.*;
|
|
|
|
|
import core.lua.PluginManager;
|
|
|
|
|
import dataStructures.*;
|
|
|
|
|
import main.Main;
|
|
|
|
|
import net.dv8tion.jda.core.AccountType;
|
|
|
|
|
import net.dv8tion.jda.core.JDA;
|
|
|
|
|
import net.dv8tion.jda.core.JDABuilder;
|
|
|
|
|
import net.dv8tion.jda.core.entities.Emote;
|
|
|
|
|
import net.dv8tion.jda.core.entities.Game;
|
|
|
|
|
import net.dv8tion.jda.core.entities.Guild;
|
|
|
|
|
import net.dv8tion.jda.core.entities.Member;
|
|
|
|
|
import net.dv8tion.jda.core.entities.User;
|
|
|
|
|
import net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent;
|
|
|
|
|
import offline.Ref;
|
|
|
|
|
import utils.AdminControl;
|
|
|
|
|
import utils.GlobalLog;
|
|
|
|
|
import utils.LogFilter;
|
|
|
|
@@ -53,6 +64,7 @@ public class ObjectBuilderFactory
|
|
|
|
|
// TODO: Investigate using 'synchronized' instead potentially
|
|
|
|
|
private static boolean hasInitialized;
|
|
|
|
|
private static Semaphore initMutex = new Semaphore(1);
|
|
|
|
|
private static JDA kitty;
|
|
|
|
|
|
|
|
|
|
// This is it, this is how the lazy init starts!
|
|
|
|
|
private static void LazyInit()
|
|
|
|
@@ -265,6 +277,7 @@ public class ObjectBuilderFactory
|
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: Clean up
|
|
|
|
|
public static KittyUser extractUserByJDAUser(String guildID, String name, String userID, String avatarID, String discordID)
|
|
|
|
|
{
|
|
|
|
|
LazyInit();
|
|
|
|
@@ -295,7 +308,9 @@ public class ObjectBuilderFactory
|
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static KittyUser getCachedUser(String guildID, String userID)
|
|
|
|
|
// There is some redundant lookup occurring. If the user isn't cached yet, then we construct them and cache them.
|
|
|
|
|
// The assumption is made that the user does, in fact, exist.
|
|
|
|
|
public static KittyUser getKittyUser(String guildID, String userID)
|
|
|
|
|
{
|
|
|
|
|
String uid = guildID + userID;
|
|
|
|
|
KittyUser user = null;
|
|
|
|
@@ -304,6 +319,16 @@ public class ObjectBuilderFactory
|
|
|
|
|
user = userCache.get(uid);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(user == null)
|
|
|
|
|
{
|
|
|
|
|
Guild jdaGuild = kitty.getGuildById(guildID);
|
|
|
|
|
Member jdaMember = jdaGuild.getMemberById(userID);
|
|
|
|
|
User jdaUser = jdaMember.getUser();
|
|
|
|
|
|
|
|
|
|
user = ExtractUserByJDAUser(guildID, jdaMember.getNickname(), jdaUser.getId(), jdaUser.getAvatarUrl(), jdaUser.getId());
|
|
|
|
|
updateUser(user, jdaMember);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return user;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -326,6 +351,17 @@ public class ObjectBuilderFactory
|
|
|
|
|
// Construction Methods //
|
|
|
|
|
//////////////////////////
|
|
|
|
|
|
|
|
|
|
public static KittyCore ConstructKittyCore() throws LoginException, InterruptedException
|
|
|
|
|
{
|
|
|
|
|
LazyInit();
|
|
|
|
|
|
|
|
|
|
kitty = new JDABuilder(AccountType.BOT).setToken(Ref.TestToken).buildBlocking();
|
|
|
|
|
kitty.getPresence().setGame(Game.playing("with digital yarn"));
|
|
|
|
|
kitty.addEventListener(new Main());
|
|
|
|
|
|
|
|
|
|
return new KittyCore(kitty);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Default construction of the command manager. In order to remotely resolve command enabling
|
|
|
|
|
// and disabling, what we do is construct the commands with a localized pair that is checked against
|
|
|
|
|
// the CommandEnabler object passed in. In theory, we could have multiple CommandManagers, tho we can
|
|
|
|
@@ -361,39 +397,46 @@ public class ObjectBuilderFactory
|
|
|
|
|
manager.Register(LocCommands.stub("raffleend"), new CommandRaffleEnd(KittyRole.Mod, KittyRating.Safe));
|
|
|
|
|
|
|
|
|
|
// General
|
|
|
|
|
manager.Register(LocCommands.stub("fetch"), new CommandFetch(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("guildroleadd"), new CommandGuildRoleAdd(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("guildroleremove"), new CommandGuildRoleRemove(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("teey"), new CommandTeey(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("perish, thenperish"), new CommandPerish(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("yeet"), new CommandYeet(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("ping"), new CommandPing(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("boop"), new CommandBoop(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("roll"), new CommandRoll(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("choose"), new CommandChoose(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("help"), new CommandHelp(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("info, about"), new CommandInfo(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("vote"), new CommandPollVote(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("results"), new CommandPollResults(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("showpoll"), new CommandPollShow(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("wolfram"), new CommandWolfram(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("c++, g++, cplus, cpp"), new CommandColiru(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("java, jdoodle"), new CommandJDoodle(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("beans"), new CommandBeansShow(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("role"), new CommandRole(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("bet"), new CommandBetBeans(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("map"), new CommandMap(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("rpstart"), new CommandRPStart(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("rpend"), new CommandRPEnd(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("tony, stark, dontfeelgood, dontfeelsogood"), new CommandStark(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("blur"), new CommandBlurry(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("eightball, 8ball"), new CommandEightBall(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("catch"), new CommandCatch(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("guildrolelist"), new CommandGuildRoleList(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.stub("bethistory"), new CommandBetHistory(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("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("fetch"), new CommandFetch(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("guildroleadd"), new CommandGuildRoleAdd(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("guildroleremove"), new CommandGuildRoleRemove(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("teey"), new CommandTeey(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("perish, thenperish"), new CommandPerish(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("yeet"), new CommandYeet(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("ping"), new CommandPing(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("boop"), new CommandBoop(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("roll"), new CommandRoll(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("choose"), new CommandChoose(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("help"), new CommandHelp(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("info, about"), new CommandInfo(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("vote"), new CommandPollVote(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("results"), new CommandPollResults(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("showpoll"), new CommandPollShow(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("wolfram"), new CommandWolfram(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("c++, g++, cplus, cpp"), new CommandColiru(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("java, jdoodle"), new CommandJDoodle(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("beans"), new CommandBeansShow(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("role"), new CommandRole(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("bet"), new CommandBetBeans(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("map"), new CommandMap(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("rpstart"), new CommandRPStart(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("rpend"), new CommandRPEnd(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("tony, stark, dontfeelgood, dontfeelsogood"), new CommandStark(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("blur"), new CommandBlurry(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("eightball, 8ball"), new CommandEightBall(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("catch"), new CommandCatch(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("guildrolelist"), new CommandGuildRoleList(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("bethistory"), new CommandBetHistory(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("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("charactercreate"), new CommandCharacterCreate(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("searchcharacter"), new CommandCharacterSearch(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("charactereditbio"), new CommandCharacterEditBio(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("charactereditname"), new CommandCharacterEditName(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("charactereditURL"), new CommandCharacterEditURL(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("leaderboard"), new CommandLeaderboard(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
manager.Register(LocCommands.Stub("color, colour"), new CommandColor(KittyRole.General, KittyRating.Safe));
|
|
|
|
|
|
|
|
|
|
return manager;
|
|
|
|
|
}
|
|
|
|
@@ -473,4 +516,4 @@ public class ObjectBuilderFactory
|
|
|
|
|
return userCache.size();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|