diff options
author | David Panić <david@panic.tk> | 2018-11-10 22:42:49 +0100 |
---|---|---|
committer | David Panić <david@panic.tk> | 2018-11-10 22:42:49 +0100 |
commit | 0b1c2c69fd0a991ef515ded68eb19163df002a70 (patch) | |
tree | c5c77ac8b5d3f5ff67dafd71c427375090c263c0 /src/main/java/com/redstoner/modules/chatalias | |
parent | fe80557b8a7df5c1d03874931f76e6d88173d302 (diff) |
Code cleanup batch 1
Diffstat (limited to 'src/main/java/com/redstoner/modules/chatalias')
-rw-r--r-- | src/main/java/com/redstoner/modules/chatalias/Chatalias.java | 274 |
1 files changed, 133 insertions, 141 deletions
diff --git a/src/main/java/com/redstoner/modules/chatalias/Chatalias.java b/src/main/java/com/redstoner/modules/chatalias/Chatalias.java index 32e89da..7233f7b 100644 --- a/src/main/java/com/redstoner/modules/chatalias/Chatalias.java +++ b/src/main/java/com/redstoner/modules/chatalias/Chatalias.java @@ -3,6 +3,7 @@ package com.redstoner.modules.chatalias; import java.io.File; import java.util.Set; import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; import java.util.regex.Pattern; import org.bukkit.Bukkit; @@ -27,321 +28,312 @@ import com.redstoner.misc.JsonManager; import com.redstoner.misc.Main; import com.redstoner.modules.Module; -import io.netty.util.internal.ThreadLocalRandom; import net.nemez.chatapi.ChatAPI; import net.nemez.chatapi.click.Message; @Commands(CommandHolderType.File) @AutoRegisterListener @Version(major = 4, minor = 1, revision = 0, 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", "action", "speak", "chatn", "speakn"}; +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", "action", "speak", "chatn", "speakn" }; private JSONObject aliases = new JSONObject(); - + @Override - public boolean onEnable() - { - for (Player p : Bukkit.getOnlinePlayers()) - { + public boolean onEnable() { + for (Player p : Bukkit.getOnlinePlayers()) { loadAliases(p.getUniqueId()); } + return true; } - + @Override - public void onDisable() - { - for (Object key : aliases.keySet()) - { + public void onDisable() { + for (Object key : aliases.keySet()) { UUID uuid = UUID.fromString((String) key); saveAliases(uuid); } } - + @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) - { + public void onPlayerJoin(PlayerJoinEvent event) { loadAliases(event.getPlayer().getUniqueId()); } - + @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { + public void onPlayerLeave(PlayerQuitEvent event) { aliases.remove(event.getPlayer().getUniqueId().toString()); } - + @SuppressWarnings("unchecked") @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerChat(AsyncPlayerChatEvent event) - { + public void onPlayerChat(AsyncPlayerChatEvent event) { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); - if (!aliases.containsKey(uuid.toString())) - { + + if (!aliases.containsKey(uuid.toString())) { loadAliases(player.getUniqueId()); - if (!aliases.containsKey(uuid.toString())) - return; + + if (!aliases.containsKey(uuid.toString())) return; } + JSONObject playerAliases = (JSONObject) aliases.get(uuid.toString()); boolean changed = false; - for (Object key : playerAliases.keySet()) - { + + for (Object key : playerAliases.keySet()) { String keyword = (String) key; String replacement = (String) playerAliases.get(key); - + if (keyword.startsWith("RND;")) { keyword = keyword.replace("RND;", ""); String[] results = replacement.split(" \\|\\| "); + for (String str : results) { System.out.println(str); } + int rand = ThreadLocalRandom.current().nextInt(0, results.length); + replacement = results[rand]; } - - - if (keyword.startsWith("R: ")) - { + + if (keyword.startsWith("R: ")) { keyword = keyword.replace("R: ", ""); event.setMessage(event.getMessage().replaceAll(keyword, replacement)); - } - else - { - if (keyword.startsWith("N: ")) - keyword = keyword.replace("N: ", ""); - else - { + } else { + if (keyword.startsWith("N: ")) keyword = keyword.replace("N: ", ""); + else { changed = true; playerAliases.put("N: " + key, replacement); } + event.setMessage(event.getMessage().replace(keyword, replacement)); } + int maxLength; - try - { + + try { maxLength = Integer.valueOf(getPermissionContent(player, "utils.alias.length.")); - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { maxLength = 255; } - if (event.getMessage().length() > maxLength) - { + + if (event.getMessage().length() > maxLength) { getLogger().message(player, true, "The generated message is too long!"); event.setCancelled(true); return; } } + event.setMessage(ChatAPI.colorify(event.getPlayer(), event.getMessage())); - if (changed) - saveAliases(uuid); + + if (changed) saveAliases(uuid); } - + @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerCommand(PlayerCommandPreprocessEvent event) - { - if (event.isCancelled()) - return; + public void onPlayerCommand(PlayerCommandPreprocessEvent event) { + if (event.isCancelled()) return; + boolean listening = false; String command = ""; - for (String s : commands) - { + + for (String s : commands) { command = "^\\/(.*:)?" + s + " "; - if (event.getMessage().matches(command + ".*")) - { + + if (event.getMessage().matches(command + ".*")) { listening = true; break; } } - if (!listening) - return; + + if (!listening) return; + Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); JSONObject playerAliases = (JSONObject) aliases.get(uuid.toString()); String temp = event.getMessage().replaceAll(command, ""); + command = event.getMessage().replaceAll(Pattern.quote(temp) + "$", ""); event.setMessage(event.getMessage().replaceFirst(Pattern.quote(command), "")); - for (Object key : playerAliases.keySet()) - { + + for (Object key : playerAliases.keySet()) { String keyword = (String) key; String replacement = (String) playerAliases.get(key); - + if (keyword.startsWith("RND;")) { keyword = keyword.replace("RND;", ""); String[] results = replacement.split(" \\|\\| "); + for (String str : results) { System.out.println(str); } + int rand = ThreadLocalRandom.current().nextInt(0, results.length); + replacement = results[rand]; } - - if (keyword.startsWith("R: ")) - { + + if (keyword.startsWith("R: ")) { keyword = keyword.replace("R: ", ""); event.setMessage(event.getMessage().replaceAll(keyword, replacement)); - } - else - { - if (keyword.startsWith("N: ")) - keyword = keyword.replace("N: ", ""); + } else { + if (keyword.startsWith("N: ")) keyword = keyword.replace("N: ", ""); event.setMessage(event.getMessage().replace(keyword, replacement)); } + int maxLength; - try - { + + try { maxLength = Integer.valueOf(getPermissionContent(player, "utils.alias.length.")); - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { maxLength = 255; } - if (event.getMessage().length() > maxLength) - { + + if (event.getMessage().length() > maxLength) { getLogger().message(player, true, "The generated message is too long!"); event.setCancelled(true); + return; } } + event.setMessage(command + event.getMessage()); } - + @SuppressWarnings("unchecked") @Command(hook = "addalias") - public boolean addAlias(CommandSender sender, boolean regex, boolean random, String keyword, String replacement) - { - if (regex && keyword.equals(".*")) - { + public boolean addAlias(CommandSender sender, boolean regex, boolean random, String keyword, String replacement) { + if (regex && keyword.equals(".*")) { getLogger().message(sender, true, "You may not define the wildcard regex as an alias."); return true; } + Player player = (Player) sender; UUID uuid = player.getUniqueId(); JSONObject data = (JSONObject) aliases.get(uuid.toString()); keyword = (random ? "RND;" : "") + (regex ? "R: " : "N: ") + keyword; - if (!data.containsKey(keyword)) - { + + if (!data.containsKey(keyword)) { int maxAmount; - try - { + + try { maxAmount = Integer.valueOf(getPermissionContent(player, "utils.alias.amount.")); - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { maxAmount = 25; } - if (data.size() == maxAmount) - { + + if (data.size() == maxAmount) { getLogger().message(sender, true, "You already reached your maximum of aliases!"); return true; } } + data.put(keyword, replacement); - if (sender.hasPermission("essentials.chat.color")) - getLogger().message(sender, - "Successfully created alias " + keyword.substring(random? 7 : 3) + " §7-> " + replacement + " §7for you."); - else - getLogger().message(sender, - "Successfully created alias " + keyword.substring(random? 7 : 3) + " §7-> " + replacement + " §7for you."); + + if (sender.hasPermission("essentials.chat.color")) { + getLogger().message(sender, "Successfully created alias " + keyword.substring(random ? 7 : 3) + " §7-> " + replacement + " §7for you."); + } else { + getLogger().message(sender, "Successfully created alias " + keyword.substring(random ? 7 : 3) + " §7-> " + replacement + " §7for you."); + } + saveAliases(uuid); return true; } - + @Command(hook = "delalias") - public boolean delAlias(CommandSender sender, boolean regex, boolean random, String keyword) - { + public boolean delAlias(CommandSender sender, boolean regex, boolean random, String keyword) { Player player = (Player) sender; UUID uuid = player.getUniqueId(); JSONObject data = (JSONObject) aliases.get(uuid.toString()); + keyword = (random ? "RND;" : "") + (regex ? "R: " : "N: ") + keyword; - if (data.remove(keyword) != null) - { + + if (data.remove(keyword) != null) { getLogger().message(sender, "Successfully removed the alias!"); saveAliases(uuid); + return true; - } - else - { + } else { getLogger().message(sender, true, "That alias doesn't exist! Hint: regex/no regex does matter for this."); return true; } } - + @Command(hook = "listaliases") - public boolean listAliases(CommandSender sender) - { + public boolean listAliases(CommandSender sender) { Message m = new Message(sender, null).appendText(getLogger().getHeader()); + Player player = (Player) sender; UUID uuid = player.getUniqueId(); JSONObject data = (JSONObject) aliases.get(uuid.toString()); + for (Object key : data.keySet()) { String d_key = (String) key; System.out.println("1" + d_key); - d_key = d_key.replace("RND;N:", "RND:") - .replace("RND;R:", "R-RND:"); - + + d_key = d_key.replace("RND;N:", "RND:").replace("RND;R:", "R-RND:"); m.appendText("\n" + d_key + " §7-> " + data.get(key)); } + m.send(); return true; } - - private String getPermissionContent(Player player, String permnode) - { + + private String getPermissionContent(Player player, String permnode) { Set<PermissionAttachmentInfo> perms = player.getEffectivePermissions(); - for (PermissionAttachmentInfo perm : perms) - if (perm.getPermission().toString().startsWith(permnode)) - return perm.getPermission().replace(permnode, ""); + + for (PermissionAttachmentInfo perm : perms) if (perm.getPermission().toString().startsWith(permnode)) return perm.getPermission().replace(permnode, ""); return null; } - + @SuppressWarnings("unchecked") - private void loadAliases(UUID uuid) - { + private void loadAliases(UUID uuid) { JSONObject defaults = new JSONObject(); defaults.put("dataFormat", "v1"); + JSONObject data = new JSONObject(); data.put("N: ./", "/"); + defaults.put("data", data); - JSONObject playerAliases = JsonManager - .getObject(new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json")); - if (playerAliases == null) - { + + JSONObject playerAliases = JsonManager.getObject(new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json")); + + if (playerAliases == null) { playerAliases = defaults; } + String dataFormat = (String) playerAliases.get("dataFormat"); - if (dataFormat == null) - { + + if (dataFormat == null) { JSONObject temp = new JSONObject(); temp.put("dataFormat", "v1"); + JSONObject tempAliases = new JSONObject(); - { - for (Object key : playerAliases.keySet()) - { - tempAliases.put("N: " + key, playerAliases.get(key)); - } + + for (Object key : playerAliases.keySet()) { + tempAliases.put("N: " + key, playerAliases.get(key)); } + temp.put("data", tempAliases); aliases.put(uuid.toString(), temp.get("data")); - } - else if (dataFormat.equals("v1")) + + } else if (dataFormat.equals("v1")) { aliases.put(uuid.toString(), playerAliases.get("data")); - else - { + } else { getLogger().error("Unknown data format for alias set of player " + uuid.toString()); aliases.put(uuid.toString(), ((JSONObject) defaults.get("data")).clone()); saveAliases(uuid); } } - + @SuppressWarnings("unchecked") - private void saveAliases(UUID uuid) - { + private void saveAliases(UUID uuid) { JSONObject temp = new JSONObject(); + temp.put("dataFormat", "v1"); temp.put("data", aliases.get(uuid.toString())); + JsonManager.save(temp, new File(Main.plugin.getDataFolder(), "aliases/" + uuid.toString() + ".json")); } } |