|
79 | 79 | Consumer<T> consumer; |
80 | 80 | if (p_20594_ != null) { |
81 | 81 | consumer = createDefaultStackConfig(p_20593_, p_20594_, p_20595_); |
82 | | -@@ -892,7 +_,7 @@ |
| 82 | +@@ -892,6 +_,7 @@ |
83 | 83 | }; |
84 | 84 | } |
85 | 85 |
|
86 | | -- return this.spawn(p_20593_, consumer, p_20596_, p_20597_, p_20598_, p_20599_); |
87 | | -+ return this.spawn(p_20593_, consumer, p_20596_, p_20597_, p_20598_, p_20599_, spawnReason); // CraftBukkit |
| 86 | ++ magma$setSpawnReason(spawnReason); |
| 87 | + return this.spawn(p_20593_, consumer, p_20596_, p_20597_, p_20598_, p_20599_); |
88 | 88 | } |
89 | 89 |
|
90 | | - public static <T extends Entity> Consumer<T> createDefaultStackConfig(ServerLevel p_263583_, ItemStack p_263568_, @Nullable Player p_263575_) { |
91 | | -@@ -915,19 +_,37 @@ |
| 90 | +@@ -915,7 +_,15 @@ |
92 | 91 | Consumer<T> p_263579_, ServerLevel p_263571_, ItemStack p_263582_, @Nullable Player p_263574_ |
93 | 92 | ) { |
94 | 93 | CustomData customdata = p_263582_.getOrDefault(DataComponents.ENTITY_DATA, CustomData.EMPTY); |
95 | 94 | - return !customdata.isEmpty() ? p_263579_.andThen(p_329995_ -> updateCustomEntityTag(p_263571_, p_263574_, p_329995_, customdata)) : p_263579_; |
96 | 95 | + return !customdata.isEmpty() ? p_263579_.andThen(p_329995_ -> { |
97 | 96 | + try { updateCustomEntityTag(p_263571_, p_263574_, p_329995_, customdata); } catch (Throwable t) { LOGGER.warn("Error loading spawn egg NBT", t); } // CraftBukkit - SPIGOT-5665 |
98 | 97 | + }) : p_263579_; |
99 | | - } |
100 | | - |
101 | | - @Nullable |
102 | | - public T spawn(ServerLevel p_262634_, BlockPos p_262707_, MobSpawnType p_262597_) { |
103 | | -- return this.spawn(p_262634_, null, p_262707_, p_262597_, false, false); |
104 | | -+ // CraftBukkit start |
105 | | -+ return this.spawn(p_262634_, p_262707_, p_262597_, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT); |
106 | 98 | + } |
107 | 99 | + |
108 | | -+ @Nullable |
109 | | -+ public T spawn(ServerLevel worldserver, BlockPos blockposition, MobSpawnType enummobspawn, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { |
110 | | -+ return this.spawn(worldserver, (Consumer<T>) null, blockposition, enummobspawn, false, false, spawnReason); // CraftBukkit - decompile error |
111 | | -+ // CraftBukkit end |
| 100 | ++ // Magma |
| 101 | ++ private org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason magma$spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; |
| 102 | ++ public void magma$setSpawnReason(org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) { |
| 103 | ++ this.magma$spawnReason = reason; |
112 | 104 | } |
113 | 105 |
|
114 | 106 | @Nullable |
| 107 | +@@ -927,7 +_,9 @@ |
115 | 108 | public T spawn(ServerLevel p_262704_, @Nullable Consumer<T> p_262621_, BlockPos p_262672_, MobSpawnType p_262644_, boolean p_262690_, boolean p_262590_) { |
116 | | -+ // CraftBukkit start |
117 | | -+ return this.spawn(p_262704_, p_262621_, p_262672_, p_262644_, p_262690_, p_262590_, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT); |
118 | | -+ } |
119 | | -+ |
120 | | -+ @Nullable |
121 | | -+ public T spawn(ServerLevel p_262704_, @Nullable Consumer<T> p_262621_, BlockPos p_262672_, MobSpawnType p_262644_, boolean p_262690_, boolean p_262590_, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason spawnReason) { |
122 | | -+ // CraftBukkit end |
123 | 109 | T t = this.create(p_262704_, p_262621_, p_262672_, p_262644_, p_262690_, p_262590_); |
124 | 110 | if (t != null) { |
125 | 111 | - p_262704_.addFreshEntityWithPassengers(t); |
126 | | -+ p_262704_.addFreshEntityWithPassengers(t, spawnReason); |
| 112 | ++ p_262704_.addFreshEntityWithPassengers(t, magma$spawnReason); |
127 | 113 | + return !t.isRemoved() ? t : null; // Don't return an entity when CreatureSpawnEvent is canceled |
128 | 114 | + // CraftBukkit end |
129 | 115 | } |
|
0 commit comments