From d42932795212e0d08117444183af3d5a551efa76 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Thu, 15 Apr 2021 23:29:41 -0500 Subject: [PATCH] Refactored JsonFormat and ChatChannel implementations. --- .../Aust1n46/chat/MineverseChat.java | 5 +- .../chat/api/MineverseChatPlayer.java | 7 +-- .../Aust1n46/chat/channel/ChatChannel.java | 22 +++---- .../Aust1n46/chat/json/JsonFormat.java | 60 +++++++++++++++---- .../Aust1n46/chat/json/JsonFormatInfo.java | 56 ----------------- .../Aust1n46/chat/utilities/Format.java | 2 +- 6 files changed, 64 insertions(+), 88 deletions(-) delete mode 100644 src/mineverse/Aust1n46/chat/json/JsonFormatInfo.java diff --git a/src/mineverse/Aust1n46/chat/MineverseChat.java b/src/mineverse/Aust1n46/chat/MineverseChat.java index fe60424..c932638 100644 --- a/src/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/mineverse/Aust1n46/chat/MineverseChat.java @@ -47,7 +47,7 @@ import mineverse.Aust1n46.chat.command.mute.MuteContainer; import mineverse.Aust1n46.chat.database.Database; import mineverse.Aust1n46.chat.database.PlayerData; import mineverse.Aust1n46.chat.gui.GuiSlot; -import mineverse.Aust1n46.chat.json.JsonFormatInfo; +import mineverse.Aust1n46.chat.json.JsonFormat; import mineverse.Aust1n46.chat.listeners.ChatListener; import mineverse.Aust1n46.chat.listeners.CommandListener; import mineverse.Aust1n46.chat.listeners.LoginListener; @@ -79,7 +79,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { // Misc -------------------------------- public static AliasInfo aaInfo; - public static JsonFormatInfo jfInfo; public boolean quickchat = true; private static final Logger log = Logger.getLogger("Minecraft"); @@ -155,8 +154,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Registering Listeners")); // Channel information reference aaInfo = new AliasInfo(this); - jfInfo = new JsonFormatInfo(this); + JsonFormat.initialize(); GuiSlot.initialize(); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data")); diff --git a/src/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java b/src/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java index 6f811e8..299b234 100644 --- a/src/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java +++ b/src/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java @@ -9,7 +9,6 @@ import java.util.Set; import java.util.UUID; import mineverse.Aust1n46.chat.ChatMessage; -import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.command.mute.MuteContainer; import mineverse.Aust1n46.chat.json.JsonFormat; @@ -527,12 +526,12 @@ public class MineverseChatPlayer { public void setJsonFormat() { this.jsonFormat = "Default"; - for(JsonFormat j : MineverseChat.jfInfo.getJsonFormats()) { + for(JsonFormat j : JsonFormat.getJsonFormats()) { if(this.getPlayer().isPermissionSet("venturechat.json." + j.getName())) { - if(MineverseChat.jfInfo.getJsonFormat(this.getJsonFormat()).getPriority() > j.getPriority()) { + if(JsonFormat.getJsonFormat(this.getJsonFormat()).getPriority() > j.getPriority()) { this.jsonFormat = j.getName(); } } } } -} \ No newline at end of file +} diff --git a/src/mineverse/Aust1n46/chat/channel/ChatChannel.java b/src/mineverse/Aust1n46/chat/channel/ChatChannel.java index 6202741..650c739 100644 --- a/src/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/src/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -1,6 +1,8 @@ package mineverse.Aust1n46.chat.channel; import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import org.bukkit.ChatColor; @@ -21,10 +23,12 @@ public class ChatChannel { private static MineverseChat plugin = MineverseChat.getInstance(); private static ChatChannel defaultChatChannel; + @Deprecated private static ChatChannel[] channels; + private static String defaultColor; - private static List chatChannels = new ArrayList(); + private static HashMap chatChannels = new HashMap(); private String name; private String permission; @@ -67,7 +71,8 @@ public class ChatChannel { ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); channels[counter++] = chatChannel; - chatChannels.add(chatChannel); + chatChannels.put(name.toLowerCase(), chatChannel); + chatChannels.put(alias.toLowerCase(), chatChannel); if (defaultChannel) { defaultChatChannel = chatChannel; defaultColor = color; @@ -90,8 +95,8 @@ public class ChatChannel { * * @return {@link List}<{@link ChatChannel}> */ - public static List getChatChannels() { - return chatChannels; + public static Collection getChatChannels() { + return chatChannels.values(); } /** @@ -102,12 +107,7 @@ public class ChatChannel { * @return {@link ChatChannel} */ public static ChatChannel getChannel(String channelName) { - for (ChatChannel c : channels) { - if (c.getName().equalsIgnoreCase(channelName) || c.getAlias().equalsIgnoreCase(channelName)) { - return c; - } - } - return null; + return chatChannels.get(channelName.toLowerCase()); } /** @@ -446,4 +446,4 @@ public class ChatChannel { public boolean equals(Object channel) { return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName()); } -} \ No newline at end of file +} diff --git a/src/mineverse/Aust1n46/chat/json/JsonFormat.java b/src/mineverse/Aust1n46/chat/json/JsonFormat.java index eb1e632..c3ab163 100644 --- a/src/mineverse/Aust1n46/chat/json/JsonFormat.java +++ b/src/mineverse/Aust1n46/chat/json/JsonFormat.java @@ -1,9 +1,17 @@ package mineverse.Aust1n46.chat.json; +import java.util.Collection; +import java.util.HashMap; import java.util.List; -//This class is used to create JsonFormat objects using data from the config file. +import org.bukkit.configuration.ConfigurationSection; + +import mineverse.Aust1n46.chat.MineverseChat; + public class JsonFormat { + private static MineverseChat plugin = MineverseChat.getInstance(); + private static HashMap jsonFormats = new HashMap(); + private List hoverTextName; private List hoverTextPrefix; private List hoverTextSuffix; @@ -30,47 +38,73 @@ public class JsonFormat { this.hoverTextSuffix = hoverTextSuffix; } + public static void initialize() { + ConfigurationSection cs = plugin.getConfig().getConfigurationSection("jsonformatting"); + for(String key : cs.getKeys(false)) { + String name = key; + int priority = cs.getInt(key + ".priority", 0); + List hoverTextName = cs.getStringList(key + ".hover_name"); + List hoverTextPrefix = cs.getStringList(key + ".hover_prefix"); + List hoverTextSuffix = cs.getStringList(key + ".hover_suffix"); + String clickPrefix = cs.getString(key + ".click_prefix"); + String clickName = cs.getString(key + ".click_name"); + String clickNameText = cs.getString(key + ".click_name_text"); + String clickPrefixText = cs.getString(key + ".click_prefix_text"); + String clickSuffixText = cs.getString(key + ".click_suffix_text"); + String clickSuffix = cs.getString(key + ".click_suffix"); + jsonFormats.put(name.toLowerCase(), new JsonFormat(name, priority, hoverTextName, clickName, clickNameText, hoverTextPrefix, clickPrefix, clickPrefixText, clickSuffix, clickSuffixText, hoverTextSuffix)); + } + } + + public static Collection getJsonFormats() { + return jsonFormats.values(); + } + + public static JsonFormat getJsonFormat(String name) { + return jsonFormats.get(name.toLowerCase()); + } + public String getName() { - return this.name; + return name; } public String getClickName() { - return this.clickName; + return clickName; } public String getClickNameText() { - return this.clickNameText; + return clickNameText; } public String getClickSuffix() { - return this.clickSuffix; + return clickSuffix; } public String getClickSuffixText() { - return this.clickSuffixText; + return clickSuffixText; } public int getPriority() { - return this.priority; + return priority; } public List getHoverTextName() { - return this.hoverTextName; + return hoverTextName; } public List getHoverTextPrefix() { - return this.hoverTextPrefix; + return hoverTextPrefix; } public List getHoverTextSuffix() { - return this.hoverTextSuffix; + return hoverTextSuffix; } public String getClickPrefix() { - return this.clickPrefix; + return clickPrefix; } public String getClickPrefixText() { - return this.clickPrefixText; + return clickPrefixText; } -} \ No newline at end of file +} diff --git a/src/mineverse/Aust1n46/chat/json/JsonFormatInfo.java b/src/mineverse/Aust1n46/chat/json/JsonFormatInfo.java deleted file mode 100644 index d601147..0000000 --- a/src/mineverse/Aust1n46/chat/json/JsonFormatInfo.java +++ /dev/null @@ -1,56 +0,0 @@ -package mineverse.Aust1n46.chat.json; - -import java.util.List; - -import org.bukkit.configuration.ConfigurationSection; - -import mineverse.Aust1n46.chat.MineverseChat; - -//This class stores JsonFormat objects in an array and the constructor creates them by reading in data from the config file. -public class JsonFormatInfo { - private JsonFormat[] jf; - - public JsonFormatInfo(MineverseChat plugin) { - String name; - int priority = 0; - List hoverTextName; - List hoverTextPrefix; - List hoverTextSuffix; - String clickPrefix; - String clickName; - String clickNameText; - String clickPrefixText; - String clickSuffix; - String clickSuffixText; - ConfigurationSection cs = plugin.getConfig().getConfigurationSection("jsonformatting"); - jf = new JsonFormat[cs.getKeys(false).size()]; - int x = 0; - for(String key : cs.getKeys(false)) { - name = key; - priority = cs.getInt(key + ".priority", 0); - hoverTextName = cs.getStringList(key + ".hover_name"); - hoverTextPrefix = cs.getStringList(key + ".hover_prefix"); - hoverTextSuffix = cs.getStringList(key + ".hover_suffix"); - clickPrefix = cs.getString(key + ".click_prefix"); - clickName = cs.getString(key + ".click_name"); - clickNameText = cs.getString(key + ".click_name_text"); - clickPrefixText = cs.getString(key + ".click_prefix_text"); - clickSuffixText = cs.getString(key + ".click_suffix_text"); - clickSuffix = cs.getString(key + ".click_suffix"); - JsonFormat j = new JsonFormat(name, priority, hoverTextName, clickName, clickNameText, hoverTextPrefix, clickPrefix, clickPrefixText, clickSuffix, clickSuffixText, hoverTextSuffix); - jf[x ++] = j; - } - } - - public JsonFormat[] getJsonFormats() { - return this.jf; - } - - public JsonFormat getJsonFormat(String name) { - for(JsonFormat j : this.jf) { - if(j.getName().equalsIgnoreCase(name)) - return j; - } - return getJsonFormat("Default"); - } -} \ No newline at end of file diff --git a/src/mineverse/Aust1n46/chat/utilities/Format.java b/src/mineverse/Aust1n46/chat/utilities/Format.java index e5b709a..1e92297 100644 --- a/src/mineverse/Aust1n46/chat/utilities/Format.java +++ b/src/mineverse/Aust1n46/chat/utilities/Format.java @@ -66,7 +66,7 @@ public class Format { * @return {@link String} */ public static String convertToJson(MineverseChatPlayer sender, String format, String chat) { - JsonFormat JSONformat = MineverseChat.jfInfo.getJsonFormat(sender.getJsonFormat()); + JsonFormat JSONformat = JsonFormat.getJsonFormat(sender.getJsonFormat()); String f = escapeJsonChars(format); String c = escapeJsonChars(chat); String json = "[\"\",{\"text\":\"\",\"extra\":[";