Commits
md_5 authored 8abf4c480ea
14 14 | SINGLE(true) { |
15 15 | |
16 16 | while (iterator.hasNext()) { |
17 17 | entity1 = (Entity) iterator.next(); |
18 18 | entity1.stopRiding(); |
19 19 | - entity1.remove(Entity.RemovalReason.DISCARDED); |
20 20 | + entity1.remove(Entity.RemovalReason.DISCARDED, EntityRemoveEvent.Cause.TRANSFORMATION); // CraftBukkit - add Bukkit remove cause |
21 21 | } |
22 22 | |
23 23 | entity.startRiding(entityinsentient1); |
24 + | |
25 + | ItemStack itemstack = entityinsentient.getItemBySlot(enumitemslot); |
26 + | |
27 + | if (!itemstack.isEmpty()) { |
28 + | - entityinsentient1.setItemSlot(enumitemslot, itemstack.copyAndClear()); |
29 + | + entityinsentient1.setItemSlot(enumitemslot, itemstack.copy()); // CraftBukkit - SPIGOT-7996: don't clear yet |
30 + | entityinsentient1.setDropChance(enumitemslot, entityinsentient.getEquipmentDropChance(enumitemslot)); |
31 + | } |
32 + | } |
24 33 | |
25 34 | entityinsentient1.hurtTime = entityinsentient.hurtTime; |
26 35 | entityinsentient1.yBodyRot = entityinsentient.yBodyRot; |
27 36 | entityinsentient1.setOnGround(entityinsentient.onGround()); |
28 37 | - Optional optional = entityinsentient.getSleepingPos(); |
29 38 | + Optional<BlockPosition> optional = entityinsentient.getSleepingPos(); // CraftBukkit - decompile error |
30 39 | |
31 40 | Objects.requireNonNull(entityinsentient1); |
32 41 | optional.ifPresent(entityinsentient1::setSleepingPos); |
33 - | |
42 + | |
43 + | |
44 + | this.convertCommon(entityinsentient, entityinsentient1, conversionparams); |
45 + | } |
46 + | + |
47 + | + // CraftBukkit start |
48 + | + @Override |
49 + | + void postConvert(EntityInsentient entityinsentient, EntityInsentient entityinsentient1, ConversionParams conversionparams) { |
50 + | + if (conversionparams.keepEquipment()) { |
51 + | + for (EnumItemSlot enumitemslot : EnumItemSlot.VALUES) { |
52 + | + ItemStack itemstack = entityinsentient.getItemBySlot(enumitemslot); |
53 + | + |
54 + | + if (!itemstack.isEmpty()) { |
55 + | + itemstack.setCount(0); // SPIGOT-7996: clear after conversion |
56 + | + } |
57 + | + } |
58 + | + } |
59 + | + } |
60 + | + // CraftBukkit end |
61 + | }, |
62 + | SPLIT_ON_DEATH(false) { |
63 + | @Override |
64 + | |
65 + | } |
66 + | |
67 + | abstract void convert(EntityInsentient entityinsentient, EntityInsentient entityinsentient1, ConversionParams conversionparams); |
68 + | + |
69 + | + void postConvert(EntityInsentient entityinsentient, EntityInsentient entityinsentient1, ConversionParams conversionparams) {} // CraftBukkit |
70 + | |
71 + | void convertCommon(EntityInsentient entityinsentient, EntityInsentient entityinsentient1, ConversionParams conversionparams) { |
72 + | entityinsentient1.setAbsorptionAmount(entityinsentient.getAbsorptionAmount()); |
73 + | |
34 74 | entityinsentient1.setNoGravity(entityinsentient.isNoGravity()); |
35 75 | entityinsentient1.setPortalCooldown(entityinsentient.getPortalCooldown()); |
36 76 | entityinsentient1.setSilent(entityinsentient.isSilent()); |
37 77 | - Set set = entityinsentient.getTags(); |
38 78 | + Set<String> set = entityinsentient.getTags(); // CraftBukkit - decompile error |
39 79 | |
40 80 | Objects.requireNonNull(entityinsentient1); |
41 81 | set.forEach(entityinsentient1::addTag); |