Merge pull request #10 from Mineplex-LLC/Dual_1.9

Dual 1.9 Build
This commit is contained in:
Shaun Bennett 2016-03-02 13:00:09 -06:00
commit 28486c8d65
62 changed files with 10510 additions and 872 deletions

View File

@ -0,0 +1,21 @@
From 32269ec951791791fe8553f0939c6eaa2b6b472b Mon Sep 17 00:00:00 2001
From: libraryaddict <libraryaddict115@yahoo.co.nz>
Date: Wed, 30 Dec 2015 19:57:10 +1300
Subject: [PATCH] Add Elytra
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 0fb2605..bc930d1 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -443,6 +443,7 @@ public enum Material {
JUNGLE_DOOR_ITEM(429),
ACACIA_DOOR_ITEM(430),
DARK_OAK_DOOR_ITEM(431),
+ ELYTRA(443),
GOLD_RECORD(2256, 1),
GREEN_RECORD(2257, 1),
RECORD_3(2258, 1),
--
1.9.5.msysgit.0

View File

@ -0,0 +1,46 @@
From 24a5d0cfe1d62e2ff6a3a0a279c63b038a134629 Mon Sep 17 00:00:00 2001
From: libraryaddict <libraryaddict115@yahoo.co.nz>
Date: Wed, 30 Dec 2015 21:05:47 +1300
Subject: [PATCH] Levitation potion effect
diff --git a/src/main/java/org/bukkit/potion/PotionEffectType.java b/src/main/java/org/bukkit/potion/PotionEffectType.java
index 4919d59..e75aa18 100644
--- a/src/main/java/org/bukkit/potion/PotionEffectType.java
+++ b/src/main/java/org/bukkit/potion/PotionEffectType.java
@@ -126,6 +126,11 @@ public abstract class PotionEffectType {
*/
public static final PotionEffectType SATURATION = new PotionEffectTypeWrapper(23);
+ /**
+ * Slows the fall rate down
+ */
+ public static final PotionEffectType LEVITATION = new PotionEffectTypeWrapper(25);
+
private final int id;
protected PotionEffectType(int id) {
@@ -202,7 +207,7 @@ public abstract class PotionEffectType {
return "PotionEffectType[" + id + ", " + getName() + "]";
}
- private static final PotionEffectType[] byId = new PotionEffectType[24];
+ private static final PotionEffectType[] byId = new PotionEffectType[26];
private static final Map<String, PotionEffectType> byName = new HashMap<String, PotionEffectType>();
// will break on updates.
private static boolean acceptingNew = true;
diff --git a/src/main/java/org/bukkit/potion/PotionType.java b/src/main/java/org/bukkit/potion/PotionType.java
index 6ad9a91..a3dc228 100644
--- a/src/main/java/org/bukkit/potion/PotionType.java
+++ b/src/main/java/org/bukkit/potion/PotionType.java
@@ -15,6 +15,7 @@ public enum PotionType {
INSTANT_DAMAGE(12, PotionEffectType.HARM, 2),
WATER_BREATHING(13, PotionEffectType.WATER_BREATHING, 1),
INVISIBILITY(14, PotionEffectType.INVISIBILITY, 1),
+ LEVITATION(15, PotionEffectType.LEVITATION, 1),
;
private final int damageValue, maxLevel;
--
1.9.5.msysgit.0

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
From d1cf06c308d35a765cf2d11b170a9d0f8fabb418 Mon Sep 17 00:00:00 2001
From: libraryaddict <libraryaddict115@yahoo.co.nz>
Date: Wed, 30 Dec 2015 22:38:30 +1300
Subject: [PATCH] Some debug and crash fixes
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index b1348b9..147295e 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -932,12 +932,14 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
protected void a(MobEffect mobeffect, boolean flag) {
super.a(mobeffect, flag);
- this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect));
+ if (this.playerConnection.networkManager.getVersion() > 47 || mobeffect.getEffectId() != 25)
+ this.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.getId(), mobeffect));
}
protected void b(MobEffect mobeffect) {
super.b(mobeffect);
- this.playerConnection.sendPacket(new PacketPlayOutRemoveEntityEffect(this.getId(), mobeffect));
+ if (this.playerConnection.networkManager.getVersion() > 47 || mobeffect.getEffectId() != 25)
+ this.playerConnection.sendPacket(new PacketPlayOutRemoveEntityEffect(this.getId(), mobeffect));
}
public void enderTeleportTo(double d0, double d1, double d2) {
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 39f0b73..e5c947f 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -428,7 +428,8 @@ public class EntityTrackerEntry {
while (iterator.hasNext()) {
MobEffect mobeffect = (MobEffect) iterator.next();
- entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.tracker.getId(), mobeffect));
+ if (entityplayer.playerConnection.networkManager.getVersion() > 47 || mobeffect.getEffectId() != 25)
+ entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(this.tracker.getId(), mobeffect));
}
}
}
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
index ef51cd4..54c1ec9 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunkBulk.java
@@ -14,7 +14,7 @@ public class PacketPlayOutMapChunkBulk implements Packet<PacketListenerPlayOut>
public PacketPlayOutMapChunkBulk() {}
- public PacketPlayOutMapChunkBulk(List<Chunk> list) {Thread.dumpStack();
+ public PacketPlayOutMapChunkBulk(List<Chunk> list) {
int i = list.size();
mapChunks = list;
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 81e231d..42d9e76 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -168,7 +168,8 @@ public abstract class PlayerList {
while (iterator.hasNext()) {
MobEffect mobeffect = (MobEffect) iterator.next();
- playerconnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobeffect));
+ if (playerconnection.networkManager.getVersion() > 47 || mobeffect.getEffectId() != 25)
+ playerconnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobeffect));
}
entityplayer.syncInventory();
@@ -615,7 +616,9 @@ public abstract class PlayerList {
entityplayer.updateAbilities();
for (Object o1 : entityplayer.getEffects()) {
MobEffect mobEffect = (MobEffect) o1;
- entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobEffect));
+
+ if (entityplayer.playerConnection.networkManager.getVersion() > 47 || mobEffect.getEffectId() != 25)
+ entityplayer.playerConnection.sendPacket(new PacketPlayOutEntityEffect(entityplayer.getId(), mobEffect));
}
// entityplayer1.syncInventory();
// CraftBukkit end
--
1.9.5.msysgit.0

View File

