Skip to content

Commit

Permalink
feat(SkinOverlayImpl): Changed onlinePlayers to ObservableObjectMap
Browse files Browse the repository at this point in the history
Changed onlinePlayers from Lis<PlayerObject> to ObservableObjectMap<UUID, PlayerObject>
  • Loading branch information
GeorgeV220 committed Apr 14, 2023
1 parent c2329a4 commit bc43b5b
Show file tree
Hide file tree
Showing 10 changed files with 81 additions and 34 deletions.
Expand Up @@ -5,6 +5,7 @@
import com.georgev22.api.libraryloader.annotations.MavenLibrary;
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.library.minecraft.BukkitMinecraftUtils;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.skinoverlay.handler.handlers.*;
Expand All @@ -21,13 +22,13 @@
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.List;
import java.util.UUID;
import java.util.logging.Logger;
import java.util.stream.Collectors;

import static com.georgev22.library.minecraft.BukkitMinecraftUtils.MinecraftVersion.*;

Expand Down Expand Up @@ -154,9 +155,17 @@ public boolean onlineMode() {
return Bukkit.getOnlineMode();
}

private final ObservableObjectMap<UUID, PlayerObject> players = new ObservableObjectMap<>();

@Override
public List<PlayerObject> onlinePlayers() {
return Bukkit.getOnlinePlayers().stream().map(PlayerObjectBukkit::new).collect(Collectors.toList());
public ObservableObjectMap<UUID, PlayerObject> onlinePlayers() {
for (Player player : Bukkit.getOnlinePlayers()) {
if (players.containsKey(player.getUniqueId())) {
continue;
}
players.append(player.getUniqueId(), new PlayerObjectBukkit(player));
}
return players;
}

@Override
Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.georgev22.api.libraryloader.annotations.MavenLibrary;
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.library.minecraft.BungeeMinecraftUtils;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.library.utilities.Utils;
Expand All @@ -19,16 +20,16 @@
import com.georgev22.skinoverlay.utilities.player.PlayerObjectBungee;
import net.kyori.adventure.platform.bungeecord.BungeeAudiences;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Plugin;
import org.bstats.bungeecord.Metrics;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
import java.util.stream.Collectors;

@MavenLibrary(groupId = "org.mongodb", artifactId = "mongo-java-driver", version = "3.12.7")
@MavenLibrary(groupId = "mysql", artifactId = "mysql-connector-java", version = "8.0.22")
Expand Down Expand Up @@ -150,9 +151,17 @@ public boolean onlineMode() {
return getProxy().getConfig().isOnlineMode();
}

private final ObservableObjectMap<UUID, PlayerObject> players = new ObservableObjectMap<>();

@Override
public List<PlayerObject> onlinePlayers() {
return getProxy().getPlayers().stream().map(PlayerObjectBungee::new).collect(Collectors.toList());
public ObservableObjectMap<UUID, PlayerObject> onlinePlayers() {
for (ProxiedPlayer player : getProxy().getPlayers()) {
if (players.containsKey(player.getUniqueId())) {
continue;
}
players.append(player.getUniqueId(), new PlayerObjectBungee(player));
}
return players;
}

@Override
Expand Down
Expand Up @@ -3,8 +3,6 @@
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.skinoverlay.SkinOverlay;
import com.georgev22.skinoverlay.utilities.Utilities;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import com.georgev22.skinoverlay.utilities.player.PlayerObjectBungee;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import net.md_5.bungee.api.ProxyServer;
Expand All @@ -21,16 +19,18 @@

public class PlayerListeners implements Listener {

private final SkinOverlay skinOverlay = SkinOverlay.getInstance();

@EventHandler(priority = 1)
public void onLogin(PostLoginEvent postLoginEvent) {
if (!postLoginEvent.getPlayer().isConnected())
return;
new PlayerObjectBungee(postLoginEvent.getPlayer()).playerJoin();
skinOverlay.getPlayer(postLoginEvent.getPlayer().getUniqueId()).orElseThrow().playerJoin();
}

@EventHandler(priority = 1)
public void onQuit(PlayerDisconnectEvent playerDisconnectEvent) {
new PlayerObjectBungee(playerDisconnectEvent.getPlayer()).playerQuit();
skinOverlay.getPlayer(playerDisconnectEvent.getPlayer().getUniqueId()).orElseThrow().playerQuit();
}

@EventHandler
Expand All @@ -50,8 +50,7 @@ public void onPluginMessage(PluginMessageEvent pluginMessageEvent) {
SkinOverlay.getInstance().getUserManager().getUser(playerUUID).thenAccept(user -> {
ProxiedPlayer proxiedPlayer = ProxyServer.getInstance().getPlayer(playerUUID);
if (proxiedPlayer != null && proxiedPlayer.isConnected()) {
PlayerObject playerObject = new PlayerObjectBungee(proxiedPlayer);
playerObject.updateSkin();
skinOverlay.getPlayer(proxiedPlayer.getUniqueId()).orElseThrow().updateSkin();
}
});
});
Expand Down
Expand Up @@ -199,7 +199,7 @@ public boolean isOnlineMode() {
}

public List<PlayerObject> onlinePlayers() {
return skinOverlay.onlinePlayers();
return new ArrayList<>(skinOverlay.onlinePlayers().values());
}

public boolean isOnline(String playerName) {
Expand Down
Expand Up @@ -131,17 +131,17 @@ public void msgConsole(Map<String, String> map, boolean ignoreCase) {

public void msgAll() {
if (this.isMultiLined()) {
SkinOverlay.getInstance().getSkinOverlay().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(this.getMessages()));
SkinOverlay.getInstance().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(this.getMessages()));
} else {
SkinOverlay.getInstance().getSkinOverlay().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(this.getMessages()[0]));
SkinOverlay.getInstance().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(this.getMessages()[0]));
}
}

