ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/mod/util/VanillaPacketDispatcher.java

33 lines
1 KiB
Java
Raw Normal View History

package de.ellpeck.actuallyadditions.mod.util;
2021-02-26 22:15:48 +01:00
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
public final class VanillaPacketDispatcher {
2019-02-27 19:53:05 +01:00
//Don't call from the client.
public static void dispatchTEToNearbyPlayers(TileEntity tile) {
ServerWorld world = (ServerWorld) tile.getWorld();
2019-02-27 19:53:05 +01:00
PlayerChunkMapEntry entry = world.getPlayerChunkMap().getEntry(tile.getPos().getX() >> 4, tile.getPos().getZ() >> 4);
2021-02-26 22:15:48 +01:00
if (entry == null) {
return;
}
2021-02-26 22:15:48 +01:00
for (ServerPlayerEntity player : entry.getWatchingPlayers()) {
2019-02-27 19:53:05 +01:00
player.connection.sendPacket(tile.getUpdatePacket());
2021-02-26 22:15:48 +01:00
}
2019-02-27 19:53:05 +01:00
}
2019-02-27 19:53:05 +01:00
public static void dispatchTEToNearbyPlayers(World world, BlockPos pos) {
TileEntity tile = world.getTileEntity(pos);
2021-02-26 22:15:48 +01:00
if (tile != null) {
dispatchTEToNearbyPlayers(tile);
}
2019-02-27 19:53:05 +01:00
}
}