@ -0,0 +1,319 @@
From 0d1bec3dad53441ead8ac0f22e2464a924fb8818 Mon Sep 17 00:00:00 2001
From: git <libraryaddict115@yahoo.co.nz>
Date: Thu, 25 Feb 2016 18:20:02 +1300
Subject: [PATCH] Current patch stuff
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 5c09068..45a9acb 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -160,6 +160,8 @@ public class EntityEnderman extends EntityMonster {
}
protected boolean k(double d0, double d1, double d2) {
+ if (isVegetated())
+ return false;
double d3 = this.locX;
double d4 = this.locY;
double d5 = this.locZ;
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index d074110..e9a324a 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -550,13 +550,13 @@ public abstract class EntityLiving extends Entity {
protected void B() {
if (this.effects.isEmpty()) {
this.bj();
- this.setInvisible(false);
+ this.setInvisible(isMineplexInvisible());
} else {
int i = PotionBrewer.a(this.effects.values());
this.datawatcher.watch(8, Byte.valueOf((byte) (PotionBrewer.b(this.effects.values()) ? 1 : 0)), META_AMBIENT_POTION, PotionBrewer.b(this.effects.values()));
this.datawatcher.watch(7, Integer.valueOf(i), META_POTION_COLOR, i);
- this.setInvisible(this.hasEffect(MobEffectList.INVISIBILITY.id));
+ this.setInvisible(isMineplexInvisible() || this.hasEffect(MobEffectList.INVISIBILITY.id));
}
}
diff --git a/src/main/java/net/minecraft/server/EnumProtocol.java b/src/main/java/net/minecraft/server/EnumProtocol.java
index f3877e4..0343bf8 100644
--- a/src/main/java/net/minecraft/server/EnumProtocol.java
+++ b/src/main/java/net/minecraft/server/EnumProtocol.java
@@ -219,7 +219,11 @@ public enum EnumProtocol
public Integer a(EnumProtocolDirection enumprotocoldirection, Packet packet, boolean is1_8)
{
Entry entry = (Entry) ((BiMap)j.get(enumprotocoldirection)).inverse().get(packet.getClass());
- if ((Integer) (is1_8 ? entry.getKey() : entry.getValue()) < 0){System.out.print("Trying to send unsupported " + packet.getClass().getSimpleName());Thread.dumpStack();}
+ if ((Integer) (is1_8 ? entry.getKey() : entry.getValue()) < 0)
+ {
+ System.out.print("Trying to send unsupported " + packet.getClass().getSimpleName());
+ Thread.dumpStack();
+ }
return (Integer) (is1_8 ? entry.getKey() : entry.getValue());
}
diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
index 824ec1b..9d27032 100644
--- a/src/main/java/net/minecraft/server/HandshakeListener.java
+++ b/src/main/java/net/minecraft/server/HandshakeListener.java
@@ -25,7 +25,7 @@ public class HandshakeListener implements PacketHandshakingInListener {
int version = packethandshakinginsetprotocol.b();
//System.out.print(version);
- boolean supported = version == 47 || version == 94;
+ boolean supported = version == 47 || version == 104;
if (supported)
{
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
index 702d33d..c3a067e 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
@@ -5,9 +5,9 @@ import java.io.IOException;
public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
public int a;
- public byte b;
- public byte c;
- public byte d;
+ public short b;
+ public short c;
+ public short d;
public byte e;
public byte f;
public boolean g;
@@ -87,9 +87,18 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
public void b(PacketDataSerializer packetdataserializer) throws IOException {
super.b(packetdataserializer);
- packetdataserializer.writeByte(this.b);
- packetdataserializer.writeByte(this.c);
- packetdataserializer.writeByte(this.d);
+ if (packetdataserializer.version != 47)
+ {
+ packetdataserializer.writeShort(this.b);
+ packetdataserializer.writeShort(this.c);
+ packetdataserializer.writeShort(this.d);
+ }
+ else
+ {
+ packetdataserializer.writeByte(this.b);
+ packetdataserializer.writeByte(this.c);
+ packetdataserializer.writeByte(this.d);
+ }
packetdataserializer.writeBoolean(this.g);
}
}
@@ -123,9 +132,18 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
public void b(PacketDataSerializer packetdataserializer) throws IOException {
super.b(packetdataserializer);
- packetdataserializer.writeByte(this.b);
- packetdataserializer.writeByte(this.c);
- packetdataserializer.writeByte(this.d);
+ if (packetdataserializer.version != 47)
+ {
+ packetdataserializer.writeShort(this.b);
+ packetdataserializer.writeShort(this.c);
+ packetdataserializer.writeShort(this.d);
+ }
+ else
+ {
+ packetdataserializer.writeByte(this.b);
+ packetdataserializer.writeByte(this.c);
+ packetdataserializer.writeByte(this.d);
+ }
packetdataserializer.writeByte(this.e);
packetdataserializer.writeByte(this.f);
packetdataserializer.writeBoolean(this.g);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java b/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java
index 4730b34..3fa9fe4 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntityTeleport.java
@@ -44,9 +44,15 @@ public class PacketPlayOutEntityTeleport implements Packet<PacketListenerPlayOut
public void b(PacketDataSerializer packetdataserializer) {
packetdataserializer.b(this.a);
+ if (packetdataserializer.version == 47){
packetdataserializer.writeInt(this.b);
packetdataserializer.writeInt(this.c);
packetdataserializer.writeInt(this.d);
+ } else {
+ packetdataserializer.writeDouble(this.b/32D);
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ }
packetdataserializer.writeByte(this.e);
packetdataserializer.writeByte(this.f);
packetdataserializer.writeBoolean(this.g);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutNamedEntitySpawn.java b/src/main/java/net/minecraft/server/PacketPlayOutNamedEntitySpawn.java
index 340787a..efc9a08 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutNamedEntitySpawn.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutNamedEntitySpawn.java
@@ -48,9 +48,15 @@ public class PacketPlayOutNamedEntitySpawn implements Packet<PacketListenerPlayO
public void b(PacketDataSerializer packetdataserializer) throws IOException {
packetdataserializer.b(this.a);
packetdataserializer.a(this.b);
- packetdataserializer.writeInt(this.c);
- packetdataserializer.writeInt(this.d);
- packetdataserializer.writeInt(this.e);
+ if (packetdataserializer.version != 47){
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ packetdataserializer.writeDouble(this.e/32D);
+ }else {
+ packetdataserializer.writeInt(this.c);
+ packetdataserializer.writeInt(this.d);
+ packetdataserializer.writeInt(this.e);
+ }
packetdataserializer.writeByte(this.f);
packetdataserializer.writeByte(this.g);
if (packetdataserializer.version == 47)
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java b/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
index 6c8c8fa..b72b7d7 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
@@ -279,6 +279,7 @@ public class PacketPlayOutNamedSoundEffect
toPlay = sounds.get(toPlay);
packetdataserializer.a(toPlay);
+ packetdataserializer.b(0);
packetdataserializer.writeInt(b);
packetdataserializer.writeInt(c);
packetdataserializer.writeInt(d);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntity.java
index 0c60066..c9de471 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntity.java
@@ -93,9 +93,15 @@ public class PacketPlayOutSpawnEntity implements Packet<PacketListenerPlayOut> {
if (packetdataserializer.version != 47)
packetdataserializer.a(this.uuid);
packetdataserializer.writeByte(this.j);
- packetdataserializer.writeInt(this.b);
- packetdataserializer.writeInt(this.c);
- packetdataserializer.writeInt(this.d);
+ if (packetdataserializer.version != 47){
+ packetdataserializer.writeDouble(this.b/32D);
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ }else {
+ packetdataserializer.writeInt(this.b);
+ packetdataserializer.writeInt(this.c);
+ packetdataserializer.writeInt(this.d);
+ }
packetdataserializer.writeByte(this.h);
packetdataserializer.writeByte(this.i);
packetdataserializer.writeInt(this.k);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityExperienceOrb.java b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityExperienceOrb.java
index 4f2b03e..0a39433 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityExperienceOrb.java
@@ -42,9 +42,15 @@ public class PacketPlayOutSpawnEntityExperienceOrb
throws IOException
{
packetdataserializer.b(a);
- packetdataserializer.writeInt(b);
- packetdataserializer.writeInt(c);
- packetdataserializer.writeInt(d);
+ if (packetdataserializer.version != 47){
+ packetdataserializer.writeDouble(this.b/32D);
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ }else {
+ packetdataserializer.writeInt(this.b);
+ packetdataserializer.writeInt(this.c);
+ packetdataserializer.writeInt(this.d);
+ }
packetdataserializer.writeShort(e);
}
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityLiving.java b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityLiving.java
index 9da448e..ea7c98b 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityLiving.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityLiving.java
@@ -88,9 +88,15 @@ public class PacketPlayOutSpawnEntityLiving implements Packet<PacketListenerPlay
if (packetdataserializer.version != 47)
packetdataserializer.a(this.uuid);
packetdataserializer.writeByte(this.b & 255);
- packetdataserializer.writeInt(this.c);
- packetdataserializer.writeInt(this.d);
- packetdataserializer.writeInt(this.e);
+ if (packetdataserializer.version != 47){
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ packetdataserializer.writeDouble(this.e/32D);
+ }else {
+ packetdataserializer.writeInt(this.c);
+ packetdataserializer.writeInt(this.d);
+ packetdataserializer.writeInt(this.e);
+ }
packetdataserializer.writeByte(this.i);
packetdataserializer.writeByte(this.j);
packetdataserializer.writeByte(this.k);
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityWeather.java b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityWeather.java
index 2ce95fa..51a3a21 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityWeather.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutSpawnEntityWeather.java
@@ -44,9 +44,15 @@ public class PacketPlayOutSpawnEntityWeather
{
packetdataserializer.b(a);
packetdataserializer.writeByte(e);
- packetdataserializer.writeInt(b);
- packetdataserializer.writeInt(c);
- packetdataserializer.writeInt(d);
+ if (packetdataserializer.version != 47){
+ packetdataserializer.writeDouble(this.b/32D);
+ packetdataserializer.writeDouble(this.c/32D);
+ packetdataserializer.writeDouble(this.d/32D);
+ }else {
+ packetdataserializer.writeInt(this.b);
+ packetdataserializer.writeInt(this.c);
+ packetdataserializer.writeInt(this.d);
+ }
}
public void a(PacketListenerPlayOut packetlistenerplayout)
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 16f8609..b1400c7 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1212,6 +1212,17 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList
if (movingobjectposition == null || movingobjectposition.type != MovingObjectPosition.EnumMovingObjectType.BLOCK) {
CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_AIR, this.player.inventory.getItemInHand());
}
+ // Spigot start
+ else if (movingobjectposition.type == MovingObjectPosition.EnumMovingObjectType.BLOCK
+ && (player.playerInteractManager.getGameMode() == WorldSettings.EnumGamemode.ADVENTURE || player.playerInteractManager.getGameMode() == WorldSettings.EnumGamemode.SPECTATOR)) {
+ // RIGHT_CLICK_BLOCK sets this flag
+ if (player.playerInteractManager.firedInteract) {
+ player.playerInteractManager.firedInteract = false;
+ } else {
+ CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_BLOCK, movingobjectposition.a(), movingobjectposition.direction, player.inventory.getItemInHand(), true);
+ }
+ }
+ // Spigot end
// Arm swing animation
PlayerAnimationEvent event = new PlayerAnimationEvent(this.getPlayer());
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
index 0cc8f9b..dd07600 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
@@ -14,9 +14,9 @@ public class CraftSound {
set(AMBIENCE_RAIN, "ambient.weather.rain");
set(AMBIENCE_THUNDER, "ambient.weather.thunder");
// Damage
- set(HURT_FLESH, "game.neutral.hurt");
- set(FALL_BIG, "game.neutral.hurt.fall.big");
- set(FALL_SMALL, "game.neutral.hurt.fall.small");
+ set(HURT_FLESH, "game.player.hurt");
+ set(FALL_BIG, "game.player.hurt.fall.big");
+ set(FALL_SMALL, "game.player.hurt.fall.small");
// Dig Sounds
set(DIG_WOOL, "dig.cloth");
set(DIG_GRASS, "dig.grass");
--
1.9.5.msysgit.0

View File

@ -0,0 +1,135 @@
From af6ac4b09da7ad63ebb568333807c7621398f0a6 Mon Sep 17 00:00:00 2001
From: git <libraryaddict115@yahoo.co.nz>
Date: Sun, 28 Feb 2016 00:37:30 +1300
Subject: [PATCH] Changed maven version, fixed entity movement, fixed sound
packet
diff --git a/pom.xml b/pom.xml
index 91627ff..1ea9f81 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<groupId>org.spigotmc</groupId>
<artifactId>spigot</artifactId>
<packaging>jar</packaging>
- <version>1.8.8-R0.1-SNAPSHOT</version>
+ <version>1.8.8-1.9-SNAPSHOT</version>
<name>Spigot</name>
<url>http://www.spigotmc.org</url>
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index e5c947f..9cd9be6 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -145,6 +145,7 @@ public class EntityTrackerEntry {
int k1 = j - this.yLoc;
int l1 = k - this.zLoc;
Object object = null;
+ Object object2 = null;
boolean flag = Math.abs(j1) >= 4 || Math.abs(k1) >= 4 || Math.abs(l1) >= 4 || this.m % 60 == 0;
boolean flag1 = Math.abs(l - this.yRot) >= 4 || Math.abs(i1 - this.xRot) >= 4;
@@ -163,10 +164,12 @@ public class EntityTrackerEntry {
if (this.m > 0 || this.tracker instanceof EntityArrow) {
if (j1 >= -128 && j1 < 128 && k1 >= -128 && k1 < 128 && l1 >= -128 && l1 < 128 && this.v <= 400 && !this.x && this.y == this.tracker.onGround) {
+ object2 = new PacketPlayOutEntityTeleport(this.tracker.getId(), i, j, k, (byte) l, (byte) i1, this.tracker.onGround);
if ((!flag || !flag1) && !(this.tracker instanceof EntityArrow)) {
if (flag) {
object = new PacketPlayOutEntity.PacketPlayOutRelEntityMove(this.tracker.getId(), (byte) j1, (byte) k1, (byte) l1, this.tracker.onGround);
} else if (flag1) {
+ object2 = null;
object = new PacketPlayOutEntity.PacketPlayOutEntityLook(this.tracker.getId(), (byte) l, (byte) i1, this.tracker.onGround);
}
} else {
@@ -200,7 +203,15 @@ public class EntityTrackerEntry {
}
if (object != null) {
- this.broadcast((Packet) object);
+
+ Iterator iterator = this.trackedPlayers.iterator();
+
+ while (iterator.hasNext()) {
+ EntityPlayer entityplayer = (EntityPlayer) iterator.next();
+ Packet packetToSend = object2 == null || entityplayer.playerConnection.networkManager.getVersion() == 47 ? (Packet) object : (Packet) object2;
+
+ entityplayer.playerConnection.sendPacket(packetToSend);
+ }
}
this.b();
diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
index 9d27032..21dbf3b 100644
--- a/src/main/java/net/minecraft/server/HandshakeListener.java
+++ b/src/main/java/net/minecraft/server/HandshakeListener.java
@@ -25,7 +25,7 @@ public class HandshakeListener implements PacketHandshakingInListener {
int version = packethandshakinginsetprotocol.b();
//System.out.print(version);
- boolean supported = version == 47 || version == 104;
+ boolean supported = version == 47 || version >= 104;
if (supported)
{
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
index c3a067e..8436897 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutEntity.java
@@ -5,9 +5,9 @@ import java.io.IOException;
public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
public int a;
- public short b;
- public short c;
- public short d;
+ public byte b;
+ public byte c;
+ public byte d;
public byte e;
public byte f;
public boolean g;
@@ -89,9 +89,9 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
super.b(packetdataserializer);
if (packetdataserializer.version != 47)
{
- packetdataserializer.writeShort(this.b);
- packetdataserializer.writeShort(this.c);
- packetdataserializer.writeShort(this.d);
+ packetdataserializer.writeShort((short) this.b);
+ packetdataserializer.writeShort((short) this.c);
+ packetdataserializer.writeShort((short) this.d);
}
else
{
@@ -134,9 +134,9 @@ public class PacketPlayOutEntity implements Packet<PacketListenerPlayOut> {
super.b(packetdataserializer);
if (packetdataserializer.version != 47)
{
- packetdataserializer.writeShort(this.b);
- packetdataserializer.writeShort(this.c);
- packetdataserializer.writeShort(this.d);
+ packetdataserializer.writeShort((short) this.b);
+ packetdataserializer.writeShort((short) this.c);
+ packetdataserializer.writeShort((short) this.d);
}
else
{
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java b/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
index b72b7d7..bcfdab9 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutNamedSoundEffect.java
@@ -279,7 +279,8 @@ public class PacketPlayOutNamedSoundEffect
toPlay = sounds.get(toPlay);
packetdataserializer.a(toPlay);
- packetdataserializer.b(0);
+ if (packetdataserializer.version > 47)
+ packetdataserializer.b(0);
packetdataserializer.writeInt(b);
packetdataserializer.writeInt(c);
packetdataserializer.writeInt(d);
--
1.9.5.msysgit.0

View File

@ -0,0 +1,60 @@
From 48550b9915d18d2d4a528c4028c8fa35a97a036c Mon Sep 17 00:00:00 2001
From: git <libraryaddict115@yahoo.co.nz>
Date: Tue, 1 Mar 2016 09:29:32 +1300
Subject: [PATCH] Update to 1.9, fix blocking
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 2f52ea2..c2ce92f 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1745,6 +1745,14 @@ public abstract class Entity implements ICommandListener {
}
public void f(boolean flag) {
+ if (this instanceof EntityPlayer)
+ {
+ EntityPlayer player = (EntityPlayer) this;
+
+ if (player.playerConnection.networkManager.getVersion() != 47 && player.bS() && player.getHeldItem().getItem().e(player.getHeldItem()) == EnumAnimation.BLOCK)
+ return;
+ }
+
this.b(4, flag);
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 743df69..998ea69 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -124,8 +124,13 @@ public abstract class EntityHuman extends EntityLiving {
}
+ public ItemStack getHeldItem()
+ {
+ return this.g;
+ }
+
public boolean isBlocking() {
- return this.bS() && this.g.getItem().e(this.g) == EnumAnimation.BLOCK;
+ return ((EntityPlayer) this).playerConnection.networkManager.getVersion() == 47 && this.bS() && this.g.getItem().e(this.g) == EnumAnimation.BLOCK;
}
public void t_() {
diff --git a/src/main/java/net/minecraft/server/HandshakeListener.java b/src/main/java/net/minecraft/server/HandshakeListener.java
index 21dbf3b..0d8aff4 100644
--- a/src/main/java/net/minecraft/server/HandshakeListener.java
+++ b/src/main/java/net/minecraft/server/HandshakeListener.java
@@ -25,7 +25,7 @@ public class HandshakeListener implements PacketHandshakingInListener {
int version = packethandshakinginsetprotocol.b();
//System.out.print(version);
- boolean supported = version == 47 || version >= 104;
+ boolean supported = version == 47 || version == 107;
if (supported)
{
--
1.9.5.msysgit.0

View File

@ -39,7 +39,7 @@ public class PlayerCache
catch (Exception exception) catch (Exception exception)
{ {
System.out.println("Error adding player info in PlayerCache : " + exception.getMessage()); System.out.println("Error adding player info in PlayerCache : " + exception.getMessage());
// exception.printStackTrace(); exception.printStackTrace();
} }
} }
@ -47,9 +47,8 @@ public class PlayerCache
{ {
try try
{ {
System.out.println("Getting PlayerCache for " + uuid.toString());
PlayerInfo playerInfo = _repository.getElement(uuid.toString()); PlayerInfo playerInfo = _repository.getElement(uuid.toString());
System.out.println("Got playerINfo: " + playerInfo); System.out.println("Got playerInfo: " + playerInfo);
if (playerInfo != null) if (playerInfo != null)
{ {
System.out.println("account id: " + playerInfo.getAccountId()); System.out.println("account id: " + playerInfo.getAccountId());

View File

@ -67,6 +67,11 @@ public class UtilPlayer
return true; return true;
} }
public static boolean is1_9(Player player)
{
return ((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion() > 47;
}
private static class Vector3D private static class Vector3D
{ {

View File

@ -1,8 +1,15 @@
package mineplex.core.common.util; package mineplex.core.common.util;
import java.util.HashMap;
import java.util.UUID;
import mineplex.core.common.DummyEntity; import mineplex.core.common.DummyEntity;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.EntityLiving;
import net.minecraft.server.v1_8_R3.EntityWither;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.PacketPlayOutBossBar;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
@ -10,144 +17,220 @@ import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scheduler.BukkitRunnable;
public class UtilTextTop public class UtilTextTop
{ {
//Base Commands // Base Commands
public static void display(String text, Player... players) public static void display(String text, Player... players)
{ {
displayProgress(text, 1, players); displayProgress(text, 1, players);
} }
public static void displayProgress(String text, double progress, Player... players) public static void displayProgress(String text, double progress, Player... players)
{ {
for (Player player : players) for (Player player : players)
displayTextBar(player, progress, text); displayTextBar(player, progress, text);
} }
//Logic // Logic
public static final int EntityDragonId = 777777; public static final int EntityDragonId = 777777;
public static final int EntityWitherId = 777778; public static final int EntityWitherId = 777778;
public static final UUID BossUUID = UUID.fromString("178f5cde-2fb0-3e73-8296-967ec7e46748");
//Display private static HashMap<String, BukkitRunnable> _lastUpdated = new HashMap<String, BukkitRunnable>();
// Display
public static void displayTextBar(final Player player, double healthPercent, String text) public static void displayTextBar(final Player player, double healthPercent, String text)
{ {
deleteOld(player); if (_lastUpdated.containsKey(player.getName()))
healthPercent = Math.min(1, healthPercent);
//Display Dragon
{ {
Location loc = player.getLocation().subtract(0, 200, 0); _lastUpdated.get(player.getName()).cancel();
UtilPlayer.sendPacket(player, getDragonPacket(text, healthPercent, loc));
} }
//Display Wither (as well as Dragon)
Location loc = player.getEyeLocation().add(player.getLocation().getDirection().multiply(24));
UtilPlayer.sendPacket(player, getWitherPacket(text, healthPercent, loc)); healthPercent = Math.max(0, Math.min(1, healthPercent));
//Remove // Remove
Bukkit.getServer().getScheduler().runTaskLater(Bukkit.getPluginManager().getPlugins()[0], new Runnable() final BukkitRunnable runnable = new BukkitRunnable()
{ {
public void run() public void run()
{ {
if (_lastUpdated.containsKey(player.getName()) && _lastUpdated.get(player.getName()) != this)
return;
deleteOld(player); deleteOld(player);
_lastUpdated.remove(player.getName());
} }
}, 20); };
runnable.runTaskLater(Bukkit.getPluginManager().getPlugins()[0], 20);
if (UtilPlayer.is1_9(player))
{
sendBossBar(player, healthPercent, text);
_lastUpdated.put(player.getName(), runnable);
return;
}
_lastUpdated.put(player.getName(), runnable);
deleteOld(player);
// Display Dragon
{
Location loc = player.getLocation().subtract(0, 200, 0);
UtilPlayer.sendPacket(player, getDragonPacket(text, healthPercent, loc));
}
// Display Wither (as well as Dragon)
Location loc = player.getEyeLocation().add(player.getLocation().getDirection().multiply(24));
UtilPlayer.sendPacket(player, getWitherPacket(text, healthPercent, loc));
}
private static void sendBossBar(Player player, double health, String text)
{
if (_lastUpdated.containsKey(player.getName()))
{
PacketPlayOutBossBar bossBar1 = new PacketPlayOutBossBar();
bossBar1.uuid = BossUUID;
bossBar1.action = 2;
bossBar1.health = (float) health;
PacketPlayOutBossBar bossBar2 = new PacketPlayOutBossBar();
bossBar2.uuid = BossUUID;
bossBar2.action = 3;
bossBar2.title = text;
UtilPlayer.sendPacket(player, bossBar1, bossBar2);
}
else
{
PacketPlayOutBossBar bossBar = new PacketPlayOutBossBar();
bossBar.uuid = BossUUID;
bossBar.title = text;
bossBar.health = (float) health;
bossBar.color = 2;
UtilPlayer.sendPacket(player, bossBar);
}
} }
private static void deleteOld(Player player) private static void deleteOld(Player player)
{ {
if (UtilPlayer.is1_9(player))
{
PacketPlayOutBossBar bossBar = new PacketPlayOutBossBar();
bossBar.uuid = BossUUID;
bossBar.action = 1;
UtilPlayer.sendPacket(player, bossBar);
return;
}
// Delete Dragon (All Clients) // Delete Dragon (All Clients)
PacketPlayOutEntityDestroy destroyDragonPacket = new PacketPlayOutEntityDestroy(new int[] PacketPlayOutEntityDestroy destroyDragonPacket = new PacketPlayOutEntityDestroy(new int[]
{ {
EntityDragonId EntityDragonId
}); });
UtilPlayer.sendPacket(player, destroyDragonPacket); UtilPlayer.sendPacket(player, destroyDragonPacket);
// Delete Wither (1.8+ Only) // Delete Wither (1.8+ Only)
PacketPlayOutEntityDestroy destroyWitherPacket = new PacketPlayOutEntityDestroy(new int[] PacketPlayOutEntityDestroy destroyWitherPacket = new PacketPlayOutEntityDestroy(new int[]
{ {
EntityWitherId EntityWitherId
}); });
UtilPlayer.sendPacket(player, destroyWitherPacket); UtilPlayer.sendPacket(player, destroyWitherPacket);
} }
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event)
{
if (UtilPlayer.is1_9(event.getPlayer()))
{
deleteOld(event.getPlayer());
}
}
public static PacketPlayOutSpawnEntityLiving getDragonPacket(String text, double healthPercent, Location loc) public static PacketPlayOutSpawnEntityLiving getDragonPacket(String text, double healthPercent, Location loc)
{ {
PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving();
mobPacket.a = (int) EntityDragonId; //Entity ID mobPacket.a = (int) EntityDragonId; // Entity ID
mobPacket.b = (byte) EntityType.ENDER_DRAGON.getTypeId(); //Mob type mobPacket.b = (byte) EntityType.ENDER_DRAGON.getTypeId(); // Mob type
mobPacket.c = (int) Math.floor(loc.getBlockX() * 32.0D); //X position mobPacket.c = (int) Math.floor(loc.getBlockX() * 32.0D); // X position
mobPacket.d = (int) MathHelper.floor(loc.getBlockY() * 32.0D); //Y position mobPacket.d = (int) MathHelper.floor(loc.getBlockY() * 32.0D); // Y position
mobPacket.e = (int) Math.floor(loc.getBlockZ() * 32.0D); //Z position mobPacket.e = (int) Math.floor(loc.getBlockZ() * 32.0D); // Z position
mobPacket.f = (byte) 0; //Pitch mobPacket.f = (byte) 0; // Pitch
mobPacket.g = (byte) 0; //Head Pitch mobPacket.g = (byte) 0; // Head Pitch
mobPacket.h = (byte) 0; //Yaw mobPacket.h = (byte) 0; // Yaw
mobPacket.i = (short) 0; //X velocity mobPacket.i = (short) 0; // X velocity
mobPacket.j = (short) 0; //Y velocity mobPacket.j = (short) 0; // Y velocity
mobPacket.k = (short) 0; //Z velocity mobPacket.k = (short) 0; // Z velocity
mobPacket.uuid = UUID.randomUUID();
//Health
// Health
double health = healthPercent * 199.9 + 0.1; double health = healthPercent * 199.9 + 0.1;
//if (halfHealth) // if (halfHealth)
// health = healthPercent * 99 + 101; // health = healthPercent * 99 + 101;
//Watcher // Watcher
DataWatcher watcher = getWatcher(text, health, loc.getWorld()); DataWatcher watcher = getWatcher(text, health, loc.getWorld());
mobPacket.l = watcher; mobPacket.l = watcher;
return mobPacket; return mobPacket;
} }
public static PacketPlayOutSpawnEntityLiving getWitherPacket(String text, double healthPercent, Location loc) public static PacketPlayOutSpawnEntityLiving getWitherPacket(String text, double healthPercent, Location loc)
{ {
PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving mobPacket = new PacketPlayOutSpawnEntityLiving();
mobPacket.a = (int) EntityWitherId; //Entity ID mobPacket.a = (int) EntityWitherId; // Entity ID
mobPacket.b = (byte) EntityType.WITHER.getTypeId(); //Mob type mobPacket.b = (byte) EntityType.WITHER.getTypeId(); // Mob type
mobPacket.c = (int) Math.floor(loc.getBlockX() * 32.0D); //X position mobPacket.c = (int) Math.floor(loc.getBlockX() * 32.0D); // X position
mobPacket.d = (int) MathHelper.floor(loc.getBlockY() * 32.0D); //Y position mobPacket.d = (int) MathHelper.floor(loc.getBlockY() * 32.0D); // Y position
mobPacket.e = (int) Math.floor(loc.getBlockZ() * 32.0D); //Z position mobPacket.e = (int) Math.floor(loc.getBlockZ() * 32.0D); // Z position
mobPacket.f = (byte) 0; //Pitch mobPacket.f = (byte) 0; // Pitch
mobPacket.g = (byte) 0; //Head Pitch mobPacket.g = (byte) 0; // Head Pitch
mobPacket.h = (byte) 0; //Yaw mobPacket.h = (byte) 0; // Yaw
mobPacket.i = (short) 0; //X velocity mobPacket.i = (short) 0; // X velocity
mobPacket.j = (short) 0; //Y velocity mobPacket.j = (short) 0; // Y velocity
mobPacket.k = (short) 0; //Z velocity mobPacket.k = (short) 0; // Z velocity
mobPacket.uuid = UUID.randomUUID();
//Health
// Health
double health = healthPercent * 299.9 + 0.1; double health = healthPercent * 299.9 + 0.1;
//if (halfHealth) // if (halfHealth)
// health = healthPercent * 149 + 151; // health = healthPercent * 149 + 151;
//Watcher // Watcher
DataWatcher watcher = getWatcher(text, health, loc.getWorld()); DataWatcher watcher = getWatcher(text, health, loc.getWorld());
mobPacket.l = watcher; mobPacket.l = watcher;
return mobPacket; return mobPacket;
} }
public static DataWatcher getWatcher(String text, double health, World world) public static DataWatcher getWatcher(String text, double health, World world)
{ {
DataWatcher watcher = new DataWatcher(new DummyEntity(((CraftWorld)world).getHandle())); DataWatcher watcher = new DataWatcher(new DummyEntity(((CraftWorld) world).getHandle()));
watcher.a(0, (Byte) (byte) 0); //Flags, 0x20 = invisible watcher.a(0, (Byte) (byte) (0 | 1 << 5), Entity.META_ENTITYDATA, (byte) (0 | 1 << 5)); // Flags, 0x20 = invisible
watcher.a(6, (Float) (float) health); watcher.a(6, (Float) (float) health, EntityLiving.META_HEALTH, (float) health);
watcher.a(2, (String) text); //Entity name watcher.a(2, (String) text, Entity.META_CUSTOMNAME, text); // Entity name
watcher.a(3, (Byte) (byte) 0); //Show name, 1 = show, 0 = don't show watcher.a(3, (Byte) (byte) 0, Entity.META_CUSTOMNAME_VISIBLE, false); // Show name, 1 = show, 0 = don't show
watcher.a(16, (Integer) (int) health); //Health // watcher.a(16, (Integer) (int) health, EntityWither.META); //Health
watcher.a(20, (Integer) (int) 881); //Inv watcher.a(20, (Integer) (int) 881, EntityWither.META_INVUL_TIME, 881); // Inv
int i1 = watcher.getByte(0);
watcher.watch(0, Byte.valueOf((byte)(i1 | 1 << 5)));
return watcher; return watcher;
} }

View File

@ -19,6 +19,8 @@ import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent; import mineplex.core.updater.event.UpdateEvent;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.DataWatcher.WatchableObject; import net.minecraft.server.v1_8_R3.DataWatcher.WatchableObject;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity; import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity;
import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.EnumEntityUseAction; import net.minecraft.server.v1_8_R3.PacketPlayInUseEntity.EnumEntityUseAction;
@ -519,25 +521,20 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler, NCPHook
{ {
DataWatcher watcher = new DataWatcher(new DummyEntity(((CraftWorld) owner.getWorld()).getHandle())); DataWatcher watcher = new DataWatcher(new DummyEntity(((CraftWorld) owner.getWorld()).getHandle()));
watcher.a(0, (byte) (0 | 1 << 5)); // Invisible watcher.a(0, (byte) (0 | 1 << 5), Entity.META_ENTITYDATA, (byte) (0 | 1 << 5)); // Invisible
watcher.a(1, Short.valueOf((short) 300)); watcher.a(1, Short.valueOf((short) 300), Entity.META_AIR, 0);
watcher.a(2, finalEntityName); watcher.a(2, finalEntityName, Entity.META_CUSTOMNAME, finalEntityName);
watcher.a(3, (byte) 1); watcher.a(3, (byte) 1, Entity.META_CUSTOMNAME_VISIBLE, true);
watcher.a(4, Byte.valueOf((byte) 0)); watcher.a(10, (byte) (0 | 0x1), EntityArmorStand.META_ARMOR_OPTION, (byte) (0 | 0x1)); // Small
watcher.a(7, Integer.valueOf(0));
watcher.a(8, Byte.valueOf((byte) 0));
watcher.a(9, Byte.valueOf((byte) 0));
watcher.a(6, Float.valueOf(1.0F));
watcher.a(10, (byte) (0 | 0x1)); // Small
if (newPacket) if (newPacket)
{ {
if (squidId >= 0) if (squidId >= 0)
{ {
watcher.watch(10, (byte) 16); watcher.watch(10, (byte) 16, EntityArmorStand.META_ARMOR_OPTION, (byte) 16);
DataWatcher squidWatcher = new DataWatcher(new DummyEntity(((CraftWorld) owner.getWorld()).getHandle())); DataWatcher squidWatcher = new DataWatcher(new DummyEntity(((CraftWorld) owner.getWorld()).getHandle()));
squidWatcher.a(0, (byte) (0 | 1 << 5)); squidWatcher.a(0, (byte) (0 | 1 << 5), Entity.META_ENTITYDATA, (byte) (0 | 1 << 5));
PacketPlayOutSpawnEntityLiving spawnPacket = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving spawnPacket = new PacketPlayOutSpawnEntityLiving();
spawnPacket.a = squidId; spawnPacket.a = squidId;
@ -545,6 +542,7 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler, NCPHook
spawnPacket.c = 1000000; spawnPacket.c = 1000000;
spawnPacket.l = squidWatcher; spawnPacket.l = squidWatcher;
spawnPacket.uuid = UUID.randomUUID();
UtilPlayer.sendPacket(owner, spawnPacket); UtilPlayer.sendPacket(owner, spawnPacket);
@ -562,6 +560,7 @@ public class CustomTagFix extends MiniPlugin implements IPacketHandler, NCPHook
spawnPacket.c = 1000000; spawnPacket.c = 1000000;
spawnPacket.l = watcher; spawnPacket.l = watcher;
spawnPacket.uuid = UUID.randomUUID();
UtilPlayer.sendPacket(owner, spawnPacket); UtilPlayer.sendPacket(owner, spawnPacket);

View File

@ -11,6 +11,7 @@ import org.bukkit.ChatColor;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
@ -30,6 +31,7 @@ import mineplex.core.common.Rank;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer; import mineplex.core.common.util.UtilServer;
@ -202,7 +204,12 @@ public class AntiHack extends MiniPlugin
return true; return true;
} }
if (player.isFlying() || player.isInsideVehicle() || player.getGameMode() != GameMode.SURVIVAL || UtilPlayer.isSpectator(player)) if (player.isFlying() || ((CraftPlayer) player).getHandle().isGliding() || player.isInsideVehicle() || player.getGameMode() != GameMode.SURVIVAL || UtilPlayer.isSpectator(player))
{
return true;
}
if (UtilInv.IsItem(player.getInventory().getArmorContents()[2], Material.ELYTRA, (byte) 0))
{ {
return true; return true;
} }

View File

@ -72,6 +72,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.EntityCreeper;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata;
public class BonusManager extends MiniClientPlugin<BonusClientData> implements ILoginProcessor public class BonusManager extends MiniClientPlugin<BonusClientData> implements ILoginProcessor
@ -408,7 +409,7 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
if (!_enabled) if (!_enabled)
return; return;
((CraftEntity)_carlNpc.getEntity()).getHandle().getDataWatcher().watch(16, (byte) -1); ((CraftEntity)_carlNpc.getEntity()).getHandle().getDataWatcher().watch(16, (byte) -1, EntityCreeper.META_FUSE_STATE, -1);
} }
public void IncreaseSize(Entity player) public void IncreaseSize(Entity player)
@ -416,7 +417,7 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
if (!_enabled) if (!_enabled)
return; return;
((CraftEntity)_carlNpc.getEntity()).getHandle().getDataWatcher().watch(16, (byte) 1); ((CraftEntity)_carlNpc.getEntity()).getHandle().getDataWatcher().watch(16, (byte) 1, EntityCreeper.META_FUSE_STATE, 1);
} }
// DAILY BONUS // DAILY BONUS
@ -939,9 +940,9 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
{ {
// Charged // Charged
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 0); watcher.a(0, (byte) 0, EntityCreeper.META_ENTITYDATA, (byte) 0);
watcher.a(1, (short) 300); watcher.a(1, (short) 300, EntityCreeper.META_AIR, 0);
watcher.a(17, (byte) 1); watcher.a(17, (byte) 1, EntityCreeper.META_POWERED, true);
PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(); PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata();
packet.a = _carlNpc.getEntity().getEntityId(); packet.a = _carlNpc.getEntity().getEntityId();
packet.b = watcher.c(); packet.b = watcher.c();
@ -958,7 +959,7 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
{ {
// Charged // Charged
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(17, (byte) 0); watcher.a(17, (byte) 0, EntityCreeper.META_POWERED, false);
PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata(); PacketPlayOutEntityMetadata packet = new PacketPlayOutEntityMetadata();
packet.a = _carlNpc.getEntity().getEntityId(); packet.a = _carlNpc.getEntity().getEntityId();
packet.b = watcher.c(); packet.b = watcher.c();

View File

@ -401,17 +401,17 @@ public class DisguiseManager extends MiniPlugin implements IPacketHandler
disguise(disguise, true, players); disguise(disguise, true, players);
} }
public Packet[] getBedChunkLoadPackets(Player player, Location newLoc) public PacketPlayOutMapChunk[] getBedChunkLoadPackets(Player player, Location newLoc)
{ {
prepareChunk(newLoc); prepareChunk(newLoc);
Packet[] packets = new Packet[2]; PacketPlayOutMapChunk[] packets = new PacketPlayOutMapChunk[2];
// Make unload // Make unload
packets[0] = new PacketPlayOutMapChunk(_bedChunk, true, 0); packets[0] = new PacketPlayOutMapChunk(_bedChunk, true, 0);
// Make load // Make load
packets[1] = new PacketPlayOutMapChunkBulk(Arrays.asList(_bedChunk)); packets[1] = new PacketPlayOutMapChunk(_bedChunk, true, '\uffff');
return packets; return packets;
} }
@ -823,7 +823,7 @@ public class DisguiseManager extends MiniPlugin implements IPacketHandler
PacketPlayOutNamedEntitySpawn namePacket = pDisguise.spawnBeforePlayer(player.getLocation()); PacketPlayOutNamedEntitySpawn namePacket = pDisguise.spawnBeforePlayer(player.getLocation());
namePacket.i.watch(0, (byte) 32); namePacket.i.watch(0, (byte) 32, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 32);
handlePacket(namePacket, packetVerifier); handlePacket(namePacket, packetVerifier);

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityAgeable;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public abstract class DisguiseAgeable extends DisguiseCreature public abstract class DisguiseAgeable extends DisguiseCreature
@ -8,14 +10,7 @@ public abstract class DisguiseAgeable extends DisguiseCreature
{ {
super(disguiseType, entity); super(disguiseType, entity);
DataWatcher.a(12, new Byte((byte)0)); DataWatcher.a(12, new Byte((byte)0), EntityAgeable.META_BABY, false);
}
public void UpdateDataWatcher()
{
super.UpdateDataWatcher();
DataWatcher.watch(12, DataWatcher.getByte(12));
} }
public boolean isBaby() public boolean isBaby()
@ -25,6 +20,6 @@ public abstract class DisguiseAgeable extends DisguiseCreature
public void setBaby() public void setBaby()
{ {
DataWatcher.watch(12, new Byte((byte) ( -1 ))); DataWatcher.watch(12, new Byte((byte) ( -1 )), EntityAgeable.META_BABY, true);
} }
} }

View File

@ -2,6 +2,7 @@ package mineplex.core.disguise.disguises;
import org.bukkit.util.Vector; import org.bukkit.util.Vector;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
@ -13,12 +14,14 @@ public class DisguiseArmorStand extends DisguiseInsentient
{ {
super(entity); super(entity);
DataWatcher.a(10, (byte) 0); DataWatcher.a(10, (byte) 0, EntityArmorStand.META_ARMOR_OPTION, (byte) 0);
for (int i = 11; i < 17; i++) DataWatcher.a(11, new Vector3f(0, 0, 0), EntityArmorStand.META_HEAD_POSE, new Vector3f(0, 0, 0));
{ DataWatcher.a(12, new Vector3f(0, 0, 0), EntityArmorStand.META_BODY_POSE, new Vector3f(0, 0, 0));
DataWatcher.a(i, new Vector3f(0, 0, 0)); DataWatcher.a(13, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_ARM_POSE, new Vector3f(0, 0, 0));
} DataWatcher.a(14, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_ARM_POSE, new Vector3f(0, 0, 0));
DataWatcher.a(15, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_LEG_POSE, new Vector3f(0, 0, 0));
DataWatcher.a(16, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_LEG_POSE, new Vector3f(0, 0, 0));
// Rotations are from -360 to 360 // Rotations are from -360 to 360
} }
@ -55,6 +58,7 @@ public class DisguiseArmorStand extends DisguiseInsentient
packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.uuid = Entity.getUniqueID();
double var2 = 3.9D; double var2 = 3.9D;
double var4 = 0; double var4 = 0;
@ -103,51 +107,55 @@ public class DisguiseArmorStand extends DisguiseInsentient
public void setBodyPosition(Vector vector) public void setBodyPosition(Vector vector)
{ {
DataWatcher.watch(12, convert(vector)); DataWatcher.watch(12, convert(vector), EntityArmorStand.META_BODY_POSE, convert(vector));
} }
public void setHasArms() public void setHasArms()
{ {
DataWatcher.watch(10, (byte) DataWatcher.getByte(10) | 4); DataWatcher.watch(10, (byte) (DataWatcher.getByte(10) | 4), EntityArmorStand.META_ARMOR_OPTION,
(byte) (DataWatcher.getByte(10) | 4));
} }
public void setHeadPosition(Vector vector) public void setHeadPosition(Vector vector)
{ {
DataWatcher.watch(11, convert(vector)); DataWatcher.watch(11, convert(vector), EntityArmorStand.META_HEAD_POSE, convert(vector));
} }
public void setLeftArmPosition(Vector vector) public void setLeftArmPosition(Vector vector)
{ {
DataWatcher.watch(13, convert(vector)); DataWatcher.watch(13, convert(vector), EntityArmorStand.META_LEFT_ARM_POSE, convert(vector));
} }
public void setLeftLegPosition(Vector vector) public void setLeftLegPosition(Vector vector)
{ {
DataWatcher.watch(15, convert(vector)); DataWatcher.watch(15, convert(vector), EntityArmorStand.META_LEFT_LEG_POSE, convert(vector));
} }
public void setRemoveBase() public void setRemoveBase()
{ {
DataWatcher.watch(10, (byte) DataWatcher.getByte(10) | 8); DataWatcher.watch(10, (byte) (DataWatcher.getByte(10) | 8), EntityArmorStand.META_ARMOR_OPTION,
(byte) (DataWatcher.getByte(10) | 8));
} }
public void setRightArmPosition(Vector vector) public void setRightArmPosition(Vector vector)
{ {
DataWatcher.watch(14, convert(vector)); DataWatcher.watch(14, convert(vector), EntityArmorStand.META_RIGHT_ARM_POSE, convert(vector));
} }
public void setRightLegPosition(Vector vector) public void setRightLegPosition(Vector vector)
{ {
DataWatcher.watch(16, convert(vector)); DataWatcher.watch(16, convert(vector), EntityArmorStand.META_RIGHT_LEG_POSE, convert(vector));
} }
public void setSmall() public void setSmall()
{ {
DataWatcher.watch(10, (byte) DataWatcher.getByte(10) | 1); DataWatcher.watch(10, (byte) (DataWatcher.getByte(10) | 1), EntityArmorStand.META_ARMOR_OPTION,
(byte) (DataWatcher.getByte(10) | 1));
} }
public void setGravityEffected() public void setGravityEffected()
{ {
DataWatcher.watch(10, (byte) DataWatcher.getByte(10) | 2); DataWatcher.watch(10, (byte) (DataWatcher.getByte(10) | 2), EntityArmorStand.META_ARMOR_OPTION,
(byte) (DataWatcher.getByte(10) | 2));
} }
} }

View File

@ -31,10 +31,10 @@ public abstract class DisguiseBase
} }
DataWatcher = new DataWatcher(new DummyEntity(null)); DataWatcher = new DataWatcher(new DummyEntity(null));
DataWatcher.a(0, Byte.valueOf((byte)0)); DataWatcher.a(0, Byte.valueOf((byte) 0), Entity.META_ENTITYDATA, (byte) 0);
DataWatcher.a(1, Short.valueOf((short)300)); DataWatcher.a(1, Short.valueOf((short) 300), Entity.META_AIR, 300);
_soundDisguise = this; _soundDisguise = this;
} }
@ -45,8 +45,8 @@ public abstract class DisguiseBase
public void UpdateDataWatcher() public void UpdateDataWatcher()
{ {
DataWatcher.watch(0, Entity.getDataWatcher().getByte(0)); DataWatcher.watch(0, Entity.getDataWatcher().getByte(0), Entity.META_ENTITYDATA, Entity.getDataWatcher().getByte(0));
DataWatcher.watch(1, Entity.getDataWatcher().getShort(1)); DataWatcher.watch(1, Entity.getDataWatcher().getShort(1), Entity.META_AIR, (int) Entity.getDataWatcher().getShort(1));
} }
public abstract Packet GetSpawnPacket(); public abstract Packet GetSpawnPacket();

View File

@ -1,30 +1,32 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityBat;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseBat extends DisguiseAnimal public class DisguiseBat extends DisguiseCreature
{ {
public DisguiseBat(org.bukkit.entity.Entity entity) public DisguiseBat(org.bukkit.entity.Entity entity)
{ {
super(EntityType.BAT, entity); super(EntityType.BAT, entity);
DataWatcher.a(16, new Byte((byte)0)); DataWatcher.a(16, new Byte((byte) 0), EntityBat.META_UPSIDEDOWN, (byte) 0);
} }
public boolean isSitting() public boolean isSitting()
{ {
return (DataWatcher.getByte(16) & 0x1) != 0; return (DataWatcher.getByte(16) & 0x1) != 0;
} }
public void setSitting(boolean paramBoolean) public void setSitting(boolean paramBoolean)
{ {
int i = DataWatcher.getByte(16); int i = DataWatcher.getByte(16);
if (paramBoolean) if (paramBoolean)
DataWatcher.watch(16, Byte.valueOf((byte)(i | 0x1))); DataWatcher.watch(16, Byte.valueOf((byte) (i | 0x1)), EntityBat.META_UPSIDEDOWN, (byte) (i | 0x1));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(i & 0xFFFFFFFE))); DataWatcher.watch(16, Byte.valueOf((byte) (i & 0xFFFFFFFE)), EntityBat.META_UPSIDEDOWN, (byte) (i & 0xFFFFFFFE));
} }
public String getHurtSound() public String getHurtSound()
{ {
return "mob.bat.hurt"; return "mob.bat.hurt";

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityBlaze;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseBlaze extends DisguiseMonster public class DisguiseBlaze extends DisguiseMonster
@ -7,27 +9,27 @@ public class DisguiseBlaze extends DisguiseMonster
public DisguiseBlaze(org.bukkit.entity.Entity entity) public DisguiseBlaze(org.bukkit.entity.Entity entity)
{ {
super(EntityType.BLAZE, entity); super(EntityType.BLAZE, entity);
DataWatcher.a(16, new Byte((byte)0)); DataWatcher.a(16, new Byte((byte) 0), EntityBlaze.META_FIRE, (byte) 0);
} }
public boolean bT() public boolean bT()
{ {
return (DataWatcher.getByte(16) & 0x01) != 0; return (DataWatcher.getByte(16) & 0x01) != 0;
} }
public void a(boolean flag) public void a(boolean flag)
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
if (flag) if (flag)
b0 = (byte)(b0 | 0x1); b0 = (byte) (b0 | 0x1);
else else
b0 = (byte)(b0 | 0xFFFFFFFE); b0 = (byte) (b0 | 0xFFFFFFFE);
DataWatcher.watch(16, Byte.valueOf(b0)); DataWatcher.watch(16, Byte.valueOf(b0), EntityBlaze.META_FIRE, b0);
} }
public String getHurtSound() public String getHurtSound()
{ {
return "mob.blaze.hit"; return "mob.blaze.hit";

View File

@ -9,26 +9,26 @@ import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity;
public class DisguiseBlock extends DisguiseBase public class DisguiseBlock extends DisguiseBase
{ {
private static Random _random = new Random(); private static Random _random = new Random();
private int _blockId; private int _blockId;
private int _blockData; private int _blockData;
public DisguiseBlock(org.bukkit.entity.Entity entity, int blockId, int blockData) public DisguiseBlock(org.bukkit.entity.Entity entity, int blockId, int blockData)
{ {
super(entity); super(entity);
_blockId = blockId; _blockId = blockId;
_blockData = blockData; _blockData = blockData;
} }
public int GetBlockId() public int GetBlockId()
{ {
return _blockId; return _blockId;
} }
public byte GetBlockData() public byte GetBlockData()
{ {
return (byte)_blockData; return (byte) _blockData;
} }
@Override @Override
@ -43,38 +43,45 @@ public class DisguiseBlock extends DisguiseBase
packet.i = MathHelper.d(Entity.yaw * 256.0F / 360.0F); packet.i = MathHelper.d(Entity.yaw * 256.0F / 360.0F);
packet.j = 70; packet.j = 70;
packet.k = _blockId | _blockData << 12; packet.k = _blockId | _blockData << 12;
packet.uuid = Entity.getUniqueID();
double d1 = Entity.motX; double d1 = Entity.motX;
double d2 = Entity.motY; double d2 = Entity.motY;
double d3 = Entity.motZ; double d3 = Entity.motZ;
double d4 = 3.9D; double d4 = 3.9D;
if (d1 < -d4) d1 = -d4; if (d1 < -d4)
if (d2 < -d4) d2 = -d4; d1 = -d4;
if (d3 < -d4) d3 = -d4; if (d2 < -d4)
if (d1 > d4) d1 = d4; d2 = -d4;
if (d2 > d4) d2 = d4; if (d3 < -d4)
if (d3 > d4) d3 = d4; d3 = -d4;
if (d1 > d4)
packet.e = ((int)(d1 * 8000.0D)); d1 = d4;
packet.f = ((int)(d2 * 8000.0D)); if (d2 > d4)
packet.g = ((int)(d3 * 8000.0D)); d2 = d4;
if (d3 > d4)
d3 = d4;
packet.e = ((int) (d1 * 8000.0D));
packet.f = ((int) (d2 * 8000.0D));
packet.g = ((int) (d3 * 8000.0D));
return packet; return packet;
} }
protected String getHurtSound() protected String getHurtSound()
{ {
return "damage.hit"; return "damage.hit";
} }
protected float getVolume()
{
return 1.0F;
}
protected float getPitch() protected float getVolume()
{ {
return (_random.nextFloat() - _random.nextFloat()) * 0.2F + 1.0F; return 1.0F;
} }
protected float getPitch()
{
return (_random.nextFloat() - _random.nextFloat()) * 0.2F + 1.0F;
}
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityOcelot;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseCat extends DisguiseTameableAnimal public class DisguiseCat extends DisguiseTameableAnimal
@ -8,21 +10,21 @@ public class DisguiseCat extends DisguiseTameableAnimal
{ {
super(EntityType.OCELOT, entity); super(EntityType.OCELOT, entity);
DataWatcher.a(18, Byte.valueOf((byte)0)); DataWatcher.a(18, Byte.valueOf((byte) 0), EntityOcelot.META_TYPE, 0);
} }
public int getCatType() public int getCatType()
{ {
return DataWatcher.getByte(18); return DataWatcher.getByte(18);
} }
public void setCatType(int i) public void setCatType(int i)
{ {
DataWatcher.watch(18, Byte.valueOf((byte)i)); DataWatcher.watch(18, Byte.valueOf((byte) i), EntityOcelot.META_TYPE, i);
}
protected String getHurtSound()
{
return "mob.cat.hitt";
} }
protected String getHurtSound()
{
return "mob.cat.hitt";
}
} }

View File

@ -2,6 +2,8 @@ package mineplex.core.disguise.disguises;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import net.minecraft.server.v1_8_R3.EntitySpider;
public class DisguiseCaveSpider extends DisguiseMonster public class DisguiseCaveSpider extends DisguiseMonster
{ {
@ -9,7 +11,7 @@ public class DisguiseCaveSpider extends DisguiseMonster
{ {
super(EntityType.CAVE_SPIDER, entity); super(EntityType.CAVE_SPIDER, entity);
DataWatcher.a(16, new Byte((byte) 0)); DataWatcher.a(16, new Byte((byte) 0), EntitySpider.META_CLIMBING, (byte) 0);
} }
public boolean bT() public boolean bT()
@ -26,7 +28,7 @@ public class DisguiseCaveSpider extends DisguiseMonster
else else
b0 = (byte) (b0 & 0xFFFFFFFE); b0 = (byte) (b0 & 0xFFFFFFFE);
DataWatcher.watch(16, Byte.valueOf(b0)); DataWatcher.watch(16, Byte.valueOf(b0), EntitySpider.META_CLIMBING, b0);
} }
protected String getHurtSound() protected String getHurtSound()

View File

@ -33,6 +33,7 @@ public abstract class DisguiseCreature extends DisguiseInsentient
packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.uuid = Entity.getUniqueID();
double var2 = 3.9D; double var2 = 3.9D;
double var4 = 0; double var4 = 0;

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityCreeper;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseCreeper extends DisguiseMonster public class DisguiseCreeper extends DisguiseMonster
@ -7,33 +9,33 @@ public class DisguiseCreeper extends DisguiseMonster
public DisguiseCreeper(org.bukkit.entity.Entity entity) public DisguiseCreeper(org.bukkit.entity.Entity entity)
{ {
super(EntityType.CREEPER, entity); super(EntityType.CREEPER, entity);
DataWatcher.a(16, Byte.valueOf((byte)-1)); DataWatcher.a(16, Byte.valueOf((byte) -1), EntityCreeper.META_FUSE_STATE, -1);
DataWatcher.a(17, Byte.valueOf((byte)0)); DataWatcher.a(17, Byte.valueOf((byte) 0), EntityCreeper.META_POWERED, false);
} }
public boolean IsPowered() public boolean IsPowered()
{ {
return DataWatcher.getByte(17) == 1; return DataWatcher.getByte(17) == 1;
} }
public void SetPowered(boolean powered) public void SetPowered(boolean powered)
{ {
DataWatcher.watch(17, Byte.valueOf((byte)(powered ? 1 : 0))); DataWatcher.watch(17, Byte.valueOf((byte) (powered ? 1 : 0)), EntityCreeper.META_POWERED, powered);
} }
public int bV() public int bV()
{ {
return DataWatcher.getByte(16); return DataWatcher.getByte(16);
} }
public void a(int i) public void a(int i)
{ {
DataWatcher.watch(16, Byte.valueOf((byte)i)); DataWatcher.watch(16, Byte.valueOf((byte) i), EntityCreeper.META_FUSE_STATE, i);
}
protected String getHurtSound()
{
return "mob.creeper.say";
} }
protected String getHurtSound()
{
return "mob.creeper.say";
}
} }

View File

@ -2,50 +2,71 @@ package mineplex.core.disguise.disguises;
import java.util.Arrays; import java.util.Arrays;
import net.minecraft.server.v1_8_R3.Block;
import net.minecraft.server.v1_8_R3.Blocks;
import net.minecraft.server.v1_8_R3.EntityEnderman;
import net.minecraft.server.v1_8_R3.EntityLiving;
import net.minecraft.server.v1_8_R3.IBlockData;
import net.minecraft.server.v1_8_R3.MobEffect; import net.minecraft.server.v1_8_R3.MobEffect;
import net.minecraft.server.v1_8_R3.MobEffectList; import net.minecraft.server.v1_8_R3.MobEffectList;
import net.minecraft.server.v1_8_R3.PotionBrewer; import net.minecraft.server.v1_8_R3.PotionBrewer;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import com.google.common.base.Optional;
public class DisguiseEnderman extends DisguiseMonster public class DisguiseEnderman extends DisguiseMonster
{ {
public DisguiseEnderman(org.bukkit.entity.Entity entity) public DisguiseEnderman(org.bukkit.entity.Entity entity)
{ {
super(EntityType.ENDERMAN, entity); super(EntityType.ENDERMAN, entity);
DataWatcher.a(16, new Short( (short) 0)); DataWatcher.a(16, new Short((short) 0), EntityEnderman.META_BLOCK, Optional.<IBlockData> absent());
DataWatcher.a(17, new Byte( (byte) 0)); DataWatcher.a(17, new Byte((byte) 0), EntityEnderman.META_BLOCK, Optional.<IBlockData> absent());
DataWatcher.a(18, new Byte( (byte) 0)); DataWatcher.a(18, new Byte((byte) 0), EntityEnderman.META_ANGRY, false);
int i = PotionBrewer.a(Arrays.asList(new MobEffect(MobEffectList.FIRE_RESISTANCE.id, 777))); int i = PotionBrewer.a(Arrays.asList(new MobEffect(MobEffectList.FIRE_RESISTANCE.id, 777)));
DataWatcher.watch(8, Byte.valueOf((byte)(PotionBrewer.b(Arrays.asList(new MobEffect(MobEffectList.FIRE_RESISTANCE.id, 777))) ? 1 : 0))); DataWatcher.watch(8, Byte.valueOf((byte) (PotionBrewer.b(Arrays.asList(new MobEffect(MobEffectList.FIRE_RESISTANCE.id,
DataWatcher.watch(7, Integer.valueOf(i)); 777))) ? 1 : 0)), EntityLiving.META_AMBIENT_POTION, PotionBrewer.b(Arrays.asList(new MobEffect(
MobEffectList.FIRE_RESISTANCE.id, 777))));
DataWatcher.watch(7, Integer.valueOf(i), EntityLiving.META_POTION_COLOR, i);
} }
public void UpdateDataWatcher() public void UpdateDataWatcher()
{ {
super.UpdateDataWatcher(); super.UpdateDataWatcher();
DataWatcher.watch(0, Byte.valueOf((byte)(DataWatcher.getByte(0) & ~(1 << 0)))); DataWatcher.watch(0, Byte.valueOf((byte) (DataWatcher.getByte(0) & ~(1 << 0))), Entity.META_ENTITYDATA,
DataWatcher.watch(16, DataWatcher.getShort(16)); (byte) (DataWatcher.getByte(0) & ~(1 << 0)));
DataWatcher.watch(16, DataWatcher.getShort(16), EntityEnderman.META_BLOCK, getBlock(DataWatcher.getShort(16)));
} }
private Optional<IBlockData> getBlock(int i)
{
Block b = Block.getById(i);
if (b != null && b != Blocks.AIR)
{
return Optional.fromNullable(b.getBlockData());
}
return Optional.fromNullable(null);
}
public void SetCarriedId(int i) public void SetCarriedId(int i)
{ {
DataWatcher.watch(16, new Short( (short)(i & 0xFF)) ); DataWatcher.watch(16, new Short((short) (i & 0xFF)), EntityEnderman.META_BLOCK, getBlock(i));
} }
public int GetCarriedId() public int GetCarriedId()
{ {
return DataWatcher.getByte(16); return DataWatcher.getByte(16);
} }
public void SetCarriedData(int i) public void SetCarriedData(int i)
{ {
DataWatcher.watch(17, Byte.valueOf((byte)(i & 0xFF))); DataWatcher.watch(17, Byte.valueOf((byte) (i & 0xFF)), EntityEnderman.META_BLOCK, getBlock(0));
} }
public int GetCarriedData() public int GetCarriedData()
{ {
return DataWatcher.getByte(17); return DataWatcher.getByte(17);
@ -55,14 +76,14 @@ public class DisguiseEnderman extends DisguiseMonster
{ {
return DataWatcher.getByte(18) > 0; return DataWatcher.getByte(18) > 0;
} }
public void a(boolean flag) public void a(boolean flag)
{ {
DataWatcher.watch(18, Byte.valueOf((byte)(flag ? 1 : 0))); DataWatcher.watch(18, Byte.valueOf((byte) (flag ? 1 : 0)), EntityEnderman.META_ANGRY, flag);
}
protected String getHurtSound()
{
return "mob.endermen.hit";
} }
protected String getHurtSound()
{
return "mob.endermen.hit";
}
} }

View File

@ -2,23 +2,25 @@ package mineplex.core.disguise.disguises;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import net.minecraft.server.v1_8_R3.EntityGuardian;
public class DisguiseGuardian extends DisguiseCreature public class DisguiseGuardian extends DisguiseCreature
{ {
public DisguiseGuardian(org.bukkit.entity.Entity entity) public DisguiseGuardian(org.bukkit.entity.Entity entity)
{ {
super(EntityType.GUARDIAN, entity); super(EntityType.GUARDIAN, entity);
DataWatcher.a(16, 0); DataWatcher.a(16, 0, EntityGuardian.META_ELDER, (byte) 0);
DataWatcher.a(17, 0); DataWatcher.a(17, 0, EntityGuardian.META_TARGET, 0);
} }
public void setTarget(int target) public void setTarget(int target)
{ {
DataWatcher.watch(17, target); DataWatcher.watch(17, target, EntityGuardian.META_TARGET, target);
} }
public void setElder(boolean elder) public void setElder(boolean elder)
{ {
DataWatcher.watch(16, Integer.valueOf(DataWatcher.getInt(16) | 4)); DataWatcher.watch(16, Integer.valueOf(DataWatcher.getInt(16) | 4), EntityGuardian.META_ELDER, (byte) (DataWatcher.getInt(16) | 4));
} }
public boolean isElder() public boolean isElder()

View File

@ -1,23 +1,29 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import java.util.UUID;
import net.minecraft.server.v1_8_R3.EntityHorse;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import com.google.common.base.Optional;
public class DisguiseHorse extends DisguiseAnimal public class DisguiseHorse extends DisguiseAnimal
{ {
public DisguiseHorse(org.bukkit.entity.Entity entity) public DisguiseHorse(org.bukkit.entity.Entity entity)
{ {
super(EntityType.HORSE, entity); super(EntityType.HORSE, entity);
DataWatcher.a(16, Integer.valueOf(0)); DataWatcher.a(16, Integer.valueOf(0), EntityHorse.META_HORSE_STATE, (byte) 0);
DataWatcher.a(19, Byte.valueOf((byte) 0)); DataWatcher.a(19, Byte.valueOf((byte) 0), EntityHorse.META_TYPE, 0);
DataWatcher.a(20, Integer.valueOf(0)); DataWatcher.a(20, Integer.valueOf(0), EntityHorse.META_VARIANT, 0);
DataWatcher.a(21, String.valueOf("")); DataWatcher.a(21, String.valueOf(""), EntityHorse.META_OWNER, Optional.<UUID> absent());
DataWatcher.a(22, Integer.valueOf(0)); DataWatcher.a(22, Integer.valueOf(0), EntityHorse.META_ARMOR, 0);
} }
public void setType(Horse.Variant horseType) public void setType(Horse.Variant horseType)
{ {
DataWatcher.watch(19, Byte.valueOf((byte) horseType.ordinal())); DataWatcher.watch(19, Byte.valueOf((byte) horseType.ordinal()), EntityHorse.META_TYPE, horseType.ordinal());
} }
public Horse.Variant getType() public Horse.Variant getType()
@ -27,7 +33,7 @@ public class DisguiseHorse extends DisguiseAnimal
public void setVariant(Horse.Color color) public void setVariant(Horse.Color color)
{ {
DataWatcher.watch(20, Integer.valueOf(color.ordinal())); DataWatcher.watch(20, Integer.valueOf(color.ordinal()), EntityHorse.META_VARIANT, color.ordinal());
} }
public Horse.Color getVariant() public Horse.Color getVariant()
@ -35,49 +41,35 @@ public class DisguiseHorse extends DisguiseAnimal
return Horse.Color.values()[DataWatcher.getInt(20)]; return Horse.Color.values()[DataWatcher.getInt(20)];
} }
private boolean w(int i)
{
return (DataWatcher.getInt(16) & i) != 0;
}
public void kick() public void kick()
{ {
b(32, false); b(32, false);
b(64, true); b(64, true);
} }
public void stopKick() public void stopKick()
{ {
b(64, false); b(64, false);
} }
private void b(int i, boolean flag) private void b(int i, boolean flag)
{ {
int j = DataWatcher.getInt(16); int j = DataWatcher.getInt(16);
if (flag) if (flag)
DataWatcher.watch(16, Integer.valueOf(j | i)); DataWatcher.watch(16, Integer.valueOf(j | i), EntityHorse.META_HORSE_STATE, (byte) (j | i));
else else
DataWatcher.watch(16, Integer.valueOf(j & (i ^ 0xFFFFFFFF))); DataWatcher.watch(16, Integer.valueOf(j & (i ^ 0xFFFFFFFF)), EntityHorse.META_HORSE_STATE,
(byte) (j & (i ^ 0xFFFFFFFF)));
} }
public String getOwnerName() public int getArmor()
{
return DataWatcher.getString(21);
}
public void setOwnerName(String s)
{
DataWatcher.watch(21, s);
}
public int cf()
{ {
return DataWatcher.getInt(22); return DataWatcher.getInt(22);
} }
public void r(int i) public void setArmor(int i)
{ {
DataWatcher.watch(22, Integer.valueOf(i)); DataWatcher.watch(22, Integer.valueOf(i), EntityHorse.META_ARMOR, i);
} }
} }

View File

@ -1,14 +1,16 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityHuman;
public abstract class DisguiseHuman extends DisguiseLiving public abstract class DisguiseHuman extends DisguiseLiving
{ {
public DisguiseHuman(org.bukkit.entity.Entity entity) public DisguiseHuman(org.bukkit.entity.Entity entity)
{ {
super(entity); super(entity);
DataWatcher.a(10, (byte) 0); // todo DataWatcher.a(10, (byte) 0, EntityHuman.META_SKIN, (byte) 0); // todo
DataWatcher.a(16, (byte) 0); DataWatcher.a(16, (byte) 1, EntityHuman.META_CAPE, (byte) 1);
DataWatcher.a(17, Float.valueOf(0.0F)); DataWatcher.a(17, Float.valueOf(0.0F), EntityHuman.META_SCALED_HEALTH, 0f);
DataWatcher.a(18, Integer.valueOf(0)); DataWatcher.a(18, Integer.valueOf(0), EntityHuman.META_SCORE, 0);
} }
} }

View File

@ -1,25 +1,27 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import mineplex.core.common.*; import mineplex.core.common.*;
import net.minecraft.server.v1_8_R3.EntityInsentient;
import org.bukkit.*; import org.bukkit.*;
public abstract class DisguiseInsentient extends DisguiseLiving public abstract class DisguiseInsentient extends DisguiseLiving
{ {
private boolean _showArmor; private boolean _showArmor;
public DisguiseInsentient(org.bukkit.entity.Entity entity) public DisguiseInsentient(org.bukkit.entity.Entity entity)
{ {
super(entity); super(entity);
DataWatcher.a(3, Byte.valueOf((byte) 0)); DataWatcher.a(3, Byte.valueOf((byte) 0), EntityInsentient.META_CUSTOMNAME_VISIBLE, false);
DataWatcher.a(2, ""); DataWatcher.a(2, "", EntityInsentient.META_CUSTOMNAME, "");
} }
public void setName(String name) public void setName(String name)
{ {
setName(name, null); setName(name, null);
} }
public void setName(String name, Rank rank) public void setName(String name, Rank rank)
{ {
if (rank != null) if (rank != null)
@ -30,35 +32,34 @@ public abstract class DisguiseInsentient extends DisguiseLiving
} }
} }
DataWatcher.watch(2, name); DataWatcher.watch(2, name, EntityInsentient.META_CUSTOMNAME, name);
} }
public boolean hasCustomName() public boolean hasCustomName()
{ {
return DataWatcher.getString(2).length() > 0; return DataWatcher.getString(2).length() > 0;
} }
public void setCustomNameVisible(boolean visible) public void setCustomNameVisible(boolean visible)
{ {
DataWatcher.watch(3, Byte.valueOf((byte)(visible ? 1 : 0))); DataWatcher.watch(3, Byte.valueOf((byte) (visible ? 1 : 0)), EntityInsentient.META_CUSTOMNAME_VISIBLE, visible);
} }
public boolean getCustomNameVisible() public boolean getCustomNameVisible()
{ {
return DataWatcher.getByte(11) == 1; return DataWatcher.getByte(11) == 1;
} }
public boolean armorVisible() public boolean armorVisible()
{ {
return _showArmor; return _showArmor;
} }
public void showArmor() public void showArmor()
{ {
_showArmor = true; _showArmor = true;
} }
public void hideArmor() public void hideArmor()
{ {
_showArmor = false; _showArmor = false;

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityIronGolem;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseIronGolem extends DisguiseGolem public class DisguiseIronGolem extends DisguiseGolem
@ -8,26 +10,27 @@ public class DisguiseIronGolem extends DisguiseGolem
{ {
super(EntityType.IRON_GOLEM, entity); super(EntityType.IRON_GOLEM, entity);
DataWatcher.a(16, Byte.valueOf((byte)0)); DataWatcher.a(16, Byte.valueOf((byte) 0), EntityIronGolem.META_PLAYER_CREATED, (byte) 0);
}
public boolean bW()
{
return (DataWatcher.getByte(16) & 0x1) != 0;
} }
public void setPlayerCreated(boolean flag) public boolean bW()
{
return (DataWatcher.getByte(16) & 0x1) != 0;
}
public void setPlayerCreated(boolean flag)
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
if (flag) if (flag)
DataWatcher.watch(16, Byte.valueOf((byte)(b0 | 0x1))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 | 0x1)), EntityIronGolem.META_PLAYER_CREATED, (byte) (b0 | 0x1));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(b0 & 0xFFFFFFFE))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 & 0xFFFFFFFE)), EntityIronGolem.META_PLAYER_CREATED,
(byte) (b0 & 0xFFFFFFFE));
}
protected String getHurtSound()
{
return "mob.irongolem.hit";
} }
protected String getHurtSound()
{
return "mob.irongolem.hit";
}
} }

View File

@ -21,10 +21,10 @@ public abstract class DisguiseLiving extends DisguiseBase
{ {
super(entity); super(entity);
DataWatcher.a(6, Float.valueOf(1.0F)); DataWatcher.a(6, Float.valueOf(1.0F), EntityLiving.META_HEALTH, 1F);
DataWatcher.a(7, Integer.valueOf(0)); DataWatcher.a(7, Integer.valueOf(0), EntityLiving.META_POTION_COLOR, 0);
DataWatcher.a(8, Byte.valueOf((byte) 0)); DataWatcher.a(8, Byte.valueOf((byte) 0), EntityLiving.META_AMBIENT_POTION, false);
DataWatcher.a(9, Byte.valueOf((byte) 0)); DataWatcher.a(9, Byte.valueOf((byte) 0), EntityLiving.META_ARROWS, 0);
} }
public ItemStack[] getEquipment() public ItemStack[] getEquipment()
@ -106,16 +106,20 @@ public abstract class DisguiseLiving extends DisguiseBase
byte b0 = DataWatcher.getByte(0); byte b0 = DataWatcher.getByte(0);
if (_invisible) if (_invisible)
DataWatcher.watch(0, Byte.valueOf((byte) (b0 | 1 << 5))); DataWatcher.watch(0, Byte.valueOf((byte) (b0 | 1 << 5)), EntityLiving.META_ENTITYDATA, (byte) (b0 | 1 << 5));
else else
DataWatcher.watch(0, Byte.valueOf((byte) (b0 & ~(1 << 5)))); DataWatcher.watch(0, Byte.valueOf((byte) (b0 & ~(1 << 5))), EntityLiving.META_ENTITYDATA, (byte) (b0 & ~(1 << 5)));
if (Entity instanceof EntityLiving) if (Entity instanceof EntityLiving)
{ {
DataWatcher.watch(6, Entity.getDataWatcher().getFloat(6)); DataWatcher.watch(6, Entity.getDataWatcher().getFloat(6), EntityLiving.META_HEALTH,
DataWatcher.watch(7, Entity.getDataWatcher().getInt(7)); Entity.getDataWatcher().getFloat(6));
DataWatcher.watch(8, Entity.getDataWatcher().getByte(8)); DataWatcher.watch(7, Entity.getDataWatcher().getInt(7), EntityLiving.META_POTION_COLOR, Entity.getDataWatcher()
DataWatcher.watch(9, Entity.getDataWatcher().getByte(9)); .getInt(7));
DataWatcher.watch(8, Entity.getDataWatcher().getByte(8), EntityLiving.META_AMBIENT_POTION, Entity.getDataWatcher()
.getByte(8) == 1);
DataWatcher.watch(9, Entity.getDataWatcher().getByte(9), EntityLiving.META_ARROWS, (int) Entity.getDataWatcher()
.getByte(9));
} }
} }
@ -146,7 +150,7 @@ public abstract class DisguiseLiving extends DisguiseBase
public void setHealth(float health) public void setHealth(float health)
{ {
DataWatcher.watch(6, Float.valueOf(health)); DataWatcher.watch(6, Float.valueOf(health), EntityLiving.META_HEALTH, health);
} }
public float getHealth() public float getHealth()

View File

@ -1,5 +1,6 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntitySlime;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
@ -10,14 +11,14 @@ public class DisguiseMagmaCube extends DisguiseInsentient
{ {
super(entity); super(entity);
DataWatcher.a(16, new Byte((byte)1)); DataWatcher.a(16, new Byte((byte) 1), EntitySlime.META_SIZE, 1);
} }
public void SetSize(int i) public void SetSize(int i)
{ {
DataWatcher.watch(16, new Byte((byte)i)); DataWatcher.watch(16, new Byte((byte) i), EntitySlime.META_SIZE, i);
} }
public int GetSize() public int GetSize()
{ {
return DataWatcher.getByte(16); return DataWatcher.getByte(16);
@ -28,65 +29,66 @@ public class DisguiseMagmaCube extends DisguiseInsentient
PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving();
packet.a = Entity.getId(); packet.a = Entity.getId();
packet.b = (byte) 62; packet.b = (byte) 62;
packet.c = (int)MathHelper.floor(Entity.locX * 32D); packet.c = (int) MathHelper.floor(Entity.locX * 32D);
packet.d = (int)MathHelper.floor(Entity.locY * 32.0D); packet.d = (int) MathHelper.floor(Entity.locY * 32.0D);
packet.e = (int)MathHelper.floor(Entity.locZ * 32D); packet.e = (int) MathHelper.floor(Entity.locZ * 32D);
packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.uuid = Entity.getUniqueID();
double var2 = 3.9D; double var2 = 3.9D;
double var4 = 0; double var4 = 0;
double var6 = 0; double var6 = 0;
double var8 = 0; double var8 = 0;
if (var4 < -var2) if (var4 < -var2)
{ {
var4 = -var2; var4 = -var2;
} }
if (var6 < -var2) if (var6 < -var2)
{ {
var6 = -var2; var6 = -var2;
} }
if (var8 < -var2) if (var8 < -var2)
{ {
var8 = -var2; var8 = -var2;
} }
if (var4 > var2) if (var4 > var2)
{ {
var4 = var2; var4 = var2;
} }
if (var6 > var2) if (var6 > var2)
{ {
var6 = var2; var6 = var2;
} }
if (var8 > var2) if (var8 > var2)
{ {
var8 = var2; var8 = var2;
} }
packet.f = (int) (var4 * 8000.0D);
packet.g = (int) (var6 * 8000.0D);
packet.h = (int) (var8 * 8000.0D);
packet.l = DataWatcher;
packet.m = DataWatcher.b();
packet.f = (int)(var4 * 8000.0D);
packet.g = (int)(var6 * 8000.0D);
packet.h = (int)(var8 * 8000.0D);
packet.l = DataWatcher;
packet.m = DataWatcher.b();
return packet; return packet;
} }
protected String getHurtSound() protected String getHurtSound()
{ {
return "mob.slime." + (GetSize() > 1 ? "big" : "small"); return "mob.slime." + (GetSize() > 1 ? "big" : "small");
} }
protected float getVolume() protected float getVolume()
{ {
return 0.4F * (float)GetSize(); return 0.4F * (float) GetSize();
} }
} }

View File

@ -8,6 +8,7 @@ import org.bukkit.block.BlockFace;
import com.mojang.authlib.GameProfile; import com.mojang.authlib.GameProfile;
import mineplex.core.common.skin.SkinData; import mineplex.core.common.skin.SkinData;
import net.minecraft.server.v1_8_R3.EntityHuman;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn; import net.minecraft.server.v1_8_R3.PacketPlayOutNamedEntitySpawn;
@ -17,31 +18,31 @@ import net.minecraft.server.v1_8_R3.WorldSettings;
public class DisguisePlayer extends DisguiseHuman public class DisguisePlayer extends DisguiseHuman
{ {
private GameProfile _profile; private GameProfile _profile;
private boolean _sneaking; private boolean _sneaking;
private BlockFace _sleeping; private BlockFace _sleeping;
private boolean _sendSkinToSelf; private boolean _sendSkinToSelf;
public DisguisePlayer(org.bukkit.entity.Entity entity) public DisguisePlayer(org.bukkit.entity.Entity entity)
{ {
super(entity); super(entity);
} }
public DisguisePlayer(org.bukkit.entity.Entity entity, GameProfile profile) public DisguisePlayer(org.bukkit.entity.Entity entity, GameProfile profile)
{ {
this(entity); this(entity);
setProfile(profile); setProfile(profile);
} }
public void setProfile(GameProfile profile) public void setProfile(GameProfile profile)
{ {
GameProfile newProfile = new GameProfile(UUID.randomUUID(), profile.getName()); GameProfile newProfile = new GameProfile(UUID.randomUUID(), profile.getName());
newProfile.getProperties().putAll(profile.getProperties()); newProfile.getProperties().putAll(profile.getProperties());
_profile = newProfile; _profile = newProfile;
} }
public GameProfile getProfile() public GameProfile getProfile()
{ {
@ -66,28 +67,28 @@ public class DisguisePlayer extends DisguiseHuman
return _sendSkinToSelf; return _sendSkinToSelf;
} }
public BlockFace getSleepingDirection() public BlockFace getSleepingDirection()
{ {
return _sleeping; return _sleeping;
} }
/** /**
* Don't use this if the disguise is already on as it will not work the way * Don't use this if the disguise is already on as it will not work the way you want it to. Contact libraryaddict if you need
* you want it to. Contact libraryaddict if you need that added. * that added.
*/ */
public void setSleeping(BlockFace sleeping) public void setSleeping(BlockFace sleeping)
{ {
_sleeping = sleeping; _sleeping = sleeping;
} }
public void setSneaking(boolean sneaking) public void setSneaking(boolean sneaking)
{ {
_sneaking = sneaking; _sneaking = sneaking;
} }
public boolean getSneaking() public boolean getSneaking()
{ {
return _sneaking; return _sneaking;
} }
public Packet getNewInfoPacket(boolean add) public Packet getNewInfoPacket(boolean add)
@ -103,56 +104,55 @@ public class DisguisePlayer extends DisguiseHuman
return newDisguiseInfo; return newDisguiseInfo;
} }
@Override @Override
public void UpdateDataWatcher() public void UpdateDataWatcher()
{ {
super.UpdateDataWatcher(); super.UpdateDataWatcher();
byte b0 = DataWatcher.getByte(0); byte b0 = DataWatcher.getByte(0);
DataWatcher.watch(10, (Object)(byte)0x40);
if(_sneaking)
DataWatcher.watch(0, Byte.valueOf((byte) (b0 | 1 << 1)));
else
DataWatcher.watch(0, Byte.valueOf((byte) (b0 & ~(1 << 1))));
}
public PacketPlayOutNamedEntitySpawn spawnBeforePlayer(Location spawnLocation) if (_sneaking)
{ DataWatcher.watch(0, Byte.valueOf((byte) (b0 | 1 << 1)), EntityHuman.META_ENTITYDATA, (byte) (b0 | 1 << 1));
Location loc = spawnLocation.add(spawnLocation.getDirection().normalize().multiply(30)); else
loc.setY(Math.max(loc.getY(), 0)); DataWatcher.watch(0, Byte.valueOf((byte) (b0 & ~(1 << 1))), EntityHuman.META_ENTITYDATA, (byte) (b0 & ~(1 << 1)));
}
PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn(); public PacketPlayOutNamedEntitySpawn spawnBeforePlayer(Location spawnLocation)
packet.a = Entity.getId(); {
packet.b = _profile.getId(); Location loc = spawnLocation.add(spawnLocation.getDirection().normalize().multiply(30));
packet.c = MathHelper.floor(loc.getX() * 32.0D); loc.setY(Math.max(loc.getY(), 0));
packet.d = MathHelper.floor(loc.getY() * 32.0D);
packet.e = MathHelper.floor(loc.getZ() * 32.0D);
packet.f = (byte) ((int) (loc.getYaw() * 256.0F / 360.0F));
packet.g = (byte) ((int) (loc.getPitch() * 256.0F / 360.0F));
packet.i = DataWatcher;
return packet; PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
} packet.a = Entity.getId();
packet.b = _profile.getId();
packet.c = MathHelper.floor(loc.getX() * 32.0D);
packet.d = MathHelper.floor(loc.getY() * 32.0D);
packet.e = MathHelper.floor(loc.getZ() * 32.0D);
packet.f = (byte) ((int) (loc.getYaw() * 256.0F / 360.0F));
packet.g = (byte) ((int) (loc.getPitch() * 256.0F / 360.0F));
packet.i = DataWatcher;
@Override return packet;
public PacketPlayOutNamedEntitySpawn GetSpawnPacket() }
{
PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
packet.a = Entity.getId();
packet.b = _profile.getId();
packet.c = MathHelper.floor(Entity.locX * 32.0D);
packet.d = MathHelper.floor(Entity.locY * 32.0D);
packet.e = MathHelper.floor(Entity.locZ * 32.0D);
packet.f = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.g = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.i = DataWatcher;
return packet; @Override
} public PacketPlayOutNamedEntitySpawn GetSpawnPacket()
{
PacketPlayOutNamedEntitySpawn packet = new PacketPlayOutNamedEntitySpawn();
packet.a = Entity.getId();
packet.b = _profile.getId();
packet.c = MathHelper.floor(Entity.locX * 32.0D);
packet.d = MathHelper.floor(Entity.locY * 32.0D);
packet.e = MathHelper.floor(Entity.locZ * 32.0D);
packet.f = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.g = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.i = DataWatcher;
public String getName() return packet;
{ }
return _profile.getName();
} public String getName()
{
return _profile.getName();
}
} }

View File

@ -1,21 +1,20 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import org.bukkit.entity.EntityType;
import net.minecraft.server.v1_8_R3.EntityRabbit;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
public class DisguiseRabbit extends DisguiseInsentient public class DisguiseRabbit extends DisguiseAnimal
{ {
public DisguiseRabbit(org.bukkit.entity.Entity entity) public DisguiseRabbit(org.bukkit.entity.Entity entity)
{ {
super(entity); super(EntityType.RABBIT, entity);
DataWatcher.a(4, Byte.valueOf((byte) 0)); DataWatcher.a(18, Byte.valueOf((byte) 0), EntityRabbit.META_TYPE, 0);
DataWatcher.a(12, (byte) 0);
DataWatcher.a(15, Byte.valueOf((byte) 0));
DataWatcher.a(18, Byte.valueOf((byte) 0));
} }
@Override @Override
@ -30,6 +29,7 @@ public class DisguiseRabbit extends DisguiseInsentient
packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.uuid = Entity.getUniqueID();
double var2 = 3.9D; double var2 = 3.9D;
double var4 = 0; double var4 = 0;

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntitySheep;
import org.bukkit.DyeColor; import org.bukkit.DyeColor;
import org.bukkit.entity.*; import org.bukkit.entity.*;
@ -9,34 +11,35 @@ public class DisguiseSheep extends DisguiseAnimal
{ {
super(EntityType.SHEEP, entity); super(EntityType.SHEEP, entity);
DataWatcher.a(16, new Byte((byte)0)); DataWatcher.a(16, new Byte((byte) 0), EntitySheep.META_WOOL_STATE, (byte) 0);
} }
public boolean isSheared() public boolean isSheared()
{ {
return (DataWatcher.getByte(16) & 16) != 0; return (DataWatcher.getByte(16) & 16) != 0;
} }
public void setSheared(boolean sheared) public void setSheared(boolean sheared)
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
if (sheared) if (sheared)
DataWatcher.watch(16, Byte.valueOf((byte)(b0 | 16))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 | 16)), EntitySheep.META_WOOL_STATE, (byte) (b0 | 16));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(b0 & -17))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 & -17)), EntitySheep.META_WOOL_STATE, (byte) (b0 & -17));
} }
public int getColor() public int getColor()
{ {
return DataWatcher.getByte(16) & 15; return DataWatcher.getByte(16) & 15;
} }
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public void setColor(DyeColor color) public void setColor(DyeColor color)
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
DataWatcher.watch(16, Byte.valueOf((byte)(b0 & 240 | color.getWoolData() & 15))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 & 240 | color.getWoolData() & 15)), EntitySheep.META_WOOL_STATE,
(byte) (b0 & 240 | color.getWoolData() & 15));
} }
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntitySkeleton;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.entity.Skeleton.SkeletonType; import org.bukkit.entity.Skeleton.SkeletonType;
@ -8,22 +10,22 @@ public class DisguiseSkeleton extends DisguiseMonster
public DisguiseSkeleton(org.bukkit.entity.Entity entity) public DisguiseSkeleton(org.bukkit.entity.Entity entity)
{ {
super(EntityType.SKELETON, entity); super(EntityType.SKELETON, entity);
DataWatcher.a(13, Byte.valueOf((byte)0)); DataWatcher.a(13, Byte.valueOf((byte) 0), EntitySkeleton.META_TYPE, 0);
} }
public void SetSkeletonType(SkeletonType skeletonType) public void SetSkeletonType(SkeletonType skeletonType)
{ {
DataWatcher.watch(13, Byte.valueOf((byte)skeletonType.getId())); DataWatcher.watch(13, Byte.valueOf((byte) skeletonType.getId()), EntitySkeleton.META_TYPE, skeletonType.getId());
} }
public int GetSkeletonType() public int GetSkeletonType()
{ {
return DataWatcher.getByte(13); return DataWatcher.getByte(13);
} }
protected String getHurtSound() protected String getHurtSound()
{ {
return "mob.skeleton.hurt"; return "mob.skeleton.hurt";
} }
} }