public void msgAll(Map<String, String> map, boolean ignoreCase) {
if (this.isMultiLined()) {
SkinOverlay.getInstance().getSkinOverlay().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(placeHolder(this.getMessages(), map, ignoreCase)));
SkinOverlay.getInstance().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(placeHolder(this.getMessages(), map, ignoreCase)));
} else {
SkinOverlay.getInstance().getSkinOverlay().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(placeHolder(this.getMessages()[0], map, ignoreCase)));
SkinOverlay.getInstance().onlinePlayers().forEach(playerObject -> playerObject.sendMessage(placeHolder(this.getMessages()[0], map, ignoreCase)));
}
}

Expand Down
@@ -1,11 +1,13 @@
package com.georgev22.skinoverlay.utilities.interfaces;

import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.skinoverlay.utilities.player.PlayerObject;
import org.jetbrains.annotations.NotNull;

import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.logging.Logger;

/**
Expand Down Expand Up @@ -72,11 +74,11 @@ public interface SkinOverlayImpl {
boolean onlineMode();

/**
* Returns a list of PlayerObject instances representing all online players on the server.
* Returns an ObservableObjectMap of PlayerObject instances representing all online players on the server.
*
* @return A list of PlayerObject instances representing all online players on the server.
* @return An ObservableObjectMap of PlayerObject instances representing all online players on the server.
*/
List<PlayerObject> onlinePlayers();
ObservableObjectMap<UUID, PlayerObject> onlinePlayers();

