From ab137092ca21ddf9ef1f5ee07237b3bccefdd374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Pani=C4=87?= Date: Wed, 17 Apr 2019 23:39:05 +0200 Subject: Fixed saylol bugs + cleaned up code & messages --- .../java/com/redstoner/modules/saylol/Saylol.java | 489 ++++++++++----------- 1 file changed, 240 insertions(+), 249 deletions(-) diff --git a/src/main/java/com/redstoner/modules/saylol/Saylol.java b/src/main/java/com/redstoner/modules/saylol/Saylol.java index 4f30342..2a863ed 100644 --- a/src/main/java/com/redstoner/modules/saylol/Saylol.java +++ b/src/main/java/com/redstoner/modules/saylol/Saylol.java @@ -1,381 +1,372 @@ package com.redstoner.modules.saylol; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerQuitEvent; -import org.json.simple.JSONArray; - import com.nemez.cmdmgr.Command; import com.redstoner.annotations.AutoRegisterListener; import com.redstoner.annotations.Commands; import com.redstoner.annotations.Version; import com.redstoner.coremods.moduleLoader.ModuleLoader; -import com.redstoner.misc.BroadcastFilter; import com.redstoner.misc.CommandHolderType; import com.redstoner.misc.JsonManager; import com.redstoner.misc.Main; import com.redstoner.misc.Utils; import com.redstoner.modules.Module; import com.redstoner.modules.ignore.Ignore; - import net.nemez.chatapi.ChatAPI; import net.nemez.chatapi.click.ClickCallback; import net.nemez.chatapi.click.Message; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerQuitEvent; +import org.json.simple.JSONArray; + +import java.io.File; +import java.util.*; @AutoRegisterListener -@Commands(CommandHolderType.File) -@Version(major = 5, minor = 1, revision = 0, compatible = 4) -public class Saylol implements Module -{ - private long lastLol = 0; +@Commands (CommandHolderType.File) +@Version (major = 5, minor = 2, revision = 0, compatible = 4) +public class Saylol implements Module { private File lolLocation = new File(Main.plugin.getDataFolder(), "lol.json"); + private JSONArray lols, handlers; - private final String LOL_PREFIX = "§8[§blol§8] "; + private Map> searchCache = new HashMap<>(); - private final int PAGE_SIZE = 10; - - @SuppressWarnings("unchecked") + + private final String LOL_PREFIX = "§8[§blol§8] "; + private final int PAGE_SIZE = 10; + + private long lastLol = 0; + + @SuppressWarnings ("unchecked") @Override - public boolean onEnable() - { + public boolean onEnable() { lols = JsonManager.getArray(lolLocation); - if (lols == null) - lols = new JSONArray(); + if (lols == null) lols = new JSONArray(); + handlers = new JSONArray(); - for (int i = 0; i < lols.size(); i++) - handlers.add(new ClickCallback(true, true, "") - { + for (int i = 0; i < lols.size(); i++) { + handlers.add(new ClickCallback(true, true, "") { @Override - public void run(CommandSender sender) - { + public void run(CommandSender sender) { if (handlers.contains(this)) clickAction((Player) sender, handlers.indexOf(this)); else getLogger().message(sender, true, "That lol no longer exists!"); } }); + } + return true; } - + @Override - public void onDisable() - { + public void onDisable() { saveLolsSync(); } - - @SuppressWarnings("unchecked") - @Command(hook = "addlol") - public boolean addLol(CommandSender sender, String text) - { - if (lols.contains(text)) + + @SuppressWarnings ("unchecked") + @Command (hook = "addlol") + public boolean addLol(CommandSender sender, String text) { + if (lols.contains(text)) { getLogger().message(sender, true, "This lol already exists!"); - else - { - getLogger().message(sender, "Successfully added a new lol!"); + } else { lols.add("&e" + text); - handlers.add(new ClickCallback(true, true, "") - { + + handlers.add(new ClickCallback(true, true, "") { @Override - public void run(CommandSender sender) - { + public void run(CommandSender sender) { if (handlers.contains(this)) clickAction((Player) sender, handlers.indexOf(this)); else getLogger().message(sender, true, "That lol no longer exists!"); } }); + saveLols(); searchCache.clear(); + + getLogger().message(sender, "Successfully added a new lol!"); } + return true; } - - @Command(hook = "dellol") - public boolean delLol(CommandSender sender, int id) - { - if (lols.size() == 0) - { - getLogger().message(sender, true, "There are no lols yet!"); - return true; - } - if (id < 0 || id >= lols.size()) - { - getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1)); - return true; - } - getLogger().message(sender, "Successfully deleted the lol: " + lols.remove(id)); + + @Command (hook = "dellol") + public boolean delLol(CommandSender sender, int id) { + if (warnNoLols(sender)) return true; + if (warnLolOutOfBounds(sender, id)) return true; + handlers.remove(id); saveLols(); searchCache.clear(); + + getLogger().message(sender, "Successfully deleted the lol: " + lols.remove(id)); return true; } - - @SuppressWarnings("unchecked") - @Command(hook = "setlol") - public boolean setLol(CommandSender sender, int id, String text) - { - if (lols.size() == 0) - { - getLogger().message(sender, true, "There are no lols yet!"); - return true; - } - if (id < 0 || id >= lols.size()) - { - getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1)); - return true; - } - getLogger().message(sender, "Successfully changed the lol: &e" + lols.get(id) + " &7to: &e" + text); + + @SuppressWarnings ("unchecked") + @Command (hook = "setlol") + public boolean setLol(CommandSender sender, int id, String text) { + if (warnNoLols(sender)) return true; + if (warnLolOutOfBounds(sender, id)) return true; + lols.set(id, text); saveLols(); searchCache.clear(); + + getLogger().message(sender, "Successfully changed the lol: &e" + lols.get(id) + " &7to: &e" + text); return true; } - - @Command(hook = "lolid") - public boolean lolId(CommandSender sender, int id) - { - if (lols.size() == 0) - { - getLogger().message(sender, true, "There are no lols yet!"); - return true; - } + + @Command (hook = "lolid") + public boolean lolId(CommandSender sender, int id) { + if (warnNoLols(sender)) return true; + if (warnLolOutOfBounds(sender, id)) return true; + long time = System.currentTimeMillis(); - if (time - lastLol < 15000) - { - getLogger().message(sender, true, - "You can't use saylol for another " + (14 - (int) Math.ceil((time - lastLol) / 1000)) + "s."); - return true; - } - if (id < 0 || id >= lols.size()) - { - getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1)); - return true; - } - String name; - if (sender instanceof Player) - name = ((Player) sender).getDisplayName(); - else - name = "&9" + sender.getName(); - Utils.broadcast(LOL_PREFIX, ChatAPI.colorify(null, name + "&8: &e" + lols.get(id)), new BroadcastFilter() - { - @Override - public boolean sendTo(CommandSender recipient) - { - return recipient.hasPermission("utils.lol.see"); - } - }); + if (warnTime(sender, time)) return true; + + String name = getSenderName(sender); + + Utils.broadcast( + LOL_PREFIX, + ChatAPI.colorify( + null, + name + "&8: &e" + lols.get(id) + ), + recipient -> recipient.hasPermission("utils.lol.see") + ); + lastLol = time; return true; } - - @Command(hook = "saylol") - public boolean saylol(CommandSender sender) - { - if (lols.size() == 0) - { - getLogger().message(sender, true, "There are no lols yet!"); - return true; - } + + @Command (hook = "saylol") + public boolean saylol(CommandSender sender) { + if (warnNoLols(sender)) return true; + long time = System.currentTimeMillis(); - if (time - lastLol < 15000) - { - getLogger().message(sender, true, - "You can't use saylol for another " + (14 - (int) Math.ceil((time - lastLol) / 1000)) + "s."); - return true; - } - String name; - if (sender instanceof Player) - name = ((Player) sender).getDisplayName(); - else - name = "&9" + sender.getName(); + if (warnTime(sender, time)) return true; + + String name = getSenderName(sender); Random random = new Random(); + int id = random.nextInt(lols.size()); - Utils.broadcast(LOL_PREFIX, ChatAPI.colorify(null, name + "&8: &e" + lols.get(id)), - ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null); + + Utils.broadcast( + LOL_PREFIX, + ChatAPI.colorify( + null, + name + "&8: &e" + lols.get(id) + ), + ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null + ); + lastLol = time; return true; } - - @Command(hook = "listlols") - public boolean listLols(CommandSender sender, int page) - { + + @Command (hook = "listlols") + public boolean listLols(CommandSender sender, int page) { searchCache.put(sender, Arrays.asList(-1)); - - if (lols.size() == 0) - { - getLogger().message(sender, true, "There are no lols yet!"); - return true; - } - page = page - 1; - int start = page * PAGE_SIZE; - int end = start + PAGE_SIZE; - int pages = getMaxPage(lols.size()); - if (start < 0) - { - getLogger().message(sender, true, "Page number too small, must be at least 1!"); - return true; - } - if (start > lols.size()) - { - getLogger().message(sender, true, "Page number too big, must be at most " + pages + "!"); - return true; + + if (warnNoLols(sender)) return true; + + List ids = new ArrayList<>(); + + for (int i = 0; i < lols.size(); i++) { + ids.add(i); } - Message m = new Message(sender, null); - m.appendText(getLogger().getHeader().replace("\n", "")); - m.appendText(" &ePage " + (page + 1) + "/" + pages + ":"); - for (int i = start; i < end && i < lols.size(); i++) - m.appendCallback("\n&a" + i + "&8: &e" + lols.get(i), getCallback(i)); - m.send(); + + printPaged(sender, ids, page); return true; } - - @Command(hook = "listlolsdef") - public boolean listLolsDefault(CommandSender sender) - { + + @Command (hook = "listlolsdef") + public boolean listLolsDefault(CommandSender sender) { return listLols(sender, 1); } - - @Command(hook = "searchlol") - public boolean search(CommandSender sender, boolean sensitive, String text) - { + + @Command (hook = "searchlol") + public boolean search(CommandSender sender, boolean sensitive, String text) { searchCache.remove(sender); - + List results = new ArrayList<>(); - + if (!sensitive) text = text.toLowerCase(); - for (int i = 0; i < lols.size(); i++) - { + for (int i = 0; i < lols.size(); i++) { String lol = (String) lols.get(i); - if ((sensitive ? lol : lol.toLowerCase()).contains(text)) - results.add(i); + + if ((sensitive ? lol : lol.toLowerCase()).contains(text)) results.add(i); } + if (results.isEmpty()) { getLogger().message(sender, "&cCouldn't find any matching lols."); return true; } - + searchCache.put(sender, results); - + Message m = new Message(sender, null); m.appendText(getLogger().getHeader().replace("\n", "")); - - int size = results.size(); - if (size > PAGE_SIZE) - m.appendText(" &ePage 1/" + getMaxPage(size) + ":"); - - for (int i = 0; i < size && i < PAGE_SIZE; i++) - m.appendCallback("\n&a" + i + "&8: &e" + lols.get(results.get(i)), getCallback(i)); - - m.appendText("\n&7Use /lol page to look at other pages."); + + appendResults(m, results); m.send(); return true; } - - @Command(hook = "matchlol") - public boolean match(CommandSender sender, boolean sensitive, String regex) - { - + + @Command (hook = "matchlol") + public boolean match(CommandSender sender, boolean sensitive, String regex) { searchCache.remove(sender); - + List results = new ArrayList<>(); - - if (!sensitive) - regex = regex.toLowerCase(); - for (int i = 0; i < lols.size(); i++) - { + + if (!sensitive) regex = regex.toLowerCase(); + + for (int i = 0; i < lols.size(); i++) { String lol = (String) lols.get(i); - if ((sensitive ? lol : lol.toLowerCase()).matches(regex)) - results.add(i); + if ((sensitive ? lol : lol.toLowerCase()).matches(regex)) results.add(i); } + if (results.isEmpty()) { getLogger().message(sender, "&cCouldn't find any matching lols."); return true; } - + searchCache.put(sender, results); - + Message m = new Message(sender, null); m.appendText(getLogger().getHeader().replace("\n", "")); - - int size = results.size(); - if (size > PAGE_SIZE) - m.appendText(" &ePage 1/" + getMaxPage(size) + ":"); - - for (int i = 0; i < size && i < PAGE_SIZE; i++) - m.appendCallback("\n&a" + i + "&8: &e" + lols.get(i), getCallback(i)); - - m.appendText("\n&7Use /lol page to look at other pages."); + + appendResults(m, results); m.send(); - return true; } - - @Command(hook = "page") + + @Command (hook = "page") public boolean page(CommandSender sender, int page) { List results = searchCache.get(sender); - + if (results == null || results.size() == 0) { - getLogger().message(sender, true, "There's nothing to page through. Either you haven't" - + " done a relivent command, or the lols have changed since you have."); + getLogger().message(sender, true, "There's nothing to page through. This command pages through the last lol command's output."); return true; } - + int pages = getMaxPage(results.size()); - - if (results.get(0) == -1) + + if (results.get(0) == -1) { listLols(sender, page); - else if (page < 1 || page > pages) - getLogger().message(sender, true, "Page number not on range. Must be between &e1&7 and &e" + pages + "&7."); - else { - Message m = new Message(sender, null); - m.appendText(getLogger().getHeader().replace("\n", " &ePage " + page + "/" + pages + ":")); - - for (int i = page*PAGE_SIZE-PAGE_SIZE; i < page*PAGE_SIZE; i++) - m.appendCallback("\n&a" + i + "&8: &e" + lols.get(i), getCallback(i)); - - m.send(); + } else { + printPaged(sender, results, page); } + return true; } - + @EventHandler public void onLeave(PlayerQuitEvent e) { searchCache.remove(e.getPlayer()); } - - public int getMaxPage(int size) { + + private int getMaxPage(int size) { return (int) Math.ceil(size / (double) PAGE_SIZE); } - - public void saveLols() - { + + private void saveLols() { JsonManager.save(lols, lolLocation); } - - public void saveLolsSync() - { + + private void saveLolsSync() { JsonManager.saveSync(lols, lolLocation); } - - public ClickCallback getCallback(int index) - { + + private ClickCallback getCallback(int index) { return (ClickCallback) handlers.get(index); } - - public void clickAction(Player player, int index) - { + + private void clickAction(Player player, int index) { if (player.hasPermission("utils.lol.id")) Bukkit.getScheduler().callSyncMethod(ModuleLoader.getPlugin(), () -> Bukkit.dispatchCommand(player, "lol id " + index)); } + + private String getSenderName(CommandSender sender) { + return sender instanceof Player ? ((Player) sender).getDisplayName() : "&9" + sender.getName(); + } + + private boolean warnNoLols(CommandSender sender) { + if (lols.size() == 0) { + getLogger().message(sender, true, "There are no lols yet!"); + return true; + } + + return false; + } + + private boolean warnTime(CommandSender sender, long time) { + if (time - lastLol < 15000) { + int secs = (14 - (int) Math.ceil((time - lastLol) / 1000)); + getLogger().message(sender, true, "You can't use saylol for another " + secs + "s."); + return true; + } + + return false; + } + + private boolean warnLolOutOfBounds(CommandSender sender, int id) { + if (id < 0 || id >= lols.size()) { + getLogger().message(sender, true, "The ID must be at least 0 and at most " + (lols.size() - 1)); + return true; + } + + return false; + } + + private boolean warnPageOutOfBounds(CommandSender sender, int start, int pages) { + if (start < 0) { + getLogger().message(sender, true, "Page number too small, must be at least 1!"); + return true; + } + + if (start > lols.size()) { + getLogger().message(sender, true, "Page number too big, must be at most " + pages + "!"); + return true; + } + + return false; + } + + private void appendResults(Message m, List results) { + int size = results.size(); + if (size > PAGE_SIZE) m.appendText(" &ePage 1/" + getMaxPage(size) + ":"); + + for (int i = 0; i < size && i < PAGE_SIZE; i++) { + int id = results.get(i); + m.appendCallback("\n&a" + id + "&8: &e" + lols.get(id), getCallback(id)); + } + + m.appendText("\n&7Use /lol page to look at other pages."); + } + + private void printPaged(CommandSender sender, List results, int page) { + page = page - 1; + int start = page * PAGE_SIZE; + int end = start + PAGE_SIZE; + int pages = getMaxPage(results.size()); + + if (warnPageOutOfBounds(sender, start, pages)) return; + + Message m = new Message(sender, null); + m.appendText(getLogger().getHeader().replace("\n", "")); + m.appendText(" &ePage " + (page + 1) + "/" + pages + ":"); + + for (int i = start; i < end && i < results.size(); i++) { + int id = results.get(i); + m.appendCallback("\n&a" + id + "&8: &e" + lols.get(id), getCallback(id)); + } + + m.send(); + } } -- cgit v1.2.3 From aa5b277236ab3f5c5aaba2602567b17fea362fea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Pani=C4=87?= Date: Sat, 27 Apr 2019 00:28:13 +0200 Subject: Made reports use special permission to see the periodic message --- src/main/java/com/redstoner/modules/reports/Reports.cmd | 4 ++-- src/main/java/com/redstoner/modules/reports/Reports.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/redstoner/modules/reports/Reports.cmd b/src/main/java/com/redstoner/modules/reports/Reports.cmd index 8f594d5..cf6260b 100644 --- a/src/main/java/com/redstoner/modules/reports/Reports.cmd +++ b/src/main/java/com/redstoner/modules/reports/Reports.cmd @@ -1,5 +1,5 @@ command report { - perm utils.report; + perm utils.report.player; [string:message...] { run report message; help Report a player or incident; @@ -8,7 +8,7 @@ command report { } command undoreport { alias retractreport; - perm utils.report; + perm utils.report.player; [empty] { run report_retract; help Retracts the last report you sent.; diff --git a/src/main/java/com/redstoner/modules/reports/Reports.java b/src/main/java/com/redstoner/modules/reports/Reports.java index cad76ee..0d90289 100644 --- a/src/main/java/com/redstoner/modules/reports/Reports.java +++ b/src/main/java/com/redstoner/modules/reports/Reports.java @@ -52,7 +52,7 @@ public class Reports implements Module } for (Player player : Bukkit.getOnlinePlayers()) { - if (player.hasPermission("utils.report")) + if (player.hasPermission("utils.report.see")) { getLogger().message(player, "&cThere are &e" + reports.size() + " &copen reports!"); -- cgit v1.2.3 From 2bea114617570e959c04106cc52fe4e0934275bd Mon Sep 17 00:00:00 2001 From: minenash Date: Fri, 31 May 2019 20:22:44 -0400 Subject: Fixed page overload bug --- src/main/java/com/redstoner/modules/saylol/Saylol.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/redstoner/modules/saylol/Saylol.java b/src/main/java/com/redstoner/modules/saylol/Saylol.java index 2a863ed..af415e2 100644 --- a/src/main/java/com/redstoner/modules/saylol/Saylol.java +++ b/src/main/java/com/redstoner/modules/saylol/Saylol.java @@ -255,8 +255,6 @@ public class Saylol implements Module { return true; } - int pages = getMaxPage(results.size()); - if (results.get(0) == -1) { listLols(sender, page); } else { @@ -324,13 +322,13 @@ public class Saylol implements Module { return false; } - private boolean warnPageOutOfBounds(CommandSender sender, int start, int pages) { - if (start < 0) { + private boolean warnPageOutOfBounds(CommandSender sender, int page, int pages) { + if (page <= 0) { getLogger().message(sender, true, "Page number too small, must be at least 1!"); return true; } - if (start > lols.size()) { + if (page > pages) { getLogger().message(sender, true, "Page number too big, must be at most " + pages + "!"); return true; } @@ -356,7 +354,7 @@ public class Saylol implements Module { int end = start + PAGE_SIZE; int pages = getMaxPage(results.size()); - if (warnPageOutOfBounds(sender, start, pages)) return; + if (warnPageOutOfBounds(sender, page, pages)) return; Message m = new Message(sender, null); m.appendText(getLogger().getHeader().replace("\n", "")); -- cgit v1.2.3 From 56218fdbf204bb9fd3cbf79c74ba35062ca87eea Mon Sep 17 00:00:00 2001 From: minenash Date: Fri, 31 May 2019 20:23:16 -0400 Subject: Allowed abot's file to be edited in game. --- src/main/java/com/redstoner/modules/abot/Abot.cmd | 50 ++++ src/main/java/com/redstoner/modules/abot/Abot.java | 306 ++++++++++++++++++++- 2 files changed, 347 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/redstoner/modules/abot/Abot.cmd b/src/main/java/com/redstoner/modules/abot/Abot.cmd index c8bb2d8..1566a64 100644 --- a/src/main/java/com/redstoner/modules/abot/Abot.cmd +++ b/src/main/java/com/redstoner/modules/abot/Abot.cmd @@ -4,4 +4,54 @@ command abot { run abot_reload; perm utils.abot.reload; } + list [flag:-nh] { + help Lists all the answers. Use -nh to move info from hover to chat, recommended for Console; + run abot_list_nh -nh; + perm utils.abot.list; + } + list { + help Lists all the answers. Use -nh to move info from hover to chat, recommended for Console; + run abot_list -nh; + perm utils.abot.list; + } + get [string:name] { + help Gets the properties of an answer.; + run abot_get name; + perm utils.abot.get; + } + add [string:name] { + help Adds an answer to the bot.; + run abot_add name; + perm utils.abot.add; + } + remove [string:name] { + help Removes an answer to the bot.; + run abot_remove name; + perm utils.abot.remove; + } + edit [string:name] name [string:new] { + help Changes the name of an answer.; + run abot_edit_name name new; + perm utils.abot.edit.name; + } + edit [string:name] message [string:new...] { + help Changes the message of an answer.; + run abot_edit_message name new; + perm utils.abot.edit.name; + } + edit [string:name] permission [string:new] { + help Changes the permission of an answer.; + run abot_edit_permission name new; + perm utils.abot.edit.permission; + } + edit [string:name] regex add [string:regex...] { + help Adds a regex from an answer; + run abot_edit_regex_add name regex; + perm utils.abot.edit.regex; + } + edit [string:name] regex remove [string:regex...] { + help Removed a regex from an answer; + run abot_edit_regex_remove name regex; + perm utils.abot.edit.regex; + } } \ No newline at end of file diff --git a/src/main/java/com/redstoner/modules/abot/Abot.java b/src/main/java/com/redstoner/modules/abot/Abot.java index 3cff0c1..2e058ef 100644 --- a/src/main/java/com/redstoner/modules/abot/Abot.java +++ b/src/main/java/com/redstoner/modules/abot/Abot.java @@ -19,13 +19,22 @@ import com.redstoner.misc.JsonManager; import com.redstoner.misc.Main; import com.redstoner.modules.Module; +import net.nemez.chatapi.ChatAPI; +import net.nemez.chatapi.click.Message; + @Commands(CommandHolderType.File) @AutoRegisterListener @Version(major = 5, minor = 0, revision = 0, compatible = 4) +@SuppressWarnings("unchecked") public class Abot implements Module, Listener { private File answerFile = new File(Main.plugin.getDataFolder(), "abot.json"); JSONArray answers; + @Override + public boolean onEnable() { + return loadAnswers(Bukkit.getConsoleSender()); + } + @EventHandler public void onPlayerChat(AsyncPlayerChatEvent event) { for (Object rawObject : answers) { @@ -47,16 +56,295 @@ public class Abot implements Module, Listener { } @Command(hook = "abot_reload") - public void loadAnswers(CommandSender sender) { - answers = JsonManager.getArray(answerFile); - if (answers == null) answers = new JSONArray(); - - getLogger().message(sender, "Loaded the abot.json file!"); + public void loadAnswersCommand(CommandSender sender) { + loadAnswers(sender); } - @Override - public boolean onEnable() { - loadAnswers(Bukkit.getConsoleSender()); + @Command(hook = "abot_list") + public void listAnswers(CommandSender sender) { + listAnswers(sender, false); + } + + @Command(hook = "abot_list_nh") + public void listAnswers(CommandSender sender, boolean nohover) { + if (answers.isEmpty()) + getLogger().message(sender, "There are no Abot answers to list."); + + if (nohover) { + listAnswersNoHover(sender); + return; + } + + Message msg = ChatAPI.createMessage(sender).appendText(getLogger().getHeader()); + msg.appendText("&6Abot Answers:\n"); + + for (int i = 0; i < answers.size(); i++) { + JSONObject entry = (JSONObject) answers.get(i); + JSONArray regexes = (JSONArray) entry.get("regex"); + + String name = (String) entry.get("name"); + String message = (String) entry.get("message"); + String hover = "&6Name: &e" + name + "\n&6Message:&f " + (message.isEmpty()? "&cNone" : message) + + "\n&6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n"); + + if (regexes.isEmpty()) + continue; + + for (Object regex : regexes) + hover += "&6 - &e" + (String) regex; + + if (i > 0) + msg.appendText("&7, "); + msg.appendTextHover("&e" + name, hover); + } + msg.send(); + + } + + public void listAnswersNoHover(CommandSender sender) { + Message msg = ChatAPI.createMessage(sender).appendText(getLogger().getHeader()); + + for (int i = 0; i < answers.size(); i++) { + JSONObject entry = (JSONObject) answers.get(i); + JSONArray regexes = (JSONArray) entry.get("regex"); + + msg.appendText("\n&6Name: &e" + (String) entry.get("name")); + + String message = (String) entry.get("message"); + msg.appendText("\n&f - &6Message:&f " + (message.isEmpty()? "&cNone" : message) + + "\n&f - &6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n")); + + if (regexes.isEmpty()) + continue; + + for (Object regex : regexes) + msg.appendText("&f - &e" + (String) regex); + } + msg.send(); + } + + @Command(hook = "abot_get") + public void getAnswer(CommandSender sender, String name) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with that name."); + return; + } + + Message msg = ChatAPI.createMessage(sender).appendText(getLogger().getHeader()); + + JSONArray regexes = (JSONArray) entry.get("regex"); + + msg.appendText("\n&a" + (String) entry.get("name")); + + String message = (String) entry.get("message"); + msg.appendText("\n &6Message:&f " + (message.isEmpty()? "&cNone" : message) + + "\n &6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n")); + + if (!regexes.isEmpty()) + for (Object regex : regexes) + msg.appendText("&6 - &e" + (String) regex); + + } + + @Command(hook = "abot_add") + public void addAnswer(CommandSender sender, String name) { + if (exists(name)) { + getLogger().message(sender, "That name is already in use."); + return; + } + + JSONObject newEntry = new JSONObject(); + newEntry.put("name", name); + newEntry.put("message", ""); + newEntry.put("hide-perm", null); + newEntry.put("regex", new JSONArray()); + + answers.add(newEntry); + saveAnswers(); + + getLogger().message(sender, "&e" + name + "&7 has been created. Use &e/abot edit &a" + name + + "&e &7to finish setting it up"); + } + + @Command(hook = "abot_remove") + public void removeAnswer(CommandSender sender, String name) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + name + "&7."); + return; + } + + answers.remove(entry); + saveAnswers(); + + getLogger().message(sender, "&e"+name+" &7has been removed."); + } + + @Command(hook = "abot_edit_name") + public void editName(CommandSender sender, String name, String newName) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + newName + "&7."); + return; + } + + if (exists(newName)) { + getLogger().message(sender, "&e" + newName + " &7is already in use."); + return; + } + + String oldName = (String) entry.get("name"); + + answers.remove(entry); + entry.put("name", newName); + answers.add(entry); + saveAnswers(); + + getLogger().message(sender, "Name changed from &e" + oldName + "&7 to &e" + newName + "&7."); + } + + @Command(hook = "abot_edit_permission") + public void editPermission(CommandSender sender, String name, String permission) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + name + "&7."); + return; + } + + String oldPerm = entry.get("hide-perm") == null? "&cNone" : (String) entry.get("hide-perm"); + + answers.remove(entry); + entry.put("hide-perm", permission.equals("null")? null : permission); + answers.add(entry); + saveAnswers(); + + getLogger().message(sender, "Hide Permission changed from &e" + oldPerm + "&7 to &e" + + (permission.equals("null")? "&cNone" : permission) + "&7."); + } + + @Command(hook = "abot_edit_message") + public void editMessage(CommandSender sender, String name, String message) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + name + "&7."); + return; + } + + String oldMessage = entry.get("message").equals("")? "&cEmpty String" : (String) entry.get("message"); + + answers.remove(entry); + entry.put("message", message); + answers.add(entry); + saveAnswers(); + + getLogger().message(sender, "Message changed from " + oldMessage + "&7 to &e" + + (message.isEmpty()? "&cEmpty String" : message) + "&7."); + } + + @Command(hook = "abot_edit_regex_add") + public void editRegexAdd(CommandSender sender, String name, String regex) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + name + "&7."); + return; + } + + answers.remove(entry); + + JSONArray regexes = (JSONArray) entry.get("regex"); + regexes.add(regex); + entry.put("regex", regexes); + + answers.add(entry); + saveAnswers(); + + getLogger().message(sender, "Added the Regex &e" + regex + "&7."); + } + + @Command(hook = "abot_edit_regex_remove") + public void editRegexRemove(CommandSender sender, String name, String regex) { + JSONObject entry = getAnswer(name); + + if (entry == null) { + getLogger().message(sender, "There are no answer with the name &e" + name + "&7."); + return; + } + + answers.remove(entry); + + JSONArray regexes = (JSONArray) entry.get(regex); + + if (!regexes.remove(regex)) + getLogger().message(sender, "The regex,&e" + regex + "&7, is not associated with that answer."); + + else { + entry.put("regex", regexes); + answers.add(entry); + saveAnswers(); + + getLogger().message(sender, "Removed the Regex &e" + regex + "&7."); + } + } + + public JSONObject getAnswer(String name) { + for (Object rawEntry : answers) { + JSONObject entry = (JSONObject) rawEntry; + if (((String)entry.get("name")).equals(name)) + return entry; + } + return null; + } + + public boolean exists(String name) { + for (Object rawEntry : answers) { + JSONObject entry = (JSONObject) rawEntry; + if (((String)entry.get("name")).equals(name)) + return true; + } + return false; + } + + public boolean loadAnswers(CommandSender sender) { + + try { + JSONObject json = JsonManager.getObject(answerFile); + + if (json == null) { + answers = new JSONArray(); + getLogger().message(sender, "Couldn't find Abot's Answers File, creating one."); + saveAnswers(); + } + else if (!json.get("version").toString().equals("2")) { + getLogger().message(sender, true, "abot.json is not the correct version. Aborting!"); + return false; + } + + answers = (JSONArray) json.get("data"); + + } + catch (ClassCastException e) { + answers = JsonManager.getArray(answerFile); + getLogger().message(sender, "Converting abot.json from version 1 to 2."); + saveAnswers(); + } + + + getLogger().message(sender, "Loaded the abot.json file!"); return true; } -} + + public void saveAnswers() { + JSONObject json = new JSONObject(); + json.put("version", 2); + json.put("data", answers); + + JsonManager.save(json, answerFile); + } +} \ No newline at end of file -- cgit v1.2.3 From e738ad0fc6ad351f85a1b6e87cedcc2be50c92c0 Mon Sep 17 00:00:00 2001 From: minenash Date: Fri, 31 May 2019 20:24:44 -0400 Subject: Fixed Abot and Saylol Version Numbers --- src/main/java/com/redstoner/modules/abot/Abot.java | 2 +- src/main/java/com/redstoner/modules/saylol/Saylol.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/redstoner/modules/abot/Abot.java b/src/main/java/com/redstoner/modules/abot/Abot.java index 2e058ef..f4f38a6 100644 --- a/src/main/java/com/redstoner/modules/abot/Abot.java +++ b/src/main/java/com/redstoner/modules/abot/Abot.java @@ -24,7 +24,7 @@ import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 1, revision = 0, compatible = 4) @SuppressWarnings("unchecked") public class Abot implements Module, Listener { private File answerFile = new File(Main.plugin.getDataFolder(), "abot.json"); diff --git a/src/main/java/com/redstoner/modules/saylol/Saylol.java b/src/main/java/com/redstoner/modules/saylol/Saylol.java index af415e2..d25dedd 100644 --- a/src/main/java/com/redstoner/modules/saylol/Saylol.java +++ b/src/main/java/com/redstoner/modules/saylol/Saylol.java @@ -26,7 +26,7 @@ import java.util.*; @AutoRegisterListener @Commands (CommandHolderType.File) -@Version (major = 5, minor = 2, revision = 0, compatible = 4) +@Version (major = 5, minor = 2, revision = 1, compatible = 4) public class Saylol implements Module { private File lolLocation = new File(Main.plugin.getDataFolder(), "lol.json"); -- cgit v1.2.3 From 6e2bf1b5fa32fd23847163f66f8f22804afffa66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Pani=C4=87?= Date: Mon, 29 Apr 2019 00:15:33 +0200 Subject: Added autoReconnect to LoginSecurity --- src/main/java/com/redstoner/modules/loginsecurity/LoginSecurity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/redstoner/modules/loginsecurity/LoginSecurity.java b/src/main/java/com/redstoner/modules/loginsecurity/LoginSecurity.java index e7eb9d4..33ad5f0 100644 --- a/src/main/java/com/redstoner/modules/loginsecurity/LoginSecurity.java +++ b/src/main/java/com/redstoner/modules/loginsecurity/LoginSecurity.java @@ -37,7 +37,7 @@ import com.redstoner.modules.Module; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 5, minor = 1, revision = 0, compatible = 5) +@Version(major = 5, minor = 1, revision = 1, compatible = 5) public class LoginSecurity implements Module, Listener { protected static Map loggingIn; @@ -55,7 +55,7 @@ public class LoginSecurity implements Module, Listener } try { - MysqlDatabase database = MysqlHandler.INSTANCE.getDatabase((String) config.get("database")); + MysqlDatabase database = MysqlHandler.INSTANCE.getDatabase((String) config.get("database") + "?autoReconnect=true"); MysqlField uuid = new MysqlField("uuid", new VarChar(36), true); MysqlField pass = new MysqlField("pass", new VarChar(88), true); database.createTableIfNotExists((String) config.get("table"), uuid, pass); -- cgit v1.2.3 From 53ec8d8846518e35aa02c4b6f457db9f80afec4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Pani=C4=87?= Date: Sat, 4 May 2019 00:15:43 +0200 Subject: Created CrashUtils + implemented findnear command --- .../redstoner/modules/crashutils/CrashUtils.cmd | 9 ++++ .../redstoner/modules/crashutils/CrashUtils.java | 53 ++++++++++++++++++++++ .../com/redstoner/modules/crashutils/module.info | 3 ++ 3 files changed, 65 insertions(+) create mode 100644 src/main/java/com/redstoner/modules/crashutils/CrashUtils.cmd create mode 100644 src/main/java/com/redstoner/modules/crashutils/CrashUtils.java create mode 100644 src/main/java/com/redstoner/modules/crashutils/module.info diff --git a/src/main/java/com/redstoner/modules/crashutils/CrashUtils.cmd b/src/main/java/com/redstoner/modules/crashutils/CrashUtils.cmd new file mode 100644 index 0000000..a330dca --- /dev/null +++ b/src/main/java/com/redstoner/modules/crashutils/CrashUtils.cmd @@ -0,0 +1,9 @@ +command findnear { + perm utils.crashutils; + + [int:range] [string:block] { + help Finds the specified block in the specified range.; + type player; + run findnear range block; + } +} \ No newline at end of file diff --git a/src/main/java/com/redstoner/modules/crashutils/CrashUtils.java b/src/main/java/com/redstoner/modules/crashutils/CrashUtils.java new file mode 100644 index 0000000..eb9590f --- /dev/null +++ b/src/main/java/com/redstoner/modules/crashutils/CrashUtils.java @@ -0,0 +1,53 @@ +package com.redstoner.modules.crashutils; + +import com.nemez.cmdmgr.Command; +import com.redstoner.annotations.AutoRegisterListener; +import com.redstoner.annotations.Commands; +import com.redstoner.annotations.Version; +import com.redstoner.misc.CommandHolderType; +import com.redstoner.modules.Module; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@Commands (CommandHolderType.File) +@AutoRegisterListener +@Version (major = 5, minor = 0, revision = 0, compatible = 4) +public class CrashUtils implements Module { + + @Command (hook = "findnear", async = Command.AsyncType.ALWAYS) + public boolean findNear(CommandSender sender, int range, String block) { + Player player = (Player) sender; + + Material mat = Material.matchMaterial(block); + + if (mat == null) { + getLogger().message(sender, true, block + " is not a valid block."); + return true; + } + + Location playerLoc = player.getLocation(); + + for (int x = playerLoc.getBlockX() - range; x < playerLoc.getBlockX() + range; x++) { + for (int z = playerLoc.getBlockZ() - range; z < playerLoc.getBlockZ() + range; z++) { + for (int y = 0; y < 256; y++) { + Block b = player.getWorld().getBlockAt(x, y, z); + + if (b.getType() == mat) { + Location loc = b.getLocation(); + getLogger().message( + sender, + false, + String.format("Found %s @ %d %d %d", mat.toString(), loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); + } + } + } + } + + getLogger().message(sender, false, String.format("Done searching for %s in a %d block radius.", mat.toString(), range)); + + return true; + } +} diff --git a/src/main/java/com/redstoner/modules/crashutils/module.info b/src/main/java/com/redstoner/modules/crashutils/module.info new file mode 100644 index 0000000..742c9ba --- /dev/null +++ b/src/main/java/com/redstoner/modules/crashutils/module.info @@ -0,0 +1,3 @@ +displayName: CrashUtils +category: Staff +description: A collection of commands to help crashed players \ No newline at end of file -- cgit v1.2.3 From e2fc7126a53f5b44d8eba4fbde46c8f9e3ac72ea Mon Sep 17 00:00:00 2001 From: minenash Date: Sun, 2 Jun 2019 18:13:38 -0400 Subject: Fix /abot list (without hte -nh flag) --- src/main/java/com/redstoner/modules/abot/Abot.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/redstoner/modules/abot/Abot.java b/src/main/java/com/redstoner/modules/abot/Abot.java index f4f38a6..1fb3610 100644 --- a/src/main/java/com/redstoner/modules/abot/Abot.java +++ b/src/main/java/com/redstoner/modules/abot/Abot.java @@ -85,10 +85,12 @@ public class Abot implements Module, Listener { String name = (String) entry.get("name"); String message = (String) entry.get("message"); String hover = "&6Name: &e" + name + "\n&6Message:&f " + (message.isEmpty()? "&cNone" : message) - + "\n&6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n"); + + "\n&6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n"); - if (regexes.isEmpty()) + if (regexes.isEmpty()) { + msg.appendTextHover("&e" + name, hover); continue; + } for (Object regex : regexes) hover += "&6 - &e" + (String) regex; @@ -112,7 +114,7 @@ public class Abot implements Module, Listener { String message = (String) entry.get("message"); msg.appendText("\n&f - &6Message:&f " + (message.isEmpty()? "&cNone" : message) - + "\n&f - &6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n")); + + "\n&f - &6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n")); if (regexes.isEmpty()) continue; @@ -140,7 +142,7 @@ public class Abot implements Module, Listener { String message = (String) entry.get("message"); msg.appendText("\n &6Message:&f " + (message.isEmpty()? "&cNone" : message) - + "\n &6Regexes:" + (regexes.isEmpty()? "&cNone" : "\n")); + + "\n &6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n")); if (!regexes.isEmpty()) for (Object regex : regexes) -- cgit v1.2.3 From 6644184abecc614002789af04e43b03138410681 Mon Sep 17 00:00:00 2001 From: minenash Date: Mon, 3 Jun 2019 13:26:14 -0400 Subject: Fixed bugs --- src/main/java/com/redstoner/modules/abot/Abot.java | 57 +++++++++++++--------- 1 file changed, 35 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/redstoner/modules/abot/Abot.java b/src/main/java/com/redstoner/modules/abot/Abot.java index 1fb3610..d773309 100644 --- a/src/main/java/com/redstoner/modules/abot/Abot.java +++ b/src/main/java/com/redstoner/modules/abot/Abot.java @@ -84,16 +84,14 @@ public class Abot implements Module, Listener { String name = (String) entry.get("name"); String message = (String) entry.get("message"); + String permission = (String) entry.get("hide-perm"); String hover = "&6Name: &e" + name + "\n&6Message:&f " + (message.isEmpty()? "&cNone" : message) - + "\n&6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n"); + + "\n&6Permission: &b" + (permission == null || permission.isEmpty()? "&cNone" : permission) + + "\n&6Regexes: " + (regexes.isEmpty()? "&cNone" : ""); - if (regexes.isEmpty()) { - msg.appendTextHover("&e" + name, hover); - continue; - } - - for (Object regex : regexes) - hover += "&6 - &e" + (String) regex; + if (!regexes.isEmpty()) + for (Object regex : regexes) + hover += "\n&f - &e" + (String) regex; if (i > 0) msg.appendText("&7, "); @@ -113,14 +111,14 @@ public class Abot implements Module, Listener { msg.appendText("\n&6Name: &e" + (String) entry.get("name")); String message = (String) entry.get("message"); + String permission = (String) entry.get("hide-perm"); msg.appendText("\n&f - &6Message:&f " + (message.isEmpty()? "&cNone" : message) + + "\n&f - &6Permission: &b" + (permission == null || permission.isEmpty()? "&cNone" : permission) + "\n&f - &6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n")); - if (regexes.isEmpty()) - continue; - - for (Object regex : regexes) - msg.appendText("&f - &e" + (String) regex); + if (!regexes.isEmpty()) + for (Object regex : regexes) + msg.appendText("&f - &e" + (String) regex); } msg.send(); } @@ -138,16 +136,18 @@ public class Abot implements Module, Listener { JSONArray regexes = (JSONArray) entry.get("regex"); - msg.appendText("\n&a" + (String) entry.get("name")); + msg.appendText("&6Name: &e" + (String) entry.get("name")); String message = (String) entry.get("message"); - msg.appendText("\n &6Message:&f " + (message.isEmpty()? "&cNone" : message) - + "\n &6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n")); + String permission = (String) entry.get("hide-perm"); + msg.appendText("\n&f - &6Message:&f " + (message.isEmpty()? "&cNone" : message) + + "\n&f - &6Permission: &b" + (permission == null || permission.isEmpty()? "&cNone" : permission) + + "\n&f - &6Regexes: " + (regexes.isEmpty()? "&cNone" : "\n")); - if (!regexes.isEmpty()) + if (!regexes.isEmpty()) for (Object regex : regexes) - msg.appendText("&6 - &e" + (String) regex); - + msg.appendText("&f - &e" + (String) regex); + msg.send(); } @Command(hook = "abot_add") @@ -298,7 +298,7 @@ public class Abot implements Module, Listener { public JSONObject getAnswer(String name) { for (Object rawEntry : answers) { JSONObject entry = (JSONObject) rawEntry; - if (((String)entry.get("name")).equals(name)) + if (((String)entry.get("name")).equalsIgnoreCase(name)) return entry; } return null; @@ -307,7 +307,8 @@ public class Abot implements Module, Listener { public boolean exists(String name) { for (Object rawEntry : answers) { JSONObject entry = (JSONObject) rawEntry; - if (((String)entry.get("name")).equals(name)) + Object ename = entry.get("name"); + if (ename != null && ((String) ename).equalsIgnoreCase(name)) return true; } return false; @@ -331,8 +332,20 @@ public class Abot implements Module, Listener { answers = (JSONArray) json.get("data"); } - catch (ClassCastException e) { + catch (ClassCastException e) { //catches if abot.json is using the old format. answers = JsonManager.getArray(answerFile); + + // Names unnamed answers + for (Object rawEntry : answers) { + JSONObject entry = (JSONObject) rawEntry; + if (entry.get("name") == null) { + String name = "Unknown"; + for (int i = 0; exists(name) ; i++) + name = "Unknown" + i; + entry.put("name", name); + } + } + getLogger().message(sender, "Converting abot.json from version 1 to 2."); saveAnswers(); } -- cgit v1.2.3 From 720650d871511a322279fb4edad67ed1fdc2621b Mon Sep 17 00:00:00 2001 From: minenash Date: Thu, 6 Jun 2019 22:53:01 -0400 Subject: Fixed paging being one off --- src/main/java/com/redstoner/modules/saylol/Saylol.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/redstoner/modules/saylol/Saylol.java b/src/main/java/com/redstoner/modules/saylol/Saylol.java index d25dedd..11dedab 100644 --- a/src/main/java/com/redstoner/modules/saylol/Saylol.java +++ b/src/main/java/com/redstoner/modules/saylol/Saylol.java @@ -323,12 +323,12 @@ public class Saylol implements Module { } private boolean warnPageOutOfBounds(CommandSender sender, int page, int pages) { - if (page <= 0) { + if (page < 0) { getLogger().message(sender, true, "Page number too small, must be at least 1!"); return true; } - if (page > pages) { + if (page >= pages) { getLogger().message(sender, true, "Page number too big, must be at most " + pages + "!"); return true; } -- cgit v1.2.3 From 0f9bebbb5f5811300593cc5099dde09586ddfe42 Mon Sep 17 00:00:00 2001 From: minenash Date: Thu, 6 Jun 2019 22:58:58 -0400 Subject: Bumped Reoprt's version number --- src/main/java/com/redstoner/modules/reports/Reports.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/redstoner/modules/reports/Reports.java b/src/main/java/com/redstoner/modules/reports/Reports.java index 0d90289..22cd669 100644 --- a/src/main/java/com/redstoner/modules/reports/Reports.java +++ b/src/main/java/com/redstoner/modules/reports/Reports.java @@ -26,7 +26,7 @@ import net.nemez.chatapi.click.Message; * * @author Redempt */ @Commands(CommandHolderType.File) -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 1, revision = 0, compatible = 4) public class Reports implements Module { private int task = 0; -- cgit v1.2.3 From fac1212bd9e9f9bd66ef2aaa556b91acaec0221d Mon Sep 17 00:00:00 2001 From: minenash Date: Fri, 7 Jun 2019 12:00:28 -0400 Subject: Bumped List and Clear version numbers --- src/main/java/com/redstoner/modules/clear/Clear.java | 2 +- src/main/java/com/redstoner/modules/list/List.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/redstoner/modules/clear/Clear.java b/src/main/java/com/redstoner/modules/clear/Clear.java index 10e0df8..40f9996 100644 --- a/src/main/java/com/redstoner/modules/clear/Clear.java +++ b/src/main/java/com/redstoner/modules/clear/Clear.java @@ -12,7 +12,7 @@ import com.redstoner.misc.CommandHolderType; import com.redstoner.modules.Module; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 0, revision = 0, compatible = 4) public class Clear implements Module { @Command(hook = "clear") public boolean clearInventory(CommandSender sender) { diff --git a/src/main/java/com/redstoner/modules/list/List.java b/src/main/java/com/redstoner/modules/list/List.java index 78a35a9..7332ac3 100644 --- a/src/main/java/com/redstoner/modules/list/List.java +++ b/src/main/java/com/redstoner/modules/list/List.java @@ -18,7 +18,7 @@ import com.redstoner.modules.datamanager.DataManager; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) -@Version(major = 5, minor = 0, revision = 0, compatible = 4) +@Version(major = 5, minor = 0, revision = 1, compatible = 4) public class List implements Module { private HashMap onConsole; -- cgit v1.2.3