mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-19 15:09:25 +00:00
1. Wet the drys 2. Dry the wets 3. Wet the drys 4. Dry the wets 5. Wet the drys 6. Now dust the wets
132 lines
8.0 KiB
Diff
132 lines
8.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Wed, 7 Aug 2024 18:54:01 +0800
|
|
Subject: [PATCH] Configurable unknown command message
|
|
|
|
|
|
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
|
index fb18f69cb26132fc8c53b185454c6aadb8a5f7e5..eff6d524c8acfc62d1fcf6b5552754e794a22735 100644
|
|
--- a/net/minecraft/commands/Commands.java
|
|
+++ b/net/minecraft/commands/Commands.java
|
|
@@ -404,31 +404,9 @@ public class Commands {
|
|
// Paper start - Add UnknownCommandEvent
|
|
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
|
|
// Paper end - Add UnknownCommandEvent
|
|
- if (var7.getInput() != null && var7.getCursor() >= 0) {
|
|
- int min = Math.min(var7.getInput().length(), var7.getCursor());
|
|
- MutableComponent mutableComponent = Component.empty()
|
|
- .withStyle(ChatFormatting.GRAY)
|
|
- .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + label))); // CraftBukkit // Paper
|
|
- if (min > 10) {
|
|
- mutableComponent.append(CommonComponents.ELLIPSIS);
|
|
- }
|
|
-
|
|
- mutableComponent.append(var7.getInput().substring(Math.max(0, min - 10), min));
|
|
- if (min < var7.getInput().length()) {
|
|
- Component component = Component.literal(var7.getInput().substring(min)).withStyle(ChatFormatting.RED, ChatFormatting.UNDERLINE);
|
|
- mutableComponent.append(component);
|
|
- }
|
|
-
|
|
- mutableComponent.append(Component.translatable("command.context.here").withStyle(ChatFormatting.RED, ChatFormatting.ITALIC));
|
|
- // Paper start - Add UnknownCommandEvent
|
|
- // source.sendFailure(mutableComponent);
|
|
- builder
|
|
- .append(net.kyori.adventure.text.Component.newline())
|
|
- .append(io.papermc.paper.adventure.PaperAdventure.asAdventure(mutableComponent));
|
|
- }
|
|
- org.bukkit.event.command.UnknownCommandEvent event = new org.bukkit.event.command.UnknownCommandEvent(source.getBukkitSender(), command, org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty() ? null : builder.build());
|
|
+ org.bukkit.event.command.UnknownCommandEvent event = new org.bukkit.event.command.UnknownCommandEvent(source.getBukkitSender(), command, message); // Leaf - Configurable unknown command message
|
|
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 {
|
|
};
|
|
}
|
|
|
|
+ // Leaf start - Configurable unknown command message
|
|
+ private static net.kyori.adventure.text.TextComponent 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("<detail>") && 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("<detail>", "");
|
|
+ builder.append(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(rawMessage));
|
|
+ }
|
|
+
|
|
+ return builder.build();
|
|
+ }
|
|
+
|
|
+ return getVanillaUnknownCommandMessage(builder, commandSyntaxException, label);
|
|
+ }
|
|
+
|
|
+ private static net.kyori.adventure.text.TextComponent 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()));
|
|
+
|
|
+ if (var7.getInput() != null && var7.getCursor() >= 0) {
|
|
+ int min = Math.min(var7.getInput().length(), var7.getCursor());
|
|
+ MutableComponent mutableComponent = Component.empty()
|
|
+ .withStyle(ChatFormatting.GRAY)
|
|
+ .withStyle(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + label))); // CraftBukkit // Paper
|
|
+ if (min > 10) {
|
|
+ mutableComponent.append(CommonComponents.ELLIPSIS);
|
|
+ }
|
|
+
|
|
+ mutableComponent.append(var7.getInput().substring(Math.max(0, min - 10), min));
|
|
+ if (min < var7.getInput().length()) {
|
|
+ Component component = Component.literal(var7.getInput().substring(min)).withStyle(ChatFormatting.RED, ChatFormatting.UNDERLINE);
|
|
+ mutableComponent.append(component);
|
|
+ }
|
|
+
|
|
+ mutableComponent.append(Component.translatable("command.context.here").withStyle(ChatFormatting.RED, ChatFormatting.ITALIC));
|
|
+ // Paper start - Add UnknownCommandEvent
|
|
+ // source.sendFailure(mutableComponent);
|
|
+ builder
|
|
+ .append(net.kyori.adventure.text.Component.newline())
|
|
+ .append(io.papermc.paper.adventure.PaperAdventure.asAdventure(mutableComponent));
|
|
+ }
|
|
+
|
|
+ return builder.build();
|
|
+ }
|
|
+ // Leaf end - Configurable unknown command message
|
|
+
|
|
public static void validate() {
|
|
CommandBuildContext commandBuildContext = createValidationContext(VanillaRegistries.createLookup());
|
|
CommandDispatcher<CommandSourceStack> dispatcher = new Commands(Commands.CommandSelection.ALL, commandBuildContext).getDispatcher();
|