Make the miscdisguise code readable and not so unreliable for what you want/need
This commit is contained in:
		| @@ -1,8 +1,6 @@ | ||||
| package me.libraryaddict.disguise.disguisetypes; | ||||
|  | ||||
| import java.security.InvalidParameterException; | ||||
| import java.util.Random; | ||||
|  | ||||
| import me.libraryaddict.disguise.disguisetypes.watchers.DroppedItemWatcher; | ||||
| import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher; | ||||
| import me.libraryaddict.disguise.disguisetypes.watchers.PaintingWatcher; | ||||
| @@ -42,55 +40,35 @@ public class MiscDisguise extends TargetedDisguise { | ||||
|         this(disguiseType, id, -1); | ||||
|     } | ||||
|  | ||||
|     public MiscDisguise(DisguiseType disguiseType, int id, int data) { | ||||
|     public MiscDisguise(DisguiseType disguiseType, int firstParam, int secondParam) { | ||||
|         if (!disguiseType.isMisc()) { | ||||
|             throw new InvalidParameterException("Expected a non-living DisguiseType while constructing MiscDisguise. Received " | ||||
|                     + disguiseType + " instead. Please use " + (disguiseType.isPlayer() ? "PlayerDisguise" : "MobDisguise") + " instead"); | ||||
|                     + disguiseType + " instead. Please use " + (disguiseType.isPlayer() ? "PlayerDisguise" : "MobDisguise") | ||||
|                     + " instead"); | ||||
|         } | ||||
|         createDisguise(disguiseType); | ||||
|         switch (disguiseType) { | ||||
|         // The only disguises which should use a custom data. | ||||
|         case PAINTING: | ||||
|             ((PaintingWatcher) getWatcher()).setArt(Art.values()[Math.max(0, firstParam) % Art.values().length]); | ||||
|             break; | ||||
|         case FALLING_BLOCK: | ||||
|             ((FallingBlockWatcher) getWatcher()).setBlock(new ItemStack(Math.max(1, firstParam), 1, (short) Math.max(0, secondParam))); | ||||
|             break; | ||||
|         case SPLASH_POTION: | ||||
|             ((SplashPotionWatcher) getWatcher()).setPotionId(Math.max(0, firstParam)); | ||||
|             break; | ||||
|         case DROPPED_ITEM: | ||||
|             if (firstParam > 0) { | ||||
|                 ((DroppedItemWatcher) getWatcher()).setItemStack(new ItemStack(firstParam, Math.max(0, secondParam))); | ||||
|             } | ||||
|             break; | ||||
|         case FISHING_HOOK: | ||||
|         case ARROW: | ||||
|         case SPLASH_POTION: | ||||
|         case SMALL_FIREBALL: | ||||
|         case FIREBALL: | ||||
|         case WITHER_SKULL: | ||||
|         case PAINTING: | ||||
|         case FALLING_BLOCK: | ||||
|             break; | ||||
|         default: | ||||
|             data = -1; | ||||
|             break; | ||||
|         } | ||||
|         // Only falling block should set the id | ||||
|         if (getType() == DisguiseType.FALLING_BLOCK && id != -1) { | ||||
|             this.id = id; | ||||
|         } else { | ||||
|             this.id = disguiseType.getDefaultId(); | ||||
|         } | ||||
|         if (data == -1) { | ||||
|             if (getType() == DisguiseType.PAINTING) { | ||||
|                 data = new Random().nextInt(Art.values().length); | ||||
|             } else { | ||||
|                 data = 0; | ||||
|             } | ||||
|         } | ||||
|         this.data = data; | ||||
|         switch (getType()) { | ||||
|         case DROPPED_ITEM: | ||||
|             if (id > 0) { | ||||
|                 ((DroppedItemWatcher) getWatcher()).setItemStack(new ItemStack(id, data)); | ||||
|             } | ||||
|             break; | ||||
|         case FALLING_BLOCK: | ||||
|             ((FallingBlockWatcher) getWatcher()).setBlock(new ItemStack(this.id, 1, (short) this.data)); | ||||
|             break; | ||||
|         case PAINTING: | ||||
|             ((PaintingWatcher) getWatcher()).setArt(Art.values()[this.data % Art.values().length]); | ||||
|             break; | ||||
|         case SPLASH_POTION: | ||||
|             ((SplashPotionWatcher) getWatcher()).setPotionId(this.data); | ||||
|             this.data = firstParam; | ||||
|             break; | ||||
|         default: | ||||
|             break; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user