diff --git a/Spigot-API-Patches/0315-Add-ElderGuardianAppearanceEvent.patch b/Spigot-API-Patches/0315-Add-ElderGuardianAppearanceEvent.patch new file mode 100644 index 000000000..8d925d10a --- /dev/null +++ b/Spigot-API-Patches/0315-Add-ElderGuardianAppearanceEvent.patch @@ -0,0 +1,81 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Fri, 19 Mar 2021 23:39:21 -0400 +Subject: [PATCH] Add ElderGuardianAppearanceEvent + + +diff --git a/src/main/java/io/papermc/paper/event/entity/ElderGuardianAppearanceEvent.java b/src/main/java/io/papermc/paper/event/entity/ElderGuardianAppearanceEvent.java +new file mode 100644 +index 0000000000000000000000000000000000000000..4cd551c8311ff8f7321ed2dc6a4efc87162dadfe +--- /dev/null ++++ b/src/main/java/io/papermc/paper/event/entity/ElderGuardianAppearanceEvent.java +@@ -0,0 +1,69 @@ ++package io.papermc.paper.event.entity; ++ ++import org.bukkit.entity.ElderGuardian; ++import org.bukkit.entity.Entity; ++import org.bukkit.entity.Player; ++import org.bukkit.event.Cancellable; ++import org.bukkit.event.HandlerList; ++import org.bukkit.event.entity.EntityEvent; ++import org.jetbrains.annotations.NotNull; ++ ++import java.util.Collections; ++import java.util.List; ++ ++/** ++ * Is called when an {@link org.bukkit.entity.ElderGuardian} appears in front of a {@link org.bukkit.entity.Player}. ++ */ ++public class ElderGuardianAppearanceEvent extends EntityEvent implements Cancellable { ++ ++ private static final HandlerList handlers = new HandlerList(); ++ ++ private boolean cancelled; ++ private final Player affectedPlayer; ++ ++ public ElderGuardianAppearanceEvent(@NotNull Entity what, @NotNull Player affectedPlayer) { ++ super(what); ++ this.affectedPlayer = affectedPlayer; ++ } ++ ++ /** ++ * Get the player affected by the guardian appearance. ++ * ++ * @return Player affected by the appearance ++ */ ++ @NotNull ++ public Player getAffectedPlayer() { ++ return affectedPlayer; ++ } ++ ++ /** ++ * The elder guardian playing the effect. ++ * ++ * @return The elder guardian ++ */ ++ @NotNull ++ public ElderGuardian getEntity() { ++ return (ElderGuardian) entity; ++ } ++ ++ @Override ++ public boolean isCancelled() { ++ return cancelled; ++ } ++ ++ @Override ++ public void setCancelled(boolean cancel) { ++ this.cancelled = cancel; ++ } ++ ++ @NotNull ++ @Override ++ public HandlerList getHandlers() { ++ return handlers; ++ } ++ ++ @NotNull ++ public static HandlerList getHandlerList() { ++ return handlers; ++ } ++} diff --git a/Spigot-Server-Patches/0754-Add-ElderGuardianAppearanceEvent.patch b/Spigot-Server-Patches/0754-Add-ElderGuardianAppearanceEvent.patch new file mode 100644 index 000000000..27121d2be --- /dev/null +++ b/Spigot-Server-Patches/0754-Add-ElderGuardianAppearanceEvent.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Owen1212055 <23108066+Owen1212055@users.noreply.github.com> +Date: Fri, 19 Mar 2021 23:39:09 -0400 +Subject: [PATCH] Add ElderGuardianAppearanceEvent + + +diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityGuardianElder.java b/src/main/java/net/minecraft/world/entity/monster/EntityGuardianElder.java +index 9bd6f5d988c1e50e1bb729c407178b9cbcc62115..300efeb98bb68b24faa68a4af9d703bf2b8c405c 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EntityGuardianElder.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EntityGuardianElder.java +@@ -77,10 +77,12 @@ public class EntityGuardianElder extends EntityGuardian { + while (iterator.hasNext()) { + EntityPlayer entityplayer = (EntityPlayer) iterator.next(); + ++ if (new io.papermc.paper.event.entity.ElderGuardianAppearanceEvent(getBukkitEntity(), entityplayer.getBukkitEntity()).callEvent()) { // Paper - Add Guardian Appearance Event + if (!entityplayer.hasEffect(mobeffectlist) || entityplayer.getEffect(mobeffectlist).getAmplifier() < 2 || entityplayer.getEffect(mobeffectlist).getDuration() < 1200) { + entityplayer.playerConnection.sendPacket(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.k, this.isSilent() ? 0.0F : 1.0F)); + entityplayer.addEffect(new MobEffect(mobeffectlist, 6000, 2), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit + } ++ } // Paper - Add Guardian Appearance Event + } + } +