From 0f5981087cb900923cb5d5d780357d254a003813 Mon Sep 17 00:00:00 2001 From: Aust1n46 Date: Sat, 6 Feb 2021 00:48:10 -0600 Subject: [PATCH] Added PlaceholderAPI support for BungeeCord messaging. --- .../Aust1n46/chat/MineverseChat.java | 48 +++----- .../chat/bungee/MineverseChatBungee.java | 1 - .../chat/command/message/Message.java | 103 ++++++++++-------- .../Aust1n46/chat/command/message/Reply.java | 66 ++++++----- 4 files changed, 112 insertions(+), 106 deletions(-) diff --git a/src/mineverse/Aust1n46/chat/MineverseChat.java b/src/mineverse/Aust1n46/chat/MineverseChat.java index 7b44cb1..b5f2afb 100644 --- a/src/mineverse/Aust1n46/chat/MineverseChat.java +++ b/src/mineverse/Aust1n46/chat/MineverseChat.java @@ -112,6 +112,8 @@ import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.events.PacketContainer; import com.comphenix.protocol.utility.MinecraftReflection; +import me.clip.placeholderapi.PlaceholderAPI; + public class MineverseChat extends JavaPlugin implements PluginMessageListener { // Listeners -------------------------------- private ChatListener chatListener; @@ -981,10 +983,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { String msg = msgin.readUTF(); String echo = msgin.readUTF(); String spy = msgin.readUTF(); - // System.out.println((p == null) + " null"); - if(p != null) { - // System.out.println(p.isOnline() + " online"); - } if(!this.getConfig().getBoolean("bungeecordmessaging", true) || p == null || !p.isOnline()) { out.writeUTF("Message"); out.writeUTF("Offline"); @@ -1028,7 +1026,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { s = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, false, null, true, true, name, jsonFormat, false, false, false, true, true); MineverseChat.players.add(s); } - p.getPlayer().sendMessage(msg.replace("{playerfrom}", sName).replace("{playerto}", Format.FormatStringAll(p.getNickname()))); + p.getPlayer().sendMessage(PlaceholderAPI.setBracketPlaceholders(p.getPlayer(), msg.replaceAll("receiver_", ""))); if(p.hasNotifications()) { if(VersionHandler.is1_8() || VersionHandler.is1_7_10() || VersionHandler.is1_7_2() || VersionHandler.is1_7_9()) { p.getPlayer().playSound(p.getPlayer().getLocation(), Sound.valueOf("LEVEL_UP"), 1, 0); @@ -1041,11 +1039,11 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { out.writeUTF("Message"); out.writeUTF("Echo"); out.writeUTF(server); - out.writeUTF(p.getNickname()); + out.writeUTF(receiver); out.writeUTF(sender.toString()); out.writeUTF(sName); - out.writeUTF(echo); - out.writeUTF(spy); + out.writeUTF(PlaceholderAPI.setBracketPlaceholders(p.getPlayer(), echo.replaceAll("receiver_", ""))); + out.writeUTF(PlaceholderAPI.setBracketPlaceholders(p.getPlayer(), spy.replaceAll("receiver_", ""))); player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray()); return; } @@ -1072,35 +1070,23 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener { .replace("{player}", receiver)); } if(identifier.equals("Echo")) { - String receiver = msgin.readUTF(); - UUID sender = UUID.fromString(msgin.readUTF()); - MineverseChatPlayer p = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); - MineverseChatPlayer r = MineverseChatAPI.getMineverseChatPlayer(receiver); + String receiverName = msgin.readUTF(); + UUID senderUUID = UUID.fromString(msgin.readUTF()); + MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(senderUUID); + MineverseChatPlayer receiverMCP = MineverseChatAPI.getMineverseChatPlayer(receiverName); String echo = msgin.readUTF(); - String rName = Format.FormatStringAll(receiver); - if(r != null) { - rName = Format.FormatStringAll(r.getNickname()); - p.setReplyPlayer(r.getUUID()); + if(receiverMCP != null) { + senderMCP.setReplyPlayer(receiverMCP.getUUID()); } - p.getPlayer().sendMessage(echo.replace("{playerfrom}", Format.FormatStringAll(p.getNickname())).replace("{playerto}", rName)); + senderMCP.getPlayer().sendMessage(echo); } if(identifier.equals("Spy")) { - String receiver = msgin.readUTF(); - MineverseChatPlayer r = MineverseChatAPI.getMineverseChatPlayer(receiver); - UUID sender = UUID.fromString(msgin.readUTF()); - MineverseChatPlayer p = MineverseChatAPI.getOnlineMineverseChatPlayer(sender); - String sName = msgin.readUTF(); + String receiverName = msgin.readUTF(); + String senderName = msgin.readUTF(); String spy = msgin.readUTF(); - String rName = receiver; - if(r != null) { - rName = Format.FormatStringAll(r.getNickname()); - } - if(p != null) { - sName = Format.FormatStringAll(p.getNickname()); - } for(MineverseChatPlayer pl : onlinePlayers) { - if(pl.isSpy() && !pl.getName().equals(sName) && !pl.getName().equals(rName)) { - pl.getPlayer().sendMessage(spy.replace("{playerto}", rName).replace("{playerfrom}", sName)); + if(pl.isSpy() && !pl.getName().equals(senderName) && !pl.getName().equals(receiverName)) { + pl.getPlayer().sendMessage(spy); } } } diff --git a/src/mineverse/Aust1n46/chat/bungee/MineverseChatBungee.java b/src/mineverse/Aust1n46/chat/bungee/MineverseChatBungee.java index 7bddbbb..c1339b4 100644 --- a/src/mineverse/Aust1n46/chat/bungee/MineverseChatBungee.java +++ b/src/mineverse/Aust1n46/chat/bungee/MineverseChatBungee.java @@ -405,7 +405,6 @@ public class MineverseChatBungee extends Plugin implements Listener { out.writeUTF("Message"); out.writeUTF("Spy"); out.writeUTF(player); - out.writeUTF(sender); out.writeUTF(sName); out.writeUTF(spy); for(String send : getProxy().getServers().keySet()) { diff --git a/src/mineverse/Aust1n46/chat/command/message/Message.java b/src/mineverse/Aust1n46/chat/command/message/Message.java index 48feae3..1713fa3 100644 --- a/src/mineverse/Aust1n46/chat/command/message/Message.java +++ b/src/mineverse/Aust1n46/chat/command/message/Message.java @@ -8,6 +8,7 @@ import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import me.clip.placeholderapi.PlaceholderAPI; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; @@ -29,6 +30,7 @@ public class Message extends MineverseCommand { plugin.getServer().getConsoleSender().sendMessage(LocalizedMessage.COMMAND_MUST_BE_RUN_BY_PLAYER.toString()); return; } + MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender); if(args.length == 0) { mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() @@ -36,55 +38,12 @@ public class Message extends MineverseCommand { .replace("{args}", "[player] [message]")); return; } + if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - if(args.length < 2) { - mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() - .replace("{command}", "/" + command) - .replace("{args}", "[player] [message]")); - return; - } - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - String msg = ""; - String send = ""; - String echo = ""; - String spy = ""; - for(int r = 1; r < args.length; r++) { - msg += " " + args[r]; - } - if(mcp.hasFilter()) { - msg = Format.FilterChat(msg); - } - if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { - msg = Format.FormatStringLegacyColor(msg); - } - if(mcp.getPlayer().hasPermission("venturechat.color")) { - msg = Format.FormatStringColor(msg); - } - if(mcp.getPlayer().hasPermission("venturechat.format")) { - msg = Format.FormatString(msg); - } - send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg; - echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg; - spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg; - try { - out.writeUTF("Message"); - out.writeUTF("Send"); - // out.writeUTF(mcp.getPlayer().getServer().getServerName()); - out.writeUTF(args[0]); - out.writeUTF(mcp.getUUID().toString()); - out.writeUTF(mcp.getName()); - out.writeUTF(send); - out.writeUTF(echo); - out.writeUTF(spy); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } - catch(Exception e) { - e.printStackTrace(); - } + sendBungeeCordMessage(mcp, command, args); return; } + MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]); for(MineverseChatPlayer p : MineverseChat.onlinePlayers) { if(ChatColor.stripColor(p.getNickname()).equals(args[0])) { @@ -207,4 +166,56 @@ public class Message extends MineverseCommand { } return; } + + private void sendBungeeCordMessage(MineverseChatPlayer mcp, String command, String[] args) { + if(args.length < 2) { + mcp.getPlayer().sendMessage(LocalizedMessage.COMMAND_INVALID_ARGUMENTS.toString() + .replace("{command}", "/" + command) + .replace("{args}", "[player] [message]")); + return; + } + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + String msg = ""; + String send = ""; + String echo = ""; + String spy = ""; + for(int r = 1; r < args.length; r++) { + msg += " " + args[r]; + } + if(mcp.hasFilter()) { + msg = Format.FilterChat(msg); + } + if(mcp.getPlayer().hasPermission("venturechat.color.legacy")) { + msg = Format.FormatStringLegacyColor(msg); + } + if(mcp.getPlayer().hasPermission("venturechat.color")) { + msg = Format.FormatStringColor(msg); + } + if(mcp.getPlayer().hasPermission("venturechat.format")) { + msg = Format.FormatString(msg); + } + send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom")) + msg; + echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto")) + msg; + spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy")) + msg; + + send = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), send.replaceAll("sender_", "")); + echo = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), echo.replaceAll("sender_", "")); + spy = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), spy.replaceAll("sender_", "")); + try { + out.writeUTF("Message"); + out.writeUTF("Send"); + out.writeUTF(args[0]); + out.writeUTF(mcp.getUUID().toString()); + out.writeUTF(mcp.getName()); + out.writeUTF(send); + out.writeUTF(echo); + out.writeUTF(spy); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } + catch(Exception e) { + e.printStackTrace(); + } + } } \ No newline at end of file diff --git a/src/mineverse/Aust1n46/chat/command/message/Reply.java b/src/mineverse/Aust1n46/chat/command/message/Reply.java index ae4469b..a04acd2 100644 --- a/src/mineverse/Aust1n46/chat/command/message/Reply.java +++ b/src/mineverse/Aust1n46/chat/command/message/Reply.java @@ -8,6 +8,7 @@ import org.bukkit.Sound; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import me.clip.placeholderapi.PlaceholderAPI; import mineverse.Aust1n46.chat.MineverseChat; import mineverse.Aust1n46.chat.api.MineverseChatAPI; import mineverse.Aust1n46.chat.api.MineverseChatPlayer; @@ -33,37 +34,12 @@ public class Reply extends MineverseCommand { if(args.length > 0) { if(mcp.hasReplyPlayer()) { MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(mcp.getReplyPlayer()); + if(plugin.getConfig().getBoolean("bungeecordmessaging", true)) { - ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); - DataOutputStream out = new DataOutputStream(byteOutStream); - String msg = ""; - String send = ""; - String echo = ""; - String spy = ""; - for(int r = 0; r < args.length; r++) { - msg += " " + args[r]; - } - send = Format.FormatStringAll(plugin.getConfig().getString("replyformatfrom")) + msg; - echo = Format.FormatStringAll(plugin.getConfig().getString("replyformatto")) + msg; - spy = Format.FormatStringAll(plugin.getConfig().getString("replyformatspy")) + msg; - try { - out.writeUTF("Message"); - out.writeUTF("Send"); - // out.writeUTF(mcp.getPlayer().getServer().getServerName()); - out.writeUTF(player.getName()); - out.writeUTF(mcp.getUUID().toString()); - out.writeUTF(mcp.getName()); - out.writeUTF(send); - out.writeUTF(echo); - out.writeUTF(spy); - mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); - out.close(); - } - catch(Exception e) { - e.printStackTrace(); - } + sendBungeeCordReply(mcp, player, args); return; } + if(player == null || !player.isOnline()) { mcp.getPlayer().sendMessage(LocalizedMessage.NO_PLAYER_TO_REPLY_TO.toString()); return; @@ -148,4 +124,38 @@ public class Reply extends MineverseCommand { .replace("{command}", "/reply") .replace("{args}", "[message]")); } + + private void sendBungeeCordReply(MineverseChatPlayer mcp, MineverseChatPlayer player, String[] args) { + ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream(); + DataOutputStream out = new DataOutputStream(byteOutStream); + String msg = ""; + String send = ""; + String echo = ""; + String spy = ""; + for(int r = 0; r < args.length; r++) { + msg += " " + args[r]; + } + send = Format.FormatStringAll(plugin.getConfig().getString("replyformatfrom")) + msg; + echo = Format.FormatStringAll(plugin.getConfig().getString("replyformatto")) + msg; + spy = Format.FormatStringAll(plugin.getConfig().getString("replyformatspy")) + msg; + + send = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), send.replaceAll("sender_", "")); + echo = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), echo.replaceAll("sender_", "")); + spy = PlaceholderAPI.setBracketPlaceholders(mcp.getPlayer(), spy.replaceAll("sender_", "")); + try { + out.writeUTF("Message"); + out.writeUTF("Send"); + out.writeUTF(player.getName()); + out.writeUTF(mcp.getUUID().toString()); + out.writeUTF(mcp.getName()); + out.writeUTF(send); + out.writeUTF(echo); + out.writeUTF(spy); + mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray()); + out.close(); + } + catch(Exception e) { + e.printStackTrace(); + } + } } \ No newline at end of file