From 6161f247d73419be0d353841c33f468c3bdfd35b Mon Sep 17 00:00:00 2001 From: Kapitowa Date: Fri, 22 Apr 2022 00:27:21 +0300 Subject: [PATCH 01/14] add sound to recipient in pm --- .../chatty/commands/pm/PrivateMessageCommand.java | 9 +++++++++ spigot/src/main/resources/config.yml | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java b/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java index 473876a5..57335fa1 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java @@ -14,6 +14,7 @@ import ru.mrbrikster.chatty.moderation.AdvertisementModerationMethod; import ru.mrbrikster.chatty.moderation.ModerationManager; import ru.mrbrikster.chatty.moderation.SwearModerationMethod; +import ru.mrbrikster.chatty.util.Sound; import ru.mrbrikster.chatty.util.TextUtil; public abstract class PrivateMessageCommand extends BukkitCommand { @@ -120,6 +121,14 @@ protected void handlePrivateMessage(@NotNull CommandSender sender, @NotNull Comm } else { new FancyMessage(recipientFormat) .send(recipient, sender instanceof Player ? ((Player) sender).getUniqueId() : null); + + String soundName = configuration.getNode("pm.sound").getAsString(null); + if (soundName != null) { + org.bukkit.Sound sound = Sound.byName(soundName); + double soundVolume = (double) configuration.getNode("pm.sound-volume").get(1d); + double soundPitch = (double) configuration.getNode("pm.sound-pitch").get(1d); + ((Player) recipient).playSound(((Player) recipient).getLocation(), sound, (float) soundVolume, (float) soundPitch); + } } } diff --git a/spigot/src/main/resources/config.yml b/spigot/src/main/resources/config.yml index ad30409c..bcd7850a 100644 --- a/spigot/src/main/resources/config.yml +++ b/spigot/src/main/resources/config.yml @@ -150,6 +150,14 @@ pm: recipient: '&7{sender-prefix}{sender-name} &6-> &7{recipient-prefix}{recipient-name}: &f{message}' sender: '&7{sender-prefix}{sender-name} &6-> &7{recipient-prefix}{recipient-name}: &f{message}' + # Plays sound to recipient + # Remove the line if not needed. + sound: CLICK + + # Sound volume and pitch parameters + sound-volume: 1.0 + sound-pitch: 1.0 + commands: msg: # Enables "/msg" command. From a05a66f764397ca63f6189fa788a6a71d4df0969 Mon Sep 17 00:00:00 2001 From: Kapitowa Date: Fri, 22 Apr 2022 01:01:49 +0300 Subject: [PATCH 02/14] fix ignore for pm --- .../mrbrikster/chatty/chat/JsonStorage.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java b/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java index c52f7188..fefdba70 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java @@ -111,14 +111,20 @@ public Optional getProperty(Player player, String property) { } public boolean isIgnore(CommandSender recipient, CommandSender sender) { - if (recipient instanceof Player) { - JsonElement jsonElement = getProperty((Player) recipient, "ignore").orElseGet(JsonArray::new); - - if (!jsonElement.isJsonArray()) - jsonElement = new JsonArray(); + if (sender != null) { + JsonElement jsonElement = Chatty.instance().getExact(JsonStorage.class) + .getProperty(recipient.getName(), "ignore").orElseGet(JsonArray::new); + + if (jsonElement.isJsonArray()) { + for (JsonElement ignoreJsonElement : jsonElement.getAsJsonArray()) { + if (sender.getName().equalsIgnoreCase(ignoreJsonElement.getAsString())) { + return true; + } + } + } - return jsonElement.getAsJsonArray().contains(new JsonPrimitive(sender.getName())); - } + return false; + } return false; } From 266a2d052ae86220ff5a63ef3fb66b8f9c85d33a Mon Sep 17 00:00:00 2001 From: Kapitowa Date: Fri, 22 Apr 2022 01:18:52 +0300 Subject: [PATCH 03/14] fix ignore for pm [fix mistake] --- spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java b/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java index fefdba70..9850e969 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/chat/JsonStorage.java @@ -113,7 +113,7 @@ public Optional getProperty(Player player, String property) { public boolean isIgnore(CommandSender recipient, CommandSender sender) { if (sender != null) { JsonElement jsonElement = Chatty.instance().getExact(JsonStorage.class) - .getProperty(recipient.getName(), "ignore").orElseGet(JsonArray::new); + .getProperty((Player)recipient, "ignore").orElseGet(JsonArray::new); if (jsonElement.isJsonArray()) { for (JsonElement ignoreJsonElement : jsonElement.getAsJsonArray()) { From 33deb1f217951925799d7bd5ae60533df5442286 Mon Sep 17 00:00:00 2001 From: Kapitowa Date: Sat, 23 Apr 2022 06:13:40 +0300 Subject: [PATCH 04/14] remove unnessesary --- .../mrbrikster/chatty/miscellaneous/MiscellaneousListener.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java b/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java index 6dd6fb72..6b21c5b9 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java @@ -58,8 +58,6 @@ public void onJoin(PlayerJoinEvent event) { soundPitch = (double) configuration.getNode("miscellaneous.vanilla.first-join.sound-pitch").get(1d); } - System.out.println(soundVolume + " " + soundPitch); - boolean hasPermission = !configuration.getNode("miscellaneous.vanilla.join.permission").getAsBoolean(true) || event.getPlayer().hasPermission("chatty.misc.joinmessage"); From 5c7c2fa75ae1cd4cf7d1eb0edb0eb8ebf1716e0f Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:46:58 +0300 Subject: [PATCH 05/14] 1.19 nms implementation --- .../java/net/amoebaman/util/ArrayWrapper.java | 5 +- .../chatty/json/FormattedMessage.java | 2 +- .../chatty/json/fanciful/FancyMessage.java | 8 +- .../chatty/util/textapi/NMSUtil.java | 139 ++++++++++++------ build.gradle | 24 ++- spigot/build.gradle | 2 +- .../mrbrikster/chatty/chat/ChatListener.java | 8 +- .../commands/pm/PrivateMessageCommand.java | 2 +- 8 files changed, 131 insertions(+), 59 deletions(-) diff --git a/api/src/main/java/net/amoebaman/util/ArrayWrapper.java b/api/src/main/java/net/amoebaman/util/ArrayWrapper.java index 5de34122..f92f336d 100644 --- a/api/src/main/java/net/amoebaman/util/ArrayWrapper.java +++ b/api/src/main/java/net/amoebaman/util/ArrayWrapper.java @@ -1,10 +1,11 @@ package net.amoebaman.util; -import org.apache.commons.lang.Validate; +import jdk.internal.util.Preconditions; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collection; +import java.util.Objects; /** * Represents a wrapper around an array class of an arbitrary reference type, @@ -46,7 +47,7 @@ public E[] getArray() { * @param array The new wrapped array. */ public void setArray(E[] array) { - Validate.notNull(array, "The array must not be null."); + Objects.requireNonNull(array, "The array must not be null."); _array = array; } diff --git a/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java b/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java index e22bc286..237348fb 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java +++ b/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java @@ -23,7 +23,7 @@ public FormattedMessage(String text, boolean colorize) { this.messageParts.add(new LegacyMessagePart(text, colorize)); } - public FormattedMessage send(Collection players, UUID sender) { + public FormattedMessage send(Collection players, Player sender) { toFancyMessage().send(players, sender); return this; diff --git a/api/src/main/java/ru/mrbrikster/chatty/json/fanciful/FancyMessage.java b/api/src/main/java/ru/mrbrikster/chatty/json/fanciful/FancyMessage.java index 3409ee9d..947fe94f 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/json/fanciful/FancyMessage.java +++ b/api/src/main/java/ru/mrbrikster/chatty/json/fanciful/FancyMessage.java @@ -569,11 +569,11 @@ public String toJSONString() { * * @param player The player who will receive the message. */ - public void send(Player player, UUID sender) { + public void send(Player player, Player sender) { send(player, toJSONString(), sender); } - private void send(CommandSender sender, String jsonString, UUID from) { + private void send(CommandSender sender, String jsonString, Player from) { if (!(sender instanceof Player)) { sender.sendMessage(toOldMessageFormat()); return; @@ -590,7 +590,7 @@ private void send(CommandSender sender, String jsonString, UUID from) { * @param sender The command sender who will receive the message. * @see #toOldMessageFormat() */ - public void send(CommandSender sender, UUID from) { + public void send(CommandSender sender, Player from) { send(sender, toJSONString(), from); } @@ -600,7 +600,7 @@ public void send(CommandSender sender, UUID from) { * @param senders The command senders who will receive the message. * @see #send(CommandSender) */ - public void send(final Iterable senders, UUID from) { + public void send(final Iterable senders, Player from) { String string = toJSONString(); for (final CommandSender sender : senders) { diff --git a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java index 414c3f9e..58d8998b 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java +++ b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java @@ -1,42 +1,57 @@ package ru.mrbrikster.chatty.util.textapi; +import net.minecraft.network.chat.ChatMessageType; +import net.minecraft.network.chat.ChatSender; +import net.minecraft.network.chat.IChatBaseComponent; +import net.minecraft.server.level.EntityPlayer; import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import lombok.experimental.UtilityClass; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.HashMap; import java.util.UUID; +import static ru.mrbrikster.chatty.util.textapi.NMSUtil.ServerPackage.*; + @UtilityClass public class NMSUtil { private static final HashMap> NMS_CLASSES = new HashMap<>(); static { - NMS_CLASSES.put("IChatBaseComponent", resolveSuitableClass(ServerPackage.MINECRAFT + ".IChatBaseComponent", - ServerPackage.NETWORK + ".chat.IChatBaseComponent")); - NMS_CLASSES.put("ChatMessageType", resolveSuitableClass(ServerPackage.MINECRAFT + ".ChatMessageType", - ServerPackage.NETWORK + ".chat.ChatMessageType")); - NMS_CLASSES.put("IChatBaseComponent$ChatSerializer", resolveSuitableClass(ServerPackage.MINECRAFT + ".IChatBaseComponent$ChatSerializer", - ServerPackage.NETWORK + ".chat.IChatBaseComponent$ChatSerializer")); - - NMS_CLASSES.put("PacketPlayOutChat", resolveSuitableClass(ServerPackage.MINECRAFT + ".PacketPlayOutChat", - ServerPackage.NETWORK + ".protocol.game.PacketPlayOutChat")); - NMS_CLASSES.put("Packet", resolveSuitableClass(ServerPackage.MINECRAFT + ".Packet", - ServerPackage.NETWORK + ".protocol.Packet")); + NMS_CLASSES.put("IChatBaseComponent", resolveSuitableClass(MINECRAFT + ".IChatBaseComponent", + NETWORK + ".chat.IChatBaseComponent")); + NMS_CLASSES.put("ChatMessageType", resolveSuitableClass(MINECRAFT + ".ChatMessageType", + NETWORK + ".chat.ChatMessageType")); + NMS_CLASSES.put("IChatBaseComponent$ChatSerializer", resolveSuitableClass(MINECRAFT + ".IChatBaseComponent$ChatSerializer", + NETWORK + ".chat.IChatBaseComponent$ChatSerializer")); + + NMS_CLASSES.put("PacketPlayOutChat", resolveSuitableClass(MINECRAFT + ".PacketPlayOutChat", + NETWORK + ".protocol.game.PacketPlayOutChat")); + NMS_CLASSES.put("Packet", resolveSuitableClass(MINECRAFT + ".Packet", + NETWORK + ".protocol.Packet")); // Legacy title packets - NMS_CLASSES.put("PacketPlayOutTitle", resolveSuitableClass(ServerPackage.MINECRAFT + ".PacketPlayOutTitle")); - NMS_CLASSES.put("PacketPlayOutTitle$EnumTitleAction", resolveSuitableClass(ServerPackage.MINECRAFT + ".PacketPlayOutTitle$EnumTitleAction")); + NMS_CLASSES.put("PacketPlayOutTitle", resolveSuitableClass(MINECRAFT + ".PacketPlayOutTitle")); + NMS_CLASSES.put("PacketPlayOutTitle$EnumTitleAction", resolveSuitableClass(MINECRAFT + ".PacketPlayOutTitle$EnumTitleAction")); // New (>= 1.17) title packets - NMS_CLASSES.put("ClientboundSetTitleTextPacket", resolveSuitableClass(ServerPackage.NETWORK + ".protocol.game.ClientboundSetTitleTextPacket")); - NMS_CLASSES.put("ClientboundSetSubtitleTextPacket", resolveSuitableClass(ServerPackage.NETWORK + ".protocol.game.ClientboundSetSubtitleTextPacket")); - NMS_CLASSES.put("ClientboundSetTitlesAnimationPacket", resolveSuitableClass(ServerPackage.NETWORK + ".protocol.game.ClientboundSetTitlesAnimationPacket")); + NMS_CLASSES.put("ClientboundSetTitleTextPacket", resolveSuitableClass(NETWORK + ".protocol.game.ClientboundSetTitleTextPacket")); + NMS_CLASSES.put("ClientboundSetSubtitleTextPacket", resolveSuitableClass(NETWORK + ".protocol.game.ClientboundSetSubtitleTextPacket")); + NMS_CLASSES.put("ClientboundSetTitlesAnimationPacket", resolveSuitableClass(NETWORK + ".protocol.game.ClientboundSetTitlesAnimationPacket")); + + // 1.19 chat packet + NMS_CLASSES.put("ClientboundPlayerChatPacket", resolveSuitableClass(NETWORK + ".protocol.game.ClientboundPlayerChatPacket")); + NMS_CLASSES.put("IChatMutableComponent", resolveSuitableClass(NETWORK + ".protocol.game.IChatMutableComponent")); + NMS_CLASSES.put("PlayerChatMessage", resolveSuitableClass(NETWORK + ".chat.PlayerChatMessage")); + NMS_CLASSES.put("ServerPlayer", resolveSuitableClass("net.minecraft.server.level.ServerPlayer")); + NMS_CLASSES.put("ChatSender", resolveSuitableClass(NETWORK + ".chat.ChatSender")); } public Class getClass(String key) { @@ -64,47 +79,81 @@ public Field resolveField(Class clazz, String... names) { throw new IllegalStateException(); } - public void sendChatPacket(Player player, String type, String text, UUID sender) { + public void sendChatPacket(Player player, String type, String text, Player sender) { try { Class clsIChatBaseComponent = NMS_CLASSES.get("IChatBaseComponent"); - Class clsChatMessageType = NMS_CLASSES.get("ChatMessageType"); - Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); - Object playerConnection = resolveField(entityPlayer.getClass(), "b", "playerConnection").get(entityPlayer); Object chatBaseComponent = NMS_CLASSES.get("IChatBaseComponent$ChatSerializer").getMethod("a", String.class).invoke(null, text); - Object chatMessageType = clsChatMessageType.getMethod("valueOf", String.class).invoke(null, type); - Object packetPlayOutChat = null; - Class packetPlayOutChatClass = NMS_CLASSES.get("PacketPlayOutChat"); + Class clsClientboundPlayerChatPacket = NMS_CLASSES.get("ClientboundPlayerChatPacket"); - // Legacy versions (< 1.16) - try { - packetPlayOutChat = packetPlayOutChatClass.getConstructor(clsIChatBaseComponent, clsChatMessageType) - .newInstance(chatBaseComponent, chatMessageType); - } catch (Throwable ignored) {} + if (clsClientboundPlayerChatPacket == null) { + // < 1.19 + Class clsChatMessageType = NMS_CLASSES.get("ChatMessageType"); + Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); + Object playerConnection = resolveField(entityPlayer.getClass(), "b", "playerConnection").get(entityPlayer); + Object chatMessageType = clsChatMessageType.getMethod("valueOf", String.class).invoke(null, type); + + Object packetPlayOutChat = null; + Class packetPlayOutChatClass = NMS_CLASSES.get("PacketPlayOutChat"); - // New versions (>= 1.16) - if (packetPlayOutChat == null) { + // Legacy versions (< 1.16) try { - packetPlayOutChat = packetPlayOutChatClass.getConstructor(clsIChatBaseComponent, clsChatMessageType, UUID.class) - .newInstance(chatBaseComponent, chatMessageType, sender); + packetPlayOutChat = packetPlayOutChatClass.getConstructor(clsIChatBaseComponent, clsChatMessageType) + .newInstance(chatBaseComponent, chatMessageType); } catch (Throwable ignored) {} - } - if (packetPlayOutChat == null) { - throw new IllegalStateException(); - } + // New versions (>= 1.16) + if (packetPlayOutChat == null) { + try { + packetPlayOutChat = packetPlayOutChatClass.getConstructor(clsIChatBaseComponent, clsChatMessageType, UUID.class) + .newInstance(chatBaseComponent, chatMessageType, sender.getUniqueId()); + } catch (Throwable ignored) {} + } - Method sendPacketMethod; - try { - sendPacketMethod = playerConnection.getClass().getMethod("sendPacket", NMS_CLASSES.get("Packet")); - } catch (Exception ignored) { - // 1.18+ - sendPacketMethod = playerConnection.getClass().getMethod("a", NMS_CLASSES.get("Packet")); - } + if (packetPlayOutChat == null) { + throw new IllegalStateException(); + } - sendPacketMethod.invoke(playerConnection, packetPlayOutChat); + Method sendPacketMethod; + try { + sendPacketMethod = playerConnection.getClass().getMethod("sendPacket", NMS_CLASSES.get("Packet")); + } catch (Exception ignored) { + // 1.18+ + sendPacketMethod = playerConnection.getClass().getMethod("a", NMS_CLASSES.get("Packet")); + } + + sendPacketMethod.invoke(playerConnection, packetPlayOutChat); + } else { + // 1.19+ + Class clsChatSender = NMS_CLASSES.get("ChatSender"); + Class clsPlayerChatMessage = NMS_CLASSES.get("PlayerChatMessage"); + + // ChatMessageType chatMessageType = type.equals("CHAT") ? ChatMessageType.b : ChatMessageType.d; + Object chatMessageType = NMS_CLASSES.get("ChatMessageType") + // b: 'system', d: 'game_info' + .getDeclaredField(type.equals("CHAT") ? "c" : "d") + .get(null); + + Object senderName = NMS_CLASSES.get("IChatBaseComponent$ChatSerializer") + .getMethod("a", String.class) + .invoke(null, "{\"text\":\"" + player.getDisplayName() + "\"}"); + + // PlayerChatMessage playerChatMessage = PlayerChatMessage.a(chatBaseComponent); + Object playerChatMessage = clsPlayerChatMessage.getMethod("a", clsIChatBaseComponent) + .invoke(null, chatBaseComponent); + + // ChatSender chatSender = new ChatSender(sender, senderName); + Object chatSender = clsChatSender.getConstructor(UUID.class, clsIChatBaseComponent) + .newInstance(new UUID(0L, 0L), senderName); + + // EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); + Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); + // entityPlayer.a(playerChatMessage, chatSender, chatMessageType); + entityPlayer.getClass().getMethod("a", clsPlayerChatMessage, clsChatSender, chatMessageType.getClass()) + .invoke(entityPlayer, playerChatMessage, chatSender, chatMessageType); + } } catch (Throwable e) { - throw new RuntimeException("NMS features is not supported by Chatty on your server version (" + ServerPackage.getServerVersion() + ")", e); + throw new RuntimeException("NMS features is not supported by Chatty on your server version (" + getServerVersion() + ")", e); } } diff --git a/build.gradle b/build.gradle index 10f42922..f97c59f7 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,27 @@ subprojects { maven { url = "https://repo.extendedclip.com/content/repositories/placeholderapi/" } maven { url = "https://repo.codemc.org/repository/maven-public" } maven { url = "https://ci.nametagedit.com/plugin/repository/everything/"; allowInsecureProtocol = true } + + maven { + url "https://gitlab.rednite.net/api/v4/projects/549/packages/maven" + name "shkolakola-public" + + if (shkolakolaGitlabToken) { + credentials(HttpHeaderCredentials) { + name = 'Private-Token' + value = shkolakolaGitlabToken + } + } else { + credentials(HttpHeaderCredentials) { + name = 'Job-Token' + value = System.getenv("CI_JOB_TOKEN") + } + } + + authentication { + create("header", HttpHeaderAuthentication) + } + } } dependencies { @@ -33,6 +54,7 @@ subprojects { compileOnly 'org.projectlombok:lombok:1.18.22' annotationProcessor 'org.projectlombok:lombok:1.18.22' - compileOnly 'org.spigotmc:spigot-api:1.18-R0.1-SNAPSHOT' + compileOnly 'org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT' + compileOnly 'com.destroystokyo:paper:1.19' } } \ No newline at end of file diff --git a/spigot/build.gradle b/spigot/build.gradle index 87a2e115..d2a9fe61 100644 --- a/spigot/build.gradle +++ b/spigot/build.gradle @@ -17,7 +17,7 @@ tasks { } runServer { - minecraftVersion('1.18.2') + minecraftVersion('1.19') } } diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/chat/ChatListener.java b/spigot/src/main/java/ru/mrbrikster/chatty/chat/ChatListener.java index 66b4ab82..2a6f7c82 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/chat/ChatListener.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/chat/ChatListener.java @@ -374,7 +374,7 @@ private void performJsonMessage(AsyncPlayerChatEvent event, Chat chat) { if (configuration.getNode("json.swears.enable").getAsBoolean(false)) { applyJsonSwears(event, formattedMessage); } else { - formattedMessage.send(event.getRecipients(), event.getPlayer().getUniqueId()); + formattedMessage.send(event.getRecipients(), event.getPlayer()); } event.setFormat(formattedMessage.toReadableText().replace("%", "%%")); @@ -393,7 +393,7 @@ private void applyJsonSwears(AsyncPlayerChatEvent event, FormattedMessage format List swears = pendingSwears.remove(event.getPlayer()); if (swears == null) { - formattedMessage.send(event.getRecipients(), event.getPlayer().getUniqueId()); + formattedMessage.send(event.getRecipients(), event.getPlayer()); } else { List canSeeSwears = new ArrayList<>(); List cannotSeeSwears = new ArrayList<>(); @@ -406,7 +406,7 @@ private void applyJsonSwears(AsyncPlayerChatEvent event, FormattedMessage format } }); - formattedMessage.send(cannotSeeSwears, event.getPlayer().getUniqueId()); + formattedMessage.send(cannotSeeSwears, event.getPlayer()); List swearTooltip = configuration.getNode("json.swears.tooltip").getAsStringList() .stream().map(TextUtil::stylish).collect(Collectors.toList()); @@ -419,7 +419,7 @@ private void applyJsonSwears(AsyncPlayerChatEvent event, FormattedMessage format .collect(Collectors.toList())) .suggest(suggest != null ? suggest.replace("{word}", swear) : null))); - formattedMessage.send(canSeeSwears, event.getPlayer().getUniqueId()); + formattedMessage.send(canSeeSwears, event.getPlayer()); } } diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java b/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java index 473876a5..b45340be 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/commands/pm/PrivateMessageCommand.java @@ -119,7 +119,7 @@ protected void handlePrivateMessage(@NotNull CommandSender sender, @NotNull Comm recipient.sendMessage(recipientFormat); } else { new FancyMessage(recipientFormat) - .send(recipient, sender instanceof Player ? ((Player) sender).getUniqueId() : null); + .send(recipient, sender instanceof Player ? ((Player) sender) : null); } } From 863a59678da0e3902a20d7b4b47d10e251639c14 Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:47:11 +0300 Subject: [PATCH 06/14] 1.19 NMS implementation --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index f97c59f7..61070680 100644 --- a/build.gradle +++ b/build.gradle @@ -55,6 +55,5 @@ subprojects { annotationProcessor 'org.projectlombok:lombok:1.18.22' compileOnly 'org.spigotmc:spigot-api:1.19-R0.1-SNAPSHOT' - compileOnly 'com.destroystokyo:paper:1.19' } } \ No newline at end of file From bf302965e54c8bd55a4afd09da4a6a7fdfc30b31 Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:47:50 +0300 Subject: [PATCH 07/14] Fix uuid --- .../main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java index 58d8998b..1140f3cb 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java +++ b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java @@ -144,7 +144,7 @@ public void sendChatPacket(Player player, String type, String text, Player sende // ChatSender chatSender = new ChatSender(sender, senderName); Object chatSender = clsChatSender.getConstructor(UUID.class, clsIChatBaseComponent) - .newInstance(new UUID(0L, 0L), senderName); + .newInstance(sender.getUniqueId(), senderName); // EntityPlayer entityPlayer = ((CraftPlayer) player).getHandle(); Object entityPlayer = player.getClass().getMethod("getHandle").invoke(player); From db5fedfb3fd9d7d9b6e0c376fb96ceaec3722885 Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:48:26 +0300 Subject: [PATCH 08/14] Remove System.out.println() --- .../mrbrikster/chatty/miscellaneous/MiscellaneousListener.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java b/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java index 6dd6fb72..6b21c5b9 100644 --- a/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java +++ b/spigot/src/main/java/ru/mrbrikster/chatty/miscellaneous/MiscellaneousListener.java @@ -58,8 +58,6 @@ public void onJoin(PlayerJoinEvent event) { soundPitch = (double) configuration.getNode("miscellaneous.vanilla.first-join.sound-pitch").get(1d); } - System.out.println(soundVolume + " " + soundPitch); - boolean hasPermission = !configuration.getNode("miscellaneous.vanilla.join.permission").getAsBoolean(true) || event.getPlayer().hasPermission("chatty.misc.joinmessage"); From b0071ba8ac61d3eaefbb9c6cd5cd5fb0f7192ebb Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:51:15 +0300 Subject: [PATCH 09/14] Bump new snapshot --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 61070680..f72348dd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ allprojects { group = 'ru.mrbrikster' - version = '2.19.8' + version = '2.19.9-SNAPSHOT' } subprojects { From f5eb793d1ccfdd0b73594baba4922f66b158ce2b Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:53:48 +0300 Subject: [PATCH 10/14] Remove unnecessary repo --- build.gradle | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/build.gradle b/build.gradle index f72348dd..04cabde4 100644 --- a/build.gradle +++ b/build.gradle @@ -25,27 +25,6 @@ subprojects { maven { url = "https://repo.extendedclip.com/content/repositories/placeholderapi/" } maven { url = "https://repo.codemc.org/repository/maven-public" } maven { url = "https://ci.nametagedit.com/plugin/repository/everything/"; allowInsecureProtocol = true } - - maven { - url "https://gitlab.rednite.net/api/v4/projects/549/packages/maven" - name "shkolakola-public" - - if (shkolakolaGitlabToken) { - credentials(HttpHeaderCredentials) { - name = 'Private-Token' - value = shkolakolaGitlabToken - } - } else { - credentials(HttpHeaderCredentials) { - name = 'Job-Token' - value = System.getenv("CI_JOB_TOKEN") - } - } - - authentication { - create("header", HttpHeaderAuthentication) - } - } } dependencies { From 67f63f936e6a4bc0f628ccc71349a5959068ab8d Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:56:24 +0300 Subject: [PATCH 11/14] Update GSON --- spigot/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/build.gradle b/spigot/build.gradle index d2a9fe61..c04a7873 100644 --- a/spigot/build.gradle +++ b/spigot/build.gradle @@ -33,7 +33,7 @@ processResources { dependencies { api project(':api') api 'com.github.Brikster:BasePlugin:v1.8' - api 'com.google.code.gson:gson:2.8.5' + api 'com.google.code.gson:gson:2.8.9' api 'org.bstats:bstats-bukkit:2.2.1' compileOnly 'net.milkbowl.vault:VaultAPI:1.7' From 788992910a0975a866d1a7b8c9d87a410996f946 Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:57:48 +0300 Subject: [PATCH 12/14] Remove NMS imports --- .../java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java index 1140f3cb..4961da71 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java +++ b/api/src/main/java/ru/mrbrikster/chatty/util/textapi/NMSUtil.java @@ -1,17 +1,11 @@ package ru.mrbrikster.chatty.util.textapi; -import net.minecraft.network.chat.ChatMessageType; -import net.minecraft.network.chat.ChatSender; -import net.minecraft.network.chat.IChatBaseComponent; -import net.minecraft.server.level.EntityPlayer; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import lombok.experimental.UtilityClass; -import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.HashMap; From e7bd2fcdfcc21c07249aed9ea7d54cfe56bb2ba7 Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 21:59:25 +0300 Subject: [PATCH 13/14] Optimize imports --- api/src/main/java/net/amoebaman/util/ArrayWrapper.java | 2 -- .../java/ru/mrbrikster/chatty/json/FormattedMessage.java | 5 ++++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/net/amoebaman/util/ArrayWrapper.java b/api/src/main/java/net/amoebaman/util/ArrayWrapper.java index f92f336d..27d73a4e 100644 --- a/api/src/main/java/net/amoebaman/util/ArrayWrapper.java +++ b/api/src/main/java/net/amoebaman/util/ArrayWrapper.java @@ -1,7 +1,5 @@ package net.amoebaman.util; -import jdk.internal.util.Preconditions; - import java.lang.reflect.Array; import java.util.Arrays; import java.util.Collection; diff --git a/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java b/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java index 237348fb..93e3ed35 100644 --- a/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java +++ b/api/src/main/java/ru/mrbrikster/chatty/json/FormattedMessage.java @@ -5,7 +5,10 @@ import org.bukkit.entity.Player; import ru.mrbrikster.chatty.json.fanciful.FancyMessage; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; From 2426e2c7df761619c42d30c94a790bc96f2a917b Mon Sep 17 00:00:00 2001 From: Ilya Andreev Date: Thu, 16 Jun 2022 22:01:30 +0300 Subject: [PATCH 14/14] Bump new version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 04cabde4..d889eedf 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ allprojects { group = 'ru.mrbrikster' - version = '2.19.9-SNAPSHOT' + version = '2.19.9' } subprojects {