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 boolean quickchat = true;
private static final Logger log = Logger.getLogger("Minecraft");
@Deprecated
public static Set<MineverseChatPlayer> players = new HashSet<MineverseChatPlayer>();
@Deprecated
public static Set<MineverseChatPlayer> onlinePlayers = new HashSet<MineverseChatPlayer>();
public static List<String> networkPlayerNames = new ArrayList<String>();
//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<String> 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<Player> recipients = new HashSet<Player>();
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<String> listening = new ArrayList<String>();
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<String> blockedCommands = new HashSet<String>();
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);
}

View File

@ -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<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.
@ -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));
}
/**

View File

@ -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())

View File

@ -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());
}
}

View File

@ -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())) {

View File

@ -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());

View File

@ -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<Player, List<PacketContainer>> packets = new HashMap();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;

View File

@ -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());

View File

@ -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);
}
}

View File

@ -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<Player, List<PacketContainer>> packets = new HashMap();
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
for(MineverseChatPlayer p : MineverseChatAPI.getOnlineMineverseChatPlayers()) {
List<ChatMessage> messages = p.getMessages();
List<PacketContainer> playerPackets = new ArrayList();
boolean resend = false;

View File

@ -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())

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}
}

View File

@ -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());

View File

@ -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())

View File

@ -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<String> blockedCommands = new HashSet<String>();
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);
}
}