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]