Files
Purpur/patches/server/0004-Purpur-client-support.patch
BillyGalbreath a21f907ced Updated Upstream (Paper & Pufferfish)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paperr@41263d9 [ci skip] Update paperweight to 1.3.4
PaperMC/Paperr@3109dd8 Updated Upstream (Bukkit/CraftBukkit) (#7428)
PaperMC/Paperr@17eb884 Use a CHM for StructureTemplate.Pallete cache
PaperMC/Paperr@f79c0da Updated Upstream (Bukkit/CraftBukkit)
PaperMC/Paperr@2121aed Rebuild patches

Pufferfish Changes:
pufferfish-gg/Pufferfishr@9aa81a5 Update Upstream (Paper)
pufferfish-gg/Pufferfishr@809bd9f Update Upstream (Paper)
pufferfish-gg/Pufferfishr@f053fd3 Update Upstream (Paper)
pufferfish-gg/Pufferfishr@5bf8730 Update Upstream (Paper)
pufferfish-gg/Pufferfishr@c4a780f Update Upstream (Paper)
pufferfish-gg/Pufferfishr@99a590b Fix lightning
pufferfish-gg/Pufferfishr@3e75ff0 Updated Upstream (Paper)
pufferfish-gg/Pufferfishr@110966e Updated Upstream (Paper)
pufferfish-gg/Pufferfishr@b6b58c4 Update Upstream (Paper misc-perf branch)
2022-02-01 07:49:14 -06:00

61 lines
3.3 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 30 Jul 2021 14:31:25 -0500
Subject: [PATCH] Purpur client support
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
index 470dbed47830e2f580c090bc762a7be5cf389ce5..a261fd5f0709bd9891189d538f762aa8786d19d2 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
@@ -254,6 +254,7 @@ public class ServerPlayer extends Player {
public Integer clientViewDistance;
// CraftBukkit end
public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper
+ public boolean purpurClient = false; // Purpur
public double lastEntitySpawnRadiusSquared; // Paper - optimise isOutsideRange, this field is in blocks
public final com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<ServerPlayer> cachedSingleHashSet; // Paper
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index cb35f2f1f2f4d568bc59ce5c08ab3b908533264c..ec09ea159a75c33ef9ecbd1d424a2eb81baabdc4 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3151,6 +3151,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister");
private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support
+ private static final ResourceLocation PURPUR_CLIENT = new ResourceLocation("purpur", "client"); // Purpur
@Override
public void handleCustomPayload(ServerboundCustomPayloadPacket packet) {
@@ -3175,6 +3176,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex);
this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
}
+ // Purpur start
+ } else if (packet.identifier.equals(PURPUR_CLIENT)) {
+ try {
+ player.purpurClient = true;
+ } catch (Exception ignore) {
+ }
+ // Purpur end
} else {
try {
byte[] data = new byte[packet.data.readableBytes()];
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index e204ddd09c8fa8d1e6f7cfcc064e6561ed19bdb3..062a489133f53a446abecb1cf213dee695d8322b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2685,4 +2685,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end
+
+ // Purpur start
+ @Override
+ public boolean usesPurpurClient() {
+ return getHandle().purpurClient;
+ }
+ // Purpur end
}