From 21e072d3d25a77077f60ad2ce95c62b69ae39913 Mon Sep 17 00:00:00 2001 From: Minenash Date: Tue, 31 Oct 2017 08:48:11 -0400 Subject: [PATCH 1/8] Changed Wording --- src/com/redstoner/modules/seen/Seen.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/redstoner/modules/seen/Seen.java b/src/com/redstoner/modules/seen/Seen.java index a9b9576..0935079 100644 --- a/src/com/redstoner/modules/seen/Seen.java +++ b/src/com/redstoner/modules/seen/Seen.java @@ -84,19 +84,19 @@ public class Seen implements Module, Listener timestamp = (long) DataManager.getOrDefault(p.getUniqueId().toString(), "lastquit", p.getLastPlayed()); } String time = DateUtil.formatDateDiff(timestamp); - message.add("The player &e" + p.getName() + " &7has been " + state + " &7since &e" + time + "&7."); + message.add("&e" + p.getName() + " &7has been " + state + " &7for &e" + time + "&7."); JSONArray _names; if (online) { if (DataManager.getState((Player) p, "afk")) { - message.add("This player is currently &eAFK&7:"); + message.add("They're currently &eAFK&7:"); String reason = (String) DataManager.getOrDefault(p.getUniqueId().toString(), "AFK", "afk_reason", ""); if (reason.length() >= 1) message.add(" &5- " + reason); } if (DataManager.getState((Player) p, "vanished")) - message.add("This player is currently &evanished&7!"); + message.add("They're currently &evanished&7!"); _names = names.get(p.getUniqueId()); } else @@ -104,7 +104,7 @@ public class Seen implements Module, Listener _names = loadNames(p.getUniqueId()); } if (_names != null && _names.size() > 1) - message.add("This player has also been known as: &e" + message.add("They've also been known as: &e" + _names.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e")); if (sender.hasPermission("utils.seen.ip")) { @@ -116,10 +116,10 @@ public class Seen implements Module, Listener else _ips = loadIPs(p.getUniqueId()); if (_ips != null && _ips.size() > 0) - message.add("This player has joined with the following IPs: &e" + message.add("They've joined with the following IPs: &e" + _ips.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e")); } - message.add("This players current IP is: &a" + message.add("Their current IP is: &a" + DataManager.getOrDefault(p.getUniqueId().toString(), "ip", "unknown")); } getLogger().message(sender, message.toArray(new String[] {})); From 8d2266669a55204c2abe175c42612092dac1abb3 Mon Sep 17 00:00:00 2001 From: Minenash Date: Tue, 31 Oct 2017 08:56:17 -0400 Subject: [PATCH 2/8] Update Seen.java --- src/com/redstoner/modules/seen/Seen.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/redstoner/modules/seen/Seen.java b/src/com/redstoner/modules/seen/Seen.java index 0935079..391e485 100644 --- a/src/com/redstoner/modules/seen/Seen.java +++ b/src/com/redstoner/modules/seen/Seen.java @@ -31,7 +31,7 @@ import com.redstoner.modules.datamanager.DataManager; @AutoRegisterListener @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 3, compatible = 4) +@Version(major = 4, minor = 0, revision = 4, compatible = 4) public class Seen implements Module, Listener { HashMap names = new HashMap<>(); From 5865e277d9b82be5f672f0b7e85980f13e3551fc Mon Sep 17 00:00:00 2001 From: minenash Date: Tue, 16 Jan 2018 19:00:56 -0500 Subject: [PATCH 3/8] Merged Seen and FirstSeen --- .../modules/firstseen/FirstSeen.java | 111 ------------------ src/com/redstoner/modules/seen/Seen.cmd | 26 ++++ src/com/redstoner/modules/seen/Seen.java | 62 +++++++++- 3 files changed, 87 insertions(+), 112 deletions(-) delete mode 100644 src/com/redstoner/modules/firstseen/FirstSeen.java diff --git a/src/com/redstoner/modules/firstseen/FirstSeen.java b/src/com/redstoner/modules/firstseen/FirstSeen.java deleted file mode 100644 index 5005e1a..0000000 --- a/src/com/redstoner/modules/firstseen/FirstSeen.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.redstoner.modules.firstseen; - -import java.text.SimpleDateFormat; -import java.util.Date; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.Statistic; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.nemez.cmdmgr.Command; -import com.redstoner.annotations.Commands; -import com.redstoner.annotations.Version; -import com.redstoner.misc.CommandHolderType; -import com.redstoner.modules.Module; - -@Commands(CommandHolderType.String) -@Version(major = 4, minor = 0, revision = 0, compatible = 4) -public class FirstSeen implements Module -{ - @SuppressWarnings("deprecation") - @Command(hook = "firstseenP") - public void firstseen(CommandSender sender, String person) - { - OfflinePlayer oPlayer = Bukkit.getPlayer(person); - if (oPlayer == null) - oPlayer = Bukkit.getServer().getOfflinePlayer(person); - Long firstJoin = oPlayer.getFirstPlayed(); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String disDate = format.format(new Date(firstJoin)); - if (disDate.equals("1969-12-31 19:00")) - { - getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined."); - } - else - { - getLogger().message(sender, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e."); - } - } - - @Command(hook = "firstseen") - public void firstseen(CommandSender sender) - { - firstseen(sender, sender.getName()); - } - - @Command(hook = "playtimeDef") - public boolean playtime(CommandSender sender) - { - return playtime(sender, sender.getName()); - } - - @Command(hook = "playtime") - public boolean playtime(CommandSender sender, String name) - { - if (name == null) - name = sender.getName(); - Player player = Bukkit.getPlayer(name); - if (player == null) - { - getLogger().message(sender, true, - "That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!"); - return true; - } - int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK); - int days = ticks_lived / 1728000; - int hours = (ticks_lived % 1728000) / 72000; - int minutes = (ticks_lived % 72000) / 1200; - getLogger().message(sender, - "The player &e" + name + " &7has been online for " - + (days == 0 && hours == 0 && minutes == 0 ? "less than a minute." - : ("a total of: &e" + (days != 0 ? (days + "d ") : "") - + ((hours != 0 || days != 0) ? (hours + "h ") : "") - + ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : "")))); - return true; - } - - // @noformat - @Override - public String getCommandString() - { - return "command firstseen {\n" - + " [empty] {\n" - + " run firstseen;\n" - + " type player;\n" - + " help Gives the date and time they first joined;\n" - + " perm utils.firstseen;\n" - + " }\n" - + " [string:person] {\n" - + " run firstseenP person;\n" - + " help Gives the date and time when a player first joined;\n" - + " perm utils.firstseen.other;\n" - + " }\n" - + "}\n" - + "command playtime {\n" - + " [empty] {\n" - + " type player;\n" - + " run playtimeDef;\n" - + " perm utils.playtime;\n" - + " help Displays your total playtime!;\n" - + " }\n" - + " [string:name] {\n" - + " run playtime name;\n" - + " perm utils.playtime.others;\n" - + " help Displays the playtime of another player. The player must be online!;\n" - + " }\n" - + "}"; - } - // @format -} diff --git a/src/com/redstoner/modules/seen/Seen.cmd b/src/com/redstoner/modules/seen/Seen.cmd index 03f9efb..711f625 100644 --- a/src/com/redstoner/modules/seen/Seen.cmd +++ b/src/com/redstoner/modules/seen/Seen.cmd @@ -10,4 +10,30 @@ command seen { perm utils.seen; run seen2 player ips; } +} +command firstseen { + [empty] { + run firstseen; + type player; + help Gives the date and time they first joined; + perm utils.firstseen; + } + [string:person] { + run firstseenP person; + help Gives the date and time when a player first joined; + perm utils.firstseen.other; + } +} +command playtime { + [empty] { + type player; + run playtimeDef; + perm utils.playtime; + help Displays your total playtime!; + } + [string:name] { + run playtime name; + perm utils.playtime.others; + help Displays the playtime of another player. The player must be online!; + } } \ No newline at end of file diff --git a/src/com/redstoner/modules/seen/Seen.java b/src/com/redstoner/modules/seen/Seen.java index a9b9576..665a737 100644 --- a/src/com/redstoner/modules/seen/Seen.java +++ b/src/com/redstoner/modules/seen/Seen.java @@ -1,12 +1,15 @@ package com.redstoner.modules.seen; import java.io.File; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.Statistic; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -31,7 +34,7 @@ import com.redstoner.modules.datamanager.DataManager; @AutoRegisterListener @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 3, compatible = 4) +@Version(major = 4, minor = 0, revision = 4, compatible = 4) public class Seen implements Module, Listener { HashMap names = new HashMap<>(); @@ -201,4 +204,61 @@ public class Seen implements Module, Listener else return (JSONArray) json.get("ips"); } + + @SuppressWarnings("deprecation") + @Command(hook = "firstseenP") + public void firstseen(CommandSender sender, String person) + { + OfflinePlayer oPlayer = Bukkit.getPlayer(person); + if (oPlayer == null) + oPlayer = Bukkit.getServer().getOfflinePlayer(person); + Long firstJoin = oPlayer.getFirstPlayed(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String disDate = format.format(new Date(firstJoin)); + if (disDate.equals("1969-12-31 19:00")) + { + getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined."); + } + else + { + getLogger().message(sender, "&3" + oPlayer.getName() + " &efirst joined&a " + disDate + "&e."); + } + } + + @Command(hook = "firstseen") + public void firstseen(CommandSender sender) + { + firstseen(sender, sender.getName()); + } + + @Command(hook = "playtimeDef") + public boolean playtime(CommandSender sender) + { + return playtime(sender, sender.getName()); + } + + @Command(hook = "playtime") + public boolean playtime(CommandSender sender, String name) + { + if (name == null) + name = sender.getName(); + Player player = Bukkit.getPlayer(name); + if (player == null) + { + getLogger().message(sender, true, + "That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!"); + return true; + } + int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK); + int days = ticks_lived / 1728000; + int hours = (ticks_lived % 1728000) / 72000; + int minutes = (ticks_lived % 72000) / 1200; + getLogger().message(sender, + "The player &e" + name + " &7has been online for " + + (days == 0 && hours == 0 && minutes == 0 ? "less than a minute." + : ("a total of: &e" + (days != 0 ? (days + "d ") : "") + + ((hours != 0 || days != 0) ? (hours + "h ") : "") + + ((minutes != 0 || hours != 0 || days != 0) ? (minutes + "m") : "")))); + return true; + } } From ae02c2c9b67da7a27da63c904de28ac7fe12d144 Mon Sep 17 00:00:00 2001 From: Pepich Date: Fri, 19 Jan 2018 03:34:57 +0100 Subject: [PATCH 4/8] Fixed stripcolor, fixed %% escaping --- src/com/redstoner/modules/socialspy/Socialspy.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/redstoner/modules/socialspy/Socialspy.java b/src/com/redstoner/modules/socialspy/Socialspy.java index b5a8fb3..8faa82c 100644 --- a/src/com/redstoner/modules/socialspy/Socialspy.java +++ b/src/com/redstoner/modules/socialspy/Socialspy.java @@ -25,7 +25,7 @@ import com.redstoner.modules.datamanager.DataManager; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 0, compatible = 4) +@Version(major = 4, minor = 0, revision = 1, compatible = 4) public class Socialspy implements CoreModule { @Command(hook = "config_prefix_default") @@ -130,7 +130,7 @@ public class Socialspy implements CoreModule @Command(hook = "commands_list") public boolean commands_list(CommandSender sender) { - ArrayList message = new ArrayList(); + ArrayList message = new ArrayList<>(); JSONArray commands = (JSONArray) DataManager.getOrDefault(sender, "commands", getDefaultCommandList()); if (commands == null || commands.size() == 0) message.add("You are not listening to any commands!"); @@ -265,7 +265,7 @@ public class Socialspy implements CoreModule if (s.equals("on")) message = ChatColor.stripColor(message); else if (s.equals("partial")) - message = message.replace("§", "&"); + message = message.replace("§", "&&"); String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); // Replace escaped % with placeholder format = format.replace("%%", "§§"); @@ -284,7 +284,7 @@ public class Socialspy implements CoreModule format = format.replace("%c", command); format = format.replace("%m", message); // Convert placeholder back - format = format.replace("§§", "%%"); + format = format.replace("§§", "%"); return format; } @@ -305,7 +305,7 @@ public class Socialspy implements CoreModule if (s.equals("on")) message = ChatColor.stripColor(message); else if (s.equals("partial")) - message = message.replace("§", "&"); + message = message.replace("§", "&&"); String format = (String) DataManager.getOrDefault(formatHolder, "format", getDefaultFormat()); // Replace escaped % with placeholder format = format.replace("%%", "§§"); @@ -324,7 +324,7 @@ public class Socialspy implements CoreModule format = format.replace("%c", command); format = format.replace("%m", message); // Convert placeholder back - format = format.replace("§§", "%%"); + format = format.replace("§§", "%"); return format; } From 7e07dcf70723871daf3eb08440261cf4f9a1be54 Mon Sep 17 00:00:00 2001 From: Pepich Date: Fri, 19 Jan 2018 04:39:01 +0100 Subject: [PATCH 5/8] Fixed sudo blacklist not working on console --- src/com/redstoner/modules/misc/Misc.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/redstoner/modules/misc/Misc.java b/src/com/redstoner/modules/misc/Misc.java index 3520411..2f56ec5 100644 --- a/src/com/redstoner/modules/misc/Misc.java +++ b/src/com/redstoner/modules/misc/Misc.java @@ -32,7 +32,7 @@ import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.String) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 2, compatible = 4) +@Version(major = 4, minor = 0, revision = 3, compatible = 4) public class Misc implements Module, Listener { private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop", @@ -218,7 +218,7 @@ public class Misc implements Module, Listener String[] args = command.split(" "); for (String regex : sudoBlacklist) { - if (args[0].matches("\\/" + regex)) + if (args[0].matches((target.equals(Bukkit.getConsoleSender()) ? "" : "\\/") + regex)) { getLogger().message(sender, true, "You can't sudo anyone into using that command!"); return true; From 753951d03a8f32439514e88bf038d2831c6a4e47 Mon Sep 17 00:00:00 2001 From: Minenash Date: Sat, 20 Jan 2018 15:08:19 -0500 Subject: [PATCH 6/8] Changed Wording --- src/com/redstoner/modules/seen/Seen.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/com/redstoner/modules/seen/Seen.java b/src/com/redstoner/modules/seen/Seen.java index 665a737..3a82dda 100644 --- a/src/com/redstoner/modules/seen/Seen.java +++ b/src/com/redstoner/modules/seen/Seen.java @@ -68,7 +68,7 @@ public class Seen implements Module, Listener } if (p == null || (!p.isOnline() && !p.hasPlayedBefore())) { - getLogger().message(sender, true, "That player has never joined the server!"); + getLogger().message(sender, true, "§e" + player + "§7 has never joined the server!"); return true; } boolean cansee = (sender instanceof Player ? p instanceof Player && ((Player) sender).canSee((Player) p) @@ -87,19 +87,19 @@ public class Seen implements Module, Listener timestamp = (long) DataManager.getOrDefault(p.getUniqueId().toString(), "lastquit", p.getLastPlayed()); } String time = DateUtil.formatDateDiff(timestamp); - message.add("The player &e" + p.getName() + " &7has been " + state + " &7since &e" + time + "&7."); + message.add("&e" + p.getName() + " &7has been " + state + " &7for &e" + time + "&7."); JSONArray _names; if (online) { if (DataManager.getState((Player) p, "afk")) { - message.add("This player is currently &eAFK&7:"); + message.add("They're currently &eAFK&7:"); String reason = (String) DataManager.getOrDefault(p.getUniqueId().toString(), "AFK", "afk_reason", ""); if (reason.length() >= 1) message.add(" &5- " + reason); } if (DataManager.getState((Player) p, "vanished")) - message.add("This player is currently &evanished&7!"); + message.add("They're currently &evanished&7!"); _names = names.get(p.getUniqueId()); } else @@ -107,7 +107,7 @@ public class Seen implements Module, Listener _names = loadNames(p.getUniqueId()); } if (_names != null && _names.size() > 1) - message.add("This player has also been known as: &e" + message.add("They've also been known as: &e" + _names.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e")); if (sender.hasPermission("utils.seen.ip")) { @@ -119,10 +119,10 @@ public class Seen implements Module, Listener else _ips = loadIPs(p.getUniqueId()); if (_ips != null && _ips.size() > 0) - message.add("This player has joined with the following IPs: &e" + message.add("They have joined with the following IPs: &e" + _ips.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e")); } - message.add("This players current IP is: &a" + message.add("Their current IP is: &a" + DataManager.getOrDefault(p.getUniqueId().toString(), "ip", "unknown")); } getLogger().message(sender, message.toArray(new String[] {})); @@ -215,7 +215,7 @@ public class Seen implements Module, Listener Long firstJoin = oPlayer.getFirstPlayed(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String disDate = format.format(new Date(firstJoin)); - if (disDate.equals("1969-12-31 19:00")) + if (disDate.equals("1970-01-01 00:00")) { getLogger().message(sender, true, "&3" + oPlayer.getName() + "&c has never joined."); } @@ -246,9 +246,9 @@ public class Seen implements Module, Listener if (player == null) { getLogger().message(sender, true, - "That player couldn't be found! Hint: Currently, you can only check statistics of players that are online!"); + "§e" + name + "§7 couldn't be found! Hint: Currently, you can only check statistics of players that are online!"); return true; - } + } int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK); int days = ticks_lived / 1728000; int hours = (ticks_lived % 1728000) / 72000; From 544bb7020ed0fcf94fb149dfa2ffc51f0a26ff81 Mon Sep 17 00:00:00 2001 From: minenash Date: Sun, 21 Jan 2018 17:10:15 -0500 Subject: [PATCH 7/8] Merged Imout into Vanish. Also commands moved to cmd file. --- src/com/redstoner/modules/imout/Imout.java | 61 -------------------- src/com/redstoner/modules/vanish/Vanish.cmd | 33 +++++++++++ src/com/redstoner/modules/vanish/Vanish.java | 60 ++++++++++--------- 3 files changed, 62 insertions(+), 92 deletions(-) delete mode 100644 src/com/redstoner/modules/imout/Imout.java create mode 100644 src/com/redstoner/modules/vanish/Vanish.cmd diff --git a/src/com/redstoner/modules/imout/Imout.java b/src/com/redstoner/modules/imout/Imout.java deleted file mode 100644 index f7001fe..0000000 --- a/src/com/redstoner/modules/imout/Imout.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.redstoner.modules.imout; - -import java.util.ArrayList; -import java.util.List; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.nemez.cmdmgr.Command; -import com.redstoner.annotations.Commands; -import com.redstoner.annotations.Version; -import com.redstoner.misc.CommandHolderType; -import com.redstoner.misc.Utils; -import com.redstoner.modules.Module; - -@Commands(CommandHolderType.String) -@Version(major = 4, minor = 0, revision = 0, compatible = 4) -public class Imout implements Module -{ - List imout_toggle_list = new ArrayList(); - - @Command(hook = "imout") - public void onImoutCommand(CommandSender sender) - { - String symbol; - Player s = (Player) sender; - String name = sender.getName(); - if (imout_toggle_list.contains(name)) - { - symbol = "§a§l+"; - getLogger().message(sender, "§eWelcome back! You are no longer hidden", ""); - s.performCommand("vanish off"); - s.performCommand("act off"); - imout_toggle_list.remove(name); - } - else - { - symbol = "§c§l-"; - getLogger().message(sender, "§e§oPoof!§e You are now gone!", ""); - s.performCommand("vanish on"); - s.performCommand("act on"); - imout_toggle_list.add(name); - } - Utils.broadcast(symbol, " §7" + name, null); - } - - // @noformat - @Override - public String getCommandString() - { - return "command imout {\n" + - " [empty] {\n" + - " help Makes you magically disappear;\n" + - " type player;\n" + - " perm utils.imout;\n" + - " run imout;\n" + - " }\n" + - "}"; - } - // @format -} diff --git a/src/com/redstoner/modules/vanish/Vanish.cmd b/src/com/redstoner/modules/vanish/Vanish.cmd new file mode 100644 index 0000000..618a4c1 --- /dev/null +++ b/src/com/redstoner/modules/vanish/Vanish.cmd @@ -0,0 +1,33 @@ +command vanish { + [empty] { + help Toggles your vanish status.; + type player; + run vanish; + perm utils.vanish; + } + on { + help Turns your vanish on.; + type player; + run vanish_on; + perm utils.vanish; + } + off { + help Turns your vanish off.; + type player; + run vanish_off; + perm utils.vanish; + } + [string:name] { + help Toggles someone elses vanish; + run vanish_other name; + perm utils.vanishother; + } +} +command imout { + [empty] { + help Makes you magically disappear; + type player; + perm utils.imout; + run imout; + } +} \ No newline at end of file diff --git a/src/com/redstoner/modules/vanish/Vanish.java b/src/com/redstoner/modules/vanish/Vanish.java index 6ac0d09..d4e57e8 100644 --- a/src/com/redstoner/modules/vanish/Vanish.java +++ b/src/com/redstoner/modules/vanish/Vanish.java @@ -2,6 +2,7 @@ package com.redstoner.modules.vanish; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map.Entry; import java.util.UUID; @@ -23,12 +24,13 @@ import com.redstoner.misc.Utils; import com.redstoner.modules.Module; import com.redstoner.modules.datamanager.DataManager; -@Commands(CommandHolderType.String) +@Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 3, compatible = 4) +@Version(major = 4, minor = 1, revision = 0, compatible = 4) public class Vanish implements Module, Listener { private ArrayList vanished = new ArrayList<>(); + List imouted = new ArrayList(); private HashMap> vanishOthers = new HashMap<>(); @Override @@ -141,6 +143,7 @@ public class Vanish implements Module, Listener return true; } + @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(PlayerJoinEvent event) { @@ -209,6 +212,7 @@ public class Vanish implements Module, Listener unvanishPlayer(player); } + @SuppressWarnings("deprecation") private void vanishPlayer(Player player) { for (Player p : Bukkit.getOnlinePlayers()) @@ -220,6 +224,7 @@ public class Vanish implements Module, Listener DataManager.setData(Utils.getID(player), "Seen", "lastquit", System.currentTimeMillis()); } + @SuppressWarnings("deprecation") private void unvanishPlayer(Player player) { for (Player p : Bukkit.getOnlinePlayers()) @@ -228,35 +233,28 @@ public class Vanish implements Module, Listener DataManager.setData(Utils.getID(player), "Seen", "lastjoined", System.currentTimeMillis()); } - // @noformat - @Override - public String getCommandString() + @Command(hook = "imout") + public void onImoutCommand(CommandSender sender) { - return "command vanish {\n" + - " [empty] {\n" + - " help Toggles your vanish status.;\n" + - " type player;\n" + - " run vanish;\n" + - " perm utils.vanish;\n" + - " }\n" + - " on {\n" + - " help Turns your vanish on.;\n" + - " type player;\n" + - " run vanish_on;\n" + - " perm utils.vanish;\n" + - " }\n" + - " off {\n" + - " help Turns your vanish off.;\n" + - " type player;\n" + - " run vanish_off;\n" + - " perm utils.vanish;\n" + - " }\n" + - " [string:name] {\n" + - " help Toggles someone elses vanish;\n" + - " run vanish_other name;\n" + - " perm utils.vanishother;\n" + - " }\n" + - "}"; + String symbol; + Player s = (Player) sender; + String name = sender.getName(); + if (imouted.contains(name)) + { + symbol = "§a§l+"; + getLogger().message(sender, "§eWelcome back! You are no longer hidden", ""); + s.performCommand("vanish off"); + s.performCommand("act off"); + imouted.remove(name); + } + else + { + symbol = "§c§l-"; + getLogger().message(sender, "§e§oPoof!§e You are now gone!", ""); + s.performCommand("vanish on"); + s.performCommand("act on"); + imouted.add(name); + } + Utils.broadcast(symbol, " §7" + name, null); } - // @format } From b0b140fbf37e1e9955970c0ace653237dd0e9cb7 Mon Sep 17 00:00:00 2001 From: Logan Fick Date: Sun, 28 Jan 2018 22:07:25 -0500 Subject: [PATCH 8/8] Reverted merge. --- src/com/redstoner/modules/afk/AFK.java | 11 +- .../modules/buildchat/BuildChat.java | 6 +- src/com/redstoner/modules/chat/Chat.cmd | 53 ------ src/com/redstoner/modules/chat/Chat.java | 136 --------------- .../modules/chatalias/Chatalias.java | 4 +- .../modules/chatgroups/Chatgroups.java | 8 +- .../modules/datamanager/DataManager.cmd | 4 + .../modules/datamanager/DataManager.java | 16 +- src/com/redstoner/modules/ignore/Ignore.cmd | 22 --- src/com/redstoner/modules/ignore/Ignore.java | 159 ------------------ .../modules/illumination/Illumination.java | 50 ++++++ .../redstoner/modules/logs/LogHandler.java | 40 ++--- src/com/redstoner/modules/logs/Logs.java | 2 +- src/com/redstoner/modules/message/Message.cmd | 13 -- .../redstoner/modules/message/Message.java | 69 +------- src/com/redstoner/modules/misc/Misc.cmd | 50 ------ src/com/redstoner/modules/misc/Misc.java | 121 ++++++++++--- .../modules/onlineplayers/OnlinePlayers.java | 7 +- .../redstoner/modules/pmtoggle/Pmtoggle.java | 102 +++++++++++ .../redstoner/modules/reports/Reports.java | 18 +- 20 files changed, 307 insertions(+), 584 deletions(-) delete mode 100644 src/com/redstoner/modules/chat/Chat.cmd delete mode 100644 src/com/redstoner/modules/chat/Chat.java delete mode 100644 src/com/redstoner/modules/ignore/Ignore.cmd delete mode 100644 src/com/redstoner/modules/ignore/Ignore.java create mode 100644 src/com/redstoner/modules/illumination/Illumination.java delete mode 100644 src/com/redstoner/modules/misc/Misc.cmd create mode 100644 src/com/redstoner/modules/pmtoggle/Pmtoggle.java diff --git a/src/com/redstoner/modules/afk/AFK.java b/src/com/redstoner/modules/afk/AFK.java index 66cd506..393c487 100644 --- a/src/com/redstoner/modules/afk/AFK.java +++ b/src/com/redstoner/modules/afk/AFK.java @@ -30,10 +30,10 @@ import com.redstoner.modules.datamanager.DataManager; @Commands(CommandHolderType.File) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 5, compatible = 5) +@Version(major = 4, minor = 0, revision = 4, compatible = 4) public class AFK implements Module, Listener { - private CustomListener listener; + private CustomListener listener = new CustomListener(); boolean move = true, look = false; @Override @@ -43,7 +43,7 @@ public class AFK implements Module, Listener DataManager.setConfig("indicator", "&7[AFK]"); String[] choices = new String[] {"listen", "ignore"}; DataManager.setConfig("move", "listen", choices); - DataManager.setConfig("look", "ignore", choices); + DataManager.setConfig("look", "listen", choices); DataManager.setConfig("chat", "listen", choices); DataManager.setConfig("interact", "listen", choices); DataManager.setConfig("command", "ignore", choices); @@ -53,10 +53,10 @@ public class AFK implements Module, Listener public void migrate(Version old) { Module.super.migrate(old); - if ((old.major() == 4) && (old.minor() == 0) && (old.revision() == 3)) + if ((old.major() == 4) && (old.minor() == 0) && (old.revision()) == 3) { String[] choices = new String[] {"listen", "ignore"}; - DataManager.setConfig("look", "ignore", choices); + DataManager.setConfig("look", "listen", choices); } } @@ -64,7 +64,6 @@ public class AFK implements Module, Listener public void postEnable() { Module.super.postEnable(); - listener = new CustomListener(); update_afk_listeners(Bukkit.getConsoleSender()); } diff --git a/src/com/redstoner/modules/buildchat/BuildChat.java b/src/com/redstoner/modules/buildchat/BuildChat.java index c83b700..8e74bf7 100644 --- a/src/com/redstoner/modules/buildchat/BuildChat.java +++ b/src/com/redstoner/modules/buildchat/BuildChat.java @@ -28,7 +28,7 @@ import com.redstoner.modules.Module; * @author Pepich */ @Commands(CommandHolderType.String) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 1, compatible = 4) +@Version(major = 4, minor = 0, revision = 0, compatible = 4) public class BuildChat implements Module, Listener { private static final char defaultKey = ';'; @@ -45,7 +45,7 @@ public class BuildChat implements Module, Listener keys = new JSONObject(); saveKeys(); } - bctoggled = new ArrayList<>(); + bctoggled = new ArrayList(); return true; } @@ -176,7 +176,7 @@ public class BuildChat implements Module, Listener @Command(hook = "bct_off") public boolean bcToggleOffCommand(CommandSender sender) { - if (bctoggled.remove(((Player) sender).getUniqueId())) + if (bctoggled.remove(((Player) sender).getUniqueId().toString())) getLogger().message(sender, "BCT now §cdisabled"); else getLogger().message(sender, "BCT was already disabled"); diff --git a/src/com/redstoner/modules/chat/Chat.cmd b/src/com/redstoner/modules/chat/Chat.cmd deleted file mode 100644 index 180339f..0000000 --- a/src/com/redstoner/modules/chat/Chat.cmd +++ /dev/null @@ -1,53 +0,0 @@ -command me { - perm utils.me; - [string:text...] { - help /me's in chat.; - run me text; - } -} -command chat { - alias speak; - [string:message...] { - perm utils.chat; - run chat message; - help A way to speak in normal chat with normal formatting if you have ACT or CGT on.; - } -} -command shrug { - [string:message...] { - perm utils.shrug; - run shrug message; - help Appends the shrug emoticon to the end of your message.; - } -} -command say { - [string:message...] { - perm utils.say; - run say message; - help A replacement for the default say command to make the format be more consistant.; - } -} -command sayn { - [string:name] [string:message...] { - perm utils.sayn; - type console; - run sayn name message; - help A replacement for the default say command to make the format be more consistant.; - } -} - -command mute { - [string:player] { - perm utils.chat.admin; - run mute player; - help Mutes a player.; - } -} - -command unmute { - [string:player] { - perm utils.chat.admin; - run unmute player; - help Unmutes a player.; - } -} \ No newline at end of file diff --git a/src/com/redstoner/modules/chat/Chat.java b/src/com/redstoner/modules/chat/Chat.java deleted file mode 100644 index 699bac3..0000000 --- a/src/com/redstoner/modules/chat/Chat.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.redstoner.modules.chat; - -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; - -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.CommandHolderType; -import com.redstoner.misc.Utils; -import com.redstoner.modules.Module; -import com.redstoner.modules.datamanager.DataManager; -import com.redstoner.modules.ignore.Ignore; - -@Commands(CommandHolderType.File) -@AutoRegisterListener -@Version(major = 4, minor = 0, revision = 1, compatible = 4) -public class Chat implements Module, Listener -{ - - @Override - public void firstLoad() - { - Module.super.firstLoad(); - DataManager.setConfig("chat", " %n §7→§r %m"); - DataManager.setConfig("me", " §7- %n §7⇦ %m"); - DataManager.setConfig("say", " §7[§9%n§7]:§r %m"); - DataManager.setConfig("shrug", " %n §7→§r %m ¯\\_(ツ)_/¯"); - } - - @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerChat(AsyncPlayerChatEvent event) - { - Player player = event.getPlayer(); - String message = event.getMessage(); - event.setCancelled(true); - broadcastFormatted("chat", player, message); - } - - @Command(hook = "me") - public boolean me(CommandSender sender, String message) - { - broadcastFormatted("me", sender, message); - return true; - } - - @Command(hook = "chat") - public boolean chat(CommandSender sender, String message) - { - broadcastFormatted("chat", sender, message); - return true; - } - - @Command(hook = "say") - public boolean say(CommandSender sender, String message) - { - String name; - if (sender instanceof Player) - name = ((Player) sender).getName(); - else - name = "§9CONSOLE"; - broadcastFormatted("say", sender, message, name); - return true; - } - - @Command(hook = "sayn") - public boolean say(CommandSender sender, String name, String message) - { - broadcastFormatted("say", sender, message, name); - return true; - } - - @Command(hook = "shrug") - public boolean shrug(CommandSender sender, String message) - { - broadcastFormatted("shrug", sender, message); - return true; - } - - @Command(hook = "mute") - public boolean mute(CommandSender sender, String player) - { - Player p = Bukkit.getPlayer(player); - if (p == null) - { - getLogger().message(sender, true, "That player couldn't be found!"); - return true; - } - DataManager.setData(p, "muted", true); - getLogger().message(sender, "Muted player &e" + Utils.getName(p) + "&7!"); - getLogger().message(p, "You have been &cmuted&7!"); - return true; - } - - @Command(hook = "unmute") - public boolean unmute(CommandSender sender, String player) - { - Player p = Bukkit.getPlayer(player); - if (p == null) - { - getLogger().message(sender, true, "That player couldn't be found!"); - return true; - } - DataManager.setData(p, "muted", false); - getLogger().message(sender, "Unmuted player &e" + Utils.getName(p) + "&7!"); - getLogger().message(p, "You have been &aunmuted&7!"); - return true; - } - - public boolean broadcastFormatted(String format, CommandSender sender, String message) - { - return broadcastFormatted(format, sender, message, Utils.getName(sender)); - } - - public boolean broadcastFormatted(String format, CommandSender sender, String message, String name) - { - if ((boolean) DataManager.getOrDefault(sender, "muted", false)) - { - Utils.noPerm(sender, "You have been muted!"); - getLogger().info(" &7User &e" + Utils.getName(sender) + " &7tried to &e" + format + " &7(&e" + message - + "&7) while being &cmuted&7."); - return false; - } - String raw = (String) DataManager.getConfigOrDefault(format, " %n §7→§r %m"); - String formatted = raw.replace("%n", name).replace("%m", message); - Utils.broadcast("", formatted, ModuleLoader.exists("Ignore") ? Ignore.getIgnoredBy(sender) : null); - return true; - } -} diff --git a/src/com/redstoner/modules/chatalias/Chatalias.java b/src/com/redstoner/modules/chatalias/Chatalias.java index 5a6baa9..a8124e1 100644 --- a/src/com/redstoner/modules/chatalias/Chatalias.java +++ b/src/com/redstoner/modules/chatalias/Chatalias.java @@ -32,11 +32,11 @@ import net.nemez.chatapi.ChatAPI; @Commands(CommandHolderType.String) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 2, compatible = 4) +@Version(major = 4, minor = 0, revision = 1, compatible = 4) public class Chatalias implements Module, Listener { private final String[] commands = new String[] {"e?r", "e?m .+?", "e?t", "e?w", "e?msg .+?", "e?message .+?", - "e?whisper .+?", "e?me", "cgsay", "ac", "bc, say, sayn .+?, chat, shrug"}; + "e?whisper .+?", "e?me", "cgsay", "ac", "bc"}; private JSONObject aliases = new JSONObject(); @Override diff --git a/src/com/redstoner/modules/chatgroups/Chatgroups.java b/src/com/redstoner/modules/chatgroups/Chatgroups.java index 44a53bd..05c39e8 100644 --- a/src/com/redstoner/modules/chatgroups/Chatgroups.java +++ b/src/com/redstoner/modules/chatgroups/Chatgroups.java @@ -24,7 +24,6 @@ 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 com.redstoner.modules.socialspy.Socialspy; import net.nemez.chatapi.ChatAPI; @@ -34,7 +33,7 @@ import net.nemez.chatapi.ChatAPI; * @author Pepich */ @Commands(CommandHolderType.String) @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 2, compatible = 4) +@Version(major = 4, minor = 0, revision = 1, compatible = 4) public class Chatgroups implements Module, Listener { private static final char defaultKey = ':'; @@ -359,16 +358,13 @@ public class Chatgroups implements Module, Listener String name = Utils.getName(sender); String group = getGroup(sender); message = ChatAPI.colorify(null, message); - - BroadcastFilter ignore = ModuleLoader.exists("Ignore")? Ignore.getIgnoredBy(sender) : null; Utils.broadcast("§8[§bCG§8] §9", name + "§8: §6" + message, new BroadcastFilter() { @Override public boolean sendTo(CommandSender recipient) { - String rgroup = getGroup(recipient); - if ( rgroup != null && (ignore == null? true : ignore.sendTo(recipient)) ) + if (rgroup != null) return rgroup.equals(group); else return false; diff --git a/src/com/redstoner/modules/datamanager/DataManager.cmd b/src/com/redstoner/modules/datamanager/DataManager.cmd index 559e6ca..387e2ef 100644 --- a/src/com/redstoner/modules/datamanager/DataManager.cmd +++ b/src/com/redstoner/modules/datamanager/DataManager.cmd @@ -31,4 +31,8 @@ command config { type console; help Deletes all config settings of a given module.; } + remove [string:module] [string:key] { + run remove module key; + help Deletes the specified config setting; + } } \ No newline at end of file diff --git a/src/com/redstoner/modules/datamanager/DataManager.java b/src/com/redstoner/modules/datamanager/DataManager.java index e4b8773..92485d2 100644 --- a/src/com/redstoner/modules/datamanager/DataManager.java +++ b/src/com/redstoner/modules/datamanager/DataManager.java @@ -36,7 +36,7 @@ import com.redstoner.modules.Module; @Commands(CommandHolderType.Stream) @AutoRegisterListener -@Version(major = 4, minor = 1, revision = 5, compatible = 4) +@Version(major = 4, minor = 1, revision = 4, compatible = 4) public final class DataManager implements CoreModule, Listener { protected final File dataFolder = new File(Main.plugin.getDataFolder(), "data"); @@ -651,7 +651,7 @@ public final class DataManager implements CoreModule, Listener if (prefix == null || prefix.equals("")) return list; for (String s : list) - if (s.toLowerCase().startsWith(prefix.toLowerCase())) + if (s.startsWith(prefix)) subset.add(s); return subset; } @@ -675,6 +675,7 @@ public final class DataManager implements CoreModule, Listener case "list": case "get": case "set": + case "remove": { event.setCompletions( subsetWhereStartsWith(module_index, arguments.length == 3 ? arguments[2] : "")); @@ -688,6 +689,7 @@ public final class DataManager implements CoreModule, Listener { case "get": case "set": + case "remove": { Object o = config_data.get(arguments[2]); if (o == null) @@ -769,6 +771,16 @@ public final class DataManager implements CoreModule, Listener return true; } + @Command(hook = "remove") + public boolean remove(CommandSender sender, String module, String key) + { + if (removeConfig_(module, key)) + getLogger().message(sender, "Successfully deleted the config entry §e" + module + "." + key + "§7!"); + else + getLogger().message(sender, true, "Could not delete the config entry §e" + module + "." + key + "§7!"); + return true; + } + @Command(hook = "remove_all") public boolean remove_all(CommandSender sender, String module) { diff --git a/src/com/redstoner/modules/ignore/Ignore.cmd b/src/com/redstoner/modules/ignore/Ignore.cmd deleted file mode 100644 index 382846b..0000000 --- a/src/com/redstoner/modules/ignore/Ignore.cmd +++ /dev/null @@ -1,22 +0,0 @@ -command ignore { - [string:player] { - perm utils.ignore; - run ignore player; - type player; - help Ignores or Unignores a player.; - } - [empty] { - perm utils.ignore; - run list; - type player; - help Lists everyone you ignore.; - } -} -command unignore { - [string:player] { - perm utils.ignore; - run unignore player; - type player; - help Unignore a player.; - } -} \ No newline at end of file diff --git a/src/com/redstoner/modules/ignore/Ignore.java b/src/com/redstoner/modules/ignore/Ignore.java deleted file mode 100644 index a77ca96..0000000 --- a/src/com/redstoner/modules/ignore/Ignore.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.redstoner.modules.ignore; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.UUID; - -import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.json.simple.JSONArray; - -import com.nemez.cmdmgr.Command; -import com.nemez.cmdmgr.Command.AsyncType; -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.Utils; -import com.redstoner.modules.Module; -import com.redstoner.modules.datamanager.DataManager; - -import net.nemez.chatapi.click.Message; - -@Commands(CommandHolderType.File) -@AutoRegisterListener -@Version(major = 4, minor = 0, revision = 0, compatible = 4) -public class Ignore implements Module -{ - - @Command(hook = "unignore", async = AsyncType.ALWAYS) - public boolean unignore(CommandSender sender, String player) - { - return ignore(sender, player, false); - } - - @Command(hook = "ignore", async = AsyncType.ALWAYS) - public boolean ignore(CommandSender sender, String player) - { - return ignore(sender, player, true); - } - - @Command(hook = "list", async = AsyncType.ALWAYS) - public boolean list(CommandSender sender) - { - getLogger().message(sender, "§7You are currently ignoring:"); - - JSONArray ignores = (JSONArray) DataManager.getOrDefault(sender, "ignores", new JSONArray()); - - if (ignores.isEmpty()) - { - new Message(sender, null).appendText(" §7Nobody \\o/").send(); - return true; - } - - String players; - OfflinePlayer pi = Bukkit.getOfflinePlayer(UUID.fromString((String) ignores.get(0))); - players = " §3" + pi.getName() + "§7"; - - for (int i = 1; i < ignores.size(); i++) - { - OfflinePlayer p = Bukkit.getOfflinePlayer(UUID.fromString((String) ignores.get(i))); - players += ", §3" + p.getName() + "§7"; - } - - Message m = new Message(sender, null); - m.appendText(players); - m.send(); - return true; - } - - @SuppressWarnings({"unchecked", "deprecation"}) - public boolean ignore(CommandSender sender, String player, boolean allowIgnore) - { - JSONArray ignores = (JSONArray) DataManager.getOrDefault(sender, "ignores", new JSONArray()); - - Player p = Utils.isUUID(player) ? Bukkit.getPlayer(UUID.fromString(player)) : Bukkit.getPlayer(player); - - OfflinePlayer op = Utils.isUUID(player) ? Bukkit.getOfflinePlayer(UUID.fromString(player)) - : Bukkit.getOfflinePlayer(player); - - String pName = p != null ? p.getDisplayName() : op.getName(); - String pUUID = p != null ? p.getUniqueId().toString() : op.getUniqueId().toString(); - String sUUID = ((Player) sender).getUniqueId().toString(); - - if (pUUID.equals(sUUID)) - { - getLogger().message(sender, true, "§7You can't ignore yourself :P"); - return true; - } - - if (ignores.contains(pUUID)) - { - ignores.remove(pUUID); - getLogger().message(sender, "§7You are no longer ignoring §3" + pName + "§7."); - } - else if (!allowIgnore) - { - getLogger().message(sender, "§7You weren't ignoring §3" + pName + "§7."); - } - else - { - ignores.add(pUUID); - getLogger().message(sender, "§7You are now ignoring §3" + pName + "§7."); - } - DataManager.setData(sender, "ignores", ignores); - return true; - - } - - public static BroadcastFilter getIgnoredBy(CommandSender sender) - { - try - { - Module mod = ModuleLoader.getModule("Ignore"); - Method m = mod.getClass().getDeclaredMethod("_getIgnoredBy", CommandSender.class); - m.setAccessible(true); - return (BroadcastFilter) m.invoke(mod, sender); - } - catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException - | InvocationTargetException e) - {} - return null; - } - - @SuppressWarnings("unused") - private BroadcastFilter _getIgnoredBy(CommandSender sender) - { - return new BroadcastFilter() - { - - private final String sUUID = sender instanceof Player ? ((Player) sender).getUniqueId().toString() - : "CONSOLE"; - - @Override - public boolean sendTo(CommandSender recipient) - { - if (sUUID.equals("CONSOLE")) - return true; - - if (recipient instanceof Player) - { - Player player = (Player) recipient; - - if (player.hasPermission("utils.ignore.override")) - return true; - - JSONArray ignores = (JSONArray) DataManager.getOrDefault(recipient, "ignores", new JSONArray()); - return !ignores.contains(sUUID); - } - else - return true; - } - }; - } - -} diff --git a/src/com/redstoner/modules/illumination/Illumination.java b/src/com/redstoner/modules/illumination/Illumination.java new file mode 100644 index 0000000..a6f1337 --- /dev/null +++ b/src/com/redstoner/modules/illumination/Illumination.java @@ -0,0 +1,50 @@ +package com.redstoner.modules.illumination; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +import com.nemez.cmdmgr.Command; +import com.redstoner.annotations.Commands; +import com.redstoner.annotations.Version; +import com.redstoner.misc.CommandHolderType; +import com.redstoner.modules.Module; + +@Commands(CommandHolderType.String) +@Version(major = 4, minor = 0, revision = 0, compatible = 4) +public class Illumination implements Module +{ + PotionEffect effect = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false); + + @Command(hook = "illuminate") + public void illuminate(CommandSender sender) + { + Player player = (Player) sender; + if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION)) + { + player.removePotionEffect(PotionEffectType.NIGHT_VISION); + getLogger().message(sender, "Night Vision Disabled."); + } + else + { + player.addPotionEffect(effect, true); + getLogger().message(sender, "Night Vision Enabled."); + } + } + + // @noformat + @Override + public String getCommandString() + { + return "command nightvision {\n" + + " [empty] {\n" + + " run illuminate;\n" + + " type player;\n" + + " help Gives the player infinte night vision;\n" + + " perm utils.illuminate;\n" + + " }\n" + + "}"; + } + // @format +} diff --git a/src/com/redstoner/modules/logs/LogHandler.java b/src/com/redstoner/modules/logs/LogHandler.java index 76f3849..b7d7c9d 100644 --- a/src/com/redstoner/modules/logs/LogHandler.java +++ b/src/com/redstoner/modules/logs/LogHandler.java @@ -8,8 +8,6 @@ import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; -import java.util.regex.Pattern; -import java.util.regex.PatternSyntaxException; import java.util.zip.GZIPInputStream; import org.bukkit.command.CommandSender; @@ -63,24 +61,17 @@ public class LogHandler extends Thread regex = "^.*" + regex; if (!regex.endsWith("$")) regex += ".*$"; + boolean singleFile = true; + if (fileName.contains("*")) + singleFile = false; File logFolder = Logs.getLogsDir(); - Pattern fileNamePattern; - try - { - fileNamePattern = Pattern.compile(fileName); - } - catch (PatternSyntaxException e) - { - Logs.logger.message(sender, true, "An error occured trying to compile the filename pattern!"); - stillSearching.remove(sender); - return; - } File[] files = logFolder.listFiles(new FilenameFilter() { + @Override public boolean accept(File dir, String name) { - return fileNamePattern.matcher(name).matches(); + return name.matches(fileName); } }); totalFiles = files.length; @@ -94,17 +85,6 @@ public class LogHandler extends Thread Logs.logger.message(sender, "A total of &e" + totalFiles + "&7 files will be searched!"); boolean progress = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "progress", true); - Pattern searchPattern; - try - { - searchPattern = Pattern.compile(regex); - } - catch (PatternSyntaxException e) - { - Logs.logger.message(sender, true, "An error occured trying to compile the search pattern!"); - stillSearching.remove(sender); - return; - } for (File file : files) { if (file.getName().endsWith(".gz")) @@ -112,13 +92,13 @@ public class LogHandler extends Thread BufferedReader inputReader = new BufferedReader( new InputStreamReader(new GZIPInputStream(new FileInputStream(file)))); - matches += searchStream(inputReader, searchPattern, sender, file.getName()); + matches += searchStream(inputReader, regex, sender, singleFile, file.getName()); inputReader.close(); } else { BufferedReader inputReader = new BufferedReader(new FileReader(file)); - matches += searchStream(inputReader, searchPattern, sender, file.getName()); + matches += searchStream(inputReader, regex, sender, singleFile, file.getName()); inputReader.close(); } filesSearched++; @@ -157,8 +137,8 @@ public class LogHandler extends Thread * @param filename the name of the file that is currently being searched * @return how many matches it found * @throws IOException if something goes wrong */ - private int searchStream(BufferedReader inputReader, Pattern searchPattern, CommandSender sender, String filename) - throws IOException + private int searchStream(BufferedReader inputReader, String regex, CommandSender sender, boolean singleFile, + String filename) throws IOException { String format = (String) DataManager.getOrDefault(Utils.getID(sender), "Logs", "format", Logs.defaultFormat); boolean colors = (boolean) DataManager.getOrDefault(Utils.getID(sender), "Logs", "colors", true); @@ -172,7 +152,7 @@ public class LogHandler extends Thread { totalLines++; currentLine++; - if (searchPattern.matcher(line).matches()) + if (line.matches(regex)) { if (((p != null) && (!p.isOnline()))) { diff --git a/src/com/redstoner/modules/logs/Logs.java b/src/com/redstoner/modules/logs/Logs.java index b54bfc9..bfa96bc 100644 --- a/src/com/redstoner/modules/logs/Logs.java +++ b/src/com/redstoner/modules/logs/Logs.java @@ -15,7 +15,7 @@ import com.redstoner.modules.ModuleLogger; import com.redstoner.modules.datamanager.DataManager; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 4, compatible = 4) +@Version(major = 4, minor = 0, revision = 2, compatible = 4) public class Logs implements Module { public static final String defaultFormat = "§7 > %f: %r"; diff --git a/src/com/redstoner/modules/message/Message.cmd b/src/com/redstoner/modules/message/Message.cmd index 382e52e..a36918b 100644 --- a/src/com/redstoner/modules/message/Message.cmd +++ b/src/com/redstoner/modules/message/Message.cmd @@ -27,17 +27,4 @@ command reply { help Sends a direct message to the last person you talked to.; perm utils.message; } -} - -command pmtoggle { - [empty] { - help Turns off your toggle.; - type player; - run pmtoggle_off; - } - [string:player] { - help Turns on your pmtoggle and locks onto .; - type player; - run pmtoggle player; - } } \ No newline at end of file diff --git a/src/com/redstoner/modules/message/Message.java b/src/com/redstoner/modules/message/Message.java index ee9da0e..349c16a 100644 --- a/src/com/redstoner/modules/message/Message.java +++ b/src/com/redstoner/modules/message/Message.java @@ -1,15 +1,10 @@ package com.redstoner.modules.message; import java.util.HashMap; -import java.util.Map.Entry; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.AsyncPlayerChatEvent; -import org.bukkit.event.player.PlayerQuitEvent; import com.nemez.cmdmgr.Command; import com.nemez.cmdmgr.Command.AsyncType; @@ -21,15 +16,13 @@ import com.redstoner.misc.CommandHolderType; import com.redstoner.misc.Utils; import com.redstoner.modules.Module; import com.redstoner.modules.datamanager.DataManager; -import com.redstoner.modules.ignore.Ignore; import com.redstoner.modules.socialspy.Socialspy; @Commands(CommandHolderType.File) -@Version(major = 4, minor = 0, revision = 3, compatible = 4) +@Version(major = 4, minor = 0, revision = 1, compatible = 4) public class Message implements Module { HashMap replyTargets = new HashMap<>(); - HashMap toggles = new HashMap(); @Command(hook = "message", async = AsyncType.ALWAYS) public boolean message(CommandSender sender, String target, String message) @@ -44,10 +37,6 @@ public class Message implements Module getLogger().message(sender, true, "That player couldn't be found!"); return true; } - else if (ModuleLoader.exists("Ignore")? !Ignore.getIgnoredBy(sender).sendTo(p) : true) { - getLogger().message(sender, true, Utils.getName(p) + " has ignored you. Your message was not sent."); - return true; - } else { if (ModuleLoader.getModule("Socialspy") != null) @@ -88,10 +77,6 @@ public class Message implements Module getLogger().message(sender, true, "You don't have anyone to reply to!"); return true; } - else if (ModuleLoader.exists("Ignore")? !Ignore.getIgnoredBy(sender).sendTo(target) : true) { - getLogger().message(sender, true, Utils.getName(target) + " has ignored you. Your message was not sent."); - return true; - } else { if (ModuleLoader.getModule("Socialspy") != null) @@ -116,56 +101,4 @@ public class Message implements Module replyTargets.put(target, sender); return true; } - - @Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS) - public boolean pmtoggle_off(CommandSender sender) - { - Player player = (Player) sender; - if (toggles.remove(player) != null) - getLogger().message(player, "Your pmtoggle was removed!"); - else - getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle to enabled it."); - return true; - } - - @Command(hook = "pmtoggle", async = AsyncType.ALWAYS) - public boolean pmtoggle(CommandSender sender, String player) - { - Player p = Bukkit.getPlayer(player); - if (p == null && !player.equals("CONSOLE")) - { - getLogger().message(sender, "§cThat player couldn't be found!"); - return true; - } - toggles.put((Player) sender, player); - getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7."); - return true; - } - - @EventHandler - public void onPlayerChat(AsyncPlayerChatEvent event) - { - Player player = event.getPlayer(); - if (toggles.containsKey(player)) - { - Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage()); - event.setCancelled(true); - } - } - - @SuppressWarnings("unlikely-arg-type") - @EventHandler - public void onPlayerQuit(PlayerQuitEvent event) - { - toggles.remove(event.getPlayer()); - String player = event.getPlayer().getName(); - if (toggles.containsValue(player)) - for (Entry entry : toggles.entrySet()) - if (entry.getValue().equals(player)) - { - toggles.remove(player); - getLogger().message(entry.getKey(), - "We removed your pmtoggle for &6" + player + "&7, as they left the game."); - } - } } diff --git a/src/com/redstoner/modules/misc/Misc.cmd b/src/com/redstoner/modules/misc/Misc.cmd deleted file mode 100644 index 2a41104..0000000 --- a/src/com/redstoner/modules/misc/Misc.cmd +++ /dev/null @@ -1,50 +0,0 @@ -command tempadd { - perm pex; - [string:user] [string:group] { - help Adds a user to a group for 1w.; - run tempadddef user group; - } - [string:user] [string:group] [string:duration] { - help Adds a user to a group for a specified duration.; - run tempadd user group duration; - } -} -command echo { - [string:text...] { - help Echoes back to you.; - run echo text; - } -} -command ping { - [empty] { - help Pongs :D; - run ping; - } - [string:password] { - help Pongs :D; - run ping2 password; - } -} -command sudo { - perm utils.sudo; - [string:name] [string:command...] { - help Sudo'es another user (or console); - run sudo name command; - } -} -command hasperm { - [flag:-f] [string:name] [string:node] { - perm utils.hasperm; - run hasperm -f name node; - help Checks if a player has a given permission node or not. Returns \"true/false\" in chat. When -f is set, it returns it unformatted.; - } -} -command nightvision { -alias nv; - [empty] { - run illuminate; - type player; - help Gives the player infinte night vision; - perm utils.illuminate; - } -} \ No newline at end of file diff --git a/src/com/redstoner/modules/misc/Misc.java b/src/com/redstoner/modules/misc/Misc.java index 2a533ed..2f56ec5 100644 --- a/src/com/redstoner/modules/misc/Misc.java +++ b/src/com/redstoner/modules/misc/Misc.java @@ -16,8 +16,6 @@ import org.bukkit.event.block.BlockFromToEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -28,12 +26,13 @@ import com.redstoner.annotations.Version; import com.redstoner.misc.CommandHolderType; import com.redstoner.misc.Utils; import com.redstoner.modules.Module; + import net.nemez.chatapi.ChatAPI; import net.nemez.chatapi.click.Message; -@Commands(CommandHolderType.File) +@Commands(CommandHolderType.String) @AutoRegisterListener -@Version(major = 4, minor = 1, revision = 0, compatible = 4) +@Version(major = 4, minor = 0, revision = 3, compatible = 4) public class Misc implements Module, Listener { private final String[] sudoBlacklist = new String[] {"(.*:)?e?sudo", "(.*:)?script.*", "(.*:)?stop", @@ -169,6 +168,36 @@ public class Misc implements Module, Listener return ((CraftPlayer) player).getHandle().ping; } + @Command(hook = "me") + public boolean me(CommandSender sender, String text) + { + String name; + if (sender instanceof Player) + name = ((Player) sender).getDisplayName(); + else + name = "§9" + sender.getName(); + text = ChatAPI.colorify(sender, text); + Utils.broadcast(" §7- " + name + " §7⇦ ", text, null); + return true; + } + + @Command(hook = "say") + public boolean say(CommandSender sender, String message) + { + String name = Utils.getName(sender); + Utils.broadcast(" §7[§9" + name.replaceAll("[^0-9a-zA-Z§&\\[\\]]", "") + "§7]: ", + "§r" + ChatAPI.colorify(null, message), null); + return true; + } + + @Command(hook = "sayn") + public boolean say(CommandSender sender, String name, String message) + { + Utils.broadcast(" §7[§9" + ChatAPI.colorify(sender, name) + "§7]: ", "§r" + ChatAPI.colorify(null, message), + null); + return true; + } + @Command(hook = "sudo") public boolean sudo(CommandSender sender, String name, String command) { @@ -261,21 +290,73 @@ public class Misc implements Module, Listener return event.isCancelled(); } - PotionEffect nightvision = new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0, false, false); - - @Command(hook = "illuminate") - public void illuminate(CommandSender sender) + // @noformat + @Override + public String getCommandString() { - Player player = (Player) sender; - if (player.hasPotionEffect(PotionEffectType.NIGHT_VISION)) - { - player.removePotionEffect(PotionEffectType.NIGHT_VISION); - getLogger().message(sender, "Night Vision Disabled."); - } - else - { - player.addPotionEffect(nightvision, true); - getLogger().message(sender, "Night Vision Enabled."); - } + return "command tempadd {\n" + + " perm pex;\n" + + " [string:user] [string:group] {\n" + + " help Adds a user to a group for 1w.;\n" + + " run tempadddef user group;\n" + + " }\n" + + " [string:user] [string:group] [string:duration] {\n" + + " help Adds a user to a group for a specified duration.;\n" + + " run tempadd user group duration;\n" + + " }\n" + + "}\n" + + "command echo {\n" + + " [string:text...] {\n" + + " help Echoes back to you.;\n" + + " run echo text;\n" + + " }\n" + + "}\n" + + "command ping {\n" + + " [empty] {\n" + + " help Pongs :D;\n" + + " run ping;\n" + + " }\n" + + " [string:password] {\n" + + " help Pongs :D;\n" + + " run ping2 password;\n" + + " }\n" + + "}\n" + + "command me {\n" + + " perm utils.me;\n" + + " [string:text...] {\n" + + " help /me's in chat.;\n" + + " run me text;\n" + + " }\n" + + "}\n" + + "command sudo {\n" + + " perm utils.sudo;\n" + + " [string:name] [string:command...] {\n" + + " help Sudo'es another user (or console);\n" + + " run sudo name command;\n" + + " }\n" + + "}\n" + + "command hasperm {\n" + + " [flag:-f] [string:name] [string:node] {\n" + + " perm utils.hasperm;\n" + + " run hasperm -f name node;\n" + + " help Checks if a player has a given permission node or not. Returns \"true/false\" in chat. When -f is set, it returns it unformatted.;\n" + + " }\n" + + "}" + + "command say {\n" + + " [string:message...] {\n" + + " perm utils.say;\n" + + " run say message;\n" + + " help A replacement for the default say command to make the format be more consistant.;\n" + + " }\n" + + "}" + + "command sayn {\n" + + " [string:name] [string:message...] {\n" + + " perm utils.sayn;\n" + + " type console;\n" + + " run sayn name message;\n" + + " help A replacement for the default say command to make the format be more consistant.;\n" + + " }\n" + + "}"; } -} \ No newline at end of file + // @format +} diff --git a/src/com/redstoner/modules/onlineplayers/OnlinePlayers.java b/src/com/redstoner/modules/onlineplayers/OnlinePlayers.java index f09d100..bf5a3d6 100644 --- a/src/com/redstoner/modules/onlineplayers/OnlinePlayers.java +++ b/src/com/redstoner/modules/onlineplayers/OnlinePlayers.java @@ -17,10 +17,9 @@ import com.redstoner.annotations.Version; import com.redstoner.misc.JsonManager; import com.redstoner.misc.Main; import com.redstoner.modules.Module; -import com.redstoner.modules.datamanager.DataManager; @AutoRegisterListener -@Version(major = 4, minor = 0, revision = 3, compatible = 4) +@Version(major = 4, minor = 0, revision = 2, compatible = 4) @SuppressWarnings("unchecked") public class OnlinePlayers implements Module, Listener { @@ -34,7 +33,7 @@ public class OnlinePlayers implements Module, Listener saveFile = new File(Main.plugin.getDataFolder(), "players.json"); output = new JSONObject(); players = new JSONArray(); - output.put("dataFormat", "v2"); + output.put("dataFormat", "v1"); rescan(); } @@ -64,8 +63,6 @@ public class OnlinePlayers implements Module, Listener jsonPlayer.put("name", player.getName()); jsonPlayer.put("UUID", player.getUniqueId().toString()); jsonPlayer.put("joined", System.currentTimeMillis()); - jsonPlayer.put("vanished", DataManager.getState(player, "vanished")); - jsonPlayer.put("afk", DataManager.getState(player, "afk")); players.add(jsonPlayer); save(); } diff --git a/src/com/redstoner/modules/pmtoggle/Pmtoggle.java b/src/com/redstoner/modules/pmtoggle/Pmtoggle.java new file mode 100644 index 0000000..3657288 --- /dev/null +++ b/src/com/redstoner/modules/pmtoggle/Pmtoggle.java @@ -0,0 +1,102 @@ +package com.redstoner.modules.pmtoggle; + +import java.util.HashMap; +import java.util.Map.Entry; + +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +import com.nemez.cmdmgr.Command; +import com.nemez.cmdmgr.Command.AsyncType; +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; + +@Commands(CommandHolderType.String) +@AutoRegisterListener +@Version(major = 4, minor = 0, revision = 0, compatible = 4) +public class Pmtoggle implements Module, Listener +{ + HashMap toggles = new HashMap(); + + @Command(hook = "pmtoggle_off", async = AsyncType.ALWAYS) + public boolean pmtoggle_off(CommandSender sender) + { + Player player = (Player) sender; + if (toggles.remove(player) != null) + getLogger().message(player, "Your pmtoggle was removed!"); + else + getLogger().message(player, "You didn't have pmtoggle enabled! Use /pmtoggle to enabled it."); + return true; + } + + @Command(hook = "pmtoggle", async = AsyncType.ALWAYS) + public boolean pmtoggle(CommandSender sender, String player) + { + Player p = Bukkit.getPlayer(player); + if (p == null && !player.equals("CONSOLE")) + { + getLogger().message(sender, "§cThat player couldn't be found!"); + return true; + } + toggles.put((Player) sender, player); + getLogger().message(sender, "Locked your pmtoggle onto §6" + player + "§7."); + return true; + } + + @EventHandler + public void onPlayerChat(AsyncPlayerChatEvent event) + { + Player player = event.getPlayer(); + if (toggles.containsKey(player)) + { + Bukkit.dispatchCommand(player, "m " + toggles.get(player) + " " + event.getMessage()); + event.setCancelled(true); + } + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) + { + toggles.remove(event.getPlayer()); + String player = event.getPlayer().getName(); + if (toggles.containsValue(player)) + { + for (Entry entry : toggles.entrySet()) + { + if (entry.getValue().equals(player)) + { + toggles.remove(player); + getLogger().message(entry.getKey(), + "We removed your pmtoggle for &6" + player + "&7, as they left the game."); + } + } + } + } + + // @noformat + @Override + public String getCommandString() + { + return "command pmtoggle {\n" + + " [empty] {\n" + + " help Turns off your toggle.;\n" + + " type player;\n" + + " run pmtoggle_off;\n" + + " }\n" + + " [string:player] {\n" + + " help Turns on your pmtoggle and locks onto .;\n" + + " type player;\n" + + " run pmtoggle player;\n" + + " }\n" + + "}"; + } + // @format +} diff --git a/src/com/redstoner/modules/reports/Reports.java b/src/com/redstoner/modules/reports/Reports.java index 865ae11..d9effc8 100644 --- a/src/com/redstoner/modules/reports/Reports.java +++ b/src/com/redstoner/modules/reports/Reports.java @@ -26,7 +26,7 @@ import net.md_5.bungee.api.ChatColor; * * @author Redempt */ @Commands(CommandHolderType.String) -@Version(major = 4, minor = 0, revision = 1, compatible = 4) +@Version(major = 4, minor = 0, revision = 0, compatible = 4) public class Reports implements Module { private int task = 0; @@ -40,9 +40,13 @@ public class Reports implements Module reports = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "reports.json")); archived = JsonManager.getArray(new File(Main.plugin.getDataFolder(), "archived_reports.json")); if (reports == null) + { reports = new JSONArray(); + } if (archived == null) + { archived = new JSONArray(); + } // Notify online staff of open reports task = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.plugin, () -> { @@ -54,13 +58,11 @@ public class Reports implements Module { if (player.hasPermission("utils.report")) { - getLogger().message(player, "&cThere are &e" + reports.size() - + " &copen reports!"); + player.sendMessage(ChatColor.RED + "There are " + ChatColor.YELLOW + reports.size() + ChatColor.RED + + " open reports!"); } } - getLogger().info("&cThere are &e" + reports.size() - + " &copen reports!"); - }, 2400, 2400); + } , 2400, 2400); return true; } @@ -90,7 +92,7 @@ public class Reports implements Module Player player = (Player) sender; if (id > reports.size() - 1 || id < 0) { - getLogger().message(sender, true, "Invalid ID!"); + sender.sendMessage(ChatColor.RED + "Invalid ID!"); return; } JSONObject report = (JSONObject) reports.get(id); @@ -112,7 +114,7 @@ public class Reports implements Module // Check for invalid ID if (id > reports.size() - 1 || id < 0) { - getLogger().message(sender, true, "Invalid ID!"); + sender.sendMessage(ChatColor.RED + "Invalid ID!"); return; } // Move report to archived reports