From 2d0b0501a5ae89fcc10f57a0646cec9e08078527 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 21 Dec 2019 02:01:04 -0600 Subject: [PATCH] Really fix riding mobs (no client mod needed) --- patches/server/0010-Integrate-ridables.patch | 13 +-- ...eck-for-PurpurClient-for-riding-mobs.patch | 102 ------------------ 2 files changed, 7 insertions(+), 108 deletions(-) delete mode 100644 patches/server/0091-Check-for-PurpurClient-for-riding-mobs.patch diff --git a/patches/server/0010-Integrate-ridables.patch b/patches/server/0010-Integrate-ridables.patch index 4b75b471a..47dfa7b23 100644 --- a/patches/server/0010-Integrate-ridables.patch +++ b/patches/server/0010-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From 84127fe99d1b2d97fbc22300ae017c72fdb0627f Mon Sep 17 00:00:00 2001 +From eb9bf7c8e7ca877d3461bd56c6ade52c42f3a7c7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -77,7 +77,7 @@ Subject: [PATCH] Integrate ridables .../server/EntityZombieVillager.java | 3 +- src/main/java/net/minecraft/server/Vec3D.java | 1 + .../java/net/pl3x/purpur/PurpurConfig.java | 124 ++++++++++++++++++ - .../purpur/controller/ControllerLookWASD.java | 74 +++++++++++ + .../purpur/controller/ControllerLookWASD.java | 75 +++++++++++ .../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++ .../controller/ControllerMoveWASDFlying.java | 62 +++++++++ .../ControllerMoveWASDFlyingWithSpacebar.java | 65 +++++++++ @@ -85,7 +85,7 @@ Subject: [PATCH] Integrate ridables .../pathfinder/PathfinderGoalHasRider.java | 20 +++ .../craftbukkit/entity/CraftLivingEntity.java | 10 ++ .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ - 81 files changed, 1360 insertions(+), 124 deletions(-) + 81 files changed, 1361 insertions(+), 124 deletions(-) create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -2997,10 +2997,10 @@ index 960361ff7..c4955fae6 100644 } diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java new file mode 100644 -index 000000000..99e184d36 +index 000000000..7c79e23d3 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java -@@ -0,0 +1,74 @@ +@@ -0,0 +1,75 @@ +package net.pl3x.purpur.controller; + +import net.minecraft.server.ControllerLook; @@ -3045,7 +3045,8 @@ index 000000000..99e184d36 + entity.pitch = normalizePitch(pitch + pitchOffset); + + entity.getTracker().broadcast(new PacketPlayOutEntity -+ .PacketPlayOutEntityLook(entity.getId(), ++ .PacketPlayOutRelEntityMoveLook(entity.getId(), ++ (short) 0, (short) 0, (short) 0, + (byte) MathHelper.d(entity.yaw * 256.0F / 360.0F), + (byte) MathHelper.d(entity.pitch * 256.0F / 360.0F), + entity.onGround)); diff --git a/patches/server/0091-Check-for-PurpurClient-for-riding-mobs.patch b/patches/server/0091-Check-for-PurpurClient-for-riding-mobs.patch deleted file mode 100644 index 726064374..000000000 --- a/patches/server/0091-Check-for-PurpurClient-for-riding-mobs.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 2f6c2fb4db5eda2d786d13a0894e7e5c5e4bc572 Mon Sep 17 00:00:00 2001 -From: William Blake Galbreath -Date: Thu, 19 Dec 2019 18:09:40 -0600 -Subject: [PATCH] Check for PurpurClient for riding mobs - ---- - src/main/java/net/minecraft/server/EntityHuman.java | 1 + - src/main/java/net/minecraft/server/EntityInsentient.java | 6 ++++++ - src/main/java/net/minecraft/server/PlayerConnection.java | 9 +++++++++ - src/main/java/net/pl3x/purpur/PurpurConfig.java | 6 ++++++ - 4 files changed, 22 insertions(+) - -diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index cb5f51638..9b84792ea 100644 ---- a/src/main/java/net/minecraft/server/EntityHuman.java -+++ b/src/main/java/net/minecraft/server/EntityHuman.java -@@ -78,6 +78,7 @@ public abstract class EntityHuman extends EntityLiving { - // Paper start - public boolean affectsSpawning = true; - // Paper end -+ public boolean isUsingPurpurClient = false; // Purpur - - // CraftBukkit start - public boolean fauxSleeping; -diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index f9bbc0be4..1ec325f29 100644 ---- a/src/main/java/net/minecraft/server/EntityInsentient.java -+++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -1407,6 +1407,12 @@ public abstract class EntityInsentient extends EntityLiving { - entityhuman.getBukkitEntity().sendMessage("You cannot mount that mob"); - return false; - } -+ if (!entityhuman.isUsingPurpurClient) { -+ if (net.pl3x.purpur.PurpurConfig.ridablesNoClientModWarning != null && !net.pl3x.purpur.PurpurConfig.ridablesNoClientModWarning.isEmpty()) { -+ entityhuman.sendMessage(new ChatMessage(net.pl3x.purpur.PurpurConfig.ridablesNoClientModWarning)); -+ } -+ return false; -+ } - return mountTo(entityhuman); - } - -diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a8e053b9f..6578af934 100644 ---- a/src/main/java/net/minecraft/server/PlayerConnection.java -+++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -2735,6 +2735,7 @@ public class PlayerConnection implements PacketListenerPlayIn { - // CraftBukkit start - private static final MinecraftKey CUSTOM_REGISTER = new MinecraftKey("register"); - private static final MinecraftKey CUSTOM_UNREGISTER = new MinecraftKey("unregister"); -+ private static final MinecraftKey PURPUR_CLIENT = new MinecraftKey("purpurclient", "protocol"); // Purpur - - @Override - public void a(PacketPlayInCustomPayload packetplayincustompayload) { -@@ -2759,6 +2760,14 @@ public class PlayerConnection implements PacketListenerPlayIn { - PlayerConnection.LOGGER.error("Couldn\'t unregister custom payload", ex); - this.disconnect("Invalid payload UNREGISTER!"); - } -+ // Purpur start -+ } else if (packetplayincustompayload.tag.equals(PURPUR_CLIENT)) { -+ try { -+ String protocolVersion = packetplayincustompayload.data.toString(com.google.common.base.Charsets.UTF_8); -+ player.isUsingPurpurClient = true; -+ } catch (Exception ignore) { -+ } -+ // Purpur end - } else { - try { - byte[] data = new byte[packetplayincustompayload.data.readableBytes()]; -diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 86600fce0..f381e2ab4 100644 ---- a/src/main/java/net/pl3x/purpur/PurpurConfig.java -+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -7,6 +7,7 @@ import net.minecraft.server.IRegistry; - import net.minecraft.server.MinecraftKey; - import net.minecraft.server.MinecraftServer; - import org.bukkit.Bukkit; -+import org.bukkit.ChatColor; - import org.bukkit.command.Command; - import org.bukkit.configuration.ConfigurationSection; - import org.bukkit.configuration.InvalidConfigurationException; -@@ -396,6 +397,7 @@ public class PurpurConfig { - public static boolean ridableZombie = true; - public static boolean ridableHusk = true; - public static boolean ridableZombieVillager = true; -+ public static String ridablesNoClientModWarning = "&cYou must have the PurpurClient mod to ride this mob"; - private static void enableRidableMobs() { - ridableBat = getBoolean("settings.ridable.bat", ridableBat); - ridableBee = getBoolean("settings.ridable.bee", ridableBee); -@@ -455,6 +457,10 @@ public class PurpurConfig { - ridableZombie = getBoolean("settings.ridable.zombie", ridableZombie); - ridableZombiePigman = getBoolean("settings.ridable.zombie_pigman", ridableZombiePigman); - ridableZombieVillager = getBoolean("settings.ridable.zombie_villager", ridableZombieVillager); -+ ridablesNoClientModWarning = getString("settings.ridable.no-client-mod-warning", ridablesNoClientModWarning); -+ if (ridablesNoClientModWarning != null && !ridablesNoClientModWarning.isEmpty()) { -+ ridablesNoClientModWarning = ChatColor.translateAlternateColorCodes('&', ridablesNoClientModWarning); -+ } - } - - public static boolean controllableMinecarts = true; --- -2.24.0.rc1 -