From 6dc4981d0255d5e34056beb2a9c404b11317c1a0 Mon Sep 17 00:00:00 2001 From: Pedro Date: Fri, 19 Jan 2024 23:33:18 -0300 Subject: [PATCH] Fixed duplicated messages in servers and color coding AGAIN --- .../commander/content/CommanderClientCommandSource.java | 2 +- .../net/pedroricardo/commander/gui/GuiChatSuggestions.java | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/pedroricardo/commander/content/CommanderClientCommandSource.java b/src/main/java/net/pedroricardo/commander/content/CommanderClientCommandSource.java index e0772ba..68bc482 100644 --- a/src/main/java/net/pedroricardo/commander/content/CommanderClientCommandSource.java +++ b/src/main/java/net/pedroricardo/commander/content/CommanderClientCommandSource.java @@ -82,7 +82,7 @@ public boolean messageMayBeMultiline() { @Override public void sendMessage(String message) { - this.mc.ingameGUI.addChatMessage(message); + if (!this.mc.isMultiplayerWorld()) this.mc.ingameGUI.addChatMessage(message); } @Override diff --git a/src/main/java/net/pedroricardo/commander/gui/GuiChatSuggestions.java b/src/main/java/net/pedroricardo/commander/gui/GuiChatSuggestions.java index 654c503..38f3233 100644 --- a/src/main/java/net/pedroricardo/commander/gui/GuiChatSuggestions.java +++ b/src/main/java/net/pedroricardo/commander/gui/GuiChatSuggestions.java @@ -259,7 +259,7 @@ private void finishUpdatingSuggestions() { } else { suggestion = new Suggestion(new StringRange(jsonSuggestion.getAsJsonObject().get(CommandManagerPacketKeys.RANGE).getAsJsonObject().get(CommandManagerPacketKeys.RANGE_START).getAsInt(), jsonSuggestion.getAsJsonObject().get(CommandManagerPacketKeys.RANGE).getAsJsonObject().get(CommandManagerPacketKeys.RANGE_END).getAsInt()), jsonSuggestion.getAsJsonObject().get(CommandManagerPacketKeys.VALUE).getAsString()); } - if (suggestion.getRange().getStart() > 0 && this.tablessCursor <= this.tablessMessage.length() && suggestion.getText().startsWith(this.tablessMessage.substring(Math.min(suggestion.getRange().getStart(), this.tablessMessage.length()), Math.min(this.tablessMessage.length(), this.tablessCursor)))) { + if (suggestion.getRange().getStart() > 0 && this.tablessCursor <= this.tablessMessage.length() && suggestion.getText().startsWith(this.tablessMessage.substring(Math.min(suggestion.getRange().getStart(), this.tablessMessage.length()), Math.min(Math.min(suggestion.getRange().getStart(), this.tablessMessage.length()), this.tablessCursor)))) { this.suggestions.add(suggestion); } } @@ -403,11 +403,9 @@ public String colorCodeText(String text, boolean requireSlash) { boolean isCommand = (stringReader.canRead() && stringReader.peek() == '/') || !requireSlash; if (!isCommand || text.isEmpty()) return text; if (!Commander.serverSuggestions.isEmpty() && Commander.serverSuggestions.get(CommandManagerPacketKeys.LAST_CHILD) != null && Commander.serverSuggestions.get(CommandManagerPacketKeys.LAST_CHILD).getAsJsonObject().get(CommandManagerPacketKeys.ARGUMENTS) != null) { - if (stringReader.canRead() && stringReader.peek() == '/') stringReader.skip(); StringBuilder stringToDrawBuilder = new StringBuilder(); int currentArgumentEnd = 0; int currentColor = 0; - stringToDrawBuilder.append(TextFormatting.LIGHT_GRAY).append(text.charAt(0)); for (JsonElement jsonElement : Commander.serverSuggestions.getAsJsonObject(CommandManagerPacketKeys.LAST_CHILD).getAsJsonArray(CommandManagerPacketKeys.ARGUMENTS)) { int rangeStart = jsonElement.getAsJsonObject().getAsJsonObject(CommandManagerPacketKeys.RANGE).get(CommandManagerPacketKeys.RANGE_START).getAsInt(); int rangeEnd = jsonElement.getAsJsonObject().getAsJsonObject(CommandManagerPacketKeys.RANGE).get(CommandManagerPacketKeys.RANGE_END).getAsInt(); @@ -428,6 +426,7 @@ public String colorCodeText(String text, boolean requireSlash) { } stringToDrawBuilder.append(TextFormatting.LIGHT_GRAY).append(text.substring(Math.min(currentArgumentEnd, text.length()))); + System.out.println(stringToDrawBuilder); return stringToDrawBuilder.toString(); } else { if (stringReader.canRead() && stringReader.peek() == '/') stringReader.skip();