Skip to content

Commit

Permalink
Fix some reflection issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Morphan1 committed Sep 22, 2016
1 parent 4a8fa4d commit 9cfa151
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 9 deletions.
Expand Up @@ -24,7 +24,7 @@ public boolean isStatic(World world) {
@Override
public void setStatic(World world, boolean isStatic) {
WorldServer worldServer = ((CraftWorld) world).getHandle();
ReflectionHelper.setFieldValue(worldServer.getClass(), "isClientSide", worldServer, isStatic);
ReflectionHelper.setFieldValue(net.minecraft.server.v1_10_R1.World.class, "isClientSide", worldServer, isStatic);
}

@Override
Expand Down
Expand Up @@ -2,7 +2,12 @@

import net.aufdemrand.denizen.nms.interfaces.packets.PacketOutSpawnEntity;
import net.aufdemrand.denizen.nms.util.ReflectionHelper;
import net.minecraft.server.v1_10_R1.EntityPlayer;
import net.minecraft.server.v1_10_R1.EntityTracker;
import net.minecraft.server.v1_10_R1.EntityTrackerEntry;
import net.minecraft.server.v1_10_R1.Packet;
import net.minecraft.server.v1_10_R1.PacketPlayOutSpawnEntityExperienceOrb;
import net.minecraft.server.v1_10_R1.WorldServer;

import java.util.UUID;

Expand All @@ -12,11 +17,18 @@ public class PacketOutSpawnEntity_v1_10_R1 implements PacketOutSpawnEntity {
private int entityId;
private UUID entityUuid;

public PacketOutSpawnEntity_v1_10_R1(Packet internal) {
public PacketOutSpawnEntity_v1_10_R1(EntityPlayer player, Packet internal) {
this.internal = internal;
Integer integer = ReflectionHelper.getFieldValue(internal.getClass(), "a", internal);
entityId = integer != null ? integer : -1;
entityUuid = ReflectionHelper.getFieldValue(internal.getClass(), "b", internal);
if (!(internal instanceof PacketPlayOutSpawnEntityExperienceOrb)) {
entityUuid = ReflectionHelper.getFieldValue(internal.getClass(), "b", internal);
}
else {
EntityTracker tracker = ((WorldServer) player.world).tracker;
EntityTrackerEntry entry = tracker.trackedEntities.get(entityId);
entityUuid = entry != null ? entry.b().getUniqueID() : null;
}
}

@Override
Expand Down
Expand Up @@ -88,7 +88,7 @@ else if (packet instanceof PacketPlayOutNamedEntitySpawn
|| packet instanceof PacketPlayOutSpawnEntityLiving
|| packet instanceof PacketPlayOutSpawnEntityPainting
|| packet instanceof PacketPlayOutSpawnEntityExperienceOrb) {
PacketOutSpawnEntity spawnEntity = new PacketOutSpawnEntity_v1_10_R1(packet);
PacketOutSpawnEntity spawnEntity = new PacketOutSpawnEntity_v1_10_R1(player, packet);
UUID uuid = spawnEntity.getEntityUuid();
if (!NMSHandler.getInstance().getEntityHelper().isHidden(player.getBukkitEntity(), uuid)) {
Entity entity = ((WorldServer) player.getWorld()).getEntity(uuid);
Expand Down
Expand Up @@ -27,7 +27,7 @@ public boolean isStatic(World world) {
@Override
public void setStatic(World world, boolean isStatic) {
WorldServer worldServer = ((CraftWorld) world).getHandle();
ReflectionHelper.setFieldValue(worldServer.getClass(), "isClientSide", worldServer, isStatic);
ReflectionHelper.setFieldValue(net.minecraft.server.v1_8_R3.World.class, "isClientSide", worldServer, isStatic);
}

@Override
Expand Down
Expand Up @@ -24,7 +24,7 @@ public boolean isStatic(World world) {
@Override
public void setStatic(World world, boolean isStatic) {
WorldServer worldServer = ((CraftWorld) world).getHandle();
ReflectionHelper.setFieldValue(worldServer.getClass(), "isClientSide", worldServer, isStatic);
ReflectionHelper.setFieldValue(net.minecraft.server.v1_9_R2.World.class, "isClientSide", worldServer, isStatic);
}

@Override
Expand Down
Expand Up @@ -2,7 +2,12 @@

import net.aufdemrand.denizen.nms.interfaces.packets.PacketOutSpawnEntity;
import net.aufdemrand.denizen.nms.util.ReflectionHelper;
import net.minecraft.server.v1_9_R2.EntityPlayer;
import net.minecraft.server.v1_9_R2.EntityTracker;
import net.minecraft.server.v1_9_R2.EntityTrackerEntry;
import net.minecraft.server.v1_9_R2.Packet;
import net.minecraft.server.v1_9_R2.PacketPlayOutSpawnEntityExperienceOrb;
import net.minecraft.server.v1_9_R2.WorldServer;

import java.util.UUID;

Expand All @@ -12,11 +17,18 @@ public class PacketOutSpawnEntity_v1_9_R2 implements PacketOutSpawnEntity {
private int entityId;
private UUID entityUuid;

public PacketOutSpawnEntity_v1_9_R2(Packet internal) {
public PacketOutSpawnEntity_v1_9_R2(EntityPlayer player, Packet internal) {
this.internal = internal;
Integer integer = ReflectionHelper.getFieldValue(internal.getClass(), "a", internal);
entityId = integer != null ? integer : -1;
entityUuid = ReflectionHelper.getFieldValue(internal.getClass(), "b", internal);
if (!(internal instanceof PacketPlayOutSpawnEntityExperienceOrb)) {
entityUuid = ReflectionHelper.getFieldValue(internal.getClass(), "b", internal);
}
else {
EntityTracker tracker = ((WorldServer) player.world).tracker;
EntityTrackerEntry entry = tracker.trackedEntities.get(entityId);
entityUuid = entry != null ? entry.b().getUniqueID() : null;
}
}

@Override
Expand Down
Expand Up @@ -88,7 +88,7 @@ else if (packet instanceof PacketPlayOutNamedEntitySpawn
|| packet instanceof PacketPlayOutSpawnEntityLiving
|| packet instanceof PacketPlayOutSpawnEntityPainting
|| packet instanceof PacketPlayOutSpawnEntityExperienceOrb) {
PacketOutSpawnEntity spawnEntity = new PacketOutSpawnEntity_v1_9_R2(packet);
PacketOutSpawnEntity spawnEntity = new PacketOutSpawnEntity_v1_9_R2(player, packet);
UUID uuid = spawnEntity.getEntityUuid();
if (!NMSHandler.getInstance().getEntityHelper().isHidden(player.getBukkitEntity(), uuid)) {
Entity entity = ((WorldServer) player.getWorld()).getEntity(uuid);
Expand Down

0 comments on commit 9cfa151

Please sign in to comment.