View File

@ -1,5 +1,6 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntitySlime;
import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.MathHelper;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
@ -10,14 +11,14 @@ public class DisguiseSlime extends DisguiseInsentient
{ {
super(entity); super(entity);
DataWatcher.a(16, new Byte((byte)1)); DataWatcher.a(16, new Byte((byte) 1), EntitySlime.META_SIZE, 1);
} }
public void SetSize(int i) public void SetSize(int i)
{ {
DataWatcher.watch(16, new Byte((byte)i)); DataWatcher.watch(16, new Byte((byte) i), EntitySlime.META_SIZE, i);
} }
public int GetSize() public int GetSize()
{ {
return DataWatcher.getByte(16); return DataWatcher.getByte(16);
@ -29,63 +30,64 @@ public class DisguiseSlime extends DisguiseInsentient
packet.a = Entity.getId(); packet.a = Entity.getId();
packet.b = (byte) 55; packet.b = (byte) 55;
packet.c = (int) MathHelper.floor(Entity.locX * 32D); packet.c = (int) MathHelper.floor(Entity.locX * 32D);
packet.d = (int)MathHelper.floor(Entity.locY * 32.0D); packet.d = (int) MathHelper.floor(Entity.locY * 32.0D);
packet.e = (int)MathHelper.floor(Entity.locZ * 32D); packet.e = (int) MathHelper.floor(Entity.locZ * 32D);
packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.i = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F)); packet.j = (byte) ((int) (Entity.pitch * 256.0F / 360.0F));
packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F)); packet.k = (byte) ((int) (Entity.yaw * 256.0F / 360.0F));
packet.uuid = Entity.getUniqueID();
double var2 = 3.9D; double var2 = 3.9D;
double var4 = 0; double var4 = 0;
double var6 = 0; double var6 = 0;
double var8 = 0; double var8 = 0;
if (var4 < -var2) if (var4 < -var2)
{ {
var4 = -var2; var4 = -var2;
} }
if (var6 < -var2) if (var6 < -var2)
{ {
var6 = -var2; var6 = -var2;
} }
if (var8 < -var2) if (var8 < -var2)
{ {
var8 = -var2; var8 = -var2;
} }
if (var4 > var2) if (var4 > var2)
{ {
var4 = var2; var4 = var2;
} }
if (var6 > var2) if (var6 > var2)
{ {
var6 = var2; var6 = var2;
} }
if (var8 > var2) if (var8 > var2)
{ {
var8 = var2; var8 = var2;
} }
packet.f = (int)(var4 * 8000.0D); packet.f = (int) (var4 * 8000.0D);
packet.g = (int)(var6 * 8000.0D); packet.g = (int) (var6 * 8000.0D);
packet.h = (int)(var8 * 8000.0D); packet.h = (int) (var8 * 8000.0D);
packet.l = DataWatcher; packet.l = DataWatcher;
packet.m = DataWatcher.b(); packet.m = DataWatcher.b();
return packet; return packet;
} }
protected String getHurtSound() protected String getHurtSound()
{ {
return "mob.slime." + (GetSize() > 1 ? "big" : "small"); return "mob.slime." + (GetSize() > 1 ? "big" : "small");
} }
protected float getVolume() protected float getVolume()
{ {
return 0.4F * (float)GetSize(); return 0.4F * (float) GetSize();
} }
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntitySpider;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseSpider extends DisguiseMonster public class DisguiseSpider extends DisguiseMonster
@ -8,7 +10,7 @@ public class DisguiseSpider extends DisguiseMonster
{ {
super(EntityType.SPIDER, entity); super(EntityType.SPIDER, entity);
DataWatcher.a(16, new Byte((byte) 0)); DataWatcher.a(16, new Byte((byte) 0), EntitySpider.META_CLIMBING, (byte) 0);
} }
public boolean bT() public boolean bT()
@ -20,12 +22,12 @@ public class DisguiseSpider extends DisguiseMonster
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
if(flag) if (flag)
b0 = (byte) (b0 | 0x1); b0 = (byte) (b0 | 0x1);
else else
b0 = (byte) (b0 & 0xFFFFFFFE); b0 = (byte) (b0 & 0xFFFFFFFE);
DataWatcher.watch(16, Byte.valueOf(b0)); DataWatcher.watch(16, Byte.valueOf(b0), EntitySpider.META_CLIMBING, b0);
} }
protected String getHurtSound() protected String getHurtSound()

