From 86eb1f9af3c7e0f99a3879a50de2dc2756836980 Mon Sep 17 00:00:00 2001 From: Andrew Date: Sun, 19 May 2013 15:44:13 +1200 Subject: [PATCH] Read description Updated libs disguise to use custom datawatchers. This ensures that I can now set custom flags on disguises. Also fixes it looking bugged --- .gitignore | 1 + .../libraryaddict/disguise/DisguiseAPI.java | 23 +---- .../disguise/DisguiseTypes/AnimalColor.java | 16 +++ .../disguise/DisguiseTypes/Disguise.java | 73 ++++++++++++-- .../disguise/DisguiseTypes/DisguiseType.java | 15 ++- .../DisguiseTypes/LibsBaseWatcher.java | 91 ++++++++++++++++++ .../disguise/DisguiseTypes/MobDisguise.java | 2 +- .../Watchers/AgeableWatcher.java | 23 +++++ .../DisguiseTypes/Watchers/BlazeWatcher.java | 21 ++++ .../Watchers/CreeperWatcher.java | 31 ++++++ .../Watchers/EnderDragonWatcher.java | 21 ++++ .../Watchers/EndermanWatcher.java | 21 ++++ .../DisguiseTypes/Watchers/GhastWatcher.java | 21 ++++ .../Watchers/MagmaCubeWatcher.java | 9 ++ .../DisguiseTypes/Watchers/OcelotWatcher.java | 56 +++++++++++ .../DisguiseTypes/Watchers/PigWatcher.java | 18 ++++ .../DisguiseTypes/Watchers/SheepWatcher.java | 30 ++++++ .../DisguiseTypes/Watchers/SlimeWatcher.java | 23 +++++ .../Watchers/VillagerWatcher.java | 24 +++++ .../DisguiseTypes/Watchers/WolfWatcher.java | 78 +++++++++++++++ .../libraryaddict/disguise/LibsDisguises.java | 45 +-------- target/LibsDisguises.jar | Bin 17664 -> 0 bytes .../LibsDisguises/pom.properties | 7 -- .../maven/LibsDisguises/LibsDisguises/pom.xml | 62 ------------ .../libraryaddict/disguise/DisguiseAPI.class | Bin 4891 -> 0 bytes .../disguise/DisguiseCommand.class | Bin 4817 -> 0 bytes .../disguise/DisguiseTypes/Disguise.class | Bin 3447 -> 0 bytes .../DisguiseType$EntityType.class | Bin 1348 -> 0 bytes .../disguise/DisguiseTypes/DisguiseType.class | Bin 3914 -> 0 bytes .../disguise/DisguiseTypes/MiscDisguise.class | Bin 514 -> 0 bytes .../disguise/DisguiseTypes/MobDisguise.class | Bin 1629 -> 0 bytes .../DisguiseTypes/PlayerDisguise.class | Bin 926 -> 0 bytes .../disguise/LibsDisguises$1.class | Bin 4031 -> 0 bytes .../disguise/LibsDisguises.class | Bin 4361 -> 0 bytes target/classes/plugin.yml | 8 -- target/maven-archiver/pom.properties | 5 - 36 files changed, 561 insertions(+), 163 deletions(-) create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/AnimalColor.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/LibsBaseWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/AgeableWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/BlazeWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/CreeperWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EnderDragonWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EndermanWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/GhastWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MagmaCubeWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/OcelotWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/PigWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SheepWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SlimeWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/VillagerWatcher.java create mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WolfWatcher.java delete mode 100644 target/LibsDisguises.jar delete mode 100644 target/classes/META-INF/maven/LibsDisguises/LibsDisguises/pom.properties delete mode 100644 target/classes/META-INF/maven/LibsDisguises/LibsDisguises/pom.xml delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseAPI.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseCommand.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/Disguise.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/DisguiseType$EntityType.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/MiscDisguise.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.class delete mode 100644 target/classes/me/libraryaddict/disguise/DisguiseTypes/PlayerDisguise.class delete mode 100644 target/classes/me/libraryaddict/disguise/LibsDisguises$1.class delete mode 100644 target/classes/me/libraryaddict/disguise/LibsDisguises.class delete mode 100644 target/classes/plugin.yml delete mode 100644 target/maven-archiver/pom.properties diff --git a/.gitignore b/.gitignore index b9d6bd92..5ac01408 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ local.properties .classpath .settings/ .loadpath +target/ # External tool builders .externalToolBuilders/ diff --git a/src/me/libraryaddict/disguise/DisguiseAPI.java b/src/me/libraryaddict/disguise/DisguiseAPI.java index a9bd845f..42f12bf1 100644 --- a/src/me/libraryaddict/disguise/DisguiseAPI.java +++ b/src/me/libraryaddict/disguise/DisguiseAPI.java @@ -3,8 +3,6 @@ package me.libraryaddict.disguise; import java.util.concurrent.ConcurrentHashMap; import me.libraryaddict.disguise.DisguiseTypes.Disguise; -import me.libraryaddict.disguise.DisguiseTypes.MobDisguise; -import me.libraryaddict.disguise.DisguiseTypes.PlayerDisguise; import net.minecraft.server.v1_5_R3.*; import org.bukkit.Bukkit; @@ -42,26 +40,7 @@ public class DisguiseAPI { public static void disguiseToPlayer(Player disguiser, Player observer, Disguise disguise) { disguises.put(disguiser.getName(), disguise); Packet29DestroyEntity destroyPacket = new Packet29DestroyEntity(new int[] { disguiser.getEntityId() }); - Packet spawnPacket = null; - if (disguise.getType().isMob()) { - - EntityLiving entityLiving = ((MobDisguise) disguise).getEntityLiving(((CraftPlayer) disguiser).getHandle().world, - disguiser.getLocation(), disguiser.getEntityId()); - spawnPacket = new Packet24MobSpawn(entityLiving); - - } else if (disguise.getType().isMisc()) { - - Entity entity = disguise.getEntity(((CraftPlayer) disguiser).getHandle().world, disguiser.getLocation(), - disguiser.getEntityId()); - spawnPacket = new Packet23VehicleSpawn(entity, 0); - - } else if (disguise.getType().isPlayer()) { - - EntityHuman entityHuman = ((CraftPlayer) disguiser).getHandle(); - spawnPacket = new Packet20NamedEntitySpawn(entityHuman); - ((Packet20NamedEntitySpawn) spawnPacket).b = ((PlayerDisguise) disguise).getName(); - - } + Packet spawnPacket = disguise.constructPacket(disguiser); ((CraftPlayer) observer).getHandle().playerConnection.sendPacket(destroyPacket); ((CraftPlayer) observer).getHandle().playerConnection.sendPacket(spawnPacket); diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/AnimalColor.java b/src/me/libraryaddict/disguise/DisguiseTypes/AnimalColor.java new file mode 100644 index 00000000..cc25e545 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/AnimalColor.java @@ -0,0 +1,16 @@ +package me.libraryaddict.disguise.DisguiseTypes; + +public enum AnimalColor { + BLACK(15), BLUE(11), BROWN( + 12), CYAN(9), GRAY(7), GREEN(13), LIGHT_BLUE(3), LIME(5), MAGENTA(2), ORANGE(1), PINK(6), PURPLE(10), RED(14), SILVER(8), WHITE(0), YELLOW(4); + + private int value; + + private AnimalColor(int newValue) { + value = newValue; + } + + public int getId() { + return value; + } +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java b/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java index aef10be6..4585990d 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java @@ -1,20 +1,58 @@ package me.libraryaddict.disguise.DisguiseTypes; import java.lang.reflect.Constructor; + +import me.libraryaddict.disguise.DisguiseTypes.Watchers.AgeableWatcher; import net.minecraft.server.v1_5_R3.Entity; -import net.minecraft.server.v1_5_R3.EntityCreeper; +import net.minecraft.server.v1_5_R3.EntityAgeable; +import net.minecraft.server.v1_5_R3.EntityHuman; +import net.minecraft.server.v1_5_R3.EntityLiving; import net.minecraft.server.v1_5_R3.EntitySkeleton; +import net.minecraft.server.v1_5_R3.Packet; +import net.minecraft.server.v1_5_R3.Packet20NamedEntitySpawn; +import net.minecraft.server.v1_5_R3.Packet23VehicleSpawn; +import net.minecraft.server.v1_5_R3.Packet24MobSpawn; import net.minecraft.server.v1_5_R3.World; import org.bukkit.Location; +import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; public class Disguise { protected DisguiseType disguiseType; private Entity entity; + private LibsBaseWatcher watcher; protected Disguise(DisguiseType newType) { disguiseType = newType; } + public Packet constructPacket(Player p) { + Packet spawnPacket = null; + if (getType().isMob()) { + + EntityLiving entityLiving = ((MobDisguise) this).getEntityLiving(((CraftPlayer) p).getHandle().world, + p.getLocation(), p.getEntityId()); + spawnPacket = new Packet24MobSpawn(entityLiving); + + } else if (getType().isMisc()) { + + Entity entity = getEntity(((CraftPlayer) p).getHandle().world, p.getLocation(), p.getEntityId()); + spawnPacket = new Packet23VehicleSpawn(entity, 0); + + } else if (getType().isPlayer()) { + + EntityHuman entityHuman = ((CraftPlayer) p).getHandle(); + spawnPacket = new Packet20NamedEntitySpawn(entityHuman); + ((Packet20NamedEntitySpawn) spawnPacket).b = ((PlayerDisguise) this).getName(); + + } + return spawnPacket; + } + + public Entity getEntity() { + return entity; + } + public Entity getEntity(World world, Location loc, int entityId) { Entity entity = null; try { @@ -22,9 +60,6 @@ public class Disguise { if (disguiseType == DisguiseType.WITHER_SKELETON) { name = "Skeleton"; } - if (disguiseType == DisguiseType.CHARGED_CREEPER) { - name = "Creeper"; - } if (disguiseType == DisguiseType.TNT_PRIMED) { name = "TNTPrimed"; } @@ -34,15 +69,31 @@ public class Disguise { if (disguiseType == DisguiseType.WITHER_SKELETON) { ((EntitySkeleton) entity).setSkeletonType(1); } - if (disguiseType == DisguiseType.CHARGED_CREEPER) { - ((EntityCreeper) entity).setPowered(true); - } } catch (Exception ex) { ex.printStackTrace(); } entity.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); entity.id = entityId; this.entity = entity; + try { + String name; + if (getType().isPlayer()) { + name = "Player"; + } else { + name = toReadable(getType().name()); + } + Class watcherClass = Class.forName("me.libraryaddict.disguise.DisguiseTypes.Watchers." + name + "Watcher"); + Constructor contructor = watcherClass.getDeclaredConstructor(int.class); + watcher = (LibsBaseWatcher) contructor.newInstance(entityId); + } catch (Exception ex) { + // There is no watcher for this entity + } + if (watcher == null && entity instanceof EntityAgeable && this instanceof MobDisguise) { + watcher = new AgeableWatcher(entityId); + } + if (watcher instanceof AgeableWatcher && this instanceof MobDisguise) { + ((AgeableWatcher) watcher).setValue(12, ((MobDisguise) this).isAdult() ? 0 : -23999); + } return entity; } @@ -50,8 +101,12 @@ public class Disguise { return disguiseType; } - public Entity getEntity() { - return entity; + public LibsBaseWatcher getWatcher() { + return watcher; + } + + public boolean hasWatcher() { + return watcher != null; } private String toReadable(String string) { diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java b/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java index fd03c128..426252b2 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java @@ -1,14 +1,13 @@ package me.libraryaddict.disguise.DisguiseTypes; public enum DisguiseType { - BAT(EntityType.MOB), BLAZE(EntityType.MOB), CAVE_SPIDER(EntityType.MOB), CHARGED_CREEPER(EntityType.MOB), CHICKEN( - EntityType.MOB), COW(EntityType.MOB), CREEPER(EntityType.MOB), ENDER_CRYSTAL(EntityType.MISC), ENDER_DRAGON( - EntityType.MOB), ENDERMAN(EntityType.MOB), GHAST(EntityType.MOB), GIANT_ZOMBIE(EntityType.MOB), IRON_GOLEM(EntityType.MOB), MAGMA_CUBE( - EntityType.MOB), MUSHROOM_COW(EntityType.MOB), OCELOT(EntityType.MOB), PIG(EntityType.MOB), PIG_ZOMBIE(EntityType.MOB), PLAYER( - EntityType.PLAYER), TNT_PRIMED(EntityType.MISC), SHEEP(EntityType.MOB), SILVERFISH(EntityType.MOB), SKELETON( - EntityType.MOB), SLIME(EntityType.MOB), SNOWMAN(EntityType.MOB), SPIDER(EntityType.MOB), SQUID(EntityType.MOB), VILLAGER( - EntityType.MOB), WITCH(EntityType.MOB), WITHER(EntityType.MOB), WITHER_SKELETON(EntityType.MOB), WOLF(EntityType.MOB), ZOMBIE( - EntityType.MOB); + BAT(EntityType.MOB), BLAZE(EntityType.MOB), CAVE_SPIDER(EntityType.MOB), CHICKEN(EntityType.MOB), COW(EntityType.MOB), CREEPER( + EntityType.MOB), ENDER_CRYSTAL(EntityType.MISC), ENDER_DRAGON(EntityType.MOB), ENDERMAN(EntityType.MOB), GHAST( + EntityType.MOB), GIANT_ZOMBIE(EntityType.MOB), IRON_GOLEM(EntityType.MOB), MAGMA_CUBE(EntityType.MOB), MUSHROOM_COW( + EntityType.MOB), OCELOT(EntityType.MOB), PIG(EntityType.MOB), PIG_ZOMBIE(EntityType.MOB), PLAYER(EntityType.PLAYER), SHEEP(EntityType.MOB), SILVERFISH(EntityType.MOB), SKELETON(EntityType.MOB), SLIME(EntityType.MOB), SNOWMAN( + EntityType.MOB), SPIDER(EntityType.MOB), SQUID(EntityType.MOB), TNT_PRIMED( + EntityType.MISC), VILLAGER(EntityType.MOB), WITCH(EntityType.MOB), WITHER( + EntityType.MOB), WITHER_SKELETON(EntityType.MOB), WOLF(EntityType.MOB), ZOMBIE(EntityType.MOB); public static enum EntityType { MISC, MOB, PLAYER; diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/LibsBaseWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/LibsBaseWatcher.java new file mode 100644 index 00000000..049ffca9 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/LibsBaseWatcher.java @@ -0,0 +1,91 @@ +package me.libraryaddict.disguise.DisguiseTypes; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; +import org.bukkit.entity.Player; + +import net.minecraft.server.v1_5_R3.Packet40EntityMetadata; +import net.minecraft.server.v1_5_R3.WatchableObject; + +public abstract class LibsBaseWatcher { + + private static HashMap classTypes = new HashMap(); + static { + classTypes.put(Byte.class, 0); + classTypes.put(Short.class, 1); + classTypes.put(Integer.class, 2); + classTypes.put(String.class, 4); + } + private int entityId; + private HashMap entityValues = new HashMap(); + + protected LibsBaseWatcher(int entityId) { + this.entityId = entityId; + } + + public List convert(List list) { + Iterator itel = list.iterator(); + List newList = new ArrayList(); + while (itel.hasNext()) { + WatchableObject watch = itel.next(); + if (entityValues.containsKey(watch.a())) { + boolean doD = watch.d(); + watch = new WatchableObject(watch.c(), watch.a(), watch.b()); + if (!doD) + watch.a(false); + if (entityValues.get(watch.a()) == null) { + continue; + } else { + Object value = entityValues.get(watch.a()); + if (watch.b().getClass() != value.getClass()) { + watch.a(value); + try { + Field field = WatchableObject.class.getDeclaredField("a"); + field.setAccessible(true); + field.set(watch, classTypes.get(value.getClass())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } else { + watch.a(entityValues.get(watch.a())); + } + } + } + newList.add(watch); + } + return newList; + } + + protected Object getValue(int no) { + return entityValues.get(no); + } + + protected void sendData(int data) { + Packet40EntityMetadata packet = new Packet40EntityMetadata(); + try { + packet.a = entityId; + Field field = Packet40EntityMetadata.class.getDeclaredField("b"); + field.setAccessible(true); + Object value = entityValues.get(data); + List list = new ArrayList(); + list.add(new WatchableObject(classTypes.get(value.getClass()), data, value)); + field.set(packet, list); + } catch (Exception ex) { + ex.printStackTrace(); + } + for (Player p : Bukkit.getOnlinePlayers()) { + ((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet); + } + } + + protected void setValue(int no, Object value) { + entityValues.put(no, value); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.java b/src/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.java index 531d3230..c9d8efed 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.java @@ -17,7 +17,7 @@ public class MobDisguise extends Disguise { adult = isAdult; } - public EntityLiving getEntityLiving(World w, Location loc, int id) { + protected EntityLiving getEntityLiving(World w, Location loc, int id) { Entity entity = getEntity(w, loc, id); if (!adult) { if (entity instanceof EntityAgeable) diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/AgeableWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/AgeableWatcher.java new file mode 100644 index 00000000..5861b3ca --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/AgeableWatcher.java @@ -0,0 +1,23 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class AgeableWatcher extends LibsBaseWatcher { + + public AgeableWatcher(int entityId) { + super(entityId); + setValue(12, 0); + } + + public boolean isAdult() { + return (Integer) getValue(12) >= 0; + } + + public void setAdult(boolean isAdult) { + if (isAdult != isAdult()) { + setValue(12, isAdult ? 0 : -23999); + sendData(12); + } + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/BlazeWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/BlazeWatcher.java new file mode 100644 index 00000000..a79aa86f --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/BlazeWatcher.java @@ -0,0 +1,21 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class BlazeWatcher extends LibsBaseWatcher { + + public BlazeWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 0); + } + + public boolean isBlazing() { + return (Byte) getValue(16) == 0; + } + + public void setBlazing(boolean isBlazing) { + setValue(16, (byte) (isBlazing ? 1 : 0)); + sendData(16); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/CreeperWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/CreeperWatcher.java new file mode 100644 index 00000000..deded241 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/CreeperWatcher.java @@ -0,0 +1,31 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class CreeperWatcher extends LibsBaseWatcher { + + public CreeperWatcher(int entityId) { + super(entityId); + setValue(16, (byte) -1); + setValue(17, 0); + } + + public boolean isFused() { + return (Byte) getValue(16) == 1; + } + + public boolean isPowered() { + return (Byte) getValue(17) == 0; + } + + public void setFuse(boolean isFused) { + setValue(16, (byte) (isFused ? 1 : -1)); + sendData(16); + } + + public void setPowered(boolean powered) { + setValue(17, (byte) (powered ? 1 : 0)); + sendData(17); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EnderDragonWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EnderDragonWatcher.java new file mode 100644 index 00000000..484b063b --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EnderDragonWatcher.java @@ -0,0 +1,21 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class EnderDragonWatcher extends LibsBaseWatcher { + + public EnderDragonWatcher(int entityId) { + super(entityId); + setValue(16, 300); + } + + public int getHealth() { + return (Integer) getValue(16); + } + + public void setHealth(int health) { + setValue(16, health); + sendData(16); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EndermanWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EndermanWatcher.java new file mode 100644 index 00000000..ba457eb3 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/EndermanWatcher.java @@ -0,0 +1,21 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class EndermanWatcher extends LibsBaseWatcher { + + public EndermanWatcher(int entityId) { + super(entityId); + setValue(18, (byte) 0); + } + + public boolean isAgressive() { + return (Integer) getValue(18) == 1; + } + + public void setAgressive(boolean isAgressive) { + setValue(18, (byte) (isAgressive ? 1 : 0)); + sendData(18); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/GhastWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/GhastWatcher.java new file mode 100644 index 00000000..2915b340 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/GhastWatcher.java @@ -0,0 +1,21 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class GhastWatcher extends LibsBaseWatcher { + + public GhastWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 0); + } + + public boolean isAgressive() { + return (Byte) getValue(16) == 1; + } + + public void setAgressive(boolean isAgressive) { + setValue(16, (byte) (isAgressive ? 1 : 0)); + sendData(16); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MagmaCubeWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MagmaCubeWatcher.java new file mode 100644 index 00000000..ff1b09ae --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MagmaCubeWatcher.java @@ -0,0 +1,9 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +public class MagmaCubeWatcher extends SlimeWatcher { + + public MagmaCubeWatcher(int entityId) { + super(entityId); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/OcelotWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/OcelotWatcher.java new file mode 100644 index 00000000..69eeff4a --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/OcelotWatcher.java @@ -0,0 +1,56 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import org.bukkit.entity.Ocelot; +import org.bukkit.entity.Ocelot.Type; + +public class OcelotWatcher extends AgeableWatcher { + private boolean isSitting; + private boolean isTamed; + private Type type = Ocelot.Type.WILD_OCELOT; + + public OcelotWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 0); + setValue(17, ""); + setValue(18, (byte) 0); + } + + public String getOwner() { + return (String) getValue(17); + } + + public Type getType() { + return type; + } + + public void setOwner(String newOwner) { + setValue(17, newOwner); + } + + public void setSitting(boolean sitting) { + if (isSitting != sitting) { + isSitting = sitting; + updateStatus(); + } + } + + public void setTamed(boolean tamed) { + if (isTamed != tamed) { + isTamed = tamed; + updateStatus(); + } + } + + public void setType(Type newType) { + if (type != newType) { + type = newType; + setValue(18, (byte) type.getId()); + sendData(18); + } + } + + private void updateStatus() { + setValue(16, (byte) ((isSitting ? 1 : 0) + (isTamed ? 4 : 0))); + sendData(16); + } +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/PigWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/PigWatcher.java new file mode 100644 index 00000000..f0573bc0 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/PigWatcher.java @@ -0,0 +1,18 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +public class PigWatcher extends AgeableWatcher { + + public PigWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 0); + } + + public boolean isSaddled() { + return (Byte) getValue(16) == 0; + } + + public void setSaddled(boolean isSaddled) { + setValue(16, (byte) (isSaddled ? 1 : 0)); + sendData(16); + } +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SheepWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SheepWatcher.java new file mode 100644 index 00000000..b31d42ce --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SheepWatcher.java @@ -0,0 +1,30 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.AnimalColor; + +public class SheepWatcher extends AgeableWatcher { + private AnimalColor color = AnimalColor.WHITE; + private boolean isSheared; + + public SheepWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 0); + } + + public boolean isSheared() { + return isSheared; + } + + public void setColor(AnimalColor newColor) { + setValue(16, (byte) (newColor.getId() + (isSheared ? 16 : 0))); + sendData(16); + } + + public void setSheared(boolean sheared) { + if (sheared != isSheared) { + isSheared = sheared; + setColor(color); + } + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SlimeWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SlimeWatcher.java new file mode 100644 index 00000000..b2ba8133 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SlimeWatcher.java @@ -0,0 +1,23 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import java.util.Random; + +import me.libraryaddict.disguise.DisguiseTypes.LibsBaseWatcher; + +public class SlimeWatcher extends LibsBaseWatcher { + + public SlimeWatcher(int entityId) { + super(entityId); + setValue(16, (byte) new Random().nextInt(4) + 1); + } + + public int getSize() { + return (Integer) getValue(16); + } + + public void setSize(int size) { + setValue(16, (byte) size); + sendData(16); + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/VillagerWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/VillagerWatcher.java new file mode 100644 index 00000000..5f838413 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/VillagerWatcher.java @@ -0,0 +1,24 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import java.util.Random; + +import org.bukkit.entity.Villager.Profession; + +public class VillagerWatcher extends AgeableWatcher { + private Profession profession; + + public VillagerWatcher(int entityId) { + super(entityId); + profession = Profession.values()[new Random().nextInt(Profession.values().length)]; + setValue(16, profession.getId()); + } + + public void setProfession(Profession newProfession) { + if (profession != newProfession) { + profession = newProfession; + setValue(16, profession.getId()); + sendData(16); + } + } + +} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WolfWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WolfWatcher.java new file mode 100644 index 00000000..0c653e65 --- /dev/null +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WolfWatcher.java @@ -0,0 +1,78 @@ +package me.libraryaddict.disguise.DisguiseTypes.Watchers; + +import me.libraryaddict.disguise.DisguiseTypes.AnimalColor; + +public class WolfWatcher extends AgeableWatcher { + private AnimalColor collarColor = AnimalColor.RED; + private boolean isAgressive; + private boolean isSitting; + private boolean isTamed; + + public WolfWatcher(int entityId) { + super(entityId); + setValue(16, (byte) 7); + setValue(17, ""); + setValue(18, 8); + setValue(19, (byte) 0); + setValue(20, (byte) collarColor.getId()); + } + + public AnimalColor getCollarColor() { + return collarColor; + } + + public int getHealth() { + return (Integer) getValue(18); + } + + public String getName() { + return (String) getValue(17); + } + + public boolean isAgressive() { + return isAgressive; + } + + public boolean isSitting() { + return isSitting; + } + + public boolean isTamed() { + return isTamed; + } + + public void setAgressive(boolean aggressive) { + if (isAgressive != aggressive) { + isAgressive = aggressive; + updateStatus(); + } + } + + public void setCollarColor(AnimalColor newColor) { + if (newColor != collarColor) { + collarColor = newColor; + setValue(20, (byte) newColor.getId()); + sendData(20); + } + } + + public void setSitting(boolean sitting) { + if (isSitting != sitting) { + isSitting = sitting; + updateStatus(); + } + } + + public void setTamed(boolean tamed) { + if (isTamed != tamed) { + isTamed = tamed; + updateStatus(); + } + } + + private void updateStatus() { + setValue(16, (byte) ((isTamed ? 4 : 0) + (isSitting ? 1 : 0) + (isAgressive ? 2 : 0))); + sendData(16); + } + +} diff --git a/src/me/libraryaddict/disguise/LibsDisguises.java b/src/me/libraryaddict/disguise/LibsDisguises.java index ad0c05b8..68beb817 100644 --- a/src/me/libraryaddict/disguise/LibsDisguises.java +++ b/src/me/libraryaddict/disguise/LibsDisguises.java @@ -1,17 +1,13 @@ package me.libraryaddict.disguise; -import java.lang.reflect.Method; import java.util.List; import me.libraryaddict.disguise.DisguiseTypes.Disguise; import me.libraryaddict.disguise.DisguiseTypes.MiscDisguise; import me.libraryaddict.disguise.DisguiseTypes.MobDisguise; import me.libraryaddict.disguise.DisguiseTypes.PlayerDisguise; -import net.minecraft.server.v1_5_R3.DataWatcher; -import net.minecraft.server.v1_5_R3.Entity; -import net.minecraft.server.v1_5_R3.EntityLiving; -import net.minecraft.server.v1_5_R3.EntityPlayer; -import org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer; +import net.minecraft.server.v1_5_R3.WatchableObject; + import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -54,7 +50,8 @@ public class LibsDisguises extends JavaPlugin { } } } else if (!disguise.getType().isPlayer()) { - mods.write(1, modifyDataWatcher(disguise, watched)); + if (disguise.hasWatcher()) + mods.write(1, disguise.getWatcher().convert((List) mods.read(1))); } } } @@ -63,39 +60,5 @@ public class LibsDisguises extends JavaPlugin { } } }); - - } - - private List modifyDataWatcher(Disguise disguise, Player p) { - Entity e = disguise.getEntity(); - EntityPlayer hE = ((CraftPlayer) p).getHandle(); - e.setAirTicks(hE.getAirTicks()); - e.fireTicks = p.getFireTicks(); - a(e.getDataWatcher(), 0, e.fireTicks > 0); - e.setSprinting(p.isSprinting()); - e.setSneaking(p.isSneaking()); - if (e instanceof EntityLiving) { - EntityLiving lE = (EntityLiving) e; - lE.setInvisible(hE.isInvisible()); - lE.effects = hE.effects; - lE.updateEffects = true; - try { - Method method = EntityLiving.class.getDeclaredMethod("bA"); - method.setAccessible(true); - method.invoke(lE); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - return e.getDataWatcher().b(); - } - - protected void a(DataWatcher datawatcher, int i, boolean flag) { - byte b0 = datawatcher.getByte(0); - if (flag) { - datawatcher.watch(0, Byte.valueOf((byte) (b0 | 1 << i))); - } else { - datawatcher.watch(0, Byte.valueOf((byte) (b0 & ~(1 << i)))); - } } } \ No newline at end of file diff --git a/target/LibsDisguises.jar b/target/LibsDisguises.jar deleted file mode 100644 index 56fcc2e9cc1aee7b63b328114e1acad424278284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17664 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 - 4.0.0 - LibsDisguises - LibsDisguises - v1.0 - - src - clean package - target - LibsDisguises - - - maven-compiler-plugin - 2.3.2 - - 1.6 - 1.6 - - - - - - . - true - ${project.basedir} - - plugin.yml - README.md - - - - - - UTF-8 - - - - - comphenix-rep - Comphenix Repository - http://repo.comphenix.net/content/groups/public - - - bukkit-repo - http://repo.bukkit.org/content/groups/public - - - - - - com.comphenix.protocol - ProtocolLib - 2.4.3 - - - org.bukkit - craftbukkit - 1.5.2-R0.1-SNAPSHOT - - - \ No newline at end of file diff --git a/target/classes/me/libraryaddict/disguise/DisguiseAPI.class b/target/classes/me/libraryaddict/disguise/DisguiseAPI.class deleted file mode 100644 index 4033c86eb26828ec3f52d7fd99b0b00998629168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4891 zcmbtY`&%4W8GaAD%fRmBYSWe^n51n|76?nY#Fix}2~D98hyjTt)i~@l^33ueX@s11Y*0u4jn`=V>*QklG+DLRg6yQyQ#xBW(8`h+o;rrM}AWgBkMF$L@j z)w-3O=YG_6EPEyL#09FmJzKR9*sddnYJn|7mTe9fXD3Z(%$UqE$L&M;jFB5R97{fXi*ZD-g}&Ws zi`YF_K`JZ*qu&%DK9=vz!~Mj0u1K;xi_ zH7#XRI$Ci^AUHNSCn@JV z0+21Eu92Bx(|MfJ&@Irq(WcSBPT5rkN}?acJC+Y}w8}uUcIq2XHaV{0C}FZqH#N)h zXB^|an<|*jyy>Lo51s2gcd9*gk|3CF+rxck!FBSBk9b`otJJ`6{j$dg1Y!+m2a@A)q%o*t2qzTxCF+vY$qffBHPdm7;L{pT3Uq9=B2r(+DU32S zt8gMe>4kho!)FBAD>X*7K7YV#I4y7}M0*cJf20H$`lIET#8(wLj&V%rID@mC=mfCe zu(NX79V8@W%b}1~M$)zT9L{O@yg;&IB^_UY!Q>ZI(>_q%-AWT@bY#H@Wx3@@cCEZE za1Y}RB_F(Cg~l+YV;UA``Z7U=taPer0~O(;9HlkP5Yn>H`1I~zNk`|5 z1v`!ln3ddRaxLqGscPZ-k|ZC&oQ^L_ZdH?8Rv{yKU(n&AsLHG~1dMeoE7<=J0GRp$ zd09#7?c?UOmC2cY`tw+n>3^A=S|>=AOxkPj5qwq06EgD}tDxAa;YoqcN+M{LTVYn2 z^P{+kugfT&k{wZ=D@v`uIBVExInbUFI9zETt3ZQRj^k<6*Wx0+rQ_RpmU|6{!}icF z>mQwD*L_#Vb9kQ9d(PV}cu?c`R4tJzAFuMcqQF-99)6(V`|C1wl_woP#E-bC7EC*< zSj=fKQcZn%MpAP=u-LIqHXpV-@Tiq2$Yu(R?61TKwRF?lU4k*u zR9;P0-fus)oKohoyb?7Tqf+pwBhXlhmZF)4%L4aTz-%=w1AYk%m)Y1iz7>)=0%)fEK4-ikEFj~-t!#jAW9Yh1#P)he4k6pQ3?br0eIFA9U2Vor!mx`6_uXhmJ-Ybe(#y5Su-6N3uLsZ| zI&qlt3ZQvMQOEH7>f76Z8|ru|8L zN~JAcW70D1+skP;%d~HxcOv@d_(X&$9pg9M5*{5ET~WS!tc2l9Xl=fQvBp~%FX6NA z;&DoGsw>$N&UeLb;KD>*Yzeup=vA0XEq@6u&1>m6QfHnzktKXdDzz%5uUx_bUq?z@ z^sIiZD_R%5g^LX0=@P#29=_QWgz}w(CA_fmR2SvrN*zvlC^xYV&HN5L$gj8-q*#q3 zID`RShxuQK34R})C)NwZ{s~^6Vg+6x?mtI2u2Av~;(wD>`zwy(pXl=}p7QE@8$YJJ z{JD)6c_+De+pAy|yMk zf8%ity&8Vg(agfVjNkfv?ch~9h!b^^^%}0c$)|9W42BpV_bDYUyy{!%q_nhMf*Kn-~q5NZ>U*OYvGxmOuI?J`lv8USAc&*^q^mAUKt3#d!Ra1c=hX)ow^e-He}F#vQ6dl Q|MqBDLRRH{560{N1@V+Nw*UYD diff --git a/target/classes/me/libraryaddict/disguise/DisguiseCommand.class b/target/classes/me/libraryaddict/disguise/DisguiseCommand.class deleted file mode 100644 index faf306e7b496d1daf043907bc37c1e3439a325c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4817 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 AT>t<8 diff --git a/target/classes/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.class b/target/classes/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.class deleted file mode 100644 index e94410f2bebac4aaab3f3bb8426a6221883db0b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3914 zcmb`J>3bX16~@n4+qJAX6K8ee>;Y`2K}{f}sk2y?C(@9S}`5NzuK`mlfT|d_~dy%%3RAF@LJ) z0p`yX<(aQ4nq|JGsK8uSG{?NCsK|U>(HZ6&ib~8&iq0}GD{`1u6rE%KT+ux9O+{tq zTZ$H#zfe?RzO87H`HrIV%wH;cka<;6mH8`0HRi7s)tSFh)L{NLK)(yn?==buO)zNq)6*I!*c ztTHCB1~apEI%1)|=6F06i6t>z$uJSYPhTt^u~BR&W=1B`xtU~Q%*56~GnJgk#gdkh zz#tKcB_g@#)EJ(G5>s|Ol}sjbvZp^8HLN5OcqYvlrXsE+@lRTjEEgI~BlTp;Oc>+X z(T<~jh_-2EjMNF!j-w*`q+uCpF3x9Ln26KZ6Uk|*(eGY?&ptI}B8AGBmKBL{YTvY( zjv|2{jLS7Of8?$u^iC(O6PU4bwql!ek&aB-bIpAC71)!BSW||r(V^2Fr9%$?g?zce zy>obQsN*Ew=;B-vonkqa;zVO%wpdN)XUk9ml0A7wqq_&KbNLJTa5-Noh3$IPsgy>B zIxV`-S}f$tnS9mZZCZPIEBOU%+4rCOppH_p-h5*+gVtiT6rOF&&pY*S(~)r7t#(|~ zwwve0O&@V8PW_lh)Boiv%#N<2y&Z-!8hPty9atHt6d!7yw%c|}m3+NX#l?&d{$KX+ zJGF#UE8xW&9GcN+m0iyl<`enzEf;)vyf}+j#i>n}^Gn4lejX{5TSvzllo@Zc$fz_H zj&xMm$T75U&|Yj*3&j%-ciWowuiNe1ZXx;*|HWAf(I4oK8r|8+hcQGSr#}Vg-4H!O zf9Ao%A$pYl5~2(AP>BA@;cpyD93G|5hA2%_ABNoaNwfILBe0Lz%+@hYE*94(B;M$f3%i#-YxkK~oy_UV9zc z1C5S%aye}sh;L${yjXz`>jsC~98S)jD;DbT>R@}{%ipY#wrMNhgzM|Vx`CU$uX_ zO(6^w!c!q^6~b8|%oW04AuJZcWg(0f!fPSy7Q%5MOc%m;A*>g|eIXh^h#nB44TR_f zA(}ymeh{K1gy;&~L>IR;k-nMV9E=rp(}(FJq|rw)+6D5z;4*2KsOu_uUd2eGk0JWy znFsUninQh*L_S{8vzENWSIBpjyu6_6x&@zr5^7GvEA~l@y6IE&=~jvZAg55nm&kvG z0`FblN7vRX6#p5_?c(Uv5=rU@lju55G>`%M^Tp0^S$N>v;v5r|pyjZB^>6 z%wNGAA9eMP@&Uhkqm(^2O1a~IrF`s0DML3(x##976+KR0YaZNVqI5pv`nSlN?OWwp zrk=~xdy!VlSogZ)H8Sq=x#P7mUgvkm&Gj1s?s%g--=y4ezl=BQD+{)WFrZ^aPFC;~uv>&ZdXFpIBEqeD$Q5oAVNhS?3PU0c>%Fe9SA_TJ zt6gEA2)FCHD}+UOzrMy5_KR>p?^~vjlzxW@cj{~1vm6xRE`6Q5AU)U0^R=&LKcu0u5k8w)Y+0*%7I3Pq%Rbz5}&rWH7`N-L;dRI6Ei8=R3 vLL5pC1&!cI0Kv)WC$>JM@(@Xm{<|_6Vn^^ni(~8xl6mZ*x7f8W$V2}RVA7De diff --git a/target/classes/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.class b/target/classes/me/libraryaddict/disguise/DisguiseTypes/MobDisguise.class deleted file mode 100644 index edfc800080e33e8fc8d477322d6092986029e887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1629 zcmcIkT~8B16g|^!yR>YfAO$KdLV?mQ$nvQ|4T_3{q?jnACcKbsyVjAmOSapZ{uF%l z#TOqiQA~U=`l!Fj81L-11QXL#6VqgR=j_b6=bpJU-+zAk3}6}SGCT|`6+pP@g?tHz^xC2v>#Z1<;N?N{te9Uc46l!y`n%PZv z-g-GvCP?l@65-V;SMH0m_dT0#L>@nfud#^h85kWQf0iky^^`M`| zKIc=IHVz<&L4*mLaF-J@NHf}qD;Od&5k)A0hvH$3wCKN4Iv;)8QRn94=NR3P)b|Lz zf*O^+B6f;_sPqM~f!BA>G5!Wa0!^Gk5okg>$Fu-arw9ljb;iz!%Iio=I_e`d4wI}A zjM6WOC>H2e+@z+vgE+P^?nqvBC0t0}fr>dt@($*4og|Y$+NlwD0Gn9E63JdBlpebu zNXl3VhiH8SYpt?0`WGepL^W?IaQ*T-V8ThNxC>fI>A}G)A;R)aS}jug)v@2)4mxO( X#LhYl!|tjJ*?!^>85k8PGT!eO2bBNe z0{}rQ^??uIqkvi0eJJIj^ksHtcIM2P%g0# zO;jd>m!+~Z9m_1(j>S}_$36=c!u_-69%m8kaRIX>hLW%lz7ror5Q`)VI(e#+Xp=De zR3$2ZMp*VvfBRiR<;7?qtC+*Q1&8qPe@W71 zgeTtlF#N8KCDbh}6WqV&;ove>m}e}LDBmNPp5NBtR~=l#bwV|p^s-`dgu2&m`=>`% z1!2{}3}y+nP$hC}GVIB8NA%)i1*5)*yCPNEE}fNpPi2J1XKv`^ZSWE+NwMJhPA>ZI z--vMuY(+9ZTK$su52}0~ozW!i%hyVCTRaJSPY(w-xE+)4mtg3gSTk6+aDio&t&jX` z@Vnal3i|+VYaffQ`w4R`({=Z8C2Y37qw$3!Osui2GYU9gBe;yP0vioJuJz)tK;oJk zY%wNoaz(-|)@z{O9Bf!1ix;8^-Nv1gM8GexZ>ISTjnAwYMJ=5RzPxpo&QU;#O}JY` Gd4B*`B@9F9R6;bbV`^?StZCO6iB*-0wOf*rNwGmDy@Kk;$(7Zho&=OW&%{j4Hb9X zwYc%dgU55^9EsrZD8BmOga3dYd62(C{AQAr1W0Lpvgb5&=id8Uzuz{${`1360M_8V zf+~UNh>WF;q^;SbS}JAeZY*UugIU9ov4oLyb{1ZohBgHOfhOG=iSa)(Bu(RFEMr@) zrCaHkJT6VwiS=pvuynVlw2Uilff{$na2i%qN@9{?;w0K+n1;JW;BsWrR0+!-j3u+f z!-gBnq_cyD8SC>O@x;UmcUYz=b=R=Wej_FCb~|A>t~90HXB(DnxTEodiKE(aEtb~I z!C1HH%0X$zqk9Dc9ac(CgTQnZLDYm$jXD(y?h!Z}`M)VUBVm}bH#?G)_JEd5OMzJl zOV`qSHQVss3!4ECOh&+DL1}0snA00H(=ta#tgOQ@SWwyYva4+Zty2T8jC_s2>bsEN zhGZFowE}bQ1g*df%go1kzcf>ZIY>n#cM+Ap-{~a?V8Iud6KHmPgXe zs93*iXLUDg%OVvuSd2y$O=vFIlGa8&W(&!zB!B5ArWW(pJB?3AD^@Fr3Cyo_M@1V5 zc`Y^EXW8i#!7JzJ@A?i{r{V#u7nsSroxYr+b^={xiJ7OV=;Vp4+<sGM~4>1mm@t)x8cst|h0gv^=Djq>1A2&rV0=;EEE=PKz z9#P~lFq)B0toY_fRIiHN=*tVrXGix=f$B)KJA^$LP|!~#?rvc@XBCfuW!!V2cObBV zE}SY8kCH0x#{mV8GiUw_y^4c4BoH*59xLgaMei=glPV75DFM}yZii;-GM$!$BM>I6=kbv8RA;_B6*+2D+*o~n0*tj&Xc;#cte|t zS8;}2Im43X_Pd-u2W(BJc;-LzH|US0-po>=6qk*y`4-JA8nIHuZA~Sj%E}TQE9pr4 zxYyRohMn?K=S7F#eeQfKU&}c?DJL{nAM!H0wwRBeUQ@=BHkp1Wm{o#Fp$`ZM`fF~< z!MJy+!MyTGkQJ>k4R%f0JDW;G6w+V|CDi$_^=O#_<50hqwRPELYMgQgu{)R|Fdfr=tdal-S1+Hdd7N6c~Hs<(u>MDzwYcFW^++bnuqbqyFjP!fAR81I?tRaI0MjD<1u^9Go27b7(K+dd#O=RirzI zh0TG+?+^;tcxs)@;kkVmP}|#*!%G)wcP;+FUrgr!Jf9}%9bg%E8&HQ8SdNt(4Oj8Q zG=i;&q6>{|>`gd;X7;)k9OY(YVB^?kbDWZ`eo~n{f?W z@He*kSRL{)zCMoCbyC0XYx5`Gz?(#^4!`3qyiL@W<43%Mv(#`6zQMcP3sR3UyodK0 zH|H5iAK*hq&Nbfnh#FMm6WXATbNiIs#<;T{$_$x~dzD kh3fHRV26U!0rERX>MDGO&-o0nMSOv;xC&8%;FEv<0w8|C`~Uy| diff --git a/target/classes/me/libraryaddict/disguise/LibsDisguises.class b/target/classes/me/libraryaddict/disguise/LibsDisguises.class deleted file mode 100644 index bdbd3a935d936730acc3cbce71ae3036fb44a623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4361 zcmb7I3wsn-8GcW8Hr zrb$$+t=fxLTPrHnwu&g;MTAW#QmJ?A{qOkrSl=@{OJ)n%M0l8;bIx}=?{^*E{qI|E z1K5LqDX0?IF>7dPGhyrYf}Tp5Nk>bWxv9LFGqkvw$aQ;*oPwah_KZEHCGs;frlV!k z`6<)Vj_Y%}c7%@scP&u8-?U8UVSzxTWkev@l}Q<41W>CYgld6Xe4X}11!^)@%#tE%P{&p29$`?0ircYCAUtI_U76Wg z-AW1Ujl^B+)4DaK4LP=HO+{PczAGk+lv?p>9$!?!9kgq8vr3S8^kFohHjGAmKtYqh zwzcG|xEq@VHslN^Hg6>JPR6E}A~&L8Hx>##0DpZdb(o*J6E&urXr%X=zykRCmAcN zj+;5hunc>^HZ!*A5UE|*&G7E)AMEXn3+!4$@B8_Q(ftCqtwdap-IVCCc$%i~5EuKXH>Q zw2W-Pemtz;BWnk#7hWnpiUY)s1!_P~&KOQfk-+ZA8aF6sV2V)AY$jz+E_CaTKB_y( zX&LKBD}h}L*JnhW5#1n`6k8w6BkYw;ZiBOZ5N#hm00liM=%88S<@c@+zi zO?ITxzJgDz&#!TF&J{C&PpLTR+16vtnK_eQB!tF9l^GI*X<@mYM1MbVg? zWDlSPxBJrSu%4Ul)w8VUi+EN(o>%b#UKH4v&!%+8h?SVccn!WNP?hLZ@Fk8PD+RbK zt>y$hp`kI4w}O!qT5OPN`DbH&uKKud@}I)?8+WiTRM< z#v)zRZ=<*6Zz$eY7;oY`3cgKjS2V@ulSWqdToq^BiOmhAA%~@R*w&Nu+F5*G!S@6r z6_e2yp(@Vd2aM|kM-3*0t81k?3hb%S%1ZUNyex9w6Ip?#)r&9*h|Rr~v&gHIjF0J< zK-+qVz4}I$^mw_HFbvO2#xqPltH!hncqyK;4 ztR68p1g5OXe^b#3nin3*CwWEMkpyMKry#Xb74#7YH)ABeiP(W6`Ir8nPj(4zl8u5;6SlkzC3`t3!Ea21f z?INDJgwHpIf|u}I{bKzW0$1@;0bkx%-B?YkR~xGvL)`jC0k4goLs)JX@P^b|z<1Bn z;uCloud><&T(pm%o+uuoTOJ|0hjAxIp6xh-y?7J{5a(Mj9z!2S(GQ)yXojm398OMR zm`&+%${N8bp1y{07o|beP~I62CHYo|AG)48gCF6?^l=EU<0tqj_20r0{xkfX=#3KN z^YllEa_eyczoef}adnZPRTB?zS_!^KmxL4u1>FjsR4}5@o`Ab?R=h`=8xDisAx|ez z{XSNOt&+0d{5LfO<+M@sCM^!}FT=Bq&RNkw)99e(dZq~Q-p5+a!!f5eNF z$4^8234f-65(NG~#eeuoTvu0vckvg`-W?>9>7}%`wJ+hX=lSYSq?oHy%B;fQ-RD2> NPyWh`Zssrl{14^H%TWLT diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml deleted file mode 100644 index d6c9a054..00000000 --- a/target/classes/plugin.yml +++ /dev/null @@ -1,8 +0,0 @@ -name: LibsDisguises -main: me.libraryaddict.disguise.LibsDisguises -version: v1.0 -author: libraryaddict -depend: [ProtocolLib] -commands: - disguise: - aliases: [d, dis] \ No newline at end of file diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties deleted file mode 100644 index ea4370c8..00000000 --- a/target/maven-archiver/pom.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Generated by Maven -#Sat May 18 09:04:19 NZST 2013 -version=v1.0 -groupId=LibsDisguises -artifactId=LibsDisguises