[SPIGOT-1104] EntityType.Chicken makes a switch return EntityType.Cow Created: 02/Aug/15 Updated: 03/Aug/15 Resolved: 02/Aug/15 |
|
| Status: | Closed |
| Project: | Spigot |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Connor S | Assignee: | Unassigned |
| Resolution: | Invalid | Votes: | 0 |
| Labels: | 1.8.8, Craftbukkit, bug, entities, spigot | ||
| Environment: |
OS: Windows 10 Pro |
||
| Description |
|
Well I have made a NMS library, to only discover when you switch the EntityType enum and pass EntityType.Chicken to it, the switch chooses EntityType.Cow for some reason I'm not sure of Registering the Chicken NMS.RegisterCustomEntites(new NMSMob[] { new NMSMob(EntityType.ZOMBIE, zombie), new NMSMob(EntityType.CHICKEN, chicken) }); The Switch code public NMSMob(EntityType type, Object entity) { this.type = type; switch (type) { case BAT: mi = NMSMobInfo.BAT; mob = ((EntityBat)(entity)); case BLAZE: mi = NMSMobInfo.BLAZE; mob = ((EntityBlaze)(entity)); case CAVE_SPIDER: mi = NMSMobInfo.CABESPIDER; mob = ((EntityCaveSpider)(entity)); case CHICKEN: mi = NMSMobInfo.CHICKEN; mob = ((EntityChicken)(entity)); case COW: mi = NMSMobInfo.COW; mob = ((EntityCow)(entity)); case CREEPER: mi = NMSMobInfo.CREEPER; mob = ((EntityCreeper)(entity)); case ENDERMAN: mi = NMSMobInfo.ENDERMAN; mob = ((EntityEnderman)(entity)); case ENDERMITE: mi = NMSMobInfo.ENDERMITE; mob = ((EntityEndermite)(entity)); case ENDER_DRAGON: mi = NMSMobInfo.ENDERDRAGON; mob = ((EntityEnderDragon)(entity)); case GHAST: mi = NMSMobInfo.GHAST; mob = ((EntityGhast)(entity)); case GIANT: mi = NMSMobInfo.GIANTZOMBIE; mob = ((EntityGiantZombie)(entity)); case GUARDIAN: mi = NMSMobInfo.GUARDIAN; mob = ((EntityGuardian)(entity)); case HORSE: mi = NMSMobInfo.HORSE; mob = ((EntityHorse)(entity)); case IRON_GOLEM: mi = NMSMobInfo.IRONGOLEM; mob = ((EntityIronGolem)(entity)); case MAGMA_CUBE: mi = NMSMobInfo.MAGMACUBE; mob = ((EntityMagmaCube)(entity)); case MUSHROOM_COW: mi = NMSMobInfo.MOOSHROOM; mob = ((EntityMushroomCow)(entity)); case OCELOT: mi = NMSMobInfo.OCELOT; mob = ((EntityOcelot)(entity)); case PIG: mi = NMSMobInfo.PIG; mob = ((EntityPig)(entity)); case PIG_ZOMBIE: mi = NMSMobInfo.ZOMBIEPIGMAN; mob = ((EntityPigZombie)(entity)); case RABBIT: mi = NMSMobInfo.RABBIT; mob = ((EntityRabbit)(entity)); case SHEEP: mi = NMSMobInfo.SHEEP; mob = ((EntitySheep)(entity)); case SILVERFISH: mi = NMSMobInfo.SILVERFISH; mob = ((EntitySilverfish)(entity)); case SKELETON: mi = NMSMobInfo.SKELETON; mob = ((EntitySkeleton)(entity)); case SLIME: mi = NMSMobInfo.SLIME; mob = ((EntitySlime)(entity)); case SNOWMAN: mi = NMSMobInfo.SNOWGOLEM; mob = ((EntitySnowman)(entity)); case SPIDER: mi = NMSMobInfo.SPIDER; mob = ((EntitySpider)(entity)); case SQUID: mi = NMSMobInfo.SQUID; mob = ((EntitySquid)(entity)); case VILLAGER: mi = NMSMobInfo.VILLAGER; mob = ((EntityVillager)(entity)); case WITCH: mi = NMSMobInfo.WITCH; mob = ((EntityWitch)(entity)); case WITHER: mi = NMSMobInfo.WITHER; mob = ((EntityWither)(entity)); case WOLF: mi = NMSMobInfo.WOLF; mob = ((EntityWolf)(entity)); case ZOMBIE: mi = NMSMobInfo.ZOMBIE; mob = ((EntityZombie)(entity)); default: break; } } The Exception |
| Comments |
| Comment by Daniel Ennis [ 03/Aug/15 ] |
|
You put the break statement in the 1 block that didn't need it, needs to be in every 1 of the other blocks. |
| Comment by Connor S [ 02/Aug/15 ] |
|
With even more tests, it seems that the enum takes chooses the type after what you specify |
| Comment by Antony Riley [ 02/Aug/15 ] |
|
Typically in a switch case one includes break statements between each case statement, otherwise program execution will continue to the next case statement. |
| Comment by Thinkofname [ 02/Aug/15 ] |
|
Break statements |
| Comment by SpigotMC [ 02/Aug/15 ] |
|
Your build is not the latest and therefore may be the reason you are having this issue. Spigot is 1 version(s) behind. CraftBukkit is 2 version(s) behind. This message was automatically generated and is not guaranteed to be a solution to your issue. |