View File

@ -7,34 +7,15 @@ public class DisguiseSquid extends DisguiseMonster
public DisguiseSquid(org.bukkit.entity.Entity entity) public DisguiseSquid(org.bukkit.entity.Entity entity)
{ {
super(EntityType.SQUID, entity); super(EntityType.SQUID, entity);
DataWatcher.a(16, new Byte((byte)0));
}
public boolean bT()
{
return (DataWatcher.getByte(16) & 0x01) != 0;
} }
public void a(boolean flag) protected String getHurtSound()
{ {
byte b0 = DataWatcher.getByte(16); return "damage.hit";
}
if (flag)
b0 = (byte)(b0 | 0x1); protected float getVolume()
else {
b0 = (byte)(b0 & 0xFFFFFFFE); return 0.4F;
DataWatcher.watch(16, Byte.valueOf(b0));
} }
protected String getHurtSound()
{
return "damage.hit";
}
protected float getVolume()
{
return 0.4F;
}
} }

View File

@ -1,54 +1,53 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import java.util.UUID;
import net.minecraft.server.v1_8_R3.EntityTameableAnimal;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import com.google.common.base.Optional;
public abstract class DisguiseTameableAnimal extends DisguiseAnimal public abstract class DisguiseTameableAnimal extends DisguiseAnimal
{ {
public DisguiseTameableAnimal(EntityType disguiseType, org.bukkit.entity.Entity entity) public DisguiseTameableAnimal(EntityType disguiseType, org.bukkit.entity.Entity entity)
{ {
super(disguiseType, entity); super(disguiseType, entity);
DataWatcher.a(16, Byte.valueOf((byte)0)); DataWatcher.a(16, Byte.valueOf((byte) 0), EntityTameableAnimal.META_SITTING_TAMED, (byte) 0);
DataWatcher.a(17, ""); DataWatcher.a(17, "", EntityTameableAnimal.META_OWNER, Optional.<UUID> absent());
} }
public boolean isTamed() public boolean isTamed()
{ {
return (DataWatcher.getByte(16) & 0x4) != 0; return (DataWatcher.getByte(16) & 0x4) != 0;
} }
public void setTamed(boolean tamed) public void setTamed(boolean tamed)
{ {
int i = DataWatcher.getByte(16); int i = DataWatcher.getByte(16);
if (tamed) if (tamed)
DataWatcher.watch(16, Byte.valueOf((byte)(i | 0x4))); DataWatcher.watch(16, Byte.valueOf((byte) (i | 0x4)), EntityTameableAnimal.META_SITTING_TAMED, (byte) (i | 0x4));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(i | 0xFFFFFFFB))); DataWatcher.watch(16, Byte.valueOf((byte) (i | 0xFFFFFFFB)), EntityTameableAnimal.META_SITTING_TAMED,
(byte) (i | 0xFFFFFFFB));
} }
public boolean isSitting() public boolean isSitting()
{ {
return (DataWatcher.getByte(16) & 0x1) != 0; return (DataWatcher.getByte(16) & 0x1) != 0;
} }
public void setSitting(boolean sitting) public void setSitting(boolean sitting)
{ {
int i = DataWatcher.getByte(16); int i = DataWatcher.getByte(16);
if (sitting) if (sitting)
DataWatcher.watch(16, Byte.valueOf((byte)(i | 0x1))); DataWatcher.watch(16, Byte.valueOf((byte) (i | 0x1)), EntityTameableAnimal.META_SITTING_TAMED, (byte) (i | 0x1));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(i | 0xFFFFFFFE))); DataWatcher.watch(16, Byte.valueOf((byte) (i | 0xFFFFFFFE)), EntityTameableAnimal.META_SITTING_TAMED,
} (byte) (i | 0xFFFFFFFE));
public void setOwnerName(String name)
{
DataWatcher.watch(17, name);
}
public String getOwnerName()
{
return DataWatcher.getString(17);
} }
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityWitch;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseWitch extends DisguiseMonster public class DisguiseWitch extends DisguiseMonster
@ -8,21 +10,21 @@ public class DisguiseWitch extends DisguiseMonster
{ {
super(EntityType.WITCH, entity); super(EntityType.WITCH, entity);
DataWatcher.a(21, Byte.valueOf((byte)0)); DataWatcher.a(21, Byte.valueOf((byte) 0), EntityWitch.META_AGGRESSIVE, false);
}
public String getHurtSound()
{
return "mob.witch.hurt";
} }
public void a(boolean flag) public String getHurtSound()
{ {
DataWatcher.watch(21, Byte.valueOf((byte)(flag ? 1 : 0))); return "mob.witch.hurt";
} }
public boolean bT() public void a(boolean flag)
{ {
return DataWatcher.getByte(21) == 1; DataWatcher.watch(21, Byte.valueOf((byte) (flag ? 1 : 0)), EntityWitch.META_AGGRESSIVE, flag);
}
public boolean bT()
{
return DataWatcher.getByte(21) == 1;
} }
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityWither;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
@ -8,30 +10,25 @@ public class DisguiseWither extends DisguiseMonster
public DisguiseWither(org.bukkit.entity.Entity entity) public DisguiseWither(org.bukkit.entity.Entity entity)
{ {
super(EntityType.WITHER, entity); super(EntityType.WITHER, entity);
DataWatcher.a(17, new Integer(0)); DataWatcher.a(17, new Integer(0), EntityWither.META_INVUL_TIME, 0);
DataWatcher.a(18, new Integer(0)); DataWatcher.a(18, new Integer(0), EntityWither.META_TARGET_1, 0);
DataWatcher.a(19, new Integer(0)); DataWatcher.a(19, new Integer(0), EntityWither.META_TARGET_2, 0);
DataWatcher.a(20, new Integer(0)); DataWatcher.a(20, new Integer(0), EntityWither.META_TARGET_3, 0);
} }
public int getInvulTime() public int getInvulTime()
{ {
return DataWatcher.getInt(20); return DataWatcher.getInt(20);
} }
public void setInvulTime(int i)
{
DataWatcher.watch(20, Integer.valueOf(i));
}
public int t(int i)
{
return DataWatcher.getInt(17 + i);
}
public void b(int i, int j) public void setInvulTime(int i)
{ {
DataWatcher.watch(17 + i, Integer.valueOf(j)); DataWatcher.watch(20, Integer.valueOf(i), EntityWither.META_INVUL_TIME, i);
} }
public int t(int i)
{
return DataWatcher.getInt(17 + i);
}
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityWolf;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseWolf extends DisguiseTameableAnimal public class DisguiseWolf extends DisguiseTameableAnimal
@ -8,51 +10,52 @@ public class DisguiseWolf extends DisguiseTameableAnimal
{ {
super(EntityType.WOLF, entity); super(EntityType.WOLF, entity);
DataWatcher.a(18, new Float(20F)); DataWatcher.a(18, new Float(20F), EntityWolf.META_WOLF_HEALTH, 20F);
DataWatcher.a(19, new Byte((byte)0)); DataWatcher.a(19, new Byte((byte) 0), EntityWolf.META_BEGGING, false);
DataWatcher.a(20, new Byte((byte)14)); DataWatcher.a(20, new Byte((byte) 14), EntityWolf.META_COLLAR, 14);
} }
public boolean isAngry() public boolean isAngry()
{ {
return (DataWatcher.getByte(16) & 0x2) != 0; return (DataWatcher.getByte(16) & 0x2) != 0;
} }
public void setAngry(boolean angry) public void setAngry(boolean angry)
{ {
byte b0 = DataWatcher.getByte(16); byte b0 = DataWatcher.getByte(16);
if (angry) if (angry)
DataWatcher.watch(16, Byte.valueOf((byte)(b0 | 0x2))); DataWatcher.watch(16, Byte.valueOf((byte) (b0 | 0x2)), EntityWolf.META_SITTING_TAMED, (byte) (b0 | 0x2));
else else
DataWatcher.watch(16, Byte.valueOf((byte)(b0 & 0xFFFFFFFD))); DataWatcher
.watch(16, Byte.valueOf((byte) (b0 & 0xFFFFFFFD)), EntityWolf.META_SITTING_TAMED, (byte) (b0 & 0xFFFFFFFD));
} }
public int getCollarColor() public int getCollarColor()
{ {
return DataWatcher.getByte(20) & 0xF; return DataWatcher.getByte(20) & 0xF;
} }
public void setCollarColor(int i) public void setCollarColor(int i)
{ {
DataWatcher.watch(20, Byte.valueOf((byte)(i & 0xF))); DataWatcher.watch(20, Byte.valueOf((byte) (i & 0xF)), EntityWolf.META_COLLAR, (i & 0xF));
} }
public void m(boolean flag) public void m(boolean flag)
{ {
if (flag) if (flag)
DataWatcher.watch(19, Byte.valueOf((byte)1)); DataWatcher.watch(19, Byte.valueOf((byte) 1), EntityWolf.META_BEGGING, flag);
else else
DataWatcher.watch(19, Byte.valueOf((byte)0)); DataWatcher.watch(19, Byte.valueOf((byte) 0), EntityWolf.META_BEGGING, flag);
} }
public boolean ce() public boolean ce()
{ {
return DataWatcher.getByte(19) == 1; return DataWatcher.getByte(19) == 1;
} }
protected String getHurtSound() protected String getHurtSound()
{ {
return "mob.wolf.hurt"; return "mob.wolf.hurt";
} }
} }

