diff --git a/assets/config.csv b/assets/config.csv index 1a3409e..231f522 100644 --- a/assets/config.csv +++ b/assets/config.csv @@ -8,6 +8,7 @@ "Localized Commands","buildHelp","" "Localized Commands","c++, g++, cplus, cpp","" "Localized Commands","catch","" +"Localized Commands","character","" "Localized Commands","charactercreate","" "Localized Commands","charactereditbio","" "Localized Commands","charactereditname","" @@ -39,6 +40,7 @@ "Localized Commands","perish, thenperish","" "Localized Commands","ping","" "Localized Commands","poll","" +"Localized Commands","raffle","" "Localized Commands","raffleend","" "Localized Commands","rafflejoin","" "Localized Commands","rafflespin","" @@ -263,6 +265,7 @@ "Command Enabler","buildhelp","1" "Command Enabler","c++, g++, cplus, cpp","1" "Command Enabler","catch","1" +"Command Enabler","character","1" "Command Enabler","charactercreate","1" "Command Enabler","charactereditbio","1" "Command Enabler","charactereditname","1" @@ -294,6 +297,7 @@ "Command Enabler","perish, thenperish","1" "Command Enabler","ping","1" "Command Enabler","poll","1" +"Command Enabler","raffle","1" "Command Enabler","raffleend","1" "Command Enabler","rafflejoin","1" "Command Enabler","rafflespin","1" diff --git a/src/commands/characters/CommandCharacterMain.java b/src/commands/characters/CommandCharacterMain.java index 5301bbb..64e5621 100644 --- a/src/commands/characters/CommandCharacterMain.java +++ b/src/commands/characters/CommandCharacterMain.java @@ -22,9 +22,6 @@ public class CommandCharacterMain extends Command @Override public String getHelpText() { return LocStrings.stub("CharacterInfo"); } - - - @Override public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) { diff --git a/src/commands/general/CommandRaffleEnd.java b/src/commands/general/CommandRaffleEnd.java deleted file mode 100644 index bc89124..0000000 --- a/src/commands/general/CommandRaffleEnd.java +++ /dev/null @@ -1,32 +0,0 @@ -package commands.general; - -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 CommandRaffleEnd extends Command -{ - public CommandRaffleEnd(KittyRole level, KittyRating rating) { super(level, rating); } - - @Override - public String getHelpText() { return LocStrings.stub("RaffleEndInfo"); } - - @Override - public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) - { - if(guild.endRaffle()) - { - res.send(LocStrings.stub("RaffleEndSuccess")); - } - else - { - res.send(LocStrings.stub("RaffleEndFailure")); - } - } -} \ No newline at end of file diff --git a/src/commands/general/CommandRaffleJoin.java b/src/commands/general/CommandRaffleJoin.java deleted file mode 100644 index 3003a8e..0000000 --- a/src/commands/general/CommandRaffleJoin.java +++ /dev/null @@ -1,32 +0,0 @@ -package commands.general; - -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 CommandRaffleJoin extends Command -{ - public CommandRaffleJoin(KittyRole level, KittyRating rating) { super(level, rating); } - - @Override - public String getHelpText() { return LocStrings.stub("RaffleJoinInfo"); } - - @Override - public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) - { - if(guild.joinRaffle(user)) - { - res.send(LocStrings.stub("RaffleJoinSuccess")); - } - else - { - res.send(LocStrings.stub("RaffleJoinFailure")); - } - } -} diff --git a/src/commands/general/CommandRaffleSpin.java b/src/commands/general/CommandRaffleSpin.java deleted file mode 100644 index ff6111d..0000000 --- a/src/commands/general/CommandRaffleSpin.java +++ /dev/null @@ -1,32 +0,0 @@ -package commands.general; - -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 CommandRaffleSpin extends Command -{ - public CommandRaffleSpin(KittyRole level, KittyRating rating) { super(level, rating); } - - @Override - public String getHelpText() { return LocStrings.stub("RaffleSpinInfo"); } - - @Override - public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) - { - try - { - res.send(String.format(LocStrings.stub("RaffleSpinSuccess"), guild.chooseRaffleWinner().name)); - } - catch(Exception e) - { - res.send(LocStrings.stub("RaffleSpinFailure")); - } - } -} \ No newline at end of file diff --git a/src/commands/general/CommandRaffleStart.java b/src/commands/general/CommandRaffleStart.java deleted file mode 100644 index 0c72142..0000000 --- a/src/commands/general/CommandRaffleStart.java +++ /dev/null @@ -1,43 +0,0 @@ -package commands.general; - -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 CommandRaffleStart extends Command -{ - public CommandRaffleStart(KittyRole level, KittyRating rating) { super(level, rating); } - - @Override - public String getHelpText() { return LocStrings.stub("RaffleStartInfo"); } - - public int beanCost; - - @Override - public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) - { - try - { - beanCost = Integer.parseInt(input.args); - } - catch(Exception e) - { - beanCost = 100; - } - - if(guild.startRaffle(beanCost)) - { - res.send(String.format(LocStrings.stub("RaffleStartSuccess"), beanCost)); - } - else - { - res.send(LocStrings.stub("RaffleStartFailure")); - } - } -} diff --git a/src/commands/poll/CommandPollMain.java b/src/commands/poll/CommandPollMain.java new file mode 100644 index 0000000..dd63503 --- /dev/null +++ b/src/commands/poll/CommandPollMain.java @@ -0,0 +1,26 @@ +package commands.poll; + +import core.Command; +import core.SubCommandFramework; +import dataStructures.KittyChannel; +import dataStructures.KittyGuild; +import dataStructures.KittyRating; +import dataStructures.KittyRole; +import dataStructures.KittyUser; +import dataStructures.Response; +import dataStructures.UserInput; + +public class CommandPollMain extends Command +{ + SubCommandFramework framework = new SubCommandFramework(); + public CommandPollMain(KittyRole level, KittyRating rating) + { + super(level, rating); + } + + @Override + public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) + { + framework.run(guild, channel, user, input.args).Call(res); + } +} diff --git a/src/commands/general/CommandPollManage.java b/src/commands/poll/CommandPollManage.java similarity index 93% rename from src/commands/general/CommandPollManage.java rename to src/commands/poll/CommandPollManage.java index a1ecd32..e8a0624 100644 --- a/src/commands/general/CommandPollManage.java +++ b/src/commands/poll/CommandPollManage.java @@ -1,4 +1,4 @@ -package commands.general; +package commands.poll; import core.*; import dataStructures.KittyChannel; @@ -37,4 +37,4 @@ public class CommandPollManage extends Command break; } } -} +} \ No newline at end of file diff --git a/src/commands/general/CommandPollResults.java b/src/commands/poll/CommandPollResults.java similarity index 93% rename from src/commands/general/CommandPollResults.java rename to src/commands/poll/CommandPollResults.java index 016439b..f34145e 100644 --- a/src/commands/general/CommandPollResults.java +++ b/src/commands/poll/CommandPollResults.java @@ -1,4 +1,4 @@ -package commands.general; +package commands.poll; import java.util.ArrayList; diff --git a/src/commands/general/CommandPollShow.java b/src/commands/poll/CommandPollShow.java similarity index 92% rename from src/commands/general/CommandPollShow.java rename to src/commands/poll/CommandPollShow.java index bb2d277..27a870e 100644 --- a/src/commands/general/CommandPollShow.java +++ b/src/commands/poll/CommandPollShow.java @@ -1,4 +1,4 @@ -package commands.general; +package commands.poll; import core.*; import dataStructures.*; diff --git a/src/commands/general/CommandPollVote.java b/src/commands/poll/CommandPollVote.java similarity index 93% rename from src/commands/general/CommandPollVote.java rename to src/commands/poll/CommandPollVote.java index af37b14..5348523 100644 --- a/src/commands/general/CommandPollVote.java +++ b/src/commands/poll/CommandPollVote.java @@ -1,4 +1,4 @@ -package commands.general; +package commands.poll; import core.*; import dataStructures.*; diff --git a/src/commands/raffle/CommandRaffleEnd.java b/src/commands/raffle/CommandRaffleEnd.java new file mode 100644 index 0000000..12a9eab --- /dev/null +++ b/src/commands/raffle/CommandRaffleEnd.java @@ -0,0 +1,28 @@ +package commands.raffle; + +import core.LocStrings; +import core.SubCommand; +import core.SubCommandFormattable; +import dataStructures.KittyChannel; +import dataStructures.KittyGuild; +import dataStructures.KittyRating; +import dataStructures.KittyRole; +import dataStructures.KittyUser; + +public class CommandRaffleEnd extends SubCommand +{ + public CommandRaffleEnd(KittyRole level, KittyRating rating) { super(level, rating); } + + @Override + public SubCommandFormattable OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, String input) + { + if(guild.endRaffle()) + { + return new SubCommandFormattable (LocStrings.stub("RaffleEndSuccess")); + } + else + { + return new SubCommandFormattable (LocStrings.stub("RaffleEndFailure")); + } + } +} \ No newline at end of file diff --git a/src/commands/raffle/CommandRaffleJoin.java b/src/commands/raffle/CommandRaffleJoin.java new file mode 100644 index 0000000..bd4b46f --- /dev/null +++ b/src/commands/raffle/CommandRaffleJoin.java @@ -0,0 +1,24 @@ +package commands.raffle; + +import core.LocStrings; +import core.SubCommand; +import core.SubCommandFormattable; +import dataStructures.*; + +public class CommandRaffleJoin extends SubCommand +{ + public CommandRaffleJoin(KittyRole level, KittyRating rating) { super(level, rating); } + + @Override + public SubCommandFormattable OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, String input) + { + if(guild.joinRaffle(user)) + { + return new SubCommandFormattable (LocStrings.stub("RaffleJoinSuccess")); + } + else + { + return new SubCommandFormattable (LocStrings.stub("RaffleJoinFailure")); + } + } +} diff --git a/src/commands/raffle/CommandRaffleMain.java b/src/commands/raffle/CommandRaffleMain.java new file mode 100644 index 0000000..0f14b05 --- /dev/null +++ b/src/commands/raffle/CommandRaffleMain.java @@ -0,0 +1,24 @@ +package commands.raffle; + +import core.Command; +import core.SubCommandFramework; +import dataStructures.*; + +public class CommandRaffleMain extends Command +{ + SubCommandFramework framework = new SubCommandFramework(); + public CommandRaffleMain(KittyRole level, KittyRating rating) + { + super(level, rating); + framework.addCommand("start", new CommandRaffleStart(KittyRole.Mod, KittyRating.Safe)); + framework.addCommand("spin", new CommandRaffleSpin(KittyRole.Mod, KittyRating.Safe)); + framework.addCommand("end", new CommandRaffleEnd(KittyRole.Mod, KittyRating.Safe)); + framework.addCommand("join", new CommandRaffleJoin(KittyRole.General, KittyRating.Safe)); + } + + @Override + public void onRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) + { + framework.run(guild, channel, user, input.args).Call(res); + } +} \ No newline at end of file diff --git a/src/commands/raffle/CommandRaffleSpin.java b/src/commands/raffle/CommandRaffleSpin.java new file mode 100644 index 0000000..a4dcb0b --- /dev/null +++ b/src/commands/raffle/CommandRaffleSpin.java @@ -0,0 +1,28 @@ +package commands.raffle; + +import core.LocStrings; +import core.SubCommand; +import core.SubCommandFormattable; +import dataStructures.KittyChannel; +import dataStructures.KittyGuild; +import dataStructures.KittyRating; +import dataStructures.KittyRole; +import dataStructures.KittyUser; + +public class CommandRaffleSpin extends SubCommand +{ + public CommandRaffleSpin(KittyRole level, KittyRating rating) { super(level, rating); } + + @Override + public SubCommandFormattable OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, String input) + { + try + { + return new SubCommandFormattable (String.format(LocStrings.stub("RaffleSpinSuccess"), guild.chooseRaffleWinner().name)); + } + catch(Exception e) + { + return new SubCommandFormattable (LocStrings.stub("RaffleSpinFailure")); + } + } +} \ No newline at end of file diff --git a/src/commands/raffle/CommandRaffleStart.java b/src/commands/raffle/CommandRaffleStart.java new file mode 100644 index 0000000..789a622 --- /dev/null +++ b/src/commands/raffle/CommandRaffleStart.java @@ -0,0 +1,35 @@ +package commands.raffle; + +import core.LocStrings; +import core.SubCommand; +import core.SubCommandFormattable; +import dataStructures.*; + +public class CommandRaffleStart extends SubCommand +{ + public CommandRaffleStart(KittyRole level, KittyRating rating) { super(level, rating); } + + public int beanCost; + + @Override + public SubCommandFormattable OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, String input) + { + try + { + beanCost = Integer.parseInt(input); + } + catch(Exception e) + { + beanCost = 100; + } + + if(guild.startRaffle(beanCost)) + { + return new SubCommandFormattable (String.format(LocStrings.stub("RaffleStartSuccess"), beanCost)); + } + else + { + return new SubCommandFormattable (LocStrings.stub("RaffleStartFailure")); + } + } +} diff --git a/src/core/CommandManager.java b/src/core/CommandManager.java index 750531c..f811e93 100644 --- a/src/core/CommandManager.java +++ b/src/core/CommandManager.java @@ -1,11 +1,57 @@ package core; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; import java.util.Map.Entry; import commands.characters.CommandCharacterMain; -import commands.general.*; +import commands.general.CommandBeansShow; +import commands.general.CommandBenchmark; +import commands.general.CommandBetBeans; +import commands.general.CommandBetHistory; +import commands.general.CommandBlurry; +import commands.general.CommandBoop; +import commands.general.CommandCatch; +import commands.general.CommandChangeIndicator; +import commands.general.CommandChoose; +import commands.general.CommandColiru; +import commands.general.CommandColor; +import commands.general.CommandCrouton; +import commands.general.CommandDBFlush; +import commands.general.CommandDBStats; +import commands.general.CommandDoWork; +import commands.general.CommandEightBall; +import commands.general.CommandFetch; +import commands.general.CommandGiveBeans; +import commands.general.CommandHelp; +import commands.general.CommandHelpBuilder; +import commands.general.CommandInfo; +import commands.general.CommandInvite; +import commands.general.CommandJDoodle; +import commands.general.CommandLeaderboard; +import commands.general.CommandMap; +import commands.general.CommandPerish; +import commands.general.CommandPing; +import commands.general.CommandRPEnd; +import commands.general.CommandRPG; +import commands.general.CommandRPStart; +import commands.general.CommandRating; +import commands.general.CommandRemind; +import commands.general.CommandRole; +import commands.general.CommandRoll; +import commands.general.CommandShutdown; +import commands.general.CommandStark; +import commands.general.CommandStats; +import commands.general.CommandTeey; +import commands.general.CommandTweet; +import commands.general.CommandWolfram; +import commands.general.CommandYeet; import commands.guildrole.CommandGuildRoleMain; +import commands.poll.CommandPollManage; +import commands.poll.CommandPollResults; +import commands.poll.CommandPollShow; +import commands.poll.CommandPollVote; +import commands.raffle.CommandRaffleMain; import dataStructures.KittyChannel; import dataStructures.KittyGuild; import dataStructures.KittyRating; @@ -73,9 +119,6 @@ public class CommandManager this.register(LocCommands.stub("poll"), new CommandPollManage(KittyRole.Mod, KittyRating.Safe)); this.register(LocCommands.stub("givebeans"), new CommandGiveBeans(KittyRole.Mod, KittyRating.Safe)); this.register(LocCommands.stub("rpg"), new CommandRPG(KittyRole.Mod, KittyRating.Safe)); - this.register(LocCommands.stub("rafflestart"), new CommandRaffleStart(KittyRole.Mod, KittyRating.Safe)); - this.register(LocCommands.stub("rafflespin"), new CommandRaffleSpin(KittyRole.Mod, KittyRating.Safe)); - this.register(LocCommands.stub("raffleend"), new CommandRaffleEnd(KittyRole.Mod, KittyRating.Safe)); // General this.register(LocCommands.stub("fetch"), new CommandFetch(KittyRole.General, KittyRating.Safe)); @@ -107,12 +150,12 @@ public class CommandManager this.register(LocCommands.stub("bethistory"), new CommandBetHistory(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("crouton"), new CommandCrouton(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("benchmark, bench"), new CommandBenchmark(KittyRole.General, KittyRating.Safe)); - this.register(LocCommands.stub("rafflejoin"), new CommandRaffleJoin(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("leaderboard"), new CommandLeaderboard(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("color, colour"), new CommandColor(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("remind"), new CommandRemind(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("role"), new CommandGuildRoleMain(KittyRole.General, KittyRating.Safe)); this.register(LocCommands.stub("character"), new CommandCharacterMain(KittyRole.General, KittyRating.Safe)); + this.register(LocCommands.stub("raffle"), new CommandRaffleMain(KittyRole.General, KittyRating.Safe)); } // Allows the command manager to keep track of a command. Takes a pair (the un-localized and localzied commands) diff --git a/src/core/SubCommand.java b/src/core/SubCommand.java index 2b0b81f..d8f7bef 100644 --- a/src/core/SubCommand.java +++ b/src/core/SubCommand.java @@ -23,6 +23,7 @@ public abstract class SubCommand private boolean CanCall(KittyGuild guild, KittyChannel channel, KittyUser user) { + System.out.println("TESTING CAN CALL"); if(guild.contentRating.getValue() < contentRating.getValue()) { Reject(user, "content rating"); @@ -42,12 +43,12 @@ public abstract class SubCommand // Called by the Command manager - this will run the command // if the issuing user has the permission to do so! - protected final void Invoke(KittyGuild guild, KittyChannel channel, KittyUser user, String input) + protected final SubCommandFormattable Invoke(KittyGuild guild, KittyChannel channel, KittyUser user, String input) { if(!CanCall(guild, channel, user)) - return; + return null; - OnRun(guild, channel, user, input); + return OnRun(guild, channel, user, input); } public KittyRating Rating() diff --git a/src/core/SubCommandFramework.java b/src/core/SubCommandFramework.java index ee44eaf..e7090da 100644 --- a/src/core/SubCommandFramework.java +++ b/src/core/SubCommandFramework.java @@ -27,8 +27,17 @@ public class SubCommandFramework public SubCommandFormattable run(KittyGuild guild, KittyChannel channel, KittyUser user, String input) { - System.out.print(input); - SubCommandFormattable res = commands.get(input.split(" ")[0].toLowerCase()).OnRun(guild, channel, user, input.substring(input.indexOf(" "))); + System.out.println(input); + SubCommandFormattable res = null; + try + { + res = commands.get(input.split(" ")[0].toLowerCase()).OnRun(guild, channel, user, input.substring(input.indexOf(" "))); + } + catch(Exception e) + { + res = commands.get(input.split(" ")[0].toLowerCase()).OnRun(guild, channel, user, ""); + } + return res; } -} +} \ No newline at end of file