diff options
Diffstat (limited to 'patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch')
-rw-r--r-- | patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch b/patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch new file mode 100644 index 0000000000..8c6e6b1a8e --- /dev/null +++ b/patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch @@ -0,0 +1,36 @@ +--- a/net/minecraft/world/entity/raid/Raids.java ++++ b/net/minecraft/world/entity/raid/Raids.java +@@ -118,19 +121,32 @@ + Raid raid = this.getOrCreateRaid(serverPlayer.serverLevel(), blockPos1); + boolean flag = false; + if (!raid.isStarted()) { ++ /* CraftBukkit - moved down + if (!this.raidMap.containsKey(raid.getId())) { + this.raidMap.put(raid.getId(), raid); + } + + flag = true; +- } else if (raid.getBadOmenLevel() < raid.getMaxBadOmenLevel()) { ++ // CraftBukkit start - fixed a bug with raid: players could add up Bad Omen level even when the raid had finished ++ } else if (raid.isInProgress() && raid.getBadOmenLevel() < raid.getMaxBadOmenLevel()) { + flag = true; ++ // CraftBukkit end + } else { + serverPlayer.removeEffect(MobEffects.BAD_OMEN); + serverPlayer.connection.send(new ClientboundEntityEventPacket(serverPlayer, (byte)43)); + } + + if (flag) { ++ // CraftBukkit start ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callRaidTriggerEvent(raid, serverPlayer)) { ++ serverPlayer.removeEffect(MobEffects.BAD_OMEN); ++ return null; ++ } ++ ++ if (!this.raidMap.containsKey(raid.getId())) { ++ this.raidMap.put(raid.getId(), raid); ++ } ++ // CraftBukkit end + raid.absorbBadOmen(serverPlayer); + serverPlayer.connection.send(new ClientboundEntityEventPacket(serverPlayer, (byte)43)); + if (!raid.hasFirstWaveSpawned()) { |