View File

@ -1,5 +1,7 @@
package mineplex.core.disguise.disguises; package mineplex.core.disguise.disguises;
import net.minecraft.server.v1_8_R3.EntityZombie;
import org.bukkit.entity.*; import org.bukkit.entity.*;
public class DisguiseZombie extends DisguiseMonster public class DisguiseZombie extends DisguiseMonster
@ -12,34 +14,34 @@ public class DisguiseZombie extends DisguiseMonster
public DisguiseZombie(EntityType disguiseType, Entity entity) public DisguiseZombie(EntityType disguiseType, Entity entity)
{ {
super(disguiseType, entity); super(disguiseType, entity);
DataWatcher.a(12, Byte.valueOf((byte)0)); DataWatcher.a(12, Byte.valueOf((byte) 0), EntityZombie.META_CHILD, false);
DataWatcher.a(13, Byte.valueOf((byte)0)); DataWatcher.a(13, Byte.valueOf((byte) 0), EntityZombie.META_VILLAGER, false);
DataWatcher.a(14, Byte.valueOf((byte)0)); DataWatcher.a(14, Byte.valueOf((byte) 0), EntityZombie.META_CONVERTING, false);
} }
public boolean IsBaby() public boolean IsBaby()
{ {
return DataWatcher.getByte(12) == 1; return DataWatcher.getByte(12) == 1;
} }
public void SetBaby(boolean baby) public void SetBaby(boolean baby)
{ {
DataWatcher.watch(12, Byte.valueOf((byte)(baby ? 1 : 0))); DataWatcher.watch(12, Byte.valueOf((byte) (baby ? 1 : 0)), EntityZombie.META_CHILD, baby);
} }
public boolean IsVillager() public boolean IsVillager()
{ {
return DataWatcher.getByte(13) == 1; return DataWatcher.getByte(13) == 1;
} }
public void SetVillager(boolean villager) public void SetVillager(boolean villager)
{ {
DataWatcher.watch(13, Byte.valueOf((byte)(villager ? 1 : 0))); DataWatcher.watch(13, Byte.valueOf((byte) (villager ? 1 : 0)), EntityZombie.META_VILLAGER, villager);
}
protected String getHurtSound()
{
return "mob.zombie.hurt";
} }
protected String getHurtSound()
{
return "mob.zombie.hurt";
}
} }