/**
* Returns the plugin instance.
Expand Down
Expand Up @@ -353,6 +353,7 @@ public void playerQuit() {
}
}
});
skinOverlay.getSkinOverlay().onlinePlayers().remove(playerUUID());
}

/**
Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.georgev22.api.libraryloader.annotations.MavenLibrary;
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.library.minecraft.Sponge8MinecraftUtils;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.library.utilities.LoggerWrapper;
Expand All @@ -24,6 +25,7 @@
import org.spongepowered.api.Server;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.entity.living.player.server.ServerPlayer;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.lifecycle.StartedEngineEvent;
import org.spongepowered.api.event.lifecycle.StartingEngineEvent;
Expand All @@ -35,9 +37,8 @@

import java.io.File;
import java.nio.file.Path;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

@MavenLibrary(groupId = "org.mongodb", artifactId = "mongo-java-driver", version = "3.12.7")
@MavenLibrary(groupId = "mysql", artifactId = "mysql-connector-java", version = "8.0.22")
Expand Down Expand Up @@ -167,9 +168,17 @@ public boolean onlineMode() {
return server.isOnlineModeEnabled();
}

private final ObservableObjectMap<UUID, PlayerObject> players = new ObservableObjectMap<>();

@Override
public List<PlayerObject> onlinePlayers() {
return server.onlinePlayers().stream().map(PlayerObjectSponge::new).collect(Collectors.toList());
public ObservableObjectMap<UUID, PlayerObject> onlinePlayers() {
for (ServerPlayer player : server.onlinePlayers()) {
if (players.containsKey(player.uniqueId())) {
continue;
}
players.append(player.uniqueId(), new PlayerObjectSponge(player));
}
return players;
}

@Override
Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.georgev22.api.libraryloader.annotations.MavenLibrary;
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.library.minecraft.Sponge7MinecraftUtils;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.library.utilities.LoggerWrapper;
Expand All @@ -23,6 +24,7 @@
import org.spongepowered.api.Server;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameInitializationEvent;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
Expand All @@ -33,10 +35,9 @@

import java.io.File;
import java.nio.file.Path;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

@MavenLibrary(groupId = "org.mongodb", artifactId = "mongo-java-driver", version = "3.12.7")
@MavenLibrary(groupId = "mysql", artifactId = "mysql-connector-java", version = "8.0.22")
Expand Down Expand Up @@ -165,9 +166,17 @@ public boolean onlineMode() {
return server.getOnlineMode();
}

private final ObservableObjectMap<UUID, PlayerObject> players = new ObservableObjectMap<>();

@Override
public List<PlayerObject> onlinePlayers() {
return server.getOnlinePlayers().stream().map(PlayerObjectSponge7::new).collect(Collectors.toList());
public ObservableObjectMap<UUID, PlayerObject> onlinePlayers() {
for (Player player : server.getOnlinePlayers()) {
if (players.containsKey(player.getUniqueId())) {
continue;
}
players.append(player.getUniqueId(), new PlayerObjectSponge7(player));
}
return players;
}

@Override
Expand Down
Expand Up @@ -5,6 +5,7 @@
import com.georgev22.api.libraryloader.annotations.MavenLibrary;
import com.georgev22.api.libraryloader.exceptions.InvalidDependencyException;
import com.georgev22.api.libraryloader.exceptions.UnknownDependencyException;
import com.georgev22.library.maps.ObservableObjectMap;
import com.georgev22.library.minecraft.VelocityMinecraftUtils;
import com.georgev22.library.scheduler.SchedulerManager;
import com.georgev22.library.utilities.Utils;
Expand All @@ -24,6 +25,7 @@
import com.velocitypowered.api.plugin.Dependency;
import com.velocitypowered.api.plugin.Plugin;
import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.api.proxy.ProxyServer;
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
import com.velocitypowered.api.scheduler.ScheduledTask;
Expand All @@ -35,9 +37,8 @@
import java.nio.file.Path;
import java.time.Duration;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.logging.Logger;
import java.util.stream.Collectors;

@MavenLibrary(groupId = "org.mongodb", artifactId = "mongo-java-driver", version = "3.12.7")
@MavenLibrary(groupId = "mysql", artifactId = "mysql-connector-java", version = "8.0.22")
Expand Down Expand Up @@ -185,9 +186,17 @@ public boolean onlineMode() {
return server.getConfiguration().isOnlineMode();
}

private final ObservableObjectMap<UUID, PlayerObject> players = new ObservableObjectMap<>();

@Override
public List<PlayerObject> onlinePlayers() {
return server.getAllPlayers().stream().map(PlayerObjectVelocity::new).collect(Collectors.toList());
public ObservableObjectMap<UUID, PlayerObject> onlinePlayers() {
for (Player player : server.getAllPlayers()) {
if (players.containsKey(player.getUniqueId())) {
continue;
}
players.append(player.getUniqueId(), new PlayerObjectVelocity(player));
}
return players;
}

public Path getDataDirectory() {
Expand Down

0 comments on commit bc43b5b

Please sign in to comment.