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