|
| 1 | +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
| 2 | +From: MelnCat <melncatuwu@gmail.com> |
| 3 | +Date: Fri, 23 Sep 2022 18:41:05 -0700 |
| 4 | +Subject: [PATCH] Add death screen API |
| 5 | + |
| 6 | + |
| 7 | +diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java |
| 8 | +index 53b75f5737a910ffc5448cd9a85eae57f9c1488f..ea95873dd034779e56a8b924cd27f9375be05daf 100644 |
| 9 | +--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java |
| 10 | ++++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerCombatKillPacket.java |
| 11 | +@@ -9,6 +9,7 @@ public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacke |
| 12 | + private final int playerId; |
| 13 | + private final int killerId; |
| 14 | + private final Component message; |
| 15 | ++ public net.kyori.adventure.text.Component adventure$message; // Purpur |
| 16 | + |
| 17 | + public ClientboundPlayerCombatKillPacket(CombatTracker damageTracker, Component message) { |
| 18 | + this(damageTracker.getMob().getId(), damageTracker.getKillerId(), message); |
| 19 | +@@ -30,6 +31,12 @@ public class ClientboundPlayerCombatKillPacket implements Packet<ClientGamePacke |
| 20 | + public void write(FriendlyByteBuf buf) { |
| 21 | + buf.writeVarInt(this.playerId); |
| 22 | + buf.writeInt(this.killerId); |
| 23 | ++ // Purpur start |
| 24 | ++ if (this.adventure$message != null) { |
| 25 | ++ buf.writeComponent(this.adventure$message); |
| 26 | ++ return; |
| 27 | ++ } |
| 28 | ++ // Purpur end |
| 29 | + buf.writeComponent(this.message); |
| 30 | + } |
| 31 | + |
| 32 | +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java |
| 33 | +index 3b5ff0b3013a10b5515b13d1b660ec421531d772..c503b886013bc053d32b8afd8cd9bca09132a882 100644 |
| 34 | +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java |
| 35 | ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java |
| 36 | +@@ -3026,5 +3026,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { |
| 37 | + if (this.getHandle().connection == null) return; |
| 38 | + this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundCustomPayloadPacket(ClientboundCustomPayloadPacket.DEBUG_GAME_TEST_CLEAR, new FriendlyByteBuf(io.netty.buffer.Unpooled.buffer()))); |
| 39 | + } |
| 40 | ++ |
| 41 | ++ @Override |
| 42 | ++ public void sendDeathScreen(net.kyori.adventure.text.Component message) { |
| 43 | ++ sendDeathScreen(message, null); |
| 44 | ++ } |
| 45 | ++ |
| 46 | ++ @Override |
| 47 | ++ public void sendDeathScreen(net.kyori.adventure.text.Component message, org.bukkit.entity.Entity killer) { |
| 48 | ++ if (this.getHandle().connection == null) return; |
| 49 | ++ net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket packet = new net.minecraft.network.protocol.game.ClientboundPlayerCombatKillPacket(getEntityId(), killer == null ? -1 : killer.getEntityId(), null); |
| 50 | ++ packet.adventure$message = message; |
| 51 | ++ this.getHandle().connection.send(packet); |
| 52 | ++ } |
| 53 | + // Purpur end |
| 54 | + } |
0 commit comments