/** * Send message to all within 64 blocks that have this chunk loaded */ public static void sendToNearby(World world, BlockPos pos, IMessage toSend) { if(world instanceof WorldServer) { WorldServer ws = (WorldServer) world; for (EntityPlayer player : ws.playerEntities) { EntityPlayerMP playerMP = (EntityPlayerMP) player; if (playerMP.getDistanceSq(pos) < 64 * 64 && ws.getPlayerChunkMap().isPlayerWatchingChunk(playerMP, pos.getX() >> 4, pos.getZ() >> 4)) { HANDLER.sendTo(toSend, playerMP); } } } }
public static void sendToAllTrackingChunk(World world, int cx, int cz, PacketBase pkt) { WorldServer server = (WorldServer) world; for (EntityPlayer p : server.playerEntities) { if (server.getPlayerChunkMap().isPlayerWatchingChunk((EntityPlayerMP) p, cx, cz)) { sendToPlayer((EntityPlayerMP) p, pkt); } } }
private List<EntityPlayerMP> getAllPlayersWatchingBlock(World world, int x, int z) { List<EntityPlayerMP> ret = new ArrayList<>(); if(world instanceof WorldServer) { PlayerChunkMap playerManager = ((WorldServer)world).getPlayerChunkMap(); for (EntityPlayerMP player : ((WorldServer) getWorld()).getMinecraftServer().getPlayerList().getPlayers()) { Chunk chunk = world.getChunkFromChunkCoords(x >> 4, z >> 4); if (playerManager.isPlayerWatchingChunk(player, chunk.x, chunk.z)) { ret.add(player); } } } return ret; }
private static void flushChanges(int chunkX, int chunkY, int dim, ChangeList list) { WorldServer world = DimensionManager.getWorld(dim); PlayerChunkMap manager = world.getPlayerChunkMap(); for (EntityPlayer player : world.playerEntities) { if (manager.isPlayerWatchingChunk((EntityPlayerMP) player, chunkX, chunkY)) { wrapper.sendTo(new PacketMultipartAction(list), (EntityPlayerMP) player); } } }
public static <P extends IPacket> void sendNetworkPacket(P packet, BlockPos pos, World world) { if (!(world instanceof WorldServer)) { return; } WorldServer worldServer = (WorldServer) world; PlayerChunkMap playerManager = worldServer.getPlayerChunkMap(); int chunkX = pos.getX() >> 4; int chunkZ = pos.getZ() >> 4; for (Object playerObj : world.playerEntities) { if (playerObj instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) playerObj; if (playerManager.isPlayerWatchingChunk(player, chunkX, chunkZ)) { sendToPlayer(packet, player); } } } }
public static <P extends IForestryPacketClient> void sendNetworkPacket(P packet, BlockPos pos, World world) { if (!(world instanceof WorldServer)) { return; } WorldServer worldServer = (WorldServer) world; PlayerChunkMap playerManager = worldServer.getPlayerChunkMap(); int chunkX = pos.getX() >> 4; int chunkZ = pos.getZ() >> 4; for (Object playerObj : world.playerEntities) { if (playerObj instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) playerObj; if (playerManager.isPlayerWatchingChunk(player, chunkX, chunkZ)) { sendToPlayer(packet, player); } } } }
public void sendToAllAround(IMessage packet, BlockPos pos, World world) { if (!(world instanceof WorldServer)) { return; } WorldServer worldServer = (WorldServer) world; PlayerChunkMap playerManager = worldServer.getPlayerChunkMap(); int chunkX = pos.getX() >> 4; int chunkZ = pos.getZ() >> 4; for (Object playerObj : world.playerEntities) { if (playerObj instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) playerObj; if (playerManager.isPlayerWatchingChunk(player, chunkX, chunkZ)) { sendTo(packet, player); } } } }
for (EntityPlayer player : w.playerEntities) { if (player instanceof EntityPlayerMP) { if (chunkMap.isPlayerWatchingChunk((EntityPlayerMP) player, x, z)) { players.add((EntityPlayerMP) player);
EntityPlayerMP player = (EntityPlayerMP) playerObj; if (playerManager.isPlayerWatchingChunk(player, chunkX, chunkZ)) { if (updatePacket == null) { updatePacket = getUpdatePacket();
public static void sendTileUpdate(TileHarvest tile, PenguinPacket packet) { if (tile.getWorld() instanceof WorldServer) { WorldServer server = (WorldServer)tile.getWorld(); BlockPos pos = tile.getPos(); for (EntityPlayer player : server.playerEntities) { EntityPlayerMP mp = ((EntityPlayerMP) player); if (mp.getDistanceSq(pos) < 64 * 64 && server.getPlayerChunkMap().isPlayerWatchingChunk(mp, pos.getX() >> 4, pos.getZ() >> 4)) { PacketHandler.sendToClient(packet, mp); } } } } }
public static void dispatchTEToNearbyPlayers(@Nonnull TileEntity tile) { if (tile.getWorld() instanceof WorldServer) { WorldServer ws = ((WorldServer) tile.getWorld()); SPacketUpdateTileEntity packet = tile.getUpdatePacket(); if (packet == null) return; for (EntityPlayer player : ws.playerEntities) { if (!(player instanceof EntityPlayerMP)) continue; EntityPlayerMP playerMP = ((EntityPlayerMP) player); if (playerMP.getDistanceSq(tile.getPos()) < 64 * 64 && ws.getPlayerChunkMap().isPlayerWatchingChunk(playerMP, tile.getPos().getX() >> 4, tile.getPos().getZ() >> 4)) { playerMP.connection.sendPacket(packet); } } } }
public static void markTileForUpdate(TileHarvest tile) { PacketRefresh packet = new PacketRefresh(tile.getPos(), tile.getUpdateTag()); if (tile.getWorld() instanceof WorldServer) { WorldServer server = (WorldServer)tile.getWorld(); BlockPos pos = tile.getPos(); for (EntityPlayer player : server.playerEntities) { EntityPlayerMP mp = ((EntityPlayerMP) player); if (mp.getDistanceSq(pos) < 64 * 64 && server.getPlayerChunkMap().isPlayerWatchingChunk(mp, pos.getX() >> 4, pos.getZ() >> 4)) { PacketHandler.sendToClient(packet, mp); } } } }
if (playerObj instanceof EntityPlayerMP && playerObj != player) { EntityPlayerMP otherPlayer = (EntityPlayerMP) playerObj; if (playerManager.isPlayerWatchingChunk(otherPlayer, chunkX, chunkZ)) { PacketHandler.INSTANCE.sendTo(message, otherPlayer);
public static void sendTileEntityUpdate(TileEntity tileEntity) { if (tileEntity.getWorld().isRemote) { return; } SPacketUpdateTileEntity updatePacket = null; WorldServer worldServer = (WorldServer) tileEntity.getWorld(); int chunkX = tileEntity.getPos().getX() >> 4; int chunkZ = tileEntity.getPos().getZ() >> 4; for (EntityPlayer entityPlayer : tileEntity.getWorld().playerEntities) { EntityPlayerMP entityPlayerMP = (EntityPlayerMP) entityPlayer; if (worldServer.getPlayerChunkMap().isPlayerWatchingChunk(entityPlayerMP, chunkX, chunkZ)) { if (updatePacket == null) { updatePacket = tileEntity.getUpdatePacket(); } //noinspection ConstantConditions entityPlayerMP.connection.sendPacket(updatePacket); } } }