mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-22 18:09:06 +00:00
Add Velocity proxy support.
This commit is contained in:
parent
4194911450
commit
3858519f8f
10
pom.xml
10
pom.xml
@ -100,6 +100,10 @@
|
|||||||
<id>essentialsx-repo</id>
|
<id>essentialsx-repo</id>
|
||||||
<url>https://repo.essentialsx.net/snapshots/</url>
|
<url>https://repo.essentialsx.net/snapshots/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>velocity</id>
|
||||||
|
<url>https://repo.velocitypowered.com/snapshots/</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -170,6 +174,12 @@
|
|||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.velocitypowered</groupId>
|
||||||
|
<artifactId>velocity-api</artifactId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.md-5</groupId>
|
<groupId>net.md-5</groupId>
|
||||||
<artifactId>bungeecord-api</artifactId>
|
<artifactId>bungeecord-api</artifactId>
|
||||||
|
@ -468,8 +468,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
if(subchannel.equals("Chwho")) {
|
if(subchannel.equals("Chwho")) {
|
||||||
String identifier = msgin.readUTF();
|
String identifier = msgin.readUTF();
|
||||||
if(identifier.equals("Get")) {
|
if(identifier.equals("Get")) {
|
||||||
|
String server = msgin.readUTF();
|
||||||
String sender = msgin.readUTF();
|
String sender = msgin.readUTF();
|
||||||
String name = msgin.readUTF();
|
|
||||||
String chatchannel = msgin.readUTF();
|
String chatchannel = msgin.readUTF();
|
||||||
List<String> listening = new ArrayList<String>();
|
List<String> listening = new ArrayList<String>();
|
||||||
if(ChatChannel.isChannel(chatchannel)) {
|
if(ChatChannel.isChannel(chatchannel)) {
|
||||||
@ -485,8 +485,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
|||||||
}
|
}
|
||||||
out.writeUTF("Chwho");
|
out.writeUTF("Chwho");
|
||||||
out.writeUTF("Receive");
|
out.writeUTF("Receive");
|
||||||
|
out.writeUTF(server);
|
||||||
out.writeUTF(sender);
|
out.writeUTF(sender);
|
||||||
out.writeUTF(name);
|
|
||||||
out.writeUTF(chatchannel);
|
out.writeUTF(chatchannel);
|
||||||
out.writeInt(listening.size());
|
out.writeInt(listening.size());
|
||||||
for(String s : listening) {
|
for(String s : listening) {
|
||||||
|
@ -1,19 +1,15 @@
|
|||||||
package mineverse.Aust1n46.chat.bungee;
|
package mineverse.Aust1n46.chat.bungee;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataInputStream;
|
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.util.UUID;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
|
||||||
import mineverse.Aust1n46.chat.api.SynchronizedMineverseChatPlayer;
|
|
||||||
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
|
|
||||||
import mineverse.Aust1n46.chat.database.BungeePlayerData;
|
import mineverse.Aust1n46.chat.database.BungeePlayerData;
|
||||||
import mineverse.Aust1n46.chat.database.TemporaryDataInstance;
|
|
||||||
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
|
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
|
||||||
|
import net.md_5.bungee.api.ProxyServer;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import net.md_5.bungee.api.connection.Server;
|
import net.md_5.bungee.api.connection.Server;
|
||||||
import net.md_5.bungee.api.event.PluginMessageEvent;
|
import net.md_5.bungee.api.event.PluginMessageEvent;
|
||||||
@ -32,10 +28,9 @@ import net.md_5.bungee.event.EventHandler;
|
|||||||
*
|
*
|
||||||
* @author Aust1n46
|
* @author Aust1n46
|
||||||
*/
|
*/
|
||||||
public class MineverseChatBungee extends Plugin implements Listener {
|
public class MineverseChatBungee extends Plugin implements Listener, VentureChatProxySource {
|
||||||
private static MineverseChatBungee instance;
|
private static MineverseChatBungee instance;
|
||||||
private static Configuration bungeeConfig;
|
private static Configuration bungeeConfig;
|
||||||
public static String PLUGIN_MESSAGING_CHANNEL = "venturechat:data";
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
@ -58,7 +53,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
|||||||
BungeePlayerData.loadLegacyBungeePlayerData();
|
BungeePlayerData.loadLegacyBungeePlayerData();
|
||||||
BungeePlayerData.loadBungeePlayerData();
|
BungeePlayerData.loadBungeePlayerData();
|
||||||
|
|
||||||
this.getProxy().registerChannel(PLUGIN_MESSAGING_CHANNEL);
|
this.getProxy().registerChannel(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING);
|
||||||
this.getProxy().getPluginManager().registerListener(this, this);
|
this.getProxy().getPluginManager().registerListener(this, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +97,7 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
|||||||
|
|
||||||
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) {
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
getProxy().getServers().get(send).sendData(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING, outstream.toByteArray());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -112,525 +107,30 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onPluginMessage(PluginMessageEvent ev) {
|
public void onPluginMessage(PluginMessageEvent event) {
|
||||||
//System.out.println(ev.getTag() + "," + ev.getSender().toString() + "," + (ev.getSender() instanceof Server));
|
if(!event.getTag().equals(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING) && !event.getTag().contains("viaversion:")) {
|
||||||
if(!ev.getTag().equals(PLUGIN_MESSAGING_CHANNEL) && !ev.getTag().contains("viaversion:")) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!(ev.getSender() instanceof Server)) {
|
if(!(event.getSender() instanceof Server)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Server ser = (Server) ev.getSender();
|
String serverName = ((Server) event.getSender()).getInfo().getName();
|
||||||
ByteArrayInputStream instream = new ByteArrayInputStream(ev.getData());
|
VentureChatProxy.onPluginMessage(event.getData(), serverName, this);
|
||||||
DataInputStream in = new DataInputStream(instream);
|
}
|
||||||
try {
|
|
||||||
String subchannel = in.readUTF();
|
@Override
|
||||||
//System.out.println(subchannel);
|
public void sendPluginMessage(String serverName, byte[] data) {
|
||||||
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
getProxy().getServers().get(serverName).sendData(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING, data);
|
||||||
DataOutputStream out = new DataOutputStream(outstream);
|
}
|
||||||
if(subchannel.equals("Chat")) {
|
|
||||||
String chatchannel = in.readUTF();
|
@Override
|
||||||
String senderName = in.readUTF();
|
public List<VentureChatProxyServer> getServers() {
|
||||||
String senderUUID = in.readUTF();
|
return getProxy().getServers().values().stream().map(bungeeServer -> new VentureChatProxyServer(bungeeServer.getName(), bungeeServer.getPlayers().isEmpty())).collect(Collectors.toList());
|
||||||
boolean bungeeToggle = in.readBoolean();
|
}
|
||||||
int hash = in.readInt();
|
|
||||||
String format = in.readUTF();
|
@Override
|
||||||
String chat = in.readUTF();
|
public VentureChatProxyServer getServer(String serverName) {
|
||||||
String json = in.readUTF();
|
ProxyServer server = (ProxyServer) getProxy().getServers().get(serverName);
|
||||||
String primaryGroup = in.readUTF();
|
return new VentureChatProxyServer(serverName, server.getPlayers().isEmpty());
|
||||||
String nickname = in.readUTF();
|
|
||||||
out.writeUTF("Chat");
|
|
||||||
out.writeUTF(ser.getInfo().getName());
|
|
||||||
out.writeUTF(chatchannel);
|
|
||||||
out.writeUTF(senderName);
|
|
||||||
out.writeUTF(senderUUID);
|
|
||||||
out.writeInt(hash);
|
|
||||||
out.writeUTF(format);
|
|
||||||
out.writeUTF(chat);
|
|
||||||
out.writeUTF(json);
|
|
||||||
out.writeUTF(primaryGroup);
|
|
||||||
out.writeUTF(nickname);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
if(!bungeeToggle && !getProxy().getServers().get(send).getName().equalsIgnoreCase(ser.getInfo().getName())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("DiscordSRV")) {
|
|
||||||
String chatchannel = in.readUTF();
|
|
||||||
String message = in.readUTF();
|
|
||||||
out.writeUTF("DiscordSRV");
|
|
||||||
out.writeUTF(chatchannel);
|
|
||||||
out.writeUTF(message);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Chwho")) {
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Get")) {
|
|
||||||
String sender = in.readUTF();
|
|
||||||
String name = in.readUTF();
|
|
||||||
String channel = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
smcp.clearMessageData();
|
|
||||||
out.writeUTF("Chwho");
|
|
||||||
out.writeUTF("Get");
|
|
||||||
out.writeUTF(sender);
|
|
||||||
out.writeUTF(name);
|
|
||||||
out.writeUTF(channel);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Receive")) {
|
|
||||||
String sender = in.readUTF();
|
|
||||||
String name = in.readUTF();
|
|
||||||
String channel = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.incrementMessagePackets();
|
|
||||||
int players = in.readInt();
|
|
||||||
for(int a = 0; a < players; a++) {
|
|
||||||
smcp.addData(in.readUTF());
|
|
||||||
}
|
|
||||||
int servers = 0;
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
servers ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(smcp.getMessagePackets() >= servers) {
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
out.writeUTF("Chwho");
|
|
||||||
out.writeUTF("Receive");
|
|
||||||
out.writeUTF(sender);
|
|
||||||
out.writeUTF(channel);
|
|
||||||
out.writeInt(smcp.getMessageData().size());
|
|
||||||
for(String s : smcp.getMessageData()) {
|
|
||||||
out.writeUTF(s);
|
|
||||||
}
|
|
||||||
smcp.clearMessageData();
|
|
||||||
Server server = getProxy().getPlayer(name).getServer();
|
|
||||||
server.sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("RemoveMessage")) {
|
|
||||||
String hash = in.readUTF();
|
|
||||||
out.writeUTF("RemoveMessage");
|
|
||||||
out.writeUTF(hash);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Ignore")) {
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Send")) {
|
|
||||||
String server = ser.getInfo().getName();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
out.writeUTF("Ignore");
|
|
||||||
out.writeUTF("Send");
|
|
||||||
out.writeUTF(server);
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Offline")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.incrementMessagePackets();
|
|
||||||
int servers = 0;
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
servers ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(smcp.getMessagePackets() >= servers) {
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
out.writeUTF("Ignore");
|
|
||||||
out.writeUTF("Offline");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Echo")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String receiverName = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
out.writeUTF("Ignore");
|
|
||||||
out.writeUTF("Echo");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(receiverName);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Mute")) {
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Send")) {
|
|
||||||
String server = ser.getInfo().getName();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToMute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
long time = in.readLong();
|
|
||||||
String reason = in.readUTF();
|
|
||||||
UUID temporaryDataInstanceUUID = TemporaryDataInstance.createTemporaryDataInstance();
|
|
||||||
out.writeUTF("Mute");
|
|
||||||
out.writeUTF("Send");
|
|
||||||
out.writeUTF(server);
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(temporaryDataInstanceUUID.toString());
|
|
||||||
out.writeUTF(playerToMute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
out.writeLong(time);
|
|
||||||
out.writeUTF(reason);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Valid")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToMute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
long time = in.readLong();
|
|
||||||
String reason = in.readUTF();
|
|
||||||
out.writeUTF("Mute");
|
|
||||||
out.writeUTF("Valid");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToMute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
out.writeLong(time);
|
|
||||||
out.writeUTF(reason);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Offline")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
UUID temporaryDataInstanceUUID = UUID.fromString(in.readUTF());
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToMute = in.readUTF();
|
|
||||||
TemporaryDataInstance temporaryDataInstance = TemporaryDataInstance.getTemporaryDataInstance(temporaryDataInstanceUUID);
|
|
||||||
temporaryDataInstance.incrementMessagePackets();
|
|
||||||
int servers = 0;
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
servers ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(temporaryDataInstance.getMessagePackets() >= servers) {
|
|
||||||
temporaryDataInstance.destroyInstance();
|
|
||||||
out.writeUTF("Mute");
|
|
||||||
out.writeUTF("Offline");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToMute);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("AlreadyMuted")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToMute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
out.writeUTF("Mute");
|
|
||||||
out.writeUTF("AlreadyMuted");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToMute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Unmute")) {
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Send")) {
|
|
||||||
String server = ser.getInfo().getName();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToUnmute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
UUID temporaryDataInstanceUUID = TemporaryDataInstance.createTemporaryDataInstance();
|
|
||||||
out.writeUTF("Unmute");
|
|
||||||
out.writeUTF("Send");
|
|
||||||
out.writeUTF(server);
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(temporaryDataInstanceUUID.toString());
|
|
||||||
out.writeUTF(playerToUnmute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Valid")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToUnmute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
out.writeUTF("Unmute");
|
|
||||||
out.writeUTF("Valid");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToUnmute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Offline")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
UUID temporaryDataInstanceUUID = UUID.fromString(in.readUTF());
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToUnmute = in.readUTF();
|
|
||||||
TemporaryDataInstance temporaryDataInstance = TemporaryDataInstance.getTemporaryDataInstance(temporaryDataInstanceUUID);
|
|
||||||
temporaryDataInstance.incrementMessagePackets();
|
|
||||||
int servers = 0;
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
servers ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(temporaryDataInstance.getMessagePackets() >= servers) {
|
|
||||||
temporaryDataInstance.destroyInstance();
|
|
||||||
out.writeUTF("Unmute");
|
|
||||||
out.writeUTF("Offline");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToUnmute);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("NotMuted")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String senderIdentifier = in.readUTF();
|
|
||||||
String playerToUnmute = in.readUTF();
|
|
||||||
String channelName = in.readUTF();
|
|
||||||
out.writeUTF("Unmute");
|
|
||||||
out.writeUTF("NotMuted");
|
|
||||||
out.writeUTF(senderIdentifier);
|
|
||||||
out.writeUTF(playerToUnmute);
|
|
||||||
out.writeUTF(channelName);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Message")) {
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Send")) {
|
|
||||||
String server = ser.getInfo().getName();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
String sName = in.readUTF();
|
|
||||||
String send = in.readUTF();
|
|
||||||
String echo = in.readUTF();
|
|
||||||
String spy = in.readUTF();
|
|
||||||
String msg = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Send");
|
|
||||||
out.writeUTF(server);
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
out.writeUTF(sName);
|
|
||||||
out.writeUTF(send);
|
|
||||||
out.writeUTF(echo);
|
|
||||||
out.writeUTF(spy);
|
|
||||||
out.writeUTF(msg);
|
|
||||||
for(String serv : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(serv).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(serv).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Offline")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
|
||||||
smcp.incrementMessagePackets();
|
|
||||||
int servers = 0;
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
servers ++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(smcp.getMessagePackets() >= servers) {
|
|
||||||
smcp.clearMessagePackets();
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Offline");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Ignore")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Ignore");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Blocked")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Blocked");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(identifier.equals("Echo")) {
|
|
||||||
String server = in.readUTF();
|
|
||||||
String player = in.readUTF();
|
|
||||||
String receiverUUID = in.readUTF();
|
|
||||||
String sender = in.readUTF();
|
|
||||||
String sName = in.readUTF();
|
|
||||||
String echo = in.readUTF();
|
|
||||||
String spy = in.readUTF();
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Echo");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(receiverUUID);
|
|
||||||
out.writeUTF(sender);
|
|
||||||
out.writeUTF(echo);
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
outstream = new ByteArrayOutputStream();
|
|
||||||
out = new DataOutputStream(outstream);
|
|
||||||
out.writeUTF("Message");
|
|
||||||
out.writeUTF("Spy");
|
|
||||||
out.writeUTF(player);
|
|
||||||
out.writeUTF(sName);
|
|
||||||
out.writeUTF(spy);
|
|
||||||
for(String send : getProxy().getServers().keySet()) {
|
|
||||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
|
||||||
getProxy().getServers().get(send).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(subchannel.equals("Sync")) {
|
|
||||||
//System.out.println("Sync received...");
|
|
||||||
String identifier = in.readUTF();
|
|
||||||
if(identifier.equals("Receive")) {
|
|
||||||
//System.out.println("Sending update...");
|
|
||||||
String server = ser.getInfo().getName();
|
|
||||||
UUID uuid = UUID.fromString(in.readUTF());
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
|
|
||||||
if(smcp == null) {
|
|
||||||
smcp = new SynchronizedMineverseChatPlayer(uuid);
|
|
||||||
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
|
|
||||||
}
|
|
||||||
out.writeUTF("Sync");
|
|
||||||
out.writeUTF(uuid.toString());
|
|
||||||
int channelCount = smcp.getListening().size();
|
|
||||||
//System.out.println(channelCount);
|
|
||||||
out.write(channelCount);
|
|
||||||
for(String channel : smcp.getListening()) {
|
|
||||||
out.writeUTF(channel);
|
|
||||||
}
|
|
||||||
int muteCount = smcp.getMutes().size();
|
|
||||||
//System.out.println(muteCount);
|
|
||||||
out.write(muteCount);
|
|
||||||
for(MuteContainer muteContainer : smcp.getMutes()) {
|
|
||||||
out.writeUTF(muteContainer.getChannel());
|
|
||||||
out.writeLong(muteContainer.getDuration());
|
|
||||||
out.writeUTF(muteContainer.getReason());
|
|
||||||
}
|
|
||||||
//System.out.println(smcp.isSpy() + " spy value");
|
|
||||||
//System.out.println(out.size() + " size before");
|
|
||||||
out.writeBoolean(smcp.isSpy());
|
|
||||||
out.writeBoolean(smcp.getMessageToggle());
|
|
||||||
//System.out.println(out.size() + " size after");
|
|
||||||
int ignoreCount = smcp.getIgnores().size();
|
|
||||||
//System.out.println(ignoreCount + " ignore size");
|
|
||||||
out.write(ignoreCount);
|
|
||||||
for(UUID ignore : smcp.getIgnores()) {
|
|
||||||
out.writeUTF(ignore.toString());
|
|
||||||
}
|
|
||||||
if(getProxy().getServers().get(server).getPlayers().size() > 0)
|
|
||||||
getProxy().getServers().get(server).sendData(PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
|
||||||
}
|
|
||||||
if(identifier.equals("Update")) {
|
|
||||||
UUID uuid = UUID.fromString(in.readUTF());
|
|
||||||
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
|
|
||||||
if(smcp == null) {
|
|
||||||
smcp = new SynchronizedMineverseChatPlayer(uuid);
|
|
||||||
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
|
|
||||||
}
|
|
||||||
smcp.getListening().clear();
|
|
||||||
smcp.clearMutes();
|
|
||||||
smcp.getIgnores().clear();
|
|
||||||
int sizeL = in.read();
|
|
||||||
//System.out.println(sizeL + " listening");
|
|
||||||
for(int a = 0; a < sizeL; a++) {
|
|
||||||
smcp.addListening(in.readUTF());
|
|
||||||
}
|
|
||||||
int sizeM = in.read();
|
|
||||||
for(int b = 0; b < sizeM; b++) {
|
|
||||||
String mute = in.readUTF();
|
|
||||||
long muteTime = in.readLong();
|
|
||||||
String muteReason = in.readUTF();
|
|
||||||
//System.out.println(mute);
|
|
||||||
smcp.addMute(mute, muteTime, muteReason);
|
|
||||||
}
|
|
||||||
int sizeI = in.read();
|
|
||||||
for(int c = 0; c < sizeI; c++) {
|
|
||||||
String ignore = in.readUTF();
|
|
||||||
//System.out.println(mute);
|
|
||||||
smcp.addIgnore(MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(ignore)));
|
|
||||||
}
|
|
||||||
smcp.setSpy(in.readBoolean());
|
|
||||||
smcp.setMessageToggle(in.readBoolean());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,533 @@
|
|||||||
|
package mineverse.Aust1n46.chat.bungee;
|
||||||
|
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataInputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||||
|
import mineverse.Aust1n46.chat.api.SynchronizedMineverseChatPlayer;
|
||||||
|
import mineverse.Aust1n46.chat.command.mute.MuteContainer;
|
||||||
|
import mineverse.Aust1n46.chat.database.TemporaryDataInstance;
|
||||||
|
|
||||||
|
public class VentureChatProxy {
|
||||||
|
public static String PLUGIN_MESSAGING_CHANNEL_NAMESPACE = "venturechat";
|
||||||
|
public static String PLUGIN_MESSAGING_CHANNEL_NAME = "data";
|
||||||
|
public static String PLUGIN_MESSAGING_CHANNEL_STRING = "venturechat:data";
|
||||||
|
|
||||||
|
public static void onPluginMessage(byte[] data, String serverName, VentureChatProxySource source) {
|
||||||
|
ByteArrayInputStream instream = new ByteArrayInputStream(data);
|
||||||
|
DataInputStream in = new DataInputStream(instream);
|
||||||
|
try {
|
||||||
|
String subchannel = in.readUTF();
|
||||||
|
//System.out.println(subchannel);
|
||||||
|
final ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream out = new DataOutputStream(outstream);
|
||||||
|
if(subchannel.equals("Chat")) {
|
||||||
|
String chatchannel = in.readUTF();
|
||||||
|
String senderName = in.readUTF();
|
||||||
|
String senderUUID = in.readUTF();
|
||||||
|
boolean bungeeToggle = in.readBoolean();
|
||||||
|
int hash = in.readInt();
|
||||||
|
String format = in.readUTF();
|
||||||
|
String chat = in.readUTF();
|
||||||
|
String json = in.readUTF();
|
||||||
|
String primaryGroup = in.readUTF();
|
||||||
|
String nickname = in.readUTF();
|
||||||
|
out.writeUTF("Chat");
|
||||||
|
out.writeUTF(serverName);
|
||||||
|
out.writeUTF(chatchannel);
|
||||||
|
out.writeUTF(senderName);
|
||||||
|
out.writeUTF(senderUUID);
|
||||||
|
out.writeInt(hash);
|
||||||
|
out.writeUTF(format);
|
||||||
|
out.writeUTF(chat);
|
||||||
|
out.writeUTF(json);
|
||||||
|
out.writeUTF(primaryGroup);
|
||||||
|
out.writeUTF(nickname);
|
||||||
|
for(VentureChatProxyServer send : source.getServers()) {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
if(!bungeeToggle && !send.getName().equalsIgnoreCase(serverName)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("DiscordSRV")) {
|
||||||
|
String chatchannel = in.readUTF();
|
||||||
|
String message = in.readUTF();
|
||||||
|
out.writeUTF("DiscordSRV");
|
||||||
|
out.writeUTF(chatchannel);
|
||||||
|
out.writeUTF(message);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Chwho")) {
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Get")) {
|
||||||
|
String server = serverName;
|
||||||
|
String sender = in.readUTF();
|
||||||
|
String channel = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
smcp.clearMessageData();
|
||||||
|
out.writeUTF("Chwho");
|
||||||
|
out.writeUTF("Get");
|
||||||
|
out.writeUTF(server);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
out.writeUTF(channel);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(identifier.equals("Receive")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
String channel = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.incrementMessagePackets();
|
||||||
|
int players = in.readInt();
|
||||||
|
for(int a = 0; a < players; a++) {
|
||||||
|
smcp.addData(in.readUTF());
|
||||||
|
}
|
||||||
|
AtomicInteger servers = new AtomicInteger(0);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
servers.incrementAndGet();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(smcp.getMessagePackets() >= servers.get()) {
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
out.writeUTF("Chwho");
|
||||||
|
out.writeUTF("Receive");
|
||||||
|
out.writeUTF(sender);
|
||||||
|
out.writeUTF(channel);
|
||||||
|
out.writeInt(smcp.getMessageData().size());
|
||||||
|
for(String s : smcp.getMessageData()) {
|
||||||
|
out.writeUTF(s);
|
||||||
|
}
|
||||||
|
smcp.clearMessageData();
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("RemoveMessage")) {
|
||||||
|
String hash = in.readUTF();
|
||||||
|
out.writeUTF("RemoveMessage");
|
||||||
|
out.writeUTF(hash);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Ignore")) {
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Send")) {
|
||||||
|
String server = serverName;
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
out.writeUTF("Ignore");
|
||||||
|
out.writeUTF("Send");
|
||||||
|
out.writeUTF(server);
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(identifier.equals("Offline")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.incrementMessagePackets();
|
||||||
|
AtomicInteger servers = new AtomicInteger(0);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
servers.incrementAndGet();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(smcp.getMessagePackets() >= servers.get()) {
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
out.writeUTF("Ignore");
|
||||||
|
out.writeUTF("Offline");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Echo")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String receiverName = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
out.writeUTF("Ignore");
|
||||||
|
out.writeUTF("Echo");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(receiverName);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Mute")) {
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Send")) {
|
||||||
|
String server = serverName;
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToMute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
long time = in.readLong();
|
||||||
|
String reason = in.readUTF();
|
||||||
|
UUID temporaryDataInstanceUUID = TemporaryDataInstance.createTemporaryDataInstance();
|
||||||
|
out.writeUTF("Mute");
|
||||||
|
out.writeUTF("Send");
|
||||||
|
out.writeUTF(server);
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(temporaryDataInstanceUUID.toString());
|
||||||
|
out.writeUTF(playerToMute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
out.writeLong(time);
|
||||||
|
out.writeUTF(reason);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(identifier.equals("Valid")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToMute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
long time = in.readLong();
|
||||||
|
String reason = in.readUTF();
|
||||||
|
out.writeUTF("Mute");
|
||||||
|
out.writeUTF("Valid");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToMute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
out.writeLong(time);
|
||||||
|
out.writeUTF(reason);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Offline")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
UUID temporaryDataInstanceUUID = UUID.fromString(in.readUTF());
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToMute = in.readUTF();
|
||||||
|
TemporaryDataInstance temporaryDataInstance = TemporaryDataInstance.getTemporaryDataInstance(temporaryDataInstanceUUID);
|
||||||
|
temporaryDataInstance.incrementMessagePackets();
|
||||||
|
AtomicInteger servers = new AtomicInteger(0);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
servers.incrementAndGet();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(temporaryDataInstance.getMessagePackets() >= servers.get()) {
|
||||||
|
temporaryDataInstance.destroyInstance();
|
||||||
|
out.writeUTF("Mute");
|
||||||
|
out.writeUTF("Offline");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToMute);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("AlreadyMuted")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToMute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
out.writeUTF("Mute");
|
||||||
|
out.writeUTF("AlreadyMuted");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToMute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Unmute")) {
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Send")) {
|
||||||
|
String server = serverName;
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToUnmute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
UUID temporaryDataInstanceUUID = TemporaryDataInstance.createTemporaryDataInstance();
|
||||||
|
out.writeUTF("Unmute");
|
||||||
|
out.writeUTF("Send");
|
||||||
|
out.writeUTF(server);
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(temporaryDataInstanceUUID.toString());
|
||||||
|
out.writeUTF(playerToUnmute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(identifier.equals("Valid")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToUnmute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
out.writeUTF("Unmute");
|
||||||
|
out.writeUTF("Valid");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToUnmute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Offline")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
UUID temporaryDataInstanceUUID = UUID.fromString(in.readUTF());
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToUnmute = in.readUTF();
|
||||||
|
TemporaryDataInstance temporaryDataInstance = TemporaryDataInstance.getTemporaryDataInstance(temporaryDataInstanceUUID);
|
||||||
|
temporaryDataInstance.incrementMessagePackets();
|
||||||
|
AtomicInteger servers = new AtomicInteger(0);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
servers.incrementAndGet();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(temporaryDataInstance.getMessagePackets() >= servers.get()) {
|
||||||
|
temporaryDataInstance.destroyInstance();
|
||||||
|
out.writeUTF("Unmute");
|
||||||
|
out.writeUTF("Offline");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToUnmute);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("NotMuted")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String senderIdentifier = in.readUTF();
|
||||||
|
String playerToUnmute = in.readUTF();
|
||||||
|
String channelName = in.readUTF();
|
||||||
|
out.writeUTF("Unmute");
|
||||||
|
out.writeUTF("NotMuted");
|
||||||
|
out.writeUTF(senderIdentifier);
|
||||||
|
out.writeUTF(playerToUnmute);
|
||||||
|
out.writeUTF(channelName);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Message")) {
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Send")) {
|
||||||
|
String server = serverName;
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
String sName = in.readUTF();
|
||||||
|
String send = in.readUTF();
|
||||||
|
String echo = in.readUTF();
|
||||||
|
String spy = in.readUTF();
|
||||||
|
String msg = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Send");
|
||||||
|
out.writeUTF(server);
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
out.writeUTF(sName);
|
||||||
|
out.writeUTF(send);
|
||||||
|
out.writeUTF(echo);
|
||||||
|
out.writeUTF(spy);
|
||||||
|
out.writeUTF(msg);
|
||||||
|
source.getServers().forEach(serv -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(serv.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(identifier.equals("Offline")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(sender));
|
||||||
|
smcp.incrementMessagePackets();
|
||||||
|
AtomicInteger servers = new AtomicInteger(0);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
servers.incrementAndGet();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(smcp.getMessagePackets() >= servers.get()) {
|
||||||
|
smcp.clearMessagePackets();
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Offline");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Ignore")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Ignore");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Blocked")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Blocked");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Echo")) {
|
||||||
|
String server = in.readUTF();
|
||||||
|
String player = in.readUTF();
|
||||||
|
String receiverUUID = in.readUTF();
|
||||||
|
String sender = in.readUTF();
|
||||||
|
String sName = in.readUTF();
|
||||||
|
String echo = in.readUTF();
|
||||||
|
String spy = in.readUTF();
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Echo");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(receiverUUID);
|
||||||
|
out.writeUTF(sender);
|
||||||
|
out.writeUTF(echo);
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
outstream.reset();
|
||||||
|
out = new DataOutputStream(outstream);
|
||||||
|
out.writeUTF("Message");
|
||||||
|
out.writeUTF("Spy");
|
||||||
|
out.writeUTF(player);
|
||||||
|
out.writeUTF(sName);
|
||||||
|
out.writeUTF(spy);
|
||||||
|
source.getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
source.sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(subchannel.equals("Sync")) {
|
||||||
|
//System.out.println("Sync received...");
|
||||||
|
String identifier = in.readUTF();
|
||||||
|
if(identifier.equals("Receive")) {
|
||||||
|
//System.out.println("Sending update...");
|
||||||
|
String server = serverName;
|
||||||
|
UUID uuid = UUID.fromString(in.readUTF());
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
|
||||||
|
if(smcp == null) {
|
||||||
|
smcp = new SynchronizedMineverseChatPlayer(uuid);
|
||||||
|
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
|
||||||
|
}
|
||||||
|
out.writeUTF("Sync");
|
||||||
|
out.writeUTF(uuid.toString());
|
||||||
|
int channelCount = smcp.getListening().size();
|
||||||
|
//System.out.println(channelCount);
|
||||||
|
out.write(channelCount);
|
||||||
|
for(String channel : smcp.getListening()) {
|
||||||
|
out.writeUTF(channel);
|
||||||
|
}
|
||||||
|
int muteCount = smcp.getMutes().size();
|
||||||
|
//System.out.println(muteCount);
|
||||||
|
out.write(muteCount);
|
||||||
|
for(MuteContainer muteContainer : smcp.getMutes()) {
|
||||||
|
out.writeUTF(muteContainer.getChannel());
|
||||||
|
out.writeLong(muteContainer.getDuration());
|
||||||
|
out.writeUTF(muteContainer.getReason());
|
||||||
|
}
|
||||||
|
//System.out.println(smcp.isSpy() + " spy value");
|
||||||
|
//System.out.println(out.size() + " size before");
|
||||||
|
out.writeBoolean(smcp.isSpy());
|
||||||
|
out.writeBoolean(smcp.getMessageToggle());
|
||||||
|
//System.out.println(out.size() + " size after");
|
||||||
|
int ignoreCount = smcp.getIgnores().size();
|
||||||
|
//System.out.println(ignoreCount + " ignore size");
|
||||||
|
out.write(ignoreCount);
|
||||||
|
for(UUID ignore : smcp.getIgnores()) {
|
||||||
|
out.writeUTF(ignore.toString());
|
||||||
|
}
|
||||||
|
if(!source.getServer(server).isEmpty()) {
|
||||||
|
source.sendPluginMessage(server, outstream.toByteArray());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(identifier.equals("Update")) {
|
||||||
|
UUID uuid = UUID.fromString(in.readUTF());
|
||||||
|
SynchronizedMineverseChatPlayer smcp = MineverseChatAPI.getSynchronizedMineverseChatPlayer(uuid);
|
||||||
|
if(smcp == null) {
|
||||||
|
smcp = new SynchronizedMineverseChatPlayer(uuid);
|
||||||
|
MineverseChatAPI.addSynchronizedMineverseChatPlayerToMap(smcp);
|
||||||
|
}
|
||||||
|
smcp.getListening().clear();
|
||||||
|
smcp.clearMutes();
|
||||||
|
smcp.getIgnores().clear();
|
||||||
|
int sizeL = in.read();
|
||||||
|
//System.out.println(sizeL + " listening");
|
||||||
|
for(int a = 0; a < sizeL; a++) {
|
||||||
|
smcp.addListening(in.readUTF());
|
||||||
|
}
|
||||||
|
int sizeM = in.read();
|
||||||
|
for(int b = 0; b < sizeM; b++) {
|
||||||
|
String mute = in.readUTF();
|
||||||
|
long muteTime = in.readLong();
|
||||||
|
String muteReason = in.readUTF();
|
||||||
|
//System.out.println(mute);
|
||||||
|
smcp.addMute(mute, muteTime, muteReason);
|
||||||
|
}
|
||||||
|
int sizeI = in.read();
|
||||||
|
for(int c = 0; c < sizeI; c++) {
|
||||||
|
String ignore = in.readUTF();
|
||||||
|
//System.out.println(mute);
|
||||||
|
smcp.addIgnore(MineverseChatAPI.getSynchronizedMineverseChatPlayer(UUID.fromString(ignore)));
|
||||||
|
}
|
||||||
|
smcp.setSpy(in.readBoolean());
|
||||||
|
smcp.setMessageToggle(in.readBoolean());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package mineverse.Aust1n46.chat.bungee;
|
||||||
|
|
||||||
|
public class VentureChatProxyServer {
|
||||||
|
private String name;
|
||||||
|
private boolean empty;
|
||||||
|
|
||||||
|
public VentureChatProxyServer(String name, boolean empty) {
|
||||||
|
this.name = name;
|
||||||
|
this.empty = empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package mineverse.Aust1n46.chat.bungee;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface VentureChatProxySource {
|
||||||
|
public void sendPluginMessage(String serverName, byte[] data);
|
||||||
|
|
||||||
|
public List<VentureChatProxyServer> getServers();
|
||||||
|
|
||||||
|
public VentureChatProxyServer getServer(String serverName);
|
||||||
|
}
|
@ -0,0 +1,109 @@
|
|||||||
|
package mineverse.Aust1n46.chat.bungee;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.DataOutputStream;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
|
import com.velocitypowered.api.event.connection.DisconnectEvent;
|
||||||
|
import com.velocitypowered.api.event.connection.PluginMessageEvent;
|
||||||
|
import com.velocitypowered.api.event.connection.PluginMessageEvent.ForwardResult;
|
||||||
|
import com.velocitypowered.api.event.player.ServerConnectedEvent;
|
||||||
|
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||||
|
import com.velocitypowered.api.plugin.Plugin;
|
||||||
|
import com.velocitypowered.api.proxy.Player;
|
||||||
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
|
import com.velocitypowered.api.proxy.ServerConnection;
|
||||||
|
import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
|
||||||
|
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
|
||||||
|
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||||
|
|
||||||
|
@Plugin(id = "venturechat", name = "VentureChat", version = "${project.version}",
|
||||||
|
description = "#1 Channels Chat plugin! Spigot + Bungee. Supports PlaceholderAPI + JSON formatting. Moderation GUI!", authors = {"Aust1n46"})
|
||||||
|
public class VentureChatVelocity implements VentureChatProxySource {
|
||||||
|
private final ProxyServer proxyServer;
|
||||||
|
private final ChannelIdentifier channelIdentifier = MinecraftChannelIdentifier.create(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAMESPACE, VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_NAME);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public VentureChatVelocity(ProxyServer server, Logger logger) {
|
||||||
|
this.proxyServer = server;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onInitialize(ProxyInitializeEvent event) {
|
||||||
|
proxyServer.getChannelRegistrar().register(channelIdentifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPlayerJoin(ServerConnectedEvent event) {
|
||||||
|
proxyServer.getScheduler().buildTask(this, () -> {
|
||||||
|
updatePlayerNames();
|
||||||
|
})
|
||||||
|
.delay(500, TimeUnit.MILLISECONDS)
|
||||||
|
.schedule();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPlayerQuit(DisconnectEvent event) {
|
||||||
|
updatePlayerNames();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updatePlayerNames() {
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream outstream = new ByteArrayOutputStream();
|
||||||
|
DataOutputStream out = new DataOutputStream(outstream);
|
||||||
|
out.writeUTF("PlayerNames");
|
||||||
|
out.writeInt(proxyServer.getPlayerCount());
|
||||||
|
for(Player player : proxyServer.getAllPlayers()) {
|
||||||
|
out.writeUTF(player.getUsername());
|
||||||
|
}
|
||||||
|
getServers().forEach(send -> {
|
||||||
|
if(!send.isEmpty()) {
|
||||||
|
sendPluginMessage(send.getName(), outstream.toByteArray());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onPluginMessage(PluginMessageEvent event) {
|
||||||
|
String channelIdentifierId = event.getIdentifier().getId();
|
||||||
|
if(!channelIdentifierId.equals(VentureChatProxy.PLUGIN_MESSAGING_CHANNEL_STRING) && !channelIdentifierId.contains("viaversion:")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(!(event.getSource() instanceof ServerConnection)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String serverName = ((ServerConnection) event.getSource()).getServerInfo().getName();
|
||||||
|
VentureChatProxy.onPluginMessage(event.getData(), serverName, this);
|
||||||
|
event.setResult(ForwardResult.handled());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendPluginMessage(String serverName, byte[] data) {
|
||||||
|
Optional<RegisteredServer> server = proxyServer.getServer(serverName);
|
||||||
|
if(server.isPresent()) {
|
||||||
|
server.get().sendPluginMessage(channelIdentifier, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<VentureChatProxyServer> getServers() {
|
||||||
|
return proxyServer.getAllServers().stream().map(velocityServer -> new VentureChatProxyServer(velocityServer.getServerInfo().getName(), velocityServer.getPlayersConnected().isEmpty())).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VentureChatProxyServer getServer(String serverName) {
|
||||||
|
RegisteredServer server = proxyServer.getServer(serverName).get();
|
||||||
|
return new VentureChatProxyServer(serverName, server.getPlayersConnected().isEmpty());
|
||||||
|
}
|
||||||
|
}
|
@ -49,7 +49,6 @@ public class Chwho implements VentureCommand {
|
|||||||
out.writeUTF("Chwho");
|
out.writeUTF("Chwho");
|
||||||
out.writeUTF("Get");
|
out.writeUTF("Get");
|
||||||
out.writeUTF(mcp.getUUID().toString());
|
out.writeUTF(mcp.getUUID().toString());
|
||||||
out.writeUTF(mcp.getName());
|
|
||||||
out.writeUTF(channel.getName());
|
out.writeUTF(channel.getName());
|
||||||
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
mcp.getPlayer().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
||||||
out.close();
|
out.close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user