View File

@ -13,6 +13,7 @@ import mineplex.core.disguise.disguises.DisguiseChicken;
import mineplex.core.gadget.event.GadgetBlockEvent; import mineplex.core.gadget.event.GadgetBlockEvent;
import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.recharge.Recharge; import mineplex.core.recharge.Recharge;
import net.minecraft.server.v1_8_R3.Entity;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Effect; import org.bukkit.Effect;
@ -30,25 +31,25 @@ public class BlockForm
{ {
private MorphBlock _host; private MorphBlock _host;
private Player _player; private Player _player;
private Material _mat; private Material _mat;
private Block _block; private Block _block;
private Location _loc; private Location _loc;
public BlockForm(MorphBlock host, Player player, Material mat) public BlockForm(MorphBlock host, Player player, Material mat)
{ {
_host = host; _host = host;
_player = player; _player = player;
_mat = mat; _mat = mat;
_loc = player.getLocation(); _loc = player.getLocation();
Apply(); Apply();
} }
public void Apply() public void Apply()
{ {
//Remove Old // Remove Old
if (_player.getPassenger() != null) if (_player.getPassenger() != null)
{ {
Recharge.Instance.useForce(_player, "PassengerChange", 100); Recharge.Instance.useForce(_player, "PassengerChange", 100);
@ -57,36 +58,42 @@ public class BlockForm
_player.eject(); _player.eject();
} }
((CraftEntity)_player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 32)); ((CraftEntity) _player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32);
//Player > Chicken // Player > Chicken
DisguiseChicken disguise = new DisguiseChicken(_player); DisguiseChicken disguise = new DisguiseChicken(_player);
disguise.setBaby(); disguise.setBaby();
disguise.setSoundDisguise(new DisguiseCat(_player)); disguise.setSoundDisguise(new DisguiseCat(_player));
disguise.setInvisible(true); disguise.setInvisible(true);
_host.Manager.getDisguiseManager().disguise(disguise); _host.Manager.getDisguiseManager().disguise(disguise);
//Apply Falling Block // Apply Falling Block
FallingBlockCheck(); FallingBlockCheck();
//Inform // Inform
String blockName = F.elem(ItemStackFactory.Instance.GetName(_mat, (byte)0, false)); String blockName = F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false));
if (!blockName.contains("Block")) if (!blockName.contains("Block"))
UtilPlayer.message(_player, F.main("Morph", "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte)0, false) + " Block") + "!")); UtilPlayer
.message(
_player,
F.main("Morph",
"You are now a "
+ F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false) + " Block") + "!"));
else else
UtilPlayer.message(_player, F.main("Morph", "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte)0, false)) + "!")); UtilPlayer.message(_player,
F.main("Morph", "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)) + "!"));
//Sound // Sound
_player.playSound(_player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f); _player.playSound(_player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f);
} }
public void Remove() public void Remove()
{ {
SolidifyRemove(); SolidifyRemove();
_host.Manager.getDisguiseManager().undisguise(_player); _host.Manager.getDisguiseManager().undisguise(_player);
//Remove FB // Remove FB
if (_player.getPassenger() != null) if (_player.getPassenger() != null)
{ {
Recharge.Instance.useForce(_player, "PassengerChange", 100); Recharge.Instance.useForce(_player, "PassengerChange", 100);
@ -95,97 +102,99 @@ public class BlockForm
_player.eject(); _player.eject();
} }
((CraftEntity)_player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0)); ((CraftEntity) _player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0), Entity.META_ENTITYDATA, (byte) 0);
} }
public void SolidifyUpdate() public void SolidifyUpdate()
{ {
if (!_player.isSprinting()) if (!_player.isSprinting())
((CraftEntity)_player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 32)); ((CraftEntity) _player).getHandle().getDataWatcher()
.watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32);
//Not a Block
// Not a Block
if (_block == null) if (_block == null)
{ {
//Moved // Moved
if (!_loc.getBlock().equals(_player.getLocation().getBlock())) if (!_loc.getBlock().equals(_player.getLocation().getBlock()))
{ {
_player.setExp(0); _player.setExp(0);
_loc = _player.getLocation(); _loc = _player.getLocation();
} }
//Unmoved // Unmoved
else else
{ {
double hideBoost = 0.025; double hideBoost = 0.025;
_player.setExp((float) Math.min(0.999f, _player.getExp() + hideBoost)); _player.setExp((float) Math.min(0.999f, _player.getExp() + hideBoost));
//Set Block // Set Block
if (_player.getExp() >= 0.999f) if (_player.getExp() >= 0.999f)
{ {
Block block = _player.getLocation().getBlock(); Block block = _player.getLocation().getBlock();
List<Block> blockList = new ArrayList<Block>(); List<Block> blockList = new ArrayList<Block>();
blockList.add(block); blockList.add(block);
GadgetBlockEvent event = new GadgetBlockEvent(_host, blockList); GadgetBlockEvent event = new GadgetBlockEvent(_host, blockList);
Bukkit.getServer().getPluginManager().callEvent(event); Bukkit.getServer().getPluginManager().callEvent(event);
//Not Able // Not Able
if (block.getType() != Material.AIR || !UtilBlock.solid(block.getRelative(BlockFace.DOWN)) || event.getBlocks().isEmpty() || event.isCancelled()) if (block.getType() != Material.AIR || !UtilBlock.solid(block.getRelative(BlockFace.DOWN))
|| event.getBlocks().isEmpty() || event.isCancelled())
{ {
UtilPlayer.message(_player, F.main("Morph", "You cannot become a Solid Block here.")); UtilPlayer.message(_player, F.main("Morph", "You cannot become a Solid Block here."));
_player.setExp(0f); _player.setExp(0f);
return; return;
} }
//Set Block // Set Block
_block = block; _block = block;
//Effect // Effect
_player.playEffect(_player.getLocation(), Effect.STEP_SOUND, _mat); _player.playEffect(_player.getLocation(), Effect.STEP_SOUND, _mat);
//block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, _mat); // block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, _mat);
//Display // Display
SolidifyVisual(); SolidifyVisual();
//Invisible // Invisible
//Host.Manager.GetCondition().Factory().Cloak("Disguised as Block", Player, Player, 60000, false, false); // Host.Manager.GetCondition().Factory().Cloak("Disguised as Block", Player, Player, 60000, false, false);
//Sound // Sound
_player.playSound(_player.getLocation(), Sound.NOTE_PLING, 1f, 2f); _player.playSound(_player.getLocation(), Sound.NOTE_PLING, 1f, 2f);
} }
} }
} }
//Is a Block // Is a Block
else else
{ {
//Moved // Moved
if (!_loc.getBlock().equals(_player.getLocation().getBlock())) if (!_loc.getBlock().equals(_player.getLocation().getBlock()))
{ {
SolidifyRemove(); SolidifyRemove();
} }
//Send Packets // Send Packets
else else
{ {
SolidifyVisual(); SolidifyVisual();
} }
} }
} }
public void SolidifyRemove() public void SolidifyRemove()
{ {
if (_block != null) if (_block != null)
{ {
MapUtil.QuickChangeBlockAt(_block.getLocation(), 0, (byte)0); MapUtil.QuickChangeBlockAt(_block.getLocation(), 0, (byte) 0);
_block = null; _block = null;
} }
_player.setExp(0f); _player.setExp(0f);
//Host.Manager.GetCondition().EndCondition(Player, null, "Disguised as Block"); // Host.Manager.GetCondition().EndCondition(Player, null, "Disguised as Block");
//Inform // Inform
_player.playSound(_player.getLocation(), Sound.NOTE_PLING, 1f, 0.5f); _player.playSound(_player.getLocation(), Sound.NOTE_PLING, 1f, 0.5f);
FallingBlockCheck(); FallingBlockCheck();
@ -197,7 +206,7 @@ public class BlockForm
if (_block == null) if (_block == null)
return; return;
//Remove Old // Remove Old
if (_player.getPassenger() != null) if (_player.getPassenger() != null)
{ {
Recharge.Instance.useForce(_player, "PassengerChange", 100); Recharge.Instance.useForce(_player, "PassengerChange", 100);
@ -206,49 +215,49 @@ public class BlockForm
_player.eject(); _player.eject();
} }
//Others // Others
for (Player other : UtilServer.getPlayers()) for (Player other : UtilServer.getPlayers())
other.sendBlockChange(_player.getLocation(), _mat, (byte)0); other.sendBlockChange(_player.getLocation(), _mat, (byte) 0);
//Self // Self
_player.sendBlockChange(_player.getLocation(), 36, (byte)0); _player.sendBlockChange(_player.getLocation(), 36, (byte) 0);
FallingBlockCheck(); FallingBlockCheck();
} }
public void FallingBlockCheck() public void FallingBlockCheck()
{ {
//Block Form (Hide Falling) // Block Form (Hide Falling)
if (_block != null) if (_block != null)
return; return;
//Recreate Falling // Recreate Falling
if (_player.getPassenger() == null || !_player.getPassenger().isValid()) if (_player.getPassenger() == null || !_player.getPassenger().isValid())
{ {
if (!Recharge.Instance.use(_player, "PassengerChange", 100, false, false)) if (!Recharge.Instance.use(_player, "PassengerChange", 100, false, false))
return; return;
//Falling Block // Falling Block
FallingBlock block = _player.getWorld().spawnFallingBlock(_player.getEyeLocation(), _mat, (byte)0); FallingBlock block = _player.getWorld().spawnFallingBlock(_player.getEyeLocation(), _mat, (byte) 0);
//No Arrow Collision // No Arrow Collision
((CraftFallingSand)block).getHandle().spectating = true; ((CraftFallingSand) block).getHandle().spectating = true;
_player.setPassenger(block); _player.setPassenger(block);
_host.fallingBlockRegister(block); _host.fallingBlockRegister(block);
} }
//Ensure Falling doesnt Despawn // Ensure Falling doesnt Despawn
else else
{ {
((CraftFallingSand)_player.getPassenger()).getHandle().ticksLived = 1; ((CraftFallingSand) _player.getPassenger()).getHandle().ticksLived = 1;
_player.getPassenger().setTicksLived(1); _player.getPassenger().setTicksLived(1);
} }
} }
public Block GetBlock() public Block GetBlock()
{ {
return _block; return _block;
} }

