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

Paper Changes:
9259558b58 Fix remapping issue with RangedAttackMob and RangedEntity (#7167)
3d9385e665 Add material tags for copper blocks (#7141)
75f4cb074a Move setShouldBurnInDay to AbstractSkeleton (#7120)
9adc0b243b Fix breakNaturally for fluid-logged blocks (#7134)
76f327471d Move VehicleCollisionEvent HandlerList up (#7112)
d4c819056d Forward CraftEntity in teleport command (#7025)
9012ae8880 Improve scoreboard entries (#6871)
264b11d9f3 Entity powdered snow API (#6833)
a6a6a3db24 [ci skip] Revert change to apatch script
2cf6a57bca Fix entity type tags suggestions in selectors (#6468)
8a21c1742b Add API for item entity health (#6514)
26fbb02aae Adventure changes for Java 17 and Component support for resourcepack prompt
10bfb63f6c Configurable max block light for monster spawning (#7129)
6e5ceb34eb Fix ChunkMap distanceManager field reobf
82eaf4ee15 Fix duplicated BlockPistonRetractEvent call (#7111)
cf621c5eb3 Load effect amplifiers greater than 127 correctly (#7175)
1ce4281666 Fix ABI breakage for plainSerializer (#7178)
bf826b3fac [ci skip] Update Gradle wrapper to 7.3.3
464b1715bb Add uncaught exception handler using logger to usages of ThreadFactoryBuilder (#7179)
2021-12-23 22:44:22 -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 7b23535a680d2a8534dcb8dd87770f66fb982c13..4b842e78d3e8fbca90f5f3d975bee654ec87d91d 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 057fcbc389e54e0c9f7a90a3e8b965cd46db9d58..7de5cf6d7ebd0ab14f1478d466cf53932bb62565 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3125,6 +3125,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) {
@@ -3149,6 +3150,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 8de4ad9f2120d22b78202981624abd1d2fc70148..48fc8c707ffee15fcbfbb23c59cdb492d57ad707 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2609,4 +2609,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.spigot;
}
// Spigot end
+
+ // Purpur start
+ @Override
+ public boolean usesPurpurClient() {
+ return getHandle().purpurClient;
+ }
+ // Purpur end
}