aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
diff options
context:
space:
mode:
authorEmilia Kond <[email protected]>2023-06-13 01:00:12 +0300
committerGitHub <[email protected]>2023-06-12 15:00:12 -0700
commit2d09115b3a73b27a760dfe7debdbd88b279b29e2 (patch)
treef9dc39849e410c23536b4f94221b08d8337b13cd /patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
parent87dfff4cfabefe329d6b6f6b8e2985e4778bd8d3 (diff)
downloadPaper-2d09115b3a73b27a760dfe7debdbd88b279b29e2.tar.gz
Paper-2d09115b3a73b27a760dfe7debdbd88b279b29e2.zip
Use net.kyori.ansi for console logging (#9313)
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
Diffstat (limited to 'patches/server/0626-Add-ElderGuardianAppearanceEvent.patch')
-rw-r--r--patches/server/0626-Add-ElderGuardianAppearanceEvent.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch b/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
new file mode 100644
index 0000000000..76665d8084
--- /dev/null
+++ b/patches/server/0626-Add-ElderGuardianAppearanceEvent.patch
@@ -0,0 +1,48 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Fri, 19 Mar 2021 23:39:09 -0400
+Subject: [PATCH] Add ElderGuardianAppearanceEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/effect/MobEffectUtil.java b/src/main/java/net/minecraft/world/effect/MobEffectUtil.java
+index 4c46a843c5c7e6f735f6b5f0f3c034524a0cf1e1..2baba1ccc1acd50693e05d565784d11df27bba93 100644
+--- a/src/main/java/net/minecraft/world/effect/MobEffectUtil.java
++++ b/src/main/java/net/minecraft/world/effect/MobEffectUtil.java
+@@ -54,10 +54,23 @@ public final class MobEffectUtil {
+ }
+
+ public static List<ServerPlayer> addEffectToPlayersAround(ServerLevel worldserver, @Nullable Entity entity, Vec3 vec3d, double d0, MobEffectInstance mobeffect, int i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause) {
++ // Paper start
++ return addEffectToPlayersAround(worldserver, entity, vec3d, d0, mobeffect, i, cause, null);
++ }
++
++ public static List<ServerPlayer> addEffectToPlayersAround(ServerLevel worldserver, @Nullable Entity entity, Vec3 vec3d, double d0, MobEffectInstance mobeffect, int i, org.bukkit.event.entity.EntityPotionEffectEvent.Cause cause, @Nullable java.util.function.Predicate<ServerPlayer> playerPredicate) {
++ // Paper end
+ // CraftBukkit end
+ MobEffect mobeffectlist = mobeffect.getEffect();
+ List<ServerPlayer> list = worldserver.getPlayers((entityplayer) -> {
+- return entityplayer.gameMode.isSurvival() && (entity == null || !entity.isAlliedTo((Entity) entityplayer)) && vec3d.closerThan(entityplayer.position(), d0) && (!entityplayer.hasEffect(mobeffectlist) || entityplayer.getEffect(mobeffectlist).getAmplifier() < mobeffect.getAmplifier() || entityplayer.getEffect(mobeffectlist).endsWithin(i - 1));
++ // Paper start
++ boolean condition = entityplayer.gameMode.isSurvival() && (entity == null || !entity.isAlliedTo((Entity) entityplayer)) && vec3d.closerThan(entityplayer.position(), d0) && (!entityplayer.hasEffect(mobeffectlist) || entityplayer.getEffect(mobeffectlist).getAmplifier() < mobeffect.getAmplifier() || entityplayer.getEffect(mobeffectlist).endsWithin(i - 1));
++ if (condition) {
++ return playerPredicate == null || playerPredicate.test(entityplayer); // Only test the player AFTER it is true
++ } else {
++ return false;
++ }
++ // Paper ned
+ });
+
+ list.forEach((entityplayer) -> {
+diff --git a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+index 4e4b68904151d0d851b13f14f89c1c305e95fd5a..8f481e11815d7162dd62a2b850b3d2af6d904519 100644
+--- a/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
++++ b/src/main/java/net/minecraft/world/entity/monster/ElderGuardian.java
+@@ -67,7 +67,7 @@ public class ElderGuardian extends Guardian {
+ super.customServerAiStep();
+ if ((this.tickCount + this.getId()) % 1200 == 0) {
+ MobEffectInstance mobeffect = new MobEffectInstance(MobEffects.DIG_SLOWDOWN, 6000, 2);
+- List<ServerPlayer> list = MobEffectUtil.addEffectToPlayersAround((ServerLevel) this.level(), this, this.position(), 50.0D, mobeffect, 1200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit
++ List<ServerPlayer> list = MobEffectUtil.addEffectToPlayersAround((ServerLevel) this.level(), this, this.position(), 50.0D, mobeffect, 1200, org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK, (player) -> new io.papermc.paper.event.entity.ElderGuardianAppearanceEvent(getBukkitEntity(), player.getBukkitEntity()).callEvent()); // CraftBukkit // Paper
+
+ list.forEach((entityplayer) -> {
+ entityplayer.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.GUARDIAN_ELDER_EFFECT, this.isSilent() ? 0.0F : 1.0F));