Now uses WeakHashMap.

master
lishid 2012-02-18 01:45:10 -05:00
parent 2e886964e2
commit 23ee5dad82
4 changed files with 14 additions and 14 deletions

View File

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

View File

@ -27,7 +27,7 @@ public class OrebfuscatorPlayerListener implements Listener
}
synchronized(Orebfuscator.players)
{
Orebfuscator.players.add(player);
Orebfuscator.players.put(player, true);
}
}

View File

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

View File

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