mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-22 00:19:33 +00:00
Update Bladeren Protocol
This commit is contained in:
@@ -129,10 +129,10 @@ index e1c99d941c7bb954bf3ac83d5002dbf58fd833b0..4760b943da08771a42fcb22eba4d586d
|
||||
.withRequiredArg()
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..9bef683796d7b3580605943c437f5317f5b4632c
|
||||
index 0000000000000000000000000000000000000000..aad482669709aad45d803a43c0669478f2ec5b9b
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -0,0 +1,990 @@
|
||||
@@ -0,0 +1,998 @@
|
||||
+package top.leavesmc.leaves;
|
||||
+
|
||||
+import com.destroystokyo.paper.util.SneakyThrow;
|
||||
@@ -948,6 +948,14 @@ index 0000000000000000000000000000000000000000..9bef683796d7b3580605943c437f5317
|
||||
+ tickCommand = getBoolean("settings.modify.tick-command", tickCommand);
|
||||
+ }
|
||||
+
|
||||
+ public static boolean bladerenLeavesProtocol = true;
|
||||
+ private static void bladerenLeavesProtocol() {
|
||||
+ bladerenLeavesProtocol = getBoolean("settings.protocol.bladeren.protocol", bladerenLeavesProtocol);
|
||||
+ }
|
||||
+
|
||||
+ public static void registerLeavesFeatures() {
|
||||
+ }
|
||||
+
|
||||
+ public static final class WorldConfig {
|
||||
+
|
||||
+ public final String worldName;
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Bladeren mspt sync protocol
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 28b48043f621d931006ef36123ff5d1eaed7d040..0a486e22e87d6eb717caa1b530877236c9a0f285 100644
|
||||
index 5c09e2164a045346e0e2d4ce64408ac9209cf501..d47e29850462356e843591deba7e8a83f59faba0 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1611,6 +1611,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -16,33 +16,11 @@ index 28b48043f621d931006ef36123ff5d1eaed7d040..0a486e22e87d6eb717caa1b530877236
|
||||
|
||||
MinecraftTimings.tickablesTimer.startTiming(); // Spigot // Paper
|
||||
for (int i = 0; i < this.tickables.size(); ++i) {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 3d7e2654d67b9b61cf783e234e33576a03351413..6640cb8c04871bebeadc59f91db097124d06f801 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3666,6 +3666,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
if (top.leavesmc.leaves.LeavesConfig.leavesCarpetSupport && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.CarpetServerProtocol.PROTOCOL_ID)) {
|
||||
top.leavesmc.leaves.protocol.CarpetServerProtocol.handlePacket(player, packet);
|
||||
}
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.msptSyncProtocol && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.bladeren.MsptSyncProtocol.PROTOCOL_ID)) {
|
||||
+ top.leavesmc.leaves.protocol.bladeren.MsptSyncProtocol.handlePacket(player, packet);
|
||||
+ }
|
||||
} catch (Exception ex) {
|
||||
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
|
||||
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 13356860e13374227ac5559daf77fc4dc60e378d..9676ada06db5956cdc4489d07f4c031ae9372b06 100644
|
||||
index 13356860e13374227ac5559daf77fc4dc60e378d..163827eb405e407bca16b890c4ae3f8a4a927320 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -365,6 +365,7 @@ public abstract class PlayerList {
|
||||
top.leavesmc.leaves.protocol.JadeProtocol.onPlayerJoin(player); // Leaves - Jade
|
||||
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedIn(player); // Leaves - appleskin
|
||||
top.leavesmc.leaves.protocol.CarpetServerProtocol.onPlayerJoin(player); // Leaves - carpet
|
||||
+ top.leavesmc.leaves.protocol.bladeren.MsptSyncProtocol.onPlayerJoin(player); // Leaves - mspt sync
|
||||
|
||||
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
|
||||
|
||||
@@ -618,6 +619,7 @@ public abstract class PlayerList {
|
||||
@@ -618,6 +618,7 @@ public abstract class PlayerList {
|
||||
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer, net.kyori.adventure.text.Component leaveMessage) {
|
||||
top.leavesmc.leaves.protocol.BBORProtocol.onPlayerLoggedOut(entityplayer); // Leaves - bbor
|
||||
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedOut(entityplayer); // Leaves - appleskin
|
||||
@@ -50,12 +28,36 @@ index 13356860e13374227ac5559daf77fc4dc60e378d..9676ada06db5956cdc4489d07f4c031a
|
||||
// Paper end
|
||||
ServerLevel worldserver = entityplayer.serverLevel();
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 47b27712c6ed11fc5c2cd7de04482870207545e7..93054a59f14fee933a908944e93b462b5dae2ce6 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -470,6 +470,7 @@ public final class CraftServer implements Server {
|
||||
datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper
|
||||
top.leavesmc.leaves.protocol.PcaSyncProtocol.init(); // Leaves - pca
|
||||
top.leavesmc.leaves.protocol.JadeProtocol.init(); // Leaves - Jade
|
||||
+ top.leavesmc.leaves.protocol.bladeren.MsptSyncProtocol.init(); // Leaves - mspt
|
||||
}
|
||||
|
||||
public boolean getCommandBlockOverride(String command) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index e14aeb52a17ac174c22f95294708129db84a521b..a89cb107ed8c405548172f720b4481c2bf6950a8 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -845,6 +845,7 @@ public final class LeavesConfig {
|
||||
}
|
||||
|
||||
public static void registerLeavesFeatures() {
|
||||
+ LeavesFeatureSet.register(LeavesFeature.of("mspt_sync", msptSyncProtocol));
|
||||
}
|
||||
|
||||
public static final class WorldConfig {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java b/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f04ea3ad31ac8d9d820599a09c002d4c5db6104d
|
||||
index 0000000000000000000000000000000000000000..5c206ecc6aba1ef632467f85ea83f909486ced29
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java
|
||||
@@ -0,0 +1,67 @@
|
||||
@@ -0,0 +1,69 @@
|
||||
+package top.leavesmc.leaves.protocol.bladeren;
|
||||
+
|
||||
+import io.netty.buffer.Unpooled;
|
||||
@@ -77,7 +79,6 @@ index 0000000000000000000000000000000000000000..f04ea3ad31ac8d9d820599a09c002d4c
|
||||
+
|
||||
+ public static final String PROTOCOL_ID = "bladeren";
|
||||
+
|
||||
+ private static final ResourceLocation MSPT_SYNC_ENABLE = id("mspt_sync_enable");
|
||||
+ private static final ResourceLocation MSPT_SYNC = id("mspt_sync");
|
||||
+
|
||||
+ private static final List<ServerPlayer> players = new ArrayList<>();
|
||||
@@ -87,15 +88,18 @@ index 0000000000000000000000000000000000000000..f04ea3ad31ac8d9d820599a09c002d4c
|
||||
+ return new ResourceLocation(PROTOCOL_ID, path);
|
||||
+ }
|
||||
+
|
||||
+ public static void onPlayerJoin(@NotNull ServerPlayer player) {
|
||||
+ if (LeavesConfig.msptSyncProtocol) {
|
||||
+ FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
|
||||
+ ProtocolUtils.sendPayloadPacket(player, MSPT_SYNC_ENABLE, buf);
|
||||
+ public static void init() {
|
||||
+ LeavesProtocol.registerFeature("mspt_sync", (player, compoundTag) -> {
|
||||
+ if (compoundTag.getString("Value").equals("true")) {
|
||||
+ onPlayerSubmit(player);
|
||||
+ } else {
|
||||
+ onPlayerLoggedOut(player);
|
||||
+ }
|
||||
+ });
|
||||
+ }
|
||||
+
|
||||
+ public static void handlePacket(ServerPlayer player, @NotNull ServerboundCustomPayloadPacket packet) {
|
||||
+ if (packet.identifier.equals(MSPT_SYNC_ENABLE)) {
|
||||
+ public static void onPlayerSubmit(@NotNull ServerPlayer player) {
|
||||
+ if (LeavesConfig.msptSyncProtocol) {
|
||||
+ players.add(player);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
@@ -4,28 +4,65 @@ Date: Fri, 7 Jul 2023 16:50:06 +0800
|
||||
Subject: [PATCH] Leaves protocol
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 3d7e2654d67b9b61cf783e234e33576a03351413..f5e16e9f144824a78ccd4a9fa0a5c0f3364fdf5d 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3666,6 +3666,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
if (top.leavesmc.leaves.LeavesConfig.leavesCarpetSupport && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.CarpetServerProtocol.PROTOCOL_ID)) {
|
||||
top.leavesmc.leaves.protocol.CarpetServerProtocol.handlePacket(player, packet);
|
||||
}
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.bladerenLeavesProtocol && ProtocolUtils.isNamespacePacket(packet, top.leavesmc.leaves.protocol.bladeren.LeavesProtocol.PROTOCOL_ID)) {
|
||||
+ top.leavesmc.leaves.protocol.bladeren.LeavesProtocol.handlePacket(player, packet);
|
||||
+ }
|
||||
} catch (Exception ex) {
|
||||
ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex);
|
||||
this.disconnect("Invalid custom payload!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD);
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 9676ada06db5956cdc4489d07f4c031ae9372b06..5342cbb955cd6536004ca1c905fd9ab3bd9f7839 100644
|
||||
index 163827eb405e407bca16b890c4ae3f8a4a927320..bf0d945a6faa6346276e7a9bdd16dd1964bf03a4 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -366,6 +366,7 @@ public abstract class PlayerList {
|
||||
@@ -365,6 +365,7 @@ public abstract class PlayerList {
|
||||
top.leavesmc.leaves.protocol.JadeProtocol.onPlayerJoin(player); // Leaves - Jade
|
||||
top.leavesmc.leaves.protocol.AppleSkinProtocol.onPlayerLoggedIn(player); // Leaves - appleskin
|
||||
top.leavesmc.leaves.protocol.CarpetServerProtocol.onPlayerJoin(player); // Leaves - carpet
|
||||
top.leavesmc.leaves.protocol.bladeren.MsptSyncProtocol.onPlayerJoin(player); // Leaves - mspt sync
|
||||
+ top.leavesmc.leaves.protocol.bladeren.LeavesProtocol.onPlayerJoin(player); // Leaves - leaves protocol
|
||||
|
||||
final net.kyori.adventure.text.Component jm = playerJoinEvent.joinMessage();
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index a89cb107ed8c405548172f720b4481c2bf6950a8..1ce04475e600d527aaf31fab6cfa6bdb1a5ac2fb 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -16,6 +16,8 @@ import top.leavesmc.leaves.protocol.syncmatica.SyncmaticaProtocol;
|
||||
import top.leavesmc.leaves.util.MathUtils;
|
||||
import top.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRule;
|
||||
import top.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRules;
|
||||
+import top.leavesmc.leaves.protocol.bladeren.LeavesProtocol.LeavesFeatureSet;
|
||||
+import top.leavesmc.leaves.protocol.bladeren.LeavesProtocol.LeavesFeature;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@@ -75,6 +77,7 @@ public final class LeavesConfig {
|
||||
|
||||
LeavesConfig.load(config);
|
||||
registerCarpetRules();
|
||||
+ registerLeavesFeatures();
|
||||
|
||||
commands = new HashMap<>();
|
||||
commands.put("leaves", new LeavesCommand("leaves"));
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/protocol/bladeren/LeavesProtocol.java b/src/main/java/top/leavesmc/leaves/protocol/bladeren/LeavesProtocol.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..c03d70efd5b6d0b6640c9cc9dd194746cfd19ace
|
||||
index 0000000000000000000000000000000000000000..54553afa6a6a81d29bcbc6b502ce2d93cb7061c7
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/protocol/bladeren/LeavesProtocol.java
|
||||
@@ -0,0 +1,29 @@
|
||||
@@ -0,0 +1,111 @@
|
||||
+package top.leavesmc.leaves.protocol.bladeren;
|
||||
+
|
||||
+import io.netty.buffer.Unpooled;
|
||||
+import net.minecraft.nbt.CompoundTag;
|
||||
+import net.minecraft.network.FriendlyByteBuf;
|
||||
+import net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket;
|
||||
+import net.minecraft.resources.ResourceLocation;
|
||||
+import net.minecraft.server.level.ServerPlayer;
|
||||
+import org.jetbrains.annotations.Contract;
|
||||
@@ -33,21 +70,101 @@ index 0000000000000000000000000000000000000000..c03d70efd5b6d0b6640c9cc9dd194746
|
||||
+import top.leavesmc.leaves.LeavesConfig;
|
||||
+import top.leavesmc.leaves.util.ProtocolUtils;
|
||||
+
|
||||
+import java.util.HashMap;
|
||||
+import java.util.Map;
|
||||
+import java.util.function.BiConsumer;
|
||||
+
|
||||
+public class LeavesProtocol {
|
||||
+
|
||||
+ public static final String PROTOCOL_ID = "bladeren";
|
||||
+ public static final String PROTOCOL_VERSION = "1.0.0";
|
||||
+
|
||||
+ private static final ResourceLocation LAVA_RIPTIDE = id("lava_riptide");
|
||||
+ private static final ResourceLocation HELLO_ID = id("hello");
|
||||
+ private static final ResourceLocation FEATURE_MODIFY_ID = id("feature_modify");
|
||||
+
|
||||
+ private static final Map<String, BiConsumer<ServerPlayer, CompoundTag>> registeredFeatures = new HashMap<>();
|
||||
+
|
||||
+ @Contract("_ -> new")
|
||||
+ public static @NotNull ResourceLocation id(String path) {
|
||||
+ return new ResourceLocation(PROTOCOL_ID, path);
|
||||
+ }
|
||||
+
|
||||
+ public static void registerFeature(String name, BiConsumer<ServerPlayer, CompoundTag> consumer) {
|
||||
+ registeredFeatures.put(name, consumer);
|
||||
+ }
|
||||
+
|
||||
+ public static void handlePacket(ServerPlayer player, @NotNull ServerboundCustomPayloadPacket packet) {
|
||||
+ if (packet.identifier.equals(HELLO_ID)) {
|
||||
+ handleHello(player, packet.data);
|
||||
+ } else if (packet.identifier.equals(FEATURE_MODIFY_ID)) {
|
||||
+ handleModify(player, packet.data);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void handleModify(@NotNull ServerPlayer player, @NotNull FriendlyByteBuf data) {
|
||||
+ String name = data.readUtf();
|
||||
+ CompoundTag tag = data.readNbt();
|
||||
+
|
||||
+ if (registeredFeatures.containsKey(name)) {
|
||||
+ registeredFeatures.get(name).accept(player, tag);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static void handleHello(@NotNull ServerPlayer player, @NotNull FriendlyByteBuf data) {
|
||||
+ String clientVersion = data.readUtf(64);
|
||||
+ CompoundTag tag = data.readNbt();
|
||||
+
|
||||
+ if (tag != null) {
|
||||
+ CompoundTag featureNbt = tag.getCompound("Features");
|
||||
+ for (String name : featureNbt.getAllKeys()) {
|
||||
+ if (registeredFeatures.containsKey(name)) {
|
||||
+ registeredFeatures.get(name).accept(player, featureNbt.getCompound(name));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public static void onPlayerJoin(@NotNull ServerPlayer player) {
|
||||
+ // lava riptide
|
||||
+ if (LeavesConfig.bladerenLeavesProtocol) {
|
||||
+ FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer());
|
||||
+ buf.writeBoolean(LeavesConfig.lavaRiptide);
|
||||
+ ProtocolUtils.sendPayloadPacket(player, LAVA_RIPTIDE, buf);
|
||||
+ buf.writeUtf(PROTOCOL_VERSION);
|
||||
+
|
||||
+ CompoundTag tag = new CompoundTag();
|
||||
+ LeavesFeatureSet.writeNBT(tag);
|
||||
+ buf.writeNbt(tag);
|
||||
+
|
||||
+ ProtocolUtils.sendPayloadPacket(player, HELLO_ID, buf);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public static class LeavesFeatureSet {
|
||||
+
|
||||
+ private static final Map<String, LeavesFeature> features = new HashMap<>();
|
||||
+
|
||||
+ public static void writeNBT(@NotNull CompoundTag tag) {
|
||||
+ CompoundTag featureNbt = new CompoundTag();
|
||||
+ features.values().forEach(feature -> feature.writeNBT(featureNbt));
|
||||
+ tag.put("Features", featureNbt);
|
||||
+ }
|
||||
+
|
||||
+ public static void register(LeavesFeature feature) {
|
||||
+ features.put(feature.name, feature);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public record LeavesFeature(String name, String value) {
|
||||
+
|
||||
+ @NotNull
|
||||
+ @Contract("_, _ -> new")
|
||||
+ public static LeavesFeature of(String name, boolean value) {
|
||||
+ return new LeavesFeature(name, Boolean.toString(value));
|
||||
+ }
|
||||
+
|
||||
+ public void writeNBT(@NotNull CompoundTag rules) {
|
||||
+ CompoundTag rule = new CompoundTag();
|
||||
+ rule.putString("Feature", name);
|
||||
+ rule.putString("Value", value);
|
||||
+ rules.put(name, rule);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
|
||||
@@ -26,3 +26,15 @@ index 8078f127ff4b6e0aafb5804b9c02e237f79445b5..801f066878d6ffe5dabe01d20513db90
|
||||
return InteractionResultHolder.fail(itemstack);
|
||||
} else {
|
||||
user.startUsingItem(hand);
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1ce04475e600d527aaf31fab6cfa6bdb1a5ac2fb..7641ecc09a9795d48049731f1f0f0013981fcae1 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -849,6 +849,7 @@ public final class LeavesConfig {
|
||||
|
||||
public static void registerLeavesFeatures() {
|
||||
LeavesFeatureSet.register(LeavesFeature.of("mspt_sync", msptSyncProtocol));
|
||||
+ LeavesFeatureSet.register(LeavesFeature.of("lava_riptide", lavaRiptide));
|
||||
}
|
||||
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -92,7 +92,7 @@ index 2708251ebc1995e71fb0e5dca9e158a3005f8a8a..e28351b379677fec356b6efec2d882ee
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index a099364df3304df8092652e64bdb02d550c84b4f..1e14eefdce8633f196868f2309dd832b00b3373f 100644
|
||||
index 7641ecc09a9795d48049731f1f0f0013981fcae1..d23c064a51ac115e7269e80623b4e5bd23a8222f 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -11,6 +11,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
||||
@@ -103,7 +103,7 @@ index a099364df3304df8092652e64bdb02d550c84b4f..1e14eefdce8633f196868f2309dd832b
|
||||
import top.leavesmc.leaves.profile.LeavesMinecraftSessionService;
|
||||
import top.leavesmc.leaves.protocol.syncmatica.SyncmaticaProtocol;
|
||||
import top.leavesmc.leaves.util.MathUtils;
|
||||
@@ -83,6 +84,10 @@ public final class LeavesConfig {
|
||||
@@ -86,6 +87,10 @@ public final class LeavesConfig {
|
||||
commands.put("bot", new BotCommand("bot"));
|
||||
Actions.registerAll();
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ index 55ef6d5ffebe04e678dc89ec2740f031af361cb8..4c86d1836c8b4ac9c535cf5bccd71dec
|
||||
return ret;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 6640cb8c04871bebeadc59f91db097124d06f801..b3e893dde6a39e699f192c139fa1055321ec5809 100644
|
||||
index f5e16e9f144824a78ccd4a9fa0a5c0f3364fdf5d..43dc38afc03323ebf4192f58a7703402f9379ade 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -249,6 +249,7 @@ import org.bukkit.inventory.InventoryView;
|
||||
@@ -346,7 +346,7 @@ index 2ff578e4a953ffcf5176815ba8e3f06f73499989..bf082b9c3947d6037328526e5bfafe2b
|
||||
final String s;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 5342cbb955cd6536004ca1c905fd9ab3bd9f7839..5718574a8a258a9a11417667b3373b4631a1211c 100644
|
||||
index bf0d945a6faa6346276e7a9bdd16dd1964bf03a4..7c4dc9c1809ed2e4d62ec7b795f7cdf3178a99ca 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -134,6 +134,7 @@ import org.bukkit.event.player.PlayerRespawnEvent.RespawnReason;
|
||||
@@ -357,7 +357,7 @@ index 5342cbb955cd6536004ca1c905fd9ab3bd9f7839..5718574a8a258a9a11417667b3373b46
|
||||
import top.leavesmc.leaves.util.ReturnPortalManager; // Leaves - return portal fix
|
||||
|
||||
public abstract class PlayerList {
|
||||
@@ -737,7 +738,7 @@ public abstract class PlayerList {
|
||||
@@ -736,7 +737,7 @@ public abstract class PlayerList {
|
||||
while (iterator.hasNext()) {
|
||||
entityplayer = (ServerPlayer) iterator.next();
|
||||
this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved
|
||||
|
||||
@@ -18,10 +18,10 @@ index e0c3a4ba27e21c3692e601acd0af60873bcbb84c..b9fcf49ed88c62265d9aa8926c1228b9
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1e14eefdce8633f196868f2309dd832b00b3373f..9f95c37eca4f732e8ed15abef206c37b8afa71db 100644
|
||||
index d23c064a51ac115e7269e80623b4e5bd23a8222f..bef6f1223e6f3f96435635324ded2b7f23359a62 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -605,6 +605,7 @@ public final class LeavesConfig {
|
||||
@@ -608,6 +608,7 @@ public final class LeavesConfig {
|
||||
|
||||
public static void registerCarpetRules() {
|
||||
CarpetRules.register(CarpetRule.of("carpet", "creativeNoClip", creativeNoClip));
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Leaves Auto Update
|
||||
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 9f95c37eca4f732e8ed15abef206c37b8afa71db..9d904fac3fc556b398d5dc53d6597f6c9f8a9dda 100644
|
||||
index bef6f1223e6f3f96435635324ded2b7f23359a62..5c1c8b25ac7b37a6392b55ea8c10788084be23dc 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -14,6 +14,7 @@ import top.leavesmc.leaves.bot.agent.Actions;
|
||||
@@ -16,7 +16,7 @@ index 9f95c37eca4f732e8ed15abef206c37b8afa71db..9d904fac3fc556b398d5dc53d6597f6c
|
||||
import top.leavesmc.leaves.util.MathUtils;
|
||||
import top.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRule;
|
||||
import top.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRules;
|
||||
@@ -820,6 +821,7 @@ public final class LeavesConfig {
|
||||
@@ -823,6 +824,7 @@ public final class LeavesConfig {
|
||||
private static void autoUpdate() {
|
||||
autoUpdate = getBoolean("settings.misc.auto-update.enable", autoUpdate);
|
||||
autoUpdateTime = getList("settings.misc.auto-update.time", autoUpdateTime);
|
||||
|
||||
@@ -115,7 +115,7 @@ index fd9e85dab7c511873824cac56a270ff435792292..257e51570ed08660613895f5a1eccbee
|
||||
}
|
||||
// Leaves end - bot can't get advancement
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc63019761438d 100644
|
||||
index 7c4dc9c1809ed2e4d62ec7b795f7cdf3178a99ca..f76142b61dc44ebf6312a3027fa9b66ff2a37653 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -136,6 +136,7 @@ import org.bukkit.event.player.PlayerSpawnChangeEvent;
|
||||
@@ -251,7 +251,7 @@ index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc6301
|
||||
this.playersByName.put(player.getScoreboardName().toLowerCase(java.util.Locale.ROOT), player); // Spigot
|
||||
this.playersByUUID.put(player.getUUID(), player);
|
||||
// this.broadcastAll(ClientboundPlayerInfoUpdatePacket.createPlayerInitializing(List.of(entityplayer))); // CraftBukkit - replaced with loop below
|
||||
@@ -400,6 +505,12 @@ public abstract class PlayerList {
|
||||
@@ -399,6 +504,12 @@ public abstract class PlayerList {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -264,7 +264,7 @@ index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc6301
|
||||
onlinePlayers.add(entityplayer1); // Paper - use single player info update packet
|
||||
}
|
||||
// Paper start - use single player info update packet
|
||||
@@ -614,6 +725,43 @@ public abstract class PlayerList {
|
||||
@@ -613,6 +724,43 @@ public abstract class PlayerList {
|
||||
|
||||
}
|
||||
|
||||
@@ -308,7 +308,7 @@ index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc6301
|
||||
public net.kyori.adventure.text.Component remove(ServerPlayer entityplayer) { // CraftBukkit - return string // Paper - return Component
|
||||
// Paper start
|
||||
return this.remove(entityplayer, net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : PaperAdventure.asAdventure(entityplayer.getDisplayName())));
|
||||
@@ -684,6 +832,7 @@ public abstract class PlayerList {
|
||||
@@ -683,6 +831,7 @@ public abstract class PlayerList {
|
||||
entityplayer.retireScheduler(); // Paper - Folia schedulers
|
||||
entityplayer.getAdvancements().stopListening();
|
||||
this.players.remove(entityplayer);
|
||||
@@ -317,7 +317,7 @@ index 5718574a8a258a9a11417667b3373b4631a1211c..2f1c56de20a77d7ca5f424148cbc6301
|
||||
this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer);
|
||||
UUID uuid = entityplayer.getUUID();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 47b27712c6ed11fc5c2cd7de04482870207545e7..0644273b83226d5a794e8d9517254b4c1febdfdd 100644
|
||||
index 93054a59f14fee933a908944e93b462b5dae2ce6..9f8981989d9f650ccdbd8b2f2a76eeedfa9e0008 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -261,6 +261,7 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
|
||||
@@ -345,7 +345,7 @@ index 47b27712c6ed11fc5c2cd7de04482870207545e7..0644273b83226d5a794e8d9517254b4c
|
||||
@Override
|
||||
public CraftPlayer apply(ServerPlayer player) {
|
||||
return player.getBukkitEntity();
|
||||
@@ -3193,4 +3195,11 @@ public final class CraftServer implements Server {
|
||||
@@ -3194,4 +3196,11 @@ public final class CraftServer implements Server {
|
||||
return botManager;
|
||||
}
|
||||
// Leaves end - Bot API
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Leaves tick command
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 0a486e22e87d6eb717caa1b530877236c9a0f285..2cc285dc1b587ddd03565658cca35b7b58736399 100644
|
||||
index d47e29850462356e843591deba7e8a83f59faba0..5f61f4861254fb05f069f8e95a3e84c4109fe5c2 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -194,6 +194,7 @@ import org.bukkit.event.server.ServerLoadEvent;
|
||||
@@ -230,7 +230,7 @@ index 0000000000000000000000000000000000000000..162c3c005130bfa07c7b924015356430
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java b/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java
|
||||
index f04ea3ad31ac8d9d820599a09c002d4c5db6104d..93478c3163910eb190e4fd0aded51ae0e31d6be3 100644
|
||||
index 5c206ecc6aba1ef632467f85ea83f909486ced29..6f53317f392963e5041ce816841141b4c3f08e47 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/protocol/bladeren/MsptSyncProtocol.java
|
||||
@@ -10,6 +10,7 @@ import org.jetbrains.annotations.Contract;
|
||||
@@ -241,7 +241,7 @@ index f04ea3ad31ac8d9d820599a09c002d4c5db6104d..93478c3163910eb190e4fd0aded51ae0
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -61,6 +62,11 @@ public class MsptSyncProtocol {
|
||||
@@ -63,6 +64,11 @@ public class MsptSyncProtocol {
|
||||
buf.writeDouble(mspt);
|
||||
buf.writeDouble(tps);
|
||||
players.forEach(player -> ProtocolUtils.sendPayloadPacket(player, MSPT_SYNC, buf));
|
||||
|
||||
@@ -878,7 +878,7 @@ index 9c7fb1b7c2ff458e72bdcfa80c49252cd78e7d14..e5622ec12fc930f1f17b599c486366cf
|
||||
// Leaves start - update suppression crash fix
|
||||
} catch (top.leavesmc.leaves.util.UpdateSuppressionException exception) {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 2cc285dc1b587ddd03565658cca35b7b58736399..f3a6aa97a64b4bf3e83f5c749da8c66d8b3a09ee 100644
|
||||
index 5f61f4861254fb05f069f8e95a3e84c4109fe5c2..fba016014ffc628887dc873cfa54f8c76a72c7ef 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -3,9 +3,6 @@ package net.minecraft.server;
|
||||
@@ -1683,7 +1683,7 @@ index 4c86d1836c8b4ac9c535cf5bccd71decf996278b..9c90318d1b0dca4d58ceb705a6a377fd
|
||||
|
||||
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index b3e893dde6a39e699f192c139fa1055321ec5809..a5de3f456e10fc62a8bd196ab21bd51d7de0904e 100644
|
||||
index 43dc38afc03323ebf4192f58a7703402f9379ade..e22cf5ed3c905d0536cad7ac23b7d94f755aa518 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2588,7 +2588,6 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
@@ -1712,7 +1712,7 @@ index b3e893dde6a39e699f192c139fa1055321ec5809..a5de3f456e10fc62a8bd196ab21bd51d
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 2f1c56de20a77d7ca5f424148cbc63019761438d..42f197515d8a541da6240b9191b916a9f494ed41 100644
|
||||
index f76142b61dc44ebf6312a3027fa9b66ff2a37653..916c159fdd3d9e7300d0a50adbc31ec839b44ad8 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1,6 +1,5 @@
|
||||
@@ -1722,7 +1722,7 @@ index 2f1c56de20a77d7ca5f424148cbc63019761438d..42f197515d8a541da6240b9191b916a9
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.common.collect.Sets;
|
||||
@@ -1419,7 +1418,6 @@ public abstract class PlayerList {
|
||||
@@ -1418,7 +1417,6 @@ public abstract class PlayerList {
|
||||
|
||||
public void saveAll(int interval) {
|
||||
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
|
||||
@@ -1730,7 +1730,7 @@ index 2f1c56de20a77d7ca5f424148cbc63019761438d..42f197515d8a541da6240b9191b916a9
|
||||
int numSaved = 0;
|
||||
long now = MinecraftServer.currentTick;
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
@@ -1430,7 +1428,6 @@ public abstract class PlayerList {
|
||||
@@ -1429,7 +1427,6 @@ public abstract class PlayerList {
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user