View File

@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.UUID;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -13,6 +14,7 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
@ -291,15 +293,16 @@ public class Hologram
packet.d = (int) ((getLocation().getY() + (_hideBoundingBox ? 0 : -2.1) + ((double) textRow * 0.285)) * 32); packet.d = (int) ((getLocation().getY() + (_hideBoundingBox ? 0 : -2.1) + ((double) textRow * 0.285)) * 32);
packet.e = (int) (getLocation().getZ() * 32); packet.e = (int) (getLocation().getZ() * 32);
packet.l = watcher; packet.l = watcher;
packet.uuid = UUID.randomUUID();
// Setup datawatcher for armor stand // Setup datawatcher for armor stand
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, EntityArmorStand.META_ENTITYDATA, (byte) 32);
watcher.a(2, lineOfText); watcher.a(2, lineOfText, EntityArmorStand.META_CUSTOMNAME, lineOfText);
watcher.a(3, (byte) 1); watcher.a(3, (byte) 1, EntityArmorStand.META_CUSTOMNAME_VISIBLE, true);
if (_hideBoundingBox) if (_hideBoundingBox)
{ {
watcher.a(10, (byte) 16); // TODO Uncomment after we can enforce 1.8.3 watcher.a(10, (byte) 16, EntityArmorStand.META_ARMOR_OPTION, (byte) 16); // TODO Uncomment after we can enforce 1.8.3
} }
// Also correct hologram positioning // Also correct hologram positioning
@ -527,9 +530,9 @@ public class Hologram
DataWatcher watcher1_8 = new DataWatcher(null); DataWatcher watcher1_8 = new DataWatcher(null);
watcher1_8.a(0, (byte) 32); watcher1_8.a(0, (byte) 32, EntityArmorStand.META_ENTITYDATA, (byte) 32);
watcher1_8.a(2, newText[i]); watcher1_8.a(2, newText[i], EntityArmorStand.META_CUSTOMNAME, newText[i]);
watcher1_8.a(3, (byte) 1); watcher1_8.a(3, (byte) 1, EntityArmorStand.META_CUSTOMNAME_VISIBLE, true);
// watcher1_8.a(10, (byte) 16);// TODO Uncomment after we can enforce 1.8.3 // watcher1_8.a(10, (byte) 16);// TODO Uncomment after we can enforce 1.8.3
// Also correct hologram positioning // Also correct hologram positioning
metadata1_8.b = watcher1_8.c(); metadata1_8.b = watcher1_8.c();

View File

@ -172,7 +172,7 @@ public class Recharge extends MiniPlugin
//Recharging //Recharging
if (Get(player).containsKey(ability)) if (Get(player).containsKey(ability))
{ {
if (inform) if (inform && !Get(player).get(ability).DisplayForce && !Get(player).get(ability).AttachItem)
{ {
UtilPlayer.message(player, F.main("Recharge", "You cannot use " + F.skill(abilityFull) + " for " + UtilPlayer.message(player, F.main("Recharge", "You cannot use " + F.skill(abilityFull) + " for " +
F.time(UtilTime.convertString((Get(player).get(ability).GetRemaining()), 1, TimeUnit.FIT)) + ".")); F.time(UtilTime.convertString((Get(player).get(ability).GetRemaining()), 1, TimeUnit.FIT)) + "."));
@ -217,7 +217,7 @@ public class Recharge extends MiniPlugin
} }
else else
{ {
if (inform) if (inform && !Get(player).get(ability).DisplayForce && !Get(player).get(ability).AttachItem)
UtilPlayer.message(player, F.main("Recharge", "You cannot use " + F.skill(ability) + " for " + UtilPlayer.message(player, F.main("Recharge", "You cannot use " + F.skill(ability) + " for " +
F.time(UtilTime.convertString((Get(player).get(ability).GetRemaining()), 1, TimeUnit.FIT)) + ".")); F.time(UtilTime.convertString((Get(player).get(ability).GetRemaining()), 1, TimeUnit.FIT)) + "."));

View File

@ -40,6 +40,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
@Override @Override
protected void buildPage() protected void buildPage()
{ {
/*
addButton(2, new ItemBuilder(Material.RED_ROSE).setTitle(C.cYellowB + "Valentines Vendetta " + C.cGray + "Save Valentines!").addLore(new String[] addButton(2, new ItemBuilder(Material.RED_ROSE).setTitle(C.cYellowB + "Valentines Vendetta " + C.cGray + "Save Valentines!").addLore(new String[]
{ {
(_extraValue ? C.cAquaB : C.cWhiteB) + "LIMITED TIME GAME", (_extraValue ? C.cAquaB : C.cWhiteB) + "LIMITED TIME GAME",
@ -50,8 +51,9 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
C.Reset + "", C.Reset + "",
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("VV") + C.Reset + " other players!", C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("VV") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectVVButton(this)); }).setHideInfo(true).build(), new SelectVVButton(this));
*/
addButton(4, new ItemBuilder(Material.QUARTZ_BLOCK).setTitle(C.cYellowB + "Speed Builders " + C.cGray + "Competitive Building").addLore(new String[] addButton(2, new ItemBuilder(Material.QUARTZ_BLOCK).setTitle(C.cYellowB + "Speed Builders " + C.cGray + "Competitive Building").addLore(new String[]
{ {
(_extraValue ? C.cAquaB : C.cWhiteB) + "NEW GAME", (_extraValue ? C.cAquaB : C.cWhiteB) + "NEW GAME",
C.Reset + "", C.Reset + "",
@ -62,6 +64,28 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("SB") + C.Reset + " other players!", C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("SB") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectSBButton(this)); }).setHideInfo(true).build(), new SelectSBButton(this));
addButton(4, new ItemBuilder(Material.BOOK_AND_QUILL).setTitle(C.cYellowB + "Draw My Thing " + C.cGray + "Pictionary").addLore(new String[]
{
(_extraValue ? C.cAquaB : C.cWhiteB) + "NEW UPDATE",
C.Reset + "",
C.Reset + "Players take turns at drawing a random",
C.Reset + "word. Whoever guesses it within the time",
C.Reset + "limit gets some points!",
C.Reset + "",
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DMT") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectDMTButton(this));
addButton(6, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "Dragon Escape " + C.cGray + "Fast Paced Parkour").addLore(new String[]
{
(_extraValue ? C.cAquaB : C.cWhiteB) + "FEATURED ARCADE GAME",
C.Reset + "",
C.Reset + "Douglas the Dragon is angry",
C.Reset + "You better RUNNNNN!",
C.Reset + "Last player alive wins",
C.Reset + "",
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("DE") + C.Reset + " other players!"
}).setHideInfo(true).build(), new SelectFEATButton(this, "Dragon Escape"));
/* /*
addButton(6, new ItemBuilder(Material.IRON_SWORD).setTitle(C.cYellowB + "Gladiators" + C.cGray + " Bracketted Deathmatch").addLore(new String[] addButton(6, new ItemBuilder(Material.IRON_SWORD).setTitle(C.cYellowB + "Gladiators" + C.cGray + " Bracketted Deathmatch").addLore(new String[]
{ {
@ -88,6 +112,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
}).setHideInfo(true).build(), new SelectFEATButton(this, "Micro Battle")); }).setHideInfo(true).build(), new SelectFEATButton(this, "Micro Battle"));
*/ */
/*
addButton(6, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "Bomb Lobbers " + C.cGray + "TNT Mayhem").addLore(new String[] addButton(6, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "Bomb Lobbers " + C.cGray + "TNT Mayhem").addLore(new String[]
{ {
(_extraValue ? C.cAquaB : C.cWhiteB) + "FEATURED ARCADE GAME", (_extraValue ? C.cAquaB : C.cWhiteB) + "FEATURED ARCADE GAME",
@ -97,6 +122,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
C.Reset + "", C.Reset + "",
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BL") + C.Reset + " other players!" C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BL") + C.Reset + " other players!"
}).setHideInfo(true).build(), new SelectFEATButton(this, "Bomb Lobbers")); }).setHideInfo(true).build(), new SelectFEATButton(this, "Bomb Lobbers"));
*/
addButton(9, new ItemBuilder(Material.IRON_PICKAXE).setTitle(C.cYellowB + "The Bridges " + C.cGray + "4 Team Survival").addLore(new String[] addButton(9, new ItemBuilder(Material.IRON_PICKAXE).setTitle(C.cYellowB + "The Bridges " + C.cGray + "4 Team Survival").addLore(new String[]
{ {
@ -201,7 +227,7 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BH") + C.Reset + " other players!", C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("BH") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectBHButton(this)); }).setHideInfo(true).build(), new SelectBHButton(this));
addButton(27, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "MineStrike " + C.cGray + "Team Survival").addLore(new String[] addButton(28, new ItemBuilder(Material.TNT).setTitle(C.cYellowB + "MineStrike " + C.cGray + "Team Survival").addLore(new String[]
{ {
C.Reset + "", C.Reset + "",
C.Reset + "One team must defend two bomb sites from", C.Reset + "One team must defend two bomb sites from",
@ -211,21 +237,11 @@ public class ServerGameMenu extends ShopPageBase<ServerManager, QuickShop>
C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("MS") + C.Reset + " other players!", C.Reset + "Join " + C.cGreen + getPlugin().getGroupTagPlayerCount("MS") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectMSButton(this)); }).setHideInfo(true).build(), new SelectMSButton(this));
addButton(29, new ItemBuilder(Material.BOOK_AND_QUILL).setTitle(C.cYellowB + "Draw My Thing " + C.cGray + "Pictionary").addLore(new String[] addButton(30, _superSmashCycle.get(_ssmIndex), new SelectSSMButton(this));
{
C.Reset + "",
C.Reset + "Players take turns at drawing a random",
C.Reset + "word. Whoever guesses it within the time",
C.Reset + "limit gets some points!",
C.Reset + "",
C.Reset + "Join " + ChatColor.GREEN + getPlugin().getGroupTagPlayerCount("DMT") + C.Reset + " other players!",
}).setHideInfo(true).build(), new SelectDMTButton(this));
addButton(31, _superSmashCycle.get(_ssmIndex), new SelectSSMButton(this)); addButton(32, _minigameCycle.get(_minigameIndex), new SelectMINButton(this));
addButton(33, _minigameCycle.get(_minigameIndex), new SelectMINButton(this)); addButton(34, new ItemBuilder(Material.WOOD).setTitle(C.cYellowB + "Master Builders " + C.cGray + "Creative Build").setLore(new String[]
addButton(35, new ItemBuilder(Material.WOOD).setTitle(C.cYellowB + "Master Builders " + C.cGray + "Creative Build").setLore(new String[]
{ {
C.Reset + "", C.Reset + "",
C.Reset + "Players are given a Build Theme and ", C.Reset + "Players are given a Build Theme and ",

View File

@ -2,6 +2,7 @@ package mineplex.minecraft.game.core.boss.ironwizard.abilities;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
@ -52,8 +53,8 @@ public class BlockHailBlock
PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving();
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 0);
watcher.a(1, 0); watcher.a(1, 0, Entity.META_AIR, 0);
packet1.a = _silverfish; packet1.a = _silverfish;
packet1.b = EntityType.SILVERFISH.getTypeId(); packet1.b = EntityType.SILVERFISH.getTypeId();

View File

@ -172,8 +172,8 @@ public class GolemExplodingAura extends BossAbility<GolemCreature, IronGolem>
PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving();
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 0);
watcher.a(1, 0); watcher.a(1, 0, net.minecraft.server.v1_8_R3.Entity.META_AIR, 0);
packet1.a = key; packet1.a = key;
packet1.b = EntityType.SILVERFISH.getTypeId(); packet1.b = EntityType.SILVERFISH.getTypeId();

View File

@ -395,8 +395,8 @@ public class GolemExplosiveBlock extends BossAbility<GolemCreature, IronGolem>
PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving packet1 = new PacketPlayOutSpawnEntityLiving();
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 0);
watcher.a(1, 0); watcher.a(1, 0, net.minecraft.server.v1_8_R3.Entity.META_AIR, 0);
packet1.a = id; packet1.a = id;
packet1.b = EntityType.SILVERFISH.getTypeId(); packet1.b = EntityType.SILVERFISH.getTypeId();

View File

@ -1,5 +1,7 @@
package mineplex.minecraft.game.core.boss.snake; package mineplex.minecraft.game.core.boss.snake;
import java.util.UUID;
import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_8_R3.inventory.CraftItemStack;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -8,12 +10,14 @@ import org.bukkit.util.Vector;
import mineplex.core.common.util.UtilAlg; import mineplex.core.common.util.UtilAlg;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityEquipment; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityEquipment;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityMetadata;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
import net.minecraft.server.v1_8_R3.Vector3f;
public class SnakeSegment public class SnakeSegment
{ {
@ -92,16 +96,16 @@ public class SnakeSegment
_prevDir = vec; _prevDir = vec;
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 0);
watcher.a(1, 0); watcher.a(1, 0, net.minecraft.server.v1_8_R3.Entity.META_AIR, 0);
watcher.a(10, (byte) 0); watcher.a(10, (byte) 0, EntityArmorStand.META_ARMOR_OPTION, (byte) 0);
watcher.a(11, new Vector3f(0, 0, 0), EntityArmorStand.META_HEAD_POSE,
watcher.a(11, vec); new Vector3f((float) vec.getX(), (float) vec.getY(), (float) vec.getZ()));
watcher.a(12, new Vector3f(0, 0, 0), EntityArmorStand.META_BODY_POSE, new Vector3f(0, 0, 0));
for (int i = 12; i < 17; i++) watcher.a(13, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_ARM_POSE, new Vector3f(0, 0, 0));
{ watcher.a(14, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_ARM_POSE, new Vector3f(0, 0, 0));
watcher.a(i, new Vector(0, 0, 0)); watcher.a(15, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_LEG_POSE, new Vector3f(0, 0, 0));
} watcher.a(16, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_LEG_POSE, new Vector3f(0, 0, 0));
PacketPlayOutEntityMetadata meta = new PacketPlayOutEntityMetadata(); PacketPlayOutEntityMetadata meta = new PacketPlayOutEntityMetadata();
@ -129,23 +133,25 @@ public class SnakeSegment
PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving(); PacketPlayOutSpawnEntityLiving packet = new PacketPlayOutSpawnEntityLiving();
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(1, 0); watcher.a(1, 0, net.minecraft.server.v1_8_R3.Entity.META_AIR, 0);
packet.a = getId(); packet.a = getId();
packet.c = (int) Math.floor(_entityLocation.getX() * 32); packet.c = (int) Math.floor(_entityLocation.getX() * 32);
packet.d = (int) Math.floor(_entityLocation.getY() * 32); packet.d = (int) Math.floor(_entityLocation.getY() * 32);
packet.e = (int) Math.floor(_entityLocation.getZ() * 32); packet.e = (int) Math.floor(_entityLocation.getZ() * 32);
packet.l = watcher; packet.l = watcher;
packet.uuid = UUID.randomUUID();
if (_item != null) if (_item != null)
{ {
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 32);
watcher.a(10, (byte) 0); watcher.a(10, (byte) 0, EntityArmorStand.META_ARMOR_OPTION, (byte) 0);
watcher.a(11, new Vector3f(0, 0, 0), EntityArmorStand.META_HEAD_POSE, new Vector3f(0, 0, 0));
for (int i = 11; i < 17; i++) watcher.a(12, new Vector3f(0, 0, 0), EntityArmorStand.META_BODY_POSE, new Vector3f(0, 0, 0));
{ watcher.a(13, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_ARM_POSE, new Vector3f(0, 0, 0));
watcher.a(i, new Vector(0, 0, 0)); watcher.a(14, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_ARM_POSE, new Vector3f(0, 0, 0));
} watcher.a(15, new Vector3f(0, 0, 0), EntityArmorStand.META_LEFT_LEG_POSE, new Vector3f(0, 0, 0));
watcher.a(16, new Vector3f(0, 0, 0), EntityArmorStand.META_RIGHT_LEG_POSE, new Vector3f(0, 0, 0));
packet.b = 30; packet.b = 30;
@ -162,7 +168,7 @@ public class SnakeSegment
} }
else else
{ {
watcher.a(0, (byte) 0); watcher.a(0, (byte) 0, net.minecraft.server.v1_8_R3.Entity.META_ENTITYDATA, (byte) 0);
packet.b = EntityType.MAGMA_CUBE.getTypeId(); packet.b = EntityType.MAGMA_CUBE.getTypeId();
return new Packet[] return new Packet[]

View File

@ -870,7 +870,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
UtilInv.Clear(player); UtilInv.Clear(player);
((CraftEntity) player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0)); ((CraftEntity) player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0), EntityLiving.META_ENTITYDATA, (byte) 0);
player.setCustomName(""); player.setCustomName("");
player.setCustomNameVisible(false); player.setCustomNameVisible(false);

View File

@ -1,6 +1,7 @@
package nautilus.game.arcade.game.games.christmas; package nautilus.game.arcade.game.games.christmas;
import java.util.HashSet; import java.util.HashSet;
import java.util.UUID;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@ -18,6 +19,8 @@ import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilEnt; import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.EntityArmorStand;
import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.EntityPlayer;
import net.minecraft.server.v1_8_R3.EntityTrackerEntry; import net.minecraft.server.v1_8_R3.EntityTrackerEntry;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
@ -162,11 +165,13 @@ public class SleighHorse
packet.d = (int) (loc.getY() * 32); packet.d = (int) (loc.getY() * 32);
packet.e = (int) (loc.getZ() * 32) + this._previousDir[(i * 2) + 1]; packet.e = (int) (loc.getZ() * 32) + this._previousDir[(i * 2) + 1];
packet.f = ((byte) (int) (loc.getYaw() * 256.0F / 360.0F)); packet.f = ((byte) (int) (loc.getYaw() * 256.0F / 360.0F));
packet.uuid = UUID.randomUUID();
// Setup datawatcher for armor stand // Setup datawatcher for armor stand
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32);
watcher.a(10, (byte) 4); watcher.a(10, (byte) 4, EntityArmorStand.META_ARMOR_OPTION, (byte) 4);
watcher.a(11, new Vector3f(0, i * 180, (i == 0 ? -1 : 1) * 60f)); watcher.a(11, new Vector3f(0, i * 180, (i == 0 ? -1 : 1) * 60f), EntityArmorStand.META_HEAD_POSE, new Vector3f(0, i * 180, (i == 0 ? -1 : 1) * 60f));
packet.l = watcher; packet.l = watcher;
PacketPlayOutEntityEquipment enquipPacket = new PacketPlayOutEntityEquipment(); PacketPlayOutEntityEquipment enquipPacket = new PacketPlayOutEntityEquipment();
enquipPacket.a = id; enquipPacket.a = id;

View File

@ -40,6 +40,9 @@ public abstract class Tool
public void start(PlayerInteractEvent event) public void start(PlayerInteractEvent event)
{ {
if (_start != null)
return;
if (!UtilEvent.isAction(event, ActionType.R)) if (!UtilEvent.isAction(event, ActionType.R))
return; return;

View File

@ -259,7 +259,7 @@ public class HideSeek extends TeamGame
.sendPacket( .sendPacket(
player, player,
blockForm blockForm
.getBlockPackets()); .getBlockPackets(UtilPlayer.is1_9(player)));
} }
}); });
break; break;

View File

@ -1,5 +1,7 @@
package nautilus.game.arcade.game.games.hideseek.forms; package nautilus.game.arcade.game.games.hideseek.forms;
import java.util.UUID;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.MapUtil; import mineplex.core.common.util.MapUtil;
@ -15,10 +17,12 @@ import mineplex.core.recharge.Recharge;
import nautilus.game.arcade.game.games.hideseek.HideSeek; import nautilus.game.arcade.game.games.hideseek.HideSeek;
import nautilus.game.arcade.game.games.hideseek.kits.KitHiderQuick; import nautilus.game.arcade.game.games.hideseek.kits.KitHiderQuick;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.EntityPlayer; import net.minecraft.server.v1_8_R3.EntityPlayer;
import net.minecraft.server.v1_8_R3.EntityTrackerEntry; import net.minecraft.server.v1_8_R3.EntityTrackerEntry;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutNewAttachEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport;
@ -68,23 +72,23 @@ public class BlockForm extends Form
} }
@Override @Override
public void Apply() public void Apply()
{ {
// Remove Old // Remove Old
if (Player.getPassenger() != null) if (Player.getPassenger() != null)
{ {
Player.getPassenger().remove(); Player.getPassenger().remove();
Player.eject(); Player.eject();
} }
EntityPlayer player = ((CraftPlayer) Player).getHandle(); EntityPlayer player = ((CraftPlayer) Player).getHandle();
player.getDataWatcher().watch(0, Byte.valueOf((byte) 32)); player.getDataWatcher().watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32);
// Player > Chicken // Player > Chicken
DisguiseChicken disguise = new DisguiseChicken(Player); DisguiseChicken disguise = new DisguiseChicken(Player);
disguise.setBaby(); disguise.setBaby();
disguise.setInvisible(true); disguise.setInvisible(true);
disguise.setSoundDisguise(new DisguiseCat(Player)); disguise.setSoundDisguise(new DisguiseCat(Player));
Host.Manager.GetDisguise().disguise(disguise); Host.Manager.GetDisguise().disguise(disguise);
@ -102,65 +106,94 @@ public class BlockForm extends Form
packet1.d = (int) Math.floor(_lastSaw.getY() * 32); packet1.d = (int) Math.floor(_lastSaw.getY() * 32);
packet1.e = (int) Math.floor(_lastSaw.getZ() * 32); packet1.e = (int) Math.floor(_lastSaw.getZ() * 32);
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32);
watcher.a(1, 0); watcher.a(1, 0, Entity.META_AIR, 0);
packet1.l = watcher; packet1.l = watcher;
packet1.uuid = UUID.randomUUID();
packets[0] = packet1; packets[0] = packet1;
PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); if (UtilPlayer.is1_9(Player))
{
packets[2] = new PacketPlayOutNewAttachEntity(_selfEntityId1, new int[]
{
_selfEntityId2
});
packet3.b = _selfEntityId2; }
packet3.c = _selfEntityId1; else
packets[2] = packet3; {
PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity();
PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(player, packet3.b = _selfEntityId2;
70, _mat.getId()); packet3.c = _selfEntityId1;
packets[2] = packet3;
}
PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(player, 70, _mat.getId());
packet2.a = _selfEntityId2; packet2.a = _selfEntityId2;
packet2.uuid = UUID.randomUUID();
packets[1] = packet2; packets[1] = packet2;
UtilPlayer.sendPacket(Player, packets); UtilPlayer.sendPacket(Player, packets);
// Inform // Inform
String blockName = F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)); String blockName = F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false));
if (!blockName.contains("Block")) if (!blockName.contains("Block"))
UtilPlayer.message( UtilPlayer.message(
Player, Player,
F.main("Game", F.main("Game",
C.cWhite + "You are now a " C.cWhite + "You are now a "
+ F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false) + " Block") + "!")); + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false) + " Block") + "!"));
else else
UtilPlayer.message( UtilPlayer.message(
Player, Player,
F.main("Game", C.cWhite + "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false)) F.main("Game", C.cWhite + "You are now a " + F.elem(ItemStackFactory.Instance.GetName(_mat, (byte) 0, false))
+ "!")); + "!"));
// Give Item // Give Item
Player.getInventory().setItem(8, new ItemStack(Host.GetItemEquivilent(_mat))); Player.getInventory().setItem(8, new ItemStack(Host.GetItemEquivilent(_mat)));
UtilInv.Update(Player); UtilInv.Update(Player);
// Sound // Sound
Player.playSound(Player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f); Player.playSound(Player.getLocation(), Sound.ZOMBIE_UNFECT, 2f, 2f);
}
public Packet[] getBlockPackets()
{
PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) Player).getHandle(),
70, _mat.getId());
packet2.a = _blockId;
PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity();
packet3.b = _blockId;
packet3.c = Player.getEntityId();
return new Packet[] {packet2, packet3};
} }
public Packet[] getBlockPackets(boolean is19)
{
Packet[] packets = new Packet[2];
PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) Player).getHandle(), 70, _mat.getId());
packet2.a = _blockId;
packet2.uuid = UUID.randomUUID();
packets[0] = packet2;
if (is19)
{
packets[2] = new PacketPlayOutNewAttachEntity(_blockId, new int[]
{
Player.getEntityId()
});
}
else
{
PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity();
packet3.b = _blockId;
packet3.c = Player.getEntityId();
packets[1] = packet3;
}
return packets;
}
public int getBlockId() public int getBlockId()
{ {
return _blockId; return _blockId;
} }
@Override @Override
public void Remove() public void Remove()
{ {
@ -169,19 +202,20 @@ public class BlockForm extends Form
Host.Manager.GetDisguise().undisguise(Player); Host.Manager.GetDisguise().undisguise(Player);
UtilPlayer.sendPacket(Player, new PacketPlayOutEntityDestroy(new int[] UtilPlayer.sendPacket(Player, new PacketPlayOutEntityDestroy(new int[]
{ {
_selfEntityId1, _selfEntityId2, _blockId _selfEntityId1,
})); _selfEntityId2,
_blockId
}));
((CraftEntity) Player).getHandle().getDataWatcher() ((CraftEntity) Player).getHandle().getDataWatcher().watch(0, (byte) 0, Entity.META_ENTITYDATA, (byte) 0);
.watch(0, Byte.valueOf((byte) 0));
} }
public void SolidifyUpdate() public void SolidifyUpdate()
{ {
if (!Player.isSprinting()) if (!Player.isSprinting())
((CraftEntity) Player).getHandle().getDataWatcher() ((CraftEntity) Player).getHandle().getDataWatcher()
.watch(0, Byte.valueOf((byte) 32)); .watch(0, Byte.valueOf((byte) 32), Entity.META_ENTITYDATA, (byte) 32);
// Not a Block // Not a Block
if (_block == null) if (_block == null)
@ -199,8 +233,7 @@ public class BlockForm extends Form
if (Host.GetKit(Player) instanceof KitHiderQuick) if (Host.GetKit(Player) instanceof KitHiderQuick)
hideBoost = 0.1; hideBoost = 0.1;
Player.setExp((float) Math.min(0.999f, Player.getExp() Player.setExp((float) Math.min(0.999f, Player.getExp() + hideBoost));
+ hideBoost));
// Set Block // Set Block
if (Player.getExp() >= 0.999f) if (Player.getExp() >= 0.999f)
@ -208,25 +241,20 @@ public class BlockForm extends Form
Block block = Player.getLocation().getBlock(); Block block = Player.getLocation().getBlock();
// Not Able // Not Able
if (block.getType() != Material.AIR if (block.getType() != Material.AIR || !UtilBlock.solid(block.getRelative(BlockFace.DOWN)))
|| !UtilBlock.solid(block
.getRelative(BlockFace.DOWN)))
{ {
UtilPlayer.message(Player, F.main("Game", UtilPlayer.message(Player, F.main("Game", "You cannot become a Solid Block here."));
"You cannot become a Solid Block here."));
Player.setExp(0f); Player.setExp(0f);
return; return;
} }
Bukkit.getPluginManager().callEvent( Bukkit.getPluginManager().callEvent(new HideSeek.PlayerSolidifyEvent(Player));
new HideSeek.PlayerSolidifyEvent(Player));
// Set Block // Set Block
_block = block; _block = block;
// Effect // Effect
Player.playEffect(Player.getLocation(), Effect.STEP_SOUND, Player.playEffect(Player.getLocation(), Effect.STEP_SOUND, _mat);
_mat);
// block.getWorld().playEffect(block.getLocation(), // block.getWorld().playEffect(block.getLocation(),
// Effect.STEP_SOUND, _mat); // Effect.STEP_SOUND, _mat);
@ -238,19 +266,16 @@ public class BlockForm extends Form
// Player, Player, 60000, false, false); // Player, Player, 60000, false, false);
// Sound // Sound
Player.playSound(Player.getLocation(), Sound.NOTE_PLING, Player.playSound(Player.getLocation(), Sound.NOTE_PLING, 1f, 2f);
1f, 2f);
// Teleport falling block to the position. // Teleport falling block to the position.
Vector blockLoc = _block.getLocation() Vector blockLoc = _block.getLocation().add(0.5, -.21875, 0.5).toVector();
.add(0.5, -.21875, 0.5).toVector();
_sawDiff.add(blockLoc.clone().subtract(_lastSaw)); _sawDiff.add(blockLoc.clone().subtract(_lastSaw));
Packet packet = this.getPacket(_sawDiff, blockLoc); Packet packet = this.getPacket(_sawDiff, blockLoc);
_lastSaw = Player.getLocation().toVector() _lastSaw = Player.getLocation().toVector().subtract(new Vector(0, 0.15625, 0));
.subtract(new Vector(0, 0.15625, 0));
_sawDiff = _lastSaw.clone().subtract(blockLoc); _sawDiff = _lastSaw.clone().subtract(blockLoc);
if (packet != null) if (packet != null)
@ -260,17 +285,15 @@ public class BlockForm extends Form
_sawDiff = new Vector(); _sawDiff = new Vector();
} }
((CraftPlayer) Player).getHandle().playerConnection ((CraftPlayer) Player).getHandle().playerConnection.sendPacket(packet);
.sendPacket(packet);
} }
for (Player player : UtilServer.getPlayers()) for (Player player : UtilServer.getPlayers())
{ {
UtilPlayer.sendPacket(player, UtilPlayer.sendPacket(player, new PacketPlayOutEntityDestroy(new int[]
new PacketPlayOutEntityDestroy(new int[] {
{ getBlockId()
getBlockId() }));
}));
} }
} }
} }
@ -298,16 +321,14 @@ public class BlockForm extends Form
MapUtil.QuickChangeBlockAt(_block.getLocation(), 0, (byte) 0); MapUtil.QuickChangeBlockAt(_block.getLocation(), 0, (byte) 0);
_block = null; _block = null;
EntityTrackerEntry tracker = (EntityTrackerEntry) ((WorldServer) ((CraftEntity) Player) EntityTrackerEntry tracker = (EntityTrackerEntry) ((WorldServer) ((CraftEntity) Player).getHandle().world).tracker.trackedEntities
.getHandle().world).tracker.trackedEntities.get(Player .get(Player.getEntityId());
.getEntityId());
if (tracker != null) if (tracker != null)
{ {
for (EntityPlayer entity : tracker.trackedPlayers) for (EntityPlayer entity : tracker.trackedPlayers)
{ {
UtilPlayer.sendPacket(entity.getBukkitEntity(), UtilPlayer.sendPacket(entity.getBukkitEntity(), getBlockPackets(UtilPlayer.is1_9(entity.getBukkitEntity())));
getBlockPackets());
} }
} }
} }
@ -348,13 +369,10 @@ public class BlockForm extends Form
if (_lastSaw != null) if (_lastSaw != null)
{ {
this._sawDiff.add(Player.getLocation() this._sawDiff.add(Player.getLocation().subtract(0, 0.15625, 0).toVector().subtract(_lastSaw));
.subtract(0, 0.15625, 0).toVector()
.subtract(_lastSaw));
} }
_lastSaw = Player.getLocation().subtract(0, 0.15625, 0) _lastSaw = Player.getLocation().subtract(0, 0.15625, 0).toVector();
.toVector();
Packet packet = this.getPacket(_sawDiff, _lastSaw); Packet packet = this.getPacket(_sawDiff, _lastSaw);
@ -363,8 +381,7 @@ public class BlockForm extends Form
if (packet instanceof PacketPlayOutRelEntityMove) if (packet instanceof PacketPlayOutRelEntityMove)
{ {
PacketPlayOutRelEntityMove relPacket = (PacketPlayOutRelEntityMove) packet; PacketPlayOutRelEntityMove relPacket = (PacketPlayOutRelEntityMove) packet;
_sawDiff.subtract(new Vector(relPacket.b / 32D, _sawDiff.subtract(new Vector(relPacket.b / 32D, relPacket.c / 32D, relPacket.d / 32D));
relPacket.c / 32D, relPacket.d / 32D));
} }
else else
{ {
@ -384,8 +401,7 @@ public class BlockForm extends Form
if (x != 0 || y != 0 || z != 0) if (x != 0 || y != 0 || z != 0)
{ {
if (x >= -128 && x <= 127 && y >= -128 && y <= 127 && z >= -128 if (x >= -128 && x <= 127 && y >= -128 && y <= 127 && z >= -128 && z <= 127)
&& z <= 127)
{ {
PacketPlayOutRelEntityMove relMove = new PacketPlayOutRelEntityMove(); PacketPlayOutRelEntityMove relMove = new PacketPlayOutRelEntityMove();
relMove.a = this._selfEntityId1; relMove.a = this._selfEntityId1;

View File

@ -7,6 +7,7 @@ import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import mineplex.core.disguise.disguises.*; import mineplex.core.disguise.disguises.*;
import nautilus.game.arcade.game.games.hideseek.HideSeek; import nautilus.game.arcade.game.games.hideseek.HideSeek;
import net.minecraft.server.v1_8_R3.Entity;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
@ -43,7 +44,7 @@ public class CreatureForm extends Form
_disguise.setSoundDisguise(new DisguiseCat(Player)); _disguise.setSoundDisguise(new DisguiseCat(Player));
Host.Manager.GetDisguise().disguise(_disguise); Host.Manager.GetDisguise().disguise(_disguise);
((CraftEntity)Player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0)); ((CraftEntity)Player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0), Entity.META_ENTITYDATA, (byte) 0);
//Inform //Inform
UtilPlayer.message(Player, F.main("Game", C.cWhite + "You are now a " + F.elem(UtilEnt.getName(_type)) + "!")); UtilPlayer.message(Player, F.main("Game", C.cWhite + "You are now a " + F.elem(UtilEnt.getName(_type)) + "!"));
@ -61,6 +62,6 @@ public class CreatureForm extends Form
{ {
Host.Manager.GetDisguise().undisguise(Player); Host.Manager.GetDisguise().undisguise(Player);
((CraftEntity)Player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0)); ((CraftEntity)Player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0), Entity.META_ENTITYDATA, (byte) 0);
} }
} }

