diff --git a/Bukkit/build.gradle b/Bukkit/build.gradle index 0de71b3e4..2d34329da 100644 --- a/Bukkit/build.gradle +++ b/Bukkit/build.gradle @@ -1,6 +1,6 @@ dependencies { compile project(':Core') - compile 'org.bukkit:bukkit:1.9.2-R0.1-SNAPSHOT' + compile 'org.bukkit:bukkit:1.10-R0.1-SNAPSHOT' compile 'org.mcstats.bukkit:metrics:R7' compile 'net.milkbowl.vault:VaultAPI:1.6' } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/object/entity/EntityWrapper.java b/Bukkit/src/main/java/com/plotsquared/bukkit/object/entity/EntityWrapper.java index 2322bb49f..de86897e7 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/object/entity/EntityWrapper.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/object/entity/EntityWrapper.java @@ -57,6 +57,7 @@ public class EntityWrapper { private TameableStats tamed; private ArmorStandStats stand; private HorseStats horse; + private boolean noGravity; public EntityWrapper(Entity entity, short depth) { this.hash = entity.getEntityId(); @@ -85,6 +86,9 @@ public class EntityWrapper { if (depth == 1) { return; } + if (!entity.hasGravity()) { + this.noGravity = true; + } switch (entity.getType()) { case ARROW: case BOAT: @@ -136,25 +140,25 @@ public class EntityWrapper { this.stack = item.getItemStack(); return; case ITEM_FRAME: - ItemFrame itemframe = (ItemFrame) entity; this.x = Math.floor(this.x); this.y = Math.floor(this.y); this.z = Math.floor(this.z); - this.dataByte = getOrdinal(Rotation.values(), itemframe.getRotation()); - this.stack = itemframe.getItem().clone(); + ItemFrame itemFrame = (ItemFrame) entity; + this.dataByte = getOrdinal(Rotation.values(), itemFrame.getRotation()); + this.stack = itemFrame.getItem().clone(); return; case PAINTING: - Painting painting = (Painting) entity; this.x = Math.floor(this.x); this.y = Math.floor(this.y); this.z = Math.floor(this.z); - Art a = painting.getArt(); + Painting painting = (Painting) entity; + Art art = painting.getArt(); this.dataByte = getOrdinal(BlockFace.values(), painting.getFacing()); - int h = a.getBlockHeight(); + int h = art.getBlockHeight(); if (h % 2 == 0) { this.y -= 1; } - this.dataString = a.name(); + this.dataString = art.name(); return; // END MISC // // INVENTORY HOLDER // @@ -212,7 +216,7 @@ public class EntityWrapper { storeLiving((LivingEntity) entity); return; case SKELETON: - this.dataByte = (byte) ((Skeleton) entity).getSkeletonType().getId(); + this.dataByte = getOrdinal(SkeletonType.values(),((Skeleton)entity).getSkeletonType()); storeLiving((LivingEntity) entity); return; case ARMOR_STAND: @@ -258,9 +262,6 @@ public class EntityWrapper { if (!stand.hasBasePlate()) { this.stand.noplate = true; } - if (!stand.hasGravity()) { - this.stand.nogravity = true; - } if (!stand.isVisible()) { this.stand.invisible = true; } @@ -464,7 +465,7 @@ public class EntityWrapper { if (this.base.passenger != null) { try { entity.setPassenger(this.base.passenger.spawn(world, x_offset, z_offset)); - } catch (Exception ignored) {} + } catch (Exception ignored) { } } if (this.base.fall != 0) { entity.setFallDistance(this.base.fall); @@ -479,6 +480,9 @@ public class EntityWrapper { if (this.depth == 1) { return entity; } + if (this.noGravity) { + entity.setGravity(false); + } switch (entity.getType()) { case ARROW: case BOAT: @@ -583,6 +587,7 @@ public class EntityWrapper { case VILLAGER: case CHICKEN: case COW: + case POLAR_BEAR: case MUSHROOM_COW: case PIG: restoreAgeable((Ageable) entity); @@ -656,9 +661,6 @@ public class EntityWrapper { if (this.stand.arms) { stand.setArms(true); } - if (this.stand.nogravity) { - stand.setGravity(false); - } if (this.stand.noplate) { stand.setBasePlate(false); } @@ -704,7 +706,7 @@ public class EntityWrapper { } restoreLiving((LivingEntity) entity); return entity; - // END LIVING // + // END LIVING } } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/SendChunk.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/SendChunk.java index 2016a7177..f90ea83a2 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/SendChunk.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/SendChunk.java @@ -52,6 +52,7 @@ public class SendChunk { this.methodInitLighting = classChunk.getMethod("initLighting"); RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk"); if (PS.get().checkVersion(PS.get().IMP.getServerVersion(), 1, 9, 4)) { + //this works for 1.9.4 and 1.10 tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(),int.class); } else { try { diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_9.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_9.java index e9a267398..6b8885772 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_9.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/block/FastQueue_1_9.java @@ -78,7 +78,7 @@ public class FastQueue_1_9 extends SlowQueue { } /** - * This should be overridden by any specialized queues + * This should be overridden by any specialized queues. * @param plotChunk */ @Override