Now uses WeakHashMap.
parent
2e886964e2
commit
23ee5dad82
|
@ -1,7 +1,6 @@
|
|||
package lishid.orebfuscator;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.WeakHashMap;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import lishid.orebfuscator.chunkscrambler.ChunkScramblerWorldListener;
|
||||
|
@ -77,9 +76,9 @@ public class Orebfuscator extends JavaPlugin {
|
|||
private static int lastTask = -1;
|
||||
|
||||
/**
|
||||
* List of players online
|
||||
* Players list
|
||||
*/
|
||||
public static HashSet<Player> players = new HashSet<Player>();
|
||||
public static WeakHashMap<Player, Boolean> players = new WeakHashMap<Player, Boolean>();
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
|
@ -91,8 +90,10 @@ public class Orebfuscator extends JavaPlugin {
|
|||
OrebfuscatorConfig.load();
|
||||
synchronized(Orebfuscator.players)
|
||||
{
|
||||
players.clear();
|
||||
players.addAll(Arrays.asList(this.getServer().getOnlinePlayers()));
|
||||
for(Player p : this.getServer().getOnlinePlayers())
|
||||
{
|
||||
players.put(p, true);
|
||||
}
|
||||
}
|
||||
|
||||
//Orebfuscator events
|
||||
|
|
|
@ -27,7 +27,7 @@ public class OrebfuscatorPlayerListener implements Listener
|
|||
}
|
||||
synchronized(Orebfuscator.players)
|
||||
{
|
||||
Orebfuscator.players.add(player);
|
||||
Orebfuscator.players.put(player, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -47,10 +47,10 @@ public class Calculations
|
|||
List<Player> playerList = getPlayers(block.getWorld());
|
||||
|
||||
for (Player player : playerList) {
|
||||
double dx = Math.abs(player.getLocation().getChunk().getX() - block.getChunk().getX());
|
||||
double dz = Math.abs(player.getLocation().getChunk().getZ() - block.getChunk().getZ());
|
||||
double dist = Bukkit.getServer().getViewDistance();
|
||||
if (dx <= dist && dz <= dist)
|
||||
double dx = Math.abs(player.getLocation().getX() - block.getX());
|
||||
double dz = Math.abs(player.getLocation().getZ() - block.getZ());
|
||||
double dist = Bukkit.getServer().getViewDistance() * 16;
|
||||
if (dx < dist && dz < dist)
|
||||
{
|
||||
players.add((CraftPlayer) player);
|
||||
}
|
||||
|
@ -124,8 +124,7 @@ public class Calculations
|
|||
|
||||
synchronized(Orebfuscator.players)
|
||||
{
|
||||
HashSet<Player> allPlayers = Orebfuscator.players;
|
||||
for(Player p : allPlayers)
|
||||
for(Player p : Orebfuscator.players.keySet())
|
||||
{
|
||||
if(p.getWorld().getName().equals(world.getName()))
|
||||
players.add(p);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
name: Orebfuscator
|
||||
main: lishid.orebfuscator.Orebfuscator
|
||||
version: 1.3.9-beta
|
||||
version: 1.3.9
|
||||
author: lishid
|
||||
softdepend: [Spout, ChunkScrambler]
|
||||
load: startup
|
||||
|
|
Loading…
Reference in New Issue