mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Purpur client support
Co-authored-by: Fredthedoggy <45927799+fredthedoggy@users.noreply.github.com>
This commit is contained in:
committed by
granny
parent
a1fbac2a98
commit
0060eb2e2d
@@ -1,24 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Fredthedoggy <45927799+fredthedoggy@users.noreply.github.com>
|
|
||||||
Date: Thu, 19 Aug 2021 20:04:18 -0400
|
|
||||||
Subject: [PATCH] Purpur client support
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
|
||||||
index fac4aec289e07231d80a9890653432f688355afa..c8365c38c91b3e6c4f721074f0646fe5adffbdf6 100644
|
|
||||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
||||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
|
||||||
@@ -3911,4 +3911,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
|
||||||
*/
|
|
||||||
void sendEntityEffect(org.bukkit.@NotNull EntityEffect effect, @NotNull Entity target);
|
|
||||||
// Paper end - entity effect API
|
|
||||||
+
|
|
||||||
+ // Purpur start
|
|
||||||
+ /**
|
|
||||||
+ * Allows you to get if player uses Purpur Client
|
|
||||||
+ *
|
|
||||||
+ * @return True if Player uses Purpur Client
|
|
||||||
+ */
|
|
||||||
+ public boolean usesPurpurClient();
|
|
||||||
+ // Purpur end
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
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/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
index fc7f7a34babd095a51b5321f600aef65a2a9d123..be20eed6e3bfab7a78228dfb42b50f80ad3d817c 100644
|
|
||||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
|
||||||
@@ -327,6 +327,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
|
|
||||||
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
|
||||||
public @Nullable String clientBrandName = null; // Paper - Brand support
|
|
||||||
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
|
||||||
+ public boolean purpurClient = false; // Purpur - Purpur client support
|
|
||||||
|
|
||||||
// Paper start - rewrite chunk system
|
|
||||||
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
|
||||||
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
||||||
index b0bc66dc7248aae691dcab68b925b52a1695e63f..92749b57d3a2b2ffee79436319513248846296b6 100644
|
|
||||||
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
||||||
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
|
||||||
@@ -85,6 +85,7 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
|
||||||
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
|
|
||||||
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
|
|
||||||
protected static final ResourceLocation MINECRAFT_BRAND = ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
|
||||||
+ protected static final ResourceLocation PURPUR_CLIENT = ResourceLocation.fromNamespaceAndPath("purpur", "client"); // Purpur - Purpur client support
|
|
||||||
|
|
||||||
public ServerCommonPacketListenerImpl(MinecraftServer minecraftserver, Connection networkmanager, CommonListenerCookie commonlistenercookie, ServerPlayer player) { // CraftBukkit
|
|
||||||
this.server = minecraftserver;
|
|
||||||
@@ -179,6 +180,13 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
|
||||||
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t register custom payload", ex);
|
|
||||||
this.disconnect(Component.literal("Invalid payload REGISTER!"), PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
|
|
||||||
}
|
|
||||||
+ // Purpur start - Purpur client support
|
|
||||||
+ } else if (identifier.equals(PURPUR_CLIENT)) {
|
|
||||||
+ try {
|
|
||||||
+ player.purpurClient = true;
|
|
||||||
+ } catch (Exception ignore) {
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - Purpur client support
|
|
||||||
} else if (identifier.equals(ServerCommonPacketListenerImpl.CUSTOM_UNREGISTER)) {
|
|
||||||
try {
|
|
||||||
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
index 6a647cab8b2e476987931486e290703b8726f2c7..c5bd2a45b32e8dff83c148379544db125684622a 100644
|
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
||||||
@@ -3565,4 +3565,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
||||||
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData()));
|
|
||||||
}
|
|
||||||
// Paper end - entity effect API
|
|
||||||
+
|
|
||||||
+ // Purpur start - Purpur client support
|
|
||||||
+ @Override
|
|
||||||
+ public boolean usesPurpurClient() {
|
|
||||||
+ return getHandle().purpurClient;
|
|
||||||
+ }
|
|
||||||
+ // Purpur end - Purpur client support
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||||
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||||
|
@@ -3911,4 +_,13 @@
|
||||||
|
*/
|
||||||
|
void sendEntityEffect(org.bukkit.@NotNull EntityEffect effect, @NotNull Entity target);
|
||||||
|
// Paper end - entity effect API
|
||||||
|
+
|
||||||
|
+ // Purpur start
|
||||||
|
+ /**
|
||||||
|
+ * Allows you to get if player uses PurpurClient
|
||||||
|
+ *
|
||||||
|
+ * @return true if player uses PurpurClient
|
||||||
|
+ */
|
||||||
|
+ public boolean usesPurpurClient();
|
||||||
|
+ // Purpur end
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
@@ -393,6 +_,7 @@
|
||||||
|
public com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper - PlayerNaturallySpawnCreaturesEvent
|
||||||
|
public @Nullable String clientBrandName = null; // Paper - Brand support
|
||||||
|
public org.bukkit.event.player.PlayerQuitEvent.QuitReason quitReason = null; // Paper - Add API for quit reason; there are a lot of changes to do if we change all methods leading to the event
|
||||||
|
+ public boolean purpurClient = false; // Purpur - Purpur client support
|
||||||
|
|
||||||
|
// Paper start - rewrite chunk system
|
||||||
|
private ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader.PlayerChunkLoaderData chunkLoader;
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
|
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||||
|
@@ -51,6 +_,7 @@
|
||||||
|
public final java.util.Map<java.util.UUID, net.kyori.adventure.resource.ResourcePackCallback> packCallbacks = new java.util.concurrent.ConcurrentHashMap<>(); // Paper - adventure resource pack callbacks
|
||||||
|
private static final long KEEPALIVE_LIMIT = Long.getLong("paper.playerconnection.keepalive", 30) * 1000; // Paper - provide property to set keepalive limit
|
||||||
|
protected static final net.minecraft.resources.ResourceLocation MINECRAFT_BRAND = net.minecraft.resources.ResourceLocation.withDefaultNamespace("brand"); // Paper - Brand support
|
||||||
|
+ protected static final net.minecraft.resources.ResourceLocation PURPUR_CLIENT = net.minecraft.resources.ResourceLocation.fromNamespaceAndPath("purpur", "client"); // Purpur - Purpur client support
|
||||||
|
|
||||||
|
public ServerCommonPacketListenerImpl(MinecraftServer server, Connection connection, CommonListenerCookie cookie, net.minecraft.server.level.ServerPlayer player) { // CraftBukkit
|
||||||
|
this.server = server;
|
||||||
|
@@ -159,6 +_,13 @@
|
||||||
|
ServerGamePacketListenerImpl.LOGGER.error("Couldn't register custom payload", ex);
|
||||||
|
this.disconnect(Component.literal("Invalid payload REGISTER!"), org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause
|
||||||
|
}
|
||||||
|
+ // Purpur start - Purpur client support
|
||||||
|
+ } else if (identifier.equals(PURPUR_CLIENT)) {
|
||||||
|
+ try {
|
||||||
|
+ player.purpurClient = true;
|
||||||
|
+ } catch (Exception ignore) {
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - Purpur client support
|
||||||
|
} else if (identifier.equals(ServerCommonPacketListenerImpl.CUSTOM_UNREGISTER)) {
|
||||||
|
try {
|
||||||
|
String channels = payload.toString(com.google.common.base.Charsets.UTF_8);
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||||
|
@@ -3559,4 +_,10 @@
|
||||||
|
this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundEntityEventPacket(((CraftEntity) target).getHandle(), effect.getData()));
|
||||||
|
}
|
||||||
|
// Paper end - entity effect API
|
||||||
|
+ // Purpur start - Purpur client support
|
||||||
|
+ @Override
|
||||||
|
+ public boolean usesPurpurClient() {
|
||||||
|
+ return getHandle().purpurClient;
|
||||||
|
+ }
|
||||||
|
+ // Purpur end - Purpur client support
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user