Add blockdata as a valid falling block thing, requires setblockdata

This commit is contained in:
libraryaddict 2020-08-12 09:36:13 +12:00
parent f322a80b69
commit 4f0290218b
36 changed files with 268 additions and 139 deletions

View File

@ -17,13 +17,13 @@ public enum DisguiseType {
BAT, BAT,
@NmsAddedIn(val = NmsVersion.v1_15) BEE, @NmsAddedIn(value = NmsVersion.v1_15) BEE,
BLAZE, BLAZE,
BOAT(1), BOAT(1),
@NmsAddedIn(val = NmsVersion.v1_14) CAT, @NmsAddedIn(value = NmsVersion.v1_14) CAT,
CAVE_SPIDER, CAVE_SPIDER,
@ -75,7 +75,7 @@ public enum DisguiseType {
FISHING_HOOK(90), FISHING_HOOK(90),
@NmsAddedIn(val = NmsVersion.v1_14) FOX, @NmsAddedIn(value = NmsVersion.v1_14) FOX,
GHAST, GHAST,
@ -83,7 +83,7 @@ public enum DisguiseType {
GUARDIAN, GUARDIAN,
@NmsAddedIn(val = NmsVersion.v1_16) HOGLIN, @NmsAddedIn(value = NmsVersion.v1_16) HOGLIN,
HORSE, HORSE,
@ -129,7 +129,7 @@ public enum DisguiseType {
PAINTING, PAINTING,
@NmsAddedIn(val = NmsVersion.v1_14) PANDA, @NmsAddedIn(value = NmsVersion.v1_14) PANDA,
PARROT, PARROT,
@ -139,9 +139,9 @@ public enum DisguiseType {
@NmsRemovedIn(val = NmsVersion.v1_16) PIG_ZOMBIE, @NmsRemovedIn(val = NmsVersion.v1_16) PIG_ZOMBIE,
@NmsAddedIn(val = NmsVersion.v1_16) PIGLIN, @NmsAddedIn(value = NmsVersion.v1_16) PIGLIN,
@NmsAddedIn(val = NmsVersion.v1_14) PILLAGER, @NmsAddedIn(value = NmsVersion.v1_14) PILLAGER,
PLAYER, PLAYER,
@ -153,7 +153,7 @@ public enum DisguiseType {
RABBIT, RABBIT,
@NmsAddedIn(val = NmsVersion.v1_14) RAVAGER, @NmsAddedIn(value = NmsVersion.v1_14) RAVAGER,
SALMON, SALMON,
@ -187,7 +187,7 @@ public enum DisguiseType {
STRAY, STRAY,
@NmsAddedIn(val = NmsVersion.v1_16) STRIDER, @NmsAddedIn(value = NmsVersion.v1_16) STRIDER,
THROWN_EXP_BOTTLE(75), THROWN_EXP_BOTTLE(75),
@ -195,7 +195,7 @@ public enum DisguiseType {
TRIDENT(94, 0), TRIDENT(94, 0),
@NmsAddedIn(val = NmsVersion.v1_14) TRADER_LLAMA, @NmsAddedIn(value = NmsVersion.v1_14) TRADER_LLAMA,
TROPICAL_FISH, TROPICAL_FISH,
@ -209,7 +209,7 @@ public enum DisguiseType {
VINDICATOR, VINDICATOR,
@NmsAddedIn(val = NmsVersion.v1_14) WANDERING_TRADER, @NmsAddedIn(value = NmsVersion.v1_14) WANDERING_TRADER,
WITCH, WITCH,
@ -221,7 +221,7 @@ public enum DisguiseType {
WOLF, WOLF,
@NmsAddedIn(val = NmsVersion.v1_16) ZOGLIN, @NmsAddedIn(value = NmsVersion.v1_16) ZOGLIN,
ZOMBIE, ZOMBIE,
@ -229,7 +229,7 @@ public enum DisguiseType {
ZOMBIE_VILLAGER, ZOMBIE_VILLAGER,
@NmsAddedIn(val = NmsVersion.v1_16) ZOMBIFIED_PIGLIN; @NmsAddedIn(value = NmsVersion.v1_16) ZOMBIFIED_PIGLIN;
public static DisguiseType getType(Entity entity) { public static DisguiseType getType(Entity entity) {
DisguiseType disguiseType = getType(entity.getType()); DisguiseType disguiseType = getType(entity.getType());

View File

@ -282,12 +282,12 @@ public class FlagWatcher {
updateNameHeight(); updateNameHeight();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public EntityPose getEntityPose() { public EntityPose getEntityPose() {
return getData(MetaIndex.ENTITY_POSE); return getData(MetaIndex.ENTITY_POSE);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setEntityPose(EntityPose entityPose) { public void setEntityPose(EntityPose entityPose) {
setData(MetaIndex.ENTITY_POSE, entityPose); setData(MetaIndex.ENTITY_POSE, entityPose);
sendData(MetaIndex.ENTITY_POSE); sendData(MetaIndex.ENTITY_POSE);
@ -760,12 +760,12 @@ public class FlagWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isSleeping() { public boolean isSleeping() {
return sleeping; return sleeping;
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setSleeping(boolean sleeping) { public void setSleeping(boolean sleeping) {
if (isSleeping() == sleeping) { if (isSleeping() == sleeping) {
return; return;
@ -776,12 +776,12 @@ public class FlagWatcher {
updatePose(); updatePose();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isSwimming() { public boolean isSwimming() {
return getEntityFlag(4); return getEntityFlag(4);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setSwimming(boolean swimming) { public void setSwimming(boolean swimming) {
if (isSwimming() == swimming) { if (isSwimming() == swimming) {
return; return;
@ -792,7 +792,7 @@ public class FlagWatcher {
updatePose(); updatePose();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
protected void updatePose() { protected void updatePose() {
if (isSleeping()) { if (isSleeping()) {
setEntityPose(EntityPose.SLEEPING); setEntityPose(EntityPose.SLEEPING);

View File

@ -45,7 +45,7 @@ public class MetaIndex<Y> {
/** /**
* The type of particle to display * The type of particle to display
*/ */
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public static MetaIndex<WrappedParticle> AREA_EFFECT_PARTICLE = new MetaIndex<>(AreaEffectCloudWatcher.class, 3, public static MetaIndex<WrappedParticle> AREA_EFFECT_PARTICLE = new MetaIndex<>(AreaEffectCloudWatcher.class, 3,
NmsVersion.v1_13.isSupported() ? WrappedParticle.create(Particle.SPELL_MOB, null) : null); NmsVersion.v1_13.isSupported() ? WrappedParticle.create(Particle.SPELL_MOB, null) : null);
@ -114,11 +114,11 @@ public class MetaIndex<Y> {
/** /**
* The shooter of the arrow, no visible effect if set * The shooter of the arrow, no visible effect if set
*/ */
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
@NmsRemovedIn(val = NmsVersion.v1_16) @NmsRemovedIn(val = NmsVersion.v1_16)
public static MetaIndex<Optional<UUID>> ARROW_UUID = new MetaIndex<>(ArrowWatcher.class, 1, Optional.empty()); public static MetaIndex<Optional<UUID>> ARROW_UUID = new MetaIndex<>(ArrowWatcher.class, 1, Optional.empty());
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> ARROW_PIERCE_LEVEL = new MetaIndex<>(ArrowWatcher.class, 2, (byte) 0); public static MetaIndex<Byte> ARROW_PIERCE_LEVEL = new MetaIndex<>(ArrowWatcher.class, 2, (byte) 0);
/** /**
@ -126,10 +126,10 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Byte> BAT_HANGING = new MetaIndex<>(BatWatcher.class, 0, (byte) 1); public static MetaIndex<Byte> BAT_HANGING = new MetaIndex<>(BatWatcher.class, 0, (byte) 1);
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public static MetaIndex<Byte> BEE_META = new MetaIndex<>(BeeWatcher.class, 0, (byte) 0); public static MetaIndex<Byte> BEE_META = new MetaIndex<>(BeeWatcher.class, 0, (byte) 0);
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public static MetaIndex<Integer> BEE_ANGER = new MetaIndex<>(BeeWatcher.class, 1, 0); public static MetaIndex<Integer> BEE_ANGER = new MetaIndex<>(BeeWatcher.class, 1, 0);
/** /**
@ -155,19 +155,19 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Integer> BOAT_TYPE = new MetaIndex<>(BoatWatcher.class, 3, 0); public static MetaIndex<Integer> BOAT_TYPE = new MetaIndex<>(BoatWatcher.class, 3, 0);
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public static MetaIndex<Integer> BOAT_SHAKE = new MetaIndex<>(BoatWatcher.class, 6, 0); public static MetaIndex<Integer> BOAT_SHAKE = new MetaIndex<>(BoatWatcher.class, 6, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> CAT_TYPE = new MetaIndex<>(CatWatcher.class, 0, 0); public static MetaIndex<Integer> CAT_TYPE = new MetaIndex<>(CatWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> CAT_LYING_DOWN = new MetaIndex<>(CatWatcher.class, 1, false); public static MetaIndex<Boolean> CAT_LYING_DOWN = new MetaIndex<>(CatWatcher.class, 1, false);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> CAT_LOOKING_UP = new MetaIndex<>(CatWatcher.class, 2, false); public static MetaIndex<Boolean> CAT_LOOKING_UP = new MetaIndex<>(CatWatcher.class, 2, false);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> CAT_COLLAR = new MetaIndex<>(CatWatcher.class, 3, AnimalColor.RED.ordinal()); public static MetaIndex<Integer> CAT_COLLAR = new MetaIndex<>(CatWatcher.class, 3, AnimalColor.RED.ordinal());
/** /**
@ -216,7 +216,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Integer> ENDER_DRAGON_PHASE = new MetaIndex<>(EnderDragonWatcher.class, 0, 10); public static MetaIndex<Integer> ENDER_DRAGON_PHASE = new MetaIndex<>(EnderDragonWatcher.class, 0, 10);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<ItemStack> ENDER_SIGNAL_ITEM = new MetaIndex<>(EnderSignalWatcher.class, 0, public static MetaIndex<ItemStack> ENDER_SIGNAL_ITEM = new MetaIndex<>(EnderSignalWatcher.class, 0,
new ItemStack(Material.AIR)); new ItemStack(Material.AIR));
@ -225,7 +225,7 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Boolean> ENDERMAN_AGRESSIVE = new MetaIndex<>(EndermanWatcher.class, 1, false); public static MetaIndex<Boolean> ENDERMAN_AGRESSIVE = new MetaIndex<>(EndermanWatcher.class, 1, false);
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public static MetaIndex<Boolean> ENDERMAN_UNKNOWN = new MetaIndex<>(EndermanWatcher.class, 2, false); public static MetaIndex<Boolean> ENDERMAN_UNKNOWN = new MetaIndex<>(EndermanWatcher.class, 2, false);
/** /**
@ -239,7 +239,7 @@ public class MetaIndex<Y> {
/** /**
* The custom name of the entity, empty if not set * The custom name of the entity, empty if not set
*/ */
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public static MetaIndex<Optional<WrappedChatComponent>> ENTITY_CUSTOM_NAME = new MetaIndex<>(FlagWatcher.class, 2, public static MetaIndex<Optional<WrappedChatComponent>> ENTITY_CUSTOM_NAME = new MetaIndex<>(FlagWatcher.class, 2,
Optional.empty()); Optional.empty());
/** /**
@ -272,13 +272,13 @@ public class MetaIndex<Y> {
* If entity can make sounds, no noticable effects * If entity can make sounds, no noticable effects
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<EntityPose> ENTITY_POSE = new MetaIndex<>(FlagWatcher.class, 6, EntityPose.STANDING); public static MetaIndex<EntityPose> ENTITY_POSE = new MetaIndex<>(FlagWatcher.class, 6, EntityPose.STANDING);
public static MetaIndex<BlockPosition> FALLING_BLOCK_POSITION = new MetaIndex<>(FallingBlockWatcher.class, 0, public static MetaIndex<BlockPosition> FALLING_BLOCK_POSITION = new MetaIndex<>(FallingBlockWatcher.class, 0,
BlockPosition.ORIGIN); BlockPosition.ORIGIN);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<ItemStack> FIREBALL_ITEM = new MetaIndex<>(FireballWatcher.class, 0, public static MetaIndex<ItemStack> FIREBALL_ITEM = new MetaIndex<>(FireballWatcher.class, 0,
new ItemStack(Material.AIR)); new ItemStack(Material.AIR));
@ -290,31 +290,31 @@ public class MetaIndex<Y> {
@NmsRemovedIn(val = NmsVersion.v1_14) @NmsRemovedIn(val = NmsVersion.v1_14)
public static MetaIndex<Integer> FIREWORK_ATTACHED_ENTITY_OLD = new MetaIndex<>(FireworkWatcher.class, 1, 0); public static MetaIndex<Integer> FIREWORK_ATTACHED_ENTITY_OLD = new MetaIndex<>(FireworkWatcher.class, 1, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<OptionalInt> FIREWORK_ATTACHED_ENTITY = new MetaIndex<>(FireworkWatcher.class, 1, public static MetaIndex<OptionalInt> FIREWORK_ATTACHED_ENTITY = new MetaIndex<>(FireworkWatcher.class, 1,
OptionalInt.empty()); OptionalInt.empty());
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> FIREWORK_SHOT_AT_ANGLE = new MetaIndex<>(FireworkWatcher.class, 2, false); public static MetaIndex<Boolean> FIREWORK_SHOT_AT_ANGLE = new MetaIndex<>(FireworkWatcher.class, 2, false);
public static MetaIndex<Integer> FISHING_HOOK_HOOKED_ID = new MetaIndex<>(FishingHookWatcher.class, 0, 0); public static MetaIndex<Integer> FISHING_HOOK_HOOKED_ID = new MetaIndex<>(FishingHookWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> FISHING_HOOK_HOOKED = new MetaIndex<>(FishingHookWatcher.class, 1, false); public static MetaIndex<Boolean> FISHING_HOOK_HOOKED = new MetaIndex<>(FishingHookWatcher.class, 1, false);
/** /**
* The type of fox, its coloring * The type of fox, its coloring
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> FOX_TYPE = new MetaIndex<>(FoxWatcher.class, 0, 0); public static MetaIndex<Integer> FOX_TYPE = new MetaIndex<>(FoxWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> FOX_META = new MetaIndex<>(FoxWatcher.class, 1, (byte) 0); public static MetaIndex<Byte> FOX_META = new MetaIndex<>(FoxWatcher.class, 1, (byte) 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Optional<UUID>> FOX_TRUSTED_1 = new MetaIndex<>(FoxWatcher.class, 2, Optional.empty()); public static MetaIndex<Optional<UUID>> FOX_TRUSTED_1 = new MetaIndex<>(FoxWatcher.class, 2, Optional.empty());
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Optional<UUID>> FOX_TRUSTED_2 = new MetaIndex<>(FoxWatcher.class, 3, Optional.empty()); public static MetaIndex<Optional<UUID>> FOX_TRUSTED_2 = new MetaIndex<>(FoxWatcher.class, 3, Optional.empty());
/** /**
@ -332,7 +332,7 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Integer> GUARDIAN_TARGET = new MetaIndex<>(GuardianWatcher.class, 1, 0); public static MetaIndex<Integer> GUARDIAN_TARGET = new MetaIndex<>(GuardianWatcher.class, 1, 0);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> HOGLIN_SHAKING = new MetaIndex<>(HoglinWatcher.class, 0, false); public static MetaIndex<Boolean> HOGLIN_SHAKING = new MetaIndex<>(HoglinWatcher.class, 0, false);
/** /**
@ -359,7 +359,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Optional<UUID>> HORSE_OWNER = new MetaIndex<>(AbstractHorseWatcher.class, 1, public static MetaIndex<Optional<UUID>> HORSE_OWNER = new MetaIndex<>(AbstractHorseWatcher.class, 1,
Optional.empty()); Optional.empty());
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> ILLAGER_SPELL = new MetaIndex<>(IllagerWizardWatcher.class, 0, (byte) 0); public static MetaIndex<Byte> ILLAGER_SPELL = new MetaIndex<>(IllagerWizardWatcher.class, 0, (byte) 0);
@NmsRemovedIn(val = NmsVersion.v1_14) @NmsRemovedIn(val = NmsVersion.v1_14)
@ -411,10 +411,10 @@ public class MetaIndex<Y> {
/** /**
* How many bee stings does the entity have * How many bee stings does the entity have
*/ */
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public static MetaIndex<Integer> LIVING_STINGS = new MetaIndex<>(LivingWatcher.class, 5, 0); public static MetaIndex<Integer> LIVING_STINGS = new MetaIndex<>(LivingWatcher.class, 5, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Optional<BlockPosition>> LIVING_BED_POSITION = new MetaIndex<>(LivingWatcher.class, 6, public static MetaIndex<Optional<BlockPosition>> LIVING_BED_POSITION = new MetaIndex<>(LivingWatcher.class, 6,
Optional.empty()); Optional.empty());
@ -464,31 +464,31 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Boolean> MINECART_FURANCE_FUELED = new MetaIndex<>(MinecartFurnaceWatcher.class, 0, false); public static MetaIndex<Boolean> MINECART_FURANCE_FUELED = new MetaIndex<>(MinecartFurnaceWatcher.class, 0, false);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<String> MUSHROOM_COW_TYPE = new MetaIndex<>(MushroomCowWatcher.class, 0, "RED"); public static MetaIndex<String> MUSHROOM_COW_TYPE = new MetaIndex<>(MushroomCowWatcher.class, 0, "RED");
@NmsRemovedIn(val = NmsVersion.v1_14) @NmsRemovedIn(val = NmsVersion.v1_14)
public static MetaIndex<Integer> OCELOT_TYPE = new MetaIndex<>(OcelotWatcher.class, 0, 0); public static MetaIndex<Integer> OCELOT_TYPE = new MetaIndex<>(OcelotWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> OCELOT_TRUST = new MetaIndex<>(OcelotWatcher.class, 0, false); public static MetaIndex<Boolean> OCELOT_TRUST = new MetaIndex<>(OcelotWatcher.class, 0, false);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> PANDA_HEAD_SHAKING = new MetaIndex<>(PandaWatcher.class, 0, 0); public static MetaIndex<Integer> PANDA_HEAD_SHAKING = new MetaIndex<>(PandaWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> PANDA_UNKNOWN_1 = new MetaIndex<>(PandaWatcher.class, 1, 0); public static MetaIndex<Integer> PANDA_UNKNOWN_1 = new MetaIndex<>(PandaWatcher.class, 1, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> PANDA_UNKNOWN_2 = new MetaIndex<>(PandaWatcher.class, 2, 0); public static MetaIndex<Integer> PANDA_UNKNOWN_2 = new MetaIndex<>(PandaWatcher.class, 2, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> PANDA_MAIN_GENE = new MetaIndex<>(PandaWatcher.class, 3, (byte) 0); public static MetaIndex<Byte> PANDA_MAIN_GENE = new MetaIndex<>(PandaWatcher.class, 3, (byte) 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> PANDA_HIDDEN_GENE = new MetaIndex<>(PandaWatcher.class, 4, (byte) 0); public static MetaIndex<Byte> PANDA_HIDDEN_GENE = new MetaIndex<>(PandaWatcher.class, 4, (byte) 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Byte> PANDA_META = new MetaIndex<>(PandaWatcher.class, 5, (byte) 0); public static MetaIndex<Byte> PANDA_META = new MetaIndex<>(PandaWatcher.class, 5, (byte) 0);
public static MetaIndex<Integer> PARROT_VARIANT = new MetaIndex<>(ParrotWatcher.class, 0, 0); public static MetaIndex<Integer> PARROT_VARIANT = new MetaIndex<>(ParrotWatcher.class, 0, 0);
@ -502,19 +502,19 @@ public class MetaIndex<Y> {
*/ */
public static MetaIndex<Integer> PIG_BOOST = new MetaIndex<>(PigWatcher.class, 1, 0); public static MetaIndex<Integer> PIG_BOOST = new MetaIndex<>(PigWatcher.class, 1, 0);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> PIGLIN_BABY = new MetaIndex<>(PiglinWatcher.class, 0, false); public static MetaIndex<Boolean> PIGLIN_BABY = new MetaIndex<>(PiglinWatcher.class, 0, false);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> PIGLIN_SHAKING = new MetaIndex<>(PiglinWatcher.class, 1, false); public static MetaIndex<Boolean> PIGLIN_SHAKING = new MetaIndex<>(PiglinWatcher.class, 1, false);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> PIGLIN_CROSSBOW = new MetaIndex<>(PiglinWatcher.class, 2, false); public static MetaIndex<Boolean> PIGLIN_CROSSBOW = new MetaIndex<>(PiglinWatcher.class, 2, false);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> PIGLIN_DANCING = new MetaIndex<>(PiglinWatcher.class, 3, false); public static MetaIndex<Boolean> PIGLIN_DANCING = new MetaIndex<>(PiglinWatcher.class, 3, false);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> PILLAGER_AIMING_BOW = new MetaIndex<>(PillagerWatcher.class, 0, false); public static MetaIndex<Boolean> PILLAGER_AIMING_BOW = new MetaIndex<>(PillagerWatcher.class, 0, false);
public static MetaIndex<Float> PLAYER_ABSORPTION = new MetaIndex<>(PlayerWatcher.class, 0, 0F); public static MetaIndex<Float> PLAYER_ABSORPTION = new MetaIndex<>(PlayerWatcher.class, 0, 0F);
@ -537,7 +537,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Integer> RABBIT_TYPE = new MetaIndex<>(RabbitWatcher.class, 0, 0); public static MetaIndex<Integer> RABBIT_TYPE = new MetaIndex<>(RabbitWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Boolean> RAIDER_CASTING_SPELL = new MetaIndex<>(RaiderWatcher.class, 0, false); public static MetaIndex<Boolean> RAIDER_CASTING_SPELL = new MetaIndex<>(RaiderWatcher.class, 0, false);
public static MetaIndex<Byte> SHEEP_WOOL = new MetaIndex<>(SheepWatcher.class, 0, (byte) 0); public static MetaIndex<Byte> SHEEP_WOOL = new MetaIndex<>(SheepWatcher.class, 0, (byte) 0);
@ -558,13 +558,13 @@ public class MetaIndex<Y> {
public static MetaIndex<Byte> SNOWMAN_DERP = new MetaIndex<>(SnowmanWatcher.class, 0, (byte) 16); public static MetaIndex<Byte> SNOWMAN_DERP = new MetaIndex<>(SnowmanWatcher.class, 0, (byte) 16);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Integer> STRIDER_SADDLE_UNKNOWN = new MetaIndex<>(StriderWatcher.class, 0, 0); public static MetaIndex<Integer> STRIDER_SADDLE_UNKNOWN = new MetaIndex<>(StriderWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> STRIDER_WARM = new MetaIndex<>(StriderWatcher.class, 1, false); public static MetaIndex<Boolean> STRIDER_WARM = new MetaIndex<>(StriderWatcher.class, 1, false);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> STRIDER_SADDLED = new MetaIndex<>(StriderWatcher.class, 2, false); public static MetaIndex<Boolean> STRIDER_SADDLED = new MetaIndex<>(StriderWatcher.class, 2, false);
public static MetaIndex<Byte> SPIDER_CLIMB = new MetaIndex<>(SpiderWatcher.class, 0, (byte) 0); public static MetaIndex<Byte> SPIDER_CLIMB = new MetaIndex<>(SpiderWatcher.class, 0, (byte) 0);
@ -577,7 +577,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Optional<UUID>> TAMEABLE_OWNER = new MetaIndex<>(TameableWatcher.class, 1, public static MetaIndex<Optional<UUID>> TAMEABLE_OWNER = new MetaIndex<>(TameableWatcher.class, 1,
Optional.empty()); Optional.empty());
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<ItemStack> THROWABLE_ITEM = new MetaIndex<>(ThrowableWatcher.class, 0, public static MetaIndex<ItemStack> THROWABLE_ITEM = new MetaIndex<>(ThrowableWatcher.class, 0,
new ItemStack(Material.AIR)); new ItemStack(Material.AIR));
@ -587,7 +587,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Byte> TRIDENT_ENCHANTS = new MetaIndex<>(TridentWatcher.class, 0, (byte) 0); public static MetaIndex<Byte> TRIDENT_ENCHANTS = new MetaIndex<>(TridentWatcher.class, 0, (byte) 0);
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public static MetaIndex<Boolean> TRIDENT_ENCHANTED = new MetaIndex<>(TridentWatcher.class, 1, false); public static MetaIndex<Boolean> TRIDENT_ENCHANTED = new MetaIndex<>(TridentWatcher.class, 1, false);
public static MetaIndex<Integer> TROPICAL_FISH_VARIANT = new MetaIndex<>(TropicalFishWatcher.class, 0, 0); public static MetaIndex<Integer> TROPICAL_FISH_VARIANT = new MetaIndex<>(TropicalFishWatcher.class, 0, 0);
@ -611,10 +611,10 @@ public class MetaIndex<Y> {
@NmsRemovedIn(val = NmsVersion.v1_14) @NmsRemovedIn(val = NmsVersion.v1_14)
public static MetaIndex<Integer> VILLAGER_PROFESSION = new MetaIndex<>(VillagerWatcher.class, 0, 0); public static MetaIndex<Integer> VILLAGER_PROFESSION = new MetaIndex<>(VillagerWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<Integer> ABSTRACT_VILLAGER_ANGRY = new MetaIndex<>(AbstractVillagerWatcher.class, 0, 0); public static MetaIndex<Integer> ABSTRACT_VILLAGER_ANGRY = new MetaIndex<>(AbstractVillagerWatcher.class, 0, 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<VillagerData> VILLAGER_DATA = new MetaIndex<>(VillagerWatcher.class, 0, public static MetaIndex<VillagerData> VILLAGER_DATA = new MetaIndex<>(VillagerWatcher.class, 0,
NmsVersion.v1_14.isSupported() ? new VillagerData(Villager.Type.PLAINS, Villager.Profession.NONE, 1) : NmsVersion.v1_14.isSupported() ? new VillagerData(Villager.Type.PLAINS, Villager.Profession.NONE, 1) :
null); null);
@ -638,10 +638,10 @@ public class MetaIndex<Y> {
public static MetaIndex<Integer> WOLF_COLLAR = new MetaIndex<>(WolfWatcher.class, 2, 14); public static MetaIndex<Integer> WOLF_COLLAR = new MetaIndex<>(WolfWatcher.class, 2, 14);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Integer> WOLF_ANGER = new MetaIndex<>(WolfWatcher.class, 3, 0); public static MetaIndex<Integer> WOLF_ANGER = new MetaIndex<>(WolfWatcher.class, 3, 0);
@NmsAddedIn(val = NmsVersion.v1_16) @NmsAddedIn(value = NmsVersion.v1_16)
public static MetaIndex<Boolean> ZOGLIN_BABY = new MetaIndex<>(ZoglinWatcher.class, 0, false); public static MetaIndex<Boolean> ZOGLIN_BABY = new MetaIndex<>(ZoglinWatcher.class, 0, false);
@NmsRemovedIn(val = NmsVersion.v1_14) @NmsRemovedIn(val = NmsVersion.v1_14)
@ -649,7 +649,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Boolean> ZOMBIE_BABY = new MetaIndex<>(ZombieWatcher.class, 0, false); public static MetaIndex<Boolean> ZOMBIE_BABY = new MetaIndex<>(ZombieWatcher.class, 0, false);
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public static MetaIndex<Boolean> ZOMBIE_CONVERTING_DROWNED = new MetaIndex<>(ZombieWatcher.class, 2, false); public static MetaIndex<Boolean> ZOMBIE_CONVERTING_DROWNED = new MetaIndex<>(ZombieWatcher.class, 2, false);
public static MetaIndex<Integer> ZOMBIE_PLACEHOLDER = new MetaIndex<>(ZombieWatcher.class, 1, 0); public static MetaIndex<Integer> ZOMBIE_PLACEHOLDER = new MetaIndex<>(ZombieWatcher.class, 1, 0);
@ -658,7 +658,7 @@ public class MetaIndex<Y> {
public static MetaIndex<Integer> ZOMBIE_VILLAGER_PROFESSION_OLD = new MetaIndex<>(ZombieVillagerWatcher.class, 1, public static MetaIndex<Integer> ZOMBIE_VILLAGER_PROFESSION_OLD = new MetaIndex<>(ZombieVillagerWatcher.class, 1,
0); 0);
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public static MetaIndex<VillagerData> ZOMBIE_VILLAGER_PROFESSION = new MetaIndex<>(ZombieVillagerWatcher.class, 1, public static MetaIndex<VillagerData> ZOMBIE_VILLAGER_PROFESSION = new MetaIndex<>(ZombieVillagerWatcher.class, 1,
NmsVersion.v1_14.isSupported() ? new VillagerData(Villager.Type.PLAINS, Villager.Profession.NONE, 1) : NmsVersion.v1_14.isSupported() ? new VillagerData(Villager.Type.PLAINS, Villager.Profession.NONE, 1) :
null); null);

View File

@ -13,17 +13,17 @@ public class AbstractVillagerWatcher extends AgeableWatcher {
super(disguise); super(disguise);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public int getAngry() { public int getAngry() {
return getData(MetaIndex.ABSTRACT_VILLAGER_ANGRY); return getData(MetaIndex.ABSTRACT_VILLAGER_ANGRY);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isAngry() { public boolean isAngry() {
return getAngry() > 0; return getAngry() > 0;
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setAngry(int ticks) { public void setAngry(int ticks) {
setData(MetaIndex.ABSTRACT_VILLAGER_ANGRY, ticks); setData(MetaIndex.ABSTRACT_VILLAGER_ANGRY, ticks);
sendData(MetaIndex.ABSTRACT_VILLAGER_ANGRY); sendData(MetaIndex.ABSTRACT_VILLAGER_ANGRY);

View File

@ -57,12 +57,12 @@ public class AreaEffectCloudWatcher extends FlagWatcher {
sendData(MetaIndex.AREA_EFFECT_IGNORE_RADIUS); sendData(MetaIndex.AREA_EFFECT_IGNORE_RADIUS);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public <T> void setParticle(Particle particle, T particleData) { public <T> void setParticle(Particle particle, T particleData) {
setParticle(WrappedParticle.create(particle, particleData)); setParticle(WrappedParticle.create(particle, particleData));
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public WrappedParticle getParticle() { public WrappedParticle getParticle() {
if (NmsVersion.v1_13.isSupported()) { if (NmsVersion.v1_13.isSupported()) {
return getData(MetaIndex.AREA_EFFECT_PARTICLE); return getData(MetaIndex.AREA_EFFECT_PARTICLE);
@ -75,7 +75,7 @@ public class AreaEffectCloudWatcher extends FlagWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public void setParticle(WrappedParticle particle) { public void setParticle(WrappedParticle particle) {
if (NmsVersion.v1_13.isSupported()) { if (NmsVersion.v1_13.isSupported()) {
setData(MetaIndex.AREA_EFFECT_PARTICLE, particle); setData(MetaIndex.AREA_EFFECT_PARTICLE, particle);

View File

@ -20,12 +20,12 @@ public class ArrowWatcher extends FlagWatcher {
sendData(MetaIndex.ARROW_CRITICAL); sendData(MetaIndex.ARROW_CRITICAL);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public int getPierceLevel() { public int getPierceLevel() {
return getData(MetaIndex.ARROW_PIERCE_LEVEL); return getData(MetaIndex.ARROW_PIERCE_LEVEL);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setPierceLevel(int pierceLevel) { public void setPierceLevel(int pierceLevel) {
setData(MetaIndex.ARROW_PIERCE_LEVEL, (byte) pierceLevel); setData(MetaIndex.ARROW_PIERCE_LEVEL, (byte) pierceLevel);
sendData(MetaIndex.ARROW_PIERCE_LEVEL); sendData(MetaIndex.ARROW_PIERCE_LEVEL);

View File

@ -8,7 +8,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
/** /**
* Created by libraryaddict on 14/12/2019. * Created by libraryaddict on 14/12/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public class BeeWatcher extends AgeableWatcher { public class BeeWatcher extends AgeableWatcher {
public BeeWatcher(Disguise disguise) { public BeeWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -41,12 +41,12 @@ public class BoatWatcher extends FlagWatcher {
sendData(MetaIndex.BOAT_LEFT_PADDLING); sendData(MetaIndex.BOAT_LEFT_PADDLING);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public int getBoatShake() { public int getBoatShake() {
return getData(MetaIndex.BOAT_SHAKE); return getData(MetaIndex.BOAT_SHAKE);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public void setBoatShake(int number) { public void setBoatShake(int number) {
setData(MetaIndex.BOAT_SHAKE, number); setData(MetaIndex.BOAT_SHAKE, number);
sendData(MetaIndex.BOAT_SHAKE); sendData(MetaIndex.BOAT_SHAKE);

View File

@ -15,7 +15,7 @@ import java.util.Random;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class CatWatcher extends TameableWatcher { public class CatWatcher extends TameableWatcher {
public CatWatcher(Disguise disguise) { public CatWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -20,12 +20,12 @@ public class EnderSignalWatcher extends FlagWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public ItemStack getItemStack() { public ItemStack getItemStack() {
return getData(MetaIndex.ENDER_SIGNAL_ITEM); return getData(MetaIndex.ENDER_SIGNAL_ITEM);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setItemStack(ItemStack item) { public void setItemStack(ItemStack item) {
setData(MetaIndex.ENDER_SIGNAL_ITEM, item); setData(MetaIndex.ENDER_SIGNAL_ITEM, item);
sendData(MetaIndex.ENDER_SIGNAL_ITEM); sendData(MetaIndex.ENDER_SIGNAL_ITEM);

View File

@ -8,10 +8,13 @@ import me.libraryaddict.disguise.DisguiseAPI;
import me.libraryaddict.disguise.disguisetypes.Disguise; import me.libraryaddict.disguise.disguisetypes.Disguise;
import me.libraryaddict.disguise.disguisetypes.FlagWatcher; import me.libraryaddict.disguise.disguisetypes.FlagWatcher;
import me.libraryaddict.disguise.utilities.DisguiseUtilities; import me.libraryaddict.disguise.utilities.DisguiseUtilities;
import me.libraryaddict.disguise.utilities.reflection.NmsAddedIn;
import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
import me.libraryaddict.disguise.utilities.reflection.ReflectionManager; import me.libraryaddict.disguise.utilities.reflection.ReflectionManager;
import me.libraryaddict.disguise.utilities.translations.TranslateType; import me.libraryaddict.disguise.utilities.translations.TranslateType;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -19,6 +22,7 @@ import java.lang.reflect.InvocationTargetException;
public class FallingBlockWatcher extends FlagWatcher { public class FallingBlockWatcher extends FlagWatcher {
private ItemStack block = new ItemStack(Material.STONE); private ItemStack block = new ItemStack(Material.STONE);
private BlockData blockData;
private boolean gridLocked; private boolean gridLocked;
public FallingBlockWatcher(Disguise disguise) { public FallingBlockWatcher(Disguise disguise) {
@ -28,7 +32,12 @@ public class FallingBlockWatcher extends FlagWatcher {
@Override @Override
public FallingBlockWatcher clone(Disguise disguise) { public FallingBlockWatcher clone(Disguise disguise) {
FallingBlockWatcher watcher = (FallingBlockWatcher) super.clone(disguise); FallingBlockWatcher watcher = (FallingBlockWatcher) super.clone(disguise);
watcher.setBlock(getBlock().clone());
if (NmsVersion.v1_13.isSupported()) {
watcher.setBlockData(getBlockData().clone());
} else {
watcher.setBlock(getBlock().clone());
}
return watcher; return watcher;
} }
@ -98,4 +107,34 @@ public class FallingBlockWatcher extends FlagWatcher {
DisguiseUtilities.refreshTrackers(getDisguise()); DisguiseUtilities.refreshTrackers(getDisguise());
} }
} }
@NmsAddedIn(NmsVersion.v1_13)
public BlockData getBlockData() {
if (block != null && blockData == null) {
return block.getType().createBlockData();
}
return blockData;
}
@NmsAddedIn(NmsVersion.v1_13)
public void setBlockData(BlockData data) {
if (data == null || data.getMaterial() == Material.AIR && data.getMaterial().isBlock()) {
setBlock(null);
return;
}
this.block = new ItemStack(data.getMaterial());
this.blockData = data;
if (!getDisguise().isCustomDisguiseName()) {
getDisguise().setDisguiseName(TranslateType.DISGUISE_OPTIONS_PARAMETERS.get("Block") + " " +
TranslateType.DISGUISE_OPTIONS_PARAMETERS
.get(ReflectionManager.toReadable(block.getType().name())));
}
if (DisguiseAPI.isDisguiseInUse(getDisguise()) && getDisguise().getWatcher() == this) {
DisguiseUtilities.refreshTrackers(getDisguise());
}
}
} }

View File

@ -20,12 +20,12 @@ public class FireballWatcher extends FlagWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public ItemStack getItemStack() { public ItemStack getItemStack() {
return getData(MetaIndex.FIREBALL_ITEM); return getData(MetaIndex.FIREBALL_ITEM);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setItemStack(ItemStack item) { public void setItemStack(ItemStack item) {
setData(MetaIndex.FIREBALL_ITEM, item); setData(MetaIndex.FIREBALL_ITEM, item);
sendData(MetaIndex.FIREBALL_ITEM); sendData(MetaIndex.FIREBALL_ITEM);

View File

@ -35,18 +35,18 @@ public class FireworkWatcher extends FlagWatcher {
sendData(MetaIndex.FIREWORK_ITEM); sendData(MetaIndex.FIREWORK_ITEM);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isShotAtAngle() { public boolean isShotAtAngle() {
return getData(MetaIndex.FIREWORK_SHOT_AT_ANGLE); return getData(MetaIndex.FIREWORK_SHOT_AT_ANGLE);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setShotAtAngle(boolean shotAtAngle) { public void setShotAtAngle(boolean shotAtAngle) {
setData(MetaIndex.FIREWORK_SHOT_AT_ANGLE, shotAtAngle); setData(MetaIndex.FIREWORK_SHOT_AT_ANGLE, shotAtAngle);
sendData(MetaIndex.FIREWORK_SHOT_AT_ANGLE); sendData(MetaIndex.FIREWORK_SHOT_AT_ANGLE);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public OptionalInt getAttachedEntityOpt() { public OptionalInt getAttachedEntityOpt() {
return getData(MetaIndex.FIREWORK_ATTACHED_ENTITY); return getData(MetaIndex.FIREWORK_ATTACHED_ENTITY);
} }
@ -59,7 +59,7 @@ public class FireworkWatcher extends FlagWatcher {
setAttachedEntity(entityId == 0 ? OptionalInt.empty() : OptionalInt.of(entityId)); setAttachedEntity(entityId == 0 ? OptionalInt.empty() : OptionalInt.of(entityId));
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setAttachedEntity(OptionalInt entityId) { public void setAttachedEntity(OptionalInt entityId) {
if (NmsVersion.v1_14.isSupported()) { if (NmsVersion.v1_14.isSupported()) {
setData(MetaIndex.FIREWORK_ATTACHED_ENTITY, entityId); setData(MetaIndex.FIREWORK_ATTACHED_ENTITY, entityId);

View File

@ -13,7 +13,7 @@ import java.util.Random;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class FoxWatcher extends AgeableWatcher { public class FoxWatcher extends AgeableWatcher {
public FoxWatcher(Disguise disguise) { public FoxWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -12,12 +12,12 @@ public class IllagerWizardWatcher extends IllagerWatcher {
super(disguise); super(disguise);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public Spellcaster.Spell getSpell() { public Spellcaster.Spell getSpell() {
return Spellcaster.Spell.values()[getData(MetaIndex.ILLAGER_SPELL)]; return Spellcaster.Spell.values()[getData(MetaIndex.ILLAGER_SPELL)];
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setSpell(Spellcaster.Spell spell) { public void setSpell(Spellcaster.Spell spell) {
setData(MetaIndex.ILLAGER_SPELL, (byte) spell.ordinal()); setData(MetaIndex.ILLAGER_SPELL, (byte) spell.ordinal());
sendData(MetaIndex.ILLAGER_SPELL); sendData(MetaIndex.ILLAGER_SPELL);

View File

@ -43,12 +43,12 @@ public class InsentientWatcher extends LivingWatcher {
return (getData(MetaIndex.INSENTIENT_META) & i) != 0; return (getData(MetaIndex.INSENTIENT_META) & i) != 0;
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isEnraged() { public boolean isEnraged() {
return getInsentientFlag(4); return getInsentientFlag(4);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setEnraged(boolean enraged) { public void setEnraged(boolean enraged) {
setInsentientFlag(4, enraged); setInsentientFlag(4, enraged);
} }

View File

@ -40,12 +40,12 @@ public class LivingWatcher extends FlagWatcher {
return clone; return clone;
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public BlockPosition getBedPosition() { public BlockPosition getBedPosition() {
return getData(MetaIndex.LIVING_BED_POSITION).orElse(null); return getData(MetaIndex.LIVING_BED_POSITION).orElse(null);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setBedPosition(BlockPosition blockPosition) { public void setBedPosition(BlockPosition blockPosition) {
Optional<BlockPosition> optional; Optional<BlockPosition> optional;
@ -94,22 +94,22 @@ public class LivingWatcher extends FlagWatcher {
sendData(MetaIndex.LIVING_HAND); sendData(MetaIndex.LIVING_HAND);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public boolean isRightClicking() { public boolean isRightClicking() {
return getHandFlag(0); return getHandFlag(0);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public void setRightClicking(boolean setRightClicking) { public void setRightClicking(boolean setRightClicking) {
setHandFlag(0, setRightClicking); setHandFlag(0, setRightClicking);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public boolean isSpinning() { public boolean isSpinning() {
return getHandFlag(2); return getHandFlag(2);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public void setSpinning(boolean setSpinning) { public void setSpinning(boolean setSpinning) {
setHandFlag(2, setSpinning); setHandFlag(2, setSpinning);
} }

View File

@ -14,12 +14,12 @@ public class MushroomCowWatcher extends AgeableWatcher {
super(disguise); super(disguise);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public MushroomCow.Variant getVariant() { public MushroomCow.Variant getVariant() {
return MushroomCow.Variant.valueOf(getData(MetaIndex.MUSHROOM_COW_TYPE).toUpperCase()); return MushroomCow.Variant.valueOf(getData(MetaIndex.MUSHROOM_COW_TYPE).toUpperCase());
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setVariant(MushroomCow.Variant variant) { public void setVariant(MushroomCow.Variant variant) {
setData(MetaIndex.MUSHROOM_COW_TYPE, variant.name().toLowerCase()); setData(MetaIndex.MUSHROOM_COW_TYPE, variant.name().toLowerCase());
sendData(MetaIndex.MUSHROOM_COW_TYPE); sendData(MetaIndex.MUSHROOM_COW_TYPE);

View File

@ -16,12 +16,12 @@ public class OcelotWatcher extends AgeableWatcher {
super(disguise); super(disguise);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public boolean isTrusting() { public boolean isTrusting() {
return getData(MetaIndex.OCELOT_TRUST); return getData(MetaIndex.OCELOT_TRUST);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setTrusting(boolean trusting) { public void setTrusting(boolean trusting) {
setData(MetaIndex.OCELOT_TRUST, trusting); setData(MetaIndex.OCELOT_TRUST, trusting);
sendData(MetaIndex.OCELOT_TRUST); sendData(MetaIndex.OCELOT_TRUST);

View File

@ -13,7 +13,7 @@ import java.util.Random;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class PandaWatcher extends AgeableWatcher { public class PandaWatcher extends AgeableWatcher {
public PandaWatcher(Disguise disguise) { public PandaWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -8,7 +8,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class PillagerWatcher extends IllagerWatcher { public class PillagerWatcher extends IllagerWatcher {
public PillagerWatcher(Disguise disguise) { public PillagerWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -7,7 +7,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class RavagerWatcher extends RaiderWatcher { public class RavagerWatcher extends RaiderWatcher {
public RavagerWatcher(Disguise disguise) { public RavagerWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -22,13 +22,13 @@ public abstract class ThrowableWatcher extends FlagWatcher {
protected abstract ItemStack getDefaultItemStack(); protected abstract ItemStack getDefaultItemStack();
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public ItemStack getItemStack() { public ItemStack getItemStack() {
return getData(MetaIndex.THROWABLE_ITEM); return getData(MetaIndex.THROWABLE_ITEM);
} }
@RandomDefaultValue @RandomDefaultValue
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setItemStack(ItemStack item) { public void setItemStack(ItemStack item) {
setData(MetaIndex.THROWABLE_ITEM, item); setData(MetaIndex.THROWABLE_ITEM, item);
sendData(MetaIndex.THROWABLE_ITEM); sendData(MetaIndex.THROWABLE_ITEM);

View File

@ -7,7 +7,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
/** /**
* Created by libraryaddict on 6/05/2019. * Created by libraryaddict on 6/05/2019.
*/ */
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public class TraderLlamaWatcher extends LlamaWatcher { public class TraderLlamaWatcher extends LlamaWatcher {
public TraderLlamaWatcher(Disguise disguise) { public TraderLlamaWatcher(Disguise disguise) {
super(disguise); super(disguise);

View File

@ -13,12 +13,12 @@ public class TridentWatcher extends ArrowWatcher {
super(disguise); super(disguise);
} }
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public boolean isEnchanted() { public boolean isEnchanted() {
return getData(MetaIndex.TRIDENT_ENCHANTED); return getData(MetaIndex.TRIDENT_ENCHANTED);
} }
@NmsAddedIn(val = NmsVersion.v1_15) @NmsAddedIn(value = NmsVersion.v1_15)
public void setEnchanted(boolean enchanted) { public void setEnchanted(boolean enchanted) {
setData(MetaIndex.TRIDENT_ENCHANTED, enchanted); setData(MetaIndex.TRIDENT_ENCHANTED, enchanted);
sendData(MetaIndex.TRIDENT_ENCHANTED); sendData(MetaIndex.TRIDENT_ENCHANTED);

View File

@ -21,12 +21,12 @@ public class VillagerWatcher extends AbstractVillagerWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public VillagerData getVillagerData() { public VillagerData getVillagerData() {
return getData(MetaIndex.VILLAGER_DATA); return getData(MetaIndex.VILLAGER_DATA);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setVillagerData(VillagerData villagerData) { public void setVillagerData(VillagerData villagerData) {
setData(MetaIndex.VILLAGER_DATA, villagerData); setData(MetaIndex.VILLAGER_DATA, villagerData);
sendData(MetaIndex.VILLAGER_DATA); sendData(MetaIndex.VILLAGER_DATA);
@ -51,33 +51,33 @@ public class VillagerWatcher extends AbstractVillagerWatcher {
} }
@Deprecated @Deprecated
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public Villager.Type getType() { public Villager.Type getType() {
return getVillagerData().getType(); return getVillagerData().getType();
} }
@Deprecated @Deprecated
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setType(Villager.Type type) { public void setType(Villager.Type type) {
setVillagerData(new VillagerData(type, getProfession(), getLevel())); setVillagerData(new VillagerData(type, getProfession(), getLevel()));
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public Villager.Type getBiome() { public Villager.Type getBiome() {
return getType(); return getType();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setBiome(Villager.Type type) { public void setBiome(Villager.Type type) {
setType(type); setType(type);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public int getLevel() { public int getLevel() {
return getVillagerData().getLevel(); return getVillagerData().getLevel();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setLevel(int level) { public void setLevel(int level) {
setVillagerData(new VillagerData(getType(), getProfession(), level)); setVillagerData(new VillagerData(getType(), getProfession(), level));
} }

View File

@ -44,12 +44,12 @@ public class ZombieVillagerWatcher extends ZombieWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public VillagerData getVillagerData() { public VillagerData getVillagerData() {
return getData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION); return getData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION);
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setVillagerData(VillagerData villagerData) { public void setVillagerData(VillagerData villagerData) {
setData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION, villagerData); setData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION, villagerData);
sendData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION); sendData(MetaIndex.ZOMBIE_VILLAGER_PROFESSION);
@ -69,34 +69,34 @@ public class ZombieVillagerWatcher extends ZombieWatcher {
} }
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public Villager.Type getType() { public Villager.Type getType() {
return getVillagerData().getType(); return getVillagerData().getType();
} }
@Deprecated @Deprecated
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setType(Villager.Type type) { public void setType(Villager.Type type) {
setVillagerData(new VillagerData(type, getProfession(), getLevel())); setVillagerData(new VillagerData(type, getProfession(), getLevel()));
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public int getLevel() { public int getLevel() {
return getVillagerData().getLevel(); return getVillagerData().getLevel();
} }
@Deprecated @Deprecated
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setLevel(int level) { public void setLevel(int level) {
setVillagerData(new VillagerData(getType(), getProfession(), getLevel())); setVillagerData(new VillagerData(getType(), getProfession(), getLevel()));
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public Villager.Type getBiome() { public Villager.Type getBiome() {
return getType(); return getType();
} }
@NmsAddedIn(val = NmsVersion.v1_14) @NmsAddedIn(value = NmsVersion.v1_14)
public void setBiome(Villager.Type type) { public void setBiome(Villager.Type type) {
setType(type); setType(type);
} }

View File

@ -33,12 +33,12 @@ public class ZombieWatcher extends InsentientWatcher {
setBaby(true); setBaby(true);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public boolean isConverting() { public boolean isConverting() {
return getData(MetaIndex.ZOMBIE_CONVERTING_DROWNED); return getData(MetaIndex.ZOMBIE_CONVERTING_DROWNED);
} }
@NmsAddedIn(val = NmsVersion.v1_13) @NmsAddedIn(value = NmsVersion.v1_13)
public void setConverting(boolean converting) { public void setConverting(boolean converting) {
setData(MetaIndex.ZOMBIE_CONVERTING_DROWNED, converting); setData(MetaIndex.ZOMBIE_CONVERTING_DROWNED, converting);
sendData(MetaIndex.ZOMBIE_CONVERTING_DROWNED); sendData(MetaIndex.ZOMBIE_CONVERTING_DROWNED);

View File

@ -43,6 +43,7 @@ import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.RandomUtils; import org.apache.commons.lang.math.RandomUtils;
import org.apache.logging.log4j.util.Strings; import org.apache.logging.log4j.util.Strings;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.data.BlockData;
import org.bukkit.boss.KeyedBossBar; import org.bukkit.boss.KeyedBossBar;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.*; import org.bukkit.entity.*;
@ -1112,6 +1113,10 @@ public class DisguiseUtilities {
gsonBuilder.registerTypeAdapter(FlagWatcher.class, new SerializerFlagWatcher(gsonBuilder.create())); gsonBuilder.registerTypeAdapter(FlagWatcher.class, new SerializerFlagWatcher(gsonBuilder.create()));
gsonBuilder.registerTypeAdapter(Disguise.class, new SerializerDisguise()); gsonBuilder.registerTypeAdapter(Disguise.class, new SerializerDisguise());
if (NmsVersion.v1_13.isSupported()) {
gsonBuilder.registerTypeAdapter(BlockData.class, new SerializerBlockData());
}
gson = gsonBuilder.create(); gson = gsonBuilder.create();
if (!profileCache.exists()) if (!profileCache.exists())

View File

@ -0,0 +1,25 @@
package me.libraryaddict.disguise.utilities.json;
import com.comphenix.protocol.wrappers.WrappedChatComponent;
import com.google.gson.*;
import org.bukkit.Bukkit;
import org.bukkit.block.data.BlockData;
import java.lang.reflect.Type;
/**
* Created by libraryaddict on 27/11/2018.
*/
public class SerializerBlockData implements JsonDeserializer<BlockData>,
JsonSerializer<BlockData> {
@Override
public BlockData deserialize(JsonElement json, Type typeOfT,
JsonDeserializationContext context) throws JsonParseException {
return Bukkit.createBlockData(json.getAsString());
}
@Override
public JsonElement serialize(BlockData src, Type typeOfSrc, JsonSerializationContext context) {
return context.serialize(src.getAsString());
}
}

View File

@ -304,9 +304,13 @@ public class PacketHandlerSpawn implements IPacketHandler {
double z = loc.getZ(); double z = loc.getZ();
if (disguise.getType() == DisguiseType.FALLING_BLOCK) { if (disguise.getType() == DisguiseType.FALLING_BLOCK) {
ItemStack block = ((FallingBlockWatcher) disguise.getWatcher()).getBlock(); if (NmsVersion.v1_13.isSupported()) {
} else {
ItemStack block = ((FallingBlockWatcher) disguise.getWatcher()).getBlock();
data = ReflectionManager.getCombinedIdByItemStack(block);
}
data = ReflectionManager.getCombinedIdByItemStack(block);
if (((FallingBlockWatcher) disguise.getWatcher()).isGridLocked()) { if (((FallingBlockWatcher) disguise.getWatcher()).isGridLocked()) {
// Center the block // Center the block

View File

@ -13,6 +13,7 @@ import me.libraryaddict.disguise.utilities.reflection.NmsVersion;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.BlockFace; import org.bukkit.block.BlockFace;
import org.bukkit.block.data.BlockData;
import org.bukkit.boss.BarColor; import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle; import org.bukkit.boss.BarStyle;
import org.bukkit.entity.*; import org.bukkit.entity.*;
@ -77,6 +78,8 @@ public class ParamInfoTypes {
paramInfos.add(new ParamInfoParticle(WrappedParticle.class, "Particle", paramInfos.add(new ParamInfoParticle(WrappedParticle.class, "Particle",
"The different particles of Minecraft", Particle.values(), getMaterials())); "The different particles of Minecraft", Particle.values(), getMaterials()));
paramInfos.add(new ParamInfoEnum(TropicalFish.Pattern.class, "Pattern", "Patterns of a tropical fish")); paramInfos.add(new ParamInfoEnum(TropicalFish.Pattern.class, "Pattern", "Patterns of a tropical fish"));
paramInfos.add(new ParamInfoBlockData(BlockData.class, "BlockData",
"The block data states, barrel[facing=north,open=false] as example"));
} else { } else {
paramInfos.add(new ParamInfoEnum(Particle.class, "Particle", "The different particles of Minecraft")); paramInfos.add(new ParamInfoEnum(Particle.class, "Particle", "The different particles of Minecraft"));
} }

View File

@ -0,0 +1,38 @@
package me.libraryaddict.disguise.utilities.params.types.custom;
import me.libraryaddict.disguise.utilities.params.ParamInfo;
import me.libraryaddict.disguise.utilities.parser.DisguiseParseException;
import org.bukkit.Bukkit;
import org.bukkit.block.data.BlockData;
/**
* Created by libraryaddict on 12/08/2020.
*/
public class ParamInfoBlockData extends ParamInfo {
public ParamInfoBlockData(Class paramClass, String name, String description) {
super(paramClass, name, description);
}
@Override
protected Object fromString(String string) throws DisguiseParseException {
if (string == null || string.equals("null")) {
return null;
}
return Bukkit.createBlockData(string);
}
@Override
public String toString(Object object) {
if (object == null) {
return "null";
}
return ((BlockData) object).getAsString();
}
@Override
public boolean isParam(Class paramClass) {
return getParamClass().isAssignableFrom(paramClass);
}
}

View File

@ -8,5 +8,5 @@ import java.lang.annotation.RetentionPolicy;
*/ */
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface NmsAddedIn { public @interface NmsAddedIn {
NmsVersion val(); NmsVersion value();
} }

View File

@ -16,6 +16,8 @@ import me.libraryaddict.disguise.utilities.sounds.SoundGroup;
import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandMap; import org.bukkit.command.CommandMap;
import org.bukkit.command.SimpleCommandMap; import org.bukkit.command.SimpleCommandMap;
@ -131,7 +133,7 @@ public class ReflectionManager {
NmsAddedIn added = obj.getAnnotation(NmsAddedIn.class); NmsAddedIn added = obj.getAnnotation(NmsAddedIn.class);
// If it was added after this version // If it was added after this version
if (!added.val().isSupported()) { if (!added.value().isSupported()) {
return false; return false;
} }
} }
@ -1463,6 +1465,19 @@ public class ReflectionManager {
return new WrappedWatchableObject(watcherItem); return new WrappedWatchableObject(watcherItem);
} }
public static int getCombinedIdByBlockData(BlockData data) {
try {
Object iBlockData = getCraftMethod("block.data.type.CraftBlockData", "getState").invoke(data);
return (int) getNmsMethod("Block", "getCombinedId", getNmsClass("IBlockData")).invoke(null, iBlockData);
}
catch (Exception ex) {
ex.printStackTrace();
}
return 0;
}
public static int getCombinedIdByItemStack(ItemStack itemStack) { public static int getCombinedIdByItemStack(ItemStack itemStack) {
try { try {
Object nmsBlock; Object nmsBlock;

View File

@ -116,9 +116,9 @@ public class CompileMethods {
int removed = -1; int removed = -1;
if (method.isAnnotationPresent(NmsAddedIn.class)) { if (method.isAnnotationPresent(NmsAddedIn.class)) {
added = method.getAnnotation(NmsAddedIn.class).val().ordinal(); added = method.getAnnotation(NmsAddedIn.class).value().ordinal();
} else if (method.getDeclaringClass().isAnnotationPresent(NmsAddedIn.class)) { } else if (method.getDeclaringClass().isAnnotationPresent(NmsAddedIn.class)) {
added = method.getDeclaringClass().getAnnotation(NmsAddedIn.class).val().ordinal(); added = method.getDeclaringClass().getAnnotation(NmsAddedIn.class).value().ordinal();
} }
if (method.isAnnotationPresent(NmsRemovedIn.class)) { if (method.isAnnotationPresent(NmsRemovedIn.class)) {