aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOwen <[email protected]>2022-03-19 20:50:33 -0400
committerGitHub <[email protected]>2022-03-20 00:50:33 +0000
commit993f8288fa1c20a5942908da1b08022f2cd0599e (patch)
treeef1065a4169b58a59685e955386a7dbd418484ae
parenta686ff56704ef17c384b661cddd044c5d871991a (diff)
downloadPaper-993f8288fa1c20a5942908da1b08022f2cd0599e.tar.gz
Paper-993f8288fa1c20a5942908da1b08022f2cd0599e.zip
Add TameableDeathMessageEvent (#5392)
-rw-r--r--patches/api/0376-Add-TameableDeathMessageEvent.patch81
-rw-r--r--patches/server/0884-Add-TameableDeathMessageEvent.patch23
2 files changed, 104 insertions, 0 deletions
diff --git a/patches/api/0376-Add-TameableDeathMessageEvent.patch b/patches/api/0376-Add-TameableDeathMessageEvent.patch
new file mode 100644
index 0000000000..6152eacbe6
--- /dev/null
+++ b/patches/api/0376-Add-TameableDeathMessageEvent.patch
@@ -0,0 +1,81 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Fri, 19 Mar 2021 23:25:38 -0400
+Subject: [PATCH] Add TameableDeathMessageEvent
+
+
+diff --git a/src/main/java/io/papermc/paper/event/entity/TameableDeathMessageEvent.java b/src/main/java/io/papermc/paper/event/entity/TameableDeathMessageEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..70cd37aefbd5d64c798ab2fc3b6d502134690348
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/event/entity/TameableDeathMessageEvent.java
+@@ -0,0 +1,69 @@
++package io.papermc.paper.event.entity;
++
++import net.kyori.adventure.text.Component;
++import org.bukkit.entity.Tameable;
++import org.bukkit.event.Cancellable;
++import org.bukkit.event.HandlerList;
++import org.bukkit.event.entity.EntityEvent;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Called when a {@link Tameable} dies and sends a death message.
++ */
++public class TameableDeathMessageEvent extends EntityEvent implements Cancellable {
++
++ private static final HandlerList handlers = new HandlerList();
++ private boolean cancelled;
++ private Component deathMessage;
++
++ public TameableDeathMessageEvent(@NotNull Tameable what, @NotNull Component deathMessage) {
++ super(what);
++ this.deathMessage = deathMessage;
++ }
++
++ /**
++ * Set the death message that appears to the owner of the tameable.
++ *
++ * @param deathMessage Death message to appear
++ */
++ public void deathMessage(@NotNull Component deathMessage) {
++ this.deathMessage = deathMessage;
++ }
++
++ /**
++ * Get the death message that appears to the owner of the tameable.
++ *
++ * @return Death message to appear
++ */
++ @NotNull
++ public Component deathMessage() {
++ return deathMessage;
++ }
++
++ @Override
++ public boolean isCancelled() {
++ return cancelled;
++ }
++
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @NotNull
++ @Override
++ public Tameable getEntity() {
++ return (Tameable) super.getEntity();
++ }
++
++ @NotNull
++ @Override
++ public HandlerList getHandlers() {
++ return handlers;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return handlers;
++ }
++}
diff --git a/patches/server/0884-Add-TameableDeathMessageEvent.patch b/patches/server/0884-Add-TameableDeathMessageEvent.patch
new file mode 100644
index 0000000000..23302de760
--- /dev/null
+++ b/patches/server/0884-Add-TameableDeathMessageEvent.patch
@@ -0,0 +1,23 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Owen1212055 <[email protected]>
+Date: Mon, 21 Jun 2021 21:24:45 -0400
+Subject: [PATCH] Add TameableDeathMessageEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/TamableAnimal.java b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
+index 7e67c47434d1f29cc87f3af926f3efc920c87829..de95bfd6e5a97257cb4915ce0a7a704784f110df 100644
+--- a/src/main/java/net/minecraft/world/entity/TamableAnimal.java
++++ b/src/main/java/net/minecraft/world/entity/TamableAnimal.java
+@@ -209,7 +209,11 @@ public abstract class TamableAnimal extends Animal implements OwnableEntity {
+ @Override
+ public void die(DamageSource source) {
+ if (!this.level.isClientSide && this.level.getGameRules().getBoolean(GameRules.RULE_SHOWDEATHMESSAGES) && this.getOwner() instanceof ServerPlayer) {
+- this.getOwner().sendMessage(this.getCombatTracker().getDeathMessage(), Util.NIL_UUID);
++ // Paper start - TameableDeathMessageEvent
++ io.papermc.paper.event.entity.TameableDeathMessageEvent event = new io.papermc.paper.event.entity.TameableDeathMessageEvent((org.bukkit.entity.Tameable) getBukkitEntity(), io.papermc.paper.adventure.PaperAdventure.asAdventure(this.getCombatTracker().getDeathMessage()));
++ if (event.callEvent()) {
++ this.getOwner().sendMessage(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.deathMessage()), Util.NIL_UUID);
++ } // Paper end - TameableDeathMessageEvent
+ }
+
+ super.die(source);