From 2a19124011352cc16acb80f9bc6200e6ebfb6845 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sat, 20 Apr 2019 23:32:56 -0700 Subject: [PATCH 1/7] +Added Log File Output Changed Log to output to a file --- OutputLog.txt | 233 ++++++++++++++++++++++++++++++++ plugins/forbiddenword.lua | 9 ++ src/dataStructures/KittyRP.java | 1 + src/main/Main.java | 1 + src/utils/GlobalLog.java | 15 +- 5 files changed, 258 insertions(+), 1 deletion(-) create mode 100644 OutputLog.txt create mode 100644 plugins/forbiddenword.lua diff --git a/OutputLog.txt b/OutputLog.txt new file mode 100644 index 0000000..2d1b8f4 --- /dev/null +++ b/OutputLog.txt @@ -0,0 +1,233 @@ +[Log] [Core] Initializing LocStrings +[Log] [Strings] Attempting to read localization file: locStrings.config +[Log] [Strings] Found lookup call in .\src\commands\CommandBeansShow.java: BeansShowInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandBeansShow.java: BeansShowDisplay +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansLowBet +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansNotValid +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansNotEnough +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansLose +[Log] [Strings] Found lookup call in .\src\commands\CommandBetBeans.java: BetBeansWin +[Log] [Strings] Found lookup call in .\src\commands\CommandBlurry.java: BlurryInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandBoop.java: BoopInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandBoop.java: BoopStandard +[Log] [Strings] Found lookup call in .\src\commands\CommandBoop.java: BoopPerson +[Log] [Strings] Found lookup call in .\src\commands\CommandBoop.java: BoopMultiple +[Log] [Strings] Found lookup call in .\src\commands\CommandChangeIndicator.java: ChangeIndicatorInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandChangeIndicator.java: ChangeIndicatorError +[Log] [Strings] Found lookup call in .\src\commands\CommandChangeIndicator.java: ChangeIndicatorChanged +[Log] [Strings] Found lookup call in .\src\commands\CommandChoose.java: ChooseInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandChoose.java: ChooseOne +[Log] [Strings] Found lookup call in .\src\commands\CommandChoose.java: ChooseChoice +[Log] [Strings] Found lookup call in .\src\commands\CommandColiru.java: ColiruInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandColiru.java: ColiruError +[Log] [Strings] Found lookup call in .\src\commands\CommandDoWork.java: DoWorkInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandDoWork.java: DoWorkFinished +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes1 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes2 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes3 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes4 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes5 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes6 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes7 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes8 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes9 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallYes10 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallMaybe1 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallMaybe2 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallMaybe3 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallMaybe4 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallMaybe5 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallNo1 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallNo2 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallNo3 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallNo4 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallNo5 +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandEightBall.java: EightBallError +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchBringBack +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchRunAway +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchBringBackWrong +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchEat +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchCatchRun +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchStare +[Log] [Strings] Found lookup call in .\src\commands\CommandFetch.java: FetchError +[Log] [Strings] Found lookup call in .\src\commands\CommandGiveBeans.java: GiveBeansInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandGiveBeans.java: GiveBeansInvalid +[Log] [Strings] Found lookup call in .\src\commands\CommandGiveBeans.java: GiveBeansNoneMentioned +[Log] [Strings] Found lookup call in .\src\commands\CommandGiveBeans.java: GiveBeansSuccess +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAdd.java: GuildRoleAddInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAdd.java: GuildRoleAddSuccess +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAdd.java: GuildRoleAddFailure +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAdd.java: GuildRoleAddNotAllowed +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAllowed.java: GuildRoleAllowedInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAllowed.java: GuildRoleAllowedDuplicate +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleAllowed.java: GuildRoleAllowedSuccess +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleRemove.java: GuildRoleRemoveInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleRemove.java: GuildRoleRemoveSuccess +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleRemove.java: GuildRoleRemoveFailure +[Log] [Strings] Found lookup call in .\src\commands\CommandGuildRoleRemove.java: GuildRoleRemoveNotAllowed +[Log] [Strings] Found lookup call in .\src\commands\CommandHelp.java: HelpInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandHelp.java: HelpDisplay +[Log] [Strings] Found lookup call in .\src\commands\CommandHelpBuilder.java: HelpBuilderInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandInfo.java: InfoInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandInfo.java: InfoResponse +[Log] [Strings] Found lookup call in .\src\commands\CommandInvite.java: InviteInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandJDoodle.java: JDoodleInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandJDoodle.java: JDoodleError +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapInvalid +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapVersion +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapSeed +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapWidth +[Log] [Strings] Found lookup call in .\src\commands\CommandMap.java: MapHeight +[Log] [Strings] Found lookup call in .\src\commands\CommandPerish.java: PerishInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPing.java: PingInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPing.java: PingResponse +[Log] [Strings] Found lookup call in .\src\commands\CommandPollManage.java: PollManageInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPollResults.java: PollResultsInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPollResults.java: PollResultsResponse +[Log] [Strings] Found lookup call in .\src\commands\CommandPollShow.java: PollShowInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPollShow.java: PollShowNoPoll +[Log] [Strings] Found lookup call in .\src\commands\CommandPollShow.java: PollShowPoll +[Log] [Strings] Found lookup call in .\src\commands\CommandPollShow.java: PollShowChoices +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteAlreadyVoted +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteNotValidVote +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteSuccess +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteNotValidNumber +[Log] [Strings] Found lookup call in .\src\commands\CommandPollVote.java: PollVoteNoPoll +[Log] [Strings] Found lookup call in .\src\commands\CommandRating.java: RatingInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandRating.java: RatingChanged +[Log] [Strings] Found lookup call in .\src\commands\CommandRating.java: RatingInvalid +[Log] [Strings] Found lookup call in .\src\commands\CommandRating.java: RatingWarning +[Log] [Strings] Found lookup call in .\src\commands\CommandRole.java: RoleInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandRole.java: RoleStandardResponse +[Log] [Strings] Found lookup call in .\src\commands\CommandRole.java: RoleError +[Log] [Strings] Found lookup call in .\src\commands\CommandRole.java: RoleNeededRole +[Log] [Strings] Found lookup call in .\src\commands\CommandRole.java: RoleChanged +[Log] [Strings] Found lookup call in .\src\commands\CommandRoll.java: RollInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandRoll.java: RollError +[Log] [Strings] Found lookup call in .\src\commands\CommandRPEnd.java: RPEndInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandRPEnd.java: RPEndFileOut +[Log] [Strings] Found lookup call in .\src\commands\CommandRPEnd.java: RPEndError +[Log] [Strings] Found lookup call in .\src\commands\CommandRPG.java: RPGInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandRPG.java: RPGInvalid +[Log] [Strings] Found lookup call in .\src\commands\CommandRPStart.java: RPStartInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandShutdown.java: ShutdownInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandStark.java: StarkInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandStats.java: StatsInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandTeey.java: TeeyInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandTweet.java: TweetInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandTweet.java: TweetError +[Log] [Strings] Found lookup call in .\src\commands\CommandWolfram.java: WolframInfo +[Log] [Strings] Found lookup call in .\src\commands\CommandWolfram.java: WolframNoArgs +[Log] [Strings] Found lookup call in .\src\commands\CommandWolfram.java: WolframError +[Log] [Strings] Found lookup call in .\src\commands\CommandYeet.java: YeetInfo +[Log] [Strings] Attempting to write updated localization file +[Log] [Core] Initializing LocCommands +[Log] [Strings] Attempting to read localization file: locCommands.config +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: work +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: shutdown +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: stats +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: invite +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: buildHelp +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: tweet +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: rating +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: indicator +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: guildroleallowed +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: poll +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: givebeans +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: rpg +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: fetch +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: guildroleadd +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: guildroleremove +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: teey +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: perish, thenperish +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: yeet +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: ping +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: boop +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: roll +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: choose +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: help +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: info, about +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: vote +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: results +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: showpoll +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: wolfram +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: c++, g++, cplus, cpp +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: java, jdoodle +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: beans +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: role +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: bet +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: map +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: rpstart +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: rpend +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: tony, stark, dontfeelgood, dontfeelsogood +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: blur +[Log] [Strings] Found lookup call in .\src\core\ObjectBuilderFactory.java: eightball, 8ball +[Log] [Strings] Attempting to write updated localization file +[Log] [Database] Connection to SQLite has been established. +[Log] [Core] Initializing CommandEnabler +[Log] [Core] Command registered under key work +[Log] [Core] Command registered under key shutdown +[Log] [Core] Command registered under key stats +[Log] [Core] Command registered under key invite +[Log] [Core] Command registered under key buildhelp +[Log] [Core] Command registered under key tweet +[Log] [Core] Command registered under key rating +[Log] [Core] Command registered under key indicator +[Log] [Core] Command registered under key guildroleallowed +[Log] [Core] Command registered under key poll +[Log] [Core] Command registered under key givebeans +[Log] [Command] [RPG] Registered stats +[Log] [Command] [RPG] Registered about +[Log] [Command] [RPG] Registered info +[Log] [Command] [RPG] Registered explore +[Log] [Command] [RPG] Registered run +[Log] [Command] [RPG] Registered fight +[Log] [Core] Command registered under key rpg +[Log] [Core] Command registered under key fetch +[Log] [Core] Command registered under key guildroleadd +[Log] [Core] Command registered under key guildroleremove +[Log] [Core] Command registered under key teey +[Log] [Core] Command registered under key perish +[Log] [Core] Command registered under key thenperish +[Log] [Core] Command registered under key yeet +[Log] [Core] Command registered under key ping +[Log] [Database] CreateGeyKey: key-booptracker +[Log] [Core] Command registered under key boop +[Log] [Core] Command registered under key roll +[Log] [Core] Command registered under key choose +[Log] [Core] Command registered under key help +[Log] [Core] Command registered under key info +[Log] [Core] Command registered under key about +[Log] [Core] Command registered under key vote +[Log] [Core] Command registered under key results +[Log] [Core] Command registered under key showpoll +[Log] [Core] Command registered under key wolfram +[Log] [Core] Command registered under key c++ +[Log] [Core] Command registered under key g++ +[Log] [Core] Command registered under key cplus +[Log] [Core] Command registered under key cpp +[Log] [Core] Command registered under key java +[Log] [Core] Command registered under key jdoodle +[Log] [Core] Command registered under key beans +[Log] [Core] Command registered under key role +[Log] [Core] Command registered under key bet +[Log] [Core] Command registered under key map +[Log] [Core] Command registered under key rpstart +[Log] [Core] Command registered under key rpend +[Log] [Core] Command registered under key tony +[Log] [Core] Command registered under key stark +[Log] [Core] Command registered under key dontfeelgood +[Log] [Core] Command registered under key dontfeelsogood +[Log] [Core] Command registered under key blur +[Log] [Core] Command registered under key eightball +[Log] [Core] Command registered under key 8ball +[Log] [Plugin] Created new PluginLoader lua environment +[Log] [Database] CreateGeyKey: key-392895005024452620 +[Log] [Database] CreateGeyKey: key-392895005024452620147407528874082304 +[Log] [Database] CreateSetKey: Key-392895005024452620 value-! +[Log] [Database] CreateSetKey: Key-392895005024452620147407528874082304 value-273,4 diff --git a/plugins/forbiddenword.lua b/plugins/forbiddenword.lua new file mode 100644 index 0000000..a8eb5e9 --- /dev/null +++ b/plugins/forbiddenword.lua @@ -0,0 +1,9 @@ +local time = os.time(); +function plugin(message) + if(message.match("purple"))then + local response = os.time() - time; + time = os.time(); + return response; + end + return nil; +end \ No newline at end of file diff --git a/src/dataStructures/KittyRP.java b/src/dataStructures/KittyRP.java index 138d308..9eb0be8 100644 --- a/src/dataStructures/KittyRP.java +++ b/src/dataStructures/KittyRP.java @@ -53,6 +53,7 @@ public class KittyRP while(!log.isEmpty()) { writer.println(log.get(0)); + writer.flush(); log.remove(0); } writer.close(); diff --git a/src/main/Main.java b/src/main/Main.java index 5d79ca8..1c942e9 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -36,6 +36,7 @@ public class Main extends ListenerAdapter public static void main(String[] args) throws InterruptedException, LoginException, Exception { // Factory startup. The ordering is intentional. + GlobalLog.initialize(); databaseManager = ObjectBuilderFactory.ConstructDatabaseManager(); commandEnabler = ObjectBuilderFactory.ConstructCommandEnabler(); commandManager = ObjectBuilderFactory.ConstructCommandManager(commandEnabler); diff --git a/src/utils/GlobalLog.java b/src/utils/GlobalLog.java index 2cf28b9..81777c9 100644 --- a/src/utils/GlobalLog.java +++ b/src/utils/GlobalLog.java @@ -1,15 +1,28 @@ package utils; +import java.io.FileNotFoundException; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; + public class GlobalLog { private static final String log = "Log"; private static final String warn = "Warning"; private static final String error = "ERROR"; private static final String fatal = "FATAL"; + private static PrintWriter outputLog; + + public static void initialize() throws FileNotFoundException, UnsupportedEncodingException + { + outputLog = new PrintWriter("OutputLog.txt", "UTF-8"); + } private static void Write(String status, LogFilter filter, String body) { - System.out.println("[" + status + "] " + "[" + filter.name() + "] " + body); + String logLine = "[" + status + "] " + "[" + filter.name() + "] " + body; + outputLog.write(logLine + "\n"); + outputLog.flush(); + System.out.println(logLine); } public static void Log(String msg) { Write(log, LogFilter.Debug, msg); } From 6d1b4aa9f3015209ec7867140eef9a58f5c228cf Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sat, 20 Apr 2019 23:42:11 -0700 Subject: [PATCH 2/7] = Fixed conditional --- plugins/forbiddenword.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/forbiddenword.lua b/plugins/forbiddenword.lua index a8eb5e9..8d81326 100644 --- a/plugins/forbiddenword.lua +++ b/plugins/forbiddenword.lua @@ -1,9 +1,11 @@ local time = os.time(); + function plugin(message) - if(message.match("purple"))then + if(string.match(message, "purple"))then local response = os.time() - time; time = os.time(); return response; end + return nil; end \ No newline at end of file From 3d5b11d828352fa896b0d777a8f3a3e49a72c033 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sat, 20 Apr 2019 23:55:39 -0700 Subject: [PATCH 3/7] =Fixed OutputLog Changed outputlog to save to dated filename --- src/core/lua/Plugin.java | 4 +--- src/utils/GlobalLog.java | 7 ++++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/core/lua/Plugin.java b/src/core/lua/Plugin.java index b58a87c..e022db7 100644 --- a/src/core/lua/Plugin.java +++ b/src/core/lua/Plugin.java @@ -35,11 +35,9 @@ public class Plugin contents = contentBuilder.toString(); globals = JsePlatform.standardGlobals(); - + globals.load(contents).call(); func_plugin = globals.get("plugin"); - - String output = null; } catch (IOException e) { diff --git a/src/utils/GlobalLog.java b/src/utils/GlobalLog.java index 81777c9..fcd9b6f 100644 --- a/src/utils/GlobalLog.java +++ b/src/utils/GlobalLog.java @@ -3,6 +3,9 @@ package utils; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; public class GlobalLog { @@ -14,7 +17,9 @@ public class GlobalLog public static void initialize() throws FileNotFoundException, UnsupportedEncodingException { - outputLog = new PrintWriter("OutputLog.txt", "UTF-8"); + DateFormat dF = new SimpleDateFormat("yyyy_MM_dd_HH-mm"); + Date today = new Date(); + outputLog = new PrintWriter((dF.format(today) + "Log.txt"), "UTF-8"); } private static void Write(String status, LogFilter filter, String body) From 9c204d55cda75fdc1c444e34bebfa74c98b23c5f Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sun, 21 Apr 2019 00:18:39 -0700 Subject: [PATCH 4/7] +Added RoleNotAllowed command Added ability to revoke role addition for kittybot --- .gitignore | 4 +- src/commands/CommandGuildRoleNotAllowed.java | 39 ++++++++++++++++++++ src/core/ObjectBuilderFactory.java | 1 + src/utils/GlobalLog.java | 2 +- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/commands/CommandGuildRoleNotAllowed.java diff --git a/.gitignore b/.gitignore index cabdf8d..a79a764 100644 --- a/.gitignore +++ b/.gitignore @@ -62,4 +62,6 @@ db/ RP\.txt rp\.txt Rp\.txt -rP\.txt \ No newline at end of file +rP\.txt + +.log \ No newline at end of file diff --git a/src/commands/CommandGuildRoleNotAllowed.java b/src/commands/CommandGuildRoleNotAllowed.java new file mode 100644 index 0000000..3d12593 --- /dev/null +++ b/src/commands/CommandGuildRoleNotAllowed.java @@ -0,0 +1,39 @@ +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 CommandGuildRoleNotAllowed extends Command +{ + public CommandGuildRoleNotAllowed(KittyRole level, KittyRating rating) { super(level, rating); } + + @Override + public String HelpText() { return LocStrings.Stub("GuildRoleNotAllowedInfo"); } + + @Override + public void OnRun(KittyGuild guild, KittyChannel channel, KittyUser user, UserInput input, Response res) + { + String [] roles = input.args.split(","); + String role; + for(int i = 0; i < roles.length; i++) + { + role = roles[i].trim(); + if(guild.allowedRole.contains(role)) + { + guild.allowedRole.remove(role); + res.Call(LocStrings.Stub("GuildRoleNotAllowedSuccess")); + } + else + { + res.Call(String.format(LocStrings.Stub("GuildRoleNotAllowedFailure"), role)); + } + } + } +} \ No newline at end of file diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index ada6602..484cca9 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -342,6 +342,7 @@ public class ObjectBuilderFactory manager.Register(LocCommands.Stub("rating"), new CommandRating(KittyRole.Admin, KittyRating.Safe)); manager.Register(LocCommands.Stub("indicator"), new CommandChangeIndicator(KittyRole.Admin, KittyRating.Safe)); manager.Register(LocCommands.Stub("guildroleallowed"), new CommandGuildRoleAllowed(KittyRole.Admin, KittyRating.Safe)); + manager.Register(LocCommands.Stub("guildrolenotallowed"), new CommandGuildRoleNotAllowed(KittyRole.Admin, KittyRating.Safe)); manager.Register(LocCommands.Stub("poll"), new CommandPollManage(KittyRole.Mod, KittyRating.Safe)); manager.Register(LocCommands.Stub("givebeans"), new CommandGiveBeans(KittyRole.Mod, KittyRating.Safe)); diff --git a/src/utils/GlobalLog.java b/src/utils/GlobalLog.java index fcd9b6f..5914d59 100644 --- a/src/utils/GlobalLog.java +++ b/src/utils/GlobalLog.java @@ -19,7 +19,7 @@ public class GlobalLog { DateFormat dF = new SimpleDateFormat("yyyy_MM_dd_HH-mm"); Date today = new Date(); - outputLog = new PrintWriter((dF.format(today) + "Log.txt"), "UTF-8"); + outputLog = new PrintWriter((dF.format(today) + ".log"), "UTF-8"); } private static void Write(String status, LogFilter filter, String body) From 77b266032976f36d2ccab0b4c7e9fdd10dcaeb69 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sun, 21 Apr 2019 01:28:21 -0700 Subject: [PATCH 5/7] +Added ForbiddenWord Added ForbiddenWord plugin --- OutputLog.txt | 5 ----- commands.config | 1 + locCommands.config | 1 + locStrings.config | 9 +++++++-- plugins/forbiddenword.lua | 12 ++++++++++-- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/OutputLog.txt b/OutputLog.txt index 2d1b8f4..939bf86 100644 --- a/OutputLog.txt +++ b/OutputLog.txt @@ -226,8 +226,3 @@ [Log] [Core] Command registered under key blur [Log] [Core] Command registered under key eightball [Log] [Core] Command registered under key 8ball -[Log] [Plugin] Created new PluginLoader lua environment -[Log] [Database] CreateGeyKey: key-392895005024452620 -[Log] [Database] CreateGeyKey: key-392895005024452620147407528874082304 -[Log] [Database] CreateSetKey: Key-392895005024452620 value-! -[Log] [Database] CreateSetKey: Key-392895005024452620147407528874082304 value-273,4 diff --git a/commands.config b/commands.config index 257a7e9..a74d196 100644 --- a/commands.config +++ b/commands.config @@ -39,3 +39,4 @@ guildroleremove=1 guildroleadd=1 guildroleallowed=1 fetch=1 +guildrolenotallowed=1 diff --git a/locCommands.config b/locCommands.config index 93af80c..6bd349a 100644 --- a/locCommands.config +++ b/locCommands.config @@ -12,6 +12,7 @@ blur= choose= poll= rpstart= +guildrolenotallowed= bet= perish, thenperish= teey= diff --git a/locStrings.config b/locStrings.config index b6e48f9..78593ee 100644 --- a/locStrings.config +++ b/locStrings.config @@ -1,6 +1,11 @@ [CommandPollManage] PollManageInfo='start' will start a new poll with the query of the line you put after, 'choice' will add a choice to the poll, 'stop' will end the poll +[CommandGuildRoleNotAllowed] +GuildRoleNotAllowedFailure= +GuildRoleNotAllowedSuccess= +GuildRoleNotAllowedInfo= + [CommandBeansShow] BeansShowDisplay=You have %s beans! BeansShowInfo=Displays how many beans you have @@ -33,8 +38,8 @@ GuildRoleAddInfo=Add a role to yourself! [CommandRole] RoleInfo=Will show the current role you have, Admins can change others roles with input of 'role x @y' with x being blacklist, general, mod, or admin. Blacklist will not allow the user to interact with kitty anymore, general mod and admin will give the user access to those commands. -RoleStandardResponse=Your role is -RoleError=You aren't allowed to do that! You must have the KittyRole '%' or higher! +RoleStandardResponse=Your role is %s +RoleError=You aren't allowed to do that! You must have the KittyRole '%s' or higher! RoleChanged=Changed %s to role `%s`! RoleNeededRole=Please enter `general`, `mod`, or `admin`! diff --git a/plugins/forbiddenword.lua b/plugins/forbiddenword.lua index 8d81326..ebdbb46 100644 --- a/plugins/forbiddenword.lua +++ b/plugins/forbiddenword.lua @@ -2,10 +2,18 @@ local time = os.time(); function plugin(message) if(string.match(message, "purple"))then - local response = os.time() - time; + local timedif = os.time() - time; time = os.time(); - return response; + days = (timedif / (60*60*24)); + hours = ((timedif / (60*60)) % 24); + mins = ((timedif / (60)) % 60); + secs = timedif % 60; + return round(days) .. " " .. round(hours) .. " " .. round(mins) .. " " .. round(secs); end return nil; +end + +function round(num) + return math.floor(num + 0.5) end \ No newline at end of file From b01b4be00f5ba30dcf6c245e0e8b3f7b06f2a10d Mon Sep 17 00:00:00 2001 From: Matthew Cech Date: Sun, 21 Apr 2019 01:29:23 -0700 Subject: [PATCH 6/7] + Added lua user and stats --- src/commands/CommandStats.java | 28 ++++++++++++++++------------ src/core/lua/Plugin.java | 5 +++-- src/core/lua/PluginManager.java | 6 ++++-- src/core/lua/PluginStructure.java | 12 ++++++++++++ src/core/lua/PluginUser.java | 13 +++++++++++++ src/main/Main.java | 10 ++++------ 6 files changed, 52 insertions(+), 22 deletions(-) create mode 100644 src/core/lua/PluginStructure.java create mode 100644 src/core/lua/PluginUser.java diff --git a/src/commands/CommandStats.java b/src/commands/CommandStats.java index 7f4f254..593ff66 100644 --- a/src/commands/CommandStats.java +++ b/src/commands/CommandStats.java @@ -26,13 +26,17 @@ public class CommandStats extends Command String out = "```\n"; Stats stats = Stats.instance; + long seen = stats.GetMessagesSeen(); + long processed = stats.GetCommandsProcessed(); + out += "----- [General] -----\n"; - out += " Messages observed: " + stats.GetMessagesSeen() + "\n"; - out += "Commands processed: " + stats.GetCommandsProcessed() + "\n"; + out += " Messages observed: " + seen + "\n"; + out += "Commands processed: " + processed + "\n"; + out += " Command invoke %: " + ((int)((processed / (float)seen) * 1000)) / 10.0f + "%\n"; out += " KittyBot uptime: " + stats.GetFormattedUptime() + "\n"; out += "\n"; out += "----- [Health] -----\n"; - out += " SMT cores: " + stats.GetCPUAvailable() + "\n"; + out += " SMT cores: " + stats.GetCPUAvailable() + "\n"; // If CPU load works on this OS, list it. double CPULoad = stats.GetSystemCPULoad(); @@ -46,20 +50,20 @@ public class CommandStats extends Command Integer timed_waiting = data.states.get(Thread.State.TIMED_WAITING); Integer waiting = data.states.get(Thread.State.WAITING); - out += " Child threads:" - + " run: " + (runnable == null ? 0 : runnable) - + " block: " + (blocked == null ? 0 : blocked) - + " sleep: " + (timed_waiting == null ? 0 : timed_waiting) - + " wait: " + (waiting == null ? 0 : waiting) - + " term: " + (terminated == null ? 0 : terminated) + out += " Threads:" + + " run-" + (runnable == null ? 0 : runnable) + + " block-" + (blocked == null ? 0 : blocked) + + " sleep-" + (timed_waiting == null ? 0 : timed_waiting) + + " wait-" + (waiting == null ? 0 : waiting) + + " term-" + (terminated == null ? 0 : terminated) + "\n"; Integer guildCount = stats.GetGuildCount(); Integer userCount = stats.GetUserCount(); - out += "\n----- [Counts] -----\n" - + "Guilds: " + guildCount + "\n" - + " Users: " + userCount; + out += "\n----- [Cache] -----\n" + + "Cached Guilds: " + guildCount + "\n" + + " Cached Users: " + userCount; out += "\n```"; res.Call(out); diff --git a/src/core/lua/Plugin.java b/src/core/lua/Plugin.java index b58a87c..67c97d9 100644 --- a/src/core/lua/Plugin.java +++ b/src/core/lua/Plugin.java @@ -8,6 +8,7 @@ import java.util.stream.Stream; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaValue; +import org.luaj.vm2.lib.jse.CoerceJavaToLua; import org.luaj.vm2.lib.jse.JsePlatform; // To promote flexibility, plugins are lua file with predefined callbacks. @@ -47,11 +48,11 @@ public class Plugin } } - public String Run(String args) + public String Run(String args, PluginUser user) { try { - LuaValue res = func_plugin.call(LuaValue.valueOf(args)); + LuaValue res = func_plugin.call(LuaValue.valueOf(args), user.AsLua()); if(!res.isnil()) return res.toString(); diff --git a/src/core/lua/PluginManager.java b/src/core/lua/PluginManager.java index 90593c3..a0e98a2 100644 --- a/src/core/lua/PluginManager.java +++ b/src/core/lua/PluginManager.java @@ -6,6 +6,8 @@ import java.nio.file.Paths; import java.util.ArrayList; import java.util.stream.Stream; +import dataStructures.KittyUser; + // Reads in, handles, and manipulates plugins. Plugins are loaded in the order they appear in the folder. public class PluginManager { @@ -37,12 +39,12 @@ public class PluginManager // Runs all plugins, returning when it gets a non-nill result. // Otherwise, returns null. - public String RunAll(String input) + public String RunAll(String input, KittyUser user) { for(int i = 0; i < plugins.size(); ++i) { Plugin plugin = plugins.get(i); - String out = plugin.Run(input); + String out = plugin.Run(input, new PluginUser(user)); if(out != null) { diff --git a/src/core/lua/PluginStructure.java b/src/core/lua/PluginStructure.java new file mode 100644 index 0000000..989d46d --- /dev/null +++ b/src/core/lua/PluginStructure.java @@ -0,0 +1,12 @@ +package core.lua; + +import org.luaj.vm2.LuaValue; +import org.luaj.vm2.lib.jse.CoerceJavaToLua; + +public class PluginStructure +{ + public LuaValue AsLua() + { + return CoerceJavaToLua.coerce(this); + } +} diff --git a/src/core/lua/PluginUser.java b/src/core/lua/PluginUser.java new file mode 100644 index 0000000..2a46fc2 --- /dev/null +++ b/src/core/lua/PluginUser.java @@ -0,0 +1,13 @@ +package core.lua; + +import dataStructures.KittyUser; + +public class PluginUser extends PluginStructure +{ + public String name; + + public PluginUser(KittyUser user) + { + this.name = user.name; + } +} diff --git a/src/main/Main.java b/src/main/Main.java index d3093e8..aa432e0 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -3,6 +3,7 @@ package main; import javax.security.auth.login.LoginException; import core.*; import core.lua.PluginManager; +import core.lua.PluginUser; import dataStructures.KittyChannel; import dataStructures.KittyGuild; import dataStructures.KittyRole; @@ -52,7 +53,7 @@ public class Main extends ListenerAdapter @Override public void onGuildMessageReceived(GuildMessageReceivedEvent event) - { + { // Tweak the event as necessary if(!PreProcessSetup(event)) return; @@ -71,19 +72,16 @@ public class Main extends ListenerAdapter return; // Track beans! - user.ChangeBeans(1); + user.ChangeBeans(1); // RP logging system RPManager.instance.addLine(channel, user, input); - // - - // Attempt to spin up a command. If the command doesn't exist. // Run plugins right before invoking the commands but after all other setup. if(commandManager.InvokeOnNewThread(guild, channel, user, input, response) == false) { - String pluginOutput = pluginManager.RunAll(input.message); + String pluginOutput = pluginManager.RunAll(input.message, user); if(pluginOutput != null) response.Call(pluginOutput); From aa24708699117a4d82059818c1482c5a8b4aaa78 Mon Sep 17 00:00:00 2001 From: Alex Stewart Date: Sun, 21 Apr 2019 01:37:44 -0700 Subject: [PATCH 7/7] =Updated ForbiddenWord Changed output to ForbiddenWord --- .gitignore | 3 ++- plugins/forbiddenword.lua | 6 +++--- src/core/lua/Plugin.java | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a79a764..eff1f86 100644 --- a/.gitignore +++ b/.gitignore @@ -64,4 +64,5 @@ rp\.txt Rp\.txt rP\.txt -.log \ No newline at end of file +.log +*.log diff --git a/plugins/forbiddenword.lua b/plugins/forbiddenword.lua index ebdbb46..c6dd63c 100644 --- a/plugins/forbiddenword.lua +++ b/plugins/forbiddenword.lua @@ -1,14 +1,14 @@ local time = os.time(); -function plugin(message) - if(string.match(message, "purple"))then +function plugin(message, user) + if(string.match(string.lower(message), "purple"))then local timedif = os.time() - time; time = os.time(); days = (timedif / (60*60*24)); hours = ((timedif / (60*60)) % 24); mins = ((timedif / (60)) % 60); secs = timedif % 60; - return round(days) .. " " .. round(hours) .. " " .. round(mins) .. " " .. round(secs); + return "*GASP!!!* \n" .. user.name .. " said **THE** word! It's been " .. round(days) .. " days, " .. round(hours) .. " hours, " .. round(mins) .. " minutes, and " .. round(secs) .. " seconds since the last time!"; end return nil; diff --git a/src/core/lua/Plugin.java b/src/core/lua/Plugin.java index c9f3808..24add7a 100644 --- a/src/core/lua/Plugin.java +++ b/src/core/lua/Plugin.java @@ -8,7 +8,6 @@ import java.util.stream.Stream; import org.luaj.vm2.Globals; import org.luaj.vm2.LuaValue; -import org.luaj.vm2.lib.jse.CoerceJavaToLua; import org.luaj.vm2.lib.jse.JsePlatform; // To promote flexibility, plugins are lua file with predefined callbacks.