mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-13 19:25:49 -07:00
Removed temporary hackish fix for the entity interactivity issues, fixed properly in MC1.2.4.
This commit is contained in:
@@ -13,9 +13,6 @@ import java.util.Set;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
// CraftBukkit start
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
@@ -326,85 +323,6 @@ public class ServerConfigurationManager {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
// CraftBukkit start - temporary hacky entity fix.
|
||||
Timer timer = new Timer();
|
||||
final ArrayList<Entity> nearby = new ArrayList<Entity>();
|
||||
final EntityPlayer nmsEntity = entityplayer1;
|
||||
// Start inline nearby entities
|
||||
AxisAlignedBB axisalignedbb = nmsEntity.boundingBox.grow(100, 100, 100);
|
||||
i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D);
|
||||
int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D);
|
||||
int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D);
|
||||
int l = MathHelper.floor((axisalignedbb.f + 2.0D) / 16.0D);
|
||||
|
||||
for (int i1 = i; i1 <= j; ++i1) {
|
||||
for (int j1 = k; j1 <= l; ++j1) {
|
||||
if (nmsEntity.world.chunkProvider.isChunkLoaded(i1, j1)) {
|
||||
nmsEntity.world.getChunkAt(i1, j1).a(nmsEntity, axisalignedbb, nearby);
|
||||
}
|
||||
}
|
||||
}
|
||||
// End inline nearby entities
|
||||
for (Object entity : nearby) {
|
||||
if (entity instanceof EntityLiving || entity instanceof EntityMinecart || entity instanceof EntityBoat || entity instanceof IAnimal || entity instanceof EntityPainting) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet29DestroyEntity(((Entity) entity).id));
|
||||
}
|
||||
}
|
||||
|
||||
timer.schedule(new TimerTask(){
|
||||
public void run() {
|
||||
// Start inline nearby entities
|
||||
nearby.clear();
|
||||
AxisAlignedBB axisalignedbb = nmsEntity.boundingBox.grow(100, 100, 100);
|
||||
int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D);
|
||||
int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D);
|
||||
int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D);
|
||||
int l = MathHelper.floor((axisalignedbb.f + 2.0D) / 16.0D);
|
||||
|
||||
for (int i1 = i; i1 <= j; ++i1) {
|
||||
for (int j1 = k; j1 <= l; ++j1) {
|
||||
if (nmsEntity.world.chunkProvider.isChunkLoaded(i1, j1)) {
|
||||
nmsEntity.world.getChunkAt(i1, j1).a(nmsEntity, axisalignedbb, nearby);
|
||||
}
|
||||
}
|
||||
}
|
||||
// End inline nearby entities
|
||||
for (Object entityObject2 : nearby) {
|
||||
try {
|
||||
Entity entity = (Entity) entityObject2;
|
||||
|
||||
if (entity instanceof EntityPlayer) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet20NamedEntitySpawn((EntityHuman) entity));
|
||||
} else if (entity instanceof EntityMinecart) {
|
||||
EntityMinecart entityminecart = (EntityMinecart) entity;
|
||||
|
||||
if (entityminecart.type == 0) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet23VehicleSpawn(entity, 10));
|
||||
}
|
||||
|
||||
if (entityminecart.type == 1) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet23VehicleSpawn(entity, 11));
|
||||
}
|
||||
|
||||
if (entityminecart.type == 2) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet23VehicleSpawn(entity, 12));
|
||||
}
|
||||
} else if (entity instanceof EntityBoat) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet23VehicleSpawn(entity, 1));
|
||||
} else if (entity instanceof IAnimal) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet24MobSpawn((EntityLiving) entity));
|
||||
} else if (entity instanceof EntityEnderDragon) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet24MobSpawn((EntityLiving) entity));
|
||||
} else if (entity instanceof EntityPainting) {
|
||||
nmsEntity.netServerHandler.sendPacket(new Packet25EntityPainting((EntityPainting) entity));
|
||||
}
|
||||
} catch (ClassCastException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}, 5000);
|
||||
// CraftBukkit end
|
||||
|
||||
return entityplayer1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user