aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/mache-vineflower-stripped/net/minecraft/world/entity/raid/Raids.java.patch
diff options
context:
space:
mode:
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.patch36
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()) {