From 2138c7bc4f8b5b14d00dc90a20eaa5dd30532af4 Mon Sep 17 00:00:00 2001 From: Andrew Date: Tue, 16 Jul 2013 23:42:35 +1200 Subject: [PATCH] Read desc Removed duplicate horse watchers All applicable disguisetypes are now the same names as entity type. Fixed bug where it sometimes didnt return disguisetype when fed entitytype Added zombie_villager disguisetype even tho its not that big a disguise.. Changed the entitytype I store to the bukkit's version. Should work the same.. Untested ofc. Hopefully broke peoples plugins :) --- .../Commands/UndisguiseRadiusCommand.java | 8 +- .../disguise/DisguiseTypes/Disguise.java | 52 ++++--- .../disguise/DisguiseTypes/DisguiseType.java | 130 +++++++++--------- .../disguise/DisguiseTypes/Values.java | 13 +- .../DisguiseTypes/Watchers/DonkeyWatcher.java | 10 -- .../DisguiseTypes/Watchers/HorseWatcher.java | 2 - .../DisguiseTypes/Watchers/MuleWatcher.java | 10 -- .../Watchers/SkeletonHorseWatcher.java | 10 -- .../Watchers/WitherSkeletonWatcher.java | 10 -- .../Watchers/ZombieHorseWatcher.java | 10 -- .../libraryaddict/disguise/LibsDisguises.java | 8 +- 11 files changed, 118 insertions(+), 145 deletions(-) delete mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/DonkeyWatcher.java delete mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MuleWatcher.java delete mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SkeletonHorseWatcher.java delete mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WitherSkeletonWatcher.java delete mode 100644 src/me/libraryaddict/disguise/DisguiseTypes/Watchers/ZombieHorseWatcher.java diff --git a/src/me/libraryaddict/disguise/Commands/UndisguiseRadiusCommand.java b/src/me/libraryaddict/disguise/Commands/UndisguiseRadiusCommand.java index 6989d53e..5a8a98c5 100644 --- a/src/me/libraryaddict/disguise/Commands/UndisguiseRadiusCommand.java +++ b/src/me/libraryaddict/disguise/Commands/UndisguiseRadiusCommand.java @@ -12,6 +12,10 @@ import org.bukkit.entity.Player; public class UndisguiseRadiusCommand implements CommandExecutor { private int maxRadius = 30; + public UndisguiseRadiusCommand(int maxRadius) { + this.maxRadius = maxRadius; + } + private boolean isNumeric(String string) { try { Integer.parseInt(string); @@ -21,10 +25,6 @@ public class UndisguiseRadiusCommand implements CommandExecutor { } } - public UndisguiseRadiusCommand(int maxRadius) { - this.maxRadius = maxRadius; - } - @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName().equals("CONSOLE")) { diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java b/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java index 2d050519..1d4cdc6d 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Disguise.java @@ -25,6 +25,7 @@ import org.bukkit.Location; import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_6_R2.inventory.CraftItemStack; import org.bukkit.entity.EntityType; +import org.bukkit.entity.Horse.Variant; import org.bukkit.entity.Player; import org.bukkit.util.Vector; @@ -112,28 +113,25 @@ public class Disguise { StructureModifier mods = spawnPackets[0].getModifier(); mods.write(0, e.getEntityId()); mods.write(1, (byte) EntityTypes.a(entity)); - String name = toReadable(disguiseType.name()); - if (disguiseType == DisguiseType.WITHER_SKELETON) { + String name = toReadable(getType().name()); + if (getType() == DisguiseType.WITHER_SKELETON) { name = "Skeleton"; - } else if (disguiseType == DisguiseType.PRIMED_TNT) { + } else if (getType() == DisguiseType.ZOMBIE_VILLAGER) { + name = "Zombie"; + } else if (getType() == DisguiseType.PRIMED_TNT) { name = "TNTPrimed"; - } else if (disguiseType == DisguiseType.DONKEY) { + } else if (getType() == DisguiseType.DONKEY || getType() == DisguiseType.MULE + || getType() == DisguiseType.UNDEAD_HORSE || getType() == DisguiseType.SKELETON_HORSE) { name = "Horse"; - } else if (disguiseType == DisguiseType.MULE) { - name = "Horse"; - } else if (disguiseType == DisguiseType.ZOMBIE_HORSE) { - name = "Horse"; - } else if (disguiseType == DisguiseType.SKELETON_HORSE) { - name = "Horse"; - } else if (disguiseType == DisguiseType.MINECART_TNT) { + } else if (getType() == DisguiseType.MINECART_TNT) { name = "MinecartTNT"; - } else if (disguiseType == DisguiseType.SPLASH_POTION) + } else if (getType() == DisguiseType.SPLASH_POTION) name = "Potion"; - else if (disguiseType == DisguiseType.GIANT) + else if (getType() == DisguiseType.GIANT) name = "GiantZombie"; - else if (disguiseType == DisguiseType.DROPPED_ITEM) + else if (getType() == DisguiseType.DROPPED_ITEM) name = "Item"; - else if (disguiseType == DisguiseType.FIREBALL) + else if (getType() == DisguiseType.FIREBALL) name = "LargeFireball"; try { Class entityClass = Class.forName("net.minecraft.server.v1_6_R2.Entity" + name); @@ -249,9 +247,16 @@ public class Disguise { try { String name; if (getType() == DisguiseType.MINECART_FURNACE || getType() == DisguiseType.MINECART_HOPPER - || getType() == DisguiseType.MINECART_MOB_SPAWNER || getType() == DisguiseType.MINECART_RIDEABLE - || getType() == DisguiseType.MINECART_TNT || getType() == DisguiseType.MINECART_CHEST) { + || getType() == DisguiseType.MINECART_MOB_SPAWNER || getType() == DisguiseType.MINECART_TNT + || getType() == DisguiseType.MINECART_CHEST) { name = "Minecart"; + } else if (getType() == DisguiseType.DONKEY || getType() == DisguiseType.MULE + || getType() == DisguiseType.UNDEAD_HORSE || getType() == DisguiseType.SKELETON_HORSE) { + name = "Horse"; + } else if (getType() == DisguiseType.WITHER_SKELETON) { + name = "Skeleton"; + } else if (getType() == DisguiseType.ZOMBIE_VILLAGER) { + name = "Zombie"; } else { name = toReadable(getType().name()); } @@ -271,6 +276,17 @@ public class Disguise { else if (tempWatcher instanceof ZombieWatcher) tempWatcher.setValue(12, (byte) 1); } + if (getType() == DisguiseType.WITHER_SKELETON) + tempWatcher.setValue(13, (byte) 1); + else if (getType() == DisguiseType.ZOMBIE_VILLAGER) + tempWatcher.setValue(13, (byte) 1); + else + try { + Variant horseType = Variant.valueOf(getType().name()); + tempWatcher.setValue(19, (byte) horseType.ordinal()); + } catch (Exception ex) { + // Ok.. So it aint a horse + } HashMap disguiseValues = Values.getMetaValues(getType()); HashMap entityValues = Values.getMetaValues(DisguiseType.getType(type)); // Start from 2 as they ALL share 0 and 1 @@ -348,7 +364,7 @@ public class Disguise { public void setReplaceSounds(boolean areSoundsReplaced) { replaceSounds = areSoundsReplaced; } - + public void setWatcher(FlagWatcher newWatcher) { watcher = newWatcher; } diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java b/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java index b8b78cc4..d9275a2b 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/DisguiseType.java @@ -1,131 +1,131 @@ package me.libraryaddict.disguise.DisguiseTypes; +import org.bukkit.entity.EntityType; + public enum DisguiseType { - ARROW(EntityType.MISC, 60), + ARROW(EntityType.ARROW, 60), - BAT(EntityType.MOB), + BAT(EntityType.BAT), - BLAZE(EntityType.MOB), + BLAZE(EntityType.BLAZE), - BOAT(EntityType.MISC, 1), + BOAT(EntityType.BOAT, 1), - CAVE_SPIDER(EntityType.MOB), + CAVE_SPIDER(EntityType.CAVE_SPIDER), - CHICKEN(EntityType.MOB), + CHICKEN(EntityType.CHICKEN), - COW(EntityType.MOB), + COW(EntityType.COW), - CREEPER(EntityType.MOB), + CREEPER(EntityType.CREEPER), - DONKEY(EntityType.MOB), + DONKEY(EntityType.HORSE), - DROPPED_ITEM(EntityType.MISC, 2, 1), + DROPPED_ITEM(EntityType.DROPPED_ITEM, 2, 1), - EGG(EntityType.MISC, 62), + EGG(EntityType.EGG, 62), - ENDER_CRYSTAL(EntityType.MISC, 51), + ENDER_CRYSTAL(EntityType.ENDER_CRYSTAL, 51), - ENDER_DRAGON(EntityType.MOB), + ENDER_DRAGON(EntityType.ENDER_DRAGON), - ENDER_PEARL(EntityType.MISC, 65), + ENDER_PEARL(EntityType.ENDER_PEARL, 65), - ENDER_SIGNAL(EntityType.MISC, 72), + ENDER_SIGNAL(EntityType.ENDER_SIGNAL, 72), - ENDERMAN(EntityType.MOB), + ENDERMAN(EntityType.ENDERMAN), - EXPERIENCE_ORB(EntityType.MISC), + EXPERIENCE_ORB(EntityType.EXPERIENCE_ORB), - FALLING_BLOCK(EntityType.MISC, 70, 1), + FALLING_BLOCK(EntityType.FALLING_BLOCK, 70, 1), - FIREBALL(EntityType.MISC, 63, 0), + FIREBALL(EntityType.FIREBALL, 63, 0), - FIREWORKS(EntityType.MISC, 76), + FIREWORK(EntityType.FIREWORK, 76), - FISHING_HOOK(EntityType.MISC, 90), + FISHING_HOOK(EntityType.FISHING_HOOK, 90), - GHAST(EntityType.MOB), + GHAST(EntityType.GHAST), - GIANT(EntityType.MOB), + GIANT(EntityType.GIANT), - HORSE(EntityType.MOB), + HORSE(EntityType.HORSE), - IRON_GOLEM(EntityType.MOB), + IRON_GOLEM(EntityType.IRON_GOLEM), - ITEM_FRAME(EntityType.MISC, 71), + ITEM_FRAME(EntityType.ITEM_FRAME, 71), - MAGMA_CUBE(EntityType.MOB), + MAGMA_CUBE(EntityType.MAGMA_CUBE), - MINECART_CHEST(EntityType.MISC, 10, 1), + MINECART(EntityType.MINECART, 10, 0), - MINECART_FURNACE(EntityType.MISC, 10, 2), + MINECART_CHEST(EntityType.MINECART_CHEST, 10, 1), - MINECART_HOPPER(EntityType.MISC, 10), + MINECART_FURNACE(EntityType.MINECART_FURNACE, 10, 2), - MINECART_MOB_SPAWNER(EntityType.MISC, 10, 4), + MINECART_HOPPER(EntityType.MINECART_HOPPER, 10), - MINECART_RIDEABLE(EntityType.MISC, 10, 0), + MINECART_MOB_SPAWNER(EntityType.MINECART_MOB_SPAWNER, 10, 4), - MINECART_TNT(EntityType.MISC, 10, 3), + MINECART_TNT(EntityType.MINECART_TNT, 10, 3), - MULE(EntityType.MOB), + MULE(EntityType.HORSE), - MUSHROOM_COW(EntityType.MOB), + MUSHROOM_COW(EntityType.MUSHROOM_COW), - OCELOT(EntityType.MOB), + OCELOT(EntityType.OCELOT), - PAINTING(EntityType.MISC), + PAINTING(EntityType.PAINTING), - PIG(EntityType.MOB), + PIG(EntityType.PIG), - PIG_ZOMBIE(EntityType.MOB), + PIG_ZOMBIE(EntityType.PIG_ZOMBIE), PLAYER(EntityType.PLAYER), - PRIMED_TNT(EntityType.MISC, 50), + PRIMED_TNT(EntityType.PRIMED_TNT, 50), - SHEEP(EntityType.MOB), + SHEEP(EntityType.SHEEP), - SILVERFISH(EntityType.MOB), + SILVERFISH(EntityType.SILVERFISH), - SKELETON(EntityType.MOB), + SKELETON(EntityType.SKELETON), - SKELETON_HORSE(EntityType.MOB), + SKELETON_HORSE(EntityType.HORSE), - SLIME(EntityType.MOB), + SLIME(EntityType.SLIME), - SMALL_FIREBALL(EntityType.MISC, 64, 0), + SMALL_FIREBALL(EntityType.SMALL_FIREBALL, 64, 0), - SNOWBALL(EntityType.MISC, 61), + SNOWBALL(EntityType.SNOWBALL, 61), - SNOWMAN(EntityType.MOB), + SNOWMAN(EntityType.SNOWMAN), - SPIDER(EntityType.MOB), + SPIDER(EntityType.SPIDER), - SPLASH_POTION(EntityType.MISC, 73), + SPLASH_POTION(EntityType.SPLASH_POTION, 73), - SQUID(EntityType.MOB), + SQUID(EntityType.SQUID), - THROWN_EXP_BOTTLE(EntityType.MISC, 75), + THROWN_EXP_BOTTLE(EntityType.THROWN_EXP_BOTTLE, 75), - VILLAGER(EntityType.MOB), + UNDEAD_HORSE(EntityType.HORSE), - WITCH(EntityType.MOB), + VILLAGER(EntityType.VILLAGER), - WITHER(EntityType.MOB), + WITCH(EntityType.WITCH), - WITHER_SKELETON(EntityType.MOB), + WITHER(EntityType.WITHER), - WITHER_SKULL(EntityType.MISC, 66), + WITHER_SKELETON(EntityType.SKELETON), - WOLF(EntityType.MOB), + WITHER_SKULL(EntityType.WITHER_SKULL, 66), - ZOMBIE(EntityType.MOB), + WOLF(EntityType.WOLF), - ZOMBIE_HORSE(EntityType.MOB); + ZOMBIE(EntityType.ZOMBIE), - public static enum EntityType { - MISC, MOB, PLAYER; - } + ZOMBIE_VILLAGER(EntityType.ZOMBIE); public static DisguiseType getType(org.bukkit.entity.EntityType entityType) { return DisguiseType.valueOf(entityType.name()); @@ -164,11 +164,11 @@ public enum DisguiseType { } public boolean isMisc() { - return entityType == EntityType.MISC; + return !entityType.isAlive(); } public boolean isMob() { - return entityType == EntityType.MOB; + return entityType.isAlive(); } public boolean isPlayer() { diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Values.java b/src/me/libraryaddict/disguise/DisguiseTypes/Values.java index be17d367..c6fabc96 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Values.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Values.java @@ -19,14 +19,17 @@ public class Values { } public static Values getValues(DisguiseType type) { - if (type == DisguiseType.DONKEY || type == DisguiseType.MULE || type == DisguiseType.ZOMBIE_HORSE + if (type == DisguiseType.DONKEY || type == DisguiseType.MULE || type == DisguiseType.UNDEAD_HORSE || type == DisguiseType.SKELETON_HORSE) type = DisguiseType.HORSE; - if (type == DisguiseType.MINECART_CHEST || type == DisguiseType.MINECART_FURNACE || type == DisguiseType.MINECART_HOPPER - || type == DisguiseType.MINECART_TNT || type == DisguiseType.MINECART_MOB_SPAWNER) - type = DisguiseType.MINECART_RIDEABLE; - if (type == DisguiseType.WITHER_SKELETON) + else if (type == DisguiseType.MINECART_CHEST || type == DisguiseType.MINECART_FURNACE + || type == DisguiseType.MINECART_HOPPER || type == DisguiseType.MINECART_TNT + || type == DisguiseType.MINECART_MOB_SPAWNER) + type = DisguiseType.MINECART; + else if (type == DisguiseType.WITHER_SKELETON) type = DisguiseType.SKELETON; + else if (type == DisguiseType.ZOMBIE_VILLAGER) + type = DisguiseType.ZOMBIE; return values.get(type); } diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/DonkeyWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/DonkeyWatcher.java deleted file mode 100644 index 85c859ca..00000000 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/DonkeyWatcher.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.libraryaddict.disguise.DisguiseTypes.Watchers; - -public class DonkeyWatcher extends HorseWatcher { - - public DonkeyWatcher(int entityId) { - super(entityId); - setValue(19, (byte) 1); - } - -} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/HorseWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/HorseWatcher.java index d31a6a2d..4c4afe1a 100644 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/HorseWatcher.java +++ b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/HorseWatcher.java @@ -9,9 +9,7 @@ public class HorseWatcher extends AgeableWatcher { public HorseWatcher(int entityId) { super(entityId); - setValue(16, 0); setValue(20, new Random().nextInt(7)); - setValue(22, 0); } public Color getColor() { diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MuleWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MuleWatcher.java deleted file mode 100644 index 3696883b..00000000 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/MuleWatcher.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.libraryaddict.disguise.DisguiseTypes.Watchers; - -public class MuleWatcher extends HorseWatcher { - - public MuleWatcher(int entityId) { - super(entityId); - setValue(19, (byte) 2); - } - -} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SkeletonHorseWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SkeletonHorseWatcher.java deleted file mode 100644 index ce6b3103..00000000 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/SkeletonHorseWatcher.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.libraryaddict.disguise.DisguiseTypes.Watchers; - -public class SkeletonHorseWatcher extends HorseWatcher { - - public SkeletonHorseWatcher(int entityId) { - super(entityId); - setValue(19, (byte) 4); - } - -} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WitherSkeletonWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WitherSkeletonWatcher.java deleted file mode 100644 index 2d834d8d..00000000 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/WitherSkeletonWatcher.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.libraryaddict.disguise.DisguiseTypes.Watchers; - -public class WitherSkeletonWatcher extends LivingWatcher { - - public WitherSkeletonWatcher(int entityId) { - super(entityId); - setValue(13, (byte) 1); - } - -} diff --git a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/ZombieHorseWatcher.java b/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/ZombieHorseWatcher.java deleted file mode 100644 index 9dd07a7e..00000000 --- a/src/me/libraryaddict/disguise/DisguiseTypes/Watchers/ZombieHorseWatcher.java +++ /dev/null @@ -1,10 +0,0 @@ -package me.libraryaddict.disguise.DisguiseTypes.Watchers; - -public class ZombieHorseWatcher extends HorseWatcher { - - public ZombieHorseWatcher(int entityId) { - super(entityId); - setValue(19, (byte) 3); - } - -} diff --git a/src/me/libraryaddict/disguise/LibsDisguises.java b/src/me/libraryaddict/disguise/LibsDisguises.java index af27bfc3..0012ca63 100644 --- a/src/me/libraryaddict/disguise/LibsDisguises.java +++ b/src/me/libraryaddict/disguise/LibsDisguises.java @@ -270,18 +270,24 @@ public class LibsDisguises extends JavaPlugin implements Listener { String name = toReadable(disguiseType.name()); if (disguiseType == DisguiseType.WITHER_SKELETON) { continue; + } else if (disguiseType == DisguiseType.ZOMBIE_VILLAGER) { + continue; } else if (disguiseType == DisguiseType.PRIMED_TNT) { name = "TNTPrimed"; } else if (disguiseType == DisguiseType.DONKEY) { continue; } else if (disguiseType == DisguiseType.MULE) { continue; - } else if (disguiseType == DisguiseType.ZOMBIE_HORSE) { + } else if (disguiseType == DisguiseType.UNDEAD_HORSE) { continue; } else if (disguiseType == DisguiseType.SKELETON_HORSE) { continue; } else if (disguiseType == DisguiseType.MINECART_TNT) { name = "MinecartTNT"; + } else if (disguiseType == DisguiseType.MINECART) { + name = "MinecartRideable"; + } else if (disguiseType == DisguiseType.FIREWORK) { + name = "Fireworks"; } else if (disguiseType == DisguiseType.SPLASH_POTION) name = "Potion"; else if (disguiseType == DisguiseType.GIANT)