Updated player storage to hash maps for better efficiency.

Deprecated MineverseChat.players and MineverseChat.onlinePlayers
This commit is contained in:
Aust1n46 2021-02-13 22:18:20 -06:00
parent 924b989ee1
commit ff0441de4c
17 changed files with 156 additions and 130 deletions

View File

@ -144,8 +144,12 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
public static GuiSlotInfo gsInfo; public static GuiSlotInfo gsInfo;
public boolean quickchat = true; public boolean quickchat = true;
private static final Logger log = Logger.getLogger("Minecraft"); private static final Logger log = Logger.getLogger("Minecraft");
@Deprecated
public static Set<MineverseChatPlayer> players = new HashSet<MineverseChatPlayer>(); public static Set<MineverseChatPlayer> players = new HashSet<MineverseChatPlayer>();
@Deprecated
public static Set<MineverseChatPlayer> onlinePlayers = new HashSet<MineverseChatPlayer>(); public static Set<MineverseChatPlayer> onlinePlayers = new HashSet<MineverseChatPlayer>();
public static List<String> networkPlayerNames = new ArrayList<String>(); public static List<String> networkPlayerNames = new ArrayList<String>();
//private boolean firstRun = true; //private boolean firstRun = true;
@ -228,7 +232,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
mcp.setOnline(true); mcp.setOnline(true);
mcp.setHasPlayed(false); mcp.setHasPlayed(false);
mcp.setJsonFormat(); mcp.setJsonFormat();
onlinePlayers.add(mcp); MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp);
} }
FileConfiguration config = getConfig(); FileConfiguration config = getConfig();
@ -372,7 +376,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
scheduler.runTaskTimerAsynchronously(this, new Runnable() { scheduler.runTaskTimerAsynchronously(this, new Runnable() {
@Override @Override
public void run() { public void run() {
for (MineverseChatPlayer p : MineverseChat.onlinePlayers) { for (MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
int time = Format.currentTimeMillis(); int time = Format.currentTimeMillis();
Iterator<String> iterator = p.getMutes().keySet().iterator(); Iterator<String> iterator = p.getMutes().keySet().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@ -404,6 +408,16 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
}, 0L, 1200L); // one minute interval }, 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") @SuppressWarnings("unchecked")
public void unregister(String name) { public void unregister(String name) {
try { try {
@ -494,13 +508,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
return LINELENGTH; 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) { public void setLogLevel(String loglevel) {
if(LogLevels.valueOf(loglevel) != null) { if(LogLevels.valueOf(loglevel) != null) {
curLogLevel = LogLevels.valueOf(loglevel); curLogLevel = LogLevels.valueOf(loglevel);
@ -574,7 +581,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
out.writeBoolean(mcp.isSpy()); out.writeBoolean(mcp.isSpy());
out.writeBoolean(mcp.getMessageToggle()); out.writeBoolean(mcp.getMessageToggle());
} }
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
p.getPlayer().sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray()); p.getPlayer().sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
break; break;
} }
@ -587,10 +594,10 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
} }
public static void sendDiscordSRVPluginMessage(String chatChannel, String message) { public static void sendDiscordSRVPluginMessage(String chatChannel, String message) {
if(onlinePlayers.size() == 0) { if(MineverseChatAPI.getOnlineMineverseChatPlayers().size() == 0) {
return; return;
} }
Player host = onlinePlayers.iterator().next().getPlayer(); Player host = MineverseChatAPI.getOnlineMineverseChatPlayers().iterator().next().getPlayer();
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteOutStream); DataOutputStream out = new DataOutputStream(byteOutStream);
try { try {
@ -641,7 +648,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
} }
Set<Player> recipients = new HashSet<Player>(); Set<Player> recipients = new HashSet<Player>();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isListening(chatChannelObject.getName())) { if(p.isListening(chatChannelObject.getName())) {
recipients.add(p.getPlayer()); 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"); 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.isListening(chatChannelObject.getName())) {
if(!p.getBungeeToggle() && MineverseChatAPI.getOnlineMineverseChatPlayer(senderName) == null) { if(!p.getBungeeToggle() && MineverseChatAPI.getOnlineMineverseChatPlayer(senderName) == null) {
continue; continue;
@ -700,7 +707,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
String json = Format.convertPlainTextToJson(message, true); String json = Format.convertPlainTextToJson(message, true);
int hash = (message.replaceAll("([§]([a-z0-9]))", "")).hashCode(); int hash = (message.replaceAll("([§]([a-z0-9]))", "")).hashCode();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isListening(chatChannelObj.getName())) { if(p.isListening(chatChannelObj.getName())) {
String finalJSON = Format.formatModerationGUI(json, p.getPlayer(), "Discord", chatChannelObj.getName(), hash); String finalJSON = Format.formatModerationGUI(json, p.getPlayer(), "Discord", chatChannelObj.getName(), hash);
PacketContainer packet = Format.createPacketPlayOutChat(finalJSON); PacketContainer packet = Format.createPacketPlayOutChat(finalJSON);
@ -723,7 +730,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
String chatchannel = msgin.readUTF(); String chatchannel = msgin.readUTF();
List<String> listening = new ArrayList<String>(); List<String> listening = new ArrayList<String>();
if(ChatChannel.isChannel(chatchannel)) { if(ChatChannel.isChannel(chatchannel)) {
for(MineverseChatPlayer mcp : onlinePlayers) { for(MineverseChatPlayer mcp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(mcp.isListening(chatchannel)) { if(mcp.isListening(chatchannel)) {
String entry = "&f" + mcp.getName(); String entry = "&f" + mcp.getName();
if(mcp.isMuted(chatchannel)) { if(mcp.isMuted(chatchannel)) {
@ -938,7 +945,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
Set<String> blockedCommands = new HashSet<String>(); Set<String> blockedCommands = new HashSet<String>();
String jsonFormat = "Default"; String jsonFormat = "Default";
s = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, false, null, true, true, name, jsonFormat, false, false, false, true, true); 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); p.getPlayer().sendMessage(Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(p.getPlayer(), send.replaceAll("receiver_", ""))) + msg);
if(p.hasNotifications()) { if(p.hasNotifications()) {
@ -998,7 +1006,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
String receiverName = msgin.readUTF(); String receiverName = msgin.readUTF();
String senderName = msgin.readUTF(); String senderName = msgin.readUTF();
String spy = 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)) { if(pl.isSpy() && !pl.getName().equals(senderName) && !pl.getName().equals(receiverName)) {
pl.getPlayer().sendMessage(spy); pl.getPlayer().sendMessage(spy);
} }

View File

@ -1,5 +1,7 @@
package mineverse.Aust1n46.chat.api; package mineverse.Aust1n46.chat.api;
import java.util.Collection;
import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -14,6 +16,54 @@ import mineverse.Aust1n46.chat.bungee.MineverseChatBungee;
* @author Aust1n46 * @author Aust1n46
*/ */
public final class MineverseChatAPI { public final class MineverseChatAPI {
private static HashMap<UUID, MineverseChatPlayer> playerMap = new HashMap<UUID, MineverseChatPlayer>();
private static HashMap<String, UUID> namesMap = new HashMap<String, UUID>();
private static HashMap<UUID, MineverseChatPlayer> onlinePlayerMap = new HashMap<UUID, MineverseChatPlayer>();
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<MineverseChatPlayer> 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<MineverseChatPlayer> getOnlineMineverseChatPlayers() {
return onlinePlayerMap.values();
}
/** /**
* Get a MineverseChatPlayer wrapper from a Bukkit Player instance. * Get a MineverseChatPlayer wrapper from a Bukkit Player instance.
@ -23,16 +73,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getMineverseChatPlayer(Player player) { public static MineverseChatPlayer getMineverseChatPlayer(Player player) {
for (MineverseChatPlayer mcp : MineverseChat.players) { return getMineverseChatPlayer(player.getUniqueId());
try {
if (mcp.getName().equals(player.getName())) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**
@ -43,16 +84,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getMineverseChatPlayer(UUID uuid) { public static MineverseChatPlayer getMineverseChatPlayer(UUID uuid) {
for (MineverseChatPlayer mcp : MineverseChat.players) { return playerMap.get(uuid);
try {
if (mcp.getUUID().toString().equals(uuid.toString())) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**
@ -63,16 +95,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getMineverseChatPlayer(String name) { public static MineverseChatPlayer getMineverseChatPlayer(String name) {
for (MineverseChatPlayer mcp : MineverseChat.players) { return getMineverseChatPlayer(namesMap.get(name));
try {
if (mcp.getName().equalsIgnoreCase(name)) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**
@ -84,16 +107,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getOnlineMineverseChatPlayer(Player player) { public static MineverseChatPlayer getOnlineMineverseChatPlayer(Player player) {
for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { return getOnlineMineverseChatPlayer(player.getUniqueId());
try {
if (mcp.getName().equals(player.getName())) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**
@ -105,16 +119,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getOnlineMineverseChatPlayer(UUID uuid) { public static MineverseChatPlayer getOnlineMineverseChatPlayer(UUID uuid) {
for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { return onlinePlayerMap.get(uuid);
try {
if (mcp.getUUID().toString().equals(uuid.toString())) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**
@ -126,16 +131,7 @@ public final class MineverseChatAPI {
* @return {@link MineverseChatPlayer} * @return {@link MineverseChatPlayer}
*/ */
public static MineverseChatPlayer getOnlineMineverseChatPlayer(String name) { public static MineverseChatPlayer getOnlineMineverseChatPlayer(String name) {
for (MineverseChatPlayer mcp : MineverseChat.onlinePlayers) { return getOnlineMineverseChatPlayer(namesMap.get(name));
try {
if (mcp.getName().equalsIgnoreCase(name)) {
return mcp;
}
} catch (Exception exception) {
continue;
}
}
return null;
} }
/** /**

View File

@ -62,7 +62,7 @@ public class Channel extends MineverseCommand implements Listener {
} }
} }
if(mcp.hasConversation()) { if(mcp.hasConversation()) {
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) { if(p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName()) .replace("{player_sender}", mcp.getName())

View File

@ -4,6 +4,7 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
@ -23,8 +24,8 @@ public class Chatreload extends MineverseCommand {
Bukkit.getPluginManager().disablePlugin(plugin); Bukkit.getPluginManager().disablePlugin(plugin);
Bukkit.getPluginManager().enablePlugin(plugin); Bukkit.getPluginManager().enablePlugin(plugin);
plugin.getServer().getLogger().info("[VentureChat] Config reloaded"); plugin.getServer().getLogger().info("[VentureChat] Config reloaded");
for(MineverseChatPlayer player : MineverseChat.players) { for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(player.isOnline() && player.getPlayer().hasPermission("venturechat.reload")) { if(player.getPlayer().hasPermission("venturechat.reload")) {
player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString()); player.getPlayer().sendMessage(LocalizedMessage.CONFIG_RELOADED.toString());
} }
} }

View File

@ -64,7 +64,7 @@ public class Chwho extends MineverseCommand {
PluginManager pluginManager = plugin.getServer().getPluginManager(); PluginManager pluginManager = plugin.getServer().getPluginManager();
long linecount = plugin.getLineLength(); long linecount = plugin.getLineLength();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.getListening().contains(channel.getName())) { if(p.getListening().contains(channel.getName())) {
if(sender instanceof Player) { if(sender instanceof Player) {
if(!((Player) sender).canSee(p.getPlayer())) { if(!((Player) sender).canSee(p.getPlayer())) {

View File

@ -2,7 +2,7 @@ package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.CommandSender; 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.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.InternalMessage; import mineverse.Aust1n46.chat.localization.InternalMessage;
@ -17,8 +17,8 @@ public class Clearchat extends MineverseCommand {
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.clearchat")) { if(sender.hasPermission("venturechat.clearchat")) {
for(MineverseChatPlayer player : MineverseChat.players) { for(MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(player.isOnline() && !player.getPlayer().hasPermission("venturechat.clearchat.bypass")) { if(!player.getPlayer().hasPermission("venturechat.clearchat.bypass")) {
for(int a = 1; a <= 20; a++) for(int a = 1; a <= 20; a++)
player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString()); player.getPlayer().sendMessage(InternalMessage.EMPTY_STRING.toString());
player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString()); player.getPlayer().sendMessage(LocalizedMessage.CLEAR_CHAT_SERVER.toString());

View File

@ -14,6 +14,7 @@ import com.comphenix.protocol.wrappers.WrappedChatComponent;
import mineverse.Aust1n46.chat.ChatMessage; import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
@ -48,7 +49,7 @@ public class Edit extends MineverseCommand {
new BukkitRunnable() { new BukkitRunnable() {
public void run() { public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap(); final Map<Player, List<PacketContainer>> packets = new HashMap();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages(); List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList(); List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false; boolean resend = false;

View File

@ -2,7 +2,7 @@ package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.CommandSender; 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.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.localization.LocalizedMessage; import mineverse.Aust1n46.chat.localization.LocalizedMessage;
@ -15,22 +15,22 @@ public class Forceall extends MineverseCommand {
@Override @Override
public void execute(CommandSender sender, String command, String[] args) { public void execute(CommandSender sender, String command, String[] args) {
if(sender.hasPermission("venturechat.forceall")) { if (sender.hasPermission("venturechat.forceall")) {
if(args.length < 1) { if (args.length < 1) {
sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() sender.sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString()
.replace("{command}", "/forceall") .replace("{command}", "/forceall").replace("{args}", "[message]"));
.replace("{args}", "[message]"));
return; return;
} }
String forcemsg = ""; String forcemsg = "";
for(int x = 0; x < args.length; x++) for (int x = 0; x < args.length; x++) {
if(args[x].length() > 0) if (args[x].length() > 0) {
forcemsg += args[x] + " "; forcemsg += args[x] + " ";
sender.sendMessage(LocalizedMessage.FORCE_ALL.toString() }
.replace("{message}", forcemsg)); }
for(MineverseChatPlayer player : MineverseChat.players) sender.sendMessage(LocalizedMessage.FORCE_ALL.toString().replace("{message}", forcemsg));
if(player.isOnline()) for (MineverseChatPlayer player : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
player.getPlayer().chat(forcemsg); player.getPlayer().chat(forcemsg);
}
return; return;
} }
sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString()); sender.sendMessage(LocalizedMessage.COMMAND_NO_PERMISSION.toString());

View File

@ -38,11 +38,15 @@ public class Party extends MineverseCommand {
if(mcp.isHost()) { if(mcp.isHost()) {
mcp.setHost(false); mcp.setHost(false);
mcp.getPlayer().sendMessage(ChatColor.GREEN + "You are no longer hosting a party."); 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())) { if(player.hasParty() && player.getParty().equals(mcp.getParty())) {
player.setParty(null); player.setParty(null);
if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); if(player.isOnline()) {
else player.setModified(true); player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party.");
}
else {
player.setModified(true);
}
} }
} }
mcp.setParty(null); 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.getPlayer().sendMessage(ChatColor.GREEN + "Leaving " + MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName() + "'s party.");
mcp.setParty(null); mcp.setParty(null);
if(mcp.isHost()) { 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())) { if(player.hasParty() && player.getParty().equals(mcp.getUUID()) && !player.getName().equals(mcp.getName())) {
player.setParty(null); player.setParty(null);
if(player.isOnline()) player.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + " is no longer hosting a party."); if(player.isOnline()) {
else player.setModified(true); 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()) { if(mcp.hasConversation()) {
String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName(); String tellChat = MineverseChatAPI.getMineverseChatPlayer(mcp.getConversation()).getName();
mcp.setConversation(null); mcp.setConversation(null);
for(MineverseChatPlayer p : MineverseChat.players) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isOnline() && p.isSpy()) { if(p.isSpy()) {
p.getPlayer().sendMessage(mcp.getName() + " is no longer in a private conversation with " + tellChat + "."); 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()) { if(player.isHost()) {
String members = ""; String members = "";
long linecount = plugin.getLineLength(); long linecount = plugin.getLineLength();
for(MineverseChatPlayer p : MineverseChat.players) { for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) {
if(p.getParty() != null && p.getParty().equals(player.getUUID())) { if(p.getParty() != null && p.getParty().equals(player.getUUID())) {
if(members.length() + p.getName().length() > linecount) { if(members.length() + p.getName().length() > linecount) {
members += "\n"; members += "\n";
@ -300,8 +308,8 @@ public class Party extends MineverseCommand {
else { else {
partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg; partyformat = Format.FormatStringAll(plugin.getConfig().getString("partyformat").replace("{host}", MineverseChatAPI.getMineverseChatPlayer(mcp.getParty()).getName()).replace("{player}", mcp.getName())) + msg;
} }
for(MineverseChatPlayer p : MineverseChat.players) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isOnline() && (p.getParty().equals(mcp.getParty()) || p.isSpy())) { if((p.getParty().equals(mcp.getParty()) || p.isSpy())) {
p.getPlayer().sendMessage(partyformat); p.getPlayer().sendMessage(partyformat);
} }
} }

View File

@ -9,6 +9,7 @@ import java.util.Map;
import mineverse.Aust1n46.chat.ChatMessage; import mineverse.Aust1n46.chat.ChatMessage;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.command.MineverseCommand; import mineverse.Aust1n46.chat.command.MineverseCommand;
@ -67,7 +68,7 @@ public class Removemessage extends MineverseCommand {
new BukkitRunnable() { new BukkitRunnable() {
public void run() { public void run() {
final Map<Player, List<PacketContainer>> packets = new HashMap(); final Map<Player, List<PacketContainer>> packets = new HashMap();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages(); List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList(); List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false; boolean resend = false;

View File

@ -2,7 +2,6 @@ package mineverse.Aust1n46.chat.command.chat;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
@ -57,7 +56,7 @@ public class Setchannel extends MineverseCommand {
.replace("{channel_color}", channel.getColor() + "") .replace("{channel_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
if(player.hasConversation()) { if(player.hasConversation()) {
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) { if(p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", player.getName()) .replace("{player_sender}", player.getName())

View File

@ -109,7 +109,7 @@ public class MessageCommandExecutor implements TabExecutor {
} }
} }
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { 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())) { if(sp.getName().equals(mcp.getName()) || sp.getName().equals(player.getName())) {
continue; continue;
} }
@ -125,7 +125,7 @@ public class MessageCommandExecutor implements TabExecutor {
if(!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) { if(!mcp.hasConversation() || (mcp.hasConversation() && !mcp.getConversation().toString().equals(player.getUUID().toString()))) {
mcp.setConversation(player.getUUID()); mcp.setConversation(player.getUUID());
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) { for(MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(sp.getName().equals(mcp.getName())) { if(sp.getName().equals(mcp.getName())) {
continue; continue;
} }
@ -142,7 +142,7 @@ public class MessageCommandExecutor implements TabExecutor {
else { else {
mcp.setConversation(null); mcp.setConversation(null);
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) { for(MineverseChatPlayer sp : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(sp.getName().equals(mcp.getName())) { if(sp.getName().equals(mcp.getName())) {
continue; continue;
} }

View File

@ -85,7 +85,7 @@ public class Reply extends MineverseCommand {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg; spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), spy.replaceAll("receiver_", ""))) + msg;
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { 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())) { if(p.getName().equals(mcp.getName()) || p.getName().equals(player.getName())) {
continue; continue;
} }

View File

@ -18,6 +18,7 @@ import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.MineverseChat;
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer; import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannel; import mineverse.Aust1n46.chat.channel.ChatChannel;
import mineverse.Aust1n46.chat.utilities.Format; import mineverse.Aust1n46.chat.utilities.Format;
@ -93,11 +94,13 @@ public class PlayerData {
boolean bungeeToggle = playerData.getConfigurationSection("players." + uuidString).getBoolean("bungeetoggle", true); 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); 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); mcp.setModified(true);
MineverseChat.players.add(mcp); MineverseChatAPI.addMineverseChatPlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
} }
} }
catch (Exception e) { 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 - Error Loading Legacy Player Data!"));
Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Deleted Players.yml file!")); Bukkit.getConsoleSender().sendMessage(Format.FormatStringAll("&8[&eVentureChat&8]&c - Deleted Players.yml file!"));
} }
@ -194,7 +197,8 @@ public class PlayerData {
return; return;
} }
if(mcp != null) { if(mcp != null) {
MineverseChat.players.add(mcp); MineverseChatAPI.addMineverseChatPlayerToMap(mcp);
MineverseChatAPI.addNameToMap(mcp);
} }
} }
@ -266,7 +270,7 @@ public class PlayerData {
} }
public static void savePlayerData() { public static void savePlayerData() {
for(MineverseChatPlayer p : MineverseChat.players) { for(MineverseChatPlayer p : MineverseChatAPI.getMineverseChatPlayers()) {
savePlayerData(p); savePlayerData(p);
} }
} }

View File

@ -82,7 +82,7 @@ public class ChatListener implements Listener {
if(!tp.isOnline()) { if(!tp.isOnline()) {
mcp.getPlayer().sendMessage(ChatColor.RED + tp.getName() + " is not available."); mcp.getPlayer().sendMessage(ChatColor.RED + tp.getName() + " is not available.");
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) {
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.getName().equals(mcp.getName())) { if(p.getName().equals(mcp.getName())) {
continue; continue;
} }
@ -135,7 +135,7 @@ public class ChatListener implements Listener {
spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(tp.getPlayer(), spy.replaceAll("receiver_", ""))) + filtered; spy = Format.FormatStringAll(PlaceholderAPI.setBracketPlaceholders(tp.getPlayer(), spy.replaceAll("receiver_", ""))) + filtered;
if(!mcp.getPlayer().hasPermission("venturechat.spy.override")) { 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())) { if(p.getName().equals(mcp.getName()) || p.getName().equals(tp.getName())) {
continue; continue;
} }
@ -169,7 +169,7 @@ public class ChatListener implements Listener {
if(mcp.isPartyChat() && !mcp.isQuickChat()) { if(mcp.isPartyChat() && !mcp.isQuickChat()) {
if(mcp.hasParty()) { if(mcp.hasParty()) {
String partyformat = ""; String partyformat = "";
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if((p.hasParty() && p.getParty().toString().equals(mcp.getParty().toString()) || p.isSpy())) { if((p.hasParty() && p.getParty().toString().equals(mcp.getParty().toString()) || p.isSpy())) {
String filtered = chat; String filtered = chat;
if(mcp.hasFilter()) { if(mcp.hasFilter()) {
@ -355,7 +355,7 @@ public class ChatListener implements Listener {
} }
} }
PluginManager pluginManager = plugin.getServer().getPluginManager(); PluginManager pluginManager = plugin.getServer().getPluginManager();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.getPlayer() != mcp.getPlayer()) { if(p.getPlayer() != mcp.getPlayer()) {
if(!p.isListening(eventChannel.getName())) { if(!p.isListening(eventChannel.getName())) {
recipients.remove(p.getPlayer()); recipients.remove(p.getPlayer());

View File

@ -48,7 +48,7 @@ public class CommandListener implements CommandExecutor, Listener {
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy"); ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
Boolean wec = cs.getBoolean("worldeditcommands", true); Boolean wec = cs.getBoolean("worldeditcommands", true);
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer()); MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.hasCommandSpy()) { if(p.hasCommandSpy()) {
if(wec) { if(wec) {
p.getPlayer().sendMessage(Format.FormatStringAll(cs.getString("format").replace("{player}", mcp.getName()).replace("{command}", event.getMessage()))); 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_color}", channel.getColor() + "")
.replace("{channel_name}", channel.getName())); .replace("{channel_name}", channel.getName()));
if(mcp.hasConversation()) { if(mcp.hasConversation()) {
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
if(p.isSpy()) { if(p.isSpy()) {
p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString() p.getPlayer().sendMessage(LocalizedMessage.EXIT_PRIVATE_CONVERSATION_SPY.toString()
.replace("{player_sender}", mcp.getName()) .replace("{player_sender}", mcp.getName())

View File

@ -5,6 +5,7 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@ -63,17 +64,24 @@ public class LoginListener implements Listener {
Set<String> blockedCommands = new HashSet<String>(); Set<String> blockedCommands = new HashSet<String>();
String jsonFormat = "Default"; String jsonFormat = "Default";
mcp = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, false, null, true, true, name, jsonFormat, false, false, false, true, true); 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()); UUIDFetcher.checkOfflineUUIDWarning(mcp.getUUID());
//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()); mcp.setName(event.getPlayer().getName());
MineverseChatAPI.addNameToMap(mcp);
}
if(!event.getPlayer().getDisplayName().equals(mcp.getName())) { if(!event.getPlayer().getDisplayName().equals(mcp.getName())) {
mcp.setNickname(event.getPlayer().getDisplayName()); mcp.setNickname(event.getPlayer().getDisplayName());
} }
event.getPlayer().setDisplayName(Format.FormatStringAll(mcp.getNickname())); event.getPlayer().setDisplayName(Format.FormatStringAll(mcp.getNickname()));
mcp.setOnline(true); mcp.setOnline(true);
mcp.setHasPlayed(false); mcp.setHasPlayed(false);
MineverseChat.onlinePlayers.add(mcp); MineverseChatAPI.addMineverseChatOnlinePlayerToMap(mcp);
mcp.setJsonFormat(); mcp.setJsonFormat();
if(plugin.getConfig().getBoolean("nickname-in-tablist", false)) { if(plugin.getConfig().getBoolean("nickname-in-tablist", false)) {
String nick = mcp.getNickname(); String nick = mcp.getNickname();
@ -111,6 +119,6 @@ public class LoginListener implements Listener {
PlayerData.savePlayerData(mcp); PlayerData.savePlayerData(mcp);
mcp.clearMessages(); mcp.clearMessages();
mcp.setOnline(false); mcp.setOnline(false);
MineverseChat.onlinePlayers.remove(mcp); MineverseChatAPI.removeMineverseChatOnlinePlayerToMap(mcp);
} }
} }