From ff0441de4c51ceccaac4770d20c9a2f6a0f837db Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 13 Feb 2021 22:18:20 -0600 Subject: [PATCH] Updated player storage to hash maps for better efficiency. Deprecated MineverseChat.players and MineverseChat.onlinePlayers --- .../Aust1n46/chat/MineverseChat.java | 44 ++++--- .../Aust1n46/chat/api/MineverseChatAPI.java | 116 +++++++++--------- .../Aust1n46/chat/command/chat/Channel.java | 2 +- .../chat/command/chat/Chatreload.java | 5 +- .../Aust1n46/chat/command/chat/Chwho.java | 2 +- .../Aust1n46/chat/command/chat/Clearchat.java | 6 +- .../Aust1n46/chat/command/chat/Edit.java | 3 +- .../Aust1n46/chat/command/chat/Forceall.java | 24 ++-- .../Aust1n46/chat/command/chat/Party.java | 30 +++-- .../chat/command/chat/Removemessage.java | 3 +- .../chat/command/chat/Setchannel.java | 3 +- .../message/MessageCommandExecutor.java | 6 +- .../Aust1n46/chat/command/message/Reply.java | 2 +- .../Aust1n46/chat/database/PlayerData.java | 12 +- .../Aust1n46/chat/listeners/ChatListener.java | 8 +- .../chat/listeners/CommandListener.java | 4 +- .../chat/listeners/LoginListener.java | 16 ++- 17 files changed, 156 insertions(+), 130 deletions(-) diff --git a/src/mineverse/Aust1n46/chat/MineverseChat.java b/src/mineverse/Aust1n46/chat/MineverseChat.java index ba9398e..1159757 100644 --- a/src/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/mineverse/Aust1n46/chat/MineverseChat.java @@ -144,8 +144,12 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { public static GuiSlotInfo gsInfo; public boolean quickchat = true; private static final Logger log = Logger.getLogger("Minecraft"); + + @Deprecated public static Set players = new HashSet(); + @Deprecated public static Set onlinePlayers = new HashSet(); + public static List networkPlayerNames = new ArrayList(); //private boolean firstRun = true; @@ -228,7 +232,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { mcp.setOnline(true); mcp.setHasPlayed(false); mcp.setJsonFormat(); - onlinePlayers.add(mcp); + MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp); } FileConfiguration config = getConfig(); @@ -372,7 +376,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { scheduler.runTaskTimerAsynchronously(this, new Runnable() { @Override public void run() { - for (MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { int time = Format.currentTimeMillis(); Iterator iterator = p.getMutes().keySet().iterator(); while (iterator.hasNext()) { @@ -403,6 +407,16 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { } }, 0L, 1200L); // one minute interval } + + @Override + public void onDisable() { + PlayerData.savePlayerData(); + MineverseChatAPI.clearMineverseChatPlayerMap(); + MineverseChatAPI.clearNameMap(); + MineverseChatAPI.clearOnlineMineverseChatPlayerMap(); + Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Disabling...")); + Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Disabled Successfully")); + } @SuppressWarnings("unchecked") public void unregister(String name) { @@ -494,13 +508,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { return LINELENGTH; } - @Override - public void onDisable() { - PlayerData.savePlayerData(); - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Disabling...")); - Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Disabled Successfully")); - } - public void setLogLevel(String loglevel) { if(LogLevels.valueOf(loglevel) != null) { curLogLevel = LogLevels.valueOf(loglevel); @@ -574,7 +581,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { out.writeBoolean(mcp.isSpy()); out.writeBoolean(mcp.getMessageToggle()); } - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { p.getPlayer().sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); break; } @@ -587,10 +594,10 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { } public static void sendDiscordSRVPluginMessage(String chatChannel, String message) { - if(onlinePlayers.size() == 0) { + if(MineverseChatAPI.getOnlineMineverseChatPlayers().size() == 0) { return; } - Player host = onlinePlayers.iterator().next().getPlayer(); + Player host = MineverseChatAPI.getOnlineMineverseChatPlayers().iterator().next().getPlayer(); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(byteOutStream); try { @@ -641,7 +648,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { } Set recipients = new HashSet(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isListening(chatChannelObject.getName())) { recipients.add(p.getPlayer()); } @@ -666,7 +673,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { db.writeVentureChat(date, senderUUID.toString(), senderName, server, chatchannel, chat.replace("'", "''"), "Chat"); } - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isListening(chatChannelObject.getName())) { if(!p.getBungeeToggle() && MineverseChatAPI.getOnlineMineverseChatPlayer(senderName) == null) { continue; @@ -700,7 +707,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { String json = Format.convertPlainTextToJson(message, true); int hash = (message.replaceAll("([§]([a-z0-9]))", "")).hashCode(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isListening(chatChannelObj.getName())) { String finalJSON = Format.formatModerationGUI(json, p.getPlayer(), "Discord", chatChannelObj.getName(), hash); PacketContainer packet = Format.createPacketPlayOutChat(finalJSON); @@ -723,7 +730,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { String chatchannel = msgin.readUTF(); List listening = new ArrayList(); if(ChatChannel.isChannel(chatchannel)) { - for(MineverseChatPlayer mcp : onlinePlayers) { + for(MineverseChatPlayer mcp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(mcp.isListening(chatchannel)) { String entry = "&f" + mcp.getName(); if(mcp.isMuted(chatchannel)) { @@ -938,7 +945,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { Set blockedCommands = new HashSet(); String jsonFormat = "Default"; s = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, false, null, true, true, name, jsonFormat, false, false, false, true, true); - MineverseChat.players.add(s); + MineverseChatAPI.addMineverseChatPlayerToMap(s); + MineverseChatAPI.addNameToMap(s); } p.getPlayer().sendMessage(Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(p.getPlayer(), send.replaceAll("receiver_", ""))) + msg); if(p.hasNotifications()) { @@ -998,7 +1006,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { String receiverName = msgin.readUTF(); String senderName = msgin.readUTF(); String spy = msgin.readUTF(); - for(MineverseChatPlayer pl : onlinePlayers) { + for(MineverseChatPlayer pl : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(pl.isSpy() && !pl.getName().equals(senderName) && !pl.getName().equals(receiverName)) { pl.getPlayer().sendMessage(spy); } diff --git a/src/mineverse/Aust1n46/chat/api/MineverseChatAPI.java b/src/mineverse/Aust1n46/chat/api/MineverseChatAPI.java index d1c5996..bd4e9db 100644 --- a/src/mineverse/Aust1n46/chat/api/MineverseChatAPI.java +++ b/src/mineverse/Aust1n46/chat/api/MineverseChatAPI.java @@ -1,5 +1,7 @@ package mineverse.Aust1n46.chat.api; +import java.util.Collection; +import java.util.HashMap; import java.util.UUID; import org.bukkit.entity.Player; @@ -14,6 +16,54 @@ import mineverse.Aust1n46.chat.bungee.MineverseChatBungee; * @author Aust1n46 */ public final class MineverseChatAPI { + private static HashMap playerMap = new HashMap(); + private static HashMap namesMap = new HashMap(); + private static HashMap onlinePlayerMap = new HashMap(); + + public static void addNameToMap(MineverseChatPlayer mcp) { + namesMap.put(mcp.getName(), mcp.getUUID()); + } + + public static void removeNameFromMap(String name) { + namesMap.remove(name); + } + + public static void clearNameMap() { + namesMap.clear(); + } + + public static void addMineverseChatPlayerToMap(MineverseChatPlayer mcp) { + playerMap.put(mcp.getUUID(), mcp); + MineverseChat.players.add(mcp); + } + + public static void clearMineverseChatPlayerMap() { + playerMap.clear(); + MineverseChat.players.clear(); + } + + public static Collection getMineverseChatPlayers() { + return playerMap.values(); + } + + public static void addMineverseChatOnlinePlayerToMap(MineverseChatPlayer mcp) { + onlinePlayerMap.put(mcp.getUUID(), mcp); + MineverseChat.onlinePlayers.add(mcp); + } + + public static void removeMineverseChatOnlinePlayerToMap(MineverseChatPlayer mcp) { + onlinePlayerMap.remove(mcp.getUUID()); + MineverseChat.onlinePlayers.remove(mcp); + } + + public static void clearOnlineMineverseChatPlayerMap() { + onlinePlayerMap.clear(); + MineverseChat.onlinePlayers.clear(); + } + + public static Collection getOnlineMineverseChatPlayers() { + return onlinePlayerMap.values(); + } /** * Get a MineverseChatPlayer wrapper from a Bukkit Player instance. @@ -23,16 +73,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getMineverseChatPlayer(Player player) { - for (MineverseChatPlayer mcp : MineverseChat.players) { - try { - if (mcp.getName().equals(player.getName())) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return getMineverseChatPlayer(player.getUniqueId()); } /** @@ -43,16 +84,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getMineverseChatPlayer(UUID uuid) { - for (MineverseChatPlayer mcp : MineverseChat.players) { - try { - if (mcp.getUUID().toString().equals(uuid.toString())) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return playerMap.get(uuid); } /** @@ -63,16 +95,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getMineverseChatPlayer(String name) { - for (MineverseChatPlayer mcp : MineverseChat.players) { - try { - if (mcp.getName().equalsIgnoreCase(name)) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return getMineverseChatPlayer(namesMap.get(name)); } /** @@ -84,16 +107,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getOnlineMineverseChatPlayer(Player player) { - for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { - try { - if (mcp.getName().equals(player.getName())) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return getOnlineMineverseChatPlayer(player.getUniqueId()); } /** @@ -105,16 +119,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getOnlineMineverseChatPlayer(UUID uuid) { - for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { - try { - if (mcp.getUUID().toString().equals(uuid.toString())) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return onlinePlayerMap.get(uuid); } /** @@ -126,16 +131,7 @@ public final class MineverseChatAPI { * @return {@link MineverseChatPlayer} */ public static MineverseChatPlayer getOnlineMineverseChatPlayer(String name) { - for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { - try { - if (mcp.getName().equalsIgnoreCase(name)) { - return mcp; - } - } catch (Exception exception) { - continue; - } - } - return null; + return getOnlineMineverseChatPlayer(namesMap.get(name)); } /** diff --git a/src/mineverse/Aust1n46/chat/command/chat/Channel.java b/src/mineverse/Aust1n46/chat/command/chat/Channel.java index 2258867..3a1e1e7 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Channel.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Channel.java @@ -62,7 +62,7 @@ public class Channel extends MineverseCommand implements Listener { } } if(mcp.hasConversation()) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isSpy()) { p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() .replace("{player_sender}", mcp.getName()) diff --git a/src/mineverse/Aust1n46/chat/command/chat/Chatreload.java b/src/mineverse/Aust1n46/chat/command/chat/Chatreload.java index a2a9652..8fdb847 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Chatreload.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Chatreload.java @@ -4,6 +4,7 @@ import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; @@ -23,8 +24,8 @@ public class Chatreload extends MineverseCommand { Bukkit.getPluginManager().disablePlugin(plugin); Bukkit.getPluginManager().enablePlugin(plugin); plugin.getServer().getLogger().info("[VentureChat] Config reloaded"); - for(MineverseChatPlayer player : MineverseChat.players) { - if(player.isOnline() && player.getPlayer().hasPermission("venturechat.reload")) { + for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if(player.getPlayer().hasPermission("venturechat.reload")) { player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); } } diff --git a/src/mineverse/Aust1n46/chat/command/chat/Chwho.java b/src/mineverse/Aust1n46/chat/command/chat/Chwho.java index 985e23b..0e33900 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Chwho.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Chwho.java @@ -64,7 +64,7 @@ public class Chwho extends MineverseCommand { PluginManager pluginManager = plugin.getServer().getPluginManager(); long linecount = plugin.getLineLength(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.getListening().contains(channel.getName())) { if(sender instanceof Player) { if(!((Player) sender).canSee(p.getPlayer())) { diff --git a/src/mineverse/Aust1n46/chat/command/chat/Clearchat.java b/src/mineverse/Aust1n46/chat/command/chat/Clearchat.java index 68e21e4..b578bf9 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Clearchat.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Clearchat.java @@ -2,7 +2,7 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.command.CommandSender; -import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.localization.InternalMessage; @@ -17,8 +17,8 @@ public class Clearchat extends MineverseCommand { @Override public void execute(CommandSender sender, String command, String[] args) { if(sender.hasPermission("venturechat.clearchat")) { - for(MineverseChatPlayer player : MineverseChat.players) { - if(player.isOnline() && !player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { + for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if(!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { for(int a = 1; a <= 20; a++) player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString()); player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString()); diff --git a/src/mineverse/Aust1n46/chat/command/chat/Edit.java b/src/mineverse/Aust1n46/chat/command/chat/Edit.java index e72000b..2203e7b 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Edit.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Edit.java @@ -14,6 +14,7 @@ import com.comphenix.protocol.wrappers.WrappedChatComponent; import mineverse.Aust1n46.chat.ChatMessage; import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; @@ -48,7 +49,7 @@ public class Edit extends MineverseCommand { new BukkitRunnable() { public void run() { final Map> packets = new HashMap(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { List messages = p.getMessages(); List playerPackets = new ArrayList(); boolean resend = false; diff --git a/src/mineverse/Aust1n46/chat/command/chat/Forceall.java b/src/mineverse/Aust1n46/chat/command/chat/Forceall.java index c500cf6..d4d5daf 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Forceall.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Forceall.java @@ -2,7 +2,7 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.command.CommandSender; -import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.localization.LocalizedMessage; @@ -15,22 +15,22 @@ public class Forceall extends MineverseCommand { @Override public void execute(CommandSender sender, String command, String[] args) { - if(sender.hasPermission("venturechat.forceall")) { - if(args.length < 1) { + if (sender.hasPermission("venturechat.forceall")) { + if (args.length < 1) { sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/forceall") - .replace("{args}", "[message]")); + .replace("{command}", "/forceall").replace("{args}", "[message]")); return; } String forcemsg = ""; - for(int x = 0; x < args.length; x++) - if(args[x].length() > 0) + for (int x = 0; x < args.length; x++) { + if (args[x].length() > 0) { forcemsg += args[x] + " "; - sender.sendMessage(LocalizedMessage.FORCE_ALL.toString() - .replace("{message}", forcemsg)); - for(MineverseChatPlayer player : MineverseChat.players) - if(player.isOnline()) - player.getPlayer().chat(forcemsg); + } + } + sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg)); + for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + player.getPlayer().chat(forcemsg); + } return; } sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); diff --git a/src/mineverse/Aust1n46/chat/command/chat/Party.java b/src/mineverse/Aust1n46/chat/command/chat/Party.java index 5097249..e80868d 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Party.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Party.java @@ -38,11 +38,15 @@ public class Party extends MineverseCommand { if(mcp.isHost()) { mcp.setHost(false); mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party."); - for(MineverseChatPlayer player : MineverseChat.players) { + for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { if(player.hasParty() && player.getParty().equals(mcp.getParty())) { player.setParty(null); - if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); - else player.setModified(true); + if(player.isOnline()) { + player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); + } + else { + player.setModified(true); + } } } mcp.setParty(null); @@ -96,11 +100,15 @@ public class Party extends MineverseCommand { mcp.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party."); mcp.setParty(null); if(mcp.isHost()) { - for(MineverseChatPlayer player : MineverseChat.players) { + for(MineverseChatPlayer player : MineverseChatAPI.getMineverseChatPlayers()) { if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) { player.setParty(null); - if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); - else player.setModified(true); + if(player.isOnline()) { + player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); + } + else { + player.setModified(true); + } } } } @@ -214,8 +222,8 @@ public class Party extends MineverseCommand { if(mcp.hasConversation()) { String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName(); mcp.setConversation(null); - for(MineverseChatPlayer p : MineverseChat.players) { - if(p.isOnline() && p.isSpy()) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if(p.isSpy()) { p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + "."); } } @@ -244,7 +252,7 @@ public class Party extends MineverseCommand { if(player.isHost()) { String members = ""; long linecount = plugin.getLineLength(); - for(MineverseChatPlayer p : MineverseChat.players) { + for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) { if(p.getParty() != null && p.getParty().equals(player.getUUID())) { if(members.length() + p.getName().length() > linecount) { members += "\n"; @@ -300,8 +308,8 @@ public class Party extends MineverseCommand { else { partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; } - for(MineverseChatPlayer p : MineverseChat.players) { - if(p.isOnline() && (p.getParty().equals(mcp.getParty()) || p.isSpy())) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { + if((p.getParty().equals(mcp.getParty()) || p.isSpy())) { p.getPlayer().sendMessage(partyformat); } } diff --git a/src/mineverse/Aust1n46/chat/command/chat/Removemessage.java b/src/mineverse/Aust1n46/chat/command/chat/Removemessage.java index a929156..03b8020 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Removemessage.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Removemessage.java @@ -9,6 +9,7 @@ import java.util.Map; import mineverse.Aust1n46.chat.ChatMessage; import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.command.MineverseCommand; @@ -67,7 +68,7 @@ public class Removemessage extends MineverseCommand { new BukkitRunnable() { public void run() { final Map> packets = new HashMap(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { List messages = p.getMessages(); List playerPackets = new ArrayList(); boolean resend = false; diff --git a/src/mineverse/Aust1n46/chat/command/chat/Setchannel.java b/src/mineverse/Aust1n46/chat/command/chat/Setchannel.java index 1c40c0c..dabdaa9 100644 --- a/src/mineverse/Aust1n46/chat/command/chat/Setchannel.java +++ b/src/mineverse/Aust1n46/chat/command/chat/Setchannel.java @@ -2,7 +2,6 @@ package mineverse.Aust1n46.chat.command.chat; import org.bukkit.command.CommandSender; -import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; @@ -57,7 +56,7 @@ public class Setchannel extends MineverseCommand { .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(player.hasConversation()) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isSpy()) { p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() .replace("{player_sender}", player.getName()) diff --git a/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java b/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java index 4d9f162..11407fc 100644 --- a/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java +++ b/src/mineverse/Aust1n46/chat/command/message/MessageCommandExecutor.java @@ -109,7 +109,7 @@ public class MessageCommandExecutor implements TabExecutor { } } if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) { continue; } @@ -125,7 +125,7 @@ public class MessageCommandExecutor implements TabExecutor { if(!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) { mcp.setConversation(player.getUUID()); if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(sp.getName().equals(mcp.getName())) { continue; } @@ -142,7 +142,7 @@ public class MessageCommandExecutor implements TabExecutor { else { mcp.setConversation(null); if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(sp.getName().equals(mcp.getName())) { continue; } diff --git a/src/mineverse/Aust1n46/chat/command/message/Reply.java b/src/mineverse/Aust1n46/chat/command/message/Reply.java index caa6f9c..ea90389 100644 --- a/src/mineverse/Aust1n46/chat/command/message/Reply.java +++ b/src/mineverse/Aust1n46/chat/command/message/Reply.java @@ -85,7 +85,7 @@ public class Reply extends MineverseCommand { spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) { continue; } diff --git a/src/mineverse/Aust1n46/chat/database/PlayerData.java b/src/mineverse/Aust1n46/chat/database/PlayerData.java index 5dbf336..6e3c513 100644 --- a/src/mineverse/Aust1n46/chat/database/PlayerData.java +++ b/src/mineverse/Aust1n46/chat/database/PlayerData.java @@ -18,6 +18,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import mineverse.Aust1n46.chat.MineverseChat; +import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.utilities.Format; @@ -93,11 +94,13 @@ public class PlayerData { boolean bungeeToggle = playerData.getConfigurationSection("players." + uuidString).getBoolean("bungeetoggle", true); MineverseChatPlayer mcp = new MineverseChatPlayer(uuid, name, currentChannel, ignores, listening, mutes, blockedCommands, host, party, filter, notifications, nickname, jsonFormat, spy, commandSpy, rangedSpy, messageToggle, bungeeToggle); mcp.setModified(true); - MineverseChat.players.add(mcp); + MineverseChatAPI.addMineverseChatPlayerToMap(mcp); + MineverseChatAPI.addNameToMap(mcp); } } catch (Exception e) { - MineverseChat.players.clear(); + MineverseChatAPI.clearMineverseChatPlayerMap(); + MineverseChatAPI.clearNameMap(); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Error Loading Legacy Player Data!")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Deleted Players.yml file!")); } @@ -194,7 +197,8 @@ public class PlayerData { return; } if(mcp != null) { - MineverseChat.players.add(mcp); + MineverseChatAPI.addMineverseChatPlayerToMap(mcp); + MineverseChatAPI.addNameToMap(mcp); } } @@ -266,7 +270,7 @@ public class PlayerData { } public static void savePlayerData() { - for(MineverseChatPlayer p : MineverseChat.players) { + for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) { savePlayerData(p); } } diff --git a/src/mineverse/Aust1n46/chat/listeners/ChatListener.java b/src/mineverse/Aust1n46/chat/listeners/ChatListener.java index be85ffd..401f95c 100644 --- a/src/mineverse/Aust1n46/chat/listeners/ChatListener.java +++ b/src/mineverse/Aust1n46/chat/listeners/ChatListener.java @@ -82,7 +82,7 @@ public class ChatListener implements Listener { if(!tp.isOnline()) { mcp.getPlayer().sendMessage(ChatColor.RED + tp.getName() + " is not available."); if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.getName().equals(mcp.getName())) { continue; } @@ -135,7 +135,7 @@ public class ChatListener implements Listener { spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(tp.getPlayer(), spy.replaceAll("receiver_", ""))) + filtered; if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.getName().equals(mcp.getName()) || p.getName().equals(tp.getName())) { continue; } @@ -169,7 +169,7 @@ public class ChatListener implements Listener { if(mcp.isPartyChat() && !mcp.isQuickChat()) { if(mcp.hasParty()) { String partyformat = ""; - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if((p.hasParty() && p.getParty().toString().equals(mcp.getParty().toString()) || p.isSpy())) { String filtered = chat; if(mcp.hasFilter()) { @@ -355,7 +355,7 @@ public class ChatListener implements Listener { } } PluginManager pluginManager = plugin.getServer().getPluginManager(); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.getPlayer() != mcp.getPlayer()) { if(!p.isListening(eventChannel.getName())) { recipients.remove(p.getPlayer()); diff --git a/src/mineverse/Aust1n46/chat/listeners/CommandListener.java b/src/mineverse/Aust1n46/chat/listeners/CommandListener.java index bf3d47c..6bd662b 100644 --- a/src/mineverse/Aust1n46/chat/listeners/CommandListener.java +++ b/src/mineverse/Aust1n46/chat/listeners/CommandListener.java @@ -48,7 +48,7 @@ public class CommandListener implements CommandExecutor, Listener { ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy"); Boolean wec = cs.getBoolean("worldeditcommands", true); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.hasCommandSpy()) { if(wec) { p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); @@ -160,7 +160,7 @@ public class CommandListener implements CommandExecutor, Listener { .replace("{channel_color}", channel.getColor() + "") .replace("{channel_name}", channel.getName())); if(mcp.hasConversation()) { - for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { + for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) { if(p.isSpy()) { p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() .replace("{player_sender}", mcp.getName()) diff --git a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java index dae8bdb..fa87eee 100644 --- a/src/mineverse/Aust1n46/chat/listeners/LoginListener.java +++ b/src/mineverse/Aust1n46/chat/listeners/LoginListener.java @@ -5,6 +5,7 @@ import java.util.HashSet; import java.util.Set; import java.util.UUID; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -63,17 +64,24 @@ public class LoginListener implements Listener { Set blockedCommands = new HashSet(); String jsonFormat = "Default"; mcp = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, false, null, true, true, name, jsonFormat, false, false, false, true, true); - MineverseChat.players.add(mcp); + MineverseChatAPI.addMineverseChatPlayerToMap(mcp); + MineverseChatAPI.addNameToMap(mcp); } UUIDFetcher.checkOfflineUUIDWarning(mcp.getUUID()); - mcp.setName(event.getPlayer().getName()); + //check for name change + if(!mcp.getName().equals(event.getPlayer().getName())) { + Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&e - Detected Name Change. Old Name:&c " + mcp.getName() + " &eNew Name:&c " + event.getPlayer().getName())); + MineverseChatAPI.removeNameFromMap(mcp.getName()); + mcp.setName(event.getPlayer().getName()); + MineverseChatAPI.addNameToMap(mcp); + } if(!event.getPlayer().getDisplayName().equals(mcp.getName())) { mcp.setNickname(event.getPlayer().getDisplayName()); } event.getPlayer().setDisplayName(Format.FormatStringAll(mcp.getNickname())); mcp.setOnline(true); mcp.setHasPlayed(false); - MineverseChat.onlinePlayers.add(mcp); + MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp); mcp.setJsonFormat(); if(plugin.getConfig().getBoolean("nickname-in-tablist", false)) { String nick = mcp.getNickname(); @@ -111,6 +119,6 @@ public class LoginListener implements Listener { PlayerData.savePlayerData(mcp); mcp.clearMessages(); mcp.setOnline(false); - MineverseChat.onlinePlayers.remove(mcp); + MineverseChatAPI.removeMineverseChatOnlinePlayerToMap(mcp); } } \ No newline at end of file