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; | package me.libraryaddict.disguise.disguisetypes; | ||||||
|  |  | ||||||
| import java.security.InvalidParameterException; | import java.security.InvalidParameterException; | ||||||
| import java.util.Random; |  | ||||||
|  |  | ||||||
| import me.libraryaddict.disguise.disguisetypes.watchers.DroppedItemWatcher; | import me.libraryaddict.disguise.disguisetypes.watchers.DroppedItemWatcher; | ||||||
| import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher; | import me.libraryaddict.disguise.disguisetypes.watchers.FallingBlockWatcher; | ||||||
| import me.libraryaddict.disguise.disguisetypes.watchers.PaintingWatcher; | import me.libraryaddict.disguise.disguisetypes.watchers.PaintingWatcher; | ||||||
| @@ -42,55 +40,35 @@ public class MiscDisguise extends TargetedDisguise { | |||||||
|         this(disguiseType, id, -1); |         this(disguiseType, id, -1); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public MiscDisguise(DisguiseType disguiseType, int id, int data) { |     public MiscDisguise(DisguiseType disguiseType, int firstParam, int secondParam) { | ||||||
|         if (!disguiseType.isMisc()) { |         if (!disguiseType.isMisc()) { | ||||||
|             throw new InvalidParameterException("Expected a non-living DisguiseType while constructing MiscDisguise. Received " |             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); |         createDisguise(disguiseType); | ||||||
|         switch (disguiseType) { |         switch (disguiseType) { | ||||||
|         // The only disguises which should use a custom data. |         // 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 FISHING_HOOK: | ||||||
|         case ARROW: |         case ARROW: | ||||||
|         case SPLASH_POTION: |  | ||||||
|         case SMALL_FIREBALL: |         case SMALL_FIREBALL: | ||||||
|         case FIREBALL: |         case FIREBALL: | ||||||
|         case WITHER_SKULL: |         case WITHER_SKULL: | ||||||
|         case PAINTING: |             this.data = firstParam; | ||||||
|         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); |  | ||||||
|             break; |             break; | ||||||
|         default: |         default: | ||||||
|             break; |             break; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user