From ac128d7e20344a9f36a10561d35c6c9de1ae85f9 Mon Sep 17 00:00:00 2001 From: Rin Date: Tue, 7 May 2019 03:03:57 -0400 Subject: [PATCH 1/4] +Added BetHistory command --- commands.config | 1 + locCommands.config | 1 + locStrings.config | 4 ++++ src/commands/CommandBetBeans.java | 2 ++ src/commands/CommandBetHistory.java | 25 ++++++++++++++++++++++++ src/core/ObjectBuilderFactory.java | 1 + src/dataStructures/KittyTrackedLong.java | 2 ++ src/utils/io/DirectoryMonitor.java | 3 --- 8 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 src/commands/CommandBetHistory.java diff --git a/commands.config b/commands.config index 8115292..bfd9bc4 100644 --- a/commands.config +++ b/commands.config @@ -43,3 +43,4 @@ guildrolenotallowed=1 catch=1 guildrolelist=1 benchmark, bench=1 +bethistory=1 diff --git a/locCommands.config b/locCommands.config index a16b68a..5241e69 100644 --- a/locCommands.config +++ b/locCommands.config @@ -6,6 +6,7 @@ yeet= role= guildroleremove= ping= +bethistory= benchmark, bench= rating= roll= diff --git a/locStrings.config b/locStrings.config index f2757d8..b5a11cc 100644 --- a/locStrings.config +++ b/locStrings.config @@ -10,6 +10,10 @@ GuildRoleNotAllowedFailure= GuildRoleNotAllowedSuccess= GuildRoleNotAllowedInfo= +[CommandBetHistory] +BetHistoryOutput=Kitty has %s beans! +BetHistoryInfo=Sees the amount of beans Kitty has earned through your bets! + [CommandCatch] CatchInfo= diff --git a/src/commands/CommandBetBeans.java b/src/commands/CommandBetBeans.java index 06df15a..5c3dd6d 100644 --- a/src/commands/CommandBetBeans.java +++ b/src/commands/CommandBetBeans.java @@ -52,10 +52,12 @@ public class CommandBetBeans extends Command if(win == 0) { res.Call(LocStrings.Stub("BetBeansLose")); + guild.beans.Add(bet); return; } user.ChangeBeans(bet*win); + guild.beans.Subtract(bet*win); res.Call(String.format(LocStrings.Stub("BetBeansWin"), "" + (bet*win))); } diff --git a/src/commands/CommandBetHistory.java b/src/commands/CommandBetHistory.java new file mode 100644 index 0000000..0a190a1 --- /dev/null +++ b/src/commands/CommandBetHistory.java @@ -0,0 +1,25 @@ +package commands; + +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 CommandBetHistory extends Command +{ + public CommandBetHistory(KittyRole level, KittyRating rating) { super(level, rating); } + + @Override + public String HelpText() { return LocStrings.Stub("BetHistoryInfo"); } + + @Override + public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) + { + res.Call(String.format(LocStrings.Stub("BetHistoryOutput"), guild.beans.Get())); + } +} \ No newline at end of file diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index fa7de97..8a3c193 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -373,6 +373,7 @@ public class ObjectBuilderFactory 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("benchmark, bench"), new CommandBenchmark(KittyRole.General, KittyRating.Safe)); diff --git a/src/dataStructures/KittyTrackedLong.java b/src/dataStructures/KittyTrackedLong.java index ffd38bd..2f5f9a0 100644 --- a/src/dataStructures/KittyTrackedLong.java +++ b/src/dataStructures/KittyTrackedLong.java @@ -32,6 +32,7 @@ public class KittyTrackedLong extends DatabaseTrackedObject { tracked += toAdd; MarkDirty(); + System.out.println("DIRTY"); return tracked; } @@ -39,6 +40,7 @@ public class KittyTrackedLong extends DatabaseTrackedObject { tracked -= toSubtract; MarkDirty(); + System.out.println("DIRTY"); return tracked; } diff --git a/src/utils/io/DirectoryMonitor.java b/src/utils/io/DirectoryMonitor.java index 59cf1a5..3f7c493 100644 --- a/src/utils/io/DirectoryMonitor.java +++ b/src/utils/io/DirectoryMonitor.java @@ -1,6 +1,5 @@ package utils.io; -import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; @@ -11,8 +10,6 @@ import java.util.function.Consumer; import java.util.stream.Stream; import utils.FileUtils; -import utils.GlobalLog; -import utils.LogFilter; // NOTE: Consider shifting internal behavior to https://docs.oracle.com/javase/tutorial/essential/io/notification.html // for external stability and support From 5df0b8cc2e43b4c26af7650811d4c87cb99d2582 Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Tue, 7 May 2019 00:20:26 -0700 Subject: [PATCH 2/4] + Added the bit where things that are tracked are actually registered, you know --- src/dataStructures/KittyGuild.java | 10 ++++++++++ src/dataStructures/KittyTrackedLong.java | 6 +++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/dataStructures/KittyGuild.java b/src/dataStructures/KittyGuild.java index fd78f9f..583311a 100644 --- a/src/dataStructures/KittyGuild.java +++ b/src/dataStructures/KittyGuild.java @@ -1,6 +1,8 @@ package dataStructures; import java.util.ArrayList; + +import core.DatabaseManager; import core.DatabaseTrackedObject; import utils.AdminControl; @@ -27,6 +29,12 @@ public class KittyGuild extends DatabaseTrackedObject private String commandIndicator; + private void RegisterTrackedObjects() + { + DatabaseManager.instance.Register(roleList); + DatabaseManager.instance.Register(beans); + } + // Default content for a guild public KittyGuild(String uniqueID, AdminControl adminControl, ArrayList emoji) { @@ -34,6 +42,7 @@ public class KittyGuild extends DatabaseTrackedObject this.uniqueID = uniqueID; roleList = new KittyTrackedVector(roleListName, uniqueID); beans = new KittyTrackedLong(beansName, uniqueID); + RegisterTrackedObjects(); control = adminControl; this.contentRating = KittyRating.Safe; @@ -49,6 +58,7 @@ public class KittyGuild extends DatabaseTrackedObject this.uniqueID = uniqueID; roleList = new KittyTrackedVector(roleListName, uniqueID); beans = new KittyTrackedLong(beansName, uniqueID); + RegisterTrackedObjects(); SetCommandIndicator(commandIndicator); this.contentRating = contentRating; diff --git a/src/dataStructures/KittyTrackedLong.java b/src/dataStructures/KittyTrackedLong.java index 2f5f9a0..98f450e 100644 --- a/src/dataStructures/KittyTrackedLong.java +++ b/src/dataStructures/KittyTrackedLong.java @@ -1,5 +1,6 @@ package dataStructures; +import core.DatabaseManager; import core.DatabaseTrackedObject; import utils.GlobalLog; import utils.LogFilter; @@ -12,6 +13,7 @@ import utils.LogFilter; // public SomeConstructor(...) // { // myValue = new KittyTrackedLong("friendlyName", this.UniqueID); +// DatabaseManager.instance.Register(myValue); // } // public class KittyTrackedLong extends DatabaseTrackedObject @@ -32,7 +34,6 @@ public class KittyTrackedLong extends DatabaseTrackedObject { tracked += toAdd; MarkDirty(); - System.out.println("DIRTY"); return tracked; } @@ -40,7 +41,6 @@ public class KittyTrackedLong extends DatabaseTrackedObject { tracked -= toSubtract; MarkDirty(); - System.out.println("DIRTY"); return tracked; } @@ -74,7 +74,7 @@ public class KittyTrackedLong extends DatabaseTrackedObject catch(Exception e) { tracked = 0; - GlobalLog.Error(LogFilter.Core, "Failed to deserialize long with database ID " + databaseID); + GlobalLog.Error(LogFilter.Core, "Falling back to default of 0 due to failure to deserialize long with database ID " + databaseID); } } else From e20d9197c6f77c4a8bcb4f12edc690b444f83fc4 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 8 May 2019 00:58:07 -0400 Subject: [PATCH 3/4] =Fixed Roll precedence --- src/commands/CommandRoll.java | 2 +- src/dataStructures/KittyTrackedLong.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/commands/CommandRoll.java b/src/commands/CommandRoll.java index 5a9ef7e..1cb7ba7 100644 --- a/src/commands/CommandRoll.java +++ b/src/commands/CommandRoll.java @@ -166,7 +166,7 @@ public class CommandRoll extends Command private boolean hasPrecendence(char op1, char op2) { - if ((op1 == '*' || op1 == '/') && (op2 == '+' || op2 == '-')) + if ((op2 == '*' || op2 == '/') && (op1 == '+' || op1 == '-')) return false; else if ((op2 == 'd') && (op1 == '+' || op1 == '-' || op1 == '*' || op1 == '/')) diff --git a/src/dataStructures/KittyTrackedLong.java b/src/dataStructures/KittyTrackedLong.java index 98f450e..588d64f 100644 --- a/src/dataStructures/KittyTrackedLong.java +++ b/src/dataStructures/KittyTrackedLong.java @@ -1,6 +1,5 @@ package dataStructures; -import core.DatabaseManager; import core.DatabaseTrackedObject; import utils.GlobalLog; import utils.LogFilter; From faa2ef567129d608c5b0f1a4412b3f2e777f89c7 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 8 May 2019 01:16:35 -0400 Subject: [PATCH 4/4] +Added mentioning capability to beanshowing --- locStrings.config | 1 + src/commands/CommandBeansShow.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/locStrings.config b/locStrings.config index b5a11cc..9034ab8 100644 --- a/locStrings.config +++ b/locStrings.config @@ -19,6 +19,7 @@ CatchInfo= [CommandBeansShow] BeansShowDisplay=You have %s beans! +BeansShowMentioned=I looked it up and %sbeans! BeansShowInfo=Displays how many beans you have [CommandGuildRoleList] diff --git a/src/commands/CommandBeansShow.java b/src/commands/CommandBeansShow.java index 16d3f62..b3e2493 100644 --- a/src/commands/CommandBeansShow.java +++ b/src/commands/CommandBeansShow.java @@ -14,6 +14,16 @@ public class CommandBeansShow extends Command @Override public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) { - res.Call(String.format(LocStrings.Stub("BeansShowDisplay"), user.GetBeans())); + if(input.mentions == null) + res.Call(String.format(LocStrings.Stub("BeansShowDisplay"), user.GetBeans())); + else + { + String mentionedBeans = ""; + for(KittyUser mentioned:input.mentions) + { + mentionedBeans += mentioned.name + " has " + mentioned.GetBeans() + " "; + } + res.Call(String.format(LocStrings.Stub("BeansShowMentioned"), mentionedBeans)); + } } }