mirror of
https://github.com/funkemunky/AntiVPN.git
synced 2026-06-02 01:52:16 +00:00
Updated APIPlayer Caching
---Untested Code--- Updated the BukkitPlayer caching objects to use UUIDs instead of Player objects as Player objects generate a new hash when rejoining the server and get out of sync therefore will horde memory and stay unavailable till the programs termination.
This commit is contained in:
@@ -11,7 +11,7 @@ import java.util.stream.Collectors;
|
||||
|
||||
public class BukkitPlayerExecutor implements PlayerExecutor {
|
||||
|
||||
private final Map<Player, BukkitPlayer> cachedPlayers = new WeakHashMap<>();
|
||||
private final Map<UUID, BukkitPlayer> cachedPlayers = new WeakHashMap<>();
|
||||
|
||||
@Override
|
||||
public Optional<APIPlayer> getPlayer(String name) {
|
||||
@@ -21,7 +21,7 @@ public class BukkitPlayerExecutor implements PlayerExecutor {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
return Optional.of(cachedPlayers.computeIfAbsent(player, BukkitPlayer::new));
|
||||
return Optional.of(cachedPlayers.getOrDefault(player.getUniqueId(), new BukkitPlayer(player)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -32,14 +32,14 @@ public class BukkitPlayerExecutor implements PlayerExecutor {
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
return Optional.of(cachedPlayers.computeIfAbsent(player, BukkitPlayer::new));
|
||||
return Optional.of(cachedPlayers.getOrDefault(player.getUniqueId(), new BukkitPlayer(player)));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<APIPlayer> getOnlinePlayers() {
|
||||
return Bukkit.getOnlinePlayers().stream()
|
||||
.map(pl -> cachedPlayers.computeIfAbsent(pl, BukkitPlayer::new))
|
||||
.map(pl -> cachedPlayers.getOrDefault(pl.getUniqueId(), new BukkitPlayer(pl)))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user