View File

@ -11,11 +11,13 @@ import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer; import mineplex.core.common.util.UtilPlayer;
import net.minecraft.server.v1_8_R3.DataWatcher; import net.minecraft.server.v1_8_R3.DataWatcher;
import net.minecraft.server.v1_8_R3.Entity;
import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.Packet;
import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutAttachEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove; import net.minecraft.server.v1_8_R3.PacketPlayOutEntity.PacketPlayOutRelEntityMove;
import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy; import net.minecraft.server.v1_8_R3.PacketPlayOutEntityDestroy;
import net.minecraft.server.v1_8_R3.PacketPlayOutNewAttachEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntity;
import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving; import net.minecraft.server.v1_8_R3.PacketPlayOutSpawnEntityLiving;
@ -176,9 +178,10 @@ public class Wall
packet1.d = (int) Math.floor((entry.getKey().getY() - 0.15625) * 32); packet1.d = (int) Math.floor((entry.getKey().getY() - 0.15625) * 32);
packet1.e = (int) Math.floor(entry.getKey().getZ() * 32); packet1.e = (int) Math.floor(entry.getKey().getZ() * 32);
DataWatcher watcher = new DataWatcher(null); DataWatcher watcher = new DataWatcher(null);
watcher.a(0, (byte) 32); watcher.a(0, (byte) 32, Entity.META_ENTITYDATA, (byte) 32);
watcher.a(1, 0); watcher.a(1, 0, Entity.META_AIR, 0);
packet1.l = watcher; packet1.l = watcher;
packet1.uuid = UUID.randomUUID();
PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) player).getHandle(), 70, PacketPlayOutSpawnEntity packet2 = new PacketPlayOutSpawnEntity(((CraftPlayer) player).getHandle(), 70,
Material.STAINED_GLASS.getId() | ids.data << 16); Material.STAINED_GLASS.getId() | ids.data << 16);
@ -186,11 +189,26 @@ public class Wall
packet2.b = (int) Math.floor(entry.getKey().getX() * 32); packet2.b = (int) Math.floor(entry.getKey().getX() * 32);
packet2.c = (int) Math.floor(entry.getKey().getY() * 32); packet2.c = (int) Math.floor(entry.getKey().getY() * 32);
packet2.d = (int) Math.floor(entry.getKey().getZ() * 32); packet2.d = (int) Math.floor(entry.getKey().getZ() * 32);
packet2.uuid = UUID.randomUUID();
PacketPlayOutAttachEntity packet3 = new PacketPlayOutAttachEntity(); Packet packet3;
packet3.b = ids.block; if (UtilPlayer.is1_9(player))
packet3.c = ids.chicken; {
packet3 = new PacketPlayOutNewAttachEntity( ids.chicken, new int[]
{
ids.block
});
}
else
{
PacketPlayOutAttachEntity packet = new PacketPlayOutAttachEntity();
packet.b = ids.block;
packet.c = ids.chicken;
packet3 = packet;
}
packets[i++] = packet1; packets[i++] = packet1;
packets[i++] = packet2; packets[i++] = packet2;

View File

@ -1,6 +1,7 @@
package nautilus.game.arcade.game.games.wizards.spells; package nautilus.game.arcade.game.games.wizards.spells;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.UUID;
import mineplex.core.common.util.UtilBlock; import mineplex.core.common.util.UtilBlock;
import mineplex.core.common.util.UtilMath; import mineplex.core.common.util.UtilMath;
@ -325,6 +326,7 @@ public class SpellRumble extends Spell implements SpellClickBlock, SpellClick
fallingSpawn.i = 70; fallingSpawn.i = 70;
fallingSpawn.k = block.getTypeId() | block.getData() << 16; fallingSpawn.k = block.getTypeId() | block.getData() << 16;
fallingSpawn.f = 10000; fallingSpawn.f = 10000;
fallingSpawn.uuid = UUID.randomUUID();
final Collection<? extends Player> players = Bukkit.getOnlinePlayers(); final Collection<? extends Player> players = Bukkit.getOnlinePlayers();

View File

@ -134,7 +134,7 @@
<dependency> <dependency>
<groupId>com.mineplex</groupId> <groupId>com.mineplex</groupId>
<artifactId>spigot</artifactId> <artifactId>spigot</artifactId>
<version>1.8.8-R0.1-SNAPSHOT</version> <version>1.8.8-1.9-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>