mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-23 02:19:05 +00:00
Updated player data saving to always use Mojang online mode UUID's.
Updated /chwho command to show all players listening to BungeeCord channels on every server in the network
This commit is contained in:
parent
de4ee833b4
commit
55186b4cae
@ -1,15 +1 @@
|
||||
players:
|
||||
5771a47a-74b4-35c1-aa03-6713ad69554e:
|
||||
name: PhantomsCore
|
||||
current: Global
|
||||
ignores: ''
|
||||
listen: Global,Noob,Local
|
||||
mutes: ''
|
||||
blockedcommands: ''
|
||||
mail: ''
|
||||
host: false
|
||||
party: ''
|
||||
filter: true
|
||||
notifications: true
|
||||
nickname: Phantom
|
||||
date: 2014/Dec/02 17:12:40
|
||||
players: {}
|
@ -1,4 +1,4 @@
|
||||
name: VentureChat
|
||||
main: mineverse.Aust1n46.chat.bungee.MineverseChatBungee
|
||||
version: 2.14.2
|
||||
version: 2.14.3
|
||||
author: Aust1n46
|
@ -283,6 +283,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
else {
|
||||
for(Player p : this.getServer().getOnlinePlayers()) {
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(p);
|
||||
mcp.setName(p.getName());
|
||||
mcp.setOnline(true);
|
||||
}
|
||||
}
|
||||
@ -785,6 +786,8 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
System.out.println(msgin.available() + " size on receiving end");
|
||||
}
|
||||
String subchannel = msgin.readUTF();
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(subchannel.equals("Chat")) {
|
||||
String chatchannel = msgin.readUTF();
|
||||
String chat = msgin.readUTF();
|
||||
@ -822,6 +825,50 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("Chwho")) {
|
||||
String identifier = msgin.readUTF();
|
||||
if(identifier.equals("Get")) {
|
||||
String sender = msgin.readUTF();
|
||||
String chatchannel = msgin.readUTF();
|
||||
List<String> listening = new ArrayList<String>();
|
||||
if(ccInfo.isChannel(chatchannel)) {
|
||||
for(MineverseChatPlayer mcp : onlinePlayers) {
|
||||
if(mcp.getListening().contains(chatchannel)) {
|
||||
String entry = "&f" + mcp.getName();
|
||||
if(mcp.isMuted(chatchannel)) {
|
||||
entry = "&c" + mcp.getName();
|
||||
}
|
||||
listening.add(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
out.writeUTF("Chwho");
|
||||
out.writeUTF("Receive");
|
||||
out.writeUTF(sender);
|
||||
out.writeUTF(chatchannel);
|
||||
out.writeInt(listening.size());
|
||||
for(String s : listening) {
|
||||
out.writeUTF(s);
|
||||
}
|
||||
player.sendPluginMessage(this, "venturechat:", stream.toByteArray());
|
||||
}
|
||||
if(identifier.equals("Receive")) {
|
||||
String sender = msgin.readUTF();
|
||||
String stringchannel = msgin.readUTF();
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(UUID.fromString(sender));
|
||||
ChatChannel chatchannel = ccInfo.getChannelInfo(stringchannel);
|
||||
String playerList = "";
|
||||
int size = msgin.readInt();
|
||||
for(int a = 0; a < size; a++) {
|
||||
playerList += msgin.readUTF() + ChatColor.WHITE + ", ";
|
||||
}
|
||||
if(playerList.length() > 2) {
|
||||
playerList = playerList.substring(0, playerList.length() - 2);
|
||||
}
|
||||
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Players in Channel: " + ChatColor.valueOf(chatchannel.getColor().toUpperCase()) + chatchannel.getName());
|
||||
mcp.getPlayer().sendMessage(Format.FormatStringAll(playerList));
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("RemoveMessage")) {
|
||||
String hash = msgin.readUTF();
|
||||
this.getServer().dispatchCommand(this.getServer().getConsoleSender(), "removemessage " + hash);
|
||||
@ -911,8 +958,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
String receiver = msgin.readUTF();
|
||||
MineverseChatPlayer p = MineverseChatAPI.getOnlineMineverseChatPlayer(receiver);
|
||||
UUID sender = UUID.fromString(msgin.readUTF());
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(!plugin.getConfig().getBoolean("bungeecordmessaging", true) || p == null || !p.isOnline()) {
|
||||
out.writeUTF("Ignore");
|
||||
out.writeUTF("Offline");
|
||||
@ -963,8 +1008,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
String msg = msgin.readUTF();
|
||||
String echo = msgin.readUTF();
|
||||
String spy = msgin.readUTF();
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
// System.out.println((p == null) + " null");
|
||||
if(p != null) {
|
||||
// System.out.println(p.isOnline() + " online");
|
||||
@ -1096,8 +1139,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
int numtime = 0;
|
||||
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mutePlayer);
|
||||
ChatChannel cc = ccInfo.getChannelInfo(chatchannel);
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(cc == null) {
|
||||
try {
|
||||
out.writeUTF("Mute");
|
||||
@ -1239,8 +1280,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
String server = msgin.readUTF();
|
||||
Player mp = Bukkit.getPlayer(muteplayer);
|
||||
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mp);
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(mp == null) {
|
||||
try {
|
||||
out.writeUTF("Muteall");
|
||||
@ -1289,8 +1328,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
String server = msgin.readUTF();
|
||||
Player mp = Bukkit.getPlayer(muteplayer);
|
||||
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mp);
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(mp == null) {
|
||||
try {
|
||||
out.writeUTF("Unmuteall");
|
||||
@ -1338,8 +1375,6 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
String server = msgin.readUTF();
|
||||
MineverseChatPlayer p = MineverseChatAPI.getMineverseChatPlayer(mutePlayer);
|
||||
ChatChannel cc = ccInfo.getChannelInfo(chatchannel);
|
||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(stream);
|
||||
if(cc == null) {
|
||||
try {
|
||||
out.writeUTF("Unmute");
|
||||
|
@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
||||
public final class MineverseChatAPI {
|
||||
public static MineverseChatPlayer getMineverseChatPlayer(Player player) {
|
||||
for(MineverseChatPlayer mcp : MineverseChat.players) {
|
||||
if(mcp.getUUID().toString().equals(player.getUniqueId().toString())) {
|
||||
if(mcp.getName().equals(player.getName())) {
|
||||
return mcp;
|
||||
}
|
||||
}
|
||||
@ -39,7 +39,7 @@ public final class MineverseChatAPI {
|
||||
|
||||
public static MineverseChatPlayer getOnlineMineverseChatPlayer(Player player) {
|
||||
for(MineverseChatPlayer mcp : MineverseChat.onlinePlayers) {
|
||||
if(mcp.getUUID().toString().equals(player.getUniqueId().toString())) {
|
||||
if(mcp.getName().equals(player.getName())) {
|
||||
return mcp;
|
||||
}
|
||||
}
|
||||
|
@ -311,7 +311,7 @@ public class MineverseChatPlayer {
|
||||
public void setOnline(boolean online) {
|
||||
this.online = online;
|
||||
if(this.online) {
|
||||
this.player = Bukkit.getPlayer(this.uuid);
|
||||
this.player = Bukkit.getPlayer(name);
|
||||
}
|
||||
else {
|
||||
this.player = null;
|
||||
|
@ -1,6 +1,8 @@
|
||||
package mineverse.Aust1n46.chat.api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
@ -10,6 +12,7 @@ public class SynchronizedMineverseChatPlayer {
|
||||
private HashMap<String, Integer> mutes;
|
||||
private Set<UUID> ignores;
|
||||
private int messagePackets;
|
||||
private List<String> messageData = new ArrayList<String>();
|
||||
private boolean spy;
|
||||
private boolean messageToggle;
|
||||
|
||||
@ -22,6 +25,18 @@ public class SynchronizedMineverseChatPlayer {
|
||||
this.messageToggle = messageToggle;
|
||||
}
|
||||
|
||||
public List<String> getMessageData() {
|
||||
return this.messageData;
|
||||
}
|
||||
|
||||
public void addData(String s) {
|
||||
this.messageData.add(s);
|
||||
}
|
||||
|
||||
public void clearMessageData() {
|
||||
this.messageData.clear();
|
||||
}
|
||||
|
||||
public int getMessagePackets() {
|
||||
return this.messagePackets;
|
||||
}
|
||||
|
@ -176,6 +176,55 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("Chwho")) {
|
||||
String identifier = in.readUTF();
|
||||
if(identifier.equals("Get")) {
|
||||
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(sender);
|
||||
out.writeUTF(channel);
|
||||
for(String send : getProxy().getServers().keySet()) {
|
||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
||||
getProxy().getServers().get(send).sendData("venturechat:", outstream.toByteArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(identifier.equals("Receive")) {
|
||||
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());
|
||||
}
|
||||
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(UUID.fromString(sender)).getServer();
|
||||
server.sendData("venturechat:", outstream.toByteArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("RemoveMessage")) {
|
||||
String hash = in.readUTF();
|
||||
out.writeUTF("RemoveMessage");
|
||||
@ -194,12 +243,12 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
||||
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()) {
|
||||
out.writeUTF("Ignore");
|
||||
out.writeUTF("Send");
|
||||
out.writeUTF(server);
|
||||
out.writeUTF(player);
|
||||
out.writeUTF(sender);
|
||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
||||
getProxy().getServers().get(send).sendData("venturechat:", outstream.toByteArray());
|
||||
}
|
||||
@ -253,16 +302,16 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
||||
String spy = 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(message);
|
||||
out.writeUTF(echo);
|
||||
out.writeUTF(spy);
|
||||
for(String send : getProxy().getServers().keySet()) {
|
||||
out.writeUTF("Message");
|
||||
out.writeUTF("Send");
|
||||
out.writeUTF(server);
|
||||
out.writeUTF(player);
|
||||
out.writeUTF(sender);
|
||||
out.writeUTF(sName);
|
||||
out.writeUTF(message);
|
||||
out.writeUTF(echo);
|
||||
out.writeUTF(spy);
|
||||
if(getProxy().getServers().get(send).getPlayers().size() > 0) {
|
||||
getProxy().getServers().get(send).sendData("venturechat:", outstream.toByteArray());
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package mineverse.Aust1n46.chat.command.chat;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
@ -17,6 +20,7 @@ import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannel;
|
||||
import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
|
||||
import mineverse.Aust1n46.chat.command.MineverseCommand;
|
||||
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class Chwho extends MineverseCommand {
|
||||
@ -43,6 +47,25 @@ public class Chwho extends MineverseCommand {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(channel.getBungee() && sender instanceof Player) {
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
|
||||
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(byteOutStream);
|
||||
try {
|
||||
out.writeUTF("Chwho");
|
||||
out.writeUTF("Get");
|
||||
out.writeUTF(mcp.getUUID().toString());
|
||||
out.writeUTF(channel.getName());
|
||||
mcp.getPlayer().sendPluginMessage(plugin, "venturechat:", byteOutStream.toByteArray());
|
||||
out.close();
|
||||
}
|
||||
catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
long linecount = plugin.getLineLength();
|
||||
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
||||
|
@ -58,9 +58,9 @@ public class CommandListener implements CommandExecutor, Listener {
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) throws FileNotFoundException {
|
||||
ConfigurationSection cs = plugin.getConfig().getConfigurationSection("commandspy");
|
||||
Boolean wec = cs.getBoolean("worldeditcommands", true);
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
||||
for(MineverseChatPlayer p : MineverseChat.players) {
|
||||
if(p.hasCommandSpy() && p.isOnline()) {
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer(event.getPlayer());
|
||||
for(MineverseChatPlayer p : MineverseChat.onlinePlayers) {
|
||||
if(p.hasCommandSpy()) {
|
||||
if(wec) {
|
||||
p.getPlayer().sendMessage(ChatColor.GOLD + mcp.getName() + ": " + event.getMessage());
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
|
||||
import mineverse.Aust1n46.chat.database.PlayerData;
|
||||
import mineverse.Aust1n46.chat.json.JsonFormat;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
import mineverse.Aust1n46.chat.utilities.UUIDFetcher;
|
||||
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
@ -63,12 +64,12 @@ public class LoginListener implements Listener {
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onPlayerJoin(PlayerJoinEvent event) {
|
||||
public void onPlayerJoin(PlayerJoinEvent event) throws Exception {
|
||||
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer(event.getPlayer());
|
||||
if(mcp == null) {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
String name = player.getName();
|
||||
UUID uuid = UUIDFetcher.getUUIDOf(name);
|
||||
ChatChannel current = cc.getDefaultChannel();
|
||||
Set<UUID> ignores = new HashSet<UUID>();
|
||||
Set<String> listening = new HashSet<String>();
|
||||
@ -80,6 +81,7 @@ public class LoginListener implements Listener {
|
||||
mcp = new MineverseChatPlayer(uuid, name, current, ignores, listening, mutes, blockedCommands, mail, false, null, true, true, name, jsonFormat, false, false, false, true, true, true);
|
||||
MineverseChat.players.add(mcp);
|
||||
}
|
||||
mcp.setName(event.getPlayer().getName());
|
||||
mcp.setOnline(true);
|
||||
mcp.setHasPlayed(false);
|
||||
MineverseChat.onlinePlayers.add(mcp);
|
||||
@ -94,7 +96,6 @@ public class LoginListener implements Listener {
|
||||
if(mcp.getNickname().equals(mcp.getName())) {
|
||||
mcp.setNickname(event.getPlayer().getName());
|
||||
}
|
||||
mcp.setName(event.getPlayer().getName());
|
||||
mcp.getPlayer().setDisplayName(Format.FormatStringAll(mcp.getNickname()));
|
||||
String nick = mcp.getNickname();
|
||||
if(nick.length() >= 16) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: VentureChat
|
||||
version: 2.14.2
|
||||
version: 2.14.3
|
||||
main: mineverse.Aust1n46.chat.MineverseChat
|
||||
depend: [Vault, ProtocolLib, PlaceholderAPI]
|
||||
softdepend: [Towny, Factions, Heroes]
|
||||
|
Loading…
x
Reference in New Issue
Block a user