mirror of
https://github.com/PaperMC/Folia.git
synced 2024-12-01 13:33:23 +01:00
388cdacd1b
Most significant changes are to portal/teleport logic, there may be some bugs there. Not really concerned about the passenger teleport, as Folia had already added support for that. Not sure how the spark changes are going to work.
41 lines
2.8 KiB
Diff
41 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: WillQi <williamqipizza@gmail.com>
|
|
Date: Mon, 15 May 2023 23:45:09 -0600
|
|
Subject: [PATCH] Fix off region raid heroes
|
|
|
|
This patch aims to solve a potential incorrect thread call when completing a raid.
|
|
If a player is a hero of the village but proceeds to leave the region of the
|
|
raid before it's completion, it would throw an exception due to not being on the
|
|
same region thread anymore.
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/raid/Raid.java b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
index e1987d1d6e5fd05e155c05dd1fdaf569e303d74a..909d1966b2f22c65ef4b887521b3b0e772f2a7ee 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raid.java
|
|
@@ -429,14 +429,22 @@ public class Raid {
|
|
LivingEntity entityliving = (LivingEntity) entity;
|
|
|
|
if (!entity.isSpectator()) {
|
|
- entityliving.addEffect(new MobEffectInstance(MobEffects.HERO_OF_THE_VILLAGE, 48000, this.raidOmenLevel - 1, false, false, true));
|
|
+ //entityliving.addEffect(new MobEffectInstance(MobEffects.HERO_OF_THE_VILLAGE, 48000, this.raidOmenLevel - 1, false, false, true)); // Folia - Fix off region raid heroes - move down
|
|
if (entityliving instanceof ServerPlayer) {
|
|
ServerPlayer entityplayer = (ServerPlayer) entityliving;
|
|
|
|
- entityplayer.awardStat(Stats.RAID_WIN);
|
|
- CriteriaTriggers.RAID_WIN.trigger(entityplayer);
|
|
+ // Folia start - Fix off region raid heroes - moved down
|
|
winners.add(entityplayer.getBukkitEntity()); // CraftBukkit
|
|
}
|
|
+ // Folia start - Fix off region raid heroes
|
|
+ entityliving.getBukkitEntity().taskScheduler.schedule((LivingEntity lv) -> {
|
|
+ lv.addEffect(new MobEffectInstance(MobEffects.HERO_OF_THE_VILLAGE, 48000, this.raidOmenLevel - 1, false, false, true));
|
|
+ if (lv instanceof ServerPlayer entityplayer) {
|
|
+ entityplayer.awardStat(Stats.RAID_WIN);
|
|
+ CriteriaTriggers.RAID_WIN.trigger(entityplayer);
|
|
+ }
|
|
+ }, null, 1L);
|
|
+ // Folia end - Fix off region raid heroes
|
|
}
|
|
}
|
|
}
|