mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 10:39:05 +00:00
Reworked chat and JSON formatting to be applied in a single outgoing
packet.
This commit is contained in:
parent
20f8f3d242
commit
1ef0b818c2
@ -5,7 +5,6 @@ import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
|||||||
//This class is used to create ChatMessage objects, which are used to store information about previous text components
|
//This class is used to create ChatMessage objects, which are used to store information about previous text components
|
||||||
//that were sent to the player. This is a main component in making the message remover work.
|
//that were sent to the player. This is a main component in making the message remover work.
|
||||||
public class ChatMessage {
|
public class ChatMessage {
|
||||||
private WrappedChatComponent originalComponent;
|
|
||||||
private WrappedChatComponent component;
|
private WrappedChatComponent component;
|
||||||
private String sender;
|
private String sender;
|
||||||
private String message;
|
private String message;
|
||||||
@ -26,31 +25,10 @@ public class ChatMessage {
|
|||||||
this.message = message;
|
this.message = message;
|
||||||
this.hash = hash;
|
this.hash = hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatMessage(String sender, String message, int hash, String format, String chat, String channel) {
|
|
||||||
this.sender = sender;
|
|
||||||
this.message = message;
|
|
||||||
this.format = format;
|
|
||||||
this.chat = chat;
|
|
||||||
this.channel = channel;
|
|
||||||
this.hash = hash;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChatMessage(WrappedChatComponent originalComponent, WrappedChatComponent component, String sender, String message, int hash) {
|
|
||||||
this.originalComponent = originalComponent;
|
|
||||||
this.component = component;
|
|
||||||
this.sender = sender;
|
|
||||||
this.message = message;
|
|
||||||
this.hash = hash;
|
|
||||||
}
|
|
||||||
|
|
||||||
public WrappedChatComponent getComponent() {
|
public WrappedChatComponent getComponent() {
|
||||||
return this.component;
|
return this.component;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedChatComponent getOriginalComponent() {
|
|
||||||
return this.originalComponent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setComponent(WrappedChatComponent component) {
|
public void setComponent(WrappedChatComponent component) {
|
||||||
this.component = component;
|
this.component = component;
|
||||||
|
@ -108,8 +108,9 @@ import org.bukkit.scheduler.BukkitScheduler;
|
|||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
|
|
||||||
import com.comphenix.protocol.ProtocolLibrary;
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
import com.comphenix.protocol.ProtocolManager;
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
import com.comphenix.protocol.utility.MinecraftReflection;
|
import com.comphenix.protocol.utility.MinecraftReflection;
|
||||||
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
|
|
||||||
@ -119,12 +120,10 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
private LoginListener loginListener;
|
private LoginListener loginListener;
|
||||||
private SignListener signListener;
|
private SignListener signListener;
|
||||||
private CommandListener commandListener;
|
private CommandListener commandListener;
|
||||||
private PacketListener packetListener;
|
|
||||||
private Channel channelListener;
|
private Channel channelListener;
|
||||||
public static String[] playerlist;
|
public static String[] playerlist;
|
||||||
public static String playerlist_server;
|
public static String playerlist_server;
|
||||||
public boolean ircListen;
|
public boolean ircListen;
|
||||||
public ProtocolManager protocolManager;
|
|
||||||
public static ChatMessage lastChatMessage;
|
public static ChatMessage lastChatMessage;
|
||||||
public static String lastJson;
|
public static String lastJson;
|
||||||
public static Method messageMethod;
|
public static Method messageMethod;
|
||||||
@ -371,16 +370,16 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
channelListener = new Channel();
|
channelListener = new Channel();
|
||||||
signListener = new SignListener(this, ccInfo);
|
signListener = new SignListener(ccInfo);
|
||||||
chatListener = new ChatListener(this, ccInfo);
|
chatListener = new ChatListener(ccInfo);
|
||||||
commandListener = new CommandListener(this, ccInfo, aaInfo);
|
commandListener = new CommandListener(ccInfo, aaInfo);
|
||||||
|
|
||||||
PluginManager pluginManager = getServer().getPluginManager();
|
PluginManager pluginManager = getServer().getPluginManager();
|
||||||
pluginManager.registerEvents(channelListener, this);
|
pluginManager.registerEvents(channelListener, this);
|
||||||
pluginManager.registerEvents(chatListener, this);
|
pluginManager.registerEvents(chatListener, this);
|
||||||
pluginManager.registerEvents(signListener, this);
|
pluginManager.registerEvents(signListener, this);
|
||||||
pluginManager.registerEvents(commandListener, this);
|
pluginManager.registerEvents(commandListener, this);
|
||||||
loginListener = new LoginListener(this, ccInfo);
|
loginListener = new LoginListener(ccInfo);
|
||||||
pluginManager.registerEvents(loginListener, this);
|
pluginManager.registerEvents(loginListener, this);
|
||||||
this.registerPacketListeners();
|
this.registerPacketListeners();
|
||||||
this.loadNMS();
|
this.loadNMS();
|
||||||
@ -524,9 +523,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void registerPacketListeners() {
|
private void registerPacketListeners() {
|
||||||
this.protocolManager = ProtocolLibrary.getProtocolManager();
|
ProtocolLibrary.getProtocolManager().addPacketListener(new PacketListener());
|
||||||
this.packetListener = new PacketListener(this);
|
|
||||||
this.protocolManager.addPacketListener(this.packetListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toPlainText(Object o, Class<?> c) {
|
public static String toPlainText(Object o, Class<?> c) {
|
||||||
@ -779,37 +776,32 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
DataOutputStream out = new DataOutputStream(stream);
|
DataOutputStream out = new DataOutputStream(stream);
|
||||||
if(subchannel.equals("Chat")) {
|
if(subchannel.equals("Chat")) {
|
||||||
String chatchannel = msgin.readUTF();
|
String chatchannel = msgin.readUTF();
|
||||||
String chat = msgin.readUTF();
|
String senderName = msgin.readUTF();
|
||||||
String playerName = msgin.readUTF();
|
UUID senderUUID = UUID.fromString(msgin.readUTF());
|
||||||
String lastMessage = msgin.readUTF();
|
int hash = msgin.readInt();
|
||||||
String f = msgin.readUTF();
|
String consoleChat = msgin.readUTF();
|
||||||
String c = msgin.readUTF();
|
String globalJSON = msgin.readUTF();
|
||||||
String json = msgin.readUTF();
|
|
||||||
if(ccInfo.isChannel(chatchannel) && ccInfo.getChannelInfo(chatchannel).getBungee()) {
|
if(ccInfo.isChannel(chatchannel) && ccInfo.getChannelInfo(chatchannel).getBungee()) {
|
||||||
MineverseChat.lastChatMessage = new ChatMessage(playerName, lastMessage, lastMessage.hashCode(), f, c, chatchannel);
|
Bukkit.getConsoleSender().sendMessage(consoleChat);
|
||||||
lastJson = json;
|
|
||||||
Bukkit.getConsoleSender().sendMessage(chat);
|
|
||||||
MineverseChatPlayer sender = MineverseChatAPI.getMineverseChatPlayer(playerName);
|
|
||||||
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
||||||
//System.out.println(p.getName() + " received chat message");
|
System.out.println(p.getName() + " received chat message");
|
||||||
if(p.isOnline() && p.getListening().contains(ccInfo.getChannelInfo(chatchannel).getName())) {
|
if(p.getListening().contains(ccInfo.getChannelInfo(chatchannel).getName())) {
|
||||||
if(!p.getBungeeToggle() && MineverseChatAPI.getOnlineMineverseChatPlayer(playerName) == null) {
|
if(!p.getBungeeToggle() && MineverseChatAPI.getOnlineMineverseChatPlayer(senderName) == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String json = Format.formatModerationGUI(globalJSON, p.getPlayer(), senderName, chatchannel, hash);
|
||||||
|
WrappedChatComponent chatComponent = WrappedChatComponent.fromJson(json);
|
||||||
|
PacketContainer packet = Format.createPacketPlayOutChat(chatComponent);
|
||||||
|
|
||||||
if(plugin.getConfig().getBoolean("ignorechat", false)) {
|
if(plugin.getConfig().getBoolean("ignorechat", false)) {
|
||||||
// System.out.println(p.getIgnores());
|
if(!p.getIgnores().contains(senderUUID)) {
|
||||||
if(sender == null) {
|
|
||||||
// System.out.println("null sender");
|
|
||||||
p.getPlayer().sendMessage(chat);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if(!p.getIgnores().contains(sender.getUUID())) {
|
|
||||||
// System.out.println("Chat sent");
|
// System.out.println("Chat sent");
|
||||||
p.getPlayer().sendMessage(chat);
|
Format.sendPacketPlayOutChat(p.getPlayer(), packet);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
p.getPlayer().sendMessage(chat);
|
Format.sendPacketPlayOutChat(p.getPlayer(), packet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -153,20 +153,18 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
|||||||
DataOutputStream out = new DataOutputStream(outstream);
|
DataOutputStream out = new DataOutputStream(outstream);
|
||||||
if(subchannel.equals("Chat")) {
|
if(subchannel.equals("Chat")) {
|
||||||
String chatchannel = in.readUTF();
|
String chatchannel = in.readUTF();
|
||||||
String message = in.readUTF();
|
String senderName = in.readUTF();
|
||||||
String playerName = in.readUTF();
|
String senderUUID = in.readUTF();
|
||||||
boolean bungeeToggle = in.readBoolean();
|
boolean bungeeToggle = in.readBoolean();
|
||||||
String lastMessage = in.readUTF();
|
int hash = in.readInt();
|
||||||
String f = in.readUTF();
|
String consoleChat = in.readUTF();
|
||||||
String c = in.readUTF();
|
|
||||||
String json = in.readUTF();
|
String json = in.readUTF();
|
||||||
out.writeUTF("Chat");
|
out.writeUTF("Chat");
|
||||||
out.writeUTF(chatchannel);
|
out.writeUTF(chatchannel);
|
||||||
out.writeUTF(message);
|
out.writeUTF(senderName);
|
||||||
out.writeUTF(playerName);
|
out.writeUTF(senderUUID);
|
||||||
out.writeUTF(lastMessage);
|
out.writeInt(hash);
|
||||||
out.writeUTF(f);
|
out.writeUTF(consoleChat);
|
||||||
out.writeUTF(c);
|
|
||||||
out.writeUTF(json);
|
out.writeUTF(json);
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
for(String send : getProxy().getServers().keySet()) {
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
||||||
|
@ -10,7 +10,6 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
|
||||||
import com.comphenix.protocol.events.PacketContainer;
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
|
|
||||||
@ -21,13 +20,12 @@ import mineverse.Aust1n46.chat.command.MineverseCommand;
|
|||||||
import mineverse.Aust1n46.chat.utilities.Format;
|
import mineverse.Aust1n46.chat.utilities.Format;
|
||||||
|
|
||||||
public class Edit extends MineverseCommand {
|
public class Edit extends MineverseCommand {
|
||||||
private PacketContainer emptyLinePacketContainer = createPacketPlayOutChat(WrappedChatComponent.fromJson("{\"extra\":[\" \"],\"text\":\"\"}"));
|
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat(WrappedChatComponent.fromJson("{\"extra\":[\" \"],\"text\":\"\"}"));
|
||||||
private MineverseChat plugin;
|
private MineverseChat plugin = MineverseChat.getInstance();
|
||||||
private WrappedChatComponent messageDeletedComponentPlayer;
|
private WrappedChatComponent messageDeletedComponentPlayer;
|
||||||
|
|
||||||
public Edit(String name) {
|
public Edit(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
this.plugin = MineverseChat.getInstance();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -60,7 +58,7 @@ public class Edit extends MineverseCommand {
|
|||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
|
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
|
||||||
message.setComponent(removedComponent);
|
message.setComponent(removedComponent);
|
||||||
message.setHash(-1);
|
message.setHash(-1);
|
||||||
playerPackets.add(Edit.this.createPacketPlayOutChat(removedComponent));
|
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
|
||||||
resend = true;
|
resend = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -70,12 +68,12 @@ public class Edit extends MineverseCommand {
|
|||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
|
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Edit.this.getMessageDeletedChatComponentAdmin(message) : Edit.this.getMessageDeletedChatComponentPlayer();
|
||||||
message.setComponent(removedComponent);
|
message.setComponent(removedComponent);
|
||||||
message.setHash(-1);
|
message.setHash(-1);
|
||||||
playerPackets.add(Edit.this.createPacketPlayOutChat(removedComponent));
|
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
|
||||||
resend = true;
|
resend = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
playerPackets.add(Edit.this.createPacketPlayOutChat(message.getComponent()));
|
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
|
||||||
}
|
}
|
||||||
if(resend) {
|
if(resend) {
|
||||||
packets.put(p.getPlayer(), playerPackets);
|
packets.put(p.getPlayer(), playerPackets);
|
||||||
@ -86,7 +84,7 @@ public class Edit extends MineverseCommand {
|
|||||||
for(Player p : packets.keySet()) {
|
for(Player p : packets.keySet()) {
|
||||||
List<PacketContainer> pPackets = packets.get(p);
|
List<PacketContainer> pPackets = packets.get(p);
|
||||||
for(PacketContainer c : pPackets) {
|
for(PacketContainer c : pPackets) {
|
||||||
Edit.this.sendPacketPlayOutChat(p, c);
|
Format.sendPacketPlayOutChat(p, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,21 +93,6 @@ public class Edit extends MineverseCommand {
|
|||||||
}.runTaskAsynchronously(plugin);
|
}.runTaskAsynchronously(plugin);
|
||||||
}
|
}
|
||||||
|
|
||||||
private PacketContainer createPacketPlayOutChat(WrappedChatComponent component) {
|
|
||||||
PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT);
|
|
||||||
container.getChatComponents().write(0, component);
|
|
||||||
return container;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendPacketPlayOutChat(Player player, PacketContainer packet) {
|
|
||||||
try {
|
|
||||||
plugin.protocolManager.sendServerPacket(player, packet);
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
|
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
|
||||||
if(this.messageDeletedComponentPlayer == null) {
|
if(this.messageDeletedComponentPlayer == null) {
|
||||||
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
|
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
|
||||||
@ -118,7 +101,7 @@ public class Edit extends MineverseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
|
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
|
||||||
String oMessage = message.getOriginalComponent().getJson().substring(1, message.getOriginalComponent().getJson().length() - 11);
|
String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11);
|
||||||
if(message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
|
if(message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
|
||||||
oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]";
|
oMessage = oMessage.substring(0, oMessage.length() - plugin.getConfig().getString("messageremovericon").length() - 4) + "\"}]";
|
||||||
}
|
}
|
||||||
|
@ -11,22 +11,18 @@ import mineverse.Aust1n46.chat.ChatMessage;
|
|||||||
import mineverse.Aust1n46.chat.MineverseChat;
|
import mineverse.Aust1n46.chat.MineverseChat;
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||||
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
||||||
//import mineverse.Aust1n46.chat.json.JsonButton;
|
|
||||||
import mineverse.Aust1n46.chat.utilities.Format;
|
import mineverse.Aust1n46.chat.utilities.Format;
|
||||||
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.scheduler.BukkitRunnable;
|
import org.bukkit.scheduler.BukkitRunnable;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
|
||||||
import com.comphenix.protocol.events.PacketContainer;
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
import com.comphenix.protocol.wrappers.EnumWrappers.ChatType;
|
|
||||||
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
|
|
||||||
public class Removemessage extends MineverseCommand {
|
public class Removemessage extends MineverseCommand {
|
||||||
private PacketContainer emptyLinePacketContainer = createPacketPlayOutChat(WrappedChatComponent.fromJson("{\"extra\":[\" \"],\"text\":\"\"}"));
|
private PacketContainer emptyLinePacketContainer = Format.createPacketPlayOutChat(WrappedChatComponent.fromJson("{\"extra\":[\" \"],\"text\":\"\"}"));
|
||||||
private MineverseChat plugin;
|
private MineverseChat plugin;
|
||||||
private WrappedChatComponent messageDeletedComponentPlayer;
|
private WrappedChatComponent messageDeletedComponentPlayer;
|
||||||
|
|
||||||
@ -76,12 +72,11 @@ public class Removemessage extends MineverseCommand {
|
|||||||
playerPackets.add(Removemessage.this.emptyLinePacketContainer);
|
playerPackets.add(Removemessage.this.emptyLinePacketContainer);
|
||||||
}
|
}
|
||||||
for(ChatMessage message : messages) {
|
for(ChatMessage message : messages) {
|
||||||
//System.out.println(message.getMessage() + " remover test");
|
|
||||||
if(message.getHash() == hash) {
|
if(message.getHash() == hash) {
|
||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
||||||
message.setComponent(removedComponent);
|
message.setComponent(removedComponent);
|
||||||
message.setHash(-1);
|
message.setHash(-1);
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(removedComponent));
|
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
|
||||||
resend = true;
|
resend = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -91,58 +86,12 @@ public class Removemessage extends MineverseCommand {
|
|||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
||||||
message.setComponent(removedComponent);
|
message.setComponent(removedComponent);
|
||||||
message.setHash(-1);
|
message.setHash(-1);
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(removedComponent));
|
playerPackets.add(Format.createPacketPlayOutChat(removedComponent));
|
||||||
resend = true;
|
resend = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*if(message.getMessage().contains(Format.FormatStringAll(plugin.getConfig().getString("messageremovericon")))) {
|
playerPackets.add(Format.createPacketPlayOutChat(message.getComponent()));
|
||||||
String submessage = message.getMessage().substring(0, message.getMessage().length() - plugin.getConfig().getString("messageremovericon").length() - 1).replaceAll("(§([a-z0-9]))", "");
|
|
||||||
if(submessage.hashCode() == hash) {
|
|
||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
|
||||||
message.setComponent(removedComponent);
|
|
||||||
message.setHash(-1);
|
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(removedComponent));
|
|
||||||
resend = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int cut = 0;
|
|
||||||
for(JsonButton b : MineverseChat.jbInfo.getJsonButtons()) {
|
|
||||||
if(b.hasPermission() && p.getPlayer().hasPermission(b.getPermission())) {
|
|
||||||
cut += b.getIcon().length() - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
submessage = submessage.substring(0, submessage.length() - cut).replaceAll("(§([a-z0-9]))", "");
|
|
||||||
//System.out.println(submessage + " submess");
|
|
||||||
if(submessage.hashCode() == hash) {
|
|
||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
|
||||||
message.setComponent(removedComponent);
|
|
||||||
message.setHash(-1);
|
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(removedComponent));
|
|
||||||
resend = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int cut = 0;
|
|
||||||
for(JsonButton b : MineverseChat.jbInfo.getJsonButtons()) {
|
|
||||||
if(b.hasPermission() && p.getPlayer().hasPermission(b.getPermission()) && message.getMessage().contains(b.getIcon())) {
|
|
||||||
cut += b.getIcon().length() - 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String submessage = message.getMessage().replaceAll("(§([a-z0-9]))", "");
|
|
||||||
//System.out.println(submessage + " " + submessage.length());
|
|
||||||
submessage = submessage.substring(0, submessage.length() - cut);
|
|
||||||
//System.out.println(submessage);
|
|
||||||
if(submessage.hashCode() == hash) {
|
|
||||||
WrappedChatComponent removedComponent = p.getPlayer().hasPermission("venturechat.message.bypass") ? Removemessage.this.getMessageDeletedChatComponentAdmin(message) : Removemessage.this.getMessageDeletedChatComponentPlayer();
|
|
||||||
message.setComponent(removedComponent);
|
|
||||||
message.setHash(-1);
|
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(removedComponent));
|
|
||||||
resend = true;
|
|
||||||
continue;
|
|
||||||
}*/
|
|
||||||
//System.out.println(message.getComponent().getJson());
|
|
||||||
playerPackets.add(Removemessage.this.createPacketPlayOutChat(message.getComponent()));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(resend) {
|
if(resend) {
|
||||||
@ -154,7 +103,7 @@ public class Removemessage extends MineverseCommand {
|
|||||||
for(Player p : packets.keySet()) {
|
for(Player p : packets.keySet()) {
|
||||||
List<PacketContainer> pPackets = packets.get(p);
|
List<PacketContainer> pPackets = packets.get(p);
|
||||||
for(PacketContainer c : pPackets) {
|
for(PacketContainer c : pPackets) {
|
||||||
Removemessage.this.sendPacketPlayOutChat(p, c);
|
Format.sendPacketPlayOutChat(p, c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -164,34 +113,15 @@ public class Removemessage extends MineverseCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private PacketContainer createPacketPlayOutChat(WrappedChatComponent component) {
|
|
||||||
PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT);
|
|
||||||
container.getChatComponents().write(0, component);
|
|
||||||
if(!VersionHandler.is1_7_10() && !VersionHandler.is1_8() && !VersionHandler.is1_9() && !VersionHandler.is1_10() && !VersionHandler.is1_11()) {
|
|
||||||
container.getChatTypes().write(0, ChatType.CHAT);
|
|
||||||
}
|
|
||||||
return container;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendPacketPlayOutChat(Player player, PacketContainer packet) {
|
|
||||||
try {
|
|
||||||
plugin.protocolManager.sendServerPacket(player, packet);
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
|
public WrappedChatComponent getMessageDeletedChatComponentPlayer() {
|
||||||
if(this.messageDeletedComponentPlayer == null) {
|
if(this.messageDeletedComponentPlayer == null) {
|
||||||
//this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"<message removed>\",\"color\":\"red\",\"italic\":\"true\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
|
|
||||||
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremovertext")) + "\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
|
this.messageDeletedComponentPlayer = WrappedChatComponent.fromJson("{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremovertext")) + "\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[{\"text\":\"" + Format.FormatStringAll(plugin.getConfig().getString("messageremoverpermissions")) + "\"}]}}}]}");
|
||||||
}
|
}
|
||||||
return this.messageDeletedComponentPlayer;
|
return this.messageDeletedComponentPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
|
public WrappedChatComponent getMessageDeletedChatComponentAdmin(ChatMessage message) {
|
||||||
String oMessage = message.getOriginalComponent().getJson().substring(1, message.getOriginalComponent().getJson().length() - 11);
|
String oMessage = message.getComponent().getJson().substring(1, message.getComponent().getJson().length() - 11);
|
||||||
if(message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
|
if(message.getMessage().contains(ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))))) {
|
||||||
oMessage = oMessage.substring(0, oMessage.length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length() - 3) + "\"}]";
|
oMessage = oMessage.substring(0, oMessage.length() - ChatColor.stripColor(Format.FormatStringAll(plugin.getConfig().getString("guiicon"))).length() - 3) + "\"}]";
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package mineverse.Aust1n46.chat.listeners;
|
|||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
import java.sql.Statement;
|
||||||
@ -24,6 +25,10 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.messaging.PluginMessageRecipient;
|
import org.bukkit.plugin.messaging.PluginMessageRecipient;
|
||||||
|
|
||||||
|
import com.comphenix.protocol.PacketType;
|
||||||
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
import com.massivecraft.factions.entity.MPlayer;
|
import com.massivecraft.factions.entity.MPlayer;
|
||||||
import com.palmergames.bukkit.towny.object.Resident;
|
import com.palmergames.bukkit.towny.object.Resident;
|
||||||
import com.palmergames.bukkit.towny.object.TownyUniverse;
|
import com.palmergames.bukkit.towny.object.TownyUniverse;
|
||||||
@ -51,12 +56,8 @@ public class ChatListener implements Listener {
|
|||||||
private MineverseChat plugin;
|
private MineverseChat plugin;
|
||||||
private ChatChannelInfo cc;
|
private ChatChannelInfo cc;
|
||||||
|
|
||||||
public ChatListener(MineverseChat plugin) {
|
public ChatListener(ChatChannelInfo cc) {
|
||||||
this.plugin = plugin;
|
this.plugin = MineverseChat.getInstance();
|
||||||
}
|
|
||||||
|
|
||||||
public ChatListener(MineverseChat plugin, ChatChannelInfo cc) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
this.cc = cc;
|
this.cc = cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +84,8 @@ public class ChatListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event) {
|
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event) {
|
||||||
boolean bungee = false;
|
boolean bungee = false;
|
||||||
String evMessage;
|
String chat;
|
||||||
|
String format;
|
||||||
if(event.isCancelled()) {
|
if(event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -93,6 +95,7 @@ public class ChatListener implements Listener {
|
|||||||
mcp.getPlayer().sendMessage(Format.FormatStringAll(event.getMessage()));
|
mcp.getPlayer().sendMessage(Format.FormatStringAll(event.getMessage()));
|
||||||
mcp.setEditing(false);
|
mcp.setEditing(false);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
if(mcp.isQuickChat()) {
|
if(mcp.isQuickChat()) {
|
||||||
eventChannel = mcp.getQuickChannel();
|
eventChannel = mcp.getQuickChannel();
|
||||||
@ -247,7 +250,7 @@ public class ChatListener implements Listener {
|
|||||||
if(p.isOnline() && event.getMessage().startsWith("@" + p.getPlayer().getDisplayName().replace("§r", ""))) {
|
if(p.isOnline() && event.getMessage().startsWith("@" + p.getPlayer().getDisplayName().replace("§r", ""))) {
|
||||||
int add = 0;
|
int add = 0;
|
||||||
if(p.getPlayer().getDisplayName().contains("§r")) add = 2;
|
if(p.getPlayer().getDisplayName().contains("§r")) add = 2;
|
||||||
String format = event.getMessage().substring(p.getPlayer().getDisplayName().length() + 1 - add);
|
String messageFormat = event.getMessage().substring(p.getPlayer().getDisplayName().length() + 1 - add);
|
||||||
if(event.getMessage().length() <= p.getPlayer().getDisplayName().length() + 1 - add) {
|
if(event.getMessage().length() <= p.getPlayer().getDisplayName().length() + 1 - add) {
|
||||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You must include a message.");
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You must include a message.");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -274,31 +277,31 @@ public class ChatListener implements Listener {
|
|||||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getPlayer().getDisplayName() + " is currently afk and might be unable to chat at this time.");
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getPlayer().getDisplayName() + " is currently afk and might be unable to chat at this time.");
|
||||||
}
|
}
|
||||||
if(mcp.hasFilter()) {
|
if(mcp.hasFilter()) {
|
||||||
format = cc.FilterChat(format);
|
messageFormat = cc.FilterChat(messageFormat);
|
||||||
}
|
}
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
||||||
format = Format.FormatStringColor(format);
|
messageFormat = Format.FormatStringColor(messageFormat);
|
||||||
}
|
}
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
||||||
format = Format.FormatString(format);
|
messageFormat = Format.FormatString(messageFormat);
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
||||||
echo = "You message " + p.getPlayer().getDisplayName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
echo = "You message " + p.getPlayer().getDisplayName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + format;
|
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + messageFormat;
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
||||||
send = mcp.getPlayer().getDisplayName() + " messages you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
send = mcp.getPlayer().getDisplayName() + " messages you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + format;
|
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + messageFormat;
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
||||||
spy = p.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
spy = p.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy").replace("{playerto}", p.getName()).replace("{playerfrom}", mcp.getName())) + format;
|
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy").replace("{playerto}", p.getName()).replace("{playerfrom}", mcp.getName())) + messageFormat;
|
||||||
}
|
}
|
||||||
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
||||||
if(sp.isSpy()) {
|
if(sp.isSpy()) {
|
||||||
@ -318,12 +321,12 @@ public class ChatListener implements Listener {
|
|||||||
}
|
}
|
||||||
p.setReplyPlayer(mcp.getUUID());
|
p.setReplyPlayer(mcp.getUUID());
|
||||||
mcp.setReplyPlayer(p.getUUID());
|
mcp.setReplyPlayer(p.getUUID());
|
||||||
Bukkit.getConsoleSender().sendMessage(mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format);
|
Bukkit.getConsoleSender().sendMessage(mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(event.getMessage().startsWith("@" + p.getName())) {
|
if(event.getMessage().startsWith("@" + p.getName())) {
|
||||||
String format = event.getMessage().substring(p.getName().length() + 1);
|
String messageFormat = event.getMessage().substring(p.getName().length() + 1);
|
||||||
if(event.getMessage().length() <= p.getName().length() + 1) {
|
if(event.getMessage().length() <= p.getName().length() + 1) {
|
||||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You must include a message.");
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You must include a message.");
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -349,31 +352,31 @@ public class ChatListener implements Listener {
|
|||||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getPlayer().getDisplayName() + " is currently afk and might be unable to chat at this time.");
|
mcp.getPlayer().sendMessage(ChatColor.GOLD + p.getPlayer().getDisplayName() + " is currently afk and might be unable to chat at this time.");
|
||||||
}
|
}
|
||||||
if(mcp.hasFilter()) {
|
if(mcp.hasFilter()) {
|
||||||
format = cc.FilterChat(format);
|
messageFormat = cc.FilterChat(messageFormat);
|
||||||
}
|
}
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
||||||
format = Format.FormatStringColor(format);
|
messageFormat = Format.FormatStringColor(messageFormat);
|
||||||
}
|
}
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
||||||
format = Format.FormatString(format);
|
messageFormat = Format.FormatString(messageFormat);
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatto").equalsIgnoreCase("Default")) {
|
||||||
echo = "You message " + p.getNickname() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
echo = "You message " + p.getNickname() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + format;
|
echo = Format.FormatStringAll(plugin.getConfig().getString("tellformatto").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + messageFormat;
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatfrom").equalsIgnoreCase("Default")) {
|
||||||
send = mcp.getNickname() + " messages you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
send = mcp.getNickname() + " messages you:" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + format;
|
send = Format.FormatStringAll(plugin.getConfig().getString("tellformatfrom").replace("{playerto}", p.getPlayer().getDisplayName()).replace("{playerfrom}", mcp.getPlayer().getDisplayName())) + messageFormat;
|
||||||
}
|
}
|
||||||
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getString("tellformatspy").equalsIgnoreCase("Default")) {
|
||||||
spy = mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format;
|
spy = mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy").replace("{playerto}", p.getName()).replace("{playerfrom}", mcp.getName())) + format;
|
spy = Format.FormatStringAll(plugin.getConfig().getString("tellformatspy").replace("{playerto}", p.getName()).replace("{playerfrom}", mcp.getName())) + messageFormat;
|
||||||
}
|
}
|
||||||
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
for(MineverseChatPlayer sp : MineverseChat.onlinePlayers) {
|
||||||
if(sp.isSpy()) {
|
if(sp.isSpy()) {
|
||||||
@ -392,13 +395,13 @@ public class ChatListener implements Listener {
|
|||||||
}
|
}
|
||||||
p.setReplyPlayer(mcp.getUUID());
|
p.setReplyPlayer(mcp.getUUID());
|
||||||
mcp.setReplyPlayer(p.getUUID());
|
mcp.setReplyPlayer(p.getUUID());
|
||||||
Bukkit.getConsoleSender().sendMessage(mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + format);
|
Bukkit.getConsoleSender().sendMessage(mcp.getName() + " messages " + p.getName() + ":" + ChatColor.valueOf(cc.tellColor.toUpperCase()) + messageFormat);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
evMessage = event.getMessage();
|
chat = event.getMessage();
|
||||||
Location locreceip;
|
Location locreceip;
|
||||||
Location locsender = mcp.getPlayer().getLocation();
|
Location locsender = mcp.getPlayer().getLocation();
|
||||||
Location diff;
|
Location diff;
|
||||||
@ -430,7 +433,6 @@ public class ChatListener implements Listener {
|
|||||||
Double chDistance = (double) 0;
|
Double chDistance = (double) 0;
|
||||||
int chCooldown = 0;
|
int chCooldown = 0;
|
||||||
String curColor = "";
|
String curColor = "";
|
||||||
String Channelformat;
|
|
||||||
boolean irc = false;
|
boolean irc = false;
|
||||||
if(eventChannel.hasPermission() && !mcp.getPlayer().hasPermission(eventChannel.getPermission())) {
|
if(eventChannel.hasPermission() && !mcp.getPlayer().hasPermission(eventChannel.getPermission())) {
|
||||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this channel.");
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You do not have permission for this channel.");
|
||||||
@ -469,7 +471,7 @@ public class ChatListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(eventChannel.hasCooldown() && !event.isCancelled()) {
|
if(eventChannel.hasCooldown()) {
|
||||||
if(!mcp.getPlayer().hasPermission("venturechat.cooldown.bypass")) {
|
if(!mcp.getPlayer().hasPermission("venturechat.cooldown.bypass")) {
|
||||||
mcp.addCooldown(eventChannel, time + chCooldown);
|
mcp.addCooldown(eventChannel, time + chCooldown);
|
||||||
}
|
}
|
||||||
@ -499,6 +501,7 @@ public class ChatListener implements Listener {
|
|||||||
mcp.getPlayer().sendMessage(ChatColor.RED + "You have been muted for spamming in: " + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + eventChannel.getName() + timedmute);
|
mcp.getPlayer().sendMessage(ChatColor.RED + "You have been muted for spamming in: " + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + eventChannel.getName() + timedmute);
|
||||||
mcp.setQuickChat(false);
|
mcp.setQuickChat(false);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(spamtimeconfig % 2 != 0) spamtimeconfig++;
|
if(spamtimeconfig % 2 != 0) spamtimeconfig++;
|
||||||
@ -527,23 +530,23 @@ public class ChatListener implements Listener {
|
|||||||
}
|
}
|
||||||
if(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format").equalsIgnoreCase("Default")) {
|
if(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format").equalsIgnoreCase("Default")) {
|
||||||
if(curColor.equalsIgnoreCase("None")) {
|
if(curColor.equalsIgnoreCase("None")) {
|
||||||
Channelformat = FormatTags.ChatFormat(ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "[" + eventChannel.getName() + "] {prefix}{name}" + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + ":", mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
format = FormatTags.ChatFormat(ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "[" + eventChannel.getName() + "] {prefix}{name}" + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + ":", mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Channelformat = FormatTags.ChatFormat(ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "[" + eventChannel.getName() + "] {prefix}{name}" + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(eventChannel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
format = FormatTags.ChatFormat(ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + "[" + eventChannel.getName() + "] {prefix}{name}" + ChatColor.valueOf(eventChannel.getColor().toUpperCase()) + ":" + ChatColor.valueOf(eventChannel.getChatColor().toUpperCase()), mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Channelformat = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
format = FormatTags.ChatFormat(plugin.getConfig().getConfigurationSection("channels." + eventChannel.getName()).getString("format"), mcp.getPlayer(), plugin, cc, eventChannel, plugin.getConfig().getBoolean("jsonFormat"));
|
||||||
if(plugin.getConfig().getBoolean("formatcleaner", false)) {
|
if(plugin.getConfig().getBoolean("formatcleaner", false)) {
|
||||||
Channelformat = Channelformat.replace("[]", " ");
|
format = format.replace("[]", " ");
|
||||||
Channelformat = Channelformat.replace(" ", " ").replace(" ", " ").replace(" ", " ");
|
format = format.replace(" ", " ").replace(" ", " ").replace(" ", " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
filterthis = eventChannel.isFiltered();
|
filterthis = eventChannel.isFiltered();
|
||||||
if(filterthis) {
|
if(filterthis) {
|
||||||
if(mcp.hasFilter()) {
|
if(mcp.hasFilter()) {
|
||||||
evMessage = cc.FilterChat(evMessage);
|
chat = cc.FilterChat(chat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Player[] pl = event.getRecipients().toArray(new Player[0]);
|
Player[] pl = event.getRecipients().toArray(new Player[0]);
|
||||||
@ -647,110 +650,96 @@ public class ChatListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!mcp.getPlayer().canSee(p.getPlayer())) {
|
if(!mcp.getPlayer().canSee(p.getPlayer())) {
|
||||||
|
event.getRecipients().remove(p.getPlayer());
|
||||||
recipientSize--;
|
recipientSize--;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(recipientSize == 1 && !bungee && !event.isCancelled()) {
|
if(recipientSize == 1 && !bungee) {
|
||||||
if(!plugin.getConfig().getString("emptychannelalert", "&6No one is listening to you.").equals(""))
|
if(!plugin.getConfig().getString("emptychannelalert", "&6No one is listening to you.").equals("")) {
|
||||||
mcp.getPlayer().sendMessage(Format.FormatStringAll(plugin.getConfig().getString("emptychannelalert", "&6No one is listening to you.")));
|
mcp.getPlayer().sendMessage(Format.FormatStringAll(plugin.getConfig().getString("emptychannelalert", "&6No one is listening to you.")));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
if(mcp.getPlayer().hasPermission("venturechat.color")) {
|
||||||
evMessage = Format.FormatStringColor(evMessage);
|
chat = Format.FormatStringColor(chat);
|
||||||
|
}
|
||||||
|
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
||||||
|
chat = Format.FormatString(chat);
|
||||||
|
}
|
||||||
|
if(!mcp.isQuickChat()) {
|
||||||
|
chat = " " + chat;
|
||||||
|
}
|
||||||
|
mcp.setQuickChat(false);
|
||||||
|
if(curColor.equalsIgnoreCase("None")) {
|
||||||
|
chat = Format.getLastCode(format) + chat;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
chat = ChatColor.valueOf(curColor) + chat;
|
||||||
|
}
|
||||||
|
|
||||||
|
String globalJSON = Format.convertToJson(mcp, format, chat);
|
||||||
|
String consoleChat = format + chat;
|
||||||
|
String message = consoleChat.replaceAll("(§([a-z0-9]))", "");
|
||||||
|
|
||||||
|
/* Temp disabled for 1.14
|
||||||
|
* ChatMessageEvent chatMessageEvent = new ChatMessageEvent(mcp, eventChannel, bungee, MineverseChat.lastChatMessage, MineverseChat.lastJson);
|
||||||
|
Bukkit.getServer().getPluginManager().callEvent(chatMessageEvent);
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(plugin.mysql) {
|
||||||
|
Statement statement;
|
||||||
|
currentDate = Calendar.getInstance();
|
||||||
|
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
date = formatter.format(currentDate.getTime());
|
||||||
|
try {
|
||||||
|
statement = plugin.c.createStatement();
|
||||||
|
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', '" + mcp.getUUID().toString() + "', '" + mcp.getName() + "', '" + plugin.getServer().getName() + "', '" + eventChannel.getName() + "', '" + event.getMessage().replace("'", "''") + "', 'Chat');");
|
||||||
}
|
}
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.format")) {
|
catch(SQLException e) {
|
||||||
evMessage = Format.FormatString(evMessage);
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
if(!mcp.isQuickChat()) {
|
}
|
||||||
evMessage = " " + evMessage;
|
|
||||||
|
if(!bungee) {
|
||||||
|
for(Player p : event.getRecipients()) {
|
||||||
|
String json = Format.formatModerationGUI(globalJSON, p, mcp.getName(), eventChannel.getName(), message.hashCode());
|
||||||
|
WrappedChatComponent chatComponent = WrappedChatComponent.fromJson(json);
|
||||||
|
PacketContainer packet = Format.createPacketPlayOutChat(chatComponent);
|
||||||
|
Format.sendPacketPlayOutChat(p, packet);
|
||||||
}
|
}
|
||||||
if(curColor.equalsIgnoreCase("None")) {
|
Bukkit.getConsoleSender().sendMessage(consoleChat);
|
||||||
event.setMessage(evMessage);
|
event.setCancelled(true);
|
||||||
}
|
return;
|
||||||
else {
|
}
|
||||||
event.setMessage(ChatColor.valueOf(curColor) + evMessage);
|
else {
|
||||||
}
|
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
||||||
mcp.setQuickChat(false);
|
DataOutputStream out = new DataOutputStream(byteOutStream);
|
||||||
String message = String.format(Channelformat + "%s", new Object[] { event.getMessage() });
|
try {
|
||||||
event.setFormat(message.replace("%", "%%"));
|
out.writeUTF("Chat");
|
||||||
message = message.replaceAll("(§([a-z0-9]))", "");
|
out.writeUTF(eventChannel.getName());
|
||||||
String format = Channelformat;
|
out.writeUTF(mcp.getName());
|
||||||
String chat = event.getMessage();
|
out.writeUTF(mcp.getUUID().toString());
|
||||||
if(curColor.equalsIgnoreCase("None")) {
|
out.writeBoolean(mcp.getBungeeToggle());
|
||||||
chat = Format.getLastCode(format) + chat;
|
out.writeInt(message.hashCode());
|
||||||
event.setMessage(chat);
|
out.writeUTF(consoleChat);
|
||||||
}
|
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||||
MineverseChat.lastChatMessage = new ChatMessage(mcp.getPlayer().getName(), message, message.hashCode(), format, chat, eventChannel.getName());
|
System.out.println(out.size() + " size bytes without json");
|
||||||
MineverseChat.lastJson = Format.convertToJson(MineverseChat.lastChatMessage);
|
|
||||||
|
|
||||||
|
|
||||||
/* Temp disabled for 1.14
|
|
||||||
* ChatMessageEvent chatMessageEvent = new ChatMessageEvent(mcp, eventChannel, bungee, MineverseChat.lastChatMessage, MineverseChat.lastJson);
|
|
||||||
Bukkit.getServer().getPluginManager().callEvent(chatMessageEvent);
|
|
||||||
*/
|
|
||||||
|
|
||||||
if(plugin.mysql) {
|
|
||||||
Statement statement;
|
|
||||||
currentDate = Calendar.getInstance();
|
|
||||||
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
date = formatter.format(currentDate.getTime());
|
|
||||||
try {
|
|
||||||
statement = plugin.c.createStatement();
|
|
||||||
statement.executeUpdate("INSERT INTO `VentureChat` (`ChatTime`, `UUID`, `Name`, `Server`, `Channel`, `Text`, `Type`) VALUES ('" + date + "', '" + mcp.getUUID().toString() + "', '" + mcp.getName() + "', '" + plugin.getServer().getName() + "', '" + eventChannel.getName() + "', '" + event.getMessage().replace("'", "''") + "', 'Chat');");
|
|
||||||
}
|
}
|
||||||
catch(SQLException e) {
|
out.writeUTF(globalJSON);
|
||||||
e.printStackTrace();
|
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
||||||
}
|
System.out.println(out.size() + " bytes size with json");
|
||||||
}
|
|
||||||
if(bungee && !event.isCancelled()) {
|
|
||||||
message = String.format(Channelformat + event.getMessage(), new Object[] { event.getPlayer().getDisplayName(), event.getMessage() }).replaceAll("(§([a-z0-9]))", "");
|
|
||||||
format = String.format(Channelformat, new Object[] { event.getPlayer().getDisplayName() });
|
|
||||||
chat = event.getMessage();
|
|
||||||
//MineverseChat.lastChatMessage = new ChatMessage(mcp.getPlayer().getName(), message, message.hashCode(), format, chat, eventChannel.getName());
|
|
||||||
//MineverseChat.lastJson = Format.convertToJson(MineverseChat.lastChatMessage);
|
|
||||||
event.setCancelled(true);
|
|
||||||
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
|
||||||
DataOutputStream out = new DataOutputStream(byteOutStream);
|
|
||||||
try {
|
|
||||||
out.writeUTF("Chat");
|
|
||||||
out.writeUTF(eventChannel.getName());
|
|
||||||
out.writeUTF(Channelformat + event.getMessage());
|
|
||||||
out.writeUTF(mcp.getName());
|
|
||||||
out.writeBoolean(mcp.getBungeeToggle());
|
|
||||||
out.writeUTF(message);
|
|
||||||
out.writeUTF(format);
|
|
||||||
out.writeUTF(chat);
|
|
||||||
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
|
||||||
System.out.println(out.size() + " size bytes without json");
|
|
||||||
}
|
|
||||||
out.writeUTF(MineverseChat.lastJson);
|
|
||||||
if(plugin.getConfig().getString("loglevel", "info").equals("debug")) {
|
|
||||||
System.out.println(out.size() + " bytes size with json");
|
|
||||||
}
|
|
||||||
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
|
||||||
|
|
||||||
//PluginMessageRecipient test = (PluginMessageRecipient) mcp.getPlayer();
|
|
||||||
//System.out.println("Listening plugin channels?");
|
|
||||||
//System.out.println(test.getListeningPluginChannels());
|
|
||||||
//System.out.println("PluginMessageRecipient methods?");
|
|
||||||
//for(Method m : test.getClass().getMethods()) {
|
|
||||||
//System.out.println(m.getName());
|
|
||||||
//}
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
||||||
|
|
||||||
|
out.close();
|
||||||
}
|
}
|
||||||
}
|
catch(Exception e) {
|
||||||
catch(IllegalFormatException ex) {
|
e.printStackTrace();
|
||||||
// plugin.getLogger().log(Level.INFO,
|
}
|
||||||
// "Message Format issue: {0}:{1}", new Object[] { ex.getMessage(),
|
event.setCancelled(true);
|
||||||
// evMessage });
|
return;
|
||||||
event.setMessage(Channelformat + evMessage);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -38,12 +38,11 @@ import me.clip.placeholderapi.PlaceholderAPI;
|
|||||||
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
|
//This class listens for commands (Any chat that begins with a /) to use in the command spy and
|
||||||
//in the custom commands such as aliases.
|
//in the custom commands such as aliases.
|
||||||
public class CommandListener implements CommandExecutor, Listener {
|
public class CommandListener implements CommandExecutor, Listener {
|
||||||
private MineverseChat plugin;
|
private MineverseChat plugin = MineverseChat.getInstance();
|
||||||
private ChatChannelInfo cc;
|
private ChatChannelInfo cc;
|
||||||
private AliasInfo aa;
|
private AliasInfo aa;
|
||||||
|
|
||||||
public CommandListener(MineverseChat plugin, ChatChannelInfo cc, AliasInfo aa) {
|
public CommandListener(ChatChannelInfo cc, AliasInfo aa) {
|
||||||
this.plugin = plugin;
|
|
||||||
this.cc = cc;
|
this.cc = cc;
|
||||||
this.aa = aa;
|
this.aa = aa;
|
||||||
}
|
}
|
||||||
|
@ -30,12 +30,11 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||||||
//This class listens for when Players login or logout and manages their wrapped MineverseChatPlayer
|
//This class listens for when Players login or logout and manages their wrapped MineverseChatPlayer
|
||||||
//and it's data.
|
//and it's data.
|
||||||
public class LoginListener implements Listener {
|
public class LoginListener implements Listener {
|
||||||
private MineverseChat plugin;
|
private MineverseChat plugin = MineverseChat.getInstance();
|
||||||
private ChatChannelInfo cc;
|
private ChatChannelInfo cc;
|
||||||
private FileConfiguration playerData = PlayerData.getPlayerData();
|
private FileConfiguration playerData = PlayerData.getPlayerData();
|
||||||
|
|
||||||
public LoginListener(MineverseChat plugin, ChatChannelInfo cc) {
|
public LoginListener(ChatChannelInfo cc) {
|
||||||
this.plugin = plugin;
|
|
||||||
this.cc = cc;
|
this.cc = cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,9 @@
|
|||||||
package mineverse.Aust1n46.chat.listeners;
|
package mineverse.Aust1n46.chat.listeners;
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.json.simple.JSONArray;
|
|
||||||
import org.json.simple.JSONObject;
|
|
||||||
import org.json.simple.JSONValue;
|
|
||||||
|
|
||||||
import mineverse.Aust1n46.chat.ChatMessage;
|
import mineverse.Aust1n46.chat.ChatMessage;
|
||||||
import mineverse.Aust1n46.chat.MineverseChat;
|
import mineverse.Aust1n46.chat.MineverseChat;
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||||
import mineverse.Aust1n46.chat.utilities.Format;
|
|
||||||
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
import mineverse.Aust1n46.chat.versions.VersionHandler;
|
||||||
|
|
||||||
import com.comphenix.protocol.PacketType;
|
import com.comphenix.protocol.PacketType;
|
||||||
@ -23,9 +16,8 @@ import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
|||||||
//The packets are modified to include advanced json formating and the message remover button if the
|
//The packets are modified to include advanced json formating and the message remover button if the
|
||||||
//player has permission to remove messages.
|
//player has permission to remove messages.
|
||||||
public class PacketListener extends PacketAdapter {
|
public class PacketListener extends PacketAdapter {
|
||||||
public PacketListener(MineverseChat plugin) {
|
public PacketListener() {
|
||||||
super(plugin, ListenerPriority.MONITOR, new PacketType[] { PacketType.Play.Server.CHAT });
|
super(MineverseChat.getInstance(), ListenerPriority.MONITOR, new PacketType[] { PacketType.Play.Server.CHAT });
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -61,44 +53,13 @@ public class PacketListener extends PacketAdapter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
WrappedChatComponent chat = event.getPacket().getChatComponents().read(0);
|
WrappedChatComponent chat = event.getPacket().getChatComponents().read(0);
|
||||||
WrappedChatComponent originalChat = event.getPacket().getChatComponents().read(0);
|
|
||||||
String message = null;
|
String message = null;
|
||||||
int hash = -1;
|
int hash = -1;
|
||||||
//System.out.println(chat.getJson());
|
|
||||||
//System.out.println(MineverseChat.lastChatMessage.getMessage());
|
|
||||||
message = MineverseChat.toPlainText(chat.getHandle(), chat.getHandleType());
|
message = MineverseChat.toPlainText(chat.getHandle(), chat.getHandleType());
|
||||||
//System.out.println(chat.getJson());
|
|
||||||
//System.out.println(message + " message");
|
|
||||||
hash = message != null ? message.hashCode() : -1;
|
hash = message != null ? message.hashCode() : -1;
|
||||||
//System.out.println("remover goes in here?");
|
|
||||||
ChatMessage lastChatMessage = MineverseChat.lastChatMessage;
|
|
||||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
||||||
if(lastChatMessage != null && lastChatMessage.getHash() == hash) {
|
|
||||||
String json = MineverseChat.lastJson;
|
|
||||||
if(mcp.getPlayer().hasPermission("venturechat.gui")) {
|
|
||||||
json = json.substring(0, json.length() - 1);
|
|
||||||
json += "," + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guiicon")), ",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/vchatgui " + lastChatMessage.getSender() + " " + lastChatMessage.getChannel() + " " + lastChatMessage.getHash() +"\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guitext"))) + "]}}") + "]";
|
|
||||||
//json += ",{\"text\":\"" + "json test" + "\"}]";
|
|
||||||
}
|
|
||||||
//System.out.println("," + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guiicon")), ",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/vchatgui " + lastChatMessage.getSender() + " " + lastChatMessage.getChannel() + " " + lastChatMessage.getHash() +"\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guitext"))) + "]}}") + "]}]");
|
|
||||||
//System.out.println("\nline break\n");
|
|
||||||
//System.out.println(json);
|
|
||||||
chat.setJson(json);
|
|
||||||
event.getPacket().getChatComponents().write(0, chat);
|
|
||||||
}
|
|
||||||
if((message != null) && (chat.getHandle() != null) && mcp != null) {
|
if((message != null) && (chat.getHandle() != null) && mcp != null) {
|
||||||
mcp.addMessage(new ChatMessage(originalChat, chat, lastChatMessage != null ? lastChatMessage.getSender() : null, message, hash));
|
mcp.addMessage(new ChatMessage(chat, null, message, hash));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private String getMessage(String json) {
|
|
||||||
JSONArray components = (JSONArray) ((JSONObject) JSONValue.parse(json)).get("extra");
|
|
||||||
Iterator<?> iterator = components.iterator();
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
while(iterator.hasNext()) {
|
|
||||||
builder.append(((JSONObject) iterator.next()).get("text").toString());
|
|
||||||
}
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -13,11 +13,10 @@ import mineverse.Aust1n46.chat.utilities.Format;
|
|||||||
|
|
||||||
//This class listens for text being added to signs, and it formats them to allow colors and formatting.
|
//This class listens for text being added to signs, and it formats them to allow colors and formatting.
|
||||||
public class SignListener implements Listener {
|
public class SignListener implements Listener {
|
||||||
MineverseChat plugin;
|
MineverseChat plugin = MineverseChat.getInstance();
|
||||||
ChatChannelInfo cc;
|
ChatChannelInfo cc;
|
||||||
|
|
||||||
public SignListener(MineverseChat plugin, ChatChannelInfo cc) {
|
public SignListener(ChatChannelInfo cc) {
|
||||||
this.plugin = plugin;
|
|
||||||
this.cc = cc;
|
this.cc = cc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,15 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.comphenix.protocol.PacketType;
|
||||||
|
import com.comphenix.protocol.ProtocolLibrary;
|
||||||
|
import com.comphenix.protocol.events.PacketContainer;
|
||||||
|
import com.comphenix.protocol.wrappers.WrappedChatComponent;
|
||||||
|
|
||||||
import me.clip.placeholderapi.PlaceholderAPI;
|
import me.clip.placeholderapi.PlaceholderAPI;
|
||||||
import mineverse.Aust1n46.chat.ChatMessage;
|
|
||||||
import mineverse.Aust1n46.chat.MineverseChat;
|
import mineverse.Aust1n46.chat.MineverseChat;
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||||
import mineverse.Aust1n46.chat.json.JsonFormat;
|
import mineverse.Aust1n46.chat.json.JsonFormat;
|
||||||
|
|
||||||
@ -17,17 +21,16 @@ import mineverse.Aust1n46.chat.json.JsonFormat;
|
|||||||
public class Format {
|
public class Format {
|
||||||
private static MineverseChat plugin = MineverseChat.getInstance();
|
private static MineverseChat plugin = MineverseChat.getInstance();
|
||||||
|
|
||||||
public static String convertToJson(ChatMessage lastChatMessage) {
|
public static String convertToJson(MineverseChatPlayer sender, String format, String chat) {
|
||||||
MineverseChatPlayer icp = MineverseChatAPI.getMineverseChatPlayer(lastChatMessage.getSender());
|
JsonFormat JSONformat = MineverseChat.jfInfo.getJsonFormat(sender.getJsonFormat());
|
||||||
JsonFormat format = MineverseChat.jfInfo.getJsonFormat(icp.getJsonFormat());
|
String f = format.replace("\\", "\\\\").replace("\"", "\\\"");
|
||||||
String f = lastChatMessage.getFormat().replace("\\", "\\\\").replace("\"", "\\\"");
|
String c = chat.replace("\\", "\\\\").replace("\"", "\\\"");
|
||||||
String c = lastChatMessage.getChat().replace("\\", "\\\\").replace("\"", "\\\"");
|
|
||||||
String json = "[\"\",{\"text\":\"\",\"extra\":[";
|
String json = "[\"\",{\"text\":\"\",\"extra\":[";
|
||||||
String prefix = "";
|
String prefix = "";
|
||||||
String suffix = "";
|
String suffix = "";
|
||||||
try {
|
try {
|
||||||
prefix = FormatStringAll(MineverseChat.chat.getPlayerPrefix(icp.getPlayer()));
|
prefix = FormatStringAll(MineverseChat.chat.getPlayerPrefix(sender.getPlayer()));
|
||||||
suffix = FormatStringAll(MineverseChat.chat.getPlayerSuffix(icp.getPlayer()));
|
suffix = FormatStringAll(MineverseChat.chat.getPlayerSuffix(sender.getPlayer()));
|
||||||
if(suffix.equals("")) {
|
if(suffix.equals("")) {
|
||||||
suffix = "venturechat_no_suffix_code";
|
suffix = "venturechat_no_suffix_code";
|
||||||
}
|
}
|
||||||
@ -43,10 +46,10 @@ public class Format {
|
|||||||
prefix = "venturechat_no_prefix_code";
|
prefix = "venturechat_no_prefix_code";
|
||||||
}
|
}
|
||||||
String nickname = "";
|
String nickname = "";
|
||||||
if(icp.getPlayer() != null) {
|
if(sender.getPlayer() != null) {
|
||||||
nickname = FormatStringAll(icp.getPlayer().getDisplayName());
|
nickname = FormatStringAll(sender.getPlayer().getDisplayName());
|
||||||
}
|
}
|
||||||
json += convertPlaceholders(f, format, prefix, nickname, suffix, icp);
|
json += convertPlaceholders(f, JSONformat, prefix, nickname, suffix, sender);
|
||||||
json += "]}";
|
json += "]}";
|
||||||
json += "," + convertLinks(c);
|
json += "," + convertLinks(c);
|
||||||
json += "]";
|
json += "]";
|
||||||
@ -277,6 +280,30 @@ public class Format {
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String formatModerationGUI(String json, Player player, String sender, String channelName, int hash) {
|
||||||
|
if(player.hasPermission("venturechat.gui")) {
|
||||||
|
json = json.substring(0, json.length() - 1);
|
||||||
|
json += "," + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guiicon")), ",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/vchatgui " + sender + " " + channelName + " " + hash +"\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"\",\"extra\":[" + Format.convertToJsonColors(Format.FormatStringAll(plugin.getConfig().getString("guitext"))) + "]}}") + "]";
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static PacketContainer createPacketPlayOutChat(WrappedChatComponent component) {
|
||||||
|
PacketContainer container = new PacketContainer(PacketType.Play.Server.CHAT);
|
||||||
|
container.getModifier().writeDefaults();
|
||||||
|
container.getChatComponents().write(0, component);
|
||||||
|
return container;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendPacketPlayOutChat(Player player, PacketContainer packet) {
|
||||||
|
try {
|
||||||
|
ProtocolLibrary.getProtocolManager().sendServerPacket(player, packet);
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected static Pattern chatColorPattern = Pattern.compile("(?i)&([0-9A-F])");
|
protected static Pattern chatColorPattern = Pattern.compile("(?i)&([0-9A-F])");
|
||||||
protected static Pattern chatMagicPattern = Pattern.compile("(?i)&([K])");
|
protected static Pattern chatMagicPattern = Pattern.compile("(?i)&([K])");
|
||||||
protected static Pattern chatBoldPattern = Pattern.compile("(?i)&([L])");
|
protected static Pattern chatBoldPattern = Pattern.compile("(?i)&([L])");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user