From b9dcfaf3d9c0febbfa65c3151868b57a304c195b Mon Sep 17 00:00:00 2001 From: Ryandw11 <6239385+ryandw11@users.noreply.github.com> Date: Thu, 25 Jun 2020 02:47:08 -0700 Subject: [PATCH 1/5] Started work on the 1.16 update. --- .classpath | 15 - .gitignore | 6 + .project | 17 - bin/.gitignore | 1 - channel.yml => src/channel.yml | 0 src/chatcolor.yml | 88 +++ config.yml => src/config.yml | 36 +- lang.yml => src/lang.yml | 0 src/me/ryandw11/ultrachat/UltraChat.java | 652 +++++++++--------- .../ultrachat/chatcolor/ChatColorManager.java | 49 ++ .../chatcolor/ChatColorUtil_Latest.java | 140 ++++ .../chatcolor/ChatColorUtil_Old.java | 43 ++ .../ultrachat/chatcolor/ChatColorUtils.java | 19 + .../ultrachat/formatting/ChannelJSON.java | 38 +- .../ultrachat/formatting/Channels.java | 64 -- .../ryandw11/ultrachat/formatting/Normal.java | 87 --- .../ultrachat/formatting/NormalJSON.java | 46 +- .../formatting/PlayerFormatting.java | 21 +- .../ryandw11/ultrachat/formatting/Range.java | 74 -- .../ultrachat/formatting/RangeJSON.java | 20 +- .../ultrachat/formatting/UUIDFormating.java | 27 +- src/me/ryandw11/ultrachat/gui/ColorGUI.java | 2 +- ...GUI_1_13_R2.java => ColorGUI_1_15_R1.java} | 67 +- .../ultrachat/gui/ColorGUI_Latest.java | 32 +- .../ultrachat/gui/ColorGUI_Outdated.java | 371 ---------- src/me/ryandw11/ultrachat/util/ChatUtil.java | 43 ++ plugin.yml => src/plugin.yml | 0 27 files changed, 857 insertions(+), 1101 deletions(-) delete mode 100644 .classpath delete mode 100644 .project delete mode 100644 bin/.gitignore rename channel.yml => src/channel.yml (100%) create mode 100644 src/chatcolor.yml rename config.yml => src/config.yml (80%) rename lang.yml => src/lang.yml (100%) create mode 100644 src/me/ryandw11/ultrachat/chatcolor/ChatColorManager.java create mode 100644 src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java create mode 100644 src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java create mode 100644 src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java delete mode 100644 src/me/ryandw11/ultrachat/formatting/Channels.java delete mode 100644 src/me/ryandw11/ultrachat/formatting/Normal.java delete mode 100644 src/me/ryandw11/ultrachat/formatting/Range.java rename src/me/ryandw11/ultrachat/gui/{ColorGUI_1_13_R2.java => ColorGUI_1_15_R1.java} (87%) delete mode 100644 src/me/ryandw11/ultrachat/gui/ColorGUI_Outdated.java create mode 100644 src/me/ryandw11/ultrachat/util/ChatUtil.java rename plugin.yml => src/plugin.yml (100%) diff --git a/.classpath b/.classpath deleted file mode 100644 index a71162d..0000000 --- a/.classpath +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/.gitignore b/.gitignore index a1c2a23..ef56bf6 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,12 @@ # Mobile Tools for Java (J2ME) .mtj.tmp/ + +# Intellij Files +.idea/ +bin/ +*.iml + # Package Files # *.jar *.war diff --git a/.project b/.project deleted file mode 100644 index 58c0919..0000000 --- a/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - UltraChat - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index 4060509..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/me/ diff --git a/channel.yml b/src/channel.yml similarity index 100% rename from channel.yml rename to src/channel.yml diff --git a/src/chatcolor.yml b/src/chatcolor.yml new file mode 100644 index 0000000..9379ab0 --- /dev/null +++ b/src/chatcolor.yml @@ -0,0 +1,88 @@ +############################################### +# Chat Color # +############################################### +chat_colors: + '&0': 'default' + '&1': 'default' + '&2': 'default' + '&3': 'default' + '&4': 'default' + '&5': 'default' + '&6': 'default' + '&7': 'default' + '&8': 'default' + '&9': 'default' + '&a': 'default' + '&b': 'default' + '&c': 'default' + '&d': 'default' + '&e': 'default' + +############################################### +# Chat Color GUI # +############################################### +color_gui: + 'Dark Blue': + color: '&1' + item: 'BLUE_WOOL' + permission: 'ultrachat.chatcolor.darkblue' + 'Green': + color: '&2' + item: 'GREEN_WOOL' + permission: 'ultrachat.chatcolor.green' + 'Cyan': + color: '&3' + item: 'CYAN_WOOL' + permission: 'ultrachat.chatcolor.cyan' + 'Red': + color: '&4' + item: 'RED_WOOL' + permission: 'ultrachat.chatcolor.red' + 'Purple': + color: '&5' + item: 'PURPLE_WOOL' + permission: 'ultrachat.chatcolor.purple' + 'Orange': + color: '&6' + item: 'ORANGE_WOOL' + permission: 'ultrachat.chatcolor.orange' + 'Light Gray': + color: '&7' + item: 'LIGHT_GRAY_WOOL' + permission: 'ultrachat.chatcolor.lightgray' + 'Gray': + color: '&8' + item: 'GRAY_WOOL' + permission: 'ultrachat.chatcolor.gray' + 'Blue': + color: '&9' + item: 'LAPIS_BLOCK' + permission: 'ultrachat.chatcolor.blue' + 'Lime': + color: '&a' + item: 'LIME_WOOL' + permission: 'ultrachat.chatcolor.lime' + 'Light Blue': + color: '&b' + item: 'BLUE_WOOL' + permission: 'ultrachat.chatcolor.lightblue' + 'Pink': + color: '&c' + item: 'PINK_WOOL' + permission: 'ultrachat.chatcolor.pink' + 'Magenta': + color: '&d' + item: 'MAGENTA_WOOL' + permission: 'ultrachat.chatcolor.magenta' + 'Yellow': + color: '&e' + item: 'YELLOW_WOOL' + permission: 'ultrachat.chatcolor.yellow' + 'White': + color: '&f' + item: 'WHITE_WOOL' + permission: 'ultrachat.chatcolor.white' + 'Black': + color: '&0' + item: 'BLACK_WOOL' + permission: 'ultrachat.chatcolor.black' \ No newline at end of file diff --git a/config.yml b/src/config.yml similarity index 80% rename from config.yml rename to src/config.yml index 8f27fdc..fa2876f 100644 --- a/config.yml +++ b/src/config.yml @@ -58,8 +58,6 @@ Leave_Message: '&e%player% has left the server!' ############################################# # This is a system to create JSON pockets with in a message. # It uses a placerholder system to use. -#If Components are enabled. -Components_Enabled: true #The name of the component: JSON_Components: normal_chat: @@ -103,36 +101,14 @@ console_log: false ######################## # If you give a player the '*' permission they will have every single custom chat. # When json is enabled the message is sent several times based on the number of custom formats you have! -# To advoid this give them the permission -(yourpermission). Ex: -ultrachat.chat.1 +# To avoid this give them the permission -(yourpermission). Ex: -ultrachat.chat.1 Custom_Chat: - #The Chat_Count number must represent how many custom chats you have. - Chat_Count: 5 - #Each new custom chat must be a single number and all of them must go 1 - (what ever number you have last). There can't be any numbers skipped. - 1: - #The permission node you want to give it. *Does not need to match up with the number above* - Permission: 'ultrachat.chat.1' - #The custom format in the chat. The message is added after the end of the string. - Format: '{normal_chat} &7>> ' - 2: - Permission: 'ultrachat.chat.2' - Format: '{normal_chat} &7>> ' - 3: - Permission: 'ultrachat.chat.3' - Format: '{normal_chat} &7>> ' - 4: - Permission: 'ultrachat.chat.4' - #If components are not enabled then you would put this. - Format: '%prefix% %player% %suffix%&7>> ' - 5: - Permission: 'ultrachat.chat.5' - Format: '%prefix% %player% %suffix%&7>> ' - #For any player opped. - Op_Chat: - #The format. - Format: '{normal_chat} &c>> ' + permission_format: + 'ultrachat.chat.example': '{normal_chat} &7>>' + #For any player oped. + Op_Chat: '{normal_chat} &c>> ' #The default chat when a player does not have a custom one. - Default_Chat: - Format: '{normal_chat} &7>>' + Default_Chat: '{normal_chat} &7>>' ############################################## # Channels # diff --git a/lang.yml b/src/lang.yml similarity index 100% rename from lang.yml rename to src/lang.yml diff --git a/src/me/ryandw11/ultrachat/UltraChat.java b/src/me/ryandw11/ultrachat/UltraChat.java index 3fcc14e..9172fb2 100644 --- a/src/me/ryandw11/ultrachat/UltraChat.java +++ b/src/me/ryandw11/ultrachat/UltraChat.java @@ -1,14 +1,20 @@ package me.ryandw11.ultrachat; + import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; +import java.util.Objects; import java.util.UUID; import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.managers.AddonManager; +import me.ryandw11.ultrachat.chatcolor.ChatColorManager; +import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Latest; +import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Old; +import me.ryandw11.ultrachat.chatcolor.ChatColorUtils; import me.ryandw11.ultrachat.commands.ChannelCmd; import me.ryandw11.ultrachat.commands.ChatCommand; import me.ryandw11.ultrachat.commands.CommandTabCompleter; @@ -18,20 +24,13 @@ import me.ryandw11.ultrachat.commands.StaffChatToggle; import me.ryandw11.ultrachat.commands.World; import me.ryandw11.ultrachat.commands.SpyCommand; import me.ryandw11.ultrachat.formatting.ChannelJSON; -import me.ryandw11.ultrachat.formatting.Channels; -import me.ryandw11.ultrachat.formatting.Normal; import me.ryandw11.ultrachat.formatting.NormalJSON; -import me.ryandw11.ultrachat.formatting.Range; import me.ryandw11.ultrachat.formatting.RangeJSON; -import me.ryandw11.ultrachat.gui.ColorGUI; -import me.ryandw11.ultrachat.gui.ColorGUI_1_13_R2; -import me.ryandw11.ultrachat.gui.ColorGUI_Latest; -import me.ryandw11.ultrachat.gui.ColorGUI_Outdated; +import me.ryandw11.ultrachat.gui.*; import me.ryandw11.ultrachat.listner.ConsoleLogChat; import me.ryandw11.ultrachat.listner.JoinListner; import me.ryandw11.ultrachat.listner.NoSwear; import me.ryandw11.ultrachat.listner.Notify; -import me.ryandw11.ultrachat.listner.Notify_1_12; import me.ryandw11.ultrachat.listner.Spy; import me.ryandw11.ultrachat.listner.StopChat; import me.ryandw11.ultrachat.pluginhooks.AdvancedBanMute; @@ -49,153 +48,142 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; + /** * Main Class + * * @author Ryandw11 * @version 2.4 * Updated for 1.14. * (Very few API methods here) */ -public class UltraChat extends JavaPlugin{ - - public static UltraChat plugin; - public Permission perms = null; - public Chat chat = null; - public Boolean Vault; - public Boolean chatStop = false; - public Boolean channelEnabled = false; - public Boolean JSON = false; - public ChatType md; - public String defaultChannel; - public ArrayList stafftoggle = new ArrayList<>(); - public ArrayList spytoggle = new ArrayList<>(); - - public PlaceHolderAPIHook papi; - - public File datafile = new File(getDataFolder() + "/data/players.yml"); - public FileConfiguration data = YamlConfiguration.loadConfiguration(datafile); - public File channelfile; - public FileConfiguration channel; - public String prefix; - public static YamlConfiguration LANG; - public static File LANG_FILE; - - private ColorGUI colorGUI; - public AddonManager addonManager; +public class UltraChat extends JavaPlugin { - + /** + * TODO : I just finished allowing Hex colors in chat and removing the option for chat without JSON. + * Next on the list is to add in the color chat picker. + */ - @Override - public void onEnable(){ + public static UltraChat plugin; + public Permission perms = null; + public Chat chat = null; + public Boolean chatStop = false; + public ChatType md; + public ArrayList stafftoggle = new ArrayList<>(); + public ArrayList spytoggle = new ArrayList<>(); - - /* - * Plugin setup area - */ - plugin = this; - if (getServer().getPluginManager().getPlugin("Vault") == null && !setupChat()) { - getLogger().info(String.format("[%s] - Vault is not found!", getDescription().getName())); - getLogger().severe("§cWarning: You do not have Vault installed! This plugin is now disabled!"); - Bukkit.getPluginManager().disablePlugin(this); - return; - } - if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { - getLogger().info("Hooked into PlaceholderAPI! You can use the place holders!"); - papi = new PAPIEnabled(); - }else { - papi = new PAPIDisabled(); - } - getLogger().info(String.format("UltraChat is enabled and running fine! V: %s", getDescription().getVersion())); - if(getServer().getPluginManager().getPlugin("AdvancedBan") != null && getConfig().getBoolean("pluginhooks.AdvancedBan")){ - getLogger().info("AdvancedBan detected! Activating hook!"); - getLogger().info("Mutes will now work with the chat types."); - Bukkit.getServer().getPluginManager().registerEvents(new AdvancedBanMute(), this); - } - if(getServer().getPluginManager().getPlugin("Essentials") != null && getConfig().getBoolean("pluginhooks.Essentials")){ - getLogger().info("Essentials detected! Activating hook!"); - getLogger().info("Mutes will now work with the chat types."); - Bukkit.getServer().getPluginManager().registerEvents(new EssentialsMute(), this); - } - loadMethod(); - registerConfig(); - loadFile(); - loadChannel(); + public PlaceHolderAPIHook papi; - setupPermissions(); - setupChat(); - setupFormatting(); - loadLang(); - if(plugin.getConfig().getBoolean("bstats")){ - @SuppressWarnings("unused") - Metrics m = new Metrics(this); - } - addonManager = new AddonManager(); - } - - @Override - public void onDisable(){ - getLogger().info("[UltraChat] has been disabled correctly!"); - saveFile(); - saveChannel(); - } - - /** - * Setup the chat formatting. - */ - public void setupFormatting(){ - String type = getConfig().getString("chat_format"); - if(type.equals("")){ - getLogger().info("UltraChat will not format the chat. To change this go into the config."); - return; - } - - boolean isComponents = plugin.getConfig().getBoolean("Components_Enabled"); - - switch(type.toLowerCase()){ - case "normal": - if(isComponents) - Bukkit.getServer().getPluginManager().registerEvents(new NormalJSON(), this); - else - Bukkit.getServer().getPluginManager().registerEvents(new Normal(), this); - md = ChatType.NORMAL; - getLogger().info("Normal chat mode activated!"); - break; - case "channel": - if(isComponents) - Bukkit.getServer().getPluginManager().registerEvents(new ChannelJSON(), this); - else - Bukkit.getServer().getPluginManager().registerEvents(new Channels(), this); - md = ChatType.CHANNEL; - getLogger().info("Channel chat mode enabled."); - break; - case "range": - if(isComponents) - Bukkit.getServer().getPluginManager().registerEvents(new RangeJSON(), this); - else - Bukkit.getServer().getPluginManager().registerEvents(new Range(), this); - getCommand("global").setExecutor(new Global()); - getCommand("world").setExecutor(new World()); - getLogger().info("Range chat mode enabled. The commands /global and /world are now also active."); - md = ChatType.RANGE; - break; - default: - if(isComponents) - Bukkit.getServer().getPluginManager().registerEvents(new NormalJSON(), this); - else - Bukkit.getServer().getPluginManager().registerEvents(new Normal(), this); - md = ChatType.NORMAL; - getLogger().info("Normal chat mode activated!"); - break; - } - } - - //Vault set-up ========================================================= + public File datafile = new File(getDataFolder() + "/data/players.yml"); + public FileConfiguration data = YamlConfiguration.loadConfiguration(datafile); + public File channelfile; + public FileConfiguration channel; - private boolean setupChat() { - RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Chat.class); - chat = rsp.getProvider(); - return chat != null; - } + public File chatColorFile = new File(getDataFolder() + "/chatcolor.yml"); + public FileConfiguration chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); + + public String prefix; + public static YamlConfiguration LANG; + public static File LANG_FILE; + + private ColorGUI colorGUI; + public ChatColorManager chatColorManager; + public AddonManager addonManager; + public ChatColorUtils chatColorUtil; + + + @Override + public void onEnable() { + + + /* + * Plugin setup area + */ + plugin = this; + if (getServer().getPluginManager().getPlugin("Vault") == null && !setupChat()) { + getLogger().info(String.format("[%s] - Vault is not found!", getDescription().getName())); + getLogger().severe("§cWarning: You do not have Vault installed! This plugin is now disabled!"); + Bukkit.getPluginManager().disablePlugin(this); + return; + } + if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { + getLogger().info("Hooked into PlaceholderAPI! You can use the place holders!"); + papi = new PAPIEnabled(); + } else { + papi = new PAPIDisabled(); + } + getLogger().info(String.format("UltraChat is enabled and running fine! V: %s", getDescription().getVersion())); + if (getServer().getPluginManager().getPlugin("AdvancedBan") != null && getConfig().getBoolean("pluginhooks.AdvancedBan")) { + getLogger().info("AdvancedBan detected! Activating hook!"); + getLogger().info("Mutes will now work with the chat types."); + Bukkit.getServer().getPluginManager().registerEvents(new AdvancedBanMute(), this); + } + if (getServer().getPluginManager().getPlugin("Essentials") != null && getConfig().getBoolean("pluginhooks.Essentials")) { + getLogger().info("Essentials detected! Activating hook!"); + getLogger().info("Mutes will now work with the chat types."); + Bukkit.getServer().getPluginManager().registerEvents(new EssentialsMute(), this); + } + loadFile(); + loadMethod(); + registerConfig(); + loadChannel(); + + setupPermissions(); + setupChat(); + setupFormatting(); + loadLang(); + if (plugin.getConfig().getBoolean("bstats")) { + @SuppressWarnings("unused") + Metrics m = new Metrics(this); + } + addonManager = new AddonManager(); + } + + @Override + public void onDisable() { + getLogger().info("[UltraChat] has been disabled correctly!"); + saveFile(); + saveChannel(); + } + + /** + * Setup the chat formatting. + */ + public void setupFormatting() { + String type = getConfig().getString("chat_format"); + if (type.equals("")) { + getLogger().info("UltraChat will not format the chat. To change this go into the config."); + return; + } + + switch (type.toLowerCase()) { + case "channel": + Bukkit.getServer().getPluginManager().registerEvents(new ChannelJSON(), this); + md = ChatType.CHANNEL; + getLogger().info("Channel chat mode enabled."); + break; + case "range": + Bukkit.getServer().getPluginManager().registerEvents(new RangeJSON(), this); + getCommand("global").setExecutor(new Global()); + getCommand("world").setExecutor(new World()); + getLogger().info("Range chat mode enabled. The commands /global and /world are now also active."); + md = ChatType.RANGE; + break; + default: + Bukkit.getServer().getPluginManager().registerEvents(new NormalJSON(), this); + md = ChatType.NORMAL; + getLogger().info("Normal chat mode activated!"); + break; + } + } + + //Vault set-up ========================================================= + + private boolean setupChat() { + RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Chat.class); + chat = rsp.getProvider(); + return chat != null; + } private boolean setupPermissions() { RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Permission.class); @@ -203,202 +191,214 @@ public class UltraChat extends JavaPlugin{ return perms != null; } //========================================================================= END =============================== + /** * Save the data file. */ - public void saveFile(){ - - try{ - data.save(datafile); - }catch(IOException e){ - e.printStackTrace(); - - } - - } - /** - * load the data file - */ - public void loadFile(){ - if(datafile.exists()){ - try { - data.load(datafile); - - } catch (IOException | InvalidConfigurationException e) { + public void saveFile() { + try { + data.save(datafile); + } catch (IOException e) { + e.printStackTrace(); - e.printStackTrace(); - } - } - else{ - try { - data.save(datafile); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - /** - * Save the channel file. - */ - public void saveChannel(){ - - try{ - channel.save(channelfile); - }catch(IOException e){ - e.printStackTrace(); - - } - - } - - /** - * Load the cannel file. - */ - public void loadChannel(){ - channelfile = new File(getDataFolder(), "channel.yml"); - if (!channelfile.exists()) { - channelfile.getParentFile().mkdirs(); - saveResource("channel.yml", false); - } - channel = new YamlConfiguration(); - try { - channel.load(channelfile); - - } catch (IOException | InvalidConfigurationException e) { + } + } - e.printStackTrace(); - } - } - /** - * Get the language file. - * @return The language file. - */ - public File getLangFile() { - return LANG_FILE; - } - - /** - * - * @return - */ - public YamlConfiguration getLang() { - return LANG; - } - /** - * - */ - @SuppressWarnings("static-access") - public void loadLang() { - File lang = new File(getDataFolder(), "lang.yml"); - if (!lang.exists()) { - try { - getDataFolder().mkdir(); - lang.createNewFile(); - InputStream defConfigStream = this.getResource("lang.yml"); - if (defConfigStream != null) { - YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); - - defConfig.save(lang); - Lang.setFile(defConfig); - return; - } - } catch(IOException e) { - e.printStackTrace(); // So they notice - getLogger().severe("The language file could not be created. Disabling plugin."); - this.setEnabled(false); - } - } - YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang); - for(Lang item:Lang.values()) { - if (conf.getString(item.getPath()) == null) { - conf.set(item.getPath(), item.getDefault()); - } - } - Lang.setFile(conf); - this.LANG = conf; - this.LANG_FILE = lang; - try { - conf.save(getLangFile()); - } catch(IOException e) { - getLogger().warning( "Failed to save lang.yml."); - e.printStackTrace(); - } - } - - - - - - - private void registerConfig() { - saveDefaultConfig(); - } - - /** - * Loads all of the Events and Commands. - */ - public void loadMethod(){ - getCommand("chat").setExecutor(new ChatCommand()); - getCommand("chat").setTabCompleter(new CommandTabCompleter()); - getCommand("sc").setExecutor(new StaffChat()); - getCommand("sctoggle").setExecutor(new StaffChatToggle()); - getCommand("spy").setExecutor(new SpyCommand()); - getCommand("channel").setExecutor(new ChannelCmd()); - Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); - Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); - Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); - Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); - //Bukkit.getServer().getPluginManager().registerEvents(new Format(this), this); - if(getConfig().getBoolean("console_log")) - Bukkit.getServer().getPluginManager().registerEvents(new ConsoleLogChat(), this); - loadVersions(); - } - - /** - * Loads classes based upon the server version. - */ - private void loadVersions() { - String version; + /** + * load the data file + */ + public void loadFile() { + if (datafile.exists()) { + try { + data.load(datafile); + + } catch (IOException | InvalidConfigurationException e) { + + e.printStackTrace(); + } + } else { + try { + data.save(datafile); + } catch (IOException e) { + e.printStackTrace(); + } + } + + if (chatColorFile.exists()) { + try { + chatColorFC.load(chatColorFile); + + } catch (IOException | InvalidConfigurationException e) { + + e.printStackTrace(); + } + } else { + saveResource("chatcolor.yml", false); + chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); + } + } + + /** + * Save the channel file. + */ + public void saveChannel() { + + try { + channel.save(channelfile); + } catch (IOException e) { + e.printStackTrace(); + + } + + } + + /** + * Load the cannel file. + */ + public void loadChannel() { + channelfile = new File(getDataFolder(), "channel.yml"); + if (!channelfile.exists()) { + channelfile.getParentFile().mkdirs(); + saveResource("channel.yml", false); + } + channel = new YamlConfiguration(); + try { + channel.load(channelfile); + + } catch (IOException | InvalidConfigurationException e) { + + e.printStackTrace(); + } + } + + /** + * Get the language file. + * + * @return The language file. + */ + public File getLangFile() { + return LANG_FILE; + } + + /** + * @return + */ + public YamlConfiguration getLang() { + return LANG; + } + + /** + * + */ + @SuppressWarnings("static-access") + public void loadLang() { + File lang = new File(getDataFolder(), "lang.yml"); + if (!lang.exists()) { + try { + getDataFolder().mkdir(); + lang.createNewFile(); + InputStream defConfigStream = this.getResource("lang.yml"); + if (defConfigStream != null) { + YamlConfiguration defConfig = YamlConfiguration.loadConfiguration(new InputStreamReader(defConfigStream)); + + defConfig.save(lang); + Lang.setFile(defConfig); + return; + } + } catch (IOException e) { + e.printStackTrace(); // So they notice + getLogger().severe("The language file could not be created. Disabling plugin."); + this.setEnabled(false); + } + } + YamlConfiguration conf = YamlConfiguration.loadConfiguration(lang); + for (Lang item : Lang.values()) { + if (conf.getString(item.getPath()) == null) { + conf.set(item.getPath(), item.getDefault()); + } + } + Lang.setFile(conf); + this.LANG = conf; + this.LANG_FILE = lang; + try { + conf.save(getLangFile()); + } catch (IOException e) { + getLogger().warning("Failed to save lang.yml."); + e.printStackTrace(); + } + } + + + private void registerConfig() { + saveDefaultConfig(); + } + + /** + * Loads all of the Events and Commands. + */ + public void loadMethod() { + getCommand("chat").setExecutor(new ChatCommand()); + getCommand("chat").setTabCompleter(new CommandTabCompleter()); + getCommand("sc").setExecutor(new StaffChat()); + getCommand("sctoggle").setExecutor(new StaffChatToggle()); + getCommand("spy").setExecutor(new SpyCommand()); + getCommand("channel").setExecutor(new ChannelCmd()); + Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); + Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); + Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); + Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); + //Bukkit.getServer().getPluginManager().registerEvents(new Format(this), this); + if (getConfig().getBoolean("console_log")) + Bukkit.getServer().getPluginManager().registerEvents(new ConsoleLogChat(), this); + loadVersions(); + } + + /** + * Loads classes based upon the server version. + */ + private void loadVersions() { + String version; try { - version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; + version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; } catch (ArrayIndexOutOfBoundsException w0w) { - version = " "; + version = " "; } - if (version.equals("v1_13_R2") || version.equals("v1_14_R1") || version.equals("v1_15_R1")) { - + if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); - if(version.equals("v1_13_R2")) { - colorGUI = new ColorGUI_1_13_R2(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_1_13_R2(), this); - if(!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_1_13_R2()); - }else { - colorGUI = new ColorGUI_Latest(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); - if(!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_Latest()); - } - }else { - Bukkit.getServer().getPluginManager().registerEvents(new Notify_1_12(), this); - colorGUI = new ColorGUI_Outdated(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Outdated(), this); - if(!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_Outdated()); - getLogger().info("1.12 or below version detected. Activating compatibility mode."); + colorGUI = new ColorGUI_1_15_R1(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + getCommand("color").setExecutor(new ColorGUI_1_15_R1()); + + this.chatColorUtil = new ChatColorUtil_Old(); + + } else { + + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); + colorGUI = new ColorGUI_Latest(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + + chatColorManager = new ChatColorManager(this, Objects.requireNonNull(chatColorFC.getConfigurationSection("chat_colors"))); + + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + getCommand("color").setExecutor(new ColorGUI_Latest()); + + this.chatColorUtil = new ChatColorUtil_Latest(this); } - } - - /** - * Get the ColorGUI class for the right version. - * @return A class that implements ColorGUI - */ - public ColorGUI getColorGUI() { - return colorGUI; - } - + } + + /** + * Get the ColorGUI class for the right version. + * + * @return A class that implements ColorGUI + */ + public ColorGUI getColorGUI() { + return colorGUI; + } } diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorManager.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorManager.java new file mode 100644 index 0000000..393ef5f --- /dev/null +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorManager.java @@ -0,0 +1,49 @@ +package me.ryandw11.ultrachat.chatcolor; + +import me.ryandw11.ultrachat.UltraChat; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.configuration.ConfigurationSection; + +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * This class handles the chatcolor.yml file. + */ +public class ChatColorManager { + private Map colorCodeMap; + + public ChatColorManager(UltraChat plugin, ConfigurationSection section){ + colorCodeMap = new HashMap<>(); + for(String s : section.getKeys(false)){ + String color = Objects.requireNonNull(section.getString(s)); + if(color.equalsIgnoreCase("default")) + colorCodeMap.put(s, ChatColor.getByChar(s.replace("&", "").charAt(0))); + else{ + try{ + color = color.replace("{", "").replace("}", ""); + colorCodeMap.put(s, ChatColor.of(color)); + }catch(IllegalArgumentException ex){ + plugin.getLogger().warning("Invalid chat color for " + s); + } + } + } + } + + public Map getMap(){ + return colorCodeMap; + } + + public String translateMapColors(String message){ + String finalMessage = message; + for(Map.Entry entry : colorCodeMap.entrySet()){ + finalMessage = finalMessage.replace(entry.getKey(), entry.getValue().toString()); + } + return finalMessage; + } + + public ChatColor getChatColor(String s){ + return colorCodeMap.get(s); + } +} diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java new file mode 100644 index 0000000..134d7d8 --- /dev/null +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java @@ -0,0 +1,140 @@ +package me.ryandw11.ultrachat.chatcolor; + +import me.ryandw11.ultrachat.UltraChat; +import me.ryandw11.ultrachat.formatting.PlayerFormatting; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.MutablePair; +import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; +import org.bukkit.entity.Player; + +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ChatColorUtil_Latest implements ChatColorUtils { + + private UltraChat plugin; + public ChatColorUtil_Latest(UltraChat plugin){ + this.plugin = plugin; + } + + @Override + public String translateChatColor(String message) { + String finalMessage = translateHexColor(message); + finalMessage = plugin.chatColorManager.translateMapColors(finalMessage); + return finalMessage; + } + + @Override + public String translateChatColor(Player p, String message) { + String finalMessage = message; + if(p.hasPermission("ultrachat.chatcolor.hex")) + finalMessage = translateHexColor(finalMessage); + if(p.hasPermission("ultrachat.chatcolor.colorcodes")) + finalMessage = plugin.chatColorManager.translateMapColors(finalMessage); + return finalMessage; + } + + @Override + public Map splitColors(String message, PlayerFormatting pf) { + List normalMessage = new ArrayList<>(Arrays.asList(message.split("\\{(#[^}]+)}|&[^&]"))); + List colorCodes = new ArrayList<>(); + // TODO fix this + colorCodes.add(pf.getColor().toString()); + Matcher m = Pattern.compile("\\{(#[^}]+)}|&[^&]").matcher(message); + while(m.find()) { + colorCodes.add(m.group()); + } + for(int i = 0; i < colorCodes.size(); i++){ + if(!isChatCode(colorCodes.get(i)) && i != 0){ + normalMessage.set(i-1, normalMessage.get(i-1) +colorCodes.get(i)+normalMessage.get(i)); + normalMessage.remove(i); + colorCodes.remove(i); + i--; + } + } + Map output = new LinkedHashMap<>(); + for(int i = 0; i < normalMessage.size(); i++){ + output.put(normalMessage.get(i), colorCodes.get(i)); + } + return output; + } + + @Override + public ChatColor translateChatCode(String code) { + if(code.startsWith("&")){ + return plugin.chatColorManager.getChatColor(code); + } + String hexCode = code.replace("{", "").replace("}", ""); + try{ + return ChatColor.of(hexCode); + }catch(IllegalArgumentException ex){ + return ChatColor.RED; + } + } + + @Override + public boolean isChatCode(String code) { + if(code.startsWith("&")){ + return plugin.chatColorManager.getMap().containsKey(code); + } + String hexCode = code.replace("{", "").replace("}", ""); + try{ + ChatColor.of(hexCode); + }catch(IllegalArgumentException ex){ + return false; + } + return true; + } + + @Override + public ChatColor translateChatCode(Player p, String code) { + return null; + } + + protected static String translateHexColor(String message){ + if(!message.contains("{")) + return message; + StringBuilder finalMessage = new StringBuilder(); + StringBuilder interior = new StringBuilder(); + boolean readInterior = false; + for (int i = 0; i < message.length(); i++){ + char c = message.charAt(i); + if(c == '{' && !readInterior){ + readInterior = true; + }else if(!readInterior){ + finalMessage.append(c); + } else if(c == '{'){ + finalMessage.append('{'); + finalMessage.append(interior); + interior = new StringBuilder(); + }else if(c == '}' && interior.toString().contains("#")){ + readInterior = false; + try { + finalMessage.append(ChatColor.of(interior.toString())); + }catch(IllegalArgumentException ex){ + finalMessage.append("{"); + finalMessage.append(interior); + finalMessage.append("}"); + }finally{ + interior = new StringBuilder(); + } + + }else if(c == '}'){ + readInterior = false; + finalMessage.append("{"); + finalMessage.append(interior); + finalMessage.append("}"); + interior = new StringBuilder(); + } + else{ + interior.append(c); + } + } + if(interior.toString().length() > 0){ + finalMessage.append('{'); + finalMessage.append(interior); + } + return finalMessage.toString(); + } +} diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java new file mode 100644 index 0000000..fe493ba --- /dev/null +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java @@ -0,0 +1,43 @@ +package me.ryandw11.ultrachat.chatcolor; + +import me.ryandw11.ultrachat.formatting.PlayerFormatting; +import org.bukkit.ChatColor; +import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Map; +import java.util.SortedMap; + +public class ChatColorUtil_Old implements ChatColorUtils { + + @Override + public String translateChatColor(String message) { + return ChatColor.translateAlternateColorCodes('&', message); + } + + @Override + public String translateChatColor(Player p, String message) { + return ChatColor.translateAlternateColorCodes('&', message); + } + + @Override + public Map splitColors(String message, PlayerFormatting pf) { + return null; + } + + @Override + public net.md_5.bungee.api.ChatColor translateChatCode(String code) { + return null; + } + + @Override + public boolean isChatCode(String code) { + return false; + } + + @Override + public net.md_5.bungee.api.ChatColor translateChatCode(Player p, String message) { + return null; + } +} diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java new file mode 100644 index 0000000..88ad3ec --- /dev/null +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java @@ -0,0 +1,19 @@ +package me.ryandw11.ultrachat.chatcolor; + +import me.ryandw11.ultrachat.formatting.PlayerFormatting; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Map; +import java.util.SortedMap; + +public interface ChatColorUtils { + String translateChatColor(String message); + String translateChatColor(Player p, String message); + Map splitColors(String message, PlayerFormatting pf); + ChatColor translateChatCode(String code); + boolean isChatCode(String code); + ChatColor translateChatCode(Player p, String message); +} diff --git a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java index 2da5062..f4a6654 100644 --- a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java @@ -1,10 +1,13 @@ package me.ryandw11.ultrachat.formatting; import java.util.HashSet; +import java.util.Objects; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.Bukkit; 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; @@ -20,7 +23,7 @@ import net.md_5.bungee.api.chat.TextComponent; /** * Handles channels with components enabled. * @author Ryandw11 - * @since 2.4 + * @since 2.5 * */ public class ChannelJSON implements Listener { @@ -30,53 +33,54 @@ public class ChannelJSON implements Listener { this.plugin = UltraChat.plugin; } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST) public void onChat(AsyncPlayerChatEvent e){ Player p = e.getPlayer(); PlayerFormatting pf = new PlayerFormatting(p); - e.setCancelled(true); String channel = plugin.data.getString(p.getUniqueId() + ".channel"); ChannelProperties cp = new ChannelProperties(true, channel); if(!plugin.channel.getBoolean(channel + ".always_appear")){ - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet(Bukkit.getOnlinePlayers()), ChatType.CHANNEL, cp); + UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.CHANNEL, cp); Bukkit.getServer().getPluginManager().callEvent(uce); + // Remove recipients from main events to prevent double messages. + e.getRecipients().clear(); if(uce.isCancelled()) return; for(Player pl : uce.getRecipients()){ if(plugin.data.getString(pl.getUniqueId() + ".channel").equals(channel)){ - if(pl.hasPermission(plugin.channel.getString(channel + ".permission")) || plugin.channel.getString(channel + ".permission").equalsIgnoreCase("none")){ - String form = ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".prefix")) - + ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".format")) + if(pl.hasPermission(Objects.requireNonNull(plugin.channel.getString(channel + ".permission"))) || Objects.requireNonNull(plugin.channel.getString(channel + ".permission")).equalsIgnoreCase("none")){ + String format = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.channel.getString(channel + ".prefix"))) + + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.channel.getString(channel + ".format"))) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) .replace("%player%", p.getDisplayName()) + pf.getColor(); - + ComponentBuilder cb = new ComponentBuilder(""); - cb.append(JComponentManager.formatComponents(form, p)); - TextComponent tc = new TextComponent(uce.getMessage()); - cb.append(tc); + cb.append(JComponentManager.formatComponents(format, p)); + cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } } } else{ - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet(Bukkit.getOnlinePlayers()), ChatType.CHANNEL, cp); + UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.CHANNEL, cp); Bukkit.getServer().getPluginManager().callEvent(uce); + e.getRecipients().clear(); if(!uce.isCancelled()) for(Player pl : uce.getRecipients()){ - String form = ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".prefix")) - + ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".format")) + String formats = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.channel.getString(channel + ".prefix"))) + + ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.channel.getString(channel + ".format"))) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) .replace("%player%", p.getDisplayName()) + pf.getColor(); + ComponentBuilder cb = new ComponentBuilder(""); - cb.append(JComponentManager.formatComponents(form, p)); - TextComponent tc = new TextComponent(uce.getMessage()); - cb.append(tc); + cb.append(JComponentManager.formatComponents(formats, p)); + cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/Channels.java b/src/me/ryandw11/ultrachat/formatting/Channels.java deleted file mode 100644 index 6dec79f..0000000 --- a/src/me/ryandw11/ultrachat/formatting/Channels.java +++ /dev/null @@ -1,64 +0,0 @@ -package me.ryandw11.ultrachat.formatting; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; - -import me.clip.placeholderapi.PlaceholderAPI; -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.ChatType; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; -import me.ryandw11.ultrachat.api.events.properties.ChannelProperties; -/** - * Channels without any kind of json involved. - * @author Ryandw11 - * - */ -public class Channels implements Listener { - private UltraChat plugin; - public Channels(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onChat(AsyncPlayerChatEvent e){ - PlayerFormatting pf = new PlayerFormatting(e.getPlayer()); - Player p = e.getPlayer(); - - String channel = plugin.data.getString(p.getUniqueId() + ".channel"); - if(!plugin.channel.getBoolean(channel + ".always_appear")){ - e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); - if(p.hasPermission("ultrachat.chat.color")){ - e.setMessage(ChatColor.translateAlternateColorCodes('&', e.getMessage())); - } - for(Player pl : Bukkit.getOnlinePlayers()){ - if(plugin.data.getString(pl.getUniqueId() + ".channel").equals(channel)){ - if(pl.hasPermission(plugin.channel.getString(channel + ".permission")) || plugin.channel.getString(channel + ".permission").equalsIgnoreCase("none")){ - e.getRecipients().add(pl); - } - } - } - } - - ChannelProperties cp = new ChannelProperties(false, channel); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), e.getRecipients(), ChatType.CHANNEL, cp); - Bukkit.getServer().getPluginManager().callEvent(uce); - - if (uce.isCancelled()) { - e.setCancelled(true); - return; - } - if(uce.getRecipients() != e.getRecipients()) { - e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); - e.getRecipients().addAll(uce.getRecipients()); - } - - e.setMessage(uce.getMessage()); - - - e.setFormat(PlaceholderAPI.setPlaceholders(p, ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".prefix")) + ChatColor.translateAlternateColorCodes('&', plugin.channel.getString(channel + ".format").replace("%prefix%", pf.getPrefix()).replace("%suffix%", pf.getSuffix()).replace("%player%", "%s") + pf.getColor() + "%s"))); - } -} diff --git a/src/me/ryandw11/ultrachat/formatting/Normal.java b/src/me/ryandw11/ultrachat/formatting/Normal.java deleted file mode 100644 index 79d565b..0000000 --- a/src/me/ryandw11/ultrachat/formatting/Normal.java +++ /dev/null @@ -1,87 +0,0 @@ -package me.ryandw11.ultrachat.formatting; - -import java.util.UnknownFormatConversionException; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; - -import me.clip.placeholderapi.PlaceholderAPI; -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.ChatType; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; -import me.ryandw11.ultrachat.api.events.properties.NormalProperties; -/** - * Normal chat formatting with no channels or Json. - * @author Ryandw11 - * - */ -public class Normal implements Listener { - private UltraChat plugin; - public Normal(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onChat(AsyncPlayerChatEvent e){ - PlayerFormatting pf = new PlayerFormatting(e.getPlayer()); - Player p = e.getPlayer(); - - if(p.hasPermission("ultrachat.chat.color")){ - e.setMessage(ChatColor.translateAlternateColorCodes('&', e.getMessage())); - } - - NormalProperties np = new NormalProperties(false); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), e.getRecipients(), ChatType.NORMAL, np); - Bukkit.getServer().getPluginManager().callEvent(uce); - - if(uce.isCancelled()) { - e.setCancelled(true); - return; - } - - if(e.getRecipients() != uce.getRecipients()) { - e.getRecipients().removeAll(e.getRecipients()); - e.getRecipients().addAll(uce.getRecipients()); - } - - e.setMessage(uce.getMessage()); - - if(p.isOp() && p.hasPermission("ultrachat.formatting.op")){ - try{ - e.setFormat(pf.getOpFormat().replace("%prefix%", pf.getPrefix()).replace("%suffix%", pf.getSuffix()).replace("%player%", "%s") + pf.getColor() + "%s"); - }catch (UnknownFormatConversionException ex){ - p.sendMessage(ChatColor.RED + "A fatal error has occured. Check the console for more info!"); - Bukkit.getLogger().warning(ChatColor.RED + "A fatal error has occured!"); - Bukkit.getLogger().warning(ChatColor.RED + "Your formatting seems to be a bit off! Check the config.yml Fortmat: OP"); - } - }else{ - int i = 1; - while(i <= plugin.getConfig().getInt("Custom_Chat.Chat_Count")){ - if(p.hasPermission(plugin.getConfig().getString("Custom_Chat." + i + ".Permission"))){ - try{ - e.setFormat(PlaceholderAPI.setPlaceholders(p, ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat." + i +".Format").replace("%player%", "%s").replace("%prefix%", pf.getPrefix()).replace("%suffix%", pf.getSuffix())) + pf.getColor() + "%s")); - }catch (UnknownFormatConversionException ex){ - p.sendMessage(ChatColor.RED + "A fatal error has occured. Contact an administrator!"); - Bukkit.getLogger().warning(ChatColor.RED + "A fatal error has occured!"); - Bukkit.getLogger().warning(ChatColor.RED + "Your formatting seems to be a bit off! Check the config.yml Fortmat #: " + i); - } - - return; - } - i++; - } - try{ - e.setFormat(pf.getDefaultFormat().replace("%prefix%", pf.getPrefix()).replace("%suffix%", pf.getSuffix()).replace("%player%", "%s") + pf.getColor() + "%s"); - }catch(UnknownFormatConversionException ex){ - p.sendMessage(ChatColor.RED + "A fatal error has occured. Contact an administrator!"); - Bukkit.getLogger().warning(ChatColor.RED + "A fatal error has occured!"); - Bukkit.getLogger().warning(ChatColor.RED + "Your formatting seems to be a bit off! Check the config.yml Fortmat: Defualt"); - } - } - } - -} diff --git a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java index b62a045..b7f1c20 100644 --- a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java @@ -1,10 +1,15 @@ package me.ryandw11.ultrachat.formatting; +import java.util.Arrays; import java.util.HashSet; +import java.util.Objects; +import me.ryandw11.ultrachat.util.ChatUtil; +import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; 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; @@ -19,7 +24,7 @@ import net.md_5.bungee.api.chat.TextComponent; /** * Handles the Normal Chat when in JSON mode. * @author Ryandw11 - * @since 2.4 + * @since 2.5 * */ public class NormalJSON implements Listener { @@ -30,39 +35,40 @@ public class NormalJSON implements Listener { this.plugin = UltraChat.plugin; } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST) public void onChat(AsyncPlayerChatEvent e) { Player p = e.getPlayer(); - e.setCancelled(true); PlayerFormatting pf = new PlayerFormatting(p); + + // Call the UltraChatEvent (This is an optional Event). NormalProperties np = new NormalProperties(true); - UltraChatEvent event = new UltraChatEvent(p, e.getMessage(), new HashSet(Bukkit.getOnlinePlayers()), ChatType.NORMAL, np); + UltraChatEvent event = new UltraChatEvent(p, e.getMessage(), new HashSet(e.getRecipients()), ChatType.NORMAL, np); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return; } - if (p.isOp() && p.hasPermission("ultrachat.formatting.op")) { + + //Remove all players from the normal event. + e.getRecipients().clear(); + + if (p.isOp()) { String formats = pf.getOpFormat() .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) - .replace("%player%", p.getDisplayName()) - + pf.getColor(); + .replace("%player%", p.getDisplayName()); for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - TextComponent tc = new TextComponent(event.getMessage()); - cb.append(tc); + cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } return; } // If the player is not op - int i = 1; - boolean complete = false; - while (i <= plugin.getConfig().getInt("Custom_Chat.Chat_Count")) { - if (p.hasPermission(plugin.getConfig().getString("Custom_Chat." + i + ".Permission"))) { - String formats = pf.getCustomFormat(i) + for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + if (p.hasPermission(permission)) { + String formats = pf.getCustomFormat(permission) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) .replace("%player%", p.getDisplayName()) @@ -71,16 +77,11 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - TextComponent tc = new TextComponent(event.getMessage()); - cb.append(tc); + cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); - complete = true; - break; } - } - if (complete) return; - i++; + } } /* @@ -94,8 +95,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - TextComponent tc = new TextComponent(event.getMessage()); - cb.append(tc); + cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java index 3df5896..2a98418 100644 --- a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java +++ b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java @@ -5,6 +5,9 @@ import org.bukkit.entity.Player; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Util; import net.md_5.bungee.api.ChatColor; + +import java.util.Objects; + /** * Class for formatting player chat easily. * @author Ryandw11 @@ -20,14 +23,14 @@ public class PlayerFormatting { public PlayerFormatting(Player p){ plugin = UltraChat.plugin; - color = ChatColor.translateAlternateColorCodes('&', plugin.data.getString(p.getUniqueId() + ".color")); + color = plugin.data.getString(p.getUniqueId() + ".color"); prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(p)); suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(p)); - formatOp = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat.Op_Chat.Format")), p); - defaults = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat.Default_Chat.Format")), p); - global = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Global.format")), p); - world = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("World.format")), p); - local = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Local.format")), p); + formatOp = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))), p); + defaults = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))), p); + global = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))), p); + world = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))), p); + local = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))), p); this.p = p; } @@ -68,9 +71,9 @@ public class PlayerFormatting { public String getDefaultFormat(){ return defaults; } - - public String getCustomFormat(int num) { - return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat." + num + ".Format")), p); + + public String getCustomFormat(String name) { + return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.permission_format." + name))), p); } } diff --git a/src/me/ryandw11/ultrachat/formatting/Range.java b/src/me/ryandw11/ultrachat/formatting/Range.java deleted file mode 100644 index 82602dd..0000000 --- a/src/me/ryandw11/ultrachat/formatting/Range.java +++ /dev/null @@ -1,74 +0,0 @@ -package me.ryandw11.ultrachat.formatting; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.UnknownFormatConversionException; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.AsyncPlayerChatEvent; - -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.ChatType; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; -import me.ryandw11.ultrachat.api.events.properties.RangeProperties; -import me.ryandw11.ultrachat.api.events.properties.RangeType; - -public class Range implements Listener { - private UltraChat plugin; - - public Range() { - plugin = UltraChat.plugin; - } - - @EventHandler - public void onChat(AsyncPlayerChatEvent e) { - Player p = e.getPlayer(); - PlayerFormatting pf = new PlayerFormatting(p); - - if (p.hasPermission("ultrachat.chat.color")) { - e.setMessage(ChatColor.translateAlternateColorCodes('&', e.getMessage())); - } - e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); - e.getRecipients().addAll(getNearbyPlayers(p)); - e.getRecipients().add(p); - - RangeProperties rp = new RangeProperties(false, RangeType.LOCAL); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet(Bukkit.getOnlinePlayers()), ChatType.RANGE, rp); - Bukkit.getServer().getPluginManager().callEvent(uce); - - if(uce.isCancelled()) { - e.setCancelled(true); - return; - } - - if(e.getRecipients() != uce.getRecipients()) { - e.getRecipients().removeAll(e.getRecipients()); - e.getRecipients().addAll(uce.getRecipients()); - } - - e.setMessage(uce.getMessage()); - - try { - e.setFormat(pf.getLocal().replace("%player%", "%s").replace("%prefix%", pf.getPrefix()).replace("%suffix%", - pf.getSuffix()) + pf.getColor() + "%s"); - } catch (UnknownFormatConversionException ex) { - Bukkit.getLogger().severe("A fatal error has occured! The local formatting is not correct!"); - } - } - - public ArrayList getNearbyPlayers(Player pl) { - ArrayList nearby = new ArrayList(); - double range = plugin.getConfig().getDouble("Local.range"); - for (Entity e : pl.getNearbyEntities(range, range, range)) { - if (e instanceof Player) { - nearby.add((Player) e); - } - } - return nearby; - } -} diff --git a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java index a9e117f..5011a90 100644 --- a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java @@ -3,11 +3,13 @@ package me.ryandw11.ultrachat.formatting; import java.util.ArrayList; import java.util.HashSet; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Entity; 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; @@ -28,35 +30,31 @@ public class RangeJSON implements Listener { this.plugin = UltraChat.plugin; } - @EventHandler + @EventHandler(priority = EventPriority.HIGHEST) public void onChat(AsyncPlayerChatEvent e) { Player p = e.getPlayer(); PlayerFormatting pf = new PlayerFormatting(p); - if (p.hasPermission("ultrachat.chat.color")) { - e.setMessage(ChatColor.translateAlternateColorCodes('&', e.getMessage())); - } e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); e.getRecipients().addAll(getNearbyPlayers(p)); e.getRecipients().add(p); - e.setCancelled(true); RangeProperties rp = new RangeProperties(true, RangeType.LOCAL); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet(e.getRecipients()), ChatType.RANGE, rp); + UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.RANGE, rp); Bukkit.getServer().getPluginManager().callEvent(uce); + e.getRecipients().clear(); if (!uce.isCancelled()) { for (Player pl : uce.getRecipients()) { - String form = pf.getLocal() + String formats = pf.getLocal() .replace("%player%", p.getDisplayName()) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) + pf.getColor(); - + ComponentBuilder cb = new ComponentBuilder(""); - cb.append(JComponentManager.formatComponents(form, p)); - TextComponent tc = new TextComponent(uce.getMessage()); - cb.append(tc); + cb.append(JComponentManager.formatComponents(formats, p)); + cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java index c325bc9..4304821 100644 --- a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java +++ b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java @@ -1,5 +1,6 @@ package me.ryandw11.ultrachat.formatting; +import java.util.Objects; import java.util.UUID; import org.bukkit.Bukkit; @@ -31,7 +32,7 @@ private UltraChat plugin; OfflinePlayer op = Bukkit.getOfflinePlayer(ud); - color = ChatColor.translateAlternateColorCodes('&', plugin.data.getString(ud + ".color")); + color = Objects.requireNonNull(plugin.data.getString(ud + ".color")); try { prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(world, op)); suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(world, op)); @@ -40,11 +41,11 @@ private UltraChat plugin; prefix = plugin.chat.getPlayerPrefix(world, op); suffix = plugin.chat.getPlayerSuffix(world, op); } - formatOp = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat.Op_Chat.Format")); - defaults = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Custom_Chat.Default_Chat.Format")); - global = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Global.format")); - this.world = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("World.format")); - local = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Local.format")); + formatOp = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))); + defaults = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))); + global = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))); + this.world = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))); + local = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))); this.op = op; worldName = world; } @@ -88,8 +89,8 @@ private UltraChat plugin; return defaults; } - public String getCustomFormat(int num) { - return plugin.getConfig().getString("Custom_Chat." + num + ".Format"); + public String getCustomFormat(String name) { + return plugin.getConfig().getString("Custom_Chat.permission_format." + name); } public OfflinePlayer getOfflinePlayer() { @@ -105,13 +106,11 @@ private UltraChat plugin; UltraChatAPI uapi = new UltraChatAPI(); if(uapi.getChatType() == ChatType.NORMAL) { if(op.isOp()) return this.getOpFormat(); - - int i = 1; - while (i <= plugin.getConfig().getInt("Custom_Chat.Chat_Count")) { - if (plugin.perms.playerHas(worldName, op, plugin.getConfig().getString("Custom_Chat." + i + ".Permission"))) { - return this.getCustomFormat(i); + + for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + if (plugin.perms.playerHas(worldName, op, plugin.getConfig().getString(permission))) { + return this.getCustomFormat(permission); } - i++; } return this.getDefaultFormat(); } diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI.java b/src/me/ryandw11/ultrachat/gui/ColorGUI.java index c266038..d9ea0b1 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI.java @@ -7,5 +7,5 @@ import org.bukkit.entity.Player; * */ public interface ColorGUI { - public void openGUI(Player p); + void openGUI(Player p); } diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_1_13_R2.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java similarity index 87% rename from src/me/ryandw11/ultrachat/gui/ColorGUI_1_13_R2.java rename to src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java index 1e1f004..d0c1277 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_1_13_R2.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java @@ -1,5 +1,7 @@ package me.ryandw11.ultrachat.gui; +import me.ryandw11.ultrachat.UltraChat; +import me.ryandw11.ultrachat.api.Lang; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -10,27 +12,25 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.Lang; - /** * ColorGUI class. - * Updated for 1.13. + * Updated for 1.14-1.15 * @author Ryandw11 * */ -public class ColorGUI_1_13_R2 implements CommandExecutor, Listener, ColorGUI{ - +public class ColorGUI_1_15_R1 implements CommandExecutor, Listener, ColorGUI{ + private UltraChat plugin; - public ColorGUI_1_13_R2(){ + public ColorGUI_1_15_R1(){ plugin = UltraChat.plugin; } public void openGUI(Player p){ - Inventory i = Bukkit.createInventory(null, 9*2, Lang.COLOR_GUI.toString()); + Inventory i = Bukkit.createInventory(null, InventoryType.CHEST, Lang.COLOR_GUI.toString()); ItemStack darkblueitem = new ItemStack(Material.BLUE_WOOL); ItemMeta darkbluemeta = darkblueitem.getItemMeta(); @@ -79,51 +79,60 @@ public class ColorGUI_1_13_R2 implements CommandExecutor, Listener, ColorGUI{ //========================================================== - darkbluemeta.setDisplayName("§1Dark Blue Color Chat"); + darkbluemeta.setDisplayName("§1Dark Blue Color Chat"); darkblueitem.setItemMeta(darkbluemeta); - greenmeta.setDisplayName("§2Green Color Chat"); + greenmeta.setDisplayName("§2Green Color Chat"); greenitem.setItemMeta(greenmeta); - lightbluemeta.setDisplayName("§3Cyan Color Chat"); + lightbluemeta.setDisplayName("§3Cyan Color Chat"); lightblueitem.setItemMeta(lightbluemeta); - redmeta.setDisplayName("§4Red Color Chat"); + redmeta.setDisplayName("§4Red Color Chat"); reditem.setItemMeta(redmeta); - purplemeta.setDisplayName("§5Purple Color Chat"); + purplemeta.setDisplayName("§5Purple Color Chat"); purpleitem.setItemMeta(purplemeta); - goldmeta.setDisplayName("§6Gold Color Chat"); + goldmeta.setDisplayName("§6Gold Color Chat"); golditem.setItemMeta(goldmeta); - lightgraymeta.setDisplayName("§7Light Gray Color Chat"); + lightgraymeta.setDisplayName("§7Light Gray Color Chat"); lightgrayitem.setItemMeta(lightgraymeta); - graymeta.setDisplayName("§8Gray Color Chat"); + graymeta.setDisplayName("§8Gray Color Chat"); grayitem.setItemMeta(graymeta); - bluemeta.setDisplayName("§9Blue Color Chat"); + bluemeta.setDisplayName("§9Blue Color Chat"); blueitem.setItemMeta(bluemeta); - lightgreenmeta.setDisplayName("§aLight Green Color Chat"); + lightgreenmeta.setDisplayName("§aLight Green Color Chat"); lightgreenitem.setItemMeta(lightgreenmeta); - aquameta.setDisplayName("§bAqua Color Chat"); + aquameta.setDisplayName("§bAqua Color Chat"); aquaitem.setItemMeta(aquameta); - lightredmeta.setDisplayName("§cLight Red Color Chat"); + lightredmeta.setDisplayName("§cLight Red Color Chat"); lightreditem.setItemMeta(lightredmeta); - pinkmeta.setDisplayName("§dMagenta Color Chat"); + pinkmeta.setDisplayName("§dMagenta Color Chat"); pinkitem.setItemMeta(pinkmeta); - yellowmeta.setDisplayName("§eYellow Color Chat"); + yellowmeta.setDisplayName("§eYellow Color Chat"); yellowitem.setItemMeta(yellowmeta); - whitemeta.setDisplayName("§fWhite Color Chat"); + whitemeta.setDisplayName("§fWhite Color Chat"); whiteitem.setItemMeta(whitemeta); //========================================================== + + ItemStack holder = new ItemStack(Material.GRAY_STAINED_GLASS_PANE, 1); + ItemMeta holderM = holder.getItemMeta(); + holderM.setDisplayName(" "); + holder.setItemMeta(holderM); + + for(int o = 15; o < 27; o++) { + i.setItem(o, holder); + } i.setItem(0, darkblueitem); @@ -171,18 +180,24 @@ public class ColorGUI_1_13_R2 implements CommandExecutor, Listener, ColorGUI{ @EventHandler public void onInventoryClickEvent(InventoryClickEvent e){ - if(!e.getInventory().getTitle().equalsIgnoreCase(Lang.COLOR_GUI.toString())) return; + try { + if(e.getView() == null || e.getView().getTitle() == null) return; + if(!e.getView().getTitle().equalsIgnoreCase(Lang.COLOR_GUI.toString())) return; + }catch(IllegalStateException ex) { + return; + } Player p = (Player) e.getWhoClicked(); e.setCancelled(true); if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()){ - p.closeInventory(); return; } //================ ItemStack item = e.getCurrentItem(); + if(!e.getInventory().contains(item)) return; + switch(item.getType()) { case LAPIS_BLOCK: if(p.hasPermission("ultrachat.color.blue")){ @@ -341,6 +356,8 @@ public class ColorGUI_1_13_R2 implements CommandExecutor, Listener, ColorGUI{ p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); } break; + case GRAY_STAINED_GLASS_PANE: + break; default: p.sendMessage(ChatColor.WHITE + "You choose white color chat!"); p.closeInventory(); diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java index 727a165..5f707c2 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java @@ -20,7 +20,7 @@ import me.ryandw11.ultrachat.api.Lang; /** * ColorGUI class. - * Updated for 1.14+ + * Updated for 1.16+ * @author Ryandw11 * */ @@ -80,49 +80,49 @@ public class ColorGUI_Latest implements CommandExecutor, Listener, ColorGUI{ //========================================================== - darkbluemeta.setDisplayName("§1Dark Blue Color Chat"); + darkbluemeta.setDisplayName("�1Dark Blue Color Chat"); darkblueitem.setItemMeta(darkbluemeta); - greenmeta.setDisplayName("§2Green Color Chat"); + greenmeta.setDisplayName("�2Green Color Chat"); greenitem.setItemMeta(greenmeta); - lightbluemeta.setDisplayName("§3Cyan Color Chat"); + lightbluemeta.setDisplayName("�3Cyan Color Chat"); lightblueitem.setItemMeta(lightbluemeta); - redmeta.setDisplayName("§4Red Color Chat"); + redmeta.setDisplayName("�4Red Color Chat"); reditem.setItemMeta(redmeta); - purplemeta.setDisplayName("§5Purple Color Chat"); + purplemeta.setDisplayName("�5Purple Color Chat"); purpleitem.setItemMeta(purplemeta); - goldmeta.setDisplayName("§6Gold Color Chat"); + goldmeta.setDisplayName("�6Gold Color Chat"); golditem.setItemMeta(goldmeta); - lightgraymeta.setDisplayName("§7Light Gray Color Chat"); + lightgraymeta.setDisplayName("�7Light Gray Color Chat"); lightgrayitem.setItemMeta(lightgraymeta); - graymeta.setDisplayName("§8Gray Color Chat"); + graymeta.setDisplayName("�8Gray Color Chat"); grayitem.setItemMeta(graymeta); - bluemeta.setDisplayName("§9Blue Color Chat"); + bluemeta.setDisplayName("�9Blue Color Chat"); blueitem.setItemMeta(bluemeta); - lightgreenmeta.setDisplayName("§aLight Green Color Chat"); + lightgreenmeta.setDisplayName("�aLight Green Color Chat"); lightgreenitem.setItemMeta(lightgreenmeta); - aquameta.setDisplayName("§bAqua Color Chat"); + aquameta.setDisplayName("�bAqua Color Chat"); aquaitem.setItemMeta(aquameta); - lightredmeta.setDisplayName("§cLight Red Color Chat"); + lightredmeta.setDisplayName("�cLight Red Color Chat"); lightreditem.setItemMeta(lightredmeta); - pinkmeta.setDisplayName("§dMagenta Color Chat"); + pinkmeta.setDisplayName("�dMagenta Color Chat"); pinkitem.setItemMeta(pinkmeta); - yellowmeta.setDisplayName("§eYellow Color Chat"); + yellowmeta.setDisplayName("�eYellow Color Chat"); yellowitem.setItemMeta(yellowmeta); - whitemeta.setDisplayName("§fWhite Color Chat"); + whitemeta.setDisplayName("�fWhite Color Chat"); whiteitem.setItemMeta(whitemeta); //========================================================== diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_Outdated.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_Outdated.java deleted file mode 100644 index be8fdf0..0000000 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_Outdated.java +++ /dev/null @@ -1,371 +0,0 @@ -package me.ryandw11.ultrachat.gui; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.DyeColor; -import org.bukkit.Material; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.material.Wool; - -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.Lang; - -/** - * ColorGUI class. - * Old and outdated. Only in for compatibility. - * (When compiling for 1.13+ only it is ok to leave this class out (Just remove references to it in the UltraChat main class)) - * @author Ryandw11 - * - */ -public class ColorGUI_Outdated implements CommandExecutor, Listener, ColorGUI{ - - private UltraChat plugin; - public ColorGUI_Outdated(){ - plugin = UltraChat.plugin; - } - @SuppressWarnings("deprecation") - public void openGUI(Player p){ - Inventory i = Bukkit.createInventory(null, 9*2, Lang.COLOR_GUI.toString()); - - Wool darkblue = new Wool(DyeColor.BLUE); - ItemStack darkblueitem = darkblue.toItemStack(1); - ItemMeta darkbluemeta = darkblueitem.getItemMeta(); - - Wool green = new Wool(DyeColor.GREEN); - ItemStack greenitem = green.toItemStack(1); - ItemMeta greenmeta = greenitem.getItemMeta(); - - Wool lightblue = new Wool(DyeColor.CYAN); - ItemStack lightblueitem = lightblue.toItemStack(1); - ItemMeta lightbluemeta = lightblueitem.getItemMeta(); - - Wool red = new Wool(DyeColor.RED); - ItemStack reditem = red.toItemStack(1); - ItemMeta redmeta = reditem.getItemMeta(); - - Wool purple = new Wool(DyeColor.PURPLE); - ItemStack purpleitem = purple.toItemStack(1); - ItemMeta purplemeta = purpleitem.getItemMeta(); - - Wool gold = new Wool(DyeColor.ORANGE); - ItemStack golditem = gold.toItemStack(1); - ItemMeta goldmeta = golditem.getItemMeta(); - - ItemStack lightgrayitem = new ItemStack(Material.CLAY); - ItemMeta lightgraymeta = lightgrayitem.getItemMeta(); - - Wool gray = new Wool(DyeColor.GRAY); - ItemStack grayitem = gray.toItemStack(1); - ItemMeta graymeta = grayitem.getItemMeta(); - - ItemStack blueitem = new ItemStack(Material.LAPIS_BLOCK); - ItemMeta bluemeta = blueitem.getItemMeta(); - - Wool lightgreen = new Wool(DyeColor.LIME); - ItemStack lightgreenitem = lightgreen.toItemStack(1); - ItemMeta lightgreenmeta = lightgreenitem.getItemMeta(); - - Wool aqua = new Wool(DyeColor.LIGHT_BLUE); - ItemStack aquaitem = aqua.toItemStack(1); - ItemMeta aquameta = aquaitem.getItemMeta(); - - Wool lightred = new Wool(DyeColor.PINK); - ItemStack lightreditem = lightred.toItemStack(1); - ItemMeta lightredmeta = lightreditem.getItemMeta(); - - Wool pink = new Wool(DyeColor.MAGENTA); - ItemStack pinkitem = pink.toItemStack(1); - ItemMeta pinkmeta = pinkitem.getItemMeta(); - - Wool yellow = new Wool(DyeColor.YELLOW); - ItemStack yellowitem = yellow.toItemStack(1); - ItemMeta yellowmeta = yellowitem.getItemMeta(); - - Wool white = new Wool(DyeColor.WHITE); - ItemStack whiteitem = white.toItemStack(1); - ItemMeta whitemeta = whiteitem.getItemMeta(); - - //========================================================== - - darkbluemeta.setDisplayName("§1Dark Blue Color Chat"); - darkblueitem.setItemMeta(darkbluemeta); - - greenmeta.setDisplayName("§2Green Color Chat"); - greenitem.setItemMeta(greenmeta); - - lightbluemeta.setDisplayName("§3Cyan Color Chat"); - lightblueitem.setItemMeta(lightbluemeta); - - redmeta.setDisplayName("§4Red Color Chat"); - reditem.setItemMeta(redmeta); - - purplemeta.setDisplayName("§5Purple Color Chat"); - purpleitem.setItemMeta(purplemeta); - - goldmeta.setDisplayName("§6Gold Color Chat"); - golditem.setItemMeta(goldmeta); - - lightgraymeta.setDisplayName("§7Light Gray Color Chat"); - lightgrayitem.setItemMeta(lightgraymeta); - - graymeta.setDisplayName("§8Gray Color Chat"); - grayitem.setItemMeta(graymeta); - - bluemeta.setDisplayName("§9Blue Color Chat"); - blueitem.setItemMeta(bluemeta); - - lightgreenmeta.setDisplayName("§aLight Green Color Chat"); - lightgreenitem.setItemMeta(lightgreenmeta); - - aquameta.setDisplayName("§bAqua Color Chat"); - aquaitem.setItemMeta(aquameta); - - lightredmeta.setDisplayName("§cLight Red Color Chat"); - lightreditem.setItemMeta(lightredmeta); - - pinkmeta.setDisplayName("§dMagenta Color Chat"); - pinkitem.setItemMeta(pinkmeta); - - yellowmeta.setDisplayName("§eYellow Color Chat"); - yellowitem.setItemMeta(yellowmeta); - - whitemeta.setDisplayName("§fWhite Chat"); - whiteitem.setItemMeta(whitemeta); - //========================================================== - - - i.setItem(0, darkblueitem); - i.setItem(1, greenitem); - i.setItem(2, lightblueitem); - i.setItem(3, reditem); - i.setItem(4, purpleitem); - i.setItem(5, golditem); - i.setItem(6, lightgrayitem); - i.setItem(7, grayitem); - i.setItem(8, blueitem); - i.setItem(9, lightgreenitem); - i.setItem(10, aquaitem); - i.setItem(11, lightreditem); - i.setItem(12, pinkitem); - i.setItem(13, yellowitem); - i.setItem(14, whiteitem); - - - p.openInventory(i); - } - /* - * Command - */ - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { - if(!(sender instanceof Player)){ - plugin.getLogger().info("This command is for players only!"); - return true; - } - Player p = (Player) sender; - if(p.hasPermission("ultrachat.color")){ - openGUI(p.getPlayer()); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - return false; - - } - /* - * Event - */ - - @EventHandler - public void onInventoryClickEvent(InventoryClickEvent e){ - if(!e.getInventory().getName().equalsIgnoreCase(Lang.COLOR_GUI.toString())) return; - - Player p = (Player) e.getWhoClicked(); - e.setCancelled(true); - - if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()){ - p.closeInventory(); - return; - } - //================ - ItemStack item = e.getCurrentItem(); - @SuppressWarnings("deprecation") - int data = item.getDurability(); - - if(item.getType() == Material.LAPIS_BLOCK){ - if(p.hasPermission("ultrachat.color.blue")){ - p.sendMessage(ChatColor.BLUE + "You choose blue chat color!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&9"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - } - else if(item.getType() == Material.CLAY){ - if(p.hasPermission("ultrachat.color.lightgray")){ - p.sendMessage(ChatColor.GRAY + "You choose light gray color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&7"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - } - else{ - - switch(data) { - case 0: - p.sendMessage(ChatColor.WHITE + "You choose white chat color!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&f"); - plugin.saveFile(); - break; - case 1: - if(p.hasPermission("ultrachat.color.gold")){ - p.sendMessage(ChatColor.GOLD + "You choose gold color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&6"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - case 2: - if(p.hasPermission("ultrachat.color.magenta")){ - p.sendMessage(ChatColor.LIGHT_PURPLE + "You choose magenta color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&d"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - - - case 3: - if(p.hasPermission("ultrachat.color.aqua")){ - p.sendMessage(ChatColor.AQUA + "You choose Aqua color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&b"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - - - case 4: - if(p.hasPermission("ultrachat.color.yellow")){ - p.sendMessage(ChatColor.YELLOW + "You choose yellow color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&e"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - case 5: - if(p.hasPermission("ultrachat.color.lightgreen")){ - p.sendMessage(ChatColor.GREEN + "You choose light green color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&a"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 6: - if(p.hasPermission("ultrachat.color.lightred")){ - p.sendMessage(ChatColor.RED + "You choose light red color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&c"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 7: - if(p.hasPermission("ultrachat.color.gray")){ - p.sendMessage(ChatColor.DARK_GRAY + "You choose gray color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&8"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 9: - if(p.hasPermission("ultrachat.color.cyan")){ - p.sendMessage(ChatColor.DARK_AQUA + "You choose cyan color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&3"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 10: - if(p.hasPermission("ultrachat.color.purple")){ - p.sendMessage(ChatColor.DARK_PURPLE + "You choose purple color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&5"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 11: - if(p.hasPermission("ultrachat.color.darkblue")){ - p.sendMessage(ChatColor.DARK_BLUE + "You choose dark blue color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&1"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 13: - if(p.hasPermission("ultrachat.color.green")){ - p.sendMessage(ChatColor.DARK_GREEN + "You choose green color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&2"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case 14: - if(p.hasPermission("ultrachat.color.red")){ - p.sendMessage(ChatColor.DARK_RED + "You choose red color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&4"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - } - } - - } - - -} \ No newline at end of file diff --git a/src/me/ryandw11/ultrachat/util/ChatUtil.java b/src/me/ryandw11/ultrachat/util/ChatUtil.java new file mode 100644 index 0000000..fbf6c1d --- /dev/null +++ b/src/me/ryandw11/ultrachat/util/ChatUtil.java @@ -0,0 +1,43 @@ +package me.ryandw11.ultrachat.util; + +import me.ryandw11.ultrachat.UltraChat; +import me.ryandw11.ultrachat.formatting.PlayerFormatting; +import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; +import org.bukkit.entity.Player; + +import java.util.List; +import java.util.Map; +import java.util.SortedMap; + +/** + * This is a utility class to make chat easier. + */ +public class ChatUtil { + + /** + * Translates the message into color codes. + *

