2525import org .bukkit .DyeColor ;
2626import org .bukkit .Location ;
2727import org .bukkit .Rotation ;
28- import org .bukkit .TreeSpecies ;
2928import org .bukkit .World ;
3029import org .bukkit .block .BlockFace ;
3130import org .bukkit .entity .AbstractHorse ;
3433import org .bukkit .entity .Bat ;
3534import org .bukkit .entity .Boat ;
3635import org .bukkit .entity .Breedable ;
36+ import org .bukkit .entity .ChestBoat ;
3737import org .bukkit .entity .ChestedHorse ;
3838import org .bukkit .entity .EnderDragon ;
3939import org .bukkit .entity .Entity ;
4444import org .bukkit .entity .Painting ;
4545import org .bukkit .entity .Rabbit ;
4646import org .bukkit .entity .Sheep ;
47- import org .bukkit .entity .Slime ;
4847import org .bukkit .entity .Tameable ;
4948import org .bukkit .inventory .EntityEquipment ;
5049import org .bukkit .inventory .InventoryHolder ;
@@ -103,11 +102,19 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
103102 this .noGravity = true ;
104103 }
105104 switch (entity .getType ().toString ()) {
106- case "BOAT" -> {
105+ case "BOAT" , "ACACIA_BOAT" , "BIRCH_BOAT" , "CHERRY_BOAT" , "DARK_OAK_BOAT" , "JUNGLE_BOAT" , "MANGROVE_BOAT" ,
106+ "OAK_BOAT" , "PALE_OAK_BOAT" , "SPRUCE_BOAT" , "BAMBOO_RAFT" -> {
107107 Boat boat = (Boat ) entity ;
108- this .dataByte = getOrdinal (TreeSpecies . values (), boat .getWoodType ());
108+ this .dataByte = getOrdinal (Boat . Type . values (), boat .getBoatType ());
109109 return ;
110110 }
111+ case "ACACIA_CHEST_BOAT" , "BIRCH_CHEST_BOAT" , "CHERRY_CHEST_BOAT" , "DARK_OAK_CHEST_BOAT" ,
112+ "JUNGLE_CHEST_BOAT" , "MANGROVE_CHEST_BOAT" , "OAK_CHEST_BOAT" , "PALE_OAK_CHEST_BOAT" ,
113+ "SPRUCE_CHEST_BOAT" , "BAMBOO_CHEST_RAFT" -> {
114+ ChestBoat boat = (ChestBoat ) entity ;
115+ this .dataByte = getOrdinal (Boat .Type .values (), boat .getBoatType ());
116+ storeInventory (boat );
117+ }
111118 case "ARROW" , "EGG" , "ENDER_CRYSTAL" , "ENDER_PEARL" , "ENDER_SIGNAL" , "EXPERIENCE_ORB" , "FALLING_BLOCK" , "FIREBALL" ,
112119 "FIREWORK" , "FISHING_HOOK" , "LEASH_HITCH" , "LIGHTNING" , "MINECART" , "MINECART_COMMAND" , "MINECART_MOB_SPAWNER" ,
113120 "MINECART_TNT" , "PLAYER" , "PRIMED_TNT" , "SLIME" , "SMALL_FIREBALL" , "SNOWBALL" , "MINECART_FURNACE" , "SPLASH_POTION" ,
@@ -117,7 +124,7 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
117124 return ;
118125 }
119126 // MISC //
120- case "DROPPED_ITEM" -> {
127+ case "DROPPED_ITEM" , "ITEM" -> {
121128 Item item = (Item ) entity ;
122129 this .stack = item .getItemStack ();
123130 return ;
@@ -147,14 +154,14 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
147154 }
148155 // END MISC //
149156 // INVENTORY HOLDER //
150- case "MINECART_CHEST" , "MINECART_HOPPER" -> {
157+ case "MINECART_CHEST" , "CHEST_MINECART" , " MINECART_HOPPER" , "HOPPER_MINECART " -> {
151158 storeInventory ((InventoryHolder ) entity );
152159 return ;
153160 }
154161 // START LIVING ENTITY //
155162 // START AGEABLE //
156163 // START TAMEABLE //
157- case "HORSE" , "DONKEY" , "LLAMA" , "MULE" , "SKELETON_HORSE" -> {
164+ case "CAMEL" , " HORSE" , "DONKEY" , "LLAMA" , "TRADER_LLAMA" , " MULE" , "SKELETON_HORSE" , "ZOMBIE_HORSE " -> {
158165 AbstractHorse horse = (AbstractHorse ) entity ;
159166 this .horse = new HorseStats ();
160167 this .horse .jump = horse .getJumpStrength ();
@@ -172,22 +179,21 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
172179 return ;
173180 }
174181 // END INVENTORY HOLDER //
175- case "WOLF" , "OCELOT" -> {
182+ case "WOLF" , "OCELOT" , "CAT" , "PARROT" -> {
176183 storeTameable ((Tameable ) entity );
177184 storeBreedable ((Breedable ) entity );
178185 storeLiving ((LivingEntity ) entity );
179186 return ;
180187 }
181188 // END TAMEABLE //
182- //todo fix sheep
183189 case "SHEEP" -> {
184190 Sheep sheep = (Sheep ) entity ;
185191 if (sheep .isSheared ()) {
186192 this .dataByte = (byte ) 1 ;
187193 } else {
188194 this .dataByte = (byte ) 0 ;
189195 }
190- this .dataByte2 = sheep . getColor (). getDyeData ( );
196+ this .dataByte2 = getOrdinal ( DyeColor . values (), sheep . getColor () );
191197 storeBreedable (sheep );
192198 storeLiving (sheep );
193199 return ;
@@ -268,7 +274,7 @@ public ReplicatingEntityWrapper(Entity entity, short depth) {
268274 }
269275 case "SKELETON" , "WITHER_SKELETON" , "GUARDIAN" , "ELDER_GUARDIAN" , "GHAST" , "MAGMA_CUBE" , "SQUID" , "PIG_ZOMBIE" , "HOGLIN" ,
270276 "ZOMBIFIED_PIGLIN" , "PIGLIN" , "PIGLIN_BRUTE" , "ZOMBIE" , "WITHER" , "WITCH" , "SPIDER" , "CAVE_SPIDER" , "SILVERFISH" ,
271- "GIANT" , "ENDERMAN" , "CREEPER" , "BLAZE" , "SHULKER" , "SNOWMAN" -> {
277+ "GIANT" , "ENDERMAN" , "CREEPER" , "BLAZE" , "SHULKER" , "SNOWMAN" , "SNOW_GOLEM" -> {
272278 storeLiving ((LivingEntity ) entity );
273279 return ;
274280 }
@@ -450,7 +456,7 @@ public Entity spawn(World world, int xOffset, int zOffset) {
450456 }
451457 Entity entity ;
452458 switch (this .getType ().toString ()) {
453- case "DROPPED_ITEM" -> {
459+ case "DROPPED_ITEM" , "ITEM" -> {
454460 return world .dropItem (location , this .stack );
455461 }
456462 case "PLAYER" , "LEASH_HITCH" -> {
@@ -486,15 +492,25 @@ public Entity spawn(World world, int xOffset, int zOffset) {
486492 entity .setGravity (false );
487493 }
488494 switch (entity .getType ().toString ()) {
489- case "BOAT" -> {
495+ case "BOAT" , "ACACIA_BOAT" , "BIRCH_BOAT" , "CHERRY_BOAT" , "DARK_OAK_BOAT" , "JUNGLE_BOAT" , "MANGROVE_BOAT" ,
496+ "OAK_BOAT" , "PALE_OAK_BOAT" , "SPRUCE_BOAT" , "BAMBOO_RAFT" -> {
490497 Boat boat = (Boat ) entity ;
491- boat .setWoodType ( TreeSpecies .values ()[dataByte ]);
498+ boat .setBoatType ( Boat . Type .values ()[dataByte ]);
492499 return entity ;
493500 }
494- case "SLIME" -> {
495- ((Slime ) entity ).setSize (this .dataByte );
501+ case "ACACIA_CHEST_BOAT" , "BIRCH_CHEST_BOAT" , "CHERRY_CHEST_BOAT" , "DARK_OAK_CHEST_BOAT" ,
502+ "JUNGLE_CHEST_BOAT" , "MANGROVE_CHEST_BOAT" , "OAK_CHEST_BOAT" , "PALE_OAK_CHEST_BOAT" ,
503+ "SPRUCE_CHEST_BOAT" , "BAMBOO_CHEST_RAFT" -> {
504+ ChestBoat boat = (ChestBoat ) entity ;
505+ boat .setBoatType (Boat .Type .values ()[dataByte ]);
506+ restoreInventory (boat );
496507 return entity ;
497508 }
509+ // SLIME is not even stored
510+ /* case "SLIME" -> {
511+ ((Slime) entity).setSize(this.dataByte);
512+ return entity;
513+ } */
498514 case "ARROW" , "EGG" , "ENDER_CRYSTAL" , "ENDER_PEARL" , "ENDER_SIGNAL" , "DROPPED_ITEM" , "EXPERIENCE_ORB" , "FALLING_BLOCK" ,
499515 "FIREBALL" , "FIREWORK" , "FISHING_HOOK" , "LEASH_HITCH" , "LIGHTNING" , "MINECART" , "MINECART_COMMAND" ,
500516 "MINECART_MOB_SPAWNER" , "MINECART_TNT" , "PLAYER" , "PRIMED_TNT" , "SMALL_FIREBALL" , "SNOWBALL" ,
@@ -518,14 +534,14 @@ public Entity spawn(World world, int xOffset, int zOffset) {
518534 }
519535 // END MISC //
520536 // INVENTORY HOLDER //
521- case "MINECART_CHEST" , "MINECART_HOPPER" -> {
537+ case "MINECART_CHEST" , "CHEST_MINECART" , " MINECART_HOPPER" , "HOPPER_MINECART " -> {
522538 restoreInventory ((InventoryHolder ) entity );
523539 return entity ;
524540 }
525541 // START LIVING ENTITY //
526542 // START AGEABLE //
527543 // START TAMEABLE //
528- case "HORSE" , "LLAMA " , "SKELETON_HORSE " , "DONKEY " , "MULE" -> {
544+ case "CAMEL" , " HORSE" , "DONKEY " , "LLAMA " , "TRADER_LLAMA " , "MULE" , "SKELETON_HORSE" , "ZOMBIE_HORSE " -> {
529545 AbstractHorse horse = (AbstractHorse ) entity ;
530546 horse .setJumpStrength (this .horse .jump );
531547 if (horse instanceof ChestedHorse ) {
@@ -542,7 +558,7 @@ public Entity spawn(World world, int xOffset, int zOffset) {
542558 return entity ;
543559 }
544560 // END INVENTORY HOLDER //
545- case "WOLF" , "OCELOT" -> {
561+ case "WOLF" , "OCELOT" , "CAT" , "PARROT" -> {
546562 restoreTameable ((Tameable ) entity );
547563 restoreBreedable ((Breedable ) entity );
548564 restoreLiving ((LivingEntity ) entity );
@@ -555,7 +571,7 @@ public Entity spawn(World world, int xOffset, int zOffset) {
555571 sheep .setSheared (true );
556572 }
557573 if (this .dataByte2 != 0 ) {
558- sheep .setColor (DyeColor .getByDyeData ( this .dataByte2 ) );
574+ sheep .setColor (DyeColor .values ()[ this .dataByte2 ] );
559575 }
560576 restoreBreedable (sheep );
561577 restoreLiving (sheep );
0 commit comments