package mcjty.rftools.varia; import mcjty.lib.varia.Logging; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; import java.util.HashMap; import java.util.Map; public class Broadcaster { private static Map<String,Long> messages = new HashMap<String, Long>(); public static void broadcast(World worldObj, int x, int y, int z, String message, float radius) { long time = System.currentTimeMillis(); if (messages.containsKey(message)) { long t = messages.get(message); if ((time - t) > 2000) { messages.remove(message); } else { return; } } messages.put(message, time); for (Object p : worldObj.playerEntities) { EntityPlayer player = (EntityPlayer) p; double sqdist = player.getDistanceSq(x + .5, y + .5, z + .5); if (sqdist < radius) { Logging.warn(player, message); } } } }