From f877ac6eb9f94ca51c5dd1fea229f4b29aa5dbdf Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 01:26:27 -0400 Subject: [PATCH 01/35] Updated venturechat debug test messages. --- .../chat/command/chat/Venturechat.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java index 2d26763..927495d 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java @@ -7,12 +7,12 @@ import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; -//import net.minecraft.server.v1_15_R1.IChatBaseComponent; -//import net.minecraft.server.v1_15_R1.PacketPlayOutChat; +import net.minecraft.server.v1_15_R1.IChatBaseComponent; +import net.minecraft.server.v1_15_R1.PacketPlayOutChat; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; public class Venturechat extends MineverseCommand { @@ -30,31 +30,31 @@ public class Venturechat extends MineverseCommand { sender.sendMessage(InternalMessage.VENTURECHAT_AUTHOR.toString()); if (sender instanceof Player && plugin.getConfig().getString("loglevel", "info").equals("debug")) { Player player = (Player) sender; - String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "Click here to begin..." + ChatColor.RESET + ChatColor.GOLD + " | "; + String title = ChatColor.GOLD + " | " + ChatColor.BLUE.toString() + ChatColor.BOLD + "SpigotAPI chat message" + ChatColor.RESET + ChatColor.GOLD + " | "; String spaces = " "; TextComponent tcSpaces = new TextComponent(spaces); TextComponent message = new TextComponent(title); message.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Click here to rank up!").create())); - message.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/rules 1")); + message.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "Sample SpigotAPI Click Event")); tcSpaces.addExtra(message); player.spigot().sendMessage(tcSpaces); - //sendActionBar(player, "NMS message"); + sendActionBar(player, "NMS ActionBar message"); } } -// public static void sendActionBar(Player player, String message) { -// message= message.replaceAll("%player%", player.getDisplayName()); -// message = ChatColor.translateAlternateColorCodes('&', message); -// CraftPlayer p = (CraftPlayer) player; -// IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); -// PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); -// try { -// MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); -// } -// catch (Exception e) { -// e.printStackTrace(); -// } -// p.getHandle().playerConnection.sendPacket(ppoc); -// } + public static void sendActionBar(Player player, String message) { + message= message.replaceAll("%player%", player.getDisplayName()); + message = ChatColor.translateAlternateColorCodes('&', message); + CraftPlayer p = (CraftPlayer) player; + IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); + PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); + try { + MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); + } + catch (Exception e) { + e.printStackTrace(); + } + p.getHandle().playerConnection.sendPacket(ppoc); + } } \ No newline at end of file From bf8129dbb4da79e6d595fb4141397050a5cb8e89 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 01:34:50 -0400 Subject: [PATCH 02/35] Updated plugin version to 2.18.5 --- MineverseChat/bungee.yml | 2 +- MineverseChat/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 4e6a6d1..71d5afc 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.18.4 +version: 2.18.5 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 20f689e..067d121 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.18.4 +version: 2.18.5 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From ea62962bd3e44bf6bbdb7f196fada430d1e92311 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 07:32:54 -0400 Subject: [PATCH 03/35] Remove NMS imports and debug method. Caused issues under 1.15 ver --- .../chat/command/chat/Venturechat.java | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java index 927495d..7ce178f 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Venturechat.java @@ -7,12 +7,12 @@ import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.ComponentBuilder; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; -import net.minecraft.server.v1_15_R1.IChatBaseComponent; -import net.minecraft.server.v1_15_R1.PacketPlayOutChat; +//import net.minecraft.server.v1_15_R1.IChatBaseComponent; +//import net.minecraft.server.v1_15_R1.PacketPlayOutChat; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; +//import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; public class Venturechat extends MineverseCommand { @@ -39,22 +39,22 @@ public class Venturechat extends MineverseCommand { tcSpaces.addExtra(message); player.spigot().sendMessage(tcSpaces); - sendActionBar(player, "NMS ActionBar message"); +// sendActionBar(player, "NMS ActionBar message"); } } - public static void sendActionBar(Player player, String message) { - message= message.replaceAll("%player%", player.getDisplayName()); - message = ChatColor.translateAlternateColorCodes('&', message); - CraftPlayer p = (CraftPlayer) player; - IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); - PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); - try { - MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); - } - catch (Exception e) { - e.printStackTrace(); - } - p.getHandle().playerConnection.sendPacket(ppoc); - } +// public static void sendActionBar(Player player, String message) { +// message= message.replaceAll("%player%", player.getDisplayName()); +// message = ChatColor.translateAlternateColorCodes('&', message); +// CraftPlayer p = (CraftPlayer) player; +// IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a("{\"text\": \"" + message + "\"}"); +// PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc); +// try { +// MineverseChat.posField.set(ppoc, MineverseChat.chatMessageType.getEnumConstants()[2]); +// } +// catch (Exception e) { +// e.printStackTrace(); +// } +// p.getHandle().playerConnection.sendPacket(ppoc); +// } } \ No newline at end of file From 950a74bd235d04c0e0c86bc04245fddf3e87b52e Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 22:16:36 -0400 Subject: [PATCH 04/35] Add config check for Towny and Factions channel in /chwho --- .../Aust1n46/chat/command/chat/Chwho.java | 14 ++++++++------ .../Aust1n46/chat/listeners/ChatListener.java | 10 ++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java index 21cf35f..b7edd9a 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -76,11 +76,11 @@ public class Chwho extends MineverseCommand { continue; } } - if(pluginManager.isPluginEnabled("Towny") && sender instanceof Player) { + if(plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny") && sender instanceof Player) { try { - Resident r = TownyUniverse.getDataSource().getResident(p.getName()); - Resident pp = TownyUniverse.getDataSource().getResident(((Player) sender).getName()); if(channel.getName().equalsIgnoreCase("Town")) { + Resident r = TownyUniverse.getDataSource().getResident(p.getName()); + Resident pp = TownyUniverse.getDataSource().getResident(((Player) sender).getName()); if(!pp.hasTown()) { if(playerlist.length() + p.getName().length() > linecount) { playerlist += "\n"; @@ -103,6 +103,8 @@ public class Chwho extends MineverseCommand { } } if(channel.getName().equalsIgnoreCase("Nation")) { + Resident r = TownyUniverse.getDataSource().getResident(p.getName()); + Resident pp = TownyUniverse.getDataSource().getResident(((Player) sender).getName()); if(!pp.hasNation()) { if(playerlist.length() + p.getName().length() > linecount) { playerlist += "\n"; @@ -129,11 +131,11 @@ public class Chwho extends MineverseCommand { ex.printStackTrace(); } } - if(pluginManager.isPluginEnabled("Factions") && sender instanceof Player) { + if(plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions") && sender instanceof Player) { try { - MPlayer mplayer = MPlayer.get(p.getPlayer()); - MPlayer mplayerp = MPlayer.get((Player) sender); if(channel.getName().equalsIgnoreCase("Faction")) { + MPlayer mplayer = MPlayer.get(p.getPlayer()); + MPlayer mplayerp = MPlayer.get((Player) sender); if(!mplayerp.hasFaction()) { if(playerlist.length() + p.getName().length() > linecount) { playerlist += "\n"; diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index 90501b6..a86db61 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -350,9 +350,9 @@ public class ChatListener implements Listener { } if(plugin.getConfig().getBoolean("enable_towny_channel") && pluginManager.isPluginEnabled("Towny")) { try { - Resident r = TownyUniverse.getDataSource().getResident(p.getName()); - Resident pp = TownyUniverse.getDataSource().getResident(mcp.getName()); if(eventChannel.getName().equalsIgnoreCase("Town")) { + Resident r = TownyUniverse.getDataSource().getResident(p.getName()); + Resident pp = TownyUniverse.getDataSource().getResident(mcp.getName()); if(!pp.hasTown()) { recipients.remove(p.getPlayer()); recipientCount--; @@ -370,6 +370,8 @@ public class ChatListener implements Listener { } } if(eventChannel.getName().equalsIgnoreCase("Nation")) { + Resident r = TownyUniverse.getDataSource().getResident(p.getName()); + Resident pp = TownyUniverse.getDataSource().getResident(mcp.getName()); if(!pp.hasNation()) { recipients.remove(p.getPlayer()); recipientCount--; @@ -394,9 +396,9 @@ public class ChatListener implements Listener { if(plugin.getConfig().getBoolean("enable_factions_channel") && pluginManager.isPluginEnabled("Factions")) { try { - MPlayer mplayer = MPlayer.get(mcp.getPlayer()); - MPlayer mplayerp = MPlayer.get(p.getPlayer()); if(eventChannel.getName().equalsIgnoreCase("Faction")) { + MPlayer mplayer = MPlayer.get(mcp.getPlayer()); + MPlayer mplayerp = MPlayer.get(p.getPlayer()); if(!mplayer.hasFaction()) { recipients.remove(p.getPlayer()); recipientCount--; From 2ceb87f28e91ca351ad797fd74e5f7cb5e335e6c Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 22:20:05 -0400 Subject: [PATCH 05/35] Update plugin version to 2.18.6 --- MineverseChat/bungee.yml | 2 +- MineverseChat/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 71d5afc..6b47716 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.18.5 +version: 2.18.6 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 067d121..eec92b8 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.18.5 +version: 2.18.6 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From 57c791e997cef56a879dfce7a92fce0beae22bbb Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 22:31:22 -0400 Subject: [PATCH 06/35] Added API method for checking if URL's should be underlined in chat --- MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index e9ef53a..e3f21fa 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -143,7 +143,7 @@ public class Format { String https = ""; if(ChatColor.stripColor(link).contains("https://")) https = "s"; - temp += convertToJsonColors(lastCode + link, ",\"underlined\":\"" + plugin.getConfig().getBoolean("underlineurls", true) + "\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"http" + https + "://" + ChatColor.stripColor(link.replace("http://", "").replace("https://", "")) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + convertToJsonColors(lastCode + link) + "]}}") + ","; + temp += convertToJsonColors(lastCode + link, ",\"underlined\":\"" + underlineURLs() + "\",\"clickEvent\":{\"action\":\"open_url\",\"value\":\"http" + https + "://" + ChatColor.stripColor(link.replace("http://", "").replace("https://", "")) + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + convertToJsonColors(lastCode + link) + "]}}") + ","; lastCode = getLastCode(lastCode + link); remaining = remaining.substring(indexLinkEnd); } @@ -478,4 +478,8 @@ public class Format { public static String escapeAllRegex(String input) { return input.replace("[", "\\[").replace("]", "\\]").replace("{", "\\{").replace("}", "\\}").replace("(", "\\(").replace(")", "\\)").replace("|", "\\|").replace("+", "\\+").replace("*", "\\*"); } + + public static boolean underlineURLs() { + return plugin.getConfig().getBoolean("underlineurls", true); + } } \ No newline at end of file From 9e2163b443e7067fd7fea86701a6d1611b72e509 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 22:51:03 -0400 Subject: [PATCH 07/35] Commented out PlaceholderAPI initialize message. Creates false panic --- .../mineverse/Aust1n46/chat/MineverseChat.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index 104c067..7b170f0 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -406,13 +406,14 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { if(pluginManager.isPluginEnabled("PlaceholderAPI")) { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Enabling PlaceholderAPI Hook")); } - boolean hooked = PlaceholderAPI.registerPlaceholderHook("venturechat", new VentureChatPlaceholders()); - if(hooked) { - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Added placeholders to PlaceholderAPI!")); - } - else { - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cPlaceholders were not added to PlaceholderAPI!")); - } + /*boolean hooked = */PlaceholderAPI.registerPlaceholderHook("venturechat", new VentureChatPlaceholders()); + //Tired of people reporting this non issue... +// if(hooked) { +// Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Added placeholders to PlaceholderAPI!")); +// } +// else { +// Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cPlaceholders were not added to PlaceholderAPI!")); +// } Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data")); BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); scheduler.scheduleSyncRepeatingTask(this, new Runnable() { From 2ddf474748efb953cd92f35381d2cec403b52de5 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 23:38:00 -0400 Subject: [PATCH 08/35] Renamed /nick -> /setnickname to reduce conflict with Essentials --- MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java | 2 +- MineverseChat/plugin.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index 7b170f0..7e8e779 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -319,7 +319,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { commands.put("venturechat", new Venturechat("venturechat")); commands.put("mute", new Mute("mute")); commands.put("muteall", new Muteall("muteall")); - commands.put("nick", new Nick("nick")); + commands.put("setnickname", new Nick("setnickname")); commands.put("notifications", new Notifications("notifications")); commands.put("party", new Party("party")); commands.put("rangedspy", new RangedSpy("rangedspy")); diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index eec92b8..f3d780a 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -162,8 +162,8 @@ commands: aliases: [cb,vcommandblock] description: Toggle a player blocked from entering a command permission-message: You don't have - nick: - usage: /nick {player} [nickname] + setnickname: + usage: /setnickname {player} [nickname] aliases: [vnick] description: Set a players nickname permission-message: You don't have From c89cba24740b27ae3897db643fa289dcb6e7c020 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 4 May 2020 23:43:46 -0400 Subject: [PATCH 09/35] Disable BungeeCord messaging by default --- MineverseChat/config.yml | 2 +- MineverseChat/defaultconfig.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index 7b48f86..bc0d95d 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -99,7 +99,7 @@ unmuteinterval: 60 tellcolor: white # Enables or disabled BungeeCord messaging -bungeecordmessaging: true +bungeecordmessaging: false # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online vanishsupport: true diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index 78335dd..dd91c69 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -97,7 +97,7 @@ unmuteinterval: 60 tellcolor: white # Enables or disabled BungeeCord messaging -bungeecordmessaging: true +bungeecordmessaging: false # This will allow vanished players to be exempt from being sent private messages, and will act as if they aren't online vanishsupport: true From eae77c8c0054abd3d2ae73024fad98f23bb63e3f Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 19 May 2020 05:49:25 -0400 Subject: [PATCH 10/35] Fixed bug with JSON formating when removing permissions --- .../mineverse/Aust1n46/chat/api/MineverseChatPlayer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java index 9c9e30a..2d6d0b9 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java +++ b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java @@ -477,8 +477,9 @@ public class MineverseChatPlayer { } public void setJsonFormat() { + this.jsonFormat = "Default"; for(JsonFormat j : MineverseChat.jfInfo.getJsonFormats()) { - if(this.getPlayer().hasPermission("venturechat.json." + j.getName())) { + if(this.getPlayer().isPermissionSet("venturechat.json." + j.getName())) { if(MineverseChat.jfInfo.getJsonFormat(this.getJsonFormat()).getPriority() > j.getPriority()) { this.jsonFormat = j.getName(); } From da57e217656e85ae9e5d044c93042b992fc92992 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 19 May 2020 05:49:38 -0400 Subject: [PATCH 11/35] Update plugin version --- MineverseChat/bungee.yml | 2 +- MineverseChat/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 6b47716..42fe346 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.18.6 +version: 2.18.7 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index f3d780a..4a223ba 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.18.6 +version: 2.18.7 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From affbbf3e2b4f2f302f649747442b5fa2b0e70720 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 19 May 2020 05:50:22 -0400 Subject: [PATCH 12/35] Check using list of online wrappers for better efficiency --- .../mineverse/Aust1n46/chat/listeners/PacketListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java index a592da0..7eae550 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/PacketListener.java @@ -28,7 +28,7 @@ public class PacketListener extends PacketAdapter { return; } - MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer()); + MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); if(mcp == null) { return; } From fc0b1ddcd1c34de0784a659758746506177f9ef8 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Thu, 18 Jun 2020 18:55:37 -0500 Subject: [PATCH 13/35] Ignore new TODO.txt file --- MineverseChat/.gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 MineverseChat/.gitignore diff --git a/MineverseChat/.gitignore b/MineverseChat/.gitignore new file mode 100644 index 0000000..53d4d85 --- /dev/null +++ b/MineverseChat/.gitignore @@ -0,0 +1 @@ +/TODO.txt From 7a416257adf28800efe0e3075d4723b9f2d4ffb8 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 22 Jun 2020 02:28:03 -0500 Subject: [PATCH 14/35] Update VentureChat to have distanceIsCube option to allow local chat to limit chat in the Y dimension. --- MineverseChat/config.yml | 8 ++++ MineverseChat/defaultconfig.yml | 8 ++++ .../chat/VentureChatPlaceholders.java | 2 + .../Aust1n46/chat/channel/ChatChannel.java | 12 +++++- .../Aust1n46/chat/command/chat/Chwho.java | 7 ++-- .../Aust1n46/chat/command/chat/Config.java | 39 +++++++++++++++++-- .../Aust1n46/chat/listeners/ChatListener.java | 16 ++++---- 7 files changed, 77 insertions(+), 15 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index bc0d95d..5b3c863 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -306,6 +306,7 @@ channels: autojoin: true default: true distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: g @@ -319,6 +320,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: st @@ -332,6 +334,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: a @@ -345,6 +348,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: d @@ -358,6 +362,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: h @@ -371,6 +376,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: t @@ -384,6 +390,7 @@ channels: autojoin: true default: false distance: 230 + distanceIsCube: false cooldown: 0 bungeecord: false alias: l @@ -397,6 +404,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 60 bungeecord: true alias: n diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index dd91c69..d5d1370 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -304,6 +304,7 @@ channels: autojoin: true default: true distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: g @@ -317,6 +318,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: st @@ -330,6 +332,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: a @@ -343,6 +346,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: d @@ -356,6 +360,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: h @@ -369,6 +374,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 0 bungeecord: false alias: t @@ -382,6 +388,7 @@ channels: autojoin: true default: false distance: 230 + distanceIsCube: false cooldown: 0 bungeecord: false alias: l @@ -395,6 +402,7 @@ channels: autojoin: true default: false distance: 0 + distanceIsCube: false cooldown: 60 bungeecord: true alias: n diff --git a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java index 51e5227..a2bb5cf 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java +++ b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java @@ -43,6 +43,8 @@ public class VentureChatPlaceholders extends PlaceholderHook { return mcp.getCurrentChannel().getCooldown() + ""; case "channel_distance": return mcp.getCurrentChannel().getDistance() + ""; + case "channel_distance_is_cube": + return mcp.getCurrentChannel().getDistanceIsCube() ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse(); } } return null; diff --git a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java index 0481dc3..2e00ad7 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -20,6 +20,7 @@ public class ChatChannel { private Boolean autojoin; private String alias; private Double distance; + private Boolean distanceIsCube; private Boolean filter; private Boolean bungee; private String format; @@ -41,6 +42,7 @@ public class ChatChannel { Boolean _defaultchannel = false; String _alias = ""; Double _distance = (double) 0; + Boolean _distanceIsCube = false; Boolean _autojoin = false; Boolean _bungee = false; String _format = ""; @@ -69,9 +71,10 @@ public class ChatChannel { _defaultchannel = (Boolean) cs.getBoolean(key + ".default", false); _alias = (String) cs.getString(key + ".alias", "None"); _distance = (Double) cs.getDouble(key + ".distance", (double) 0); + _distanceIsCube = (Boolean) cs.getBoolean(key + ".distanceIsCube", false); _cooldown = (int) cs.getInt(key + ".cooldown", 0); _autojoin = (Boolean) cs.getBoolean(key + ".autojoin", false); - ChatChannel c = new ChatChannel(_name, _color, _chatcolor, _permission, _mutable, _filter, _defaultchannel, _alias, _distance, _autojoin, _bungee, _cooldown, _format); + ChatChannel c = new ChatChannel(_name, _color, _chatcolor, _permission, _mutable, _filter, _defaultchannel, _alias, _distance, _distanceIsCube, _autojoin, _bungee, _cooldown, _format); channels[x++] = c; if(_defaultchannel) { defaultChatChannel = c; @@ -115,7 +118,7 @@ public class ChatChannel { return joinlist; } - public ChatChannel(String _Name, String _color, String _chatcolor, String _Permission, Boolean _mutable, Boolean _filter, Boolean _defaultchannel, String _alias, Double _distance, Boolean _autojoin, Boolean _bungee, int _cooldown, String _format) { + public ChatChannel(String _Name, String _color, String _chatcolor, String _Permission, Boolean _mutable, Boolean _filter, Boolean _defaultchannel, String _alias, Double _distance, Boolean _distanceIsCube, Boolean _autojoin, Boolean _bungee, int _cooldown, String _format) { name = _Name; permission = "venturechat." + _Permission; mutable = _mutable; @@ -124,6 +127,7 @@ public class ChatChannel { setDefaultChannel(_defaultchannel); setAlias(_alias); setDistance(_distance); + setDistanceIsCube(_distanceIsCube); setFilter(_filter); setAutojoin(_autojoin); setBungee(_bungee); @@ -215,6 +219,10 @@ public class ChatChannel { this.distance = distance; } + public void setDistanceIsCube(Boolean distanceIsCube) { this.distanceIsCube = distanceIsCube; } + + public Boolean getDistanceIsCube() { return distanceIsCube; } + public Boolean hasDistance() { return distance > 0; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java index b7edd9a..cc67d3f 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -72,7 +72,7 @@ public class Chwho extends MineverseCommand { } } if(channel.hasDistance() && sender instanceof Player) { - if(!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) { + if(!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance(), channel.getDistanceIsCube())) { continue; } } @@ -203,8 +203,9 @@ public class Chwho extends MineverseCommand { } } - private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) { + private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance, boolean DistanceIsCube) { Double chDistance = Distance; + boolean chDistanceIsCube = DistanceIsCube; Location locreceip; Location locsender = p1.getLocation(); Location diff; @@ -212,7 +213,7 @@ public class Chwho extends MineverseCommand { locreceip = p2.getLocation(); if(locreceip.getWorld() == p1.getWorld()) { diff = locreceip.subtract(locsender); - if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance) { + if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || (chDistanceIsCube && Math.abs(diff.getY()) > chDistance)) { return false; } } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java index f0386ba..b51e5ec 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java @@ -1049,6 +1049,38 @@ public class Config extends MineverseCommand { break; } } + case "distanceIsCube": { + try { + switch(args[3]) { + case "true": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distanceIsCube", true); + sender.sendMessage(ChatColor.GREEN + "distanceIsCube: has been set to true"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + case "false": { + plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distanceIsCube", false); + sender.sendMessage(ChatColor.GREEN + "distanceIsCube: has been set to false"); + plugin.saveConfig(); + plugin.reloadConfig(); + Bukkit.getPluginManager().disablePlugin(plugin); + Bukkit.getPluginManager().enablePlugin(plugin); + break; + } + default: { + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] distanceIsCube [true/false]"); + break; + } + } + } + catch(Exception e) { + sender.sendMessage(ChatColor.GREEN + "distanceIsCube: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("distanceIsCube")); + } + break; + } case "cooldown": { try { if(Integer.parseInt(args[3]) >= 0) { @@ -1125,13 +1157,13 @@ public class Config extends MineverseCommand { } } default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format]"); break; } } } catch(Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format]"); } break; } @@ -1150,6 +1182,7 @@ public class Config extends MineverseCommand { plugin.getConfig().getConfigurationSection("channels." + args[2]).set("default", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("autojoin", true); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distance", 0.0); + plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distanceIsCube", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("cooldown", 0); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("bungeecord", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("servername", false); @@ -1218,7 +1251,7 @@ public class Config extends MineverseCommand { sender.sendMessage(ChatColor.GREEN + "/config broadcastafk [true/false]"); sender.sendMessage(ChatColor.GREEN + "/config formatcleaner [true/false]"); sender.sendMessage(ChatColor.GREEN + "/config broadcast [color, permissions, displaytag]"); - sender.sendMessage(ChatColor.GREEN + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, cooldown, bungeecord, format, create , delete]"); + sender.sendMessage(ChatColor.GREEN + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format, create , delete]"); sender.sendMessage(ChatColor.GREEN + "/config help"); break; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index a86db61..cc95f7f 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -43,7 +43,7 @@ public class ChatListener implements Listener { } // this event isn't always asynchronous even though the event's name starts with "Async" - // blame md_5 for that one (•_•) + // blame md_5 for that one (�_�) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event) { event.setCancelled(true); @@ -90,16 +90,16 @@ public class ChatListener implements Listener { mcp.setConversation(null); } else { - if(tp.getIgnores().contains(mcp.getUUID())) { + if(tp.getIgnores().contains(mcp.getUUID())) { mcp.getPlayer().sendMessage(LocalizedMessage.IGNORING_MESSAGE.toString() .replace("{player}", tp.getName())); - event.setCancelled(true); + event.setCancelled(true); return; } - if(!tp.getMessageToggle()) { + if(!tp.getMessageToggle()) { mcp.getPlayer().sendMessage(LocalizedMessage.BLOCKING_MESSAGE.toString() .replace("{player}", tp.getName())); - event.setCancelled(true); + event.setCancelled(true); return; } String filtered = chat; @@ -234,6 +234,7 @@ public class ChatListener implements Listener { return; } Double chDistance = (double) 0; + boolean chDistanceIsCube = false; int chCooldown = 0; String curColor = ""; if(eventChannel.hasPermission() && !mcp.getPlayer().hasPermission(eventChannel.getPermission())) { @@ -321,6 +322,7 @@ public class ChatListener implements Listener { if(eventChannel.hasDistance()) { chDistance = eventChannel.getDistance(); + chDistanceIsCube = eventChannel.getDistanceIsCube(); } format = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format"))); @@ -422,7 +424,7 @@ public class ChatListener implements Listener { locreceip = p.getPlayer().getLocation(); if(locreceip.getWorld() == mcp.getPlayer().getWorld()) { diff = locreceip.subtract(locsender); - if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance) { + if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || (chDistanceIsCube && Math.abs(diff.getY()) > chDistance)) { recipients.remove(p.getPlayer()); recipientCount--; continue; @@ -464,7 +466,7 @@ public class ChatListener implements Listener { String globalJSON = Format.convertToJson(mcp, format, chat); String consoleChat = format + chat; - String message = consoleChat.replaceAll("(§([a-z0-9]))", ""); + String message = consoleChat.replaceAll("(�([a-z0-9]))", ""); int hash = message.hashCode(); //Create VentureChatEvent From 31ddc0791c5acdf1a50afb0aa60e21b8da7596e7 Mon Sep 17 00:00:00 2001 From: Joseph Warner Date: Mon, 22 Jun 2020 16:19:02 -0500 Subject: [PATCH 15/35] Revert most changes and make VentureChat distance always based on a cube shape. --- MineverseChat/config.yml | 8 ---- MineverseChat/defaultconfig.yml | 8 ---- .../chat/VentureChatPlaceholders.java | 2 - .../Aust1n46/chat/channel/ChatChannel.java | 12 +----- .../Aust1n46/chat/command/chat/Chwho.java | 7 ++-- .../Aust1n46/chat/command/chat/Config.java | 39 ++----------------- .../Aust1n46/chat/listeners/ChatListener.java | 4 +- 7 files changed, 9 insertions(+), 71 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index 5b3c863..bc0d95d 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -306,7 +306,6 @@ channels: autojoin: true default: true distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: g @@ -320,7 +319,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: st @@ -334,7 +332,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: a @@ -348,7 +345,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: d @@ -362,7 +358,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: h @@ -376,7 +371,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: t @@ -390,7 +384,6 @@ channels: autojoin: true default: false distance: 230 - distanceIsCube: false cooldown: 0 bungeecord: false alias: l @@ -404,7 +397,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 60 bungeecord: true alias: n diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index d5d1370..dd91c69 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -304,7 +304,6 @@ channels: autojoin: true default: true distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: g @@ -318,7 +317,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: st @@ -332,7 +330,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: a @@ -346,7 +343,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: d @@ -360,7 +356,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: h @@ -374,7 +369,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 0 bungeecord: false alias: t @@ -388,7 +382,6 @@ channels: autojoin: true default: false distance: 230 - distanceIsCube: false cooldown: 0 bungeecord: false alias: l @@ -402,7 +395,6 @@ channels: autojoin: true default: false distance: 0 - distanceIsCube: false cooldown: 60 bungeecord: true alias: n diff --git a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java index a2bb5cf..51e5227 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java +++ b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java @@ -43,8 +43,6 @@ public class VentureChatPlaceholders extends PlaceholderHook { return mcp.getCurrentChannel().getCooldown() + ""; case "channel_distance": return mcp.getCurrentChannel().getDistance() + ""; - case "channel_distance_is_cube": - return mcp.getCurrentChannel().getDistanceIsCube() ? PlaceholderAPIPlugin.booleanTrue() : PlaceholderAPIPlugin.booleanFalse(); } } return null; diff --git a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java index 2e00ad7..0481dc3 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -20,7 +20,6 @@ public class ChatChannel { private Boolean autojoin; private String alias; private Double distance; - private Boolean distanceIsCube; private Boolean filter; private Boolean bungee; private String format; @@ -42,7 +41,6 @@ public class ChatChannel { Boolean _defaultchannel = false; String _alias = ""; Double _distance = (double) 0; - Boolean _distanceIsCube = false; Boolean _autojoin = false; Boolean _bungee = false; String _format = ""; @@ -71,10 +69,9 @@ public class ChatChannel { _defaultchannel = (Boolean) cs.getBoolean(key + ".default", false); _alias = (String) cs.getString(key + ".alias", "None"); _distance = (Double) cs.getDouble(key + ".distance", (double) 0); - _distanceIsCube = (Boolean) cs.getBoolean(key + ".distanceIsCube", false); _cooldown = (int) cs.getInt(key + ".cooldown", 0); _autojoin = (Boolean) cs.getBoolean(key + ".autojoin", false); - ChatChannel c = new ChatChannel(_name, _color, _chatcolor, _permission, _mutable, _filter, _defaultchannel, _alias, _distance, _distanceIsCube, _autojoin, _bungee, _cooldown, _format); + ChatChannel c = new ChatChannel(_name, _color, _chatcolor, _permission, _mutable, _filter, _defaultchannel, _alias, _distance, _autojoin, _bungee, _cooldown, _format); channels[x++] = c; if(_defaultchannel) { defaultChatChannel = c; @@ -118,7 +115,7 @@ public class ChatChannel { return joinlist; } - public ChatChannel(String _Name, String _color, String _chatcolor, String _Permission, Boolean _mutable, Boolean _filter, Boolean _defaultchannel, String _alias, Double _distance, Boolean _distanceIsCube, Boolean _autojoin, Boolean _bungee, int _cooldown, String _format) { + public ChatChannel(String _Name, String _color, String _chatcolor, String _Permission, Boolean _mutable, Boolean _filter, Boolean _defaultchannel, String _alias, Double _distance, Boolean _autojoin, Boolean _bungee, int _cooldown, String _format) { name = _Name; permission = "venturechat." + _Permission; mutable = _mutable; @@ -127,7 +124,6 @@ public class ChatChannel { setDefaultChannel(_defaultchannel); setAlias(_alias); setDistance(_distance); - setDistanceIsCube(_distanceIsCube); setFilter(_filter); setAutojoin(_autojoin); setBungee(_bungee); @@ -219,10 +215,6 @@ public class ChatChannel { this.distance = distance; } - public void setDistanceIsCube(Boolean distanceIsCube) { this.distanceIsCube = distanceIsCube; } - - public Boolean getDistanceIsCube() { return distanceIsCube; } - public Boolean hasDistance() { return distance > 0; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java index cc67d3f..c83b94a 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -72,7 +72,7 @@ public class Chwho extends MineverseCommand { } } if(channel.hasDistance() && sender instanceof Player) { - if(!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance(), channel.getDistanceIsCube())) { + if(!this.isPlayerWithinDistance((Player) sender, p.getPlayer(), channel.getDistance())) { continue; } } @@ -203,9 +203,8 @@ public class Chwho extends MineverseCommand { } } - private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance, boolean DistanceIsCube) { + private boolean isPlayerWithinDistance(Player p1, Player p2, double Distance) { Double chDistance = Distance; - boolean chDistanceIsCube = DistanceIsCube; Location locreceip; Location locsender = p1.getLocation(); Location diff; @@ -213,7 +212,7 @@ public class Chwho extends MineverseCommand { locreceip = p2.getLocation(); if(locreceip.getWorld() == p1.getWorld()) { diff = locreceip.subtract(locsender); - if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || (chDistanceIsCube && Math.abs(diff.getY()) > chDistance)) { + if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) { return false; } } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java index b51e5ec..f0386ba 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Config.java @@ -1049,38 +1049,6 @@ public class Config extends MineverseCommand { break; } } - case "distanceIsCube": { - try { - switch(args[3]) { - case "true": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distanceIsCube", true); - sender.sendMessage(ChatColor.GREEN + "distanceIsCube: has been set to true"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - case "false": { - plugin.getConfig().getConfigurationSection("channels." + args[1]).set("distanceIsCube", false); - sender.sendMessage(ChatColor.GREEN + "distanceIsCube: has been set to false"); - plugin.saveConfig(); - plugin.reloadConfig(); - Bukkit.getPluginManager().disablePlugin(plugin); - Bukkit.getPluginManager().enablePlugin(plugin); - break; - } - default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels [channel] distanceIsCube [true/false]"); - break; - } - } - } - catch(Exception e) { - sender.sendMessage(ChatColor.GREEN + "distanceIsCube: " + plugin.getConfig().getConfigurationSection("channels." + args[1]).getBoolean("distanceIsCube")); - } - break; - } case "cooldown": { try { if(Integer.parseInt(args[3]) >= 0) { @@ -1157,13 +1125,13 @@ public class Config extends MineverseCommand { } } default: { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format]"); + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); break; } } } catch(Exception e) { - sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format]"); + sender.sendMessage(ChatColor.RED + "Invalid arguments, /config channels " + args[1] + " [color, chatcolor, mutable, alias, default, autojoin, distance, cooldown, bungeecord, format]"); } break; } @@ -1182,7 +1150,6 @@ public class Config extends MineverseCommand { plugin.getConfig().getConfigurationSection("channels." + args[2]).set("default", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("autojoin", true); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distance", 0.0); - plugin.getConfig().getConfigurationSection("channels." + args[2]).set("distanceIsCube", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("cooldown", 0); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("bungeecord", false); plugin.getConfig().getConfigurationSection("channels." + args[2]).set("servername", false); @@ -1251,7 +1218,7 @@ public class Config extends MineverseCommand { sender.sendMessage(ChatColor.GREEN + "/config broadcastafk [true/false]"); sender.sendMessage(ChatColor.GREEN + "/config formatcleaner [true/false]"); sender.sendMessage(ChatColor.GREEN + "/config broadcast [color, permissions, displaytag]"); - sender.sendMessage(ChatColor.GREEN + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, distanceIsCube, cooldown, bungeecord, format, create , delete]"); + sender.sendMessage(ChatColor.GREEN + "/config channels [channel] [chatcolor, mutable, permissions, alias, default, autojoin, distance, cooldown, bungeecord, format, create , delete]"); sender.sendMessage(ChatColor.GREEN + "/config help"); break; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index cc95f7f..2040e04 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -234,7 +234,6 @@ public class ChatListener implements Listener { return; } Double chDistance = (double) 0; - boolean chDistanceIsCube = false; int chCooldown = 0; String curColor = ""; if(eventChannel.hasPermission() && !mcp.getPlayer().hasPermission(eventChannel.getPermission())) { @@ -322,7 +321,6 @@ public class ChatListener implements Listener { if(eventChannel.hasDistance()) { chDistance = eventChannel.getDistance(); - chDistanceIsCube = eventChannel.getDistanceIsCube(); } format = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format"))); @@ -424,7 +422,7 @@ public class ChatListener implements Listener { locreceip = p.getPlayer().getLocation(); if(locreceip.getWorld() == mcp.getPlayer().getWorld()) { diff = locreceip.subtract(locsender); - if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || (chDistanceIsCube && Math.abs(diff.getY()) > chDistance)) { + if(Math.abs(diff.getX()) > chDistance || Math.abs(diff.getZ()) > chDistance || Math.abs(diff.getY()) > chDistance) { recipients.remove(p.getPlayer()); recipientCount--; continue; From d8b35fdfb995c261cfe548b6ae5f1815d672e6f0 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Mon, 22 Jun 2020 18:12:14 -0500 Subject: [PATCH 16/35] Fix mangled special characters --- .../mineverse/Aust1n46/chat/listeners/ChatListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index 2040e04..ee93e67 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -43,7 +43,7 @@ public class ChatListener implements Listener { } // this event isn't always asynchronous even though the event's name starts with "Async" - // blame md_5 for that one (�_�) + // blame md_5 for that one (•_•) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event) { event.setCancelled(true); @@ -464,7 +464,7 @@ public class ChatListener implements Listener { String globalJSON = Format.convertToJson(mcp, format, chat); String consoleChat = format + chat; - String message = consoleChat.replaceAll("(�([a-z0-9]))", ""); + String message = consoleChat.replaceAll("(§([a-z0-9]))", ""); int hash = message.hashCode(); //Create VentureChatEvent From 012ecda0ba0c2b020fac401c93ccc6deb3ef025e Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 23 Jun 2020 19:26:43 -0500 Subject: [PATCH 17/35] Added unit testing framework and first set of tests to VentureChat --- .classpath | 26 ----- .gitignore | 3 +- .../Aust1n46/chat/utilities/FormatTest.java | 103 ++++++++++++++++++ 3 files changed, 105 insertions(+), 27 deletions(-) delete mode 100644 .classpath create mode 100644 test/mineverse/Aust1n46/chat/utilities/FormatTest.java diff --git a/.classpath b/.classpath deleted file mode 100644 index 1a530da..0000000 --- a/.classpath +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.gitignore b/.gitignore index ae3c172..d9239ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/bin/ +/bin/ +/.classpath diff --git a/test/mineverse/Aust1n46/chat/utilities/FormatTest.java b/test/mineverse/Aust1n46/chat/utilities/FormatTest.java new file mode 100644 index 0000000..7221749 --- /dev/null +++ b/test/mineverse/Aust1n46/chat/utilities/FormatTest.java @@ -0,0 +1,103 @@ +package mineverse.Aust1n46.chat.utilities; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.configuration.file.FileConfiguration; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import mineverse.Aust1n46.chat.MineverseChat; + +@RunWith(PowerMockRunner.class) +@PrepareForTest( { MineverseChat.class }) +public class FormatTest { + + private MineverseChat mockPlugin; + private FileConfiguration mockConfig; + + private List filters; + + @Before + public void setUp() { + filters = new ArrayList(); + filters.add("ass,donut"); + + mockPlugin = Mockito.mock(MineverseChat.class); + mockConfig = Mockito.mock(FileConfiguration.class); + + PowerMockito.mockStatic(MineverseChat.class); + PowerMockito.when(MineverseChat.getInstance()).thenReturn(mockPlugin); + Mockito.when(mockPlugin.getConfig()).thenReturn(mockConfig); + Mockito.when(mockConfig.getStringList("filters")).thenReturn(filters); + } + + @After + public void tearDown() { + mockPlugin = null; + mockConfig = null; + filters = new ArrayList(); + } + + @Test + public void testGetLastCodeSingleColor() { + String input = "§cHello"; + String expectedResult = "§c"; + + String result = Format.getLastCode(input); + + Assert.assertEquals(expectedResult, result); + } + + @Test + public void testGetLastCodeColorAfterFormat() { + String input = "§o§cHello"; + String expectedResult = "§c"; + + String result = Format.getLastCode(input); + + Assert.assertEquals(expectedResult, result); + } + + @Test + public void testGetLastCodeColorBeforeFormat() { + String input = "§c§oHello"; + String expectedResult = "§c§o"; + + String result = Format.getLastCode(input); + + Assert.assertEquals(expectedResult, result); + } + + @Test + public void testFilterChat() { + String test = "I am an ass"; + String expectedResult = "I am an donut"; + + String result = Format.FilterChat(test); + Assert.assertEquals(expectedResult, result); + } + + @Test + public void testIsValidColor() { + String color = "red"; + + boolean result = Format.isValidColor(color); + Assert.assertTrue(result); + } + + @Test + public void testIsInvalidColor() { + String color = "randomString"; + + boolean result = Format.isValidColor(color); + Assert.assertFalse(result); + } +} From 35e2567d559a0c2ee92ab396cc2c5bee8115201a Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Fri, 26 Jun 2020 20:25:19 -0500 Subject: [PATCH 18/35] Remove deprecated tellcolor section --- MineverseChat/config.yml | 3 --- MineverseChat/defaultconfig.yml | 3 --- 2 files changed, 6 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index bc0d95d..7b87648 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -95,9 +95,6 @@ saveinterval: 30 # The time in seconds between each check to remove timed mutes unmuteinterval: 60 -# The color of the private messages -tellcolor: white - # Enables or disabled BungeeCord messaging bungeecordmessaging: false diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index dd91c69..5a46f74 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -93,9 +93,6 @@ saveinterval: 30 # The time in seconds between each check to remove timed mutes unmuteinterval: 60 -# The color of the private messages -tellcolor: white - # Enables or disabled BungeeCord messaging bungeecordmessaging: false From 4c6d76509dd9915d60eb8595460832c1593fd0b0 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 27 Jun 2020 13:30:50 -0500 Subject: [PATCH 19/35] Updated to support 1.16 hex color codes --- MineverseChat/bungee.yml | 2 +- MineverseChat/config.yml | 13 ++ MineverseChat/defaultconfig.yml | 13 ++ .../Aust1n46/chat/MineverseChat.java | 4 +- .../Aust1n46/chat/channel/ChatChannel.java | 32 +++- .../Aust1n46/chat/command/chat/Channel.java | 3 +- .../chat/command/chat/Channelinfo.java | 23 +-- .../Aust1n46/chat/command/chat/Chatinfo.java | 8 +- .../Aust1n46/chat/command/chat/Chlist.java | 5 +- .../Aust1n46/chat/command/chat/Chwho.java | 2 +- .../chat/command/chat/Kickchannel.java | 4 +- .../Aust1n46/chat/command/chat/Leave.java | 2 +- .../Aust1n46/chat/command/chat/Listen.java | 3 +- .../chat/command/chat/Setchannel.java | 7 +- .../chat/command/chat/VentureChatGui.java | 9 +- .../Aust1n46/chat/command/mute/Mute.java | 17 +- .../Aust1n46/chat/command/mute/Unmute.java | 7 +- .../Aust1n46/chat/listeners/ChatListener.java | 8 +- .../chat/listeners/CommandListener.java | 2 +- .../Aust1n46/chat/utilities/Format.java | 160 ++++++++++++------ .../chat/versions/VersionHandler.java | 4 + MineverseChat/plugin.yml | 2 +- 22 files changed, 213 insertions(+), 117 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 42fe346..bf4fc2b 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.18.7 +version: 2.19.0 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index 7b87648..f060141 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -295,6 +295,19 @@ enable_factions_channel: false # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none channels: + HexExample: + color: '#ff0000' + chatcolor: '#ff0000' + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: false + alias: he + permissions: None + format: '&f[&x&f&f&0&0&0&0Hex&f] {vault_prefix} {player_displayname}&x&f&f&0&0&0&0:' Global: color: dark_green chatcolor: dark_green diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index 5a46f74..e51b558 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -293,6 +293,19 @@ enable_factions_channel: false # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none channels: + HexExample: + color: '#ff0000' + chatcolor: '#ff0000' + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: false + alias: he + permissions: None + format: '&f[&x&f&f&0&0&0&0Hex&f] {vault_prefix} {player_displayname}&x&f&f&0&0&0&0:' Global: color: dark_green chatcolor: dark_green diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index 7e8e779..6648036 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -438,7 +438,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { // System.out.println(time + " " + timemark); if(time > timemark) { p.removeMute(channel.getName()); - if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been unmuted in: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName()); + if(p.isOnline()) p.getPlayer().sendMessage(ChatColor.RED + "You have just been unmuted in: " + channel.getColor() + channel.getName()); else p.setModified(true); } } @@ -823,7 +823,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { playerList = playerList.substring(0, playerList.length() - 2); } mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString() - .replace("{channel_color}", (ChatColor.valueOf(chatchannel.getColor().toUpperCase())).toString()) + .replace("{channel_color}", chatchannel.getColor().toString()) .replace("{channel_name}", chatchannel.getName())); mcp.getPlayer().sendMessage(Format.FormatStringAll(playerList)); } diff --git a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java index 0481dc3..9030a49 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -3,6 +3,7 @@ package mineverse.Aust1n46.chat.channel; import java.util.ArrayList; import java.util.List; +import org.bukkit.ChatColor; import org.bukkit.configuration.ConfigurationSection; import mineverse.Aust1n46.chat.MineverseChat; @@ -52,14 +53,6 @@ public class ChatChannel { for(String key : cs.getKeys(false)) { _color = (String) cs.getString(key + ".color", "white"); _chatcolor = (String) cs.getString(key + ".chatcolor", "white"); - if(!(Format.isValidColor(_color))) { - plugin.getServer().getLogger().info("[" + plugin.getName() + "] " + _color + " is not valid. Changing to white."); - _color = "white"; - } - if(!(Format.isValidColor(_chatcolor)) && !_chatcolor.equalsIgnoreCase("None")) { - plugin.getServer().getLogger().info("[" + plugin.getName() + "] " + _chatcolor + " is not valid. Changing to white."); - _chatcolor = "white"; - } _name = key; _permission = (String) cs.getString(key + ".permissions", "None"); _mutable = (Boolean) cs.getBoolean(key + ".mutable", false); @@ -176,6 +169,16 @@ public class ChatChannel { } public String getColor() { + if(Format.isValidColor(color)) { + return String.valueOf(ChatColor.valueOf(color.toUpperCase())); + } + if(Format.isValidHexColor(color)) { + return Format.convertHexColorCodeToBukkitColorCode(color); + } + return Format.DEFAULT_COLOR_CODE; + } + + public String getColorRaw() { return color; } @@ -184,6 +187,19 @@ public class ChatChannel { } public String getChatColor() { + if(chatcolor.equalsIgnoreCase("None")) { + return chatcolor; + } + if(Format.isValidColor(chatcolor)) { + return String.valueOf(ChatColor.valueOf(chatcolor.toUpperCase())); + } + if(Format.isValidHexColor(chatcolor)) { + return Format.convertHexColorCodeToBukkitColorCode(chatcolor); + } + return Format.DEFAULT_COLOR_CODE; + } + + public String getChatColorRaw() { return chatcolor; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channel.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channel.java index 4c5cee7..76a7b33 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channel.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.chat; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -39,7 +38,7 @@ public class Channel extends MineverseCommand implements Listener { } ChatChannel channel = ChatChannel.getChannel(args[0]); plugin.getServer().getPluginManager().callEvent(new ChannelJoinEvent(mcp.getPlayer(), channel, LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName()))); return; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java index e5c4ac2..330ed5d 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java @@ -5,6 +5,7 @@ import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.command.MineverseCommand; +import mineverse.Aust1n46.chat.utilities.Format; public class Channelinfo extends MineverseCommand { @@ -30,27 +31,27 @@ public class Channelinfo extends MineverseCommand { return; } } - sender.sendMessage(ChatColor.GOLD + "Channel: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getName()); - sender.sendMessage(ChatColor.GOLD + "Alias: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getAlias()); - sender.sendMessage(ChatColor.GOLD + "Color: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getColor()); - sender.sendMessage(ChatColor.GOLD + "ChatColor: " + ChatColor.valueOf(chname.getChatColor().toUpperCase()) + chname.getChatColor()); - sender.sendMessage(ChatColor.GOLD + "Permission: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getPermission()); - sender.sendMessage(ChatColor.GOLD + "Autojoin: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getAutojoin()); - sender.sendMessage(ChatColor.GOLD + "Default: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.hasDistance()); + sender.sendMessage(ChatColor.GOLD + "Channel: " + chname.getColor() + chname.getName()); + sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias()); + sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); + sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw()); + sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); + sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); + sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); if(!chname.hasDistance() || chname.getBungee()) { sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A"); } else { - sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getDistance().toString()); + sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance().toString()); } if(!chname.hasCooldown()) { sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A"); } else { - sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getCooldown()); + sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown()); } - sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getBungee().toString()); - sender.sendMessage(ChatColor.GOLD + "Format: " + ChatColor.valueOf(chname.getColor().toUpperCase()) + chname.getFormat()); + sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee().toString()); + sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat()); return; } else { diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chatinfo.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chatinfo.java index 5f43a66..8cb036f 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chatinfo.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chatinfo.java @@ -34,11 +34,11 @@ public class Chatinfo extends MineverseCommand { mcp.getPlayer().sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + mcp.getName()); for(String c : mcp.getListening()) { ChatChannel channel = ChatChannel.getChannel(c); - listen += ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName() + " "; + listen += channel.getColor() + channel.getName() + " "; } for(String c : mcp.getMutes().keySet()) { ChatChannel channel = ChatChannel.getChannel(c); - mute += ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName() + " "; + mute += channel.getColor() + channel.getName() + " "; } for(String bc : mcp.getBlockedCommands()) { blockedcommands += bc + " "; @@ -95,11 +95,11 @@ public class Chatinfo extends MineverseCommand { sender.sendMessage(ChatColor.GOLD + "Player: " + ChatColor.GREEN + p.getName()); for(String c : p.getListening()) { ChatChannel channel = ChatChannel.getChannel(c); - listen += ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName() + " "; + listen += channel.getColor() + channel.getName() + " "; } for(String c : p.getMutes().keySet()) { ChatChannel channel = ChatChannel.getChannel(c); - mute += ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName() + " "; + mute += channel.getColor() + channel.getName() + " "; } for(String bc : p.getBlockedCommands()) { blockedcommands += bc + " "; diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chlist.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chlist.java index ab7eb3b..65fe61e 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chlist.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chlist.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.chat; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.channel.ChatChannel; @@ -20,14 +19,14 @@ public class Chlist extends MineverseCommand { if(chname.hasPermission()) { if(sender.hasPermission(chname.getPermission())) { sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString() - .replace("{channel_color}", (ChatColor.valueOf(chname.getColor().toUpperCase())).toString()) + .replace("{channel_color}", (chname.getColor()).toString()) .replace("{channel_name}", chname.getName()) .replace("{channel_alias}", chname.getAlias())); } } else { sender.sendMessage(LocalizedMessage.CHANNEL_LIST.toString() - .replace("{channel_color}", (ChatColor.valueOf(chname.getColor().toUpperCase())).toString()) + .replace("{channel_color}", chname.getColor().toString()) .replace("{channel_name}", chname.getName()) .replace("{channel_alias}", chname.getAlias())); } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java index c83b94a..a444fd8 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -179,7 +179,7 @@ public class Chwho extends MineverseCommand { playerlist = playerlist.substring(0, playerlist.length() - 2); } sender.sendMessage(LocalizedMessage.CHANNEL_PLAYER_LIST_HEADER.toString() - .replace("{channel_color}", (ChatColor.valueOf(channel.getColor().toUpperCase())).toString()) + .replace("{channel_color}", (channel.getColor()).toString()) .replace("{channel_name}", channel.getName())); sender.sendMessage(playerlist); return; diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannel.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannel.java index 2f32f0b..2dad23b 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Kickchannel.java @@ -38,12 +38,12 @@ public class Kickchannel extends MineverseCommand { } sender.sendMessage(LocalizedMessage.KICK_CHANNEL.toString() .replace("{player}", args[0]) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); player.removeListening(channel.getName()); if(player.isOnline()) { player.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); } else diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Leave.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Leave.java index 559cd5e..b183781 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Leave.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Leave.java @@ -34,7 +34,7 @@ public class Leave extends MineverseCommand { } mcp.removeListening(channel.getName()); mcp.getPlayer().sendMessage(LocalizedMessage.LEAVE_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(mcp.getListening().size() == 0) { mcp.addListening(ChatChannel.getDefaultChannel().getName()); diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Listen.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Listen.java index b70df93..cdb82bd 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Listen.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Listen.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.chat; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -41,7 +40,7 @@ public class Listen extends MineverseCommand { } mcp.addListening(channel.getName()); mcp.getPlayer().sendMessage(LocalizedMessage.LISTEN_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Setchannel.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Setchannel.java index 1233a8b..1c40c0c 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Setchannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Setchannel.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.chat; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; @@ -46,7 +45,7 @@ public class Setchannel extends MineverseCommand { player.removeListening(channel.getName()); sender.sendMessage(LocalizedMessage.SET_CHANNEL_PLAYER_CHANNEL_NO_PERMISSION.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } @@ -55,7 +54,7 @@ public class Setchannel extends MineverseCommand { player.setCurrentChannel(channel); sender.sendMessage(LocalizedMessage.SET_CHANNEL_SENDER.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(player.hasConversation()) { for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { @@ -74,7 +73,7 @@ public class Setchannel extends MineverseCommand { } if(player.isOnline()) player.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); else player.setModified(true); diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java index 0edd1d1..2452886 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/VentureChatGui.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -103,8 +102,8 @@ public class VentureChatGui extends MineverseCommand { skullMeta.setOwner(target.getName()); skullMeta.setDisplayName("§b" + target.getName()); List skullLore = new ArrayList(); - skullLore.add("§7Channel: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName()); - skullLore.add("§7Hash: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + hash); + skullLore.add("§7Channel: " + channel.getColor() + channel.getName()); + skullLore.add("§7Hash: " + channel.getColor() + hash); skullMeta.setLore(skullLore); skull.setItemMeta(skullMeta); skull.setDurability((short) 3); @@ -162,8 +161,8 @@ public class VentureChatGui extends MineverseCommand { skullMeta.setOwner("Scarsz"); skullMeta.setDisplayName("§bDiscord_Message"); List skullLore = new ArrayList(); - skullLore.add("§7Channel: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + channel.getName()); - skullLore.add("§7Hash: " + ChatColor.valueOf(channel.getColor().toUpperCase()) + hash); + skullLore.add("§7Channel: " + channel.getColor() + channel.getName()); + skullLore.add("§7Hash: " + channel.getColor() + hash); skullMeta.setLore(skullLore); skull.setItemMeta(skullMeta); skull.setDurability((short) 3); diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/mute/Mute.java b/MineverseChat/mineverse/Aust1n46/chat/command/mute/Mute.java index f8d6322..71ecb39 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/mute/Mute.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/mute/Mute.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.mute; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; @@ -37,7 +36,7 @@ public class Mute extends MineverseCommand { if(player.isMuted(channel.getName())) { sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } @@ -45,11 +44,11 @@ public class Mute extends MineverseCommand { player.addMute(channel.getName(), 0); sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(player.isOnline()) player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); else player.setModified(true); @@ -59,7 +58,7 @@ public class Mute extends MineverseCommand { return; } sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } @@ -72,7 +71,7 @@ public class Mute extends MineverseCommand { if(player.isMuted(channel.getName())) { sender.sendMessage(LocalizedMessage.PLAYER_ALREADY_MUTED.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } @@ -94,13 +93,13 @@ public class Mute extends MineverseCommand { keyword = "minute"; sender.sendMessage(LocalizedMessage.MUTE_PLAYER_SENDER_TIME.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName()) .replace("{time}", time + "") .replace("{units}", keyword)); if(player.isOnline()) player.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_PLAYER_TIME.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName()) .replace("{time}", time + "") .replace("{units}", keyword)); @@ -121,7 +120,7 @@ public class Mute extends MineverseCommand { return; } sender.sendMessage(LocalizedMessage.CHANNEL_CANNOT_MUTE.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/mute/Unmute.java b/MineverseChat/mineverse/Aust1n46/chat/command/mute/Unmute.java index c8b4dbb..e0a930c 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/mute/Unmute.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/mute/Unmute.java @@ -1,6 +1,5 @@ package mineverse.Aust1n46.chat.command.mute; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; @@ -36,19 +35,19 @@ public class Unmute extends MineverseCommand { if(!player.isMuted(channel.getName())) { sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); return; } player.removeMute(channel.getName()); sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(player.isOnline()) { player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString() .replace("{player}", player.getName()) - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); } else { diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index ee93e67..d82425e 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -227,7 +227,7 @@ public class ChatListener implements Listener { timedMute = " for " + remaining + " more " + keyword; } mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_MUTED.toString() - .replace("{channel_color}", ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "") + .replace("{channel_color}", eventChannel.getColor() + "") .replace("{channel_name}", eventChannel.getName()) .replace("{time}", timedMute)); mcp.setQuickChat(false); @@ -243,7 +243,7 @@ public class ChatListener implements Listener { mcp.setCurrentChannel(ChatChannel.getDefaultChannel()); return; } - curColor = eventChannel.getChatColor().toUpperCase(); + curColor = eventChannel.getChatColor(); bungee = eventChannel.getBungee(); int time = (int) (System.currentTimeMillis() / 1000); @@ -294,7 +294,7 @@ public class ChatListener implements Listener { } mcp.getSpam().get(eventChannel).set(0, 0); mcp.getPlayer().sendMessage(LocalizedMessage.MUTE_PLAYER_SPAM.toString() - .replace("{channel_color}", ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "") + .replace("{channel_color}", eventChannel.getColor() + "") .replace("{channel_name}", eventChannel.getName()) .replace("{time}", timedmute)); mcp.setQuickChat(false); @@ -459,7 +459,7 @@ public class ChatListener implements Listener { chat = Format.getLastCode(format) + chat; } else { - chat = ChatColor.valueOf(curColor) + chat; + chat = curColor + chat; } String globalJSON = Format.convertToJson(mcp, format, chat); diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java index ff3351e..6f317bd 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java @@ -150,7 +150,7 @@ public class CommandListener implements CommandExecutor, Listener { if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) { if(message.equals("/" + channel.getAlias())) { mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString() - .replace("{channel_color}", ChatColor.valueOf(channel.getColor().toUpperCase()) + "") + .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(mcp.hasConversation()) { for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index e3f21fa..887aed7 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -26,6 +26,13 @@ import mineverse.Aust1n46.chat.versions.VersionHandler; public class Format { private static MineverseChat plugin = MineverseChat.getInstance(); + public static final int LEGACY_COLOR_CODE_LENGTH = 2; + public static final int HEX_COLOR_CODE_LENGTH = 14; + public static final String DEFAULT_COLOR_CODE = String.valueOf(ChatColor.WHITE); + public static final String HEX_COLOR_CODE_PREFIX = "#"; + public static final String BUKKIT_COLOR_CODE_PREFIX = "§"; + public static final String BUKKIT_HEX_COLOR_CODE_PREFIX = "x"; + public static String convertToJson(MineverseChatPlayer sender, String format, String chat) { JsonFormat JSONformat = MineverseChat.jfInfo.getJsonFormat(sender.getJsonFormat()); String f = format.replace("\\", "\\\\").replace("\"", "\\\""); @@ -156,20 +163,44 @@ public class Format { return temp; } +// public static String getLastCode(String s) { +// String ts = ""; +// char[] ch = s.toCharArray(); +// for(int a = 0; a < s.length() - 1; a ++) { +// if(String.valueOf(ch[a + 1]).matches("[lkonmr0123456789abcdef]") && ch[a] == '§') { +// ts += String.valueOf(ch[a]) + ch[a + 1]; +// if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefr]")) { +// ts = String.valueOf(ch[a]) + ch[a + 1]; +// } +// } +// } +// return ts; +// } + public static String getLastCode(String s) { String ts = ""; char[] ch = s.toCharArray(); for(int a = 0; a < s.length() - 1; a ++) { - if(String.valueOf(ch[a + 1]).matches("[lkonmr0123456789abcdef]") && ch[a] == '§') { + if(String.valueOf(ch[a + 1]).matches("[lkomn]") && ch[a] == '§') { ts += String.valueOf(ch[a]) + ch[a + 1]; - if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefr]")) { - ts = String.valueOf(ch[a]) + ch[a + 1]; + a ++; + } + else if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefr]") && ch[a] == '§') { + ts = String.valueOf(ch[a]) + ch[a + 1]; + a ++; + } + else if(ch[a + 1] == 'x' && ch[a] == '§') { + if(ch.length > a + 13) { + if(String.valueOf(ch[a + 3]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 5]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 7]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 9]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 11]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 13]).matches("[0123456789abcdef]") && ch[a + 2] == '§' && ch[a + 4] == '§' && ch[a + 6] == '§' && ch[a + 8] == '§' && ch[a + 10] == '§' && ch[a + 12] == '§') { + ts = String.valueOf(ch[a]) + ch[a + 1] + ch[a + 2] + ch[a + 3] + ch[a + 4] + ch[a + 5] + ch[a + 6] + ch[a + 7] + ch[a + 8] + ch[a + 9] + ch[a + 10] + ch[a + 11] + ch[a + 12] + ch[a + 13]; + a += 13; + } } - } + } } return ts; } - + private static String convertToJsonColors(String s) { return convertToJsonColors(s, ""); } @@ -184,19 +215,32 @@ public class Format { boolean bold = false; boolean obfuscated = false; boolean italic = false; - boolean underlined = false; boolean strikethrough = false; + boolean underlined = false; String previousColor = ""; + int colorLength = LEGACY_COLOR_CODE_LENGTH; do { - if(remaining.length() < 2) { + if(remaining.length() < LEGACY_COLOR_CODE_LENGTH) { temp = "{\"text\":\"" + remaining + "\"},"; break; } modifier = ""; - indexColor = remaining.indexOf("§"); + indexColor = remaining.indexOf(BUKKIT_COLOR_CODE_PREFIX); previousColor = color; - color = remaining.substring(1, indexColor + 2); - if(!color.matches("[0123456789abcdef]")) { + + color = remaining.substring(1, indexColor + LEGACY_COLOR_CODE_LENGTH); + if(color.equals(BUKKIT_HEX_COLOR_CODE_PREFIX)) { + if(remaining.length() >= HEX_COLOR_CODE_LENGTH) { + color = HEX_COLOR_CODE_PREFIX + remaining.substring(LEGACY_COLOR_CODE_LENGTH, indexColor + HEX_COLOR_CODE_LENGTH).replace(BUKKIT_COLOR_CODE_PREFIX, ""); + colorLength = HEX_COLOR_CODE_LENGTH; + bold = false; + obfuscated = false; + italic = false; + strikethrough = false; + underlined = false; + } + } + else if(!color.matches("[0123456789abcdef]")) { switch(color) { case "l": { bold = true; @@ -210,20 +254,20 @@ public class Format { italic = true; break; } - case "n": { - underlined = true; - break; - } case "m": { strikethrough = true; break; } + case "n": { + underlined = true; + break; + } case "r": { bold = false; obfuscated = false; italic = false; - underlined = false; strikethrough = false; + underlined = false; color = "f"; break; } @@ -237,8 +281,8 @@ public class Format { bold = false; obfuscated = false; italic = false; - underlined = false; strikethrough = false; + underlined = false; } if(bold) modifier += ",\"bold\":\"true\""; @@ -250,12 +294,13 @@ public class Format { modifier += ",\"underlined\":\"true\""; if(strikethrough) modifier += ",\"strikethrough\":\"true\""; - remaining = remaining.substring(2); - indexNextColor = remaining.indexOf("§"); + remaining = remaining.substring(colorLength); + colorLength = LEGACY_COLOR_CODE_LENGTH; + indexNextColor = remaining.indexOf(BUKKIT_COLOR_CODE_PREFIX); if(indexNextColor == -1) { indexNextColor = remaining.length(); } - temp += "{\"text\":\"" + remaining.substring(0, indexNextColor) + "\",\"color\":\"" + hexidecimalToJsonColor(color) + "\"" + modifier + extensions + "},"; + temp += "{\"text\":\"" + remaining.substring(0, indexNextColor) + "\",\"color\":\"" + hexidecimalToJsonColorRGB(color) + "\"" + modifier + extensions + "},"; remaining = remaining.substring(indexNextColor); } while(remaining.length() > 1 && indexColor != -1); @@ -264,26 +309,28 @@ public class Format { return temp; } - private static String hexidecimalToJsonColor(String c) { - switch(c) { - case "0": return "black"; - case "1": return "dark_blue"; - case "2": return "dark_green"; - case "3": return "dark_aqua"; - case "4": return "dark_red"; - case "5": return "dark_purple"; - case "6": return "gold"; - case "7": return "gray"; - case "8": return "dark_gray"; - case "9": return "blue"; - case "a": return "green"; - case "b": return "aqua"; - case "c": return "red"; - case "d": return "light_purple"; - case "e": return "yellow"; - case "f": return "white"; + private static String hexidecimalToJsonColorRGB(String c) { + if(c.length() == 1) { + switch(c) { + case "0": return "black"; + case "1": return "dark_blue"; + case "2": return "dark_green"; + case "3": return "dark_aqua"; + case "4": return "dark_red"; + case "5": return "dark_purple"; + case "6": return "gold"; + case "7": return "gray"; + case "8": return "dark_gray"; + case "9": return "blue"; + case "a": return "green"; + case "b": return "aqua"; + case "c": return "red"; + case "d": return "light_purple"; + case "e": return "yellow"; + case "f": return "white"; + } } - return ""; + return c; } public static String convertPlainTextToJson(String s, boolean convertURL) { @@ -387,6 +434,7 @@ public class Format { } } + protected static Pattern chatHexColorPattern = Pattern.compile("(?i)&([X])"); protected static Pattern chatColorPattern = Pattern.compile("(?i)&([0-9A-F])"); protected static Pattern chatMagicPattern = Pattern.compile("(?i)&([K])"); protected static Pattern chatBoldPattern = Pattern.compile("(?i)&([L])"); @@ -398,6 +446,7 @@ public class Format { public static String FormatStringColor(String string) { String allFormated = string; allFormated = chatColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); + allFormated = chatHexColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); allFormated = allFormated.replaceAll("%", "\\%"); return allFormated; } @@ -413,6 +462,12 @@ public class Format { allFormated = allFormated.replaceAll("%", "\\%"); return allFormated; } + + public static String FormatStringAll(String string) { + String allFormated = Format.FormatString(string); + allFormated = Format.FormatStringColor(allFormated); + return allFormated; + } public static String FormatPlayerName(String playerPrefix, String playerDisplayName, String playerSuffix) { playerPrefix = chatColorPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); @@ -432,19 +487,6 @@ public class Format { playerSuffix = chatResetPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); return playerPrefix + playerDisplayName.trim() + playerSuffix; } - - public static String FormatStringAll(String string) { - String allFormated = string; - allFormated = chatColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatMagicPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatBoldPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatStrikethroughPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatUnderlinePattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatItalicPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatResetPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = allFormated.replaceAll("%", "\\%"); - return allFormated; - } public static String FilterChat(String msg) { int t = 0; @@ -465,7 +507,7 @@ public class Format { return msg; } - public static Boolean isValidColor(String color) { + public static boolean isValidColor(String color) { Boolean bFound = false; for(ChatColor bkColors : ChatColor.values()) { if(color.equalsIgnoreCase(bkColors.name())) { @@ -475,6 +517,20 @@ public class Format { return bFound; } + public static boolean isValidHexColor(String color) { + Pattern pattern = Pattern.compile("(^#[0-9a-fA-F]{6}\\b)"); + Matcher matcher = pattern.matcher(color); + return matcher.find(); + } + + public static String convertHexColorCodeToBukkitColorCode(String color) { + StringBuilder bukkitColorCode = new StringBuilder(BUKKIT_COLOR_CODE_PREFIX + BUKKIT_HEX_COLOR_CODE_PREFIX); + for(int a = 1; a < color.length(); a++) { + bukkitColorCode.append(BUKKIT_COLOR_CODE_PREFIX + color.charAt(a)); + } + return bukkitColorCode.toString(); + } + public static String escapeAllRegex(String input) { return input.replace("[", "\\[").replace("]", "\\]").replace("{", "\\{").replace("}", "\\}").replace("(", "\\(").replace(")", "\\)").replace("|", "\\|").replace("+", "\\+").replace("*", "\\*"); } diff --git a/MineverseChat/mineverse/Aust1n46/chat/versions/VersionHandler.java b/MineverseChat/mineverse/Aust1n46/chat/versions/VersionHandler.java index 37eb197..3cbe401 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/versions/VersionHandler.java +++ b/MineverseChat/mineverse/Aust1n46/chat/versions/VersionHandler.java @@ -81,6 +81,10 @@ public class VersionHandler { return Bukkit.getVersion().contains("1.15"); } + public static boolean is1_16() { + return Bukkit.getVersion().contains("1.16"); + } + public static boolean isCauldron() { return false; } diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 4a223ba..9768f24 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.18.7 +version: 2.19.0 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From 3d13056eea1320246edb8a79d5cb0b15f9bc97ff Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 27 Jun 2020 13:36:28 -0500 Subject: [PATCH 20/35] Remove old getLastCode method --- .../mineverse/Aust1n46/chat/utilities/Format.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 887aed7..531ffce 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -163,20 +163,6 @@ public class Format { return temp; } -// public static String getLastCode(String s) { -// String ts = ""; -// char[] ch = s.toCharArray(); -// for(int a = 0; a < s.length() - 1; a ++) { -// if(String.valueOf(ch[a + 1]).matches("[lkonmr0123456789abcdef]") && ch[a] == '§') { -// ts += String.valueOf(ch[a]) + ch[a + 1]; -// if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefr]")) { -// ts = String.valueOf(ch[a]) + ch[a + 1]; -// } -// } -// } -// return ts; -// } - public static String getLastCode(String s) { String ts = ""; char[] ch = s.toCharArray(); From 25116631c57115af0a3b7cb33fcddd238b34087f Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sun, 28 Jun 2020 17:23:47 -0500 Subject: [PATCH 21/35] Allow support for #ffffff hex color codes --- .../Aust1n46/chat/utilities/Format.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 531ffce..03e80cb 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -434,6 +434,8 @@ public class Format { allFormated = chatColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); allFormated = chatHexColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); allFormated = allFormated.replaceAll("%", "\\%"); + + allFormated = convertHexColorCodeStringToBukkitColorCodeString(allFormated); return allFormated; } @@ -517,6 +519,20 @@ public class Format { return bukkitColorCode.toString(); } + public static String convertHexColorCodeStringToBukkitColorCodeString(String string) { + Pattern pattern = Pattern.compile("(#[0-9a-fA-F]{6})"); + Matcher matcher = pattern.matcher(string); + while(matcher.find()) { + int indexStart = matcher.start(); + int indexEnd = matcher.end(); + String hexColor = string.substring(indexStart, indexEnd); + String bukkitColor = convertHexColorCodeToBukkitColorCode(hexColor); + string = string.replaceAll(hexColor, bukkitColor); + matcher.reset(string); + } + return string; + } + public static String escapeAllRegex(String input) { return input.replace("[", "\\[").replace("]", "\\]").replace("{", "\\{").replace("}", "\\}").replace("(", "\\(").replace(")", "\\)").replace("|", "\\|").replace("+", "\\+").replace("*", "\\*"); } From 8feeba0a788cfdd5a64b7250cb73f7487fbfcd3b Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sun, 28 Jun 2020 17:26:44 -0500 Subject: [PATCH 22/35] Updated to version 2.19.1 --- MineverseChat/bungee.yml | 2 +- MineverseChat/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index bf4fc2b..338cbdd 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.19.0 +version: 2.19.1 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 9768f24..e1f1f69 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.19.0 +version: 2.19.1 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From b0cf4d997dca32537f4add9bed5641b858da7248 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 14 Jul 2020 17:52:19 -0500 Subject: [PATCH 23/35] Added support for uppercase characters in color and hex codes --- .../Aust1n46/chat/listeners/ChatListener.java | 2 +- .../Aust1n46/chat/utilities/Format.java | 50 +++++++++++------- .../Aust1n46/chat/utilities/FormatTest.java | 51 ++++++++++++++++--- 3 files changed, 78 insertions(+), 25 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index d82425e..bc6f290 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -462,7 +462,7 @@ public class ChatListener implements Listener { chat = curColor + chat; } - String globalJSON = Format.convertToJson(mcp, format, chat); + String globalJSON = Format.convertToJson(mcp, format, chat); String consoleChat = format + chat; String message = consoleChat.replaceAll("(§([a-z0-9]))", ""); int hash = message.hashCode(); diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 03e80cb..10993f7 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -167,17 +167,17 @@ public class Format { String ts = ""; char[] ch = s.toCharArray(); for(int a = 0; a < s.length() - 1; a ++) { - if(String.valueOf(ch[a + 1]).matches("[lkomn]") && ch[a] == '§') { + if(String.valueOf(ch[a + 1]).matches("[lkomnLKOMN]") && ch[a] == '§') { ts += String.valueOf(ch[a]) + ch[a + 1]; a ++; } - else if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefr]") && ch[a] == '§') { + else if(String.valueOf(ch[a + 1]).matches("[0123456789abcdefrABCDEFR]") && ch[a] == '§') { ts = String.valueOf(ch[a]) + ch[a + 1]; a ++; } else if(ch[a + 1] == 'x' && ch[a] == '§') { if(ch.length > a + 13) { - if(String.valueOf(ch[a + 3]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 5]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 7]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 9]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 11]).matches("[0123456789abcdef]") && String.valueOf(ch[a + 13]).matches("[0123456789abcdef]") && ch[a + 2] == '§' && ch[a + 4] == '§' && ch[a + 6] == '§' && ch[a + 8] == '§' && ch[a + 10] == '§' && ch[a + 12] == '§') { + if(String.valueOf(ch[a + 3]).matches("[0123456789abcdefABCDEF]") && String.valueOf(ch[a + 5]).matches("[0123456789abcdefABCDEF]") && String.valueOf(ch[a + 7]).matches("[0123456789abcdefABCDEF]") && String.valueOf(ch[a + 9]).matches("[0123456789abcdefABCDEF]") && String.valueOf(ch[a + 11]).matches("[0123456789abcdefABCDEF]") && String.valueOf(ch[a + 13]).matches("[0123456789abcdefABCDEF]") && ch[a + 2] == '§' && ch[a + 4] == '§' && ch[a + 6] == '§' && ch[a + 8] == '§' && ch[a + 10] == '§' && ch[a + 12] == '§') { ts = String.valueOf(ch[a]) + ch[a + 1] + ch[a + 2] + ch[a + 3] + ch[a + 4] + ch[a + 5] + ch[a + 6] + ch[a + 7] + ch[a + 8] + ch[a + 9] + ch[a + 10] + ch[a + 11] + ch[a + 12] + ch[a + 13]; a += 13; } @@ -226,29 +226,35 @@ public class Format { underlined = false; } } - else if(!color.matches("[0123456789abcdef]")) { + else if(!color.matches("[0123456789abcdefABCDEF]")) { switch(color) { - case "l": { + case "l": + case "L": { bold = true; break; } - case "k": { + case "k": + case "K": { obfuscated = true; break; } - case "o": { + case "o": + case "O": { italic = true; break; } - case "m": { + case "m": + case "M": { strikethrough = true; break; } - case "n": { + case "n": + case "N": { underlined = true; break; } - case "r": { + case "r": + case "R": { bold = false; obfuscated = false; italic = false; @@ -308,15 +314,25 @@ public class Format { case "7": return "gray"; case "8": return "dark_gray"; case "9": return "blue"; - case "a": return "green"; - case "b": return "aqua"; - case "c": return "red"; - case "d": return "light_purple"; - case "e": return "yellow"; - case "f": return "white"; + case "a": + case "A": return "green"; + case "b": + case "B": return "aqua"; + case "c": + case "C": return "red"; + case "d": + case "D": return "light_purple"; + case "e": + case "E": return "yellow"; + case "f": + case "F": return "white"; + default: return "white"; } } - return c; + if(isValidHexColor(c)) { + return c; + } + return "white"; } public static String convertPlainTextToJson(String s, boolean convertURL) { diff --git a/test/mineverse/Aust1n46/chat/utilities/FormatTest.java b/test/mineverse/Aust1n46/chat/utilities/FormatTest.java index 7221749..4517226 100644 --- a/test/mineverse/Aust1n46/chat/utilities/FormatTest.java +++ b/test/mineverse/Aust1n46/chat/utilities/FormatTest.java @@ -1,11 +1,14 @@ package mineverse.Aust1n46.chat.utilities; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.util.ArrayList; import java.util.List; import org.bukkit.configuration.file.FileConfiguration; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -53,7 +56,7 @@ public class FormatTest { String result = Format.getLastCode(input); - Assert.assertEquals(expectedResult, result); + assertEquals(expectedResult, result); } @Test @@ -63,7 +66,7 @@ public class FormatTest { String result = Format.getLastCode(input); - Assert.assertEquals(expectedResult, result); + assertEquals(expectedResult, result); } @Test @@ -73,7 +76,7 @@ public class FormatTest { String result = Format.getLastCode(input); - Assert.assertEquals(expectedResult, result); + assertEquals(expectedResult, result); } @Test @@ -82,7 +85,7 @@ public class FormatTest { String expectedResult = "I am an donut"; String result = Format.FilterChat(test); - Assert.assertEquals(expectedResult, result); + assertEquals(expectedResult, result); } @Test @@ -90,7 +93,7 @@ public class FormatTest { String color = "red"; boolean result = Format.isValidColor(color); - Assert.assertTrue(result); + assertTrue(result); } @Test @@ -98,6 +101,40 @@ public class FormatTest { String color = "randomString"; boolean result = Format.isValidColor(color); - Assert.assertFalse(result); + assertFalse(result); + } + + @Test + public void testIsValidHexColor() { + String hexColor = "#ff00ff"; + + boolean result = Format.isValidHexColor(hexColor); + assertTrue(result); + } + + @Test + public void testIsInvalidHexColor() { + String hexColor = "#random"; + + boolean result = Format.isValidHexColor(hexColor); + assertFalse(result); + } + + @Test + public void testConvertHexColorCodeToBukkitColorCode() { + String hexColor = "#ff00ff"; + String expectedResult = "§x§f§f§0§0§f§f"; + + String result = Format.convertHexColorCodeToBukkitColorCode(hexColor); + assertEquals(expectedResult, result); + } + + @Test + public void testConvertHexColorCodeStringToBukkitColorCodeString() { + String input = "#ff00ffHello§cThere#00ff00Austin"; + String expectedResult = "§x§f§f§0§0§f§fHello§cThere§x§0§0§f§f§0§0Austin"; + + String result = Format.convertHexColorCodeStringToBukkitColorCodeString(input); + assertEquals(expectedResult, result); } } From e1dddceb5ef7187d138b1ffe01d36c5bb230f66a Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Tue, 14 Jul 2020 17:52:44 -0500 Subject: [PATCH 24/35] Updated to version 2.19.2 --- MineverseChat/bungee.yml | 2 +- MineverseChat/plugin.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 338cbdd..a374b9c 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.19.1 +version: 2.19.2 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index e1f1f69..33e61d8 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.19.1 +version: 2.19.2 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From 664c71bb868422c1977e2a11b4d1ef3957f32ec0 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Wed, 29 Jul 2020 19:43:52 -0500 Subject: [PATCH 25/35] Support PlaceholderAPI version 2.10.7 Allow hex color format #ffffff in placeholders Properly handle capitol color codes Known Issue: Hex colors display as white in the message remover --- .../Aust1n46/chat/MineverseChat.java | 11 +--- .../chat/VentureChatPlaceholders.java | 30 ++++++++- .../chat/api/MineverseChatPlayer.java | 5 ++ .../Aust1n46/chat/listeners/ChatListener.java | 2 +- .../chat/listeners/CommandListener.java | 2 +- .../Aust1n46/chat/utilities/Format.java | 61 +++++++------------ 6 files changed, 58 insertions(+), 53 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index 6648036..ba877a7 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -111,7 +111,7 @@ import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.utility.MinecraftReflection; -import me.clip.placeholderapi.PlaceholderAPI; +import me.clip.placeholderapi.PlaceholderAPIPlugin; public class MineverseChat extends JavaPlugin implements PluginMessageListener { // Listeners -------------------------------- @@ -406,14 +406,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { if(pluginManager.isPluginEnabled("PlaceholderAPI")) { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Enabling PlaceholderAPI Hook")); } - /*boolean hooked = */PlaceholderAPI.registerPlaceholderHook("venturechat", new VentureChatPlaceholders()); - //Tired of people reporting this non issue... -// if(hooked) { -// Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Added placeholders to PlaceholderAPI!")); -// } -// else { -// Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - &cPlaceholders were not added to PlaceholderAPI!")); -// } + PlaceholderAPIPlugin.getInstance().getLocalExpansionManager().register(new VentureChatPlaceholders()); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data")); BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); scheduler.scheduleSyncRepeatingTask(this, new Runnable() { diff --git a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java index 51e5227..319f273 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java +++ b/MineverseChat/mineverse/Aust1n46/chat/VentureChatPlaceholders.java @@ -3,12 +3,11 @@ package mineverse.Aust1n46.chat; import org.bukkit.entity.Player; import me.clip.placeholderapi.PlaceholderAPIPlugin; -import me.clip.placeholderapi.PlaceholderHook; - +import me.clip.placeholderapi.expansion.PlaceholderExpansion; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; -public class VentureChatPlaceholders extends PlaceholderHook { +public class VentureChatPlaceholders extends PlaceholderExpansion { @Override public String onPlaceholderRequest(Player p, String identifier) { if(p == null) { @@ -67,4 +66,29 @@ public class VentureChatPlaceholders extends PlaceholderHook { if(color.equalsIgnoreCase("white")) return "f"; return "f"; } + + @Override + public boolean persist(){ + return true; + } + + @Override + public boolean canRegister(){ + return true; + } + + @Override + public String getAuthor() { + return "Aust1n46"; + } + + @Override + public String getIdentifier() { + return "venturechat"; + } + + @Override + public String getVersion() { + return MineverseChat.getInstance().getDescription().getVersion(); + } } \ No newline at end of file diff --git a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java index 2d6d0b9..8705f41 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java +++ b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java @@ -12,6 +12,7 @@ import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.json.JsonFormat; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; //Wrapper class for Player, this class stores additional information along with a players Player pointer. @@ -328,6 +329,10 @@ public class MineverseChatPlayer { public Player getPlayer() { return this.online ? this.player : null; } + + public OfflinePlayer getOfflinePlayer() { + return Bukkit.getOfflinePlayer(uuid); + } public boolean hasPlayed() { return this.hasPlayed; diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index bc6f290..df85d33 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -323,7 +323,7 @@ public class ChatListener implements Listener { chDistance = eventChannel.getDistance(); } - format = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format"))); + format = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getOfflinePlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format")))); if(plugin.getConfig().getBoolean("formatcleaner", false)) { format = format.replace("[]", " "); format = format.replace(" ", " ").replace(" ", " ").replace(" ", " "); diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java index 6f317bd..022c2c4 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/CommandListener.java @@ -262,7 +262,7 @@ public class CommandListener implements CommandExecutor, Listener { if(target != null) { command = command.replace("{player_name}", target.getName()); if(target.isOnline()) { - command = PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command); + command = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(target.getPlayer(), command)); } } else { diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 10993f7..459d41b 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -98,26 +98,26 @@ public class Format { String hover = ""; if(placeholder.contains(prefix)) { action = format.getClickPrefix(); - text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickPrefixText()); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickPrefixText())); for(String st : format.getHoverTextPrefix()) { hover += Format.FormatStringAll(st) + "\n"; } } if(placeholder.contains(nickname)) { action = format.getClickName(); - text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickNameText()); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickNameText())); for(String st : format.getHoverTextName()) { hover += Format.FormatStringAll(st) + "\n"; } } if(placeholder.contains(suffix)) { action = format.getClickSuffix(); - text = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickSuffixText()); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickSuffixText())); for(String st : format.getHoverTextSuffix()) { hover += Format.FormatStringAll(st) + "\n"; } } - hover = PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), hover.substring(0, hover.length() - 1)); + hover = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), hover.substring(0, hover.length() - 1))); temp += convertToJsonColors(lastCode + placeholder, ",\"clickEvent\":{\"action\":\"" + action + "\",\"value\":\"" + text + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + convertToJsonColors(hover) + "]}}") + ","; lastCode = getLastCode(lastCode + placeholder); remaining = remaining.substring(indexEnd); @@ -436,19 +436,20 @@ public class Format { } } - protected static Pattern chatHexColorPattern = Pattern.compile("(?i)&([X])"); - protected static Pattern chatColorPattern = Pattern.compile("(?i)&([0-9A-F])"); - protected static Pattern chatMagicPattern = Pattern.compile("(?i)&([K])"); - protected static Pattern chatBoldPattern = Pattern.compile("(?i)&([L])"); - protected static Pattern chatStrikethroughPattern = Pattern.compile("(?i)&([M])"); - protected static Pattern chatUnderlinePattern = Pattern.compile("(?i)&([N])"); - protected static Pattern chatItalicPattern = Pattern.compile("(?i)&([O])"); - protected static Pattern chatResetPattern = Pattern.compile("(?i)&([R])"); + protected static Pattern chatColorPattern = Pattern.compile("(?i)&([0-9])"); public static String FormatStringColor(String string) { String allFormated = string; allFormated = chatColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatHexColorPattern.matcher(allFormated).replaceAll("\u00A7$1"); + + allFormated = allFormated.replaceAll("&[x]", "§x"); + allFormated = allFormated.replaceAll("&[aA]", "§a"); + allFormated = allFormated.replaceAll("&[bB]", "§b"); + allFormated = allFormated.replaceAll("&[cC]", "§c"); + allFormated = allFormated.replaceAll("&[dD]", "§d"); + allFormated = allFormated.replaceAll("&[eE]", "§e"); + allFormated = allFormated.replaceAll("&[fF]", "§f"); + allFormated = allFormated.replaceAll("%", "\\%"); allFormated = convertHexColorCodeStringToBukkitColorCodeString(allFormated); @@ -457,12 +458,13 @@ public class Format { public static String FormatString(String string) { String allFormated = string; - allFormated = chatMagicPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatBoldPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatStrikethroughPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatUnderlinePattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatItalicPattern.matcher(allFormated).replaceAll("\u00A7$1"); - allFormated = chatResetPattern.matcher(allFormated).replaceAll("\u00A7$1"); + allFormated = allFormated.replaceAll("&[kK]", "§k"); + allFormated = allFormated.replaceAll("&[lL]", "§l"); + allFormated = allFormated.replaceAll("&[mM]", "§m"); + allFormated = allFormated.replaceAll("&[nN]", "§n"); + allFormated = allFormated.replaceAll("&[oO]", "§o"); + allFormated = allFormated.replaceAll("&[rR]", "§r"); + allFormated = allFormated.replaceAll("%", "\\%"); return allFormated; } @@ -472,25 +474,6 @@ public class Format { allFormated = Format.FormatStringColor(allFormated); return allFormated; } - - public static String FormatPlayerName(String playerPrefix, String playerDisplayName, String playerSuffix) { - playerPrefix = chatColorPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatMagicPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatBoldPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatStrikethroughPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatUnderlinePattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatItalicPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - playerPrefix = chatResetPattern.matcher(playerPrefix).replaceAll("\u00A7$1"); - - playerSuffix = chatColorPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatMagicPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatBoldPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatStrikethroughPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatUnderlinePattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatItalicPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - playerSuffix = chatResetPattern.matcher(playerSuffix).replaceAll("\u00A7$1"); - return playerPrefix + playerDisplayName.trim() + playerSuffix; - } public static String FilterChat(String msg) { int t = 0; @@ -532,7 +515,7 @@ public class Format { for(int a = 1; a < color.length(); a++) { bukkitColorCode.append(BUKKIT_COLOR_CODE_PREFIX + color.charAt(a)); } - return bukkitColorCode.toString(); + return bukkitColorCode.toString().toLowerCase(); } public static String convertHexColorCodeStringToBukkitColorCodeString(String string) { From f072821244aa89c4c4c6d47b1da58f644e24956b Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Thu, 30 Jul 2020 17:40:03 -0500 Subject: [PATCH 26/35] Fixed bug with the json algorithm Prefixes and suffixes containing just color codes would break hex colors Added new examples to the config and defaultconfig files --- MineverseChat/config.yml | 58 +++++++++--------- MineverseChat/defaultconfig.yml | 60 ++++++++++--------- .../Aust1n46/chat/listeners/ChatListener.java | 1 + .../Aust1n46/chat/utilities/Format.java | 5 +- 4 files changed, 66 insertions(+), 58 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index f060141..c31b28d 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -294,7 +294,22 @@ enable_factions_channel: false # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none + +#Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! channels: + GroupChatColorExample: + color: '#706C1E' + chatcolor: 'None' + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: false + alias: ge + permissions: None + format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' HexExample: color: '#ff0000' chatcolor: '#ff0000' @@ -307,7 +322,20 @@ channels: bungeecord: false alias: he permissions: None - format: '&f[&x&f&f&0&0&0&0Hex&f] {vault_prefix} {player_displayname}&x&f&f&0&0&0&0:' + format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' + BungeeExample: + color: gold + chatcolor: gold + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 3 + bungeecord: true + alias: be + permissions: None + format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' Global: color: dark_green chatcolor: dark_green @@ -334,19 +362,6 @@ channels: alias: st permissions: staffchannel format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' - Admin: - color: red - chatcolor: red - mutable: false - filter: false - autojoin: true - default: false - distance: 0 - cooldown: 0 - bungeecord: false - alias: a - permissions: adminchannel - format: '&f[&cAdmin&f] {vault_prefix} {player_displayname}&c:' Donator: color: light_purple chatcolor: light_purple @@ -398,17 +413,4 @@ channels: bungeecord: false alias: l permissions: None - format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' - Network: - color: gold - chatcolor: gold - mutable: true - filter: true - autojoin: true - default: false - distance: 0 - cooldown: 60 - bungeecord: true - alias: n - permissions: None - format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' \ No newline at end of file + format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' \ No newline at end of file diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index e51b558..c31b28d 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -46,6 +46,8 @@ nicknames: nickname-in-tablist: true +# {player} : player sending command +# {command} : command typed commandspy: format: '&6{player}: {command}' worldeditcommands: true @@ -292,7 +294,22 @@ enable_factions_channel: false # Use '' or "" around format, example: '[&2global&f] {vault_prefix} {player_displayname}&2:' # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none + +#Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! channels: + GroupChatColorExample: + color: '#706C1E' + chatcolor: 'None' + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: false + alias: ge + permissions: None + format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' HexExample: color: '#ff0000' chatcolor: '#ff0000' @@ -305,7 +322,20 @@ channels: bungeecord: false alias: he permissions: None - format: '&f[&x&f&f&0&0&0&0Hex&f] {vault_prefix} {player_displayname}&x&f&f&0&0&0&0:' + format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' + BungeeExample: + color: gold + chatcolor: gold + mutable: true + filter: true + autojoin: true + default: false + distance: 0 + cooldown: 3 + bungeecord: true + alias: be + permissions: None + format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' Global: color: dark_green chatcolor: dark_green @@ -332,19 +362,6 @@ channels: alias: st permissions: staffchannel format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' - Admin: - color: red - chatcolor: red - mutable: false - filter: false - autojoin: true - default: false - distance: 0 - cooldown: 0 - bungeecord: false - alias: a - permissions: adminchannel - format: '&f[&cAdmin&f] {vault_prefix} {player_displayname}&c:' Donator: color: light_purple chatcolor: light_purple @@ -396,17 +413,4 @@ channels: bungeecord: false alias: l permissions: None - format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' - Network: - color: gold - chatcolor: gold - mutable: true - filter: true - autojoin: true - default: false - distance: 0 - cooldown: 60 - bungeecord: true - alias: n - permissions: None - format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' \ No newline at end of file + format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' \ No newline at end of file diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index df85d33..883ac3a 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -464,6 +464,7 @@ public class ChatListener implements Listener { String globalJSON = Format.convertToJson(mcp, format, chat); String consoleChat = format + chat; + System.out.println(consoleChat); String message = consoleChat.replaceAll("(§([a-z0-9]))", ""); int hash = message.hashCode(); diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 459d41b..232db82 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -43,10 +43,11 @@ public class Format { try { prefix = FormatStringAll(MineverseChat.chat.getPlayerPrefix(sender.getPlayer())); suffix = FormatStringAll(MineverseChat.chat.getPlayerSuffix(sender.getPlayer())); - if(suffix.equals("")) { + //Don't apply JSON if the prefix or suffix is just a color code + if(suffix.isEmpty() || (suffix.length() == 2 && suffix.substring(1).matches("[0-9a-fA-F"))) { suffix = "venturechat_no_suffix_code"; } - if(prefix.equals("")) { + if(prefix.isEmpty() || (prefix.length() == 2 && prefix.substring(1).matches("[0-9a-fA-F"))) { prefix = "venturechat_no_prefix_code"; } } From 24f7c6b94af11bc91efa512bf24eed802d7776aa Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Thu, 30 Jul 2020 17:48:43 -0500 Subject: [PATCH 27/35] Removed unused print statement --- .../mineverse/Aust1n46/chat/listeners/ChatListener.java | 1 - MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index 883ac3a..df85d33 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -464,7 +464,6 @@ public class ChatListener implements Listener { String globalJSON = Format.convertToJson(mcp, format, chat); String consoleChat = format + chat; - System.out.println(consoleChat); String message = consoleChat.replaceAll("(§([a-z0-9]))", ""); int hash = message.hashCode(); diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 232db82..480dc17 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -44,10 +44,10 @@ public class Format { prefix = FormatStringAll(MineverseChat.chat.getPlayerPrefix(sender.getPlayer())); suffix = FormatStringAll(MineverseChat.chat.getPlayerSuffix(sender.getPlayer())); //Don't apply JSON if the prefix or suffix is just a color code - if(suffix.isEmpty() || (suffix.length() == 2 && suffix.substring(1).matches("[0-9a-fA-F"))) { + if(suffix.isEmpty() || (suffix.length() == 2 && suffix.substring(1).matches("[0-9a-fA-F]"))) { suffix = "venturechat_no_suffix_code"; } - if(prefix.isEmpty() || (prefix.length() == 2 && prefix.substring(1).matches("[0-9a-fA-F"))) { + if(prefix.isEmpty() || (prefix.length() == 2 && prefix.substring(1).matches("[0-9a-fA-F]"))) { prefix = "venturechat_no_prefix_code"; } } From bfd5e3fa9c249ab587438a0a583e99d573f617da Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Thu, 30 Jul 2020 17:57:55 -0500 Subject: [PATCH 28/35] Use required deprecated PlaceholderAPI register method Required for backwards compatibility with older versions of PlaceholderAPI --- MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index ba877a7..dcdb74d 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -406,7 +406,9 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { if(pluginManager.isPluginEnabled("PlaceholderAPI")) { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Enabling PlaceholderAPI Hook")); } - PlaceholderAPIPlugin.getInstance().getLocalExpansionManager().register(new VentureChatPlaceholders()); + //PlaceholderAPIPlugin.getInstance().getLocalExpansionManager().register(new VentureChatPlaceholders()); + //Deprecated because reasons...??? + new VentureChatPlaceholders().register(); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data")); BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); scheduler.scheduleSyncRepeatingTask(this, new Runnable() { From 1ffdd2602779cec1f0795d07df261e15a9439945 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Fri, 7 Aug 2020 23:22:59 -0500 Subject: [PATCH 29/35] Remove faulty getOfflinePlayer API method and revert PAPI change Support PAPI 2.10.9 Update plugin version --- MineverseChat/bungee.yml | 2 +- MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java | 4 ---- .../mineverse/Aust1n46/chat/api/MineverseChatPlayer.java | 5 ----- .../mineverse/Aust1n46/chat/listeners/ChatListener.java | 2 +- .../mineverse/Aust1n46/chat/utilities/Format.java | 8 ++++---- MineverseChat/plugin.yml | 2 +- 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index a374b9c..0ed96ad 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.19.2 +version: 2.19.3 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index dcdb74d..c123131 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -111,8 +111,6 @@ import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.utility.MinecraftReflection; -import me.clip.placeholderapi.PlaceholderAPIPlugin; - public class MineverseChat extends JavaPlugin implements PluginMessageListener { // Listeners -------------------------------- private ChatListener chatListener; @@ -406,8 +404,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { if(pluginManager.isPluginEnabled("PlaceholderAPI")) { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Enabling PlaceholderAPI Hook")); } - //PlaceholderAPIPlugin.getInstance().getLocalExpansionManager().register(new VentureChatPlaceholders()); - //Deprecated because reasons...??? new VentureChatPlaceholders().register(); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Loading player data")); BukkitScheduler scheduler = Bukkit.getServer().getScheduler(); diff --git a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java index 8705f41..2d6d0b9 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java +++ b/MineverseChat/mineverse/Aust1n46/chat/api/MineverseChatPlayer.java @@ -12,7 +12,6 @@ import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.json.JsonFormat; import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; //Wrapper class for Player, this class stores additional information along with a players Player pointer. @@ -329,10 +328,6 @@ public class MineverseChatPlayer { public Player getPlayer() { return this.online ? this.player : null; } - - public OfflinePlayer getOfflinePlayer() { - return Bukkit.getOfflinePlayer(uuid); - } public boolean hasPlayed() { return this.hasPlayed; diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index df85d33..8b84df1 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -323,7 +323,7 @@ public class ChatListener implements Listener { chDistance = eventChannel.getDistance(); } - format = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getOfflinePlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format")))); + format = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), Format.FormatStringAll(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format")))); if(plugin.getConfig().getBoolean("formatcleaner", false)) { format = format.replace("[]", " "); format = format.replace(" ", " ").replace(" ", " ").replace(" ", " "); diff --git a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java index 480dc17..35cac53 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java +++ b/MineverseChat/mineverse/Aust1n46/chat/utilities/Format.java @@ -99,26 +99,26 @@ public class Format { String hover = ""; if(placeholder.contains(prefix)) { action = format.getClickPrefix(); - text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickPrefixText())); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickPrefixText())); for(String st : format.getHoverTextPrefix()) { hover += Format.FormatStringAll(st) + "\n"; } } if(placeholder.contains(nickname)) { action = format.getClickName(); - text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickNameText())); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickNameText())); for(String st : format.getHoverTextName()) { hover += Format.FormatStringAll(st) + "\n"; } } if(placeholder.contains(suffix)) { action = format.getClickSuffix(); - text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), format.getClickSuffixText())); + text = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), format.getClickSuffixText())); for(String st : format.getHoverTextSuffix()) { hover += Format.FormatStringAll(st) + "\n"; } } - hover = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getOfflinePlayer(), hover.substring(0, hover.length() - 1))); + hover = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(icp.getPlayer(), hover.substring(0, hover.length() - 1))); temp += convertToJsonColors(lastCode + placeholder, ",\"clickEvent\":{\"action\":\"" + action + "\",\"value\":\"" + text + "\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + convertToJsonColors(hover) + "]}}") + ","; lastCode = getLastCode(lastCode + placeholder); remaining = remaining.substring(indexEnd); diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 33e61d8..40d23c0 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.19.2 +version: 2.19.3 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From e23480805c1f836184f8ffa674b4c970a12eadb9 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Fri, 7 Aug 2020 23:33:15 -0500 Subject: [PATCH 30/35] Remove hardcoded "Default" message format Created new default format in the config as an example --- MineverseChat/config.yml | 13 +++++------ MineverseChat/defaultconfig.yml | 13 +++++------ .../chat/command/message/Message.java | 22 +++---------------- .../Aust1n46/chat/command/message/Reply.java | 22 +++---------------- 4 files changed, 18 insertions(+), 52 deletions(-) diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index c31b28d..aaf52e8 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -103,13 +103,12 @@ vanishsupport: true # {playerto} : player receivings name # {playerfrom} : player sendings name -# use Default for the basic formatting -tellformatto: Default -tellformatfrom: Default -tellformatspy: Default -replyformatto: Default -replyformatfrom: Default -replyformatspy: Default +tellformatto: 'You message {playerto}:&7' +tellformatfrom: '{playerfrom} messages you:&7' +tellformatspy: '{playerfrom} messages {playerto}:&7' +replyformatto: 'You reply to {playerto}:&7' +replyformatfrom: '{playerfrom} replies to you:&7' +replyformatspy: '{playerfrom} replied to {playerto}:&7' # {host} : party hosts name # {player} : player name diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index c31b28d..aaf52e8 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -103,13 +103,12 @@ vanishsupport: true # {playerto} : player receivings name # {playerfrom} : player sendings name -# use Default for the basic formatting -tellformatto: Default -tellformatfrom: Default -tellformatspy: Default -replyformatto: Default -replyformatfrom: Default -replyformatspy: Default +tellformatto: 'You message {playerto}:&7' +tellformatfrom: '{playerfrom} messages you:&7' +tellformatspy: '{playerfrom} messages {playerto}:&7' +replyformatto: 'You reply to {playerto}:&7' +replyformatfrom: '{playerfrom} replies to you:&7' +replyformatspy: '{playerfrom} replied to {playerto}:&7' # {host} : party hosts name # {player} : player name diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/message/Message.java b/MineverseChat/mineverse/Aust1n46/chat/command/message/Message.java index bfcb49c..2ceebe6 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/message/Message.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/message/Message.java @@ -49,7 +49,6 @@ public class Message extends MineverseCommand { String send = ""; String echo = ""; String spy = ""; - String tellColor = plugin.getConfig().getString("tellcolor", "gray"); for(int r = 1; r < args.length; r++) { msg += " " + args[r]; } @@ -62,24 +61,9 @@ public class Message extends MineverseCommand { if(mcp.getPlayer().hasPermission("venturechat.format")) { msg = Format.FormatString(msg); } - if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) { - send = "{playerfrom} messages you:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg; - } - if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) { - echo = "You message {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg; - } - if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) { - spy = "{playerfrom} messages {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg; - } + send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg; + echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg; + spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg; try { out.writeUTF("Message"); out.writeUTF("Send"); diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/message/Reply.java b/MineverseChat/mineverse/Aust1n46/chat/command/message/Reply.java index c9d1c7f..f9dbf75 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/message/Reply.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/message/Reply.java @@ -40,28 +40,12 @@ public class Reply extends MineverseCommand { String send = ""; String echo = ""; String spy = ""; - String tellColor = plugin.getConfig().getString("tellcolor", "gray"); for(int r = 0; r < args.length; r++) { msg += " " + args[r]; } - if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) { - send = "{playerfrom} replies to you:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg; - } - if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) { - echo = "You reply to {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg; - } - if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) { - spy = "{playerfrom} replied to {playerto}:" + ChatColor.valueOf(tellColor.toUpperCase()) + msg; - } - else { - spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg; - } + send = Format.FormatStringAll(plugin.getConfig().getString("replyformatfrom")) + msg; + echo = Format.FormatStringAll(plugin.getConfig().getString("replyformatto")) + msg; + spy = Format.FormatStringAll(plugin.getConfig().getString("replyformatspy")) + msg; try { out.writeUTF("Message"); out.writeUTF("Send"); From d4a693d2135e71a37a38efc8ed3a7a6c5aca0db6 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 22 Aug 2020 23:16:40 -0500 Subject: [PATCH 31/35] Added speak permissions for chat channels. --- MineverseChat/Messages.yml | 3 +- MineverseChat/bungee.yml | 2 +- MineverseChat/config.yml | 29 ++- MineverseChat/defaultconfig.yml | 29 ++- .../Aust1n46/chat/channel/ChatChannel.java | 166 +++++++----------- .../Aust1n46/chat/listeners/ChatListener.java | 5 + .../chat/localization/Localization.java | 2 +- .../chat/localization/LocalizedMessage.java | 1 + MineverseChat/plugin.yml | 2 +- 9 files changed, 128 insertions(+), 111 deletions(-) diff --git a/MineverseChat/Messages.yml b/MineverseChat/Messages.yml index 3c4df72..46ff32f 100644 --- a/MineverseChat/Messages.yml +++ b/MineverseChat/Messages.yml @@ -1,4 +1,4 @@ -Version: 2.18.2 +Version: 2.20.0 BlockCommandPlayer: '&cYou have been blocked from entering command {command}.' BlockCommandSender: '&cBlocked player &6{player} &cfrom entering command {command}.' BlockedCommand: '&cYou are blocked from entering this command: {command}' @@ -14,6 +14,7 @@ ChannelListHeader: '&6Channel List : Alias' ChannelListWithPermissions: '{channel_color}{channel_name} : {channel_alias} - Permission Required' ChannelNoPermission: '&cYou do not have permission for this channel.' ChannelNoPermissionView: '&cYou do not have permission to look at this channel.' +ChannelNoSpeakPermissions: '&cYou do not have permission to speak in this channel.' ChannelPlayerListHeader: '&6Players in Channel: {channel_color}{channel_name}' ChannelMuted: '&cYou are muted in this channel: {channel_color}{channel_name}&c{time}' CommandInvalidArguments: '&cInvalid command: {command} {args}' diff --git a/MineverseChat/bungee.yml b/MineverseChat/bungee.yml index 0ed96ad..2e58ef4 100644 --- a/MineverseChat/bungee.yml +++ b/MineverseChat/bungee.yml @@ -1,4 +1,4 @@ name: VentureChat main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee -version: 2.19.3 +version: 2.20.0 author: Aust1n46 \ No newline at end of file diff --git a/MineverseChat/config.yml b/MineverseChat/config.yml index aaf52e8..dbe055b 100644 --- a/MineverseChat/config.yml +++ b/MineverseChat/config.yml @@ -294,7 +294,11 @@ enable_factions_channel: false # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none -#Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! +# Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! + +# Important!!! +# Important!!! +# If you delete a channel, restart the server! Do not use /chatreload!!! channels: GroupChatColorExample: color: '#706C1E' @@ -308,6 +312,7 @@ channels: bungeecord: false alias: ge permissions: None + speak_permissions: None format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' HexExample: color: '#ff0000' @@ -321,6 +326,7 @@ channels: bungeecord: false alias: he permissions: None + speak_permissions: None format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' BungeeExample: color: gold @@ -334,7 +340,22 @@ channels: bungeecord: true alias: be permissions: None + speak_permissions: None format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' + AnnouncementExample: + color: red + chatcolor: red + mutable: false + filter: false + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: true + alias: announce + permissions: None + speak_permissions: announcement + format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' Global: color: dark_green chatcolor: dark_green @@ -347,6 +368,7 @@ channels: bungeecord: false alias: g permissions: None + speak_permissions: None format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' Staff: color: green @@ -360,6 +382,7 @@ channels: bungeecord: false alias: st permissions: staffchannel + speak_permissions: None format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' Donator: color: light_purple @@ -373,6 +396,7 @@ channels: bungeecord: false alias: d permissions: donatorchannel + speak_permissions: None format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' Help: color: aqua @@ -386,6 +410,7 @@ channels: bungeecord: false alias: h permissions: None + speak_permissions: None format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' Trade: color: dark_aqua @@ -399,6 +424,7 @@ channels: bungeecord: false alias: t permissions: None + speak_permissions: None format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' Local: color: yellow @@ -412,4 +438,5 @@ channels: bungeecord: false alias: l permissions: None + speak_permissions: None format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' \ No newline at end of file diff --git a/MineverseChat/defaultconfig.yml b/MineverseChat/defaultconfig.yml index aaf52e8..dbe055b 100644 --- a/MineverseChat/defaultconfig.yml +++ b/MineverseChat/defaultconfig.yml @@ -294,7 +294,11 @@ enable_factions_channel: false # You must have prefixes and suffixes set in a Vault compatible permissions plugin to avoid errors # Use "" as the prefix or suffix to have none -#Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! +# Set chatcolor to 'None' to have a group based chat color! Don't forget to put a suffix or other placeholder at the end of the format! + +# Important!!! +# Important!!! +# If you delete a channel, restart the server! Do not use /chatreload!!! channels: GroupChatColorExample: color: '#706C1E' @@ -308,6 +312,7 @@ channels: bungeecord: false alias: ge permissions: None + speak_permissions: None format: '&f[#706C1EGroupColorChat&f] {vault_prefix} {player_displayname}#706C1E:{vault_suffix}' HexExample: color: '#ff0000' @@ -321,6 +326,7 @@ channels: bungeecord: false alias: he permissions: None + speak_permissions: None format: '&f[#ff0000Hex&f] {vault_prefix} {player_displayname}#ff0000:' BungeeExample: color: gold @@ -334,7 +340,22 @@ channels: bungeecord: true alias: be permissions: None + speak_permissions: None format: '&f[&6Network&f] {vault_prefix} {player_displayname}&6:' + AnnouncementExample: + color: red + chatcolor: red + mutable: false + filter: false + autojoin: true + default: false + distance: 0 + cooldown: 0 + bungeecord: true + alias: announce + permissions: None + speak_permissions: announcement + format: '&f[&aServer Announcement&f] {vault_prefix} {player_displayname}&c:' Global: color: dark_green chatcolor: dark_green @@ -347,6 +368,7 @@ channels: bungeecord: false alias: g permissions: None + speak_permissions: None format: '&f[&2Global&f] {vault_prefix} {player_displayname}&2:' Staff: color: green @@ -360,6 +382,7 @@ channels: bungeecord: false alias: st permissions: staffchannel + speak_permissions: None format: '&f[&aStaff&f] {vault_prefix} {player_displayname}&a:' Donator: color: light_purple @@ -373,6 +396,7 @@ channels: bungeecord: false alias: d permissions: donatorchannel + speak_permissions: None format: '&f[&dDonator&f] {vault_prefix} {player_displayname}&d:' Help: color: aqua @@ -386,6 +410,7 @@ channels: bungeecord: false alias: h permissions: None + speak_permissions: None format: '&f[&bHelp&f] {vault_prefix} {player_displayname}&b:' Trade: color: dark_aqua @@ -399,6 +424,7 @@ channels: bungeecord: false alias: t permissions: None + speak_permissions: None format: '&f[&3Trade&f] {vault_prefix} {player_displayname}&3:' Local: color: yellow @@ -412,4 +438,5 @@ channels: bungeecord: false alias: l permissions: None + speak_permissions: None format: '&f[&eLocal&f] {vault_prefix} {player_displayname}&e:' \ No newline at end of file diff --git a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java index 9030a49..740e263 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -12,11 +12,20 @@ import mineverse.Aust1n46.chat.utilities.Format; //This class is used to create ChatChannel objects, which store all the information for a channel. This //information is read in from the config file when the server starts up. public class ChatChannel { + private static final String PERMISSION_PREFIX = "venturechat."; + private static final String NO_PERMISSIONS = "venturechat.none"; + + private static MineverseChat plugin = MineverseChat.getInstance(); + private static ChatChannel defaultChatChannel; + private static ChatChannel[] channels; + private static String defaultColor; + private String name; private String permission; + private String speakPermission; private Boolean mutable; private String color; - private String chatcolor; + private String chatColor; private Boolean defaultChannel; private Boolean autojoin; private String alias; @@ -25,50 +34,32 @@ public class ChatChannel { private Boolean bungee; private String format; private int cooldown; - private boolean irc; - - private static MineverseChat plugin = MineverseChat.getInstance(); - private static ChatChannel defaultChatChannel; - private static ChatChannel[] channels; - private static String defaultColor; public static void initialize() { - String _color = ""; - String _chatcolor = ""; - String _name = ""; - String _permission = ""; - Boolean _mutable = false; - Boolean _filter = false; - Boolean _defaultchannel = false; - String _alias = ""; - Double _distance = (double) 0; - Boolean _autojoin = false; - Boolean _bungee = false; - String _format = ""; - int _cooldown = 0; ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); int len = (cs.getKeys(false)).size(); channels = new ChatChannel[len]; - int x = 0; + int counter = 0; for(String key : cs.getKeys(false)) { - _color = (String) cs.getString(key + ".color", "white"); - _chatcolor = (String) cs.getString(key + ".chatcolor", "white"); - _name = key; - _permission = (String) cs.getString(key + ".permissions", "None"); - _mutable = (Boolean) cs.getBoolean(key + ".mutable", false); - _filter = (Boolean) cs.getBoolean(key + ".filter", true); - _bungee = (Boolean) cs.getBoolean(key + ".bungeecord", false); - _format = cs.getString(key + ".format", "Default"); - _defaultchannel = (Boolean) cs.getBoolean(key + ".default", false); - _alias = (String) cs.getString(key + ".alias", "None"); - _distance = (Double) cs.getDouble(key + ".distance", (double) 0); - _cooldown = (int) cs.getInt(key + ".cooldown", 0); - _autojoin = (Boolean) cs.getBoolean(key + ".autojoin", false); - ChatChannel c = new ChatChannel(_name, _color, _chatcolor, _permission, _mutable, _filter, _defaultchannel, _alias, _distance, _autojoin, _bungee, _cooldown, _format); - channels[x++] = c; - if(_defaultchannel) { - defaultChatChannel = c; - defaultColor = _color; + String color = cs.getString(key + ".color", "white"); + String chatColor = cs.getString(key + ".chatcolor", "white"); + String name = key; + String permission = cs.getString(key + ".permissions", "None"); + String speakPermission = cs.getString(key + ".speak_permissions", "None"); + boolean mutable = cs.getBoolean(key + ".mutable", false); + boolean filter = cs.getBoolean(key + ".filter", true); + boolean bungee = cs.getBoolean(key + ".bungeecord", false); + String format = cs.getString(key + ".format", "Default"); + boolean defaultChannel = cs.getBoolean(key + ".default", false); + String alias = cs.getString(key + ".alias", "None"); + double distance = cs.getDouble(key + ".distance", (double) 0); + int cooldown = cs.getInt(key + ".cooldown", 0); + boolean autojoin = cs.getBoolean(key + ".autojoin", false); + ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); + channels[counter++] = chatChannel; + if(defaultChannel) { + defaultChatChannel = chatChannel; + defaultColor = color; } } } @@ -108,46 +99,35 @@ public class ChatChannel { return joinlist; } - public ChatChannel(String _Name, String _color, String _chatcolor, String _Permission, Boolean _mutable, Boolean _filter, Boolean _defaultchannel, String _alias, Double _distance, Boolean _autojoin, Boolean _bungee, int _cooldown, String _format) { - name = _Name; - permission = "venturechat." + _Permission; - mutable = _mutable; - setColor(_color); - setChatColor(_chatcolor); - setDefaultChannel(_defaultchannel); - setAlias(_alias); - setDistance(_distance); - setFilter(_filter); - setAutojoin(_autojoin); - setBungee(_bungee); - setCooldown(_cooldown); - setFormat(_format); + public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin, Boolean bungee, int cooldown, String format) { + this.name = name; + this.color = color; + this.chatColor = chatColor; + this.permission = PERMISSION_PREFIX + permission; + this.speakPermission = PERMISSION_PREFIX + speakPermission; + this.mutable = mutable; + this.filter = filter; + this.defaultChannel = defaultChannel; + this.alias = alias; + this.distance = distance; + this.autojoin = autojoin; + this.bungee = bungee; + this.cooldown = cooldown; + this.format = format; } public String getName() { return name; } - public void setFormat(String _format) { - format = _format; - } - public String getFormat() { return format; } - public void setCooldown(int _cooldown) { - cooldown = _cooldown; - } - public int getCooldown() { return cooldown; } - public void setBungee(Boolean _bungee) { - bungee = _bungee; - } - public Boolean getBungee() { return bungee; } @@ -160,10 +140,6 @@ public class ChatChannel { return autojoin; } - public void setAutojoin(Boolean _autojoin) { - autojoin = _autojoin; - } - public Boolean isMutable() { return mutable; } @@ -182,55 +158,35 @@ public class ChatChannel { return color; } - public void setColor(String color) { - this.color = color; - } - public String getChatColor() { - if(chatcolor.equalsIgnoreCase("None")) { - return chatcolor; + if(chatColor.equalsIgnoreCase("None")) { + return chatColor; } - if(Format.isValidColor(chatcolor)) { - return String.valueOf(ChatColor.valueOf(chatcolor.toUpperCase())); + if(Format.isValidColor(chatColor)) { + return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase())); } - if(Format.isValidHexColor(chatcolor)) { - return Format.convertHexColorCodeToBukkitColorCode(chatcolor); + if(Format.isValidHexColor(chatColor)) { + return Format.convertHexColorCodeToBukkitColorCode(chatColor); } return Format.DEFAULT_COLOR_CODE; } public String getChatColorRaw() { - return chatcolor; - } - - public void setChatColor(String chatcolor) { - this.chatcolor = chatcolor; + return chatColor; } public Boolean isDefaultchannel() { return defaultChannel; } - public void setDefaultChannel(Boolean defaultChannel) { - this.defaultChannel = defaultChannel; - } - public String getAlias() { return alias; } - public void setAlias(String alias) { - this.alias = alias; - } - public Double getDistance() { return distance; } - public void setDistance(Double distance) { - this.distance = distance; - } - public Boolean hasDistance() { return distance > 0; } @@ -240,20 +196,20 @@ public class ChatChannel { } public Boolean hasPermission() { - return !permission.equalsIgnoreCase("venturechat.none"); + return !permission.equalsIgnoreCase(NO_PERMISSIONS); + } + + public boolean hasSpeakPermission() { + return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS); + } + + public String getSpeakPermission() { + return speakPermission; } public Boolean isFiltered() { return filter; } - - public void setFilter(Boolean filter) { - this.filter = filter; - } - - public boolean isIRC() { - return irc; - } @Override public boolean equals(Object channel) { diff --git a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java index 8b84df1..a618eb5 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/MineverseChat/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -243,6 +243,11 @@ public class ChatListener implements Listener { mcp.setCurrentChannel(ChatChannel.getDefaultChannel()); return; } + if(eventChannel.hasSpeakPermission() && !mcp.getPlayer().hasPermission(eventChannel.getSpeakPermission())) { + mcp.getPlayer().sendMessage(LocalizedMessage.CHANNEL_NO_SPEAK_PERMISSIONS.toString()); + mcp.setQuickChat(false); + return; + } curColor = eventChannel.getChatColor(); bungee = eventChannel.getBungee(); diff --git a/MineverseChat/mineverse/Aust1n46/chat/localization/Localization.java b/MineverseChat/mineverse/Aust1n46/chat/localization/Localization.java index b881d4a..4a28528 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/localization/Localization.java +++ b/MineverseChat/mineverse/Aust1n46/chat/localization/Localization.java @@ -14,7 +14,7 @@ public class Localization { private static MineverseChat plugin = MineverseChat.getInstance(); private static FileConfiguration localization; - private static final String VERSION = "2.18.2"; + private static final String VERSION = "2.20.0"; public static void initialize() { File localizationFile = new File(plugin.getDataFolder().getAbsolutePath(), "Messages.yml"); diff --git a/MineverseChat/mineverse/Aust1n46/chat/localization/LocalizedMessage.java b/MineverseChat/mineverse/Aust1n46/chat/localization/LocalizedMessage.java index 7a53428..de424ed 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/localization/LocalizedMessage.java +++ b/MineverseChat/mineverse/Aust1n46/chat/localization/LocalizedMessage.java @@ -21,6 +21,7 @@ public enum LocalizedMessage { CHANNEL_LIST_WITH_PERMISSIONS("ChannelListWithPermissions"), CHANNEL_NO_PERMISSION("ChannelNoPermission"), CHANNEL_NO_PERMISSION_VIEW("ChannelNoPermissionView"), + CHANNEL_NO_SPEAK_PERMISSIONS("ChannelNoSpeakPermissions"), CHANNEL_PLAYER_LIST_HEADER("ChannelPlayerListHeader"), CHANNEL_MUTED("ChannelMuted"), COMMAND_INVALID_ARGUMENTS("CommandInvalidArguments"), diff --git a/MineverseChat/plugin.yml b/MineverseChat/plugin.yml index 40d23c0..dfa66c8 100644 --- a/MineverseChat/plugin.yml +++ b/MineverseChat/plugin.yml @@ -1,5 +1,5 @@ name: VentureChat -version: 2.19.3 +version: 2.20.0 api-version: 1.13 main: mineverse.Aust1n46.chat.MineverseChat depend: [Vault, ProtocolLib, PlaceholderAPI] From 663d11689d1a788a95250c4bf1971a07c0d03b79 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 22 Aug 2020 23:49:55 -0500 Subject: [PATCH 32/35] Added documentation --- .../Aust1n46/chat/channel/ChatChannel.java | 268 +++++++++++++++--- 1 file changed, 221 insertions(+), 47 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java index 740e263..b9c205a 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java +++ b/MineverseChat/mineverse/Aust1n46/chat/channel/ChatChannel.java @@ -9,38 +9,45 @@ import org.bukkit.configuration.ConfigurationSection; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.utilities.Format; -//This class is used to create ChatChannel objects, which store all the information for a channel. This -//information is read in from the config file when the server starts up. +/** + * Chat channel object pojo. Class also contains static initialization methods + * for reading chat channels from the config file. + * + * @author Aust1n46 + */ public class ChatChannel { private static final String PERMISSION_PREFIX = "venturechat."; private static final String NO_PERMISSIONS = "venturechat.none"; - + private static MineverseChat plugin = MineverseChat.getInstance(); private static ChatChannel defaultChatChannel; private static ChatChannel[] channels; private static String defaultColor; - + private String name; private String permission; private String speakPermission; - private Boolean mutable; + private boolean mutable; private String color; private String chatColor; - private Boolean defaultChannel; - private Boolean autojoin; + private boolean defaultChannel; + private boolean autojoin; private String alias; - private Double distance; - private Boolean filter; - private Boolean bungee; + private double distance; + private boolean filter; + private boolean bungee; private String format; private int cooldown; - + + /** + * Read chat channels from config file and initialize channel array. + */ public static void initialize() { ConfigurationSection cs = plugin.getConfig().getConfigurationSection("channels"); int len = (cs.getKeys(false)).size(); channels = new ChatChannel[len]; int counter = 0; - for(String key : cs.getKeys(false)) { + for (String key : cs.getKeys(false)) { String color = cs.getString(key + ".color", "white"); String chatColor = cs.getString(key + ".chatcolor", "white"); String name = key; @@ -55,51 +62,106 @@ public class ChatChannel { double distance = cs.getDouble(key + ".distance", (double) 0); int cooldown = cs.getInt(key + ".cooldown", 0); boolean autojoin = cs.getBoolean(key + ".autojoin", false); - ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); + ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable, + filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format); channels[counter++] = chatChannel; - if(defaultChannel) { + if (defaultChannel) { defaultChatChannel = chatChannel; defaultColor = color; } } } - + + /** + * Get array of chat channels. + * + * @return {@link ChatChannel}[] + */ public static ChatChannel[] getChannels() { return channels; } - - public static ChatChannel getChannel(String ChannelName) { - for(ChatChannel c : channels) { - if(c.getName().equalsIgnoreCase(ChannelName) || c.getAlias().equalsIgnoreCase(ChannelName)) { + + /** + * Get a chat channel by name. + * + * @param channelName + * name of channel to get. + * @return {@link ChatChannel} + */ + public static ChatChannel getChannel(String channelName) { + for (ChatChannel c : channels) { + if (c.getName().equalsIgnoreCase(channelName) || c.getAlias().equalsIgnoreCase(channelName)) { return c; } } return null; } - - public static boolean isChannel(String channel) { - return getChannel(channel) != null; + + /** + * Checks if the chat channel exists. + * + * @param channelName + * name of channel to check. + * @return true if channel exists, false otherwise. + */ + public static boolean isChannel(String channelName) { + return getChannel(channelName) != null; } - + + /** + * Get default chat channel color. + * + * @return {@link String} + */ public static String getDefaultColor() { return defaultColor; } - + + /** + * Get default chat channel. + * + * @return {@link ChatChannel} + */ public static ChatChannel getDefaultChannel() { return defaultChatChannel; } - + + /** + * Get list of chat channels with autojoin set to true. + * + * @return {@link List}<{@link ChatChannel}> + */ public static List getAutojoinList() { List joinlist = new ArrayList(); - for(ChatChannel c : channels) { - if(c.getAutojoin()) { + for (ChatChannel c : channels) { + if (c.getAutojoin()) { joinlist.add(c); } } return joinlist; } - public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, Boolean mutable, Boolean filter, Boolean defaultChannel, String alias, Double distance, Boolean autojoin, Boolean bungee, int cooldown, String format) { + /** + * Parameterized constructor a {@link ChatChannel}. + * + * @param name + * @param color + * @param chatColor + * @param permission + * @param speakPermission + * @param mutable + * @param filter + * @param defaultChannel + * @param alias + * @param distance + * @param autojoin + * @param bungee + * @param cooldown + * @param format + */ + public ChatChannel(String name, String color, String chatColor, String permission, String speakPermission, + boolean mutable, boolean filter, boolean defaultChannel, String alias, double distance, boolean autojoin, + boolean bungee, int cooldown, String format) { this.name = name; this.color = color; this.chatColor = chatColor; @@ -116,101 +178,213 @@ public class ChatChannel { this.format = format; } + /** + * Get the name of the chat channel. + * + * @return {@link String} + */ public String getName() { return name; } + /** + * Get the format of the chat channel. + * + * @return {@link String} + */ public String getFormat() { return format; } + /** + * Get the cooldown of the chat channel in seconds. + * + * @return int + */ public int getCooldown() { return cooldown; } - public Boolean getBungee() { + /** + * Check if the chat channel is BungeeCord enabled. + * + * @return true if the chat channel is BungeeCord enabled, false otherwise. + */ + public boolean getBungee() { return bungee; } + /** + * Get the permissions node for the chat channel. + * + * @return {@link String} + */ public String getPermission() { return permission; } - public Boolean getAutojoin() { + /** + * Check if autojoin is enabled for the chat channel. + * + * @return true if autojoin is enabled, false otherwise. + */ + public boolean getAutojoin() { return autojoin; } - public Boolean isMutable() { + /** + * Check if the chat channel allows muting. + * + * @return true if muting is allowed, false otherwise. + */ + public boolean isMutable() { return mutable; } + /** + * Get the formatted color of the chat channel. + * + * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the + * color is invalid. + */ public String getColor() { - if(Format.isValidColor(color)) { + if (Format.isValidColor(color)) { return String.valueOf(ChatColor.valueOf(color.toUpperCase())); } - if(Format.isValidHexColor(color)) { + if (Format.isValidHexColor(color)) { return Format.convertHexColorCodeToBukkitColorCode(color); } return Format.DEFAULT_COLOR_CODE; } - + + /** + * Get the raw color value of the chat channel. + * + * @return {@link String} + */ public String getColorRaw() { return color; } + /** + * Get the formatted chat color of the chat channel. + * + * @return {@link String}. Returns {@link Format#DEFAULT_COLOR_CODE} if the chat + * color is invalid. + */ public String getChatColor() { - if(chatColor.equalsIgnoreCase("None")) { + if (chatColor.equalsIgnoreCase("None")) { return chatColor; } - if(Format.isValidColor(chatColor)) { + if (Format.isValidColor(chatColor)) { return String.valueOf(ChatColor.valueOf(chatColor.toUpperCase())); } - if(Format.isValidHexColor(chatColor)) { + if (Format.isValidHexColor(chatColor)) { return Format.convertHexColorCodeToBukkitColorCode(chatColor); } return Format.DEFAULT_COLOR_CODE; } - + + /** + * Get the raw chat color value of the chat channel. + * + * @return {@link String} + */ public String getChatColorRaw() { return chatColor; } - public Boolean isDefaultchannel() { + /** + * Check if the chat channel is the default chat channel. + * + * @return true if the chat channel is the default chat channel, false + * otherwise. + */ + public boolean isDefaultchannel() { return defaultChannel; } + /** + * Get the alias of the chat channel. + * + * @return {@link String} + */ public String getAlias() { return alias; } - public Double getDistance() { + /** + * Get the distance of the chat channel in blocks. + * + * @return double + */ + public double getDistance() { return distance; } - public Boolean hasDistance() { + /** + * Checks if the chat channel has a distance set. + * + * @return true if the distance is greater than zero, false otherwise. + */ + public boolean hasDistance() { return distance > 0; } - public Boolean hasCooldown() { + /** + * Checks if the chat channel has a cooldown set. + * + * @return true if the cooldown is greater than zero, false otherwise. + */ + public boolean hasCooldown() { return cooldown > 0; } - public Boolean hasPermission() { + /** + * Checks if the chat channel has a permission set. + * + * @return true if the permission does not equal + * {@link ChatChannel#NO_PERMISSIONS}, false otherwise. + */ + public boolean hasPermission() { return !permission.equalsIgnoreCase(NO_PERMISSIONS); } - + + /** + * Checks if the chat channel has a speak permission set. + * + * @return true if the speak permission does not equal + * {@link ChatChannel#NO_PERMISSIONS}, false otherwise. + */ public boolean hasSpeakPermission() { return !speakPermission.equalsIgnoreCase(NO_PERMISSIONS); } - + + /** + * Get the speak permissions node for the chat channel. + * + * @return {@link String} + */ public String getSpeakPermission() { return speakPermission; } - public Boolean isFiltered() { + /** + * Checks if the chat channel has the filter enabled. + * + * @return true if the chat channel has the filter enabled, false otherwise. + */ + public boolean isFiltered() { return filter; } - + + /** + * Compares the chat channel by name to determine equality. + * + * @param channel + * Object to compare for equality. + * @return true if the objects are equal, false otherwise. + */ @Override public boolean equals(Object channel) { return channel instanceof ChatChannel && this.name.equals(((ChatChannel) channel).getName()); From c81e85412cf4cee715d7d539c05210f299db3ca4 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 22 Aug 2020 23:52:29 -0500 Subject: [PATCH 33/35] Add new field to /channelinfo command --- .../mineverse/Aust1n46/chat/command/chat/Channelinfo.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java index 330ed5d..3ce8866 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java @@ -36,13 +36,14 @@ public class Channelinfo extends MineverseCommand { sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw()); sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); + sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); if(!chname.hasDistance() || chname.getBungee()) { sender.sendMessage(ChatColor.GOLD + "Distance: " + ChatColor.RED + "N/A"); } else { - sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance().toString()); + sender.sendMessage(ChatColor.GOLD + "Distance: " + chname.getColor() + chname.getDistance()); } if(!chname.hasCooldown()) { sender.sendMessage(ChatColor.GOLD + "Cooldown: " + ChatColor.RED + "N/A"); @@ -50,7 +51,7 @@ public class Channelinfo extends MineverseCommand { else { sender.sendMessage(ChatColor.GOLD + "Cooldown: " + chname.getColor() + chname.getCooldown()); } - sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee().toString()); + sender.sendMessage(ChatColor.GOLD + "Bungeecord: " + chname.getColor() + chname.getBungee()); sender.sendMessage(ChatColor.GOLD + "Format: " + chname.getColor() + chname.getFormat()); return; } From 9934d8d4a3eb891deb102f645494110250c6de9b Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 22 Aug 2020 23:54:17 -0500 Subject: [PATCH 34/35] Increase mute task interval to one minute up from one second. --- MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java index c123131..d27de73 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java +++ b/MineverseChat/mineverse/Aust1n46/chat/MineverseChat.java @@ -438,7 +438,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Updating Player Mutes")); } } - }, 0L, 20L); + }, 0L, 1200L); this.firstRun = false; } From 07eb1a1a0c2e57b6f398d1f3b45304c006db2629 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sun, 23 Aug 2020 14:27:42 -0500 Subject: [PATCH 35/35] Updated how permissions are displayed --- .../Aust1n46/chat/command/chat/Channelinfo.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java index 3ce8866..e667cad 100644 --- a/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java +++ b/MineverseChat/mineverse/Aust1n46/chat/command/chat/Channelinfo.java @@ -35,8 +35,18 @@ public class Channelinfo extends MineverseCommand { sender.sendMessage(ChatColor.GOLD + "Alias: " + chname.getColor() + chname.getAlias()); sender.sendMessage(ChatColor.GOLD + "Color: " + chname.getColor() + chname.getColorRaw()); sender.sendMessage(ChatColor.GOLD + "ChatColor: " + (chname.getChatColor().equalsIgnoreCase("None") ? Format.DEFAULT_COLOR_CODE : chname.getChatColor()) + chname.getChatColorRaw()); - sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); - sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); + if(chname.hasPermission()) { + sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + chname.getPermission()); + } + else { + sender.sendMessage(ChatColor.GOLD + "Permission: " + chname.getColor() + "None"); + } + if(chname.hasSpeakPermission()) { + sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + chname.getSpeakPermission()); + } + else { + sender.sendMessage(ChatColor.GOLD + "Speak Permission: " + chname.getColor() + "None"); + } sender.sendMessage(ChatColor.GOLD + "Autojoin: " + chname.getColor() + chname.getAutojoin()); sender.sendMessage(ChatColor.GOLD + "Default: " + chname.getColor() + chname.hasDistance()); if(!chname.hasDistance() || chname.getBungee()) {