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