mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-11 09:23:42 +01:00
7ef05fbd8a
CB blindly drops any update flags when recording block modifications, this causes the debug stick to blindly update neighbouring blocks on usage in order to control this, we will special case this item, however, this ideally should be fixed by recording the actual update flags used, but will induce ABI breaks... This patch also maintains the behavior of the BlockPlaceEvent, this behavior will NOT be guaranteed in the future, however.
84 lines
4.2 KiB
Diff
84 lines
4.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: DigitalRegent <misterwener@gmail.com>
|
|
Date: Sat, 11 Apr 2020 13:10:58 +0200
|
|
Subject: [PATCH] Brand support
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
index f19fd40cdc1e758ebefb85201358e314428bd8c6..444355e81bd7f5d07e3ef5f4b9d91d1bf11428ef 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -5,6 +5,7 @@ import com.google.common.primitives.Doubles;
|
|
import com.google.common.primitives.Floats;
|
|
import com.mojang.brigadier.ParseResults;
|
|
import com.mojang.brigadier.StringReader;
|
|
+import io.netty.buffer.Unpooled;
|
|
import io.netty.util.concurrent.Future;
|
|
import io.netty.util.concurrent.GenericFutureListener;
|
|
import it.unimi.dsi.fastutil.ints.Int2ShortMap;
|
|
@@ -112,6 +113,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
private static final int MAX_SIGN_LINE_LENGTH = Integer.getInteger("Paper.maxSignLength", 80);
|
|
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
|
|
|
|
+ private String clientBrandName = null; // Paper - Brand name
|
|
+
|
|
public PlayerConnection(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) {
|
|
this.minecraftServer = minecraftserver;
|
|
this.networkManager = networkmanager;
|
|
@@ -2841,6 +2844,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
private static final MinecraftKey CUSTOM_REGISTER = new MinecraftKey("register");
|
|
private static final MinecraftKey CUSTOM_UNREGISTER = new MinecraftKey("unregister");
|
|
|
|
+ private static final MinecraftKey MINECRAFT_BRAND = new MinecraftKey("brand"); // Paper - Brand support
|
|
+
|
|
@Override
|
|
public void a(PacketPlayInCustomPayload packetplayincustompayload) {
|
|
PlayerConnectionUtils.ensureMainThread(packetplayincustompayload, this, this.player.getWorldServer());
|
|
@@ -2868,6 +2873,16 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
try {
|
|
byte[] data = new byte[packetplayincustompayload.data.readableBytes()];
|
|
packetplayincustompayload.data.readBytes(data);
|
|
+
|
|
+ // Paper start - Brand support
|
|
+ if (packetplayincustompayload.tag.equals(MINECRAFT_BRAND)) {
|
|
+ try {
|
|
+ this.clientBrandName = new PacketDataSerializer(Unpooled.copiedBuffer(data)).readUTF(256);
|
|
+ } catch (StringIndexOutOfBoundsException ex) {
|
|
+ this.clientBrandName = "illegal";
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
server.getMessenger().dispatchIncomingMessage(player.getBukkitEntity(), packetplayincustompayload.tag.toString(), data);
|
|
} catch (Exception ex) {
|
|
PlayerConnection.LOGGER.error("Couldn\'t dispatch custom payload", ex);
|
|
@@ -2877,6 +2892,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
|
|
|
|
}
|
|
|
|
+ // Paper start - brand support
|
|
+ public String getClientBrandName() {
|
|
+ return clientBrandName;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
public final boolean isDisconnected() {
|
|
return (!this.player.joining && !this.networkManager.isConnected()) || this.processedDisconnect; // Paper
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index fda5ead74838dd54045eb30b92384c6544e8b93d..8a4e574857fdcc5cf950371da606fcb07d78a9b1 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -2190,6 +2190,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
// Paper end
|
|
};
|
|
|
|
+ // Paper start - brand support
|
|
+ @Override
|
|
+ public String getClientBrandName() {
|
|
+ return getHandle().playerConnection.getClientBrandName();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
public Player.Spigot spigot()
|
|
{
|
|
return spigot;
|