From 43ee87cad6bfb854c3141727c6ddb6a5d2fcf369 Mon Sep 17 00:00:00 2001 From: bierdosenhalter <529651+bierdosenhalter@users.noreply.github.com> Date: Wed, 31 Aug 2022 16:53:14 +0200 Subject: [PATCH] removed message cancelling for chat but removed all recipients --- README.md | 4 ---- pom.xml | 2 +- .../java/org/zeroBzeroT/chatCo/PublicChat.java | 16 ++++++++-------- .../java/org/zeroBzeroT/chatCo/Whispers.java | 6 +----- 4 files changed, 10 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 9684494..3eed184 100644 --- a/README.md +++ b/README.md @@ -75,10 +75,6 @@ You can customize the appearance of whispers. - Write [SPOILER]text[/SPOILER] to make a spoiler. - Write /show spoiler [1-5] to view spoilers. -### Planned Features - -- Fully Async Chat - ### Tested Minecraft Versions - 1.12.2 diff --git a/pom.xml b/pom.xml index 3cadfa0..e473d06 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.zeroBzeroT.chatCo ChatCoPlus - 0.27.3 + 0.27.4 jar ${project.artifactId} diff --git a/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java b/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java index 4702379..3ee076f 100644 --- a/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java +++ b/src/main/java/org/zeroBzeroT/chatCo/PublicChat.java @@ -59,11 +59,9 @@ public String replaceInlineColors(String message, final Player player) { @EventHandler(ignoreCancelled = true) public void onPlayerChat(final AsyncPlayerChatEvent event) { // Set format to the plain message, since the player is not needed + String oldFormat = event.getFormat(); event.setFormat("%2$s"); - // Cancel the event, because the chat is rewritten to system messages - event.setCancelled(true); - // Plain message final Player player = event.getPlayer(); String legacyMessage = replacePrefixColors(event.getMessage(), player); @@ -71,6 +69,7 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) { // Do not send empty messages if (ChatColor.stripColor(legacyMessage).trim().length() == 0) { + event.setCancelled(true); return; } @@ -91,10 +90,6 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) { message.addExtra(componentFromLegacyText("> ")); message.addExtra(messageText); - // Send to console - if (plugin.getConfig().getBoolean("ChatCo.chatToConsole", true)) - plugin.getLogger().info(message.toLegacyText()); - // Send to the players for (Player recipient : event.getRecipients()) { try { @@ -104,11 +99,16 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) { (!chatPlayer.isIgnored(player.getName()) || !plugin.getConfig().getBoolean("ChatCo.ignoresEnabled", true))) { recipient.spigot().sendMessage(message); } - } catch (NullPointerException e) { e.printStackTrace(); } } + + // Do not send it to the players again - no event cancelling, so that other plugins can process the chat + event.getRecipients().clear(); + + // Write back the old format + event.setFormat(oldFormat); } @EventHandler diff --git a/src/main/java/org/zeroBzeroT/chatCo/Whispers.java b/src/main/java/org/zeroBzeroT/chatCo/Whispers.java index 8617e0e..7e7733b 100644 --- a/src/main/java/org/zeroBzeroT/chatCo/Whispers.java +++ b/src/main/java/org/zeroBzeroT/chatCo/Whispers.java @@ -8,7 +8,6 @@ import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerCommandPreprocessEvent; @@ -28,10 +27,7 @@ public Whispers(final Main plugin) { this.plugin = plugin; } - /** - * high event priority (lower rank) makes it easier for other plugins to block commands of this plugin - */ - @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH) + @EventHandler(ignoreCancelled = true) public void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) { final String[] args = event.getMessage().split(" "); final Player sender = event.getPlayer();