From e01facb2a37bf4efab900f7adbb53c0550d67e0b Mon Sep 17 00:00:00 2001 From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com> Date: Tue, 13 May 2025 05:20:20 -0400 Subject: [PATCH] Update Configurable unknown command message patch to follow the vanilla * Add to be more configurable * Fix for custom brigadier exception message #319 --- ...Configurable-unknown-command-message.patch | 92 ++++++++++--------- ...yList-implementation-to-BasicEntity.patch} | 0 ...heck-inside-blocks-and-traverse-blo.patch} | 6 +- ...ol-Core.patch => 0164-Protocol-Core.patch} | 0 ... => 0165-reduce-PlayerChunk-Updates.patch} | 0 ... 0166-async-switch-connection-state.patch} | 2 +- ...timise-BlockEntities-tickersInLevel.patch} | 0 ...e-cactus-can-even-survive-being-pla.patch} | 0 ...0169-flush-location-while-knockback.patch} | 0 ...tch => 0170-Only-tick-items-at-hand.patch} | 0 ...art-sort-items-in-NearestItemSensor.patch} | 0 ...172-Optimise-player-movement-checks.patch} | 4 +- ...=> 0173-Remove-streams-in-MobSensor.patch} | 0 ...74-Remove-streams-in-TemptingSensor.patch} | 0 ...tion.patch => 0175-paw-optimization.patch} | 12 +-- .../modules/misc/UnknownCommandMessage.java | 10 +- 16 files changed, 68 insertions(+), 58 deletions(-) rename leaf-server/minecraft-patches/features/{0163-Sakura-copy-EntityList-implementation-to-BasicEntity.patch => 0162-Sakura-copy-EntityList-implementation-to-BasicEntity.patch} (100%) rename leaf-server/minecraft-patches/features/{0164-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch => 0163-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch} (94%) rename leaf-server/minecraft-patches/features/{0165-Protocol-Core.patch => 0164-Protocol-Core.patch} (100%) rename leaf-server/minecraft-patches/features/{0166-reduce-PlayerChunk-Updates.patch => 0165-reduce-PlayerChunk-Updates.patch} (100%) rename leaf-server/minecraft-patches/features/{0167-async-switch-connection-state.patch => 0166-async-switch-connection-state.patch} (99%) rename leaf-server/minecraft-patches/features/{0168-Optimise-BlockEntities-tickersInLevel.patch => 0167-Optimise-BlockEntities-tickersInLevel.patch} (100%) rename leaf-server/minecraft-patches/features/{0169-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch => 0168-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch} (100%) rename leaf-server/minecraft-patches/features/{0170-flush-location-while-knockback.patch => 0169-flush-location-while-knockback.patch} (100%) rename leaf-server/minecraft-patches/features/{0171-Only-tick-items-at-hand.patch => 0170-Only-tick-items-at-hand.patch} (100%) rename leaf-server/minecraft-patches/features/{0172-Smart-sort-items-in-NearestItemSensor.patch => 0171-Smart-sort-items-in-NearestItemSensor.patch} (100%) rename leaf-server/minecraft-patches/features/{0173-Optimise-player-movement-checks.patch => 0172-Optimise-player-movement-checks.patch} (84%) rename leaf-server/minecraft-patches/features/{0174-Remove-streams-in-MobSensor.patch => 0173-Remove-streams-in-MobSensor.patch} (100%) rename leaf-server/minecraft-patches/features/{0175-Remove-streams-in-TemptingSensor.patch => 0174-Remove-streams-in-TemptingSensor.patch} (100%) rename leaf-server/minecraft-patches/features/{0162-paw-optimization.patch => 0175-paw-optimization.patch} (95%) diff --git a/leaf-server/minecraft-patches/features/0055-Configurable-unknown-command-message.patch b/leaf-server/minecraft-patches/features/0055-Configurable-unknown-command-message.patch index 24d85d98..3339f433 100644 --- a/leaf-server/minecraft-patches/features/0055-Configurable-unknown-command-message.patch +++ b/leaf-server/minecraft-patches/features/0055-Configurable-unknown-command-message.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable unknown command message diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java -index fb18f69cb26132fc8c53b185454c6aadb8a5f7e5..eff6d524c8acfc62d1fcf6b5552754e794a22735 100644 +index 8b9374ee6df71228bb8ea22661622a15cf3bc350..59e5f93df54abc56329b38340882dade7d7104a3 100644 --- a/net/minecraft/commands/Commands.java +++ b/net/minecraft/commands/Commands.java @@ -404,31 +404,9 @@ public class Commands { @@ -13,7 +13,7 @@ index fb18f69cb26132fc8c53b185454c6aadb8a5f7e5..eff6d524c8acfc62d1fcf6b5552754e7 final net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text(); // source.sendFailure(ComponentUtils.fromMessage(var7.getRawMessage())); - builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.command.brigadier.MessageComponentSerializer.message().deserialize(var7.getRawMessage())); -+ final net.kyori.adventure.text.TextComponent message = getUnknownCommandMessage(builder, var7, label); // Leaf - Configurable unknown command message ++ final net.kyori.adventure.text.Component message = getUnknownCommandMessage(builder, var7, label); // Leaf - Configurable unknown command message // Paper end - Add UnknownCommandEvent - if (var7.getInput() != null && var7.getCursor() >= 0) { - int min = Math.min(var7.getInput().length(), var7.getCursor()); @@ -42,59 +42,65 @@ index fb18f69cb26132fc8c53b185454c6aadb8a5f7e5..eff6d524c8acfc62d1fcf6b5552754e7 org.bukkit.Bukkit.getServer().getPluginManager().callEvent(event); if (event.message() != null) { source.sendFailure(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.message()), false); -@@ -680,6 +658,86 @@ public class Commands { +@@ -680,6 +658,92 @@ public class Commands { }; } + // Leaf start - Configurable unknown command message -+ private static net.kyori.adventure.text.TextComponent getUnknownCommandMessage( ++ private static net.kyori.adventure.text.Component getUnknownCommandMessage( + net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException commandSyntaxException, String label + ) { + String rawMessage = org.dreeam.leaf.config.modules.misc.UnknownCommandMessage.unknownCommandMessage; + -+ if (!"default".equals(rawMessage)) { -+ final String input = commandSyntaxException.getInput(); -+ final int cursor = commandSyntaxException.getCursor(); -+ -+ if (rawMessage.contains("") && input != null && cursor >= 0) { -+ final int min = Math.min(input.length(), cursor); -+ final net.kyori.adventure.text.TextComponent.Builder detail = net.kyori.adventure.text.Component.text(); -+ final net.kyori.adventure.text.Component context = net.kyori.adventure.text.Component.translatable("command.context.here") -+ .color(net.kyori.adventure.text.format.NamedTextColor.RED) -+ .decorate(net.kyori.adventure.text.format.TextDecoration.ITALIC); -+ final net.kyori.adventure.text.event.ClickEvent event = net.kyori.adventure.text.event.ClickEvent.suggestCommand("/" + label); -+ -+ detail.color(net.kyori.adventure.text.format.NamedTextColor.GRAY); -+ -+ if (min > 10) { -+ detail.append(net.kyori.adventure.text.Component.text("...")); -+ } -+ -+ detail.append(net.kyori.adventure.text.Component.text(input.substring(Math.max(0, min - 10), min))); -+ if (min < input.length()) { -+ net.kyori.adventure.text.Component commandInput = net.kyori.adventure.text.Component.text(input.substring(min)) -+ .color(net.kyori.adventure.text.format.NamedTextColor.RED) -+ .decorate(net.kyori.adventure.text.format.TextDecoration.UNDERLINED); -+ -+ detail.append(commandInput); -+ } -+ -+ detail.append(context); -+ detail.clickEvent(event); -+ -+ builder.append(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(rawMessage, net.kyori.adventure.text.minimessage.tag.resolver.Placeholder.component("detail", detail.build()))); -+ } else { -+ rawMessage = rawMessage.replace("", ""); -+ builder.append(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(rawMessage)); -+ } -+ -+ return builder.build(); ++ if ("default".equals(rawMessage)) { ++ return getVanillaUnknownCommandMessage(builder, commandSyntaxException, label); + } + -+ return getVanillaUnknownCommandMessage(builder, commandSyntaxException, label); ++ net.kyori.adventure.text.Component messageComponent = null; ++ net.kyori.adventure.text.Component detailComponent = null; ++ ++ if (rawMessage.contains("")) { ++ messageComponent = io.papermc.paper.command.brigadier.MessageComponentSerializer.message().deserialize(commandSyntaxException.getRawMessage()); ++ } ++ ++ final String input = commandSyntaxException.getInput(); ++ final int cursor = commandSyntaxException.getCursor(); ++ ++ if (rawMessage.contains("") && input != null && cursor >= 0) { ++ final int min = Math.min(input.length(), cursor); ++ final net.kyori.adventure.text.TextComponent.Builder detail = net.kyori.adventure.text.Component.text(); ++ final net.kyori.adventure.text.Component context = net.kyori.adventure.text.Component.translatable("command.context.here") ++ .color(net.kyori.adventure.text.format.NamedTextColor.RED) ++ .decorate(net.kyori.adventure.text.format.TextDecoration.ITALIC); ++ final net.kyori.adventure.text.event.ClickEvent event = net.kyori.adventure.text.event.ClickEvent.suggestCommand("/" + label); ++ ++ detail.color(net.kyori.adventure.text.format.NamedTextColor.GRAY); ++ ++ if (min > 10) { ++ detail.append(net.kyori.adventure.text.Component.text("...")); ++ } ++ ++ detail.append(net.kyori.adventure.text.Component.text(input.substring(Math.max(0, min - 10), min))); ++ if (min < input.length()) { ++ net.kyori.adventure.text.Component commandInput = net.kyori.adventure.text.Component.text(input.substring(min)) ++ .color(net.kyori.adventure.text.format.NamedTextColor.RED) ++ .decorate(net.kyori.adventure.text.format.TextDecoration.UNDERLINED); ++ ++ detail.append(commandInput); ++ } ++ ++ detail.append(context); ++ detail.clickEvent(event); ++ ++ detailComponent = detail.build(); ++ } ++ ++ return builder.append(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(rawMessage)).build() ++ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("").replacement(messageComponent).build()) ++ .replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("").replacement(detailComponent).build()); + } + -+ private static net.kyori.adventure.text.TextComponent getVanillaUnknownCommandMessage( ++ private static net.kyori.adventure.text.Component getVanillaUnknownCommandMessage( + net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException var7, String label + ) { + builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.command.brigadier.MessageComponentSerializer.message().deserialize(var7.getRawMessage())); diff --git a/leaf-server/minecraft-patches/features/0163-Sakura-copy-EntityList-implementation-to-BasicEntity.patch b/leaf-server/minecraft-patches/features/0162-Sakura-copy-EntityList-implementation-to-BasicEntity.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0163-Sakura-copy-EntityList-implementation-to-BasicEntity.patch rename to leaf-server/minecraft-patches/features/0162-Sakura-copy-EntityList-implementation-to-BasicEntity.patch diff --git a/leaf-server/minecraft-patches/features/0164-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch b/leaf-server/minecraft-patches/features/0163-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch similarity index 94% rename from leaf-server/minecraft-patches/features/0164-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch rename to leaf-server/minecraft-patches/features/0163-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch index e3ef4896..c678193f 100644 --- a/leaf-server/minecraft-patches/features/0164-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch +++ b/leaf-server/minecraft-patches/features/0163-Sakura-Optimise-check-inside-blocks-and-traverse-blo.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Sakura: Optimise-check-inside-blocks-and-traverse-blocks diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 4221e5322fa3a3ff6ab53946aa71d54144d2c4b2..4474639b0411236e208c542973084864365c544c 100644 +index 2c15f8f0be8ba03f2c9481bed0d46aad738848a0..ad674cf202c61b50f568a36777cee196627b402c 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -1670,6 +1670,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1711,6 +1711,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess private void checkInsideBlocks(List movements, Set blocksInside) { if (this.isAffectedByBlocks()) { LongSet set = this.visitedBlocks; @@ -20,7 +20,7 @@ index 4221e5322fa3a3ff6ab53946aa71d54144d2c4b2..4474639b0411236e208c542973084864 for (Entity.Movement movement : movements) { Vec3 vec3 = movement.from(); -@@ -1681,7 +1686,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1722,7 +1727,19 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess return; } diff --git a/leaf-server/minecraft-patches/features/0165-Protocol-Core.patch b/leaf-server/minecraft-patches/features/0164-Protocol-Core.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0165-Protocol-Core.patch rename to leaf-server/minecraft-patches/features/0164-Protocol-Core.patch diff --git a/leaf-server/minecraft-patches/features/0166-reduce-PlayerChunk-Updates.patch b/leaf-server/minecraft-patches/features/0165-reduce-PlayerChunk-Updates.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0166-reduce-PlayerChunk-Updates.patch rename to leaf-server/minecraft-patches/features/0165-reduce-PlayerChunk-Updates.patch diff --git a/leaf-server/minecraft-patches/features/0167-async-switch-connection-state.patch b/leaf-server/minecraft-patches/features/0166-async-switch-connection-state.patch similarity index 99% rename from leaf-server/minecraft-patches/features/0167-async-switch-connection-state.patch rename to leaf-server/minecraft-patches/features/0166-async-switch-connection-state.patch index 01cbb5fe..03b4f3b5 100644 --- a/leaf-server/minecraft-patches/features/0167-async-switch-connection-state.patch +++ b/leaf-server/minecraft-patches/features/0166-async-switch-connection-state.patch @@ -5,7 +5,7 @@ Subject: [PATCH] async switch connection state diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java -index f998cf8d70302a21289de4d84b46d322d0b8a8fe..32f26640664135c9f7f45f8b204b7ff412fe343e 100644 +index f3e9de8716f5e1a72ec465ee897c8f0413f7b1c3..3a82e1e510029576485427af9fd705b37c5f6e20 100644 --- a/net/minecraft/network/Connection.java +++ b/net/minecraft/network/Connection.java @@ -342,6 +342,11 @@ public class Connection extends SimpleChannelInboundHandler> { diff --git a/leaf-server/minecraft-patches/features/0168-Optimise-BlockEntities-tickersInLevel.patch b/leaf-server/minecraft-patches/features/0167-Optimise-BlockEntities-tickersInLevel.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0168-Optimise-BlockEntities-tickersInLevel.patch rename to leaf-server/minecraft-patches/features/0167-Optimise-BlockEntities-tickersInLevel.patch diff --git a/leaf-server/minecraft-patches/features/0169-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch b/leaf-server/minecraft-patches/features/0168-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0169-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch rename to leaf-server/minecraft-patches/features/0168-Pluto-Check-if-the-cactus-can-even-survive-being-pla.patch diff --git a/leaf-server/minecraft-patches/features/0170-flush-location-while-knockback.patch b/leaf-server/minecraft-patches/features/0169-flush-location-while-knockback.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0170-flush-location-while-knockback.patch rename to leaf-server/minecraft-patches/features/0169-flush-location-while-knockback.patch diff --git a/leaf-server/minecraft-patches/features/0171-Only-tick-items-at-hand.patch b/leaf-server/minecraft-patches/features/0170-Only-tick-items-at-hand.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0171-Only-tick-items-at-hand.patch rename to leaf-server/minecraft-patches/features/0170-Only-tick-items-at-hand.patch diff --git a/leaf-server/minecraft-patches/features/0172-Smart-sort-items-in-NearestItemSensor.patch b/leaf-server/minecraft-patches/features/0171-Smart-sort-items-in-NearestItemSensor.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0172-Smart-sort-items-in-NearestItemSensor.patch rename to leaf-server/minecraft-patches/features/0171-Smart-sort-items-in-NearestItemSensor.patch diff --git a/leaf-server/minecraft-patches/features/0173-Optimise-player-movement-checks.patch b/leaf-server/minecraft-patches/features/0172-Optimise-player-movement-checks.patch similarity index 84% rename from leaf-server/minecraft-patches/features/0173-Optimise-player-movement-checks.patch rename to leaf-server/minecraft-patches/features/0172-Optimise-player-movement-checks.patch index aad1cc16..c7f53dc0 100644 --- a/leaf-server/minecraft-patches/features/0173-Optimise-player-movement-checks.patch +++ b/leaf-server/minecraft-patches/features/0172-Optimise-player-movement-checks.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Optimise player movement checks diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 2786fbc43f238be058b153ba551f0a616c4a18f4..376d8cb183145955b887597ef7ae25ce761a795a 100644 +index ad674cf202c61b50f568a36777cee196627b402c..5a31ac325af5727a042e4056f67f53013cd33c39 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -1176,7 +1176,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -1210,7 +1210,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Paper end diff --git a/leaf-server/minecraft-patches/features/0174-Remove-streams-in-MobSensor.patch b/leaf-server/minecraft-patches/features/0173-Remove-streams-in-MobSensor.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0174-Remove-streams-in-MobSensor.patch rename to leaf-server/minecraft-patches/features/0173-Remove-streams-in-MobSensor.patch diff --git a/leaf-server/minecraft-patches/features/0175-Remove-streams-in-TemptingSensor.patch b/leaf-server/minecraft-patches/features/0174-Remove-streams-in-TemptingSensor.patch similarity index 100% rename from leaf-server/minecraft-patches/features/0175-Remove-streams-in-TemptingSensor.patch rename to leaf-server/minecraft-patches/features/0174-Remove-streams-in-TemptingSensor.patch diff --git a/leaf-server/minecraft-patches/features/0162-paw-optimization.patch b/leaf-server/minecraft-patches/features/0175-paw-optimization.patch similarity index 95% rename from leaf-server/minecraft-patches/features/0162-paw-optimization.patch rename to leaf-server/minecraft-patches/features/0175-paw-optimization.patch index d2e6630c..cb9142a0 100644 --- a/leaf-server/minecraft-patches/features/0162-paw-optimization.patch +++ b/leaf-server/minecraft-patches/features/0175-paw-optimization.patch @@ -10,10 +10,10 @@ Some random optimizations - Secret patches (WIP) diff --git a/net/minecraft/network/Connection.java b/net/minecraft/network/Connection.java -index f3e9de8716f5e1a72ec465ee897c8f0413f7b1c3..f998cf8d70302a21289de4d84b46d322d0b8a8fe 100644 +index 3a82e1e510029576485427af9fd705b37c5f6e20..32f26640664135c9f7f45f8b204b7ff412fe343e 100644 --- a/net/minecraft/network/Connection.java +++ b/net/minecraft/network/Connection.java -@@ -617,13 +617,7 @@ public class Connection extends SimpleChannelInboundHandler> { +@@ -661,13 +661,7 @@ public class Connection extends SimpleChannelInboundHandler> { if (!(this.packetListener instanceof net.minecraft.server.network.ServerLoginPacketListenerImpl loginPacketListener) || loginPacketListener.state != net.minecraft.server.network.ServerLoginPacketListenerImpl.State.VERIFYING || Connection.joinAttemptsThisTick++ < MAX_PER_TICK) { @@ -94,7 +94,7 @@ index 0860a700106e8c1afe58c77150a0f3aee8393fdd..8e5414becccc921db39e4e6eebeb054d this.tickChunks(l, list); // Gale - Purpur - remove vanilla profiler } finally { diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java -index fbfb35dad8b07c31f967d33fb04cfcfc94557d72..ba1dd51e7187a80e8438e46383257c22f5382130 100644 +index 539206d55e87ec9968664305caaf475c991fe4d5..6cb0c14cb7aa243bbee6ca9ba57da4cc6eafdfd8 100644 --- a/net/minecraft/server/level/ServerLevel.java +++ b/net/minecraft/server/level/ServerLevel.java @@ -1387,13 +1387,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe @@ -126,7 +126,7 @@ index fbfb35dad8b07c31f967d33fb04cfcfc94557d72..ba1dd51e7187a80e8438e46383257c22 private void tickPassenger(Entity ridingEntity, Entity passengerEntity, final boolean isActive) { // Paper - EAR 2 diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index 2c15f8f0be8ba03f2c9481bed0d46aad738848a0..124624d9c8cc292fcedb5652542b7d9da4e5d228 100644 +index 5a31ac325af5727a042e4056f67f53013cd33c39..376d8cb183145955b887597ef7ae25ce761a795a 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java @@ -1143,31 +1143,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess @@ -192,7 +192,7 @@ index 2c15f8f0be8ba03f2c9481bed0d46aad738848a0..124624d9c8cc292fcedb5652542b7d9d } private void applyMovementEmissionAndPlaySound(Entity.MovementEmission movementEmission, Vec3 movement, BlockPos pos, BlockState state) { -@@ -4832,9 +4791,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4849,9 +4808,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } public void setDeltaMovement(Vec3 deltaMovement) { @@ -202,7 +202,7 @@ index 2c15f8f0be8ba03f2c9481bed0d46aad738848a0..124624d9c8cc292fcedb5652542b7d9d } public void addDeltaMovement(Vec3 addend) { -@@ -4940,9 +4897,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess +@@ -4957,9 +4914,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess } // Paper end - Fix MC-4 if (this.position.x != x || this.position.y != y || this.position.z != z) { diff --git a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/UnknownCommandMessage.java b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/UnknownCommandMessage.java index 8c20b8df..d659fbb0 100644 --- a/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/UnknownCommandMessage.java +++ b/leaf-server/src/main/java/org/dreeam/leaf/config/modules/misc/UnknownCommandMessage.java @@ -9,15 +9,19 @@ public class UnknownCommandMessage extends ConfigModules { return EnumConfigCategory.MISC.getBaseKeyName() + ".message"; } - public static String unknownCommandMessage = ""; + public static String unknownCommandMessage = "default"; @Override public void onLoaded() { unknownCommandMessage = config.getString(getBasePath() + ".unknown-command", unknownCommandMessage, config.pickStringRegionBased(""" Unknown command message, using MiniMessage format, set to "default" to use vanilla message, - placeholder: , shows detail of the unknown command information.""", + placeholder: + , show message of the command exception. + , shows detail of the command exception.""", """ 发送未知命令时的消息, 使用 MiniMessage 格式, 设置为 "default" 使用原版消息. - 变量: , 显示未知命令详细信息.""")); + 变量: + , 显示命令错误所附提示消息. + , 显示命令错误详细信息.""")); } }