This also translates hex color codes: {#FFFFFF}

+ * @param message The message to translate + * @return The translated message. + */ + public static String translateColorCodes(String message){ + return UltraChat.plugin.chatColorUtil.translateChatColor(message); + } + + public static String translateColorCodes(Player p, String message){ + return UltraChat.plugin.chatColorUtil.translateChatColor(p, message); + } + + public static ComponentBuilder translateColorCodesChat(String message, PlayerFormatting pf){ + Map result = UltraChat.plugin.chatColorUtil.splitColors(message, pf); + ComponentBuilder builder = new ComponentBuilder(); + for(Map.Entry s : result.entrySet()){ + TextComponent textComponent = new TextComponent(s.getKey()); + textComponent.setColor(UltraChat.plugin.chatColorUtil.translateChatCode(s.getValue())); + builder.append(textComponent); + } + return builder; + } +} diff --git a/plugin.yml b/src/plugin.yml similarity index 100% rename from plugin.yml rename to src/plugin.yml From 62df20ae693fb79b76d2250b05be70d706f50d30 Mon Sep 17 00:00:00 2001 From: Ryandw11 <6239385+ryandw11@users.noreply.github.com> Date: Thu, 25 Jun 2020 19:13:07 -0700 Subject: [PATCH 2/5] Work on 2.5 - Implemented the API correctly. - Fixed hex color chatting. - New color gui system. --- src/chatcolor.yml | 1 + src/lang.yml | 1 + src/me/ryandw11/ultrachat/UltraChat.java | 5 - src/me/ryandw11/ultrachat/api/ChatType.java | 4 +- src/me/ryandw11/ultrachat/api/Lang.java | 3 +- .../ultrachat/api/MessageBuilder.java | 12 +- .../ryandw11/ultrachat/api/UltraChatAPI.java | 142 ++---- src/me/ryandw11/ultrachat/api/Util.java | 49 -- .../ultrachat/api/events/StaffChatEvent.java | 3 + .../ultrachat/api/events/UltraChatEvent.java | 6 +- .../events/properties/ChannelProperties.java | 2 +- .../api/events/properties/ChatProperties.java | 8 +- .../api/events/properties/RangeType.java | 2 +- .../ultrachat/api/managers/AddonManager.java | 27 +- .../api/managers/ChannelManager.java | 45 +- .../chatcolor/ChatColorUtil_Latest.java | 48 -- .../chatcolor/ChatColorUtil_Old.java | 26 +- .../ultrachat/chatcolor/ChatColorUtils.java | 10 - .../ultrachat/commands/ChatCommand.java | 2 +- .../ryandw11/ultrachat/commands/Global.java | 6 +- src/me/ryandw11/ultrachat/commands/World.java | 5 +- .../ultrachat/formatting/ChannelJSON.java | 4 +- .../ultrachat/formatting/NormalJSON.java | 13 +- .../formatting/PlayerFormatting.java | 4 +- .../ultrachat/formatting/RangeJSON.java | 2 +- .../ultrachat/formatting/UUIDFormating.java | 4 +- src/me/ryandw11/ultrachat/gui/ColorGUI.java | 2 +- .../ultrachat/gui/ColorGUI_1_15_R1.java | 4 +- .../ultrachat/gui/ColorGUI_Latest.java | 429 ++++++------------ src/me/ryandw11/ultrachat/util/ChatUtil.java | 25 +- 30 files changed, 285 insertions(+), 609 deletions(-) delete mode 100644 src/me/ryandw11/ultrachat/api/Util.java diff --git a/src/chatcolor.yml b/src/chatcolor.yml index 9379ab0..56d63b6 100644 --- a/src/chatcolor.yml +++ b/src/chatcolor.yml @@ -17,6 +17,7 @@ chat_colors: '&c': 'default' '&d': 'default' '&e': 'default' + '&f': 'default' ############################################### # Chat Color GUI # diff --git a/src/lang.yml b/src/lang.yml index 6160014..826af88 100644 --- a/src/lang.yml +++ b/src/lang.yml @@ -33,4 +33,5 @@ sjoin-hide: '&bYour Join/Leave message will no longer be shown!' sjoin-other-show: '&b%p Join/Leave message will now be shown!' sjoin-other-hide: '&b%p Join/Leave message will no longer be shown!' help-page-error: '&cThere are only two help pages!' +chat-color-change: 'Your chat color has been changed!' diff --git a/src/me/ryandw11/ultrachat/UltraChat.java b/src/me/ryandw11/ultrachat/UltraChat.java index 9172fb2..6f4fe7e 100644 --- a/src/me/ryandw11/ultrachat/UltraChat.java +++ b/src/me/ryandw11/ultrachat/UltraChat.java @@ -59,11 +59,6 @@ import org.bukkit.plugin.java.JavaPlugin; */ public class UltraChat extends JavaPlugin { - /** - * TODO : I just finished allowing Hex colors in chat and removing the option for chat without JSON. - * Next on the list is to add in the color chat picker. - */ - public static UltraChat plugin; public Permission perms = null; public Chat chat = null; diff --git a/src/me/ryandw11/ultrachat/api/ChatType.java b/src/me/ryandw11/ultrachat/api/ChatType.java index 86e114a..89bbb8d 100644 --- a/src/me/ryandw11/ultrachat/api/ChatType.java +++ b/src/me/ryandw11/ultrachat/api/ChatType.java @@ -1,8 +1,10 @@ package me.ryandw11.ultrachat.api; +/** + * The different modes chat can be in. + */ public enum ChatType { NORMAL, CHANNEL, RANGE - } diff --git a/src/me/ryandw11/ultrachat/api/Lang.java b/src/me/ryandw11/ultrachat/api/Lang.java index 5c63627..2895da1 100644 --- a/src/me/ryandw11/ultrachat/api/Lang.java +++ b/src/me/ryandw11/ultrachat/api/Lang.java @@ -39,7 +39,8 @@ public enum Lang { SJOIN_HIDE("sjoin-hide", "&bYour Join/Leave message will no longer be shown!"), SJOIN_OTHER_SHOW("sjoin-other-show", "&b%p Join/Leave message will now be shown!"), SJOIN_OTHER_HIDE("sjoin-other-hide", "&b%p Join/Leave message will no longer be shown!"), - HELP_PAGE_ERROR("help-page-error", "&cThere are only two help pages!"); + HELP_PAGE_ERROR("help-page-error", "&cThere are only two help pages!"), + CHAT_COLOR_CHANGE("chat-color-change", "Your chat color has been changed!"); private String path; diff --git a/src/me/ryandw11/ultrachat/api/MessageBuilder.java b/src/me/ryandw11/ultrachat/api/MessageBuilder.java index 1a49d63..e40cbbc 100644 --- a/src/me/ryandw11/ultrachat/api/MessageBuilder.java +++ b/src/me/ryandw11/ultrachat/api/MessageBuilder.java @@ -14,9 +14,9 @@ import net.md_5.bungee.api.chat.TextComponent; */ public class MessageBuilder { - private ComponentBuilder compon; + private ComponentBuilder component; public MessageBuilder() { - compon = new ComponentBuilder(""); + component = new ComponentBuilder(""); } /** @@ -25,7 +25,7 @@ public class MessageBuilder { * @return The MessageBuilder to chain. */ public MessageBuilder addJSON(JSONChatBuilder json) { - compon.append(json.build(), FormatRetention.FORMATTING); + component.append(json.build(), FormatRetention.NONE); return this; } @@ -36,7 +36,7 @@ public class MessageBuilder { */ public MessageBuilder addString(String s) { TextComponent tc = new TextComponent(s); - compon.append(tc, FormatRetention.FORMATTING); + component.append(tc, FormatRetention.NONE); return this; } @@ -46,11 +46,11 @@ public class MessageBuilder { * @return The Buider to chain */ public MessageBuilder addBaseComponent(BaseComponent[] bc) { - compon.append(bc, FormatRetention.FORMATTING); + component.append(bc, FormatRetention.NONE); return this; } public BaseComponent[] build() { - return this.compon.create(); + return this.component.create(); } } diff --git a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java index 56b809a..b67c7f1 100644 --- a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java +++ b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java @@ -1,10 +1,10 @@ package me.ryandw11.ultrachat.api; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; -import java.util.UUID; +import java.util.*; +import me.ryandw11.ultrachat.api.managers.ChannelManager; +import me.ryandw11.ultrachat.chatcolor.ChatColorManager; +import me.ryandw11.ultrachat.chatcolor.ChatColorUtils; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -16,7 +16,7 @@ import me.ryandw11.ultrachat.formatting.PlayerFormatting; /** * UltraChatAPI * @author Ryandw11 - * @version 2.4 + * @version 2.5 */ public class UltraChatAPI{ @@ -25,31 +25,11 @@ public class UltraChatAPI{ this.plugin = UltraChat.plugin; } - - /** - * Get a format's json. - * @param number - * @return Json array - */ - @SuppressWarnings("unchecked") - public ArrayList getChatFormatJson(String number){ - return (ArrayList) plugin.getConfig().get("Custom_Chat." + number + ".JSON"); - } - /** - * Set a format's json. - * @param json - * @param number - * - */ - public void setChatFormatJson(ArrayList json, String number){ - plugin.getConfig().set("Custom_Chat." + number + ".JSON", json); - plugin.saveConfig(); - } - /** * Get the current channel of a player. * @param player The uuid of the player you want to get. * @return The chat channel. + * @deprecated Use the channel manager instead. */ public ChatChannel getPlayerCurrentChannel(UUID player) { return new ChannelBuilder(plugin.data.getString(player + ".channel")).build(); @@ -91,114 +71,88 @@ public class UltraChatAPI{ * Grab the player's formatting. * @param p The player. * @return The player's formatting. + * @deprecated Construct the {@link PlayerFormatting} class yourself. */ public PlayerFormatting getPlayerFormatting(Player p){ - PlayerFormatting pf = new PlayerFormatting(p); - return pf; + return new PlayerFormatting(p); } + /** - * Get a chat format. - * @param number - * @return Chat format. - */ - public String getFormat(String number){ - return plugin.getConfig().getString("Custom_Chat." + number + ".Format"); - } - /** - * Get the op format. - * @return op format. - */ - public String getOpFormat(){ - return plugin.getConfig().getString("Custom_Chat.Op_Chat.Format"); - } - /** - * Get the default format. - * @return op format. - */ - public String getDefaultFormat(){ - return plugin.getConfig().getString("Custom_Chat.Default.Format"); - } - /** - * Get the permission of a chat group. - * @param number - * @return permission - */ - public String getPermission(String number){ - return plugin.getConfig().getString("Custom_Chat." + number + ".Permission"); - } - /** - * Get the number of formats - * @return Chat Count - */ - public int getChatCount(){ - return plugin.getConfig().getInt("Custom_Chat.Chat_Count"); - } - /** - * Get a player's color. Example: &4 - * @param player + * Get a player's color. + *

This will return a string Such as &4 or {#FFFFFF}.

+ *

Note: The colors interpreted are from the chatcolor.yml file. To also get color data from the use {@link me.ryandw11.ultrachat.util.ChatUtil#translateColorCode(String)}

+ * @param player The player to get the color for * @return color code. */ public String getPlayerColor(Player player){ return plugin.data.getString(player.getUniqueId() + ".color"); } + /** * Set a player's color. - * @param player - * @param color + * @param player The player color to set + * @param color The color to set + *

Keep in mind that this color is interpreted from the chatcolor.yml file, not the default colors.

*/ public void setPlayerColor(Player player, String color){ plugin.data.set(player.getUniqueId() + ".color", color); plugin.saveFile(); } + /** * Get the swear word list. * @return Block swear words. */ - @SuppressWarnings("unchecked") - public ArrayList getSwearWords(){ - return (ArrayList) plugin.getConfig().get("Blocked_Words"); + public List getSwearWords(){ + return plugin.getConfig().getStringList("Blocked_Words"); } + /** * Set the swear word list. - * @param words + * @param words The words to add */ - public void setSwearWords(ArrayList words){ + public void setSwearWords(List words){ plugin.getConfig().set("Blocked_Words", words); plugin.saveConfig(); } - /** - * If components are enabled. - * @return If components are enabled. - */ - public boolean isComponents() { - return plugin.getConfig().getBoolean("Components_Enabled"); - } - /** * Get the current formatting type. * @return The value of the config. */ - public String getFormattingType(){ - return plugin.getConfig().getString("chat_format"); + public ChatType getFormattingType(){ + return plugin.md; } - + /** - * See if default channel exists. - * @param chan - The channel in the config. - * @return True if it does, false if not. + * Get the chat color utility interface. + *

Note: Most methods from this interface are wrapped in the {@link me.ryandw11.ultrachat.util.ChatUtil} class.

+ * @return The chat color utility interface. */ - public boolean legitDefaultChannel(String chan){ - if(plugin.channel.contains(chan)) - return true; - return false; + public ChatColorUtils getChatColorUtil(){ + return plugin.chatColorUtil; } + + /** + * Get the chat color manager. + *

Note: Most uses for this class is covered by the {@link me.ryandw11.ultrachat.util.ChatUtil} class.

+ *

This class is only available on 1.16+ servers. This WILL return null on any version below 1.16.

+ * @return The chat color manager. + */ + public ChatColorManager getChatColorManager(){ + return plugin.chatColorManager; + } + + public ChannelManager getChannelManager(){ + return new ChannelManager(); + } + /** * Get the current active hooks. - * @return The set witht the names of the plugins. Returns null if no hooks are active. + * @return The set with the names of the plugins. Returns null if no hooks are active. */ public Set getActiveHooks(){ - Set s = new HashSet(); + Set s = new HashSet<>(); if(Bukkit.getServer().getPluginManager().getPlugin("AdvancedBan") != null && plugin.getConfig().getBoolean("pluginhooks.Essentials")){ s.add("Essentials"); } diff --git a/src/me/ryandw11/ultrachat/api/Util.java b/src/me/ryandw11/ultrachat/api/Util.java deleted file mode 100644 index 0d3b573..0000000 --- a/src/me/ryandw11/ultrachat/api/Util.java +++ /dev/null @@ -1,49 +0,0 @@ -package me.ryandw11.ultrachat.api; - -import net.md_5.bungee.api.ChatColor; - -public class Util { - /** - * - * @param s - * @return - */ - public static ChatColor getColorFromCode(String s){ - String b = s.substring(1); - switch (b){ - case "1": - return ChatColor.DARK_BLUE; - case "2": - return ChatColor.DARK_GREEN; - case "3": - return ChatColor.DARK_AQUA; - case "4": - return ChatColor.DARK_RED; - case "5": - return ChatColor.DARK_PURPLE; - case "6": - return ChatColor.GOLD; - case "7": - return ChatColor.GRAY; - case "8": - return ChatColor.DARK_GRAY; - case "9": - return ChatColor.BLUE; - case "c": - return ChatColor.RED; - case "d": - return ChatColor.LIGHT_PURPLE; - case "e": - return ChatColor.YELLOW; - case "f": - return ChatColor.WHITE; - case "a": - return ChatColor.GREEN; - case "b": - return ChatColor.AQUA; - } - return null; - } - - -} diff --git a/src/me/ryandw11/ultrachat/api/events/StaffChatEvent.java b/src/me/ryandw11/ultrachat/api/events/StaffChatEvent.java index 7a4c558..d308e25 100644 --- a/src/me/ryandw11/ultrachat/api/events/StaffChatEvent.java +++ b/src/me/ryandw11/ultrachat/api/events/StaffChatEvent.java @@ -4,6 +4,9 @@ import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +/** + * This event is called when the staff chat is used. + */ public class StaffChatEvent extends Event { private static final HandlerList handlers = new HandlerList(); diff --git a/src/me/ryandw11/ultrachat/api/events/UltraChatEvent.java b/src/me/ryandw11/ultrachat/api/events/UltraChatEvent.java index 14bcb27..d5c4276 100644 --- a/src/me/ryandw11/ultrachat/api/events/UltraChatEvent.java +++ b/src/me/ryandw11/ultrachat/api/events/UltraChatEvent.java @@ -9,6 +9,10 @@ import org.bukkit.event.HandlerList; import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.events.properties.ChatProperties; +/** + * The UltraChatEvent is used when a player chats. This event gives you more information than the normal AsyncChatEvent. + *

Note: Since API Version 2.5 this event is only needed when you want specific ultraChat information.

+ */ public class UltraChatEvent extends Event{ private static final HandlerList handlers = new HandlerList(); @@ -36,7 +40,7 @@ public class UltraChatEvent extends Event{ } /** * Set the recipients. - * @param recipents The set of recipients. + * @param recipients The set of recipients. */ public void setRecipients(Set recipients){ this.recipients = recipients; diff --git a/src/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.java b/src/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.java index 9a8bf90..46088fd 100644 --- a/src/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.java +++ b/src/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.java @@ -4,7 +4,7 @@ import me.ryandw11.ultrachat.api.channels.ChannelBuilder; import me.ryandw11.ultrachat.api.channels.ChatChannel; public class ChannelProperties implements ChatProperties { - + private boolean json; private String channel; diff --git a/src/me/ryandw11/ultrachat/api/events/properties/ChatProperties.java b/src/me/ryandw11/ultrachat/api/events/properties/ChatProperties.java index 505a3f4..5ca1653 100644 --- a/src/me/ryandw11/ultrachat/api/events/properties/ChatProperties.java +++ b/src/me/ryandw11/ultrachat/api/events/properties/ChatProperties.java @@ -1,7 +1,11 @@ package me.ryandw11.ultrachat.api.events.properties; public interface ChatProperties { - - public boolean isComponent(); + + /** + * @deprecated As of version 2.5 this will always be true as the plugin is always in JSON mode. + * @return If the plugin has json components enabled. + */ + boolean isComponent(); } diff --git a/src/me/ryandw11/ultrachat/api/events/properties/RangeType.java b/src/me/ryandw11/ultrachat/api/events/properties/RangeType.java index 3669a78..0fef0c8 100644 --- a/src/me/ryandw11/ultrachat/api/events/properties/RangeType.java +++ b/src/me/ryandw11/ultrachat/api/events/properties/RangeType.java @@ -3,5 +3,5 @@ package me.ryandw11.ultrachat.api.events.properties; public enum RangeType { LOCAL, WORLD, - GLBOAL + GLOBAL } diff --git a/src/me/ryandw11/ultrachat/api/managers/AddonManager.java b/src/me/ryandw11/ultrachat/api/managers/AddonManager.java index e5bc382..ce20d33 100644 --- a/src/me/ryandw11/ultrachat/api/managers/AddonManager.java +++ b/src/me/ryandw11/ultrachat/api/managers/AddonManager.java @@ -4,26 +4,45 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import me.ryandw11.ultrachat.api.UltraChatAPI; import me.ryandw11.ultrachat.api.placeholders.PlaceholderAddon; +/** + * This class handles any addons to the plugin. + *

The instance of this class can be retrieved from {@link UltraChatAPI#getAddonManager()}

+ */ public class AddonManager { private List pa; public AddonManager() { pa = new ArrayList<>(); } - + + /** + * Add an addon + * @param pa The addon to add. + */ public void addAddon(PlaceholderAddon pa) { this.pa.add(pa); } - + + /** + * Get the list of addons. + * @return The list of addons. + */ public List getAddons(){ return pa; } - + + /** + * Replace the placeholders in a string. + * @param s The string. + * @param p The player UUID. + * @return The string with the placeholders replaced. + */ public String replacePlaceholders(String s, UUID p) { String output = s; for(PlaceholderAddon fs : pa) { - output.replace(fs.getName(), fs.getString(p)); + output = output.replace(fs.getName(), fs.getString(p)); } return output; } diff --git a/src/me/ryandw11/ultrachat/api/managers/ChannelManager.java b/src/me/ryandw11/ultrachat/api/managers/ChannelManager.java index 838acbe..efc7c35 100644 --- a/src/me/ryandw11/ultrachat/api/managers/ChannelManager.java +++ b/src/me/ryandw11/ultrachat/api/managers/ChannelManager.java @@ -1,8 +1,6 @@ package me.ryandw11.ultrachat.api.managers; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -11,6 +9,10 @@ import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.channels.ChannelBuilder; import me.ryandw11.ultrachat.api.channels.ChatChannel; +/** + * This class handles the channels of the plugin. + *

Get the instance of this class from {@link me.ryandw11.ultrachat.api.UltraChatAPI#getChannelManager()}

+ */ public class ChannelManager { private UltraChat plugin; public ChannelManager() { @@ -29,7 +31,7 @@ public class ChannelManager { /** * Grab the player's current channel. - * @param player + * @param player The player to get the channel from. * @return The player's current channel. */ public ChatChannel getPlayerChannel(Player player){ @@ -39,8 +41,8 @@ public class ChannelManager { /** * Grab an offline player's current channel. - * @param player - * @return + * @param player The player to get the channel from. + * @return That UUID's current channel. */ public ChatChannel getPlayerChannel(UUID player) { ChannelBuilder cb = new ChannelBuilder(plugin.data.getString(player + ".channel")); @@ -58,8 +60,8 @@ public class ChannelManager { /** * Set the player's channel. - * @param player - * @param channel + * @param player The player to set. + * @param channel The channel. */ public void setPlayerChannel(Player player, ChatChannel channel){ plugin.data.set(player.getUniqueId() + ".channel", channel.getName()); @@ -68,8 +70,8 @@ public class ChannelManager { /** * Set the player's channel. - * @param player - * @param channel + * @param player The player to set. + * @param channel The channel. */ public void setPlayerChannel(UUID player, ChatChannel channel) { plugin.data.set(player + ".channel", channel.getName()); @@ -79,7 +81,7 @@ public class ChannelManager { /** * Set the default channel - * @param channel + * @param channel The channel. */ public void setDefaultChannel(ChatChannel channel){ plugin.getConfig().set("Default_Config", channel.getName()); @@ -88,7 +90,8 @@ public class ChannelManager { /** * If a given channel exists (In this instance if it is save in the files) - * @param channel + * @param channel The channel to check. + * @return If the channel exists. */ public boolean channelExists(ChatChannel channel) { return plugin.channel.contains(channel.getName()); @@ -96,8 +99,8 @@ public class ChannelManager { /** * If a given channel exists based upon the name. - * @param name - * @return + * @param name The name of the channel to check + * @return If the channel exists. */ public boolean channelExists(String name) { return plugin.channel.contains(name); @@ -105,8 +108,8 @@ public class ChannelManager { /** * Get all online players in a given channel. - * @param channel - * @return + * @param channel The channel to get the players from. + * @return The list of players. (Unmodifiable) */ public List getPlayersInChannel(ChatChannel channel){ List output = new ArrayList<>(); @@ -115,23 +118,23 @@ public class ChannelManager { output.add(p); } } - return output; + return Collections.unmodifiableList(output); } /** * Get all players in a channel online or offline. - * @param channel - * @return + * @param channel The channel to get the UUIDs from. + * @return The list of UUIDs. (Unmodifiable) */ public List getAllPlayersInChannel(ChatChannel channel){ List output = new ArrayList<>(); - for(String s : plugin.data.getConfigurationSection("").getKeys(false)) { + for(String s : Objects.requireNonNull(plugin.data.getConfigurationSection("")).getKeys(false)) { UUID ud = UUID.fromString(s); if(this.getPlayerChannel(ud).getName().equals(channel.getName())) { output.add(ud); } } - return output; + return Collections.unmodifiableList(output); } } diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java index 134d7d8..56e6288 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java @@ -1,15 +1,7 @@ package me.ryandw11.ultrachat.chatcolor; import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.formatting.PlayerFormatting; import net.md_5.bungee.api.ChatColor; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.MutablePair; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; -import org.bukkit.entity.Player; - -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; public class ChatColorUtil_Latest implements ChatColorUtils { @@ -25,41 +17,6 @@ public class ChatColorUtil_Latest implements ChatColorUtils { return finalMessage; } - @Override - public String translateChatColor(Player p, String message) { - String finalMessage = message; - if(p.hasPermission("ultrachat.chatcolor.hex")) - finalMessage = translateHexColor(finalMessage); - if(p.hasPermission("ultrachat.chatcolor.colorcodes")) - finalMessage = plugin.chatColorManager.translateMapColors(finalMessage); - return finalMessage; - } - - @Override - public Map splitColors(String message, PlayerFormatting pf) { - List normalMessage = new ArrayList<>(Arrays.asList(message.split("\\{(#[^}]+)}|&[^&]"))); - List colorCodes = new ArrayList<>(); - // TODO fix this - colorCodes.add(pf.getColor().toString()); - Matcher m = Pattern.compile("\\{(#[^}]+)}|&[^&]").matcher(message); - while(m.find()) { - colorCodes.add(m.group()); - } - for(int i = 0; i < colorCodes.size(); i++){ - if(!isChatCode(colorCodes.get(i)) && i != 0){ - normalMessage.set(i-1, normalMessage.get(i-1) +colorCodes.get(i)+normalMessage.get(i)); - normalMessage.remove(i); - colorCodes.remove(i); - i--; - } - } - Map output = new LinkedHashMap<>(); - for(int i = 0; i < normalMessage.size(); i++){ - output.put(normalMessage.get(i), colorCodes.get(i)); - } - return output; - } - @Override public ChatColor translateChatCode(String code) { if(code.startsWith("&")){ @@ -87,11 +44,6 @@ public class ChatColorUtil_Latest implements ChatColorUtils { return true; } - @Override - public ChatColor translateChatCode(Player p, String code) { - return null; - } - protected static String translateHexColor(String message){ if(!message.contains("{")) return message; diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java index fe493ba..aee8694 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java @@ -1,13 +1,6 @@ package me.ryandw11.ultrachat.chatcolor; -import me.ryandw11.ultrachat.formatting.PlayerFormatting; -import org.bukkit.ChatColor; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; -import org.bukkit.entity.Player; - -import java.util.List; -import java.util.Map; -import java.util.SortedMap; +import net.md_5.bungee.api.ChatColor; public class ChatColorUtil_Old implements ChatColorUtils { @@ -17,17 +10,7 @@ public class ChatColorUtil_Old implements ChatColorUtils { } @Override - public String translateChatColor(Player p, String message) { - return ChatColor.translateAlternateColorCodes('&', message); - } - - @Override - public Map splitColors(String message, PlayerFormatting pf) { - return null; - } - - @Override - public net.md_5.bungee.api.ChatColor translateChatCode(String code) { + public ChatColor translateChatCode(String code) { return null; } @@ -35,9 +18,4 @@ public class ChatColorUtil_Old implements ChatColorUtils { public boolean isChatCode(String code) { return false; } - - @Override - public net.md_5.bungee.api.ChatColor translateChatCode(Player p, String message) { - return null; - } } diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java index 88ad3ec..543eff0 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java @@ -1,19 +1,9 @@ package me.ryandw11.ultrachat.chatcolor; -import me.ryandw11.ultrachat.formatting.PlayerFormatting; import net.md_5.bungee.api.ChatColor; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; -import org.bukkit.entity.Player; - -import java.util.List; -import java.util.Map; -import java.util.SortedMap; public interface ChatColorUtils { String translateChatColor(String message); - String translateChatColor(Player p, String message); - Map splitColors(String message, PlayerFormatting pf); ChatColor translateChatCode(String code); boolean isChatCode(String code); - ChatColor translateChatCode(Player p, String message); } diff --git a/src/me/ryandw11/ultrachat/commands/ChatCommand.java b/src/me/ryandw11/ultrachat/commands/ChatCommand.java index b4a21b5..95721a3 100644 --- a/src/me/ryandw11/ultrachat/commands/ChatCommand.java +++ b/src/me/ryandw11/ultrachat/commands/ChatCommand.java @@ -250,7 +250,7 @@ public class ChatCommand implements CommandExecutor { } else if(args.length == 1 && args[0].equalsIgnoreCase("color")){ if(p.hasPermission("ultrachat.color")){ - plugin.getColorGUI().openGUI(p.getPlayer()); + plugin.getColorGUI().openGUI(p.getPlayer(), 1); } else{ p.sendMessage(Lang.NO_PERM.toString()); diff --git a/src/me/ryandw11/ultrachat/commands/Global.java b/src/me/ryandw11/ultrachat/commands/Global.java index aaebdb7..8448d43 100644 --- a/src/me/ryandw11/ultrachat/commands/Global.java +++ b/src/me/ryandw11/ultrachat/commands/Global.java @@ -34,13 +34,11 @@ public class Global implements CommandExecutor { p.sendMessage(Lang.NO_PERM.toString()); return true; } - - UltraChatAPI uapi = new UltraChatAPI(); PlayerFormatting pf = new PlayerFormatting(p); - RangeProperties rp = new RangeProperties(uapi.isComponents(), RangeType.GLBOAL); + RangeProperties rp = new RangeProperties(true, RangeType.GLOBAL); UltraChatEvent uce = new UltraChatEvent(p, this.getMessage(args, p), - new HashSet(Bukkit.getOnlinePlayers()), ChatType.RANGE, rp); + new HashSet<>(Bukkit.getOnlinePlayers()), ChatType.RANGE, rp); Bukkit.getScheduler().runTaskAsynchronously(UltraChat.plugin, () ->{ Bukkit.getServer().getPluginManager().callEvent(uce); diff --git a/src/me/ryandw11/ultrachat/commands/World.java b/src/me/ryandw11/ultrachat/commands/World.java index 92adb9f..f22f553 100644 --- a/src/me/ryandw11/ultrachat/commands/World.java +++ b/src/me/ryandw11/ultrachat/commands/World.java @@ -34,12 +34,11 @@ public class World implements CommandExecutor { p.sendMessage(Lang.NO_PERM.toString()); return true; } - UltraChatAPI uapi = new UltraChatAPI(); PlayerFormatting pf = new PlayerFormatting(p); - RangeProperties rp = new RangeProperties(uapi.isComponents(), RangeType.WORLD); + RangeProperties rp = new RangeProperties(true, RangeType.WORLD); UltraChatEvent uce = new UltraChatEvent(p, this.getMessage(args, p), - new HashSet(p.getWorld().getPlayers()), ChatType.RANGE, rp); + new HashSet<>(p.getWorld().getPlayers()), ChatType.RANGE, rp); Bukkit.getScheduler().runTaskAsynchronously(UltraChat.plugin, () -> { Bukkit.getServer().getPluginManager().callEvent(uce); diff --git a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java index f4a6654..f326d65 100644 --- a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java @@ -59,7 +59,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(format, p)); - cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } @@ -80,7 +80,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java index b7f1c20..008816b 100644 --- a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java @@ -1,11 +1,8 @@ package me.ryandw11.ultrachat.formatting; -import java.util.Arrays; import java.util.HashSet; import java.util.Objects; -import me.ryandw11.ultrachat.util.ChatUtil; -import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -42,7 +39,7 @@ public class NormalJSON implements Listener { // Call the UltraChatEvent (This is an optional Event). NormalProperties np = new NormalProperties(true); - UltraChatEvent event = new UltraChatEvent(p, e.getMessage(), new HashSet(e.getRecipients()), ChatType.NORMAL, np); + UltraChatEvent event = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.NORMAL, np); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { return; @@ -55,12 +52,12 @@ public class NormalJSON implements Listener { String formats = pf.getOpFormat() .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) - .replace("%player%", p.getDisplayName()); + .replace("%player%", p.getDisplayName()) + pf.getColor(); for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } return; @@ -77,7 +74,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } return; @@ -95,7 +92,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(ChatUtil.translateColorCodesChat(event.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java index 2a98418..545109f 100644 --- a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java +++ b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java @@ -1,9 +1,9 @@ package me.ryandw11.ultrachat.formatting; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.entity.Player; import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.Util; import net.md_5.bungee.api.ChatColor; import java.util.Objects; @@ -63,7 +63,7 @@ public class PlayerFormatting { return suffix; } public ChatColor getColor(){ - return Util.getColorFromCode(color); + return ChatUtil.translateColorCode(color); } public String getOpFormat(){ return formatOp; diff --git a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java index 5011a90..f974c78 100644 --- a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java @@ -54,7 +54,7 @@ public class RangeJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(ChatUtil.translateColorCodesChat(uce.getMessage(), pf).create(), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java index 4304821..647a033 100644 --- a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java +++ b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java @@ -3,13 +3,13 @@ package me.ryandw11.ultrachat.formatting; import java.util.Objects; import java.util.UUID; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.UltraChatAPI; -import me.ryandw11.ultrachat.api.Util; import me.ryandw11.ultrachat.api.channels.ChatChannel; import net.md_5.bungee.api.ChatColor; @@ -80,7 +80,7 @@ private UltraChat plugin; return suffix; } public ChatColor getColor(){ - return Util.getColorFromCode(color); + return ChatUtil.translateColorCode(color); } public String getOpFormat(){ return formatOp; diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI.java b/src/me/ryandw11/ultrachat/gui/ColorGUI.java index d9ea0b1..5fe8ff8 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI.java @@ -7,5 +7,5 @@ import org.bukkit.entity.Player; * */ public interface ColorGUI { - void openGUI(Player p); + void openGUI(Player p, int page); } diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java index d0c1277..d8c0864 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.java @@ -29,7 +29,7 @@ public class ColorGUI_1_15_R1 implements CommandExecutor, Listener, ColorGUI{ public ColorGUI_1_15_R1(){ plugin = UltraChat.plugin; } - public void openGUI(Player p){ + public void openGUI(Player p, int page){ Inventory i = Bukkit.createInventory(null, InventoryType.CHEST, Lang.COLOR_GUI.toString()); ItemStack darkblueitem = new ItemStack(Material.BLUE_WOOL); @@ -166,7 +166,7 @@ public class ColorGUI_1_15_R1 implements CommandExecutor, Listener, ColorGUI{ } Player p = (Player) sender; if(p.hasPermission("ultrachat.color")){ - openGUI(p.getPlayer()); + openGUI(p.getPlayer(), 0); } else{ p.sendMessage(Lang.NO_PERM.toString()); diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java index 5f707c2..1e2b823 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java @@ -1,16 +1,19 @@ package me.ryandw11.ultrachat.gui; +import com.sun.istack.internal.NotNull; +import me.ryandw11.ultrachat.util.ChatUtil; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -18,6 +21,8 @@ import org.bukkit.inventory.meta.ItemMeta; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Lang; +import java.util.*; + /** * ColorGUI class. * Updated for 1.16+ @@ -27,147 +32,127 @@ import me.ryandw11.ultrachat.api.Lang; public class ColorGUI_Latest implements CommandExecutor, Listener, ColorGUI{ private UltraChat plugin; + private List colors; public ColorGUI_Latest(){ plugin = UltraChat.plugin; + colors = new ArrayList<>(Objects.requireNonNull(plugin.chatColorFC.getConfigurationSection("color_gui")).getKeys(false)); } - public void openGUI(Player p){ - Inventory i = Bukkit.createInventory(null, InventoryType.CHEST, Lang.COLOR_GUI.toString()); - - ItemStack darkblueitem = new ItemStack(Material.BLUE_WOOL); - ItemMeta darkbluemeta = darkblueitem.getItemMeta(); - - ItemStack greenitem = new ItemStack(Material.GREEN_WOOL); - ItemMeta greenmeta = greenitem.getItemMeta(); - - ItemStack lightblueitem = new ItemStack(Material.CYAN_WOOL); - ItemMeta lightbluemeta = lightblueitem.getItemMeta(); - - ItemStack reditem = new ItemStack(Material.RED_WOOL); - ItemMeta redmeta = reditem.getItemMeta(); - - ItemStack purpleitem = new ItemStack(Material.PURPLE_WOOL); - ItemMeta purplemeta = purpleitem.getItemMeta(); - - ItemStack golditem = new ItemStack(Material.ORANGE_WOOL); - ItemMeta goldmeta = golditem.getItemMeta(); - - ItemStack lightgrayitem = new ItemStack(Material.LIGHT_GRAY_WOOL); - ItemMeta lightgraymeta = lightgrayitem.getItemMeta(); - - ItemStack grayitem = new ItemStack(Material.GRAY_WOOL); - ItemMeta graymeta = grayitem.getItemMeta(); - - ItemStack blueitem = new ItemStack(Material.LAPIS_BLOCK); - ItemMeta bluemeta = blueitem.getItemMeta(); - - ItemStack lightgreenitem = new ItemStack(Material.LIME_WOOL); - ItemMeta lightgreenmeta = lightgreenitem.getItemMeta(); - - ItemStack aquaitem = new ItemStack(Material.LIGHT_BLUE_WOOL); - ItemMeta aquameta = aquaitem.getItemMeta(); - - ItemStack lightreditem = new ItemStack(Material.PINK_WOOL); - ItemMeta lightredmeta = lightreditem.getItemMeta(); - - ItemStack pinkitem = new ItemStack(Material.MAGENTA_WOOL); - ItemMeta pinkmeta = pinkitem.getItemMeta(); - - ItemStack yellowitem = new ItemStack(Material.YELLOW_WOOL); - ItemMeta yellowmeta = yellowitem.getItemMeta(); - - ItemStack whiteitem = new ItemStack(Material.WHITE_WOOL); - ItemMeta whitemeta = whiteitem.getItemMeta(); - - //========================================================== - darkbluemeta.setDisplayName("�1Dark Blue Color Chat"); - darkblueitem.setItemMeta(darkbluemeta); - - greenmeta.setDisplayName("�2Green Color Chat"); - greenitem.setItemMeta(greenmeta); - - lightbluemeta.setDisplayName("�3Cyan Color Chat"); - lightblueitem.setItemMeta(lightbluemeta); - - redmeta.setDisplayName("�4Red Color Chat"); - reditem.setItemMeta(redmeta); - - purplemeta.setDisplayName("�5Purple Color Chat"); - purpleitem.setItemMeta(purplemeta); - - goldmeta.setDisplayName("�6Gold Color Chat"); - golditem.setItemMeta(goldmeta); - - lightgraymeta.setDisplayName("�7Light Gray Color Chat"); - lightgrayitem.setItemMeta(lightgraymeta); - - graymeta.setDisplayName("�8Gray Color Chat"); - grayitem.setItemMeta(graymeta); - - bluemeta.setDisplayName("�9Blue Color Chat"); - blueitem.setItemMeta(bluemeta); - - lightgreenmeta.setDisplayName("�aLight Green Color Chat"); - lightgreenitem.setItemMeta(lightgreenmeta); - - aquameta.setDisplayName("�bAqua Color Chat"); - aquaitem.setItemMeta(aquameta); - - lightredmeta.setDisplayName("�cLight Red Color Chat"); - lightreditem.setItemMeta(lightredmeta); - - pinkmeta.setDisplayName("�dMagenta Color Chat"); - pinkitem.setItemMeta(pinkmeta); - - yellowmeta.setDisplayName("�eYellow Color Chat"); - yellowitem.setItemMeta(yellowmeta); - - whitemeta.setDisplayName("�fWhite Color Chat"); - whiteitem.setItemMeta(whitemeta); - //========================================================== - - ItemStack holder = new ItemStack(Material.GRAY_STAINED_GLASS_PANE, 1); - ItemMeta holderM = holder.getItemMeta(); - holderM.setDisplayName(" "); - holder.setItemMeta(holderM); - - for(int o = 15; o < 27; o++) { - i.setItem(o, holder); + + public void openGUI(Player p, int page){ + Inventory inv = Bukkit.createInventory(null, 9*3, Lang.COLOR_GUI.toString()); + + int i = getMin(page); + int invSlot = 0; + while(i < colors.size() && i < getMax(page)){ + ConfigurationSection section = plugin.chatColorFC.getConfigurationSection("color_gui." + colors.get(i)); + assert section != null; + if(p.hasPermission(Objects.requireNonNull(section.getString("permission")))){ + ItemStack item = new ItemStack(Objects.requireNonNull(Material.getMaterial(Objects.requireNonNull(section.getString("item"))))); + ItemMeta meta = item.getItemMeta(); + assert meta != null; + meta.setDisplayName(ChatUtil.translateColorCode(section.getString("color")) + section.getName()); + meta.setLore(Collections.singletonList(ChatColor.AQUA + "Click this to set your chat color!")); + item.setItemMeta(meta); + inv.setItem(invSlot, item); + }else{ + inv.setItem(invSlot, getNoPermItem()); + } + + invSlot++; + i++; } - - - i.setItem(0, darkblueitem); - i.setItem(1, greenitem); - i.setItem(2, lightblueitem); - i.setItem(3, reditem); - i.setItem(4, purpleitem); - i.setItem(5, golditem); - i.setItem(6, lightgrayitem); - i.setItem(7, grayitem); - i.setItem(8, blueitem); - i.setItem(9, lightgreenitem); - i.setItem(10, aquaitem); - i.setItem(11, lightreditem); - i.setItem(12, pinkitem); - i.setItem(13, yellowitem); - i.setItem(14, whiteitem); - - - p.openInventory(i); + setBottom(inv, page); + p.openInventory(inv); } + + private int getMax(int page){ + return 9 * (2 * page); + } + private int getMin(int page){ + return (9 * (page*2)) - (9*2); + } + + private ItemStack getNoPermItem(){ + ItemStack itemStack = new ItemStack(Material.LIGHT_GRAY_STAINED_GLASS_PANE); + ItemMeta meta = itemStack.getItemMeta(); + assert meta != null; + meta.setDisplayName(ChatColor.RED + "You do not have permission for this color!"); + itemStack.setItemMeta(meta); + return itemStack; + } + + private ItemStack getBottomStack(){ + ItemStack bottomStack = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); + ItemMeta bottomMeta = bottomStack.getItemMeta(); + assert bottomMeta != null; + bottomMeta.setDisplayName(ChatColor.GRAY + " "); + bottomStack.setItemMeta(bottomMeta); + return bottomStack; + } + + private ItemStack getPrevStack(int page){ + ItemStack prevPage = new ItemStack(Material.PURPLE_STAINED_GLASS_PANE); + ItemMeta prevMeta = prevPage.getItemMeta(); + assert prevMeta != null; + prevMeta.setDisplayName(ChatColor.LIGHT_PURPLE + "<< Previous Page"); + prevPage.setItemMeta(prevMeta); + if(page > 1) + prevPage.setAmount(page-1); + return prevPage; + } + + private ItemStack getCurrentStack(int page){ + ItemStack currentPage = new ItemStack(Material.GRAY_STAINED_GLASS_PANE); + ItemMeta currentMeta = currentPage.getItemMeta(); + assert currentMeta != null; + currentMeta.setDisplayName(ChatColor.GRAY + "Current Page: " + page); + currentPage.setItemMeta(currentMeta); + currentPage.setAmount(page); + return currentPage; + } + + private ItemStack getNextStack(int page){ + ItemStack nextPage = new ItemStack(Material.RED_STAINED_GLASS_PANE); + ItemMeta nextMeta = nextPage.getItemMeta(); + assert nextMeta != null; + nextMeta.setDisplayName(ChatColor.RED + "Next Page >>"); + nextPage.setItemMeta(nextMeta); + nextPage.setAmount(page+1); + return nextPage; + } + + private void setBottom(Inventory inventory, int page){ + ItemStack bottomStack = getBottomStack(); + ItemStack prevPage = getPrevStack(page); + ItemStack currentPage = getCurrentStack(page); + ItemStack nextPage = getNextStack(page); + for(int i = 18; i < 27; i++){ + if(i == 21 && page > 1){ + inventory.setItem(i, prevPage); + }else if(i == 22){ + inventory.setItem(i, currentPage); + }else if(i == 23 && colors.size() > getMax(page)){ + inventory.setItem(i, nextPage); + }else{ + inventory.setItem(i, bottomStack); + } + } + } + /* * Command */ @Override - public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String s, @NotNull String[] args) { if(!(sender instanceof Player)){ plugin.getLogger().info("This command is for players only!"); return true; } Player p = (Player) sender; if(p.hasPermission("ultrachat.color")){ - openGUI(p.getPlayer()); + openGUI(p.getPlayer(), 1); } else{ p.sendMessage(Lang.NO_PERM.toString()); @@ -194,177 +179,35 @@ public class ColorGUI_Latest implements CommandExecutor, Listener, ColorGUI{ if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()){ return; } - //================ + + int page = Objects.requireNonNull(e.getInventory().getItem(22)).getAmount(); + ItemStack item = e.getCurrentItem(); - if(!e.getInventory().contains(item)) return; - - switch(item.getType()) { - case LAPIS_BLOCK: - if(p.hasPermission("ultrachat.color.blue")){ - p.sendMessage(ChatColor.BLUE + "You choose blue color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&9"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case WHITE_WOOL: - p.sendMessage(ChatColor.WHITE + "You choose white color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&f"); - plugin.saveFile(); - break; - case ORANGE_WOOL: - if(p.hasPermission("ultrachat.color.gold")){ - p.sendMessage(ChatColor.GOLD + "You choose gold color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&6"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case MAGENTA_WOOL: - if(p.hasPermission("ultrachat.color.magenta")){ - p.sendMessage(ChatColor.LIGHT_PURPLE + "You choose magenta color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&d"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - + if(item.equals(getBottomStack()) || item.equals(getCurrentStack(page))) return; + if(item.equals(getNextStack(page))){ + p.closeInventory(); + openGUI(p, page+1); + }else if(item.equals(getPrevStack(page))){ + p.closeInventory(); + openGUI(p, page-1); + }else{ + ConfigurationSection section = plugin.chatColorFC.getConfigurationSection("color_gui." + + ChatColor.stripColor(Objects.requireNonNull(item.getItemMeta()).getDisplayName())); - case LIGHT_BLUE_WOOL: - if(p.hasPermission("ultrachat.color.aqua")){ - p.sendMessage(ChatColor.AQUA + "You choose Aqua color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&b"); - plugin.saveFile(); - } - else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - - - case YELLOW_WOOL: - if(p.hasPermission("ultrachat.color.yellow")){ - p.sendMessage(ChatColor.YELLOW + "You choose yellow color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&e"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - - case LIME_WOOL: - if(p.hasPermission("ultrachat.color.lightgreen")){ - p.sendMessage(ChatColor.GREEN + "You choose light green color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&a"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case PINK_WOOL: - if(p.hasPermission("ultrachat.color.lightred")){ - p.sendMessage(ChatColor.RED + "You choose light red color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&c"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case GRAY_WOOL: - if(p.hasPermission("ultrachat.color.gray")){ - p.sendMessage(ChatColor.DARK_GRAY + "You choose gray color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&8"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case LIGHT_GRAY_WOOL: - if(p.hasPermission("ultrachat.color.lightgray")){ - p.sendMessage(ChatColor.GRAY + "You choose light gray color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&7"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case CYAN_WOOL: - if(p.hasPermission("ultrachat.color.cyan")){ - p.sendMessage(ChatColor.DARK_AQUA + "You choose cyan color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&3"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case PURPLE_WOOL: - if(p.hasPermission("ultrachat.color.purple")){ - p.sendMessage(ChatColor.DARK_PURPLE + "You choose purple color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&5"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case BLUE_WOOL: - if(p.hasPermission("ultrachat.color.darkblue")){ - p.sendMessage(ChatColor.DARK_BLUE + "You choose dark blue color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&1"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case GREEN_WOOL: - if(p.hasPermission("ultrachat.color.green")){ - p.sendMessage(ChatColor.DARK_GREEN + "You choose green color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&2"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case RED_WOOL: - if(p.hasPermission("ultrachat.color.red")){ - p.sendMessage(ChatColor.DARK_RED + "You choose red color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&4"); - plugin.saveFile(); - }else{ - p.sendMessage(ChatColor.RED + "You do not have permission for this color!"); - } - break; - case GRAY_STAINED_GLASS_PANE: - break; - default: - p.sendMessage(ChatColor.WHITE + "You choose white color chat!"); - p.closeInventory(); - plugin.data.set(p.getUniqueId() + ".color", "&f"); - plugin.saveFile(); - break; + assert section != null; + if(!p.hasPermission(Objects.requireNonNull(section.getString("permission")))){ + p.sendMessage(ChatColor.RED + "You do not have permission to use this chat color!"); + return; + } + + plugin.data.set(p.getUniqueId() + ".color", section.getString("color")); + plugin.saveFile(); + + p.spigot().sendMessage(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(section.getString("color") + Lang.CHAT_COLOR_CHANGE))); + + p.closeInventory(); } } diff --git a/src/me/ryandw11/ultrachat/util/ChatUtil.java b/src/me/ryandw11/ultrachat/util/ChatUtil.java index fbf6c1d..92b5e90 100644 --- a/src/me/ryandw11/ultrachat/util/ChatUtil.java +++ b/src/me/ryandw11/ultrachat/util/ChatUtil.java @@ -1,15 +1,7 @@ package me.ryandw11.ultrachat.util; import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.formatting.PlayerFormatting; -import net.md_5.bungee.api.chat.ComponentBuilder; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.tuple.Pair; -import org.bukkit.entity.Player; - -import java.util.List; -import java.util.Map; -import java.util.SortedMap; +import net.md_5.bungee.api.ChatColor; /** * This is a utility class to make chat easier. @@ -26,18 +18,7 @@ public class ChatUtil { return UltraChat.plugin.chatColorUtil.translateChatColor(message); } - public static String translateColorCodes(Player p, String message){ - return UltraChat.plugin.chatColorUtil.translateChatColor(p, message); - } - - public static ComponentBuilder translateColorCodesChat(String message, PlayerFormatting pf){ - Map result = UltraChat.plugin.chatColorUtil.splitColors(message, pf); - ComponentBuilder builder = new ComponentBuilder(); - for(Map.Entry s : result.entrySet()){ - TextComponent textComponent = new TextComponent(s.getKey()); - textComponent.setColor(UltraChat.plugin.chatColorUtil.translateChatCode(s.getValue())); - builder.append(textComponent); - } - return builder; + public static ChatColor translateColorCode(String code){ + return UltraChat.plugin.chatColorUtil.translateChatCode(code); } } From e4230dbbe525b00955768208b48bbe697a732e2a Mon Sep 17 00:00:00 2001 From: Ryandw11 <6239385+ryandw11@users.noreply.github.com> Date: Fri, 26 Jun 2020 03:20:54 -0700 Subject: [PATCH 3/5] Reformatted Code - Renamed several internal variables. - Improved the internal code. - Improved the Javadocs. - Improved the API. - Fixed Help command bug. - Fixed sjoin bug. - The console can now use the /chat command. - Fixed the Range chat. - Reimplemented permission based chat coloring. - Reimplemented permission based chat formatting. - Removed unused config options. - Removed unused Classes. - Added more default config options to the chatcolor.yml. --- src/chatcolor.yml | 7 +- src/config.yml | 4 - src/me/ryandw11/ultrachat/UltraChat.java | 280 +++++++---------- .../ryandw11/ultrachat/api/UltraChatAPI.java | 4 +- .../api/channels/ChannelBuilder.java | 6 +- .../ultrachat/api/channels/ChatChannel.java | 55 +++- .../chatcolor/ChatColorUtil_Latest.java | 11 + .../chatcolor/ChatColorUtil_Old.java | 13 +- .../ultrachat/chatcolor/ChatColorUtils.java | 2 + .../ultrachat/commands/ChatCommand.java | 283 ------------------ .../ryandw11/ultrachat/commands/Global.java | 11 +- .../ultrachat/commands/NewChatCommand.java | 231 ++++++++++++++ .../ultrachat/commands/SpyCommand.java | 12 +- .../ultrachat/commands/StaffChat.java | 2 +- .../ultrachat/commands/StaffChatToggle.java | 6 +- src/me/ryandw11/ultrachat/commands/World.java | 15 +- .../ultrachat/formatting/ChannelJSON.java | 4 +- .../ultrachat/formatting/NormalJSON.java | 10 +- .../formatting/PlayerFormatting.java | 18 +- .../ultrachat/formatting/RangeJSON.java | 47 +-- .../ultrachat/formatting/UUIDFormating.java | 24 +- .../ultrachat/gui/ColorGUI_Latest.java | 2 +- .../ultrachat/listner/ConsoleLogChat.java | 22 -- .../ultrachat/listner/JoinListner.java | 213 +++++++------ .../ryandw11/ultrachat/listner/NoSwear.java | 57 ++-- src/me/ryandw11/ultrachat/listner/Notify.java | 28 +- .../ultrachat/listner/Notify_1_12.java | 24 -- src/me/ryandw11/ultrachat/listner/Spy.java | 51 ++-- .../ryandw11/ultrachat/listner/StopChat.java | 48 +-- .../ultrachat/pluginhooks/EssentialsMute.java | 3 +- src/me/ryandw11/ultrachat/util/ChatUtil.java | 5 + 31 files changed, 714 insertions(+), 784 deletions(-) delete mode 100644 src/me/ryandw11/ultrachat/commands/ChatCommand.java create mode 100644 src/me/ryandw11/ultrachat/commands/NewChatCommand.java delete mode 100644 src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java delete mode 100644 src/me/ryandw11/ultrachat/listner/Notify_1_12.java diff --git a/src/chatcolor.yml b/src/chatcolor.yml index 56d63b6..d917dd8 100644 --- a/src/chatcolor.yml +++ b/src/chatcolor.yml @@ -18,6 +18,7 @@ chat_colors: '&d': 'default' '&e': 'default' '&f': 'default' + '&g': '{#11f014}' ############################################### # Chat Color GUI # @@ -86,4 +87,8 @@ color_gui: 'Black': color: '&0' item: 'BLACK_WOOL' - permission: 'ultrachat.chatcolor.black' \ No newline at end of file + permission: 'ultrachat.chatcolor.black' + 'Pumpkin Orange': + color: '{#f59b14}' + item: 'BLACK_WOOL' + permission: 'ultrachat.chatcolor.pumpkinorange' \ No newline at end of file diff --git a/src/config.yml b/src/config.yml index fa2876f..1410c44 100644 --- a/src/config.yml +++ b/src/config.yml @@ -87,10 +87,6 @@ chat_format: 'normal' #The default color that opped players chat in. Do &r for none. Op_Chat_Color: '&c' -#Console Chat Log: (JSON chat only!) -#With json on the chat no longer prints to the console. This option fixes that issue! Set to true if you want it enabled! -console_log: false - #Variables: %prefix% - Gives you the players prefix. %suffix% - gives you the player suffix! #You can use PlaceHolderAPI here! Check out the placeholders here: https://www.spigotmc.org/wiki/placeholderapi-placeholders/ #You can have unlimited custom chat formats. diff --git a/src/me/ryandw11/ultrachat/UltraChat.java b/src/me/ryandw11/ultrachat/UltraChat.java index 6f4fe7e..48f3077 100644 --- a/src/me/ryandw11/ultrachat/UltraChat.java +++ b/src/me/ryandw11/ultrachat/UltraChat.java @@ -1,13 +1,5 @@ package me.ryandw11.ultrachat; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Objects; -import java.util.UUID; - import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.managers.AddonManager; @@ -15,24 +7,14 @@ import me.ryandw11.ultrachat.chatcolor.ChatColorManager; import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Latest; import me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Old; import me.ryandw11.ultrachat.chatcolor.ChatColorUtils; -import me.ryandw11.ultrachat.commands.ChannelCmd; -import me.ryandw11.ultrachat.commands.ChatCommand; -import me.ryandw11.ultrachat.commands.CommandTabCompleter; -import me.ryandw11.ultrachat.commands.Global; -import me.ryandw11.ultrachat.commands.StaffChat; -import me.ryandw11.ultrachat.commands.StaffChatToggle; -import me.ryandw11.ultrachat.commands.World; -import me.ryandw11.ultrachat.commands.SpyCommand; +import me.ryandw11.ultrachat.commands.*; import me.ryandw11.ultrachat.formatting.ChannelJSON; import me.ryandw11.ultrachat.formatting.NormalJSON; import me.ryandw11.ultrachat.formatting.RangeJSON; -import me.ryandw11.ultrachat.gui.*; -import me.ryandw11.ultrachat.listner.ConsoleLogChat; -import me.ryandw11.ultrachat.listner.JoinListner; -import me.ryandw11.ultrachat.listner.NoSwear; -import me.ryandw11.ultrachat.listner.Notify; -import me.ryandw11.ultrachat.listner.Spy; -import me.ryandw11.ultrachat.listner.StopChat; +import me.ryandw11.ultrachat.gui.ColorGUI; +import me.ryandw11.ultrachat.gui.ColorGUI_1_15_R1; +import me.ryandw11.ultrachat.gui.ColorGUI_Latest; +import me.ryandw11.ultrachat.listner.*; import me.ryandw11.ultrachat.pluginhooks.AdvancedBanMute; import me.ryandw11.ultrachat.pluginhooks.EssentialsMute; import me.ryandw11.ultrachat.util.Metrics; @@ -41,7 +23,6 @@ import me.ryandw11.ultrachat.util.papi.PAPIEnabled; import me.ryandw11.ultrachat.util.papi.PlaceHolderAPIHook; import net.milkbowl.vault.chat.Chat; import net.milkbowl.vault.permission.Permission; - import org.bukkit.Bukkit; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.FileConfiguration; @@ -49,51 +30,49 @@ import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.UUID; + /** * Main Class - * + *

Updated for 1.16.1.

+ *

Note: You should access manager classes from the {@link me.ryandw11.ultrachat.api.UltraChatAPI} class.

* @author Ryandw11 - * @version 2.4 - * Updated for 1.14. - * (Very few API methods here) + * @version 2.5 */ public class UltraChat extends JavaPlugin { public static UltraChat plugin; - public Permission perms = null; - public Chat chat = null; - public Boolean chatStop = false; - public ChatType md; - public ArrayList stafftoggle = new ArrayList<>(); - public ArrayList spytoggle = new ArrayList<>(); - - public PlaceHolderAPIHook papi; - - public File datafile = new File(getDataFolder() + "/data/players.yml"); - public FileConfiguration data = YamlConfiguration.loadConfiguration(datafile); - public File channelfile; - public FileConfiguration channel; - - public File chatColorFile = new File(getDataFolder() + "/chatcolor.yml"); - public FileConfiguration chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); - - public String prefix; public static YamlConfiguration LANG; public static File LANG_FILE; - - private ColorGUI colorGUI; + public Permission perms; + public Chat chat; + public Boolean isChatStopped = false; + public ChatType chatType; + public List staffToggle = new ArrayList<>(); + public List spyToggle = new ArrayList<>(); + public PlaceHolderAPIHook papi; + public File dataFile = new File(getDataFolder() + "/data/players.yml"); + public FileConfiguration data = YamlConfiguration.loadConfiguration(dataFile); + public File channelFile; + public FileConfiguration channel; + public File chatColorFile = new File(getDataFolder() + "/chatcolor.yml"); + public FileConfiguration chatColorFC = YamlConfiguration.loadConfiguration(chatColorFile); + public String prefix; public ChatColorManager chatColorManager; public AddonManager addonManager; public ChatColorUtils chatColorUtil; - + private ColorGUI colorGUI; @Override public void onEnable() { - - /* - * Plugin setup area - */ plugin = this; if (getServer().getPluginManager().getPlugin("Vault") == null && !setupChat()) { getLogger().info(String.format("[%s] - Vault is not found!", getDescription().getName())); @@ -101,6 +80,7 @@ public class UltraChat extends JavaPlugin { Bukkit.getPluginManager().disablePlugin(this); return; } + if (getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { getLogger().info("Hooked into PlaceholderAPI! You can use the place holders!"); papi = new PAPIEnabled(); @@ -128,7 +108,6 @@ public class UltraChat extends JavaPlugin { setupFormatting(); loadLang(); if (plugin.getConfig().getBoolean("bstats")) { - @SuppressWarnings("unused") Metrics m = new Metrics(this); } addonManager = new AddonManager(); @@ -136,7 +115,7 @@ public class UltraChat extends JavaPlugin { @Override public void onDisable() { - getLogger().info("[UltraChat] has been disabled correctly!"); + getLogger().info("The plugin has been disabled correctly!"); saveFile(); saveChannel(); } @@ -146,6 +125,7 @@ public class UltraChat extends JavaPlugin { */ public void setupFormatting() { String type = getConfig().getString("chat_format"); + assert type != null; if (type.equals("")) { getLogger().info("UltraChat will not format the chat. To change this go into the config."); return; @@ -154,25 +134,87 @@ public class UltraChat extends JavaPlugin { switch (type.toLowerCase()) { case "channel": Bukkit.getServer().getPluginManager().registerEvents(new ChannelJSON(), this); - md = ChatType.CHANNEL; + chatType = ChatType.CHANNEL; getLogger().info("Channel chat mode enabled."); break; case "range": Bukkit.getServer().getPluginManager().registerEvents(new RangeJSON(), this); - getCommand("global").setExecutor(new Global()); - getCommand("world").setExecutor(new World()); + Objects.requireNonNull(getCommand("global")).setExecutor(new Global()); + Objects.requireNonNull(getCommand("world")).setExecutor(new World()); getLogger().info("Range chat mode enabled. The commands /global and /world are now also active."); - md = ChatType.RANGE; + chatType = ChatType.RANGE; break; default: Bukkit.getServer().getPluginManager().registerEvents(new NormalJSON(), this); - md = ChatType.NORMAL; + chatType = ChatType.NORMAL; getLogger().info("Normal chat mode activated!"); break; } } - //Vault set-up ========================================================= + /** + * Loads all of the Events and Commands. + */ + public void loadMethod() { + Objects.requireNonNull(getCommand("chat")).setExecutor(new NewChatCommand(this)); + Objects.requireNonNull(getCommand("chat")).setTabCompleter(new CommandTabCompleter()); + Objects.requireNonNull(getCommand("sc")).setExecutor(new StaffChat()); + Objects.requireNonNull(getCommand("sctoggle")).setExecutor(new StaffChatToggle()); + Objects.requireNonNull(getCommand("spy")).setExecutor(new SpyCommand()); + Objects.requireNonNull(getCommand("channel")).setExecutor(new ChannelCmd()); + Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); + Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); + Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); + Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); + loadVersions(); + } + + /** + * Loads classes based upon the server version. + */ + private void loadVersions() { + String version; + + try { + + version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; + + } catch (ArrayIndexOutOfBoundsException w0w) { + version = " "; + } + if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { + + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); + colorGUI = new ColorGUI_1_15_R1(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + Objects.requireNonNull(getCommand("color")).setExecutor(new ColorGUI_1_15_R1()); + + this.chatColorUtil = new ChatColorUtil_Old(); + + } else { + + Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); + colorGUI = new ColorGUI_Latest(); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + + chatColorManager = new ChatColorManager(this, Objects.requireNonNull(chatColorFC.getConfigurationSection("chat_colors"))); + + if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) + Objects.requireNonNull(getCommand("color")).setExecutor(new ColorGUI_Latest()); + + this.chatColorUtil = new ChatColorUtil_Latest(this); + } + } + + /** + * Get the ColorGUI class for the right version. + * + * @return A class that implements ColorGUI + */ + public ColorGUI getColorGUI() { + return colorGUI; + } private boolean setupChat() { RegisteredServiceProvider rsp = getServer().getServicesManager().getRegistration(Chat.class); @@ -185,14 +227,13 @@ public class UltraChat extends JavaPlugin { perms = rsp.getProvider(); return perms != null; } - //========================================================================= END =============================== /** * Save the data file. */ public void saveFile() { try { - data.save(datafile); + data.save(dataFile); } catch (IOException e) { e.printStackTrace(); @@ -203,9 +244,9 @@ public class UltraChat extends JavaPlugin { * load the data file */ public void loadFile() { - if (datafile.exists()) { + if (dataFile.exists()) { try { - data.load(datafile); + data.load(dataFile); } catch (IOException | InvalidConfigurationException e) { @@ -213,7 +254,7 @@ public class UltraChat extends JavaPlugin { } } else { try { - data.save(datafile); + data.save(dataFile); } catch (IOException e) { e.printStackTrace(); } @@ -239,7 +280,7 @@ public class UltraChat extends JavaPlugin { public void saveChannel() { try { - channel.save(channelfile); + channel.save(channelFile); } catch (IOException e) { e.printStackTrace(); @@ -251,14 +292,14 @@ public class UltraChat extends JavaPlugin { * Load the cannel file. */ public void loadChannel() { - channelfile = new File(getDataFolder(), "channel.yml"); - if (!channelfile.exists()) { - channelfile.getParentFile().mkdirs(); + channelFile = new File(getDataFolder(), "channel.yml"); + if (!channelFile.exists()) { + channelFile.getParentFile().mkdirs(); saveResource("channel.yml", false); } channel = new YamlConfiguration(); try { - channel.load(channelfile); + channel.load(channelFile); } catch (IOException | InvalidConfigurationException e) { @@ -283,9 +324,8 @@ public class UltraChat extends JavaPlugin { } /** - * + * Load the language file. */ - @SuppressWarnings("static-access") public void loadLang() { File lang = new File(getDataFolder(), "lang.yml"); if (!lang.exists()) { @@ -313,8 +353,8 @@ public class UltraChat extends JavaPlugin { } } Lang.setFile(conf); - this.LANG = conf; - this.LANG_FILE = lang; + LANG = conf; + LANG_FILE = lang; try { conf.save(getLangFile()); } catch (IOException e) { @@ -328,93 +368,5 @@ public class UltraChat extends JavaPlugin { saveDefaultConfig(); } - /** - * Loads all of the Events and Commands. - */ - public void loadMethod() { - getCommand("chat").setExecutor(new ChatCommand()); - getCommand("chat").setTabCompleter(new CommandTabCompleter()); - getCommand("sc").setExecutor(new StaffChat()); - getCommand("sctoggle").setExecutor(new StaffChatToggle()); - getCommand("spy").setExecutor(new SpyCommand()); - getCommand("channel").setExecutor(new ChannelCmd()); - Bukkit.getServer().getPluginManager().registerEvents(new StopChat(), this); - Bukkit.getServer().getPluginManager().registerEvents(new NoSwear(), this); - Bukkit.getServer().getPluginManager().registerEvents(new Spy(), this); - Bukkit.getServer().getPluginManager().registerEvents(new JoinListner(), this); - //Bukkit.getServer().getPluginManager().registerEvents(new Format(this), this); - if (getConfig().getBoolean("console_log")) - Bukkit.getServer().getPluginManager().registerEvents(new ConsoleLogChat(), this); - loadVersions(); - } - /** - * Loads classes based upon the server version. - */ - private void loadVersions() { - String version; - - try { - - version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3]; - - } catch (ArrayIndexOutOfBoundsException w0w) { - version = " "; - } - if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { - - Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); - colorGUI = new ColorGUI_1_15_R1(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); - if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_1_15_R1()); - - this.chatColorUtil = new ChatColorUtil_Old(); - - } else { - - Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); - colorGUI = new ColorGUI_Latest(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); - - chatColorManager = new ChatColorManager(this, Objects.requireNonNull(chatColorFC.getConfigurationSection("chat_colors"))); - - if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) - getCommand("color").setExecutor(new ColorGUI_Latest()); - - this.chatColorUtil = new ChatColorUtil_Latest(this); - } - } - - /** - * Get the ColorGUI class for the right version. - * - * @return A class that implements ColorGUI - */ - public ColorGUI getColorGUI() { - return colorGUI; - } - - -} - -//Permmisions: -//ultrachat.stopchat -//ultrachat.stopchat.bypass -//ultrachat.mode -//ultrachat.vipchat -//ultrachat.broadcast -//ultrachat.staffchat -//ultrachat.staffchat.toggle -//ultrachat.spy -//ultrachat.staffmode -//ultrachat.clearchat -//ultrachat.commandblock.bypass -//ultrachat.sjoin -//ultrachat.color -//ultrachat.worldmute -//ultrachat.sjoin.alert -//ultrachat.spy.others -//ultrachat.fakejoin -//ultrachat.fakeleave -//ultrachat.help \ No newline at end of file +} \ No newline at end of file diff --git a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java index b67c7f1..fa6efe6 100644 --- a/src/me/ryandw11/ultrachat/api/UltraChatAPI.java +++ b/src/me/ryandw11/ultrachat/api/UltraChatAPI.java @@ -49,7 +49,7 @@ public class UltraChatAPI{ * @return chat type */ public ChatType getChatType(){ - return plugin.md; + return plugin.chatType; } @@ -121,7 +121,7 @@ public class UltraChatAPI{ * @return The value of the config. */ public ChatType getFormattingType(){ - return plugin.md; + return plugin.chatType; } /** diff --git a/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java b/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java index a2c0068..3039e35 100644 --- a/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java +++ b/src/me/ryandw11/ultrachat/api/channels/ChannelBuilder.java @@ -83,7 +83,7 @@ public class ChannelBuilder { /** * Set if the channel is always appear - * @param alwaysAppear + * @param alwaysAppear If the channel should always appear. * @return The builder */ public ChannelBuilder setAlwaysAppear(boolean alwaysAppear) { @@ -95,15 +95,15 @@ public class ChannelBuilder { * Build the channel * @return The channel. Note: If the channel name is already used it will return the existing one. */ - @SuppressWarnings("unchecked") public ChatChannel build() { if(UltraChat.plugin.channel.contains(this.name)) { ConfigurationSection cs = UltraChat.plugin.channel.getConfigurationSection(this.name); + assert cs != null; this.setPrefix(cs.getString("prefix")); this.setPermission(cs.getString("permission")); this.setAlwaysAppear(cs.getBoolean("always_appear")); this.setFormat(cs.getString("format")); - this.setJson((ArrayList) cs.get("JSON")); + this.setJson(cs.getStringList("JSON")); } return new ChatChannel(this); } diff --git a/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java b/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java index 3614409..c4c70ae 100644 --- a/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java +++ b/src/me/ryandw11/ultrachat/api/channels/ChatChannel.java @@ -4,6 +4,10 @@ import java.util.List; import me.ryandw11.ultrachat.UltraChat; +/** + * This class is used the manage channels. + *

Note: All set methods automatically call the {@link #update()} method.

+ */ public class ChatChannel { private String name; @@ -15,7 +19,7 @@ public class ChatChannel { /** * For internal use only. Always use the channel builder. - * @param cb + * @param cb The builder that was used to build the channel. */ public ChatChannel(ChannelBuilder cb) { this.name = cb.getName(); @@ -31,9 +35,9 @@ public class ChatChannel { } /** - * Auto calls the update() method. + * Set the name of the channel. *

Note: If this channel is the default channel then you will need to change the default channel name manually

- * @param name + * @param name The name of the channel. */ public void setName(String name) { UltraChat.plugin.channel.set(this.name, null); @@ -41,44 +45,76 @@ public class ChatChannel { update(); } + /** + * Get the prefix of the channel. + * @return The prefix of the channel. + */ public String getPrefix() { return prefix; } + /** + * Set the prefix of the channel. + * @param prefix The prefix of the channel. + */ public void setPrefix(String prefix) { this.prefix = prefix; update(); } + /** + * Get the permission for the channel. + * @return The permission for the channel. + */ public String getPermission() { return permission; } + /** + * Set the permission for the channel. + * @param permission The permission for the channel. + */ public void setPermission(String permission) { this.permission = permission; update(); } + /** + * If the channel always appears. + * @return If the channel always appears. + */ public boolean isAlwaysAppear() { return alwaysAppear; } + /** + * Set if the channel will always appear in chat. + * @param alwaysAppear If the channel will always appear. + */ public void setAlwaysAppear(boolean alwaysAppear) { this.alwaysAppear = alwaysAppear; update(); } + /** + * Get the json of the channel + * @return The json. + */ public List getJson() { return json; } + /** + * Set the json for the channel. + * @param json The json. + */ public void setJson(List json) { this.json = json; update(); } /** - * Call this after every change and after intialization to save the channel to the files. + * Call this after every change and after initialization to save the channel to the files. */ private void update() { UltraChat plugin = UltraChat.plugin; @@ -91,15 +127,24 @@ public class ChatChannel { /** * Delete the channel + * @deprecated It is not recommended to use this. */ public void delete() { UltraChat.plugin.channel.set(this.getName(), null); } - + + /** + * Get the format of the channel. + * @return The format + */ public String getFormat() { return format; } + /** + * Set the format of the channel. + * @param format The format. + */ public void setFormat(String format) { this.format = format; update(); diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java index 56e6288..2477294 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.chatcolor; import me.ryandw11.ultrachat.UltraChat; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public class ChatColorUtil_Latest implements ChatColorUtils { @@ -17,6 +18,16 @@ public class ChatColorUtil_Latest implements ChatColorUtils { return finalMessage; } + @Override + public String translateChatColor(String message, Player p) { + String finalMessage = message; + if(p.hasPermission("ultrachat.chat.hex")) + finalMessage = translateHexColor(message); + if(p.hasPermission("ultrachat.chat.color")) + finalMessage = plugin.chatColorManager.translateMapColors(finalMessage); + return finalMessage; + } + @Override public ChatColor translateChatCode(String code) { if(code.startsWith("&")){ diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java index aee8694..e9e661a 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.java @@ -1,6 +1,7 @@ package me.ryandw11.ultrachat.chatcolor; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public class ChatColorUtil_Old implements ChatColorUtils { @@ -9,9 +10,19 @@ public class ChatColorUtil_Old implements ChatColorUtils { return ChatColor.translateAlternateColorCodes('&', message); } + @Override + public String translateChatColor(String message, Player p) { + if(p.hasPermission("ultrachat.chat.color")) + return ChatColor.translateAlternateColorCodes('&', message); + return message; + } + @Override public ChatColor translateChatCode(String code) { - return null; + if(code.startsWith("&")){ + return ChatColor.getByChar(code.replace("&", "").charAt(0)); + } + return ChatColor.RED; } @Override diff --git a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java index 543eff0..2963968 100644 --- a/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java +++ b/src/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.java @@ -1,9 +1,11 @@ package me.ryandw11.ultrachat.chatcolor; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; public interface ChatColorUtils { String translateChatColor(String message); + String translateChatColor(String message, Player p); ChatColor translateChatCode(String code); boolean isChatCode(String code); } diff --git a/src/me/ryandw11/ultrachat/commands/ChatCommand.java b/src/me/ryandw11/ultrachat/commands/ChatCommand.java deleted file mode 100644 index 95721a3..0000000 --- a/src/me/ryandw11/ultrachat/commands/ChatCommand.java +++ /dev/null @@ -1,283 +0,0 @@ -package me.ryandw11.ultrachat.commands; - -import me.ryandw11.ultrachat.UltraChat; -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.UltraChatAPI; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -/** - * - * @author Ryandw11 - * - */ -public class ChatCommand implements CommandExecutor { - - - private UltraChat plugin; - public ChatCommand(){ - plugin = UltraChat.plugin; - } - - @Override - public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { - if(!(sender instanceof Player )){ - plugin.getLogger().info(ChatColor.RED + "This command is for players only!"); - return true; - } - Player p = (Player) sender; - - - if(args.length == 0){ - p.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}=============="); - p.sendMessage(ChatColor.BLUE + "Plugin developed by:" + ChatColor.GREEN + " Ryandw11"); - p.sendMessage(ChatColor.BLUE + "Version: " + ChatColor.GREEN + String.format("%s", plugin.getDescription().getVersion())); - p.sendMessage(ChatColor.BLUE + "Plugin wiki:" + ChatColor.GREEN + " https://github.com/ryandw11/UltraChat/wiki"); - p.sendMessage(ChatColor.BLUE + "Do " + ChatColor.GREEN + " /chat help " + ChatColor.BLUE + "for the list of commands!"); - p.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}=============="); - - } - - - //Chat Stop Command - else if(args.length == 1 && args[0].equalsIgnoreCase("stop")){ - if(p.hasPermission("ultrachat.stopchat")){ - - if(plugin.chatStop == true){ - plugin.chatStop = false; - p.sendMessage(Lang.CHAT_UNSTOP_PERSONAL.toString()); - Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_OFF.toString().replace("%p", p.getDisplayName())); - } - else if(plugin.chatStop == false){ - plugin.chatStop = true; - p.sendMessage(Lang.CHAT_STOP_PERSONAL.toString()); - Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_ON.toString().replace("%p", p.getDisplayName())); - } - else{ - p.sendMessage("An error has occured!"); - } - - - - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - - - } - - - else if(args.length >= 1 && args[0].equalsIgnoreCase("broadcast")){ - if(p.hasPermission("ultrachat.broadcast")){ - String Message = ""; - for (int i = 1; i < args.length; i++){ - Message = Message + " " + args[i]; - } - Bukkit.getServer().broadcastMessage(Lang.BROADCAST_PREFIX.toString() + ChatColor.translateAlternateColorCodes('&', Message)); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - - } - else if(args.length == 1 && args[0].equalsIgnoreCase("broadcast")){ - if(p.hasPermission("ultrachat.broadcast")){ - p.sendMessage(ChatColor.RED + "Invalid Usage: /chat broadcast (broadcast)"); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - }//end of broadcast====================================================================================== - // - //================================================================================================================ - - else if(args.length == 1 && args[0].equalsIgnoreCase("clear")){ - if(p.hasPermission("ultrachat.clearchat")){ - for (int i = 0; i < 100; i++){ - for(Player pl : Bukkit.getOnlinePlayers()){ - pl.sendMessage(" "); - } - } - Bukkit.getServer().broadcastMessage(Lang.CHAT_CLEAR.toString().replace("%p", p.getName())); - - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - } - //======================================================== - - //========================================================== - - else if(args.length == 1 && args[0].equalsIgnoreCase("sjoin")){ - if(p.hasPermission("ultrachat.sjoin")){ - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - p.sendMessage(Lang.SJOIN_SHOWN.toString()); - plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); - plugin.saveFile(); - } - else{ - plugin.data.set(p.getUniqueId().toString() + ".sjoin", true); - plugin.saveFile(); - p.sendMessage(Lang.SJOIN_HIDE.toString()); - } - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - - } - else if(args.length == 2 && args[0].equalsIgnoreCase("sjoin")){ - if(p.hasPermission("ultrachat.sjoin.others")){ - Player pl = (Player) Bukkit.getServer().getPlayer(args[1]); - if(pl == null){p.sendMessage(ChatColor.RED + "Player can not be null!"); return true;} - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - p.sendMessage(String.format(Lang.SJOIN_OTHER_SHOW.toString(), pl.getName())); - plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); - plugin.saveFile(); - } - else{ - plugin.data.set(p.getUniqueId().toString() + ".sjoin", true); - plugin.saveFile(); - p.sendMessage(String.format(Lang.SJOIN_OTHER_HIDE.toString(), pl.getName())); - } - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - - } - - //====================================================================================================== - // Break - //====================================================================================================== - - - else if(args.length == 2 && args[0].equalsIgnoreCase("join")){ - if(p.hasPermission("ultrachat.fakejoin")){ - Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Join_Message").replace("%player%", args[1]))); - - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - }//end of fake join - - else if(args.length == 2 && args[0].equalsIgnoreCase("leave")){ - if(p.hasPermission("ultrachat.fakeleave")){ - Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", args[1]))); - - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - }//end of fake leave - //==================================================================== - - //================================================================ - else if(args.length == 1 && args[0].equalsIgnoreCase("help")){ - if(!p.hasPermission("ultrachat.help")) - p.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Utlra Chat" + ChatColor.BLUE + "]=-------------------"); - p.sendMessage(ChatColor.GREEN + "/chat help" + ChatColor.BLUE + " The help command."); - p.sendMessage(ChatColor.GREEN + "/chat stop" + ChatColor.BLUE + " Stop the chat."); - p.sendMessage(ChatColor.GREEN + "/chat broadcast (message)" + ChatColor.BLUE + " Send a message to every player."); - p.sendMessage(ChatColor.GREEN + "/sc (message)" + ChatColor.BLUE + " Talk in staff chat."); - p.sendMessage(ChatColor.GREEN + "/sctoggle" + ChatColor.BLUE + " Toggle staff chat."); - p.sendMessage(ChatColor.GREEN + "/spy" + ChatColor.BLUE + " Enable or disable command spy."); - p.sendMessage(ChatColor.GREEN + "/chat clear" + ChatColor.BLUE + " Clear the chat."); - p.sendMessage(ChatColor.GREEN + "/chat sjoin" + ChatColor.BLUE + " Silently join and leave the server."); - p.sendMessage(ChatColor.GREEN + "/chat leave (player)" + ChatColor.BLUE + " Send a fake leave message."); - p.sendMessage(ChatColor.GREEN + "/chat join (player) " + ChatColor.BLUE + " Send a fake join message."); - p.sendMessage(ChatColor.BLUE + "Do" + ChatColor.GREEN + " /chat help 2" + ChatColor.BLUE + " for more help pages!"); - p.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "1/2" + ChatColor.BLUE + "."); - p.sendMessage(ChatColor.BLUE + "---------------------------------------------------"); - - }//end of help - - else if(args.length == 2 && args[0].equalsIgnoreCase("help")){ - if(p.hasPermission("ultrachat.help")){ - if(args[1].equals("2")){ - p.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Utlra Chat" + ChatColor.BLUE + "]=-------------------"); - p.sendMessage(ChatColor.GREEN + "/chat color" + ChatColor.BLUE + " Change your chat color."); - p.sendMessage(ChatColor.GREEN + "/chat raw {Message}" + ChatColor.BLUE + " Send a message in the chat without a prefix."); - p.sendMessage(ChatColor.GREEN + "/chat reload" + ChatColor.BLUE + " Reload the config file."); - p.sendMessage(ChatColor.GREEN + "/chat hooks" + ChatColor.BLUE + " Get the current plugin hooks!"); - p.sendMessage(ChatColor.GREEN + "/channels" + ChatColor.BLUE + " The channel command."); - p.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "2/2" + ChatColor.BLUE + "."); - p.sendMessage(ChatColor.BLUE + "---------------------------------------------------"); - } - if(!(args[1].equals("1") || args[1].equals("2"))){ - p.sendMessage(Lang.HELP_PAGE_ERROR.toString()); - } - } - else{ - p.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("No_Permission"))); - } - }//end of help page ======== - - else if(args.length > 1 && args[0].equalsIgnoreCase("raw")){ - if(p.hasPermission("ultrachat.raw")){ - String Message = ""; - for (int i = 1; i < args.length; i++){ - if(i == 1){ - Message = Message + args[i]; // Fixed bugs - }else{ - Message = Message + " " + args[i]; - } - } - Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', ChatColor.translateAlternateColorCodes('&', Message))); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - } - - else if(args.length == 1 && args[0].equalsIgnoreCase("reload")){ - if(p.hasPermission("ultrachat.reload")){ - plugin.reloadConfig(); - plugin.loadChannel(); - p.sendMessage(Lang.CONFIG_RELOAD.toString()); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - } - else if(args.length == 1 && args[0].equalsIgnoreCase("color")){ - if(p.hasPermission("ultrachat.color")){ - plugin.getColorGUI().openGUI(p.getPlayer(), 1); - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - } - else if(args.length == 1 && args[0].equalsIgnoreCase("hooks")){ - if(p.hasPermission("ultrachat.hooks")){ - UltraChatAPI uapi = new UltraChatAPI(); - p.sendMessage(ChatColor.BLUE + "Ultra Chat Hooks:"); - if(uapi.getActiveHooks() == null){ - p.sendMessage(ChatColor.GREEN + "No hooks are currently active!"); - }else{ - for(String st : uapi.getActiveHooks()){ - p.sendMessage(ChatColor.GREEN + " - " + st); - } - } - } - else{ - p.sendMessage(Lang.NO_PERM.toString()); - } - } -//=========================================----------------------------------------=========================================== - else{ - p.sendMessage(Lang.CHAT_CMD_NOT_VALID.toString()); - } - - return false; - } - -} diff --git a/src/me/ryandw11/ultrachat/commands/Global.java b/src/me/ryandw11/ultrachat/commands/Global.java index 8448d43..611f04c 100644 --- a/src/me/ryandw11/ultrachat/commands/Global.java +++ b/src/me/ryandw11/ultrachat/commands/Global.java @@ -54,8 +54,7 @@ public class Global implements CommandExecutor { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(form, p)); - TextComponent ct = new TextComponent(uce.getMessage()); - cb.append(ct); + cb.append(new TextComponent(TextComponent.fromLegacyText(UltraChat.plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); for (Player pl : uce.getRecipients()) { pl.spigot().sendMessage(cb.create()); @@ -65,13 +64,11 @@ public class Global implements CommandExecutor { } private String getMessage(String[] args, Player p) { - String end = ""; + StringBuilder end = new StringBuilder(); for (String s : args) { - end += s + " "; + end.append(s).append(" "); } - if (p.hasPermission("ultrachat.color")) - return ChatColor.translateAlternateColorCodes('&', end); - return end; + return end.toString(); } } diff --git a/src/me/ryandw11/ultrachat/commands/NewChatCommand.java b/src/me/ryandw11/ultrachat/commands/NewChatCommand.java new file mode 100644 index 0000000..f0e8827 --- /dev/null +++ b/src/me/ryandw11/ultrachat/commands/NewChatCommand.java @@ -0,0 +1,231 @@ +package me.ryandw11.ultrachat.commands; + +import com.sun.istack.internal.NotNull; +import me.ryandw11.ultrachat.UltraChat; +import me.ryandw11.ultrachat.api.Lang; +import me.ryandw11.ultrachat.api.UltraChatAPI; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Objects; + +/** + * @author Ryandw11 + */ +public class NewChatCommand implements CommandExecutor { + + + private UltraChat plugin; + + public NewChatCommand(UltraChat plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String s, @NotNull String[] args) { + // This is not a switch statement since I want to check the argument length along with the sub command name. + if (args.length == 0) { + sender.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}=============="); + sender.sendMessage(ChatColor.BLUE + "Plugin developed by:" + ChatColor.GREEN + " Ryandw11"); + sender.sendMessage(ChatColor.BLUE + "Version: " + ChatColor.GREEN + String.format("%s", plugin.getDescription().getVersion())); + sender.sendMessage(ChatColor.BLUE + "Plugin wiki:" + ChatColor.GREEN + " https://github.com/ryandw11/UltraChat/wiki"); + sender.sendMessage(ChatColor.BLUE + "Do " + ChatColor.GREEN + " /chat help " + ChatColor.BLUE + "for the list of commands!"); + sender.sendMessage(ChatColor.BLUE + "=============={" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "}=============="); + + } else if (args.length == 1 && args[0].equalsIgnoreCase("stop")) { + if (sender.hasPermission("ultrachat.stopchat")) { + + if (plugin.isChatStopped) { + plugin.isChatStopped = false; + sender.sendMessage(Lang.CHAT_UNSTOP_PERSONAL.toString()); + Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_OFF.toString().replace("%p", sender instanceof Player ? ((Player) sender).getDisplayName() : + "CONSOLE")); + } else { + plugin.isChatStopped = true; + sender.sendMessage(Lang.CHAT_STOP_PERSONAL.toString()); + Bukkit.getServer().broadcastMessage(Lang.CHAT_STOP_ON.toString().replace("%p", sender instanceof Player ? ((Player) sender).getDisplayName() : + "CONSOLE")); + } + + + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + + + } else if (args.length > 1 && args[0].equalsIgnoreCase("broadcast")) { + if (sender.hasPermission("ultrachat.broadcast")) { + StringBuilder message = new StringBuilder(); + for (int i = 1; i < args.length; i++) { + message.append(" ").append(args[i]); + } + Bukkit.getServer().broadcastMessage(Lang.BROADCAST_PREFIX.toString() + ChatColor.translateAlternateColorCodes('&', message.toString())); + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + + } else if (args.length == 1 && args[0].equalsIgnoreCase("broadcast")) { + if (sender.hasPermission("ultrachat.broadcast")) { + sender.sendMessage(ChatColor.RED + "Invalid Usage: /chat broadcast (broadcast)"); + return true; + } + sender.sendMessage(Lang.NO_PERM.toString()); + } else if (args.length == 1 && args[0].equalsIgnoreCase("clear")) { + if (sender.hasPermission("ultrachat.clearchat")) { + for (int i = 0; i < 100; i++) { + for (Player pl : Bukkit.getOnlinePlayers()) { + pl.sendMessage(" "); + } + } + Bukkit.getServer().broadcastMessage(Lang.CHAT_CLEAR.toString().replace("%p", sender.getName())); + + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else if (args.length == 1 && args[0].equalsIgnoreCase("sjoin")) { + if (!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "This command is for players only!"); + return true; + } + Player p = (Player) sender; + if (sender.hasPermission("ultrachat.sjoin")) { + if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) { + sender.sendMessage(Lang.SJOIN_SHOWN.toString()); + plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); + plugin.saveFile(); + } else { + plugin.data.set(p.getUniqueId().toString() + ".sjoin", true); + plugin.saveFile(); + sender.sendMessage(Lang.SJOIN_HIDE.toString()); + } + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + + } else if (args.length == 2 && args[0].equalsIgnoreCase("sjoin")) { + if (sender.hasPermission("ultrachat.sjoin.others")) { + Player pl = Bukkit.getServer().getPlayer(args[1]); + if (pl == null) { + sender.sendMessage(ChatColor.RED + "Player can not be null!"); + return true; + } + if (plugin.data.getBoolean(pl.getUniqueId().toString() + ".sjoin")) { + sender.sendMessage(String.format(Lang.SJOIN_OTHER_SHOW.toString(), pl.getName())); + plugin.data.set(pl.getUniqueId().toString() + ".sjoin", false); + plugin.saveFile(); + } else { + plugin.data.set(pl.getUniqueId().toString() + ".sjoin", true); + plugin.saveFile(); + sender.sendMessage(String.format(Lang.SJOIN_OTHER_HIDE.toString(), pl.getName())); + } + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + + } else if (args.length == 2 && args[0].equalsIgnoreCase("join")) { + if (sender.hasPermission("ultrachat.fakejoin")) { + Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Join_Message")).replace("%player%", args[1]))); + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else if (args.length == 2 && args[0].equalsIgnoreCase("leave")) { + if (sender.hasPermission("ultrachat.fakeleave")) { + Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Leave_Message")).replace("%player%", args[1]))); + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else if (args.length == 1 && args[0].equalsIgnoreCase("help")) { + if (!sender.hasPermission("ultrachat.help")) { + sender.sendMessage(Lang.NO_PERM.toString()); + return true; + } + sender.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "]=-------------------"); + sender.sendMessage(ChatColor.GREEN + "/chat help" + ChatColor.BLUE + " The help command."); + sender.sendMessage(ChatColor.GREEN + "/chat stop" + ChatColor.BLUE + " Stop the chat."); + sender.sendMessage(ChatColor.GREEN + "/chat broadcast (message)" + ChatColor.BLUE + " Send a message to every player."); + sender.sendMessage(ChatColor.GREEN + "/sc (message)" + ChatColor.BLUE + " Talk in staff chat."); + sender.sendMessage(ChatColor.GREEN + "/sctoggle" + ChatColor.BLUE + " Toggle staff chat."); + sender.sendMessage(ChatColor.GREEN + "/spy" + ChatColor.BLUE + " Enable or disable command spy."); + sender.sendMessage(ChatColor.GREEN + "/chat clear" + ChatColor.BLUE + " Clear the chat."); + sender.sendMessage(ChatColor.GREEN + "/chat sjoin" + ChatColor.BLUE + " Silently join and leave the server."); + sender.sendMessage(ChatColor.BLUE + "Do" + ChatColor.GREEN + " /chat help 2" + ChatColor.BLUE + " for more help pages!"); + sender.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "1/2" + ChatColor.BLUE + "."); + sender.sendMessage(ChatColor.BLUE + "---------------------------------------------------"); + + } else if (args.length == 2 && args[0].equalsIgnoreCase("help")) { + if (sender.hasPermission("ultrachat.help")) { + if (args[1].equals("2")) { + sender.sendMessage(ChatColor.BLUE + "-------------------=[" + ChatColor.GREEN + "Ultra Chat" + ChatColor.BLUE + "]=-------------------"); + sender.sendMessage(ChatColor.GREEN + "/chat leave (player)" + ChatColor.BLUE + " Send a fake leave message."); + sender.sendMessage(ChatColor.GREEN + "/chat join (player) " + ChatColor.BLUE + " Send a fake join message."); + sender.sendMessage(ChatColor.GREEN + "/chat color" + ChatColor.BLUE + " Change your chat color."); + sender.sendMessage(ChatColor.GREEN + "/chat raw {Message}" + ChatColor.BLUE + " Send a message in the chat without a prefix."); + sender.sendMessage(ChatColor.GREEN + "/chat reload" + ChatColor.BLUE + " Reload the config file."); + sender.sendMessage(ChatColor.GREEN + "/chat hooks" + ChatColor.BLUE + " Get the current plugin hooks!"); + sender.sendMessage(ChatColor.GREEN + "/channels" + ChatColor.BLUE + " The channel command."); + sender.sendMessage(ChatColor.BLUE + "Plugin made by: " + ChatColor.GREEN + "Ryandw11" + ChatColor.BLUE + "! Help Page: " + ChatColor.GREEN + "2/2" + ChatColor.BLUE + "."); + sender.sendMessage(ChatColor.BLUE + "---------------------------------------------------"); + } + if (!(args[1].equals("1") || args[1].equals("2"))) { + sender.sendMessage(Lang.HELP_PAGE_ERROR.toString()); + } + } else { + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("No_Permission")))); + } + } else if (args.length > 1 && args[0].equalsIgnoreCase("raw")) { + if (sender.hasPermission("ultrachat.raw")) { + StringBuilder message = new StringBuilder(); + for (int i = 1; i < args.length; i++) { + if (i == 1) { + message.append(args[i]); + } else { + message.append(" ").append(args[i]); + } + } + Bukkit.getServer().broadcastMessage(ChatColor.translateAlternateColorCodes('&', ChatColor.translateAlternateColorCodes('&', message.toString()))); + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else if (args.length == 1 && args[0].equalsIgnoreCase("reload")) { + if (sender.hasPermission("ultrachat.reload")) { + plugin.reloadConfig(); + plugin.loadChannel(); + sender.sendMessage(Lang.CONFIG_RELOAD.toString()); + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else if (args.length == 1 && args[0].equalsIgnoreCase("color")) { + if (!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "This command is for players only!"); + return true; + } + if (sender.hasPermission("ultrachat.color")) + plugin.getColorGUI().openGUI((Player) sender, 1); + else + sender.sendMessage(Lang.NO_PERM.toString()); + } else if (args.length == 1 && args[0].equalsIgnoreCase("hooks")) { + if (sender.hasPermission("ultrachat.hooks")) { + UltraChatAPI uapi = new UltraChatAPI(); + sender.sendMessage(ChatColor.BLUE + "Ultra Chat Hooks:"); + if (uapi.getActiveHooks() == null) { + sender.sendMessage(ChatColor.GREEN + "No hooks are currently active!"); + } else { + for (String st : uapi.getActiveHooks()) { + sender.sendMessage(ChatColor.GREEN + " - " + st); + } + } + } else { + sender.sendMessage(Lang.NO_PERM.toString()); + } + } else { + sender.sendMessage(Lang.CHAT_CMD_NOT_VALID.toString()); + } + + return false; + } + +} diff --git a/src/me/ryandw11/ultrachat/commands/SpyCommand.java b/src/me/ryandw11/ultrachat/commands/SpyCommand.java index cc701b7..57e2e5d 100644 --- a/src/me/ryandw11/ultrachat/commands/SpyCommand.java +++ b/src/me/ryandw11/ultrachat/commands/SpyCommand.java @@ -39,14 +39,14 @@ public class SpyCommand implements CommandExecutor { } else{ - if(plugin.spytoggle.contains(p.getUniqueId())){ + if(plugin.spyToggle.contains(p.getUniqueId())){ p.sendMessage(Lang.CMD_SPY_OFF.toString()); - plugin.spytoggle.remove(p.getUniqueId()); + plugin.spyToggle.remove(p.getUniqueId()); plugin.data.set(p.getUniqueId().toString() + ".spy", false); plugin.saveFile(); } else{ - plugin.spytoggle.add(p.getUniqueId()); + plugin.spyToggle.add(p.getUniqueId()); p.sendMessage(Lang.CMD_SPY_ON.toString()); plugin.data.set(p.getUniqueId().toString() + ".spy", true); plugin.saveFile(); @@ -58,14 +58,14 @@ public class SpyCommand implements CommandExecutor { else if(args.length == 1){ if(p.hasPermission("ultrachat.spy.others")){ Player pl = (Player) Bukkit.getServer().getPlayer(args[0]); - if(plugin.spytoggle.contains(pl.getUniqueId())){ - plugin.spytoggle.remove(pl.getUniqueId()); + if(plugin.spyToggle.contains(pl.getUniqueId())){ + plugin.spyToggle.remove(pl.getUniqueId()); p.sendMessage(Lang.OTH_CMD_SPY_OFF.toString().replace("%p", args[0])); plugin.data.set(pl.getUniqueId().toString() + ".spy", false); plugin.saveFile(); } else{ - plugin.spytoggle.add(pl.getUniqueId()); + plugin.spyToggle.add(pl.getUniqueId()); p.sendMessage(Lang.OTH_CMD_SPY_ON.toString().replace("%p", args[0])); plugin.data.set(pl.getUniqueId().toString() + ".spy", true); plugin.saveFile(); diff --git a/src/me/ryandw11/ultrachat/commands/StaffChat.java b/src/me/ryandw11/ultrachat/commands/StaffChat.java index f934771..5039bcd 100644 --- a/src/me/ryandw11/ultrachat/commands/StaffChat.java +++ b/src/me/ryandw11/ultrachat/commands/StaffChat.java @@ -43,7 +43,7 @@ public class StaffChat implements CommandExecutor { for(Player p1 : Bukkit.getOnlinePlayers()){ if(p1.hasPermission("ultrachat.staffchat")){ - if(!plugin.stafftoggle.contains(p1.getUniqueId())){ + if(!plugin.staffToggle.contains(p1.getUniqueId())){ if (p instanceof Player) p1.spigot().sendMessage(JComponentManager.formatComponents(Lang.STAFF_CHAT_FORMAT.toString().replace("%p", p.getName()).replace("%s", message), (Player) p)); else diff --git a/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java b/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java index d2affb5..2d3f6b6 100644 --- a/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java +++ b/src/me/ryandw11/ultrachat/commands/StaffChatToggle.java @@ -28,13 +28,13 @@ public class StaffChatToggle implements CommandExecutor { Player p = (Player) sender; if(p.hasPermission("ultrachat.staffchat.toggle")){ - if(plugin.stafftoggle.contains(p.getUniqueId())){ - plugin.stafftoggle.remove(p.getUniqueId()); + if(plugin.staffToggle.contains(p.getUniqueId())){ + plugin.staffToggle.remove(p.getUniqueId()); p.sendMessage(Lang.STAFF_CHAT_ON.toString()); } else{ - plugin.stafftoggle.add(p.getUniqueId()); + plugin.staffToggle.add(p.getUniqueId()); p.sendMessage(Lang.STAFF_CHAT_OFF.toString()); } }//end of perm check diff --git a/src/me/ryandw11/ultrachat/commands/World.java b/src/me/ryandw11/ultrachat/commands/World.java index f22f553..f94bc65 100644 --- a/src/me/ryandw11/ultrachat/commands/World.java +++ b/src/me/ryandw11/ultrachat/commands/World.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.commands; import java.util.HashSet; +import com.sun.istack.internal.NotNull; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -12,7 +13,6 @@ import org.bukkit.entity.Player; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.ChatType; import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.UltraChatAPI; import me.ryandw11.ultrachat.api.events.UltraChatEvent; import me.ryandw11.ultrachat.api.events.properties.RangeProperties; import me.ryandw11.ultrachat.api.events.properties.RangeType; @@ -24,7 +24,7 @@ import net.md_5.bungee.api.chat.TextComponent; public class World implements CommandExecutor { @Override - public boolean onCommand(CommandSender sender, Command cmd, String s, String[] args) { + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command cmd, @NotNull String s, @NotNull String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "This command is for players only!"); return true; @@ -51,8 +51,7 @@ public class World implements CommandExecutor { .replace("%suffix%", pf.getSuffix()) + pf.getColor(); ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(form, p)); - TextComponent ct = new TextComponent(uce.getMessage()); - cb.append(ct); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + UltraChat.plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); for (Player pl : uce.getRecipients()) { pl.spigot().sendMessage(cb.create()); @@ -63,13 +62,11 @@ public class World implements CommandExecutor { } private String getMessage(String[] args, Player p) { - String end = ""; + StringBuilder end = new StringBuilder(); for (String s : args) { - end += s + " "; + end.append(s).append(" "); } - if (p.hasPermission("ultrachat.color")) - return ChatColor.translateAlternateColorCodes('&', end); - return end; + return end.toString(); } } diff --git a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java index f326d65..436fede 100644 --- a/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/ChannelJSON.java @@ -59,7 +59,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(format, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } @@ -80,7 +80,7 @@ public class ChannelJSON implements Listener { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java index 008816b..9a04640 100644 --- a/src/me/ryandw11/ultrachat/formatting/NormalJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/NormalJSON.java @@ -63,9 +63,11 @@ public class NormalJSON implements Listener { return; } // If the player is not op - for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + for (String key : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + String permission = plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".permission"); + assert permission != null; if (p.hasPermission(permission)) { - String formats = pf.getCustomFormat(permission) + String formats = pf.getCustomFormat(key) .replace("%prefix%", pf.getPrefix()) .replace("%suffix%", pf.getSuffix()) .replace("%player%", p.getDisplayName()) @@ -74,7 +76,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + plugin.chatColorUtil.translateChatColor(event.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } return; @@ -92,7 +94,7 @@ public class NormalJSON implements Listener { for (Player pl : event.getRecipients()) { ComponentBuilder cb = new ComponentBuilder(""); cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(event.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + cb.append(new TextComponent(TextComponent.fromLegacyText(pf.getColor() + plugin.chatColorUtil.translateChatColor(event.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); pl.spigot().sendMessage(cb.create()); } } diff --git a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java index 545109f..48c3352 100644 --- a/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java +++ b/src/me/ryandw11/ultrachat/formatting/PlayerFormatting.java @@ -24,13 +24,13 @@ public class PlayerFormatting { plugin = UltraChat.plugin; color = plugin.data.getString(p.getUniqueId() + ".color"); - prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(p)); - suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(p)); - formatOp = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))), p); - defaults = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))), p); - global = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))), p); - world = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))), p); - local = plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))), p); + prefix = ChatUtil.translateColorCodes( plugin.chat.getPlayerPrefix(p)); + suffix = ChatUtil.translateColorCodes( plugin.chat.getPlayerSuffix(p)); + formatOp = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))), p); + defaults = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))), p); + global = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Global.format"))), p); + world = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("World.format"))), p); + local = plugin.papi.translatePlaceholders(ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Local.format"))), p); this.p = p; } @@ -72,8 +72,8 @@ public class PlayerFormatting { return defaults; } - public String getCustomFormat(String name) { - return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.permission_format." + name))), p); + public String getCustomFormat(String key) { + return plugin.papi.translatePlaceholders(ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".format"))), p); } } diff --git a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java index f974c78..7d11b5f 100644 --- a/src/me/ryandw11/ultrachat/formatting/RangeJSON.java +++ b/src/me/ryandw11/ultrachat/formatting/RangeJSON.java @@ -21,6 +21,7 @@ import me.ryandw11.ultrachat.api.events.properties.RangeType; import me.ryandw11.ultrachat.api.managers.JComponentManager; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.scheduler.BukkitScheduler; public class RangeJSON implements Listener { @@ -35,29 +36,33 @@ public class RangeJSON implements Listener { Player p = e.getPlayer(); PlayerFormatting pf = new PlayerFormatting(p); e.getRecipients().removeAll(Bukkit.getOnlinePlayers()); - e.getRecipients().addAll(getNearbyPlayers(p)); - e.getRecipients().add(p); - - RangeProperties rp = new RangeProperties(true, RangeType.LOCAL); + Bukkit.getScheduler().runTask(plugin, () -> { + e.getRecipients().addAll(getNearbyPlayers(p)); + e.getRecipients().add(p); - UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.RANGE, rp); - Bukkit.getServer().getPluginManager().callEvent(uce); - e.getRecipients().clear(); - if (!uce.isCancelled()) { - for (Player pl : uce.getRecipients()) { - - String formats = pf.getLocal() - .replace("%player%", p.getDisplayName()) - .replace("%prefix%", pf.getPrefix()) - .replace("%suffix%", pf.getSuffix()) - + pf.getColor(); + RangeProperties rp = new RangeProperties(true, RangeType.LOCAL); - ComponentBuilder cb = new ComponentBuilder(""); - cb.append(JComponentManager.formatComponents(formats, p)); - cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage()), pf.getColor())), ComponentBuilder.FormatRetention.NONE); - pl.spigot().sendMessage(cb.create()); - } - } + UltraChatEvent uce = new UltraChatEvent(p, e.getMessage(), new HashSet<>(e.getRecipients()), ChatType.RANGE, rp); + Bukkit.getScheduler().runTaskAsynchronously(plugin, ()->{ + Bukkit.getServer().getPluginManager().callEvent(uce); + e.getRecipients().clear(); + if (!uce.isCancelled()) { + for (Player pl : uce.getRecipients()) { + + String formats = pf.getLocal() + .replace("%player%", p.getDisplayName()) + .replace("%prefix%", pf.getPrefix()) + .replace("%suffix%", pf.getSuffix()) + + pf.getColor(); + + ComponentBuilder cb = new ComponentBuilder(""); + cb.append(JComponentManager.formatComponents(formats, p)); + cb.append(new TextComponent(TextComponent.fromLegacyText(plugin.chatColorUtil.translateChatColor(uce.getMessage(), p), pf.getColor())), ComponentBuilder.FormatRetention.NONE); + pl.spigot().sendMessage(cb.create()); + } + } + }); + }); } private ArrayList getNearbyPlayers(Player pl) { diff --git a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java index 647a033..420d62f 100644 --- a/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java +++ b/src/me/ryandw11/ultrachat/formatting/UUIDFormating.java @@ -34,18 +34,18 @@ private UltraChat plugin; color = Objects.requireNonNull(plugin.data.getString(ud + ".color")); try { - prefix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerPrefix(world, op)); - suffix = ChatColor.translateAlternateColorCodes('&', plugin.chat.getPlayerSuffix(world, op)); + prefix = ChatUtil.translateColorCodes( plugin.chat.getPlayerPrefix(world, op)); + suffix = ChatUtil.translateColorCodes( plugin.chat.getPlayerSuffix(world, op)); } catch(NullPointerException ex) { prefix = plugin.chat.getPlayerPrefix(world, op); suffix = plugin.chat.getPlayerSuffix(world, op); } - formatOp = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))); - defaults = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))); - global = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Global.format"))); - this.world = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("World.format"))); - local = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Local.format"))); + formatOp = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Op_Chat"))); + defaults = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Custom_Chat.Default_Chat"))); + global = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("Global.format"))); + this.world = ChatUtil.translateColorCodes( Objects.requireNonNull(plugin.getConfig().getString("World.format"))); + local = ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("Local.format"))); this.op = op; worldName = world; } @@ -89,8 +89,8 @@ private UltraChat plugin; return defaults; } - public String getCustomFormat(String name) { - return plugin.getConfig().getString("Custom_Chat.permission_format." + name); + public String getCustomFormat(String key) { + return plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".format"); } public OfflinePlayer getOfflinePlayer() { @@ -107,9 +107,11 @@ private UltraChat plugin; if(uapi.getChatType() == ChatType.NORMAL) { if(op.isOp()) return this.getOpFormat(); - for (String permission : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + for (String key : Objects.requireNonNull(plugin.getConfig().getConfigurationSection("Custom_Chat.permission_format")).getKeys(false)) { + String permission = plugin.getConfig().getString("Custom_Chat.permission_format." + key + ".permission"); + assert permission != null; if (plugin.perms.playerHas(worldName, op, plugin.getConfig().getString(permission))) { - return this.getCustomFormat(permission); + return this.getCustomFormat(key); } } return this.getDefaultFormat(); diff --git a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java index 1e2b823..46c55a5 100644 --- a/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java +++ b/src/me/ryandw11/ultrachat/gui/ColorGUI_Latest.java @@ -185,7 +185,7 @@ public class ColorGUI_Latest implements CommandExecutor, Listener, ColorGUI{ ItemStack item = e.getCurrentItem(); if(!e.getInventory().contains(item)) return; - if(item.equals(getBottomStack()) || item.equals(getCurrentStack(page))) return; + if(item.equals(getBottomStack()) || item.equals(getCurrentStack(page)) || item.equals(getNoPermItem())) return; if(item.equals(getNextStack(page))){ p.closeInventory(); openGUI(p, page+1); diff --git a/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java b/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java deleted file mode 100644 index f8a97f3..0000000 --- a/src/me/ryandw11/ultrachat/listner/ConsoleLogChat.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.ryandw11.ultrachat.listner; - -import java.util.logging.Level; - -import org.bukkit.Bukkit; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; - -public class ConsoleLogChat implements Listener{ - - @EventHandler - public void jsonChat(UltraChatEvent e){ - if(!e.getProperties().isComponent()) return; - String msg = e.getMessage(); - String pname = e.getPlayer().getDisplayName(); - Bukkit.getLogger().log(Level.INFO, Lang.CONSOLE_CHAT_LOG.toString().replace("%p", pname).replace("%s", msg).replace('&', '§')); - } - -} diff --git a/src/me/ryandw11/ultrachat/listner/JoinListner.java b/src/me/ryandw11/ultrachat/listner/JoinListner.java index 3bbe342..68312d9 100644 --- a/src/me/ryandw11/ultrachat/listner/JoinListner.java +++ b/src/me/ryandw11/ultrachat/listner/JoinListner.java @@ -1,11 +1,13 @@ package me.ryandw11.ultrachat.listner; import java.util.List; +import java.util.Objects; import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.managers.JComponentManager; +import me.ryandw11.ultrachat.util.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -13,116 +15,113 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; + /** * @author Ryandw11 */ public class JoinListner implements Listener { - - private UltraChat plugin; - public JoinListner(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onJoin(PlayerJoinEvent event){ - Player p = event.getPlayer(); - - if(plugin.data.contains(p.getUniqueId().toString())){ - if(!(plugin.channel.contains(plugin.data.getString(p.getUniqueId() + ".channel")))){ - /* - * Fail safe so that if the player joins with an invalid channel it goes back to default. - */ - plugin.data.set(p.getUniqueId() + ".channel", plugin.getConfig().getString("Default_Channel")); - plugin.saveFile(); - - }else if(!(plugin.data.contains(p.getUniqueId().toString() + ".spy"))){ - plugin.data.set(p.getUniqueId().toString() + ".spy", false); - plugin.saveFile(); - } - } - else{ - plugin.data.set(p.getUniqueId().toString() + ".color", "&f"); - plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); - plugin.data.set(p.getUniqueId().toString() + ".spy", false); - plugin.data.set(p.getUniqueId().toString() + ".channel", plugin.getConfig().getString("Default_Channel")); - plugin.saveFile(); - } - - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - event.setJoinMessage(""); - for(Player pl : Bukkit.getOnlinePlayers()){ - if(pl.hasPermission("ultrachat.sjoin.alert")){ - pl.sendMessage(Lang.SILENT_JOIN_MESSAGE.toString().replace("%p", p.getDisplayName())); - } - } - - }else{ - - String Join = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Join_Message").replace("%player%", p.getName())); - event.setJoinMessage(Join); - } - - - } - - /* - * On leave event - */ - @EventHandler - public void onLeave(PlayerQuitEvent event){ - - Player p = event.getPlayer(); - if(plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")){ - event.setQuitMessage(""); - for(Player pl : Bukkit.getOnlinePlayers()){ - if(pl.hasPermission("ultrachat.sjoin.alert")){ - pl.sendMessage(Lang.SILENT_LEAVE_MESSAGE.toString().replace("%p", p.getDisplayName())); - } - } - }else{ - - String leave = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", p.getName())); - event.setQuitMessage(leave); - } - } - - - - - /* - * For MOTD - */ - @EventHandler - public void MOTD(PlayerJoinEvent event){ - Player p = event.getPlayer(); - if(plugin.getConfig().getBoolean("Motd_Enabled")){ - List motd = plugin.getConfig().getStringList("Motd"); - for(String OutPut : motd){ - String message = OutPut; - message = plugin.papi.translatePlaceholders(message, p); - p.spigot().sendMessage(JComponentManager.formatComponents(ChatColor.translateAlternateColorCodes('&', message), p)); - } - } - - } - - /* - * If there is a new player. - */ - - @EventHandler - public void NewPlayer(PlayerJoinEvent event){ - Player p = event.getPlayer(); - if(!(p.hasPlayedBefore()) && !(plugin.getConfig().getString("New_Player").equalsIgnoreCase("none"))){ - String msg = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("New_Player").replace("%player%", p.getDisplayName())); - for(Player pl : Bukkit.getOnlinePlayers()) { - pl.spigot().sendMessage(JComponentManager.formatComponents(msg, p)); - } - } - - } - - - + private UltraChat plugin; + + public JoinListner() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) { + Player p = event.getPlayer(); + + if (plugin.data.contains(p.getUniqueId().toString())) { + if (!(plugin.channel.contains(Objects.requireNonNull(plugin.data.getString(p.getUniqueId() + ".channel"))))) { + /* + * Fail safe so that if the player joins with an invalid channel it goes back to default. + */ + plugin.data.set(p.getUniqueId() + ".channel", plugin.getConfig().getString("Default_Channel")); + plugin.saveFile(); + + } else if (!(plugin.data.contains(p.getUniqueId().toString() + ".spy"))) { + plugin.data.set(p.getUniqueId().toString() + ".spy", false); + plugin.saveFile(); + } + } else { + plugin.data.set(p.getUniqueId().toString() + ".color", "&f"); + plugin.data.set(p.getUniqueId().toString() + ".sjoin", false); + plugin.data.set(p.getUniqueId().toString() + ".spy", false); + plugin.data.set(p.getUniqueId().toString() + ".channel", plugin.getConfig().getString("Default_Channel")); + plugin.saveFile(); + } + + if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) { + event.setJoinMessage(""); + for (Player pl : Bukkit.getOnlinePlayers()) { + if (pl.hasPermission("ultrachat.sjoin.alert")) { + pl.sendMessage(Lang.SILENT_JOIN_MESSAGE.toString().replace("%p", p.getDisplayName())); + } + } + + } else { + String Join = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(plugin.getConfig().getString("Join_Message")).replace("%player%", p.getName())); + event.setJoinMessage(Join); + } + + + } + + /* + * On leave event + */ + @EventHandler + public void onLeave(PlayerQuitEvent event) { + + Player p = event.getPlayer(); + if (plugin.data.getBoolean(p.getUniqueId().toString() + ".sjoin")) { + event.setQuitMessage(""); + for (Player pl : Bukkit.getOnlinePlayers()) { + if (pl.hasPermission("ultrachat.sjoin.alert")) { + pl.sendMessage(Lang.SILENT_LEAVE_MESSAGE.toString().replace("%p", p.getDisplayName())); + } + } + } else { + + String leave = ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("Leave_Message").replace("%player%", p.getName())); + event.setQuitMessage(leave); + } + } + + + /* + * For MOTD + */ + @EventHandler + public void MOTD(PlayerJoinEvent event) { + Player p = event.getPlayer(); + if (plugin.getConfig().getBoolean("Motd_Enabled")) { + List motd = plugin.getConfig().getStringList("Motd"); + for (String OutPut : motd) { + String message = OutPut; + message = plugin.papi.translatePlaceholders(message, p); + p.spigot().sendMessage(JComponentManager.formatComponents(plugin.chatColorUtil.translateChatColor(message), p)); + } + + } + + } + + /* + * If there is a new player. + */ + + @EventHandler + public void NewPlayer(PlayerJoinEvent event) { + Player p = event.getPlayer(); + if (!(p.hasPlayedBefore()) && !(Objects.requireNonNull(plugin.getConfig().getString("New_Player")).equalsIgnoreCase("none"))) { + String msg = ChatUtil.translateColorCodes(Objects.requireNonNull(plugin.getConfig().getString("New_Player")).replace("%player%", p.getDisplayName())); + for (Player pl : Bukkit.getOnlinePlayers()) { + pl.spigot().sendMessage(JComponentManager.formatComponents(msg, p)); + } + } + + } + + } diff --git a/src/me/ryandw11/ultrachat/listner/NoSwear.java b/src/me/ryandw11/ultrachat/listner/NoSwear.java index 7f86910..448aca9 100644 --- a/src/me/ryandw11/ultrachat/listner/NoSwear.java +++ b/src/me/ryandw11/ultrachat/listner/NoSwear.java @@ -9,37 +9,38 @@ import me.ryandw11.ultrachat.api.events.UltraChatEvent; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; + /** * @author Ryandw11 */ public class NoSwear implements Listener { - - private UltraChat plugin; - public NoSwear(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onJsonChat(UltraChatEvent event){ - if(plugin.getConfig().getBoolean("Anti_Swear_Enabled")){ - Player p = event.getPlayer(); - - - List swear = plugin.getConfig().getStringList("Blocked_Words"); - int times = 0; - - String Message = " " + event.getMessage().toLowerCase().replace(".", "") + " "; - - for(String swearWord : swear){ - //Check if world chat is enabled - if(Message.contains(swearWord + " ") && times == 0 || Message.contains(" " + swearWord + " ") && times == 0 || Message.contains(" " + swearWord) && times == 0 || Message.contains(swearWord)){ - //else do this: - event.setCancelled(true); - p.sendMessage(Lang.NO_SWEAR.toString()); - break; - } - } - } - } + + private UltraChat plugin; + + public NoSwear() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onJsonChat(UltraChatEvent event) { + if (plugin.getConfig().getBoolean("Anti_Swear_Enabled")) { + Player p = event.getPlayer(); + + + List swear = plugin.getConfig().getStringList("Blocked_Words"); + + String Message = " " + event.getMessage().toLowerCase().replace(".", "") + " "; + + for (String swearWord : swear) { + //Check if world chat is enabled + if (Message.contains(swearWord + " ") || Message.contains(" " + swearWord + " ") || Message.contains(" " + swearWord) || Message.contains(swearWord)) { + //else do this: + event.setCancelled(true); + p.sendMessage(Lang.NO_SWEAR.toString()); + break; + } + } + } + } } diff --git a/src/me/ryandw11/ultrachat/listner/Notify.java b/src/me/ryandw11/ultrachat/listner/Notify.java index 0683ee9..bb21a8a 100644 --- a/src/me/ryandw11/ultrachat/listner/Notify.java +++ b/src/me/ryandw11/ultrachat/listner/Notify.java @@ -1,30 +1,28 @@ package me.ryandw11.ultrachat.listner; +import me.ryandw11.ultrachat.api.Lang; +import me.ryandw11.ultrachat.api.events.UltraChatEvent; import org.bukkit.Bukkit; import org.bukkit.Sound; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; /** - * * @author Ryandw11 * Updated for 1.13 - * */ public class Notify implements Listener { - - @EventHandler - public void onJsonChat(UltraChatEvent e){ - for(Player p : Bukkit.getOnlinePlayers()){ - if(e.getMessage().contains("@" + p.getName())){ - p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 10, 0); - p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); - } - } - } - + @EventHandler + public void onJsonChat(UltraChatEvent e) { + for (Player p : Bukkit.getOnlinePlayers()) { + if (e.getMessage().contains("@" + p.getName())) { + p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 10, 0); + p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); + } + } + } + + } diff --git a/src/me/ryandw11/ultrachat/listner/Notify_1_12.java b/src/me/ryandw11/ultrachat/listner/Notify_1_12.java deleted file mode 100644 index 05d946a..0000000 --- a/src/me/ryandw11/ultrachat/listner/Notify_1_12.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.ryandw11.ultrachat.listner; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - -import me.ryandw11.ultrachat.api.Lang; -import me.ryandw11.ultrachat.api.events.UltraChatEvent; - -/** - * For 1.12 and below servers. - */ -public class Notify_1_12 implements Listener { - - @EventHandler - public void onJsonChat(UltraChatEvent e){ - for(Player p : Bukkit.getOnlinePlayers()){ - if(e.getMessage().contains("@" + p.getName())){ - p.sendMessage(Lang.MENTION.toString().replace("%p", e.getPlayer().getDisplayName())); - } - } - } -} diff --git a/src/me/ryandw11/ultrachat/listner/Spy.java b/src/me/ryandw11/ultrachat/listner/Spy.java index 048e2ec..c6af6d1 100644 --- a/src/me/ryandw11/ultrachat/listner/Spy.java +++ b/src/me/ryandw11/ultrachat/listner/Spy.java @@ -9,30 +9,29 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; -public class Spy implements Listener{ - - private UltraChat plugin; - public Spy(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onPlayerCommand(PlayerCommandPreprocessEvent event){ - Player p1 = (Player) event.getPlayer(); - String msg = event.getMessage();//get user name - - for(Player p : Bukkit.getOnlinePlayers()){ - if(plugin.spytoggle.contains(p.getUniqueId())){ - p.sendMessage(Lang.CMD_SPY_FORMAT.toString().replace("%p", p1.getName()).replace("%s", msg)); - }// end of if - - - }//end of for loop - - - - - } - - +public class Spy implements Listener { + + private UltraChat plugin; + + public Spy() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onPlayerCommand(PlayerCommandPreprocessEvent event) { + Player p1 = (Player) event.getPlayer(); + String msg = event.getMessage();//get user name + + for (Player p : Bukkit.getOnlinePlayers()) { + if (plugin.spyToggle.contains(p.getUniqueId())) { + p.sendMessage(Lang.CMD_SPY_FORMAT.toString().replace("%p", p1.getName()).replace("%s", msg)); + }// end of if + + + }//end of for loop + + + } + + } \ No newline at end of file diff --git a/src/me/ryandw11/ultrachat/listner/StopChat.java b/src/me/ryandw11/ultrachat/listner/StopChat.java index 56c1ca9..4d89d40 100644 --- a/src/me/ryandw11/ultrachat/listner/StopChat.java +++ b/src/me/ryandw11/ultrachat/listner/StopChat.java @@ -1,35 +1,35 @@ package me.ryandw11.ultrachat.listner; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; - import me.ryandw11.ultrachat.UltraChat; import me.ryandw11.ultrachat.api.Lang; import me.ryandw11.ultrachat.api.events.UltraChatEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + /** * Prevent players from chatting when the chat is stopped. - * @author Ryandw11 * + * @author Ryandw11 */ public class StopChat implements Listener { - - private UltraChat plugin; - public StopChat(){ - plugin = UltraChat.plugin; - } - - @EventHandler - public void onChat(UltraChatEvent e){ - Player p = e.getPlayer(); - if(plugin.chatStop){ - if(!p.hasPermission("ultrachat.stopchat.bypass")){ - e.setCancelled(true); - p.sendMessage(Lang.STOP_CHAT_MESSAGE.toString()); - } - } - } - - - + + private UltraChat plugin; + + public StopChat() { + plugin = UltraChat.plugin; + } + + @EventHandler + public void onChat(UltraChatEvent e) { + Player p = e.getPlayer(); + if (plugin.isChatStopped) { + if (!p.hasPermission("ultrachat.stopchat.bypass")) { + e.setCancelled(true); + p.sendMessage(Lang.STOP_CHAT_MESSAGE.toString()); + } + } + } + + } diff --git a/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java b/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java index ae26c16..51eabe5 100644 --- a/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java +++ b/src/me/ryandw11/ultrachat/pluginhooks/EssentialsMute.java @@ -15,7 +15,8 @@ public class EssentialsMute implements Listener{ public void jsonChat(UltraChatEvent e){ Player p = e.getPlayer(); Essentials ess = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials"); - if(ess.getUser(p).isMuted()){ + assert ess != null; + if(ess.getUser(p).isMuted()){ e.setCancelled(true); } } diff --git a/src/me/ryandw11/ultrachat/util/ChatUtil.java b/src/me/ryandw11/ultrachat/util/ChatUtil.java index 92b5e90..8539491 100644 --- a/src/me/ryandw11/ultrachat/util/ChatUtil.java +++ b/src/me/ryandw11/ultrachat/util/ChatUtil.java @@ -2,6 +2,7 @@ package me.ryandw11.ultrachat.util; import me.ryandw11.ultrachat.UltraChat; import net.md_5.bungee.api.ChatColor; +import org.bukkit.entity.Player; /** * This is a utility class to make chat easier. @@ -18,6 +19,10 @@ public class ChatUtil { return UltraChat.plugin.chatColorUtil.translateChatColor(message); } + public static String translateColorCodes(String message, Player p){ + return UltraChat.plugin.chatColorUtil.translateChatColor(message, p); + } + public static ChatColor translateColorCode(String code){ return UltraChat.plugin.chatColorUtil.translateChatCode(code); } From d229bca0f1d0dc8c7011bc2cf74b8f973d61a466 Mon Sep 17 00:00:00 2001 From: Ryandw11 <6239385+ryandw11@users.noreply.github.com> Date: Fri, 26 Jun 2020 19:54:01 -0700 Subject: [PATCH 4/5] Fixed 1.15.2 bugs. --- src/me/ryandw11/ultrachat/UltraChat.java | 4 ++-- src/plugin.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/me/ryandw11/ultrachat/UltraChat.java b/src/me/ryandw11/ultrachat/UltraChat.java index 48f3077..7470cd7 100644 --- a/src/me/ryandw11/ultrachat/UltraChat.java +++ b/src/me/ryandw11/ultrachat/UltraChat.java @@ -183,10 +183,10 @@ public class UltraChat extends JavaPlugin { version = " "; } if (version.equals("v1_14_R1") || version.equals("v1_15_R1")) { - + plugin.getLogger().info("Server version is 1.14 or 1.15, enabling comparability mode."); Bukkit.getServer().getPluginManager().registerEvents(new Notify(), this); colorGUI = new ColorGUI_1_15_R1(); - Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_Latest(), this); + Bukkit.getServer().getPluginManager().registerEvents(new ColorGUI_1_15_R1(), this); if (!(plugin.getConfig().getBoolean("ChatColor_Command"))) Objects.requireNonNull(getCommand("color")).setExecutor(new ColorGUI_1_15_R1()); diff --git a/src/plugin.yml b/src/plugin.yml index 4532576..4083a80 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,5 +1,5 @@ name: UltraChat -version: 2.4.1 +version: 2.5 main: me.ryandw11.ultrachat.UltraChat author: Ryandw11 description: A chat formatting plugin. From 2ea2dbe2c490d1f663ffaef88fa50ef68e87d154 Mon Sep 17 00:00:00 2001 From: Ryandw11 <6239385+ryandw11@users.noreply.github.com> Date: Fri, 26 Jun 2020 19:57:03 -0700 Subject: [PATCH 5/5] Generated 2.5 Javadocs. --- docs/allclasses-frame.html | 34 +- docs/allclasses-noframe.html | 34 +- docs/constant-values.html | 35 +- docs/deprecated-list.html | 45 +- docs/help-doc.html | 10 +- docs/index-files/index-1.html | 34 +- docs/index-files/index-10.html | 62 ++- docs/index-files/index-11.html | 102 ++++- docs/index-files/index-12.html | 52 +-- docs/index-files/index-13.html | 76 ++-- docs/index-files/index-14.html | 44 +- docs/index-files/index-15.html | 146 +----- docs/index-files/index-16.html | 176 +++++++- docs/index-files/index-17.html | 66 +-- docs/index-files/index-18.html | 63 ++- docs/index-files/index-19.html | 51 ++- docs/index-files/index-2.html | 12 +- docs/index-files/index-20.html | 20 +- docs/index-files/index-3.html | 80 +++- docs/index-files/index-4.html | 22 +- docs/index-files/index-5.html | 32 +- docs/index-files/index-6.html | 222 +-------- docs/index-files/index-7.html | 242 ++++++++-- docs/index-files/index-8.html | 54 ++- docs/index-files/index-9.html | 56 ++- docs/index.html | 2 +- docs/me/ryandw11/ultrachat/UltraChat.html | 423 +++++++++--------- docs/me/ryandw11/ultrachat/api/ChatType.html | 7 +- .../ultrachat/api/JSONChatBuilder.html | 6 +- docs/me/ryandw11/ultrachat/api/Lang.html | 76 ++-- .../ultrachat/api/MessageBuilder.html | 6 +- .../ryandw11/ultrachat/api/UltraChatAPI.html | 290 ++++-------- .../api/channels/ChannelBuilder.html | 8 +- .../ultrachat/api/channels/ChatChannel.html | 117 ++++- .../ultrachat/api/channels/package-frame.html | 4 +- .../api/channels/package-summary.html | 10 +- .../ultrachat/api/channels/package-tree.html | 6 +- .../ultrachat/api/events/StaffChatEvent.html | 7 +- .../ultrachat/api/events/UltraChatEvent.html | 10 +- .../ultrachat/api/events/package-frame.html | 4 +- .../ultrachat/api/events/package-summary.html | 14 +- .../ultrachat/api/events/package-tree.html | 6 +- .../events/properties/ChannelProperties.html | 8 +- .../api/events/properties/ChatProperties.html | 23 +- .../events/properties/NormalProperties.html | 8 +- .../events/properties/RangeProperties.html | 8 +- .../api/events/properties/RangeType.html | 14 +- .../api/events/properties/package-frame.html | 4 +- .../events/properties/package-summary.html | 6 +- .../api/events/properties/package-tree.html | 6 +- .../ultrachat/api/managers/AddonManager.html | 38 +- .../api/managers/ChannelManager.html | 36 +- .../api/managers/JComponentManager.html | 6 +- .../ultrachat/api/managers/package-frame.html | 4 +- .../api/managers/package-summary.html | 14 +- .../ultrachat/api/managers/package-tree.html | 6 +- .../ryandw11/ultrachat/api/package-frame.html | 5 +- .../ultrachat/api/package-summary.html | 14 +- .../ryandw11/ultrachat/api/package-tree.html | 9 +- .../api/placeholders/PlaceholderAddon.html | 6 +- .../api/placeholders/package-frame.html | 4 +- .../api/placeholders/package-summary.html | 10 +- .../api/placeholders/package-tree.html | 10 +- .../ultrachat/chatcolor/ChatColorManager.html | 298 ++++++++++++ .../chatcolor/ChatColorUtil_Latest.html | 331 ++++++++++++++ .../chatcolor/ChatColorUtil_Old.html | 331 ++++++++++++++ .../ultrachat/chatcolor/ChatColorUtils.html | 264 +++++++++++ .../ultrachat/chatcolor/package-frame.html | 26 ++ .../ultrachat/chatcolor/package-summary.html | 165 +++++++ .../ultrachat/chatcolor/package-tree.html | 141 ++++++ .../ultrachat/commands/ChannelCmd.html | 10 +- .../commands/CommandTabCompleter.html | 10 +- .../ryandw11/ultrachat/commands/Global.html | 10 +- .../ultrachat/commands/NewChatCommand.html | 292 ++++++++++++ .../ultrachat/commands/SpyCommand.html | 10 +- .../ultrachat/commands/StaffChat.html | 6 +- .../ultrachat/commands/StaffChatToggle.html | 6 +- .../me/ryandw11/ultrachat/commands/World.html | 12 +- .../ultrachat/commands/package-frame.html | 6 +- .../ultrachat/commands/package-summary.html | 20 +- .../ultrachat/commands/package-tree.html | 12 +- .../ultrachat/formatting/ChannelJSON.html | 12 +- .../ultrachat/formatting/NormalJSON.html | 12 +- .../formatting/PlayerFormatting.html | 16 +- .../ultrachat/formatting/RangeJSON.html | 10 +- .../ultrachat/formatting/UUIDFormating.html | 12 +- .../ultrachat/formatting/package-frame.html | 7 +- .../ultrachat/formatting/package-summary.html | 28 +- .../ultrachat/formatting/package-tree.html | 13 +- docs/me/ryandw11/ultrachat/gui/ColorGUI.html | 230 ++++++++++ .../ultrachat/gui/ColorGUI_1_15_R1.html | 322 +++++++++++++ .../ultrachat/gui/ColorGUI_Latest.html | 326 ++++++++++++++ .../ryandw11/ultrachat/gui/package-frame.html | 25 ++ .../ultrachat/gui/package-summary.html | 165 +++++++ .../ryandw11/ultrachat/gui/package-tree.html | 140 ++++++ .../ultrachat/listner/JoinListner.html | 317 +++++++++++++ .../ryandw11/ultrachat/listner/NoSwear.html | 278 ++++++++++++ .../me/ryandw11/ultrachat/listner/Notify.html | 279 ++++++++++++ docs/me/ryandw11/ultrachat/listner/Spy.html | 274 ++++++++++++ .../ryandw11/ultrachat/listner/StopChat.html | 279 ++++++++++++ .../ultrachat/listner/package-frame.html | 24 + .../ultrachat/listner/package-summary.html | 158 +++++++ .../ultrachat/listner/package-tree.html | 139 ++++++ docs/me/ryandw11/ultrachat/package-frame.html | 4 +- .../ryandw11/ultrachat/package-summary.html | 6 +- docs/me/ryandw11/ultrachat/package-tree.html | 6 +- .../pluginhooks/AdvancedBanMute.html | 42 +- .../ultrachat/pluginhooks/EssentialsMute.html | 42 +- .../ultrachat/pluginhooks/package-frame.html | 4 +- .../pluginhooks/package-summary.html | 10 +- .../ultrachat/pluginhooks/package-tree.html | 10 +- docs/me/ryandw11/ultrachat/util/ChatUtil.html | 308 +++++++++++++ .../util/Metrics.AdvancedBarChart.html | 6 +- .../ultrachat/util/Metrics.AdvancedPie.html | 6 +- .../ultrachat/util/Metrics.CustomChart.html | 6 +- .../ultrachat/util/Metrics.DrilldownPie.html | 6 +- .../util/Metrics.MultiLineChart.html | 6 +- .../util/Metrics.SimpleBarChart.html | 6 +- .../ultrachat/util/Metrics.SimplePie.html | 6 +- .../util/Metrics.SingleLineChart.html | 6 +- docs/me/ryandw11/ultrachat/util/Metrics.html | 10 +- .../ultrachat/util/package-frame.html | 5 +- .../ultrachat/util/package-summary.html | 32 +- .../ryandw11/ultrachat/util/package-tree.html | 11 +- .../ultrachat/util/papi/PAPIDisabled.html | 6 +- .../ultrachat/util/papi/PAPIEnabled.html | 6 +- .../util/papi/PlaceHolderAPIHook.html | 6 +- .../ultrachat/util/papi/package-frame.html | 4 +- .../ultrachat/util/papi/package-summary.html | 10 +- .../ultrachat/util/papi/package-tree.html | 10 +- docs/overview-frame.html | 9 +- docs/overview-summary.html | 30 +- docs/overview-tree.html | 48 +- docs/package-list | 5 + 134 files changed, 6977 insertions(+), 1716 deletions(-) create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/ChatColorManager.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Latest.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/ChatColorUtil_Old.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/ChatColorUtils.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/package-frame.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/package-summary.html create mode 100644 docs/me/ryandw11/ultrachat/chatcolor/package-tree.html create mode 100644 docs/me/ryandw11/ultrachat/commands/NewChatCommand.html create mode 100644 docs/me/ryandw11/ultrachat/gui/ColorGUI.html create mode 100644 docs/me/ryandw11/ultrachat/gui/ColorGUI_1_15_R1.html create mode 100644 docs/me/ryandw11/ultrachat/gui/ColorGUI_Latest.html create mode 100644 docs/me/ryandw11/ultrachat/gui/package-frame.html create mode 100644 docs/me/ryandw11/ultrachat/gui/package-summary.html create mode 100644 docs/me/ryandw11/ultrachat/gui/package-tree.html create mode 100644 docs/me/ryandw11/ultrachat/listner/JoinListner.html create mode 100644 docs/me/ryandw11/ultrachat/listner/NoSwear.html create mode 100644 docs/me/ryandw11/ultrachat/listner/Notify.html create mode 100644 docs/me/ryandw11/ultrachat/listner/Spy.html create mode 100644 docs/me/ryandw11/ultrachat/listner/StopChat.html create mode 100644 docs/me/ryandw11/ultrachat/listner/package-frame.html create mode 100644 docs/me/ryandw11/ultrachat/listner/package-summary.html create mode 100644 docs/me/ryandw11/ultrachat/listner/package-tree.html create mode 100644 docs/me/ryandw11/ultrachat/util/ChatUtil.html diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html index 66ee849..0df227f 100644 --- a/docs/allclasses-frame.html +++ b/docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -13,42 +13,62 @@
diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html index 55c67b4..9e7e276 100644 --- a/docs/allclasses-noframe.html +++ b/docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -13,42 +13,62 @@
diff --git a/docs/constant-values.html b/docs/constant-values.html index b8d8737..eab58d5 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -72,6 +71,35 @@

    Constant Field Values

    Contents

    + +
    +
    + + +

    me.ryandw11.*

    +
      +
    • + + + + + + + + + + + + + + +
      me.ryandw11.ultrachat.util.Metrics 
      Modifier and TypeConstant FieldValue
      + +public static final intB_STATS_VERSION1
      +
    • +
    @@ -85,7 +113,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html index 91841cf..6e3e55a 100644 --- a/docs/deprecated-list.html +++ b/docs/deprecated-list.html @@ -2,9 +2,9 @@ - + Deprecated List - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Index
  • @@ -72,6 +71,45 @@

    Deprecated API

    Contents

    + +
    +
    + + +
    @@ -85,7 +123,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Index
  • diff --git a/docs/help-doc.html b/docs/help-doc.html index c30373a..59af336 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -2,9 +2,9 @@ - + API Help - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -137,10 +136,6 @@
  • -

    Use

    -

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    -
  • -
  • Tree (Class Hierarchy)

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

      @@ -190,7 +185,6 @@
    • Overview
    • Package
    • Class
    • -
    • Use
    • Tree
    • Deprecated
    • Index
    • diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 7f74d89..4ed4ebe 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -2,9 +2,9 @@ - + A-Index - + @@ -34,7 +34,6 @@
    • Overview
    • Package
    • Class
    • -
    • Use
    • Tree
    • Deprecated
    • @@ -69,23 +68,31 @@
  • -
    A B C D F G I J L M N O P R S T U V W  +
    A B C D E F G I J L M N O P R S T U V W 

    A

    addAddon(PlaceholderAddon) - Method in class me.ryandw11.ultrachat.api.managers.AddonManager
    -
     
    +
    +
    Add an addon
    +
    addBaseComponent(BaseComponent[]) - Method in class me.ryandw11.ultrachat.api.MessageBuilder
    Add a base component to the message
    +
    addCustomChart(Metrics.CustomChart) - Method in class me.ryandw11.ultrachat.util.Metrics
    +
    +
    Adds a custom chart.
    +
    addJSON(JSONChatBuilder) - Method in class me.ryandw11.ultrachat.api.MessageBuilder
    Add a JSONChatBuilder to the message
    AddonManager - Class in me.ryandw11.ultrachat.api.managers
    -
     
    +
    +
    This class handles any addons to the plugin.
    +
    AddonManager() - Constructor for class me.ryandw11.ultrachat.api.managers.AddonManager
     
    addonManager - Variable in class me.ryandw11.ultrachat.UltraChat
    @@ -94,8 +101,20 @@
    Add a string to the message
    +
    AdvancedBanMute - Class in me.ryandw11.ultrachat.pluginhooks
    +
     
    +
    AdvancedBanMute() - Constructor for class me.ryandw11.ultrachat.pluginhooks.AdvancedBanMute
    +
     
    +
    AdvancedBarChart(String, Callable<Map<String, int[]>>) - Constructor for class me.ryandw11.ultrachat.util.Metrics.AdvancedBarChart
    +
    +
    Class constructor.
    +
    +
    AdvancedPie(String, Callable<Map<String, Integer>>) - Constructor for class me.ryandw11.ultrachat.util.Metrics.AdvancedPie
    +
    +
    Class constructor.
    +
    -A B C D F G I J L M N O P R S T U V W 
    +A B C D E F G I J L M N O P R S T U V W 
    @@ -108,7 +127,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index aaf0f52..05dab7e 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -2,9 +2,9 @@ - -M-Index - + +L-Index + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • @@ -69,11 +68,13 @@
    -
    A B C D F G I J L M N O P R S T U V W  +
    A B C D E F G I J L M N O P R S T U V W 

    B

    +
    B_STATS_VERSION - Static variable in class me.ryandw11.ultrachat.util.Metrics
    +
     
    build() - Method in class me.ryandw11.ultrachat.api.channels.ChannelBuilder
    Build the channel
    @@ -85,7 +86,7 @@
    build() - Method in class me.ryandw11.ultrachat.api.MessageBuilder
     
    -A B C D F G I J L M N O P R S T U V W 
    +A B C D E F G I J L M N O P R S T U V W 
    @@ -98,7 +99,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html index fa458d6..97b3252 100644 --- a/docs/index-files/index-20.html +++ b/docs/index-files/index-20.html @@ -2,9 +2,9 @@ - + W-Index - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • @@ -69,23 +68,17 @@
    -
    A B C D E G H I J L M N O P R S T U V W  +
    A B C D E F G I J L M N O P R S T U V W 

    W

    -
    worldChat(WorldChatEvent) - Method in class me.ryandw11.ultrachat.pluginhooks.AdvancedBanMute
    +
    World - Class in me.ryandw11.ultrachat.commands
     
    -
    worldChat(WorldChatEvent) - Method in class me.ryandw11.ultrachat.pluginhooks.EssentialsMute
    -
     
    -
    WorldChatEvent - Class in me.ryandw11.ultrachat.api
    -
    -
    Event class
    -
    -
    WorldChatEvent(Player, String, Set<Player>) - Constructor for class me.ryandw11.ultrachat.api.WorldChatEvent
    +
    World() - Constructor for class me.ryandw11.ultrachat.commands.World
     
    -A B C D E G H I J L M N O P R S T U V W 
    +A B C D E F G I J L M N O P R S T U V W 
    @@ -98,7 +91,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index f535883..221c77a 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -2,9 +2,9 @@ - + C-Index - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • @@ -69,7 +68,7 @@
    -
    A B C D F G I J L M N O P R S T U V W  +
    A B C D E F G I J L M N O P R S T U V W 

    C

    @@ -88,8 +87,6 @@
     
    ChannelCmd() - Constructor for class me.ryandw11.ultrachat.commands.ChannelCmd
     
    -
    channelEnabled - Variable in class me.ryandw11.ultrachat.UltraChat
    -
     
    channelExists(ChatChannel) - Method in class me.ryandw11.ultrachat.api.managers.ChannelManager
    If a given channel exists (In this instance if it is save in the files)
    @@ -98,7 +95,7 @@
    If a given channel exists based upon the name.
    -
    channelfile - Variable in class me.ryandw11.ultrachat.UltraChat
    +
    channelFile - Variable in class me.ryandw11.ultrachat.UltraChat
     
    ChannelJSON - Class in me.ryandw11.ultrachat.formatting
    @@ -107,47 +104,89 @@
    ChannelJSON() - Constructor for class me.ryandw11.ultrachat.formatting.ChannelJSON
     
    ChannelManager - Class in me.ryandw11.ultrachat.api.managers
    -
     
    +
    +
    This class handles the channels of the plugin.
    +
    ChannelManager() - Constructor for class me.ryandw11.ultrachat.api.managers.ChannelManager
     
    ChannelProperties - Class in me.ryandw11.ultrachat.api.events.properties
     
    ChannelProperties(boolean, String) - Constructor for class me.ryandw11.ultrachat.api.events.properties.ChannelProperties
     
    -
    Channels - Class in me.ryandw11.ultrachat.formatting
    -
    -
    Channels without any kind of json involved.
    -
    -
    Channels() - Constructor for class me.ryandw11.ultrachat.formatting.Channels
    -
     
    chat - Variable in class me.ryandw11.ultrachat.UltraChat
     
    ChatChannel - Class in me.ryandw11.ultrachat.api.channels
    -
     
    +
    +
    This class is used the manage channels.
    +
    ChatChannel(ChannelBuilder) - Constructor for class me.ryandw11.ultrachat.api.channels.ChatChannel
    For internal use only.
    -
    ChatCommand - Class in me.ryandw11.ultrachat.commands
    +
    chatColorFC - Variable in class me.ryandw11.ultrachat.UltraChat
     
    -
    ChatCommand() - Constructor for class me.ryandw11.ultrachat.commands.ChatCommand
    +
    chatColorFile - Variable in class me.ryandw11.ultrachat.UltraChat
    +
     
    +
    ChatColorManager - Class in me.ryandw11.ultrachat.chatcolor
    +
    +
    This class handles the chatcolor.yml file.
    +
    +
    ChatColorManager(UltraChat, ConfigurationSection) - Constructor for class me.ryandw11.ultrachat.chatcolor.ChatColorManager
    +
     
    +
    chatColorManager - Variable in class me.ryandw11.ultrachat.UltraChat
    +
     
    +
    chatColorUtil - Variable in class me.ryandw11.ultrachat.UltraChat
    +
     
    +
    ChatColorUtil_Latest - Class in me.ryandw11.ultrachat.chatcolor
    +
     
    +
    ChatColorUtil_Latest(UltraChat) - Constructor for class me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Latest
    +
     
    +
    ChatColorUtil_Old - Class in me.ryandw11.ultrachat.chatcolor
    +
     
    +
    ChatColorUtil_Old() - Constructor for class me.ryandw11.ultrachat.chatcolor.ChatColorUtil_Old
    +
     
    +
    ChatColorUtils - Interface in me.ryandw11.ultrachat.chatcolor
     
    ChatProperties - Interface in me.ryandw11.ultrachat.api.events.properties
     
    -
    chatStop - Variable in class me.ryandw11.ultrachat.UltraChat
    -
     
    ChatType - Enum in me.ryandw11.ultrachat.api
    +
    +
    The different modes chat can be in.
    +
    +
    chatType - Variable in class me.ryandw11.ultrachat.UltraChat
    +
     
    +
    ChatUtil - Class in me.ryandw11.ultrachat.util
    +
    +
    This is a utility class to make chat easier.
    +
    +
    ChatUtil() - Constructor for class me.ryandw11.ultrachat.util.ChatUtil
     
    color - Variable in class me.ryandw11.ultrachat.formatting.PlayerFormatting
     
    color - Variable in class me.ryandw11.ultrachat.formatting.UUIDFormating
     
    +
    ColorGUI - Interface in me.ryandw11.ultrachat.gui
    +
    +
    Provides compatibility with older versions.
    +
    +
    ColorGUI_1_15_R1 - Class in me.ryandw11.ultrachat.gui
    +
    +
    ColorGUI class.
    +
    +
    ColorGUI_1_15_R1() - Constructor for class me.ryandw11.ultrachat.gui.ColorGUI_1_15_R1
    +
     
    +
    ColorGUI_Latest - Class in me.ryandw11.ultrachat.gui
    +
    +
    ColorGUI class.
    +
    +
    ColorGUI_Latest() - Constructor for class me.ryandw11.ultrachat.gui.ColorGUI_Latest
    +
     
    CommandTabCompleter - Class in me.ryandw11.ultrachat.commands
     
    CommandTabCompleter() - Constructor for class me.ryandw11.ultrachat.commands.CommandTabCompleter
     
    -A B C D F G I J L M N O P R S T U V W 
    +A B C D E F G I J L M N O P R S T U V W 
    @@ -160,7 +199,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 1dcb47c..83ae784 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -2,9 +2,9 @@ - + D-Index - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • @@ -69,23 +68,27 @@
    -
    A B C D F G I J L M N O P R S T U V W  +
    A B C D E F G I J L M N O P R S T U V W 

    D

    data - Variable in class me.ryandw11.ultrachat.UltraChat
     
    -
    datafile - Variable in class me.ryandw11.ultrachat.UltraChat
    -
     
    -
    defaultChannel - Variable in class me.ryandw11.ultrachat.UltraChat
    +
    dataFile - Variable in class me.ryandw11.ultrachat.UltraChat
     
    delete() - Method in class me.ryandw11.ultrachat.api.channels.ChatChannel
    -
    Delete the channel
    +
    Deprecated. +
    It is not recommended to use this.
    +
    +
    +
    DrilldownPie(String, Callable<Map<String, Map<String, Integer>>>) - Constructor for class me.ryandw11.ultrachat.util.Metrics.DrilldownPie
    +
    +
    Class constructor.
    -A B C D F G I J L M N O P R S T U V W 
    +A B C D E F G I J L M N O P R S T U V W 
    @@ -98,7 +101,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index 533b280..fc23e82 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -2,9 +2,9 @@ - -F-Index - + +E-Index + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -125,12 +124,12 @@ var activeTableTab = "activeTableTab";
    public class UltraChat
     extends org.bukkit.plugin.java.JavaPlugin
    -
    Main Class
    +
    Main Class +

    Updated for 1.16.1.

    +

    Note: You should access manager classes from the UltraChatAPI class.

    Version:
    -
    2.4 - Updated for 1.14. - (Very few API methods here)
    +
    2.5
    Author:
    Ryandw11
    @@ -161,36 +160,44 @@ extends org.bukkit.plugin.java.JavaPlugin channel  -java.lang.Boolean -channelEnabled  +java.io.File +channelFile  -java.io.File -channelfile  - - net.milkbowl.vault.chat.Chat chat  - -java.lang.Boolean -chatStop  - org.bukkit.configuration.file.FileConfiguration -data  +chatColorFC  java.io.File -datafile  +chatColorFile  -java.lang.String -defaultChannel  +ChatColorManager +chatColorManager  + + +ChatColorUtils +chatColorUtil  + + +ChatType +chatType  + + +org.bukkit.configuration.file.FileConfiguration +data  + + +java.io.File +dataFile  java.lang.Boolean -JSON  +isChatStopped  static org.bukkit.configuration.file.YamlConfiguration @@ -201,36 +208,28 @@ extends org.bukkit.plugin.java.JavaPlugin LANG_FILE  -ChatType -md  - - PlaceHolderAPIHook papi  - + net.milkbowl.vault.permission.Permission perms  - + static UltraChat plugin  - + java.lang.String prefix  - -java.util.ArrayList<java.util.UUID> -spytoggle  - -java.util.ArrayList<java.util.UUID> -stafftoggle  +java.util.List<java.util.UUID> +spyToggle  -java.lang.Boolean -Vault  +java.util.List<java.util.UUID> +staffToggle  @@ -265,7 +264,7 @@ extends org.bukkit.plugin.java.JavaPlugin Method and Description -me.ryandw11.ultrachat.gui.ColorGUI +ColorGUI getColorGUI()
    Get the ColorGUI class for the right version.
    @@ -294,7 +293,9 @@ extends org.bukkit.plugin.java.JavaPlugin void -loadLang()  +loadLang() +
    Load the language file.
    + void @@ -373,150 +374,6 @@ extends org.bukkit.plugin.java.JavaPlugin
    public static UltraChat plugin
    - - - -
      -
    • -

      perms

      -
      public net.milkbowl.vault.permission.Permission perms
      -
    • -
    - - - -
      -
    • -

      chat

      -
      public net.milkbowl.vault.chat.Chat chat
      -
    • -
    - - - -
      -
    • -

      Vault

      -
      public java.lang.Boolean Vault
      -
    • -
    - - - -
      -
    • -

      chatStop

      -
      public java.lang.Boolean chatStop
      -
    • -
    - - - -
      -
    • -

      channelEnabled

      -
      public java.lang.Boolean channelEnabled
      -
    • -
    - - - -
      -
    • -

      JSON

      -
      public java.lang.Boolean JSON
      -
    • -
    - - - - - - - -
      -
    • -

      defaultChannel

      -
      public java.lang.String defaultChannel
      -
    • -
    - - - -
      -
    • -

      stafftoggle

      -
      public java.util.ArrayList<java.util.UUID> stafftoggle
      -
    • -
    - - - -
      -
    • -

      spytoggle

      -
      public java.util.ArrayList<java.util.UUID> spytoggle
      -
    • -
    - - - - - - - -
      -
    • -

      datafile

      -
      public java.io.File datafile
      -
    • -
    - - - -
      -
    • -

      data

      -
      public org.bukkit.configuration.file.FileConfiguration data
      -
    • -
    - - - -
      -
    • -

      channelfile

      -
      public java.io.File channelfile
      -
    • -
    - - - -
      -
    • -

      channel

      -
      public org.bukkit.configuration.file.FileConfiguration channel
      -
    • -
    - - - -
      -
    • -

      prefix

      -
      public java.lang.String prefix
      -
    • -
    @@ -535,13 +392,157 @@ extends org.bukkit.plugin.java.JavaPlugin
    public static java.io.File LANG_FILE
    + + + +
      +
    • +

      perms

      +
      public net.milkbowl.vault.permission.Permission perms
      +
    • +
    + + + +
      +
    • +

      chat

      +
      public net.milkbowl.vault.chat.Chat chat
      +
    • +
    + + + +
      +
    • +

      isChatStopped

      +
      public java.lang.Boolean isChatStopped
      +
    • +
    + + + +
      +
    • +

      chatType

      +
      public ChatType chatType
      +
    • +
    + + + +
      +
    • +

      staffToggle

      +
      public java.util.List<java.util.UUID> staffToggle
      +
    • +
    + + + +
      +
    • +

      spyToggle

      +
      public java.util.List<java.util.UUID> spyToggle
      +
    • +
    + + + + + + + +
      +
    • +

      dataFile

      +
      public java.io.File dataFile
      +
    • +
    + + + +
      +
    • +

      data

      +
      public org.bukkit.configuration.file.FileConfiguration data
      +
    • +
    + + + +
      +
    • +

      channelFile

      +
      public java.io.File channelFile
      +
    • +
    + + + +
      +
    • +

      channel

      +
      public org.bukkit.configuration.file.FileConfiguration channel
      +
    • +
    + + + +
      +
    • +

      chatColorFile

      +
      public java.io.File chatColorFile
      +
    • +
    + + + +
      +
    • +

      chatColorFC

      +
      public org.bukkit.configuration.file.FileConfiguration chatColorFC
      +
    • +
    + + + +
      +
    • +

      prefix

      +
      public java.lang.String prefix
      +
    • +
    + + + + + + + + @@ -609,6 +610,30 @@ extends org.bukkit.plugin.java.JavaPlugin
    Setup the chat formatting.
    + + + +
      +
    • +

      loadMethod

      +
      public void loadMethod()
      +
      Loads all of the Events and Commands.
      +
    • +
    + + + +
      +
    • +

      getColorGUI

      +
      public ColorGUI getColorGUI()
      +
      Get the ColorGUI class for the right version.
      +
      +
      Returns:
      +
      A class that implements ColorGUI
      +
      +
    • +
    @@ -678,34 +703,11 @@ extends org.bukkit.plugin.java.JavaPlugin -
      +
      • loadLang

        public void loadLang()
        -
      • -
      - - - -
        -
      • -

        loadMethod

        -
        public void loadMethod()
        -
        Loads all of the Events and Commands.
        -
      • -
      - - - -
        -
      • -

        getColorGUI

        -
        public me.ryandw11.ultrachat.gui.ColorGUI getColorGUI()
        -
        Get the ColorGUI class for the right version.
        -
        -
        Returns:
        -
        A class that implements ColorGUI
        -
        +
        Load the language file.
      @@ -727,7 +729,6 @@ extends org.bukkit.plugin.java.JavaPlugin
    • Overview
    • Package
    • -
    • Use
    • Tree
    • Deprecated
    • Index
    • diff --git a/docs/me/ryandw11/ultrachat/api/ChatType.html b/docs/me/ryandw11/ultrachat/api/ChatType.html index 86504b3..13e086c 100644 --- a/docs/me/ryandw11/ultrachat/api/ChatType.html +++ b/docs/me/ryandw11/ultrachat/api/ChatType.html @@ -2,9 +2,9 @@ - + ChatType - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
    • Overview
    • Package
    • -
    • Use
    • Tree
    • Deprecated
    • Index
    • @@ -120,6 +119,7 @@ var activeTableTab = "activeTableTab";
      public enum ChatType
       extends java.lang.Enum<ChatType>
      +
      The different modes chat can be in.
    @@ -299,7 +299,6 @@ not permitted.)
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/JSONChatBuilder.html b/docs/me/ryandw11/ultrachat/api/JSONChatBuilder.html index 1a60f3b..58f3d3c 100644 --- a/docs/me/ryandw11/ultrachat/api/JSONChatBuilder.html +++ b/docs/me/ryandw11/ultrachat/api/JSONChatBuilder.html @@ -2,9 +2,9 @@ - + JSONChatBuilder - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -347,7 +346,6 @@ extends java.lang.Object
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/Lang.html b/docs/me/ryandw11/ultrachat/api/Lang.html index 6587f06..df1e61b 100644 --- a/docs/me/ryandw11/ultrachat/api/Lang.html +++ b/docs/me/ryandw11/ultrachat/api/Lang.html @@ -2,9 +2,9 @@ - + Lang - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -151,90 +150,93 @@ extends java.lang.Enum<CHAT_CMD_NOT_VALID  +CHAT_COLOR_CHANGE  + + CHAT_STOP_OFF  - + CHAT_STOP_ON  - + CHAT_STOP_PERSONAL  - + CHAT_UNSTOP_PERSONAL  - + CMD_SPY_FORMAT  - + CMD_SPY_OFF  - + CMD_SPY_ON  - + COLOR_GUI  - + CONFIG_RELOAD  - + CONSOLE_CHAT_LOG  - + ERROR_CHANNEL_ENABLED  - + ERROR_CHANNEL_USAGE  - + HELP_PAGE_ERROR  - + MENTION  - + NO_PERM  - + NO_SWEAR  - + OTH_CMD_SPY_OFF  - + OTH_CMD_SPY_ON  - + PLUGIN_PREFIX  - + SILENT_JOIN_MESSAGE  - + SILENT_LEAVE_MESSAGE  - + SJOIN_HIDE  - + SJOIN_OTHER_HIDE  - + SJOIN_OTHER_SHOW  - + SJOIN_SHOWN  - + STAFF_CHAT_FORMAT  - + STAFF_CHAT_OFF  - + STAFF_CHAT_ON  - + STOP_CHAT_MESSAGE  @@ -609,12 +611,21 @@ the order they are declared.
    -
      +
      • HELP_PAGE_ERROR

        public static final Lang HELP_PAGE_ERROR
      + + + +
        +
      • +

        CHAT_COLOR_CHANGE

        +
        public static final Lang CHAT_COLOR_CHANGE
        +
      • +
    @@ -747,7 +758,6 @@ not permitted.)
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/MessageBuilder.html b/docs/me/ryandw11/ultrachat/api/MessageBuilder.html index 0b1d0df..2c1a92b 100644 --- a/docs/me/ryandw11/ultrachat/api/MessageBuilder.html +++ b/docs/me/ryandw11/ultrachat/api/MessageBuilder.html @@ -2,9 +2,9 @@ - + MessageBuilder - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -291,7 +290,6 @@ extends java.lang.Object
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/UltraChatAPI.html b/docs/me/ryandw11/ultrachat/api/UltraChatAPI.html index 947306c..f663dc3 100644 --- a/docs/me/ryandw11/ultrachat/api/UltraChatAPI.html +++ b/docs/me/ryandw11/ultrachat/api/UltraChatAPI.html @@ -2,9 +2,9 @@ - + UltraChatAPI - + @@ -18,8 +18,8 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":42,"i9":42,"i10":10,"i11":10,"i12":10,"i13":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -50,7 +49,7 @@ var activeTableTab = "activeTableTab"; @@ -322,7 +322,6 @@ extends org.bukkit.event.Event
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/UltraChatEvent.html b/docs/me/ryandw11/ultrachat/api/events/UltraChatEvent.html index 412e839..75daed5 100644 --- a/docs/me/ryandw11/ultrachat/api/events/UltraChatEvent.html +++ b/docs/me/ryandw11/ultrachat/api/events/UltraChatEvent.html @@ -2,9 +2,9 @@ - + UltraChatEvent - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -116,6 +115,8 @@ var activeTableTab = "activeTableTab";
    public class UltraChatEvent
     extends org.bukkit.event.Event
    +
    The UltraChatEvent is used when a player chats. This event gives you more information than the normal AsyncChatEvent. +

    Note: Since API Version 2.5 this event is only needed when you want specific ultraChat information.

    @@ -298,7 +299,7 @@ extends org.bukkit.event.Event
    Set the recipients.
    Parameters:
    -
    recipents - The set of recipients.
    +
    recipients - The set of recipients.
    @@ -421,7 +422,6 @@ extends org.bukkit.event.Event
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/package-frame.html b/docs/me/ryandw11/ultrachat/api/events/package-frame.html index 4a4eea5..b8ca16d 100644 --- a/docs/me/ryandw11/ultrachat/api/events/package-frame.html +++ b/docs/me/ryandw11/ultrachat/api/events/package-frame.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events - + diff --git a/docs/me/ryandw11/ultrachat/api/events/package-summary.html b/docs/me/ryandw11/ultrachat/api/events/package-summary.html index 61ee053..51ff4a0 100644 --- a/docs/me/ryandw11/ultrachat/api/events/package-summary.html +++ b/docs/me/ryandw11/ultrachat/api/events/package-summary.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events - + @@ -34,7 +34,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -84,11 +83,15 @@ StaffChatEvent -  + +
    This event is called when the staff chat is used.
    + UltraChatEvent -  + +
    The UltraChatEvent is used when a player chats.
    + @@ -107,7 +110,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/package-tree.html b/docs/me/ryandw11/ultrachat/api/events/package-tree.html index 6f235c5..daabedd 100644 --- a/docs/me/ryandw11/ultrachat/api/events/package-tree.html +++ b/docs/me/ryandw11/ultrachat/api/events/package-tree.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events Class Hierarchy - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • @@ -103,7 +102,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.html b/docs/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.html index 6357f98..39a0da6 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/ChannelProperties.html @@ -2,9 +2,9 @@ - + ChannelProperties - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -210,6 +209,8 @@ implements Specified by:
    isComponent in interface ChatProperties
    +
    Returns:
    +
    If the plugin has json components enabled.
    @@ -241,7 +242,6 @@ implements Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/ChatProperties.html b/docs/me/ryandw11/ultrachat/api/events/properties/ChatProperties.html index 33e3db5..69fc772 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/ChatProperties.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/ChatProperties.html @@ -2,9 +2,9 @@ - + ChatProperties - + @@ -18,8 +18,8 @@ catch(err) { } //--> -var methods = {"i0":6}; -var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var methods = {"i0":38}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -119,14 +118,18 @@ var activeTableTab = "activeTableTab";

    Method Summary

    - + - +
    All Methods Instance Methods Abstract Methods All Methods Instance Methods Abstract Methods Deprecated Methods 
    Modifier and Type Method and Description
    booleanisComponent() isComponent() +
    Deprecated.  +
    As of version 2.5 this will always be true as the plugin is always in JSON mode.
    +
    +
    @@ -150,6 +153,11 @@ var activeTableTab = "activeTableTab";
  • isComponent

    boolean isComponent()
    +
    Deprecated. As of version 2.5 this will always be true as the plugin is always in JSON mode.
    +
    +
    Returns:
    +
    If the plugin has json components enabled.
    +
  • @@ -171,7 +179,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/NormalProperties.html b/docs/me/ryandw11/ultrachat/api/events/properties/NormalProperties.html index 148aa3b..1ee090d 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/NormalProperties.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/NormalProperties.html @@ -2,9 +2,9 @@ - + NormalProperties - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -204,6 +203,8 @@ implements Specified by:
    isComponent in interface ChatProperties
    +
    Returns:
    +
    If the plugin has json components enabled.
    @@ -226,7 +227,6 @@ implements Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/RangeProperties.html b/docs/me/ryandw11/ultrachat/api/events/properties/RangeProperties.html index 91fae43..0721170 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/RangeProperties.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/RangeProperties.html @@ -2,9 +2,9 @@ - + RangeProperties - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -212,6 +211,8 @@ implements Specified by:
    isComponent in interface ChatProperties
    +
    Returns:
    +
    If the plugin has json components enabled.
    @@ -248,7 +249,6 @@ implements Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/RangeType.html b/docs/me/ryandw11/ultrachat/api/events/properties/RangeType.html index 54d07af..e25fdff 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/RangeType.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/RangeType.html @@ -2,9 +2,9 @@ - + RangeType - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -138,7 +137,7 @@ extends java.lang.Enum<Enum Constant and Description -GLBOAL  +GLOBAL  LOCAL  @@ -221,13 +220,13 @@ the order they are declared.
    public static final RangeType WORLD
    - +
    • -

      GLBOAL

      -
      public static final RangeType GLBOAL
      +

      GLOBAL

      +
      public static final RangeType GLOBAL
    @@ -299,7 +298,6 @@ not permitted.)
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/package-frame.html b/docs/me/ryandw11/ultrachat/api/events/properties/package-frame.html index 84f6d9a..fb9c3e1 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/package-frame.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/package-frame.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events.properties - + diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/package-summary.html b/docs/me/ryandw11/ultrachat/api/events/properties/package-summary.html index 4f119c8..f7f50ee 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/package-summary.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/package-summary.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events.properties - + @@ -34,7 +34,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -141,7 +140,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/events/properties/package-tree.html b/docs/me/ryandw11/ultrachat/api/events/properties/package-tree.html index e0780b5..f4ebb61 100644 --- a/docs/me/ryandw11/ultrachat/api/events/properties/package-tree.html +++ b/docs/me/ryandw11/ultrachat/api/events/properties/package-tree.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.events.properties Class Hierarchy - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • @@ -116,7 +115,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/managers/AddonManager.html b/docs/me/ryandw11/ultrachat/api/managers/AddonManager.html index d9b720f..4888d36 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/AddonManager.html +++ b/docs/me/ryandw11/ultrachat/api/managers/AddonManager.html @@ -2,9 +2,9 @@ - + AddonManager - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -111,6 +110,8 @@ var activeTableTab = "activeTableTab";
    public class AddonManager
     extends java.lang.Object
    +
    This class handles any addons to the plugin. +

    The instance of this class can be retrieved from UltraChatAPI.getAddonManager()

    @@ -148,16 +149,22 @@ extends java.lang.Object void -addAddon(PlaceholderAddon pa)  +addAddon(PlaceholderAddon pa) +
    Add an addon
    + java.util.List<PlaceholderAddon> -getAddons()  +getAddons() +
    Get the list of addons.
    + java.lang.String replacePlaceholders(java.lang.String s, - java.util.UUID p)  + java.util.UUID p) +
    Replace the placeholders in a string.
    +
      @@ -205,6 +212,11 @@ extends java.lang.Object
    • addAddon

      public void addAddon(PlaceholderAddon pa)
      +
      Add an addon
      +
      +
      Parameters:
      +
      pa - The addon to add.
      +
    @@ -214,6 +226,11 @@ extends java.lang.Object
  • getAddons

    public java.util.List<PlaceholderAddon> getAddons()
    +
    Get the list of addons.
    +
    +
    Returns:
    +
    The list of addons.
    +
  • @@ -224,6 +241,14 @@ extends java.lang.Object

    replacePlaceholders

    public java.lang.String replacePlaceholders(java.lang.String s,
                                                 java.util.UUID p)
    +
    Replace the placeholders in a string.
    +
    +
    Parameters:
    +
    s - The string.
    +
    p - The player UUID.
    +
    Returns:
    +
    The string with the placeholders replaced.
    +
    @@ -245,7 +270,6 @@ extends java.lang.Object
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/managers/ChannelManager.html b/docs/me/ryandw11/ultrachat/api/managers/ChannelManager.html index 7558600..dea792d 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/ChannelManager.html +++ b/docs/me/ryandw11/ultrachat/api/managers/ChannelManager.html @@ -2,9 +2,9 @@ - + ChannelManager - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -111,6 +110,8 @@ var activeTableTab = "activeTableTab";
    public class ChannelManager
     extends java.lang.Object
    +
    This class handles the channels of the plugin. +

    Get the instance of this class from UltraChatAPI.getChannelManager()

    @@ -279,7 +280,7 @@ extends java.lang.Object
    Grab the player's current channel.
    Parameters:
    -
    player -
    +
    player - The player to get the channel from.
    Returns:
    The player's current channel.
    @@ -295,8 +296,9 @@ extends java.lang.Object
    Grab an offline player's current channel.
    Parameters:
    -
    player -
    +
    player - The player to get the channel from.
    Returns:
    +
    That UUID's current channel.
    @@ -325,8 +327,8 @@ extends java.lang.Object
    Set the player's channel.
    Parameters:
    -
    player -
    -
    channel -
    +
    player - The player to set.
    +
    channel - The channel.
    @@ -341,8 +343,8 @@ extends java.lang.Object
    Set the player's channel.
    Parameters:
    -
    player -
    -
    channel -
    +
    player - The player to set.
    +
    channel - The channel.
    @@ -356,7 +358,7 @@ extends java.lang.Object
    Set the default channel
    Parameters:
    -
    channel -
    +
    channel - The channel.
    @@ -370,7 +372,9 @@ extends java.lang.Object
    If a given channel exists (In this instance if it is save in the files)
    Parameters:
    -
    channel -
    +
    channel - The channel to check.
    +
    Returns:
    +
    If the channel exists.
    @@ -384,8 +388,9 @@ extends java.lang.Object
    If a given channel exists based upon the name.
    Parameters:
    -
    name -
    +
    name - The name of the channel to check
    Returns:
    +
    If the channel exists.
    @@ -399,8 +404,9 @@ extends java.lang.Object
    Get all online players in a given channel.
    Parameters:
    -
    channel -
    +
    channel - The channel to get the players from.
    Returns:
    +
    The list of players. (Unmodifiable)
    @@ -414,8 +420,9 @@ extends java.lang.Object
    Get all players in a channel online or offline.
    Parameters:
    -
    channel -
    +
    channel - The channel to get the UUIDs from.
    Returns:
    +
    The list of UUIDs. (Unmodifiable)
    @@ -438,7 +445,6 @@ extends java.lang.Object
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/managers/JComponentManager.html b/docs/me/ryandw11/ultrachat/api/managers/JComponentManager.html index 6d51b75..73e7d58 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/JComponentManager.html +++ b/docs/me/ryandw11/ultrachat/api/managers/JComponentManager.html @@ -2,9 +2,9 @@ - + JComponentManager - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -276,7 +275,6 @@ extends java.lang.Object
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/managers/package-frame.html b/docs/me/ryandw11/ultrachat/api/managers/package-frame.html index 8c31edc..efe7ab9 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/package-frame.html +++ b/docs/me/ryandw11/ultrachat/api/managers/package-frame.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.managers - + diff --git a/docs/me/ryandw11/ultrachat/api/managers/package-summary.html b/docs/me/ryandw11/ultrachat/api/managers/package-summary.html index c84c827..652a6f7 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/package-summary.html +++ b/docs/me/ryandw11/ultrachat/api/managers/package-summary.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.managers - + @@ -34,7 +34,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -84,11 +83,15 @@ AddonManager -  + +
    This class handles any addons to the plugin.
    + ChannelManager -  + +
    This class handles the channels of the plugin.
    + JComponentManager @@ -111,7 +114,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/managers/package-tree.html b/docs/me/ryandw11/ultrachat/api/managers/package-tree.html index 844637d..593adbc 100644 --- a/docs/me/ryandw11/ultrachat/api/managers/package-tree.html +++ b/docs/me/ryandw11/ultrachat/api/managers/package-tree.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.managers Class Hierarchy - + @@ -34,7 +34,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • @@ -100,7 +99,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/package-frame.html b/docs/me/ryandw11/ultrachat/api/package-frame.html index 95fc71a..912f867 100644 --- a/docs/me/ryandw11/ultrachat/api/package-frame.html +++ b/docs/me/ryandw11/ultrachat/api/package-frame.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api - + @@ -16,7 +16,6 @@
  • JSONChatBuilder
  • MessageBuilder
  • UltraChatAPI
  • -
  • Util
  • Enums

      diff --git a/docs/me/ryandw11/ultrachat/api/package-summary.html b/docs/me/ryandw11/ultrachat/api/package-summary.html index 2f783be..195d533 100644 --- a/docs/me/ryandw11/ultrachat/api/package-summary.html +++ b/docs/me/ryandw11/ultrachat/api/package-summary.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api - + @@ -34,7 +34,6 @@
    • Overview
    • Class
    • -
    • Use
    • Tree
    • Deprecated
    • Index
    • @@ -100,10 +99,6 @@
      UltraChatAPI
      - -Util -  - @@ -117,7 +112,9 @@ ChatType -  + +
      The different modes chat can be in.
      + Lang @@ -142,7 +139,6 @@
    • Overview
    • Class
    • -
    • Use
    • Tree
    • Deprecated
    • Index
    • diff --git a/docs/me/ryandw11/ultrachat/api/package-tree.html b/docs/me/ryandw11/ultrachat/api/package-tree.html index b08cfde..97a2d27 100644 --- a/docs/me/ryandw11/ultrachat/api/package-tree.html +++ b/docs/me/ryandw11/ultrachat/api/package-tree.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api Class Hierarchy - + @@ -34,7 +34,6 @@
    • Overview
    • Package
    • Class
    • -
    • Use
    • Deprecated
    • Index
    • @@ -84,7 +83,6 @@
    • me.ryandw11.ultrachat.api.JSONChatBuilder
    • me.ryandw11.ultrachat.api.MessageBuilder
    • me.ryandw11.ultrachat.api.UltraChatAPI
    • -
    • me.ryandw11.ultrachat.api.Util
    @@ -94,8 +92,8 @@
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
        -
      • me.ryandw11.ultrachat.api.Lang
      • me.ryandw11.ultrachat.api.ChatType
      • +
      • me.ryandw11.ultrachat.api.Lang
    @@ -114,7 +112,6 @@
  • Overview
  • Package
  • Class
  • -
  • Use
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/placeholders/PlaceholderAddon.html b/docs/me/ryandw11/ultrachat/api/placeholders/PlaceholderAddon.html index cd77cc4..6e9c511 100644 --- a/docs/me/ryandw11/ultrachat/api/placeholders/PlaceholderAddon.html +++ b/docs/me/ryandw11/ultrachat/api/placeholders/PlaceholderAddon.html @@ -2,9 +2,9 @@ - + PlaceholderAddon - + @@ -40,7 +40,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -180,7 +179,6 @@ var activeTableTab = "activeTableTab";
  • Overview
  • Package
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • diff --git a/docs/me/ryandw11/ultrachat/api/placeholders/package-frame.html b/docs/me/ryandw11/ultrachat/api/placeholders/package-frame.html index 66fab5b..a0f015b 100644 --- a/docs/me/ryandw11/ultrachat/api/placeholders/package-frame.html +++ b/docs/me/ryandw11/ultrachat/api/placeholders/package-frame.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.placeholders - + diff --git a/docs/me/ryandw11/ultrachat/api/placeholders/package-summary.html b/docs/me/ryandw11/ultrachat/api/placeholders/package-summary.html index 07e64fd..965cb4a 100644 --- a/docs/me/ryandw11/ultrachat/api/placeholders/package-summary.html +++ b/docs/me/ryandw11/ultrachat/api/placeholders/package-summary.html @@ -2,9 +2,9 @@ - + me.ryandw11.ultrachat.api.placeholders - + @@ -34,7 +34,6 @@
  • Overview
  • Class
  • -
  • Use
  • Tree
  • Deprecated
  • Index
  • @@ -44,7 +43,7 @@