Fixed log errors related to visualizations.

Can't measure distance when A and B are in different worlds.
This commit is contained in:
ryanhamshire 2014-10-10 16:12:58 -07:00
parent 31d1eea8f1
commit 25a3e8101e

View File

@ -46,7 +46,7 @@ public class Visualization
} }
//if he's online, create a task to send him the visualization in about half a second //if he's online, create a task to send him the visualization in about half a second
if(player.isOnline()) if(player.isOnline() && visualization.elements.get(0).location.getWorld().equals(player.getWorld()))
{ {
GriefPrevention.instance.getServer().getScheduler().scheduleSyncDelayedTask(GriefPrevention.instance, new VisualizationApplicationTask(player, playerData, visualization), 1L); GriefPrevention.instance.getServer().getScheduler().scheduleSyncDelayedTask(GriefPrevention.instance, new VisualizationApplicationTask(player, playerData, visualization), 1L);
} }
@ -66,6 +66,13 @@ public class Visualization
for(int i = 0; i < visualization.elements.size(); i++) for(int i = 0; i < visualization.elements.size(); i++)
{ {
VisualizationElement element = visualization.elements.get(i); VisualizationElement element = visualization.elements.get(i);
//check player still in world where visualization exists
if(i == 0)
{
if(!player.getWorld().equals(element.location.getWorld())) return;
}
if(!element.location.getChunk().isLoaded()) continue; if(!element.location.getChunk().isLoaded()) continue;
if(element.location.distanceSquared(player.getLocation()) > 10000) continue; if(element.location.distanceSquared(player.getLocation()) > 10000) continue;
Block block = element.location.getBlock(); Block block = element.location.getBlock();