mirror of
https://github.com/Aust1n46/VentureChat.git
synced 2025-05-22 18:09:06 +00:00
Added BungeeCord functionality to /unmute command.
This commit is contained in:
parent
a867c2d23a
commit
b91e54bbe4
@ -596,6 +596,10 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
}
|
||||
}
|
||||
|
||||
public static void sendPluginMessage(ByteArrayOutputStream byteOutStream) {
|
||||
MineverseChatAPI.getOnlineMineverseChatPlayers().iterator().next().getPlayer().sendPluginMessage(MineverseChat.getInstance(), MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
||||
}
|
||||
|
||||
public static void sendDiscordSRVPluginMessage(String chatChannel, String message) {
|
||||
if(MineverseChatAPI.getOnlineMineverseChatPlayers().size() == 0) {
|
||||
return;
|
||||
@ -916,7 +920,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
out.writeUTF(temporaryDataInstanceUUIDString);
|
||||
out.writeUTF(senderIdentifier);
|
||||
out.writeUTF(playerToMute);
|
||||
player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray());
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
if(!ChatChannel.isChannel(channelName)) {
|
||||
@ -930,7 +934,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
out.writeUTF(senderIdentifier);
|
||||
out.writeUTF(playerToMute);
|
||||
out.writeUTF(channelName);
|
||||
player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray());
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
if(time > 0) {
|
||||
@ -957,7 +961,7 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
out.writeUTF(playerToMute);
|
||||
out.writeUTF(channelName);
|
||||
out.writeLong(time);
|
||||
player.sendPluginMessage(this, MineverseChat.PLUGIN_MESSAGING_CHANNEL, stream.toByteArray());
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
if(identifier.equals("Valid")) {
|
||||
@ -1042,6 +1046,113 @@ public class MineverseChat extends JavaPlugin implements PluginMessageListener {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("Unmute")) {
|
||||
String identifier = msgin.readUTF();
|
||||
if(identifier.equals("Send")) {
|
||||
String server = msgin.readUTF();
|
||||
String senderIdentifier = msgin.readUTF();
|
||||
String temporaryDataInstanceUUIDString = msgin.readUTF();
|
||||
String playerToUnmute = msgin.readUTF();
|
||||
String channelName = msgin.readUTF();
|
||||
MineverseChatPlayer playerToUnmuteMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(playerToUnmute);
|
||||
if(playerToUnmuteMCP == null) {
|
||||
out.writeUTF("Unmute");
|
||||
out.writeUTF("Offline");
|
||||
out.writeUTF(server);
|
||||
out.writeUTF(temporaryDataInstanceUUIDString);
|
||||
out.writeUTF(senderIdentifier);
|
||||
out.writeUTF(playerToUnmute);
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
if(!ChatChannel.isChannel(channelName)) {
|
||||
return;
|
||||
}
|
||||
ChatChannel chatChannelObj = ChatChannel.getChannel(channelName);
|
||||
if (!playerToUnmuteMCP.isMuted(chatChannelObj.getName())) {
|
||||
out.writeUTF("Unmute");
|
||||
out.writeUTF("NotMuted");
|
||||
out.writeUTF(server);
|
||||
out.writeUTF(senderIdentifier);
|
||||
out.writeUTF(playerToUnmute);
|
||||
out.writeUTF(channelName);
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
playerToUnmuteMCP.removeMute(chatChannelObj.getName());
|
||||
playerToUnmuteMCP.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", chatChannelObj.getColor())
|
||||
.replace("{channel_name}", chatChannelObj.getName()));
|
||||
synchronize(playerToUnmuteMCP, true);
|
||||
out.writeUTF("Unmute");
|
||||
out.writeUTF("Valid");
|
||||
out.writeUTF(server);
|
||||
out.writeUTF(senderIdentifier);
|
||||
out.writeUTF(playerToUnmute);
|
||||
out.writeUTF(channelName);
|
||||
sendPluginMessage(stream);
|
||||
return;
|
||||
}
|
||||
if(identifier.equals("Valid")) {
|
||||
String senderIdentifier = msgin.readUTF();
|
||||
String playerToUnmute = msgin.readUTF();
|
||||
String channelName = msgin.readUTF();
|
||||
if(!ChatChannel.isChannel(channelName)) {
|
||||
return;
|
||||
}
|
||||
ChatChannel chatChannelObj = ChatChannel.getChannel(channelName);
|
||||
if(senderIdentifier.equals("VentureChat:Console")) {
|
||||
Bukkit.getConsoleSender().sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString()
|
||||
.replace("{player}", playerToUnmute)
|
||||
.replace("{channel_color}", chatChannelObj.getColor())
|
||||
.replace("{channel_name}", chatChannelObj.getName()));
|
||||
}
|
||||
else {
|
||||
UUID sender = UUID.fromString(senderIdentifier);
|
||||
MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender);
|
||||
senderMCP.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString()
|
||||
.replace("{player}", playerToUnmute)
|
||||
.replace("{channel_color}", chatChannelObj.getColor())
|
||||
.replace("{channel_name}", chatChannelObj.getName()));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if(identifier.equals("Offline")) {
|
||||
String senderIdentifier = msgin.readUTF();
|
||||
String playerToUnmute = msgin.readUTF();
|
||||
if(senderIdentifier.equals("VentureChat:Console")) {
|
||||
Bukkit.getConsoleSender().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
|
||||
.replace("{args}", playerToUnmute));
|
||||
return;
|
||||
}
|
||||
UUID sender = UUID.fromString(senderIdentifier);
|
||||
MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender);
|
||||
senderMCP.getPlayer().sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString()
|
||||
.replace("{args}", playerToUnmute));
|
||||
return;
|
||||
}
|
||||
if(identifier.equals("NotMuted")) {
|
||||
String senderIdentifier = msgin.readUTF();
|
||||
String playerToUnmute = msgin.readUTF();
|
||||
String channelName = msgin.readUTF();
|
||||
if(!ChatChannel.isChannel(channelName)) {
|
||||
return;
|
||||
}
|
||||
ChatChannel chatChannelObj = ChatChannel.getChannel(channelName);
|
||||
if(senderIdentifier.equals("VentureChat:Console")) {
|
||||
Bukkit.getConsoleSender().sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
|
||||
.replace("{player}", playerToUnmute).replace("{channel_color}", chatChannelObj.getColor())
|
||||
.replace("{channel_name}", chatChannelObj.getName()));
|
||||
return;
|
||||
}
|
||||
UUID sender = UUID.fromString(senderIdentifier);
|
||||
MineverseChatPlayer senderMCP = MineverseChatAPI.getOnlineMineverseChatPlayer(sender);
|
||||
senderMCP.getPlayer().sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
|
||||
.replace("{player}", playerToUnmute).replace("{channel_color}", chatChannelObj.getColor())
|
||||
.replace("{channel_name}", chatChannelObj.getName()));
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("Message")) {
|
||||
String identifier = msgin.readUTF();
|
||||
if(identifier.equals("Send")) {
|
||||
|
@ -386,6 +386,80 @@ public class MineverseChatBungee extends Plugin implements Listener {
|
||||
}
|
||||
}
|
||||
}
|
||||
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(MineverseChatBungee.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(MineverseChatBungee.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(MineverseChatBungee.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(MineverseChatBungee.PLUGIN_MESSAGING_CHANNEL, outstream.toByteArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
if(subchannel.equals("Message")) {
|
||||
String identifier = in.readUTF();
|
||||
if(identifier.equals("Send")) {
|
||||
|
@ -22,8 +22,6 @@ import mineverse.Aust1n46.chat.localization.LocalizedMessage;
|
||||
import mineverse.Aust1n46.chat.utilities.Format;
|
||||
|
||||
public class Mute extends MineverseCommand {
|
||||
private MineverseChat plugin = MineverseChat.getInstance();
|
||||
|
||||
private static final List<String> COMMON_MUTE_TIMES = Collections.unmodifiableList(Arrays.asList(new String[]{"12h", "15m", "1d", "1h", "1m", "30s"}));
|
||||
|
||||
public Mute(String name) {
|
||||
@ -158,7 +156,7 @@ public class Mute extends MineverseCommand {
|
||||
out.writeUTF(playerToMute);
|
||||
out.writeUTF(channel.getName());
|
||||
out.writeLong(time);
|
||||
plugin.getServer().getOnlinePlayers().iterator().next().sendPluginMessage(plugin, MineverseChat.PLUGIN_MESSAGING_CHANNEL, byteOutStream.toByteArray());
|
||||
MineverseChat.sendPluginMessage(byteOutStream);
|
||||
out.close();
|
||||
}
|
||||
catch(Exception e) {
|
||||
|
@ -1,6 +1,16 @@
|
||||
package mineverse.Aust1n46.chat.command.mute;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
|
||||
import mineverse.Aust1n46.chat.MineverseChat;
|
||||
import mineverse.Aust1n46.chat.api.MineverseChatAPI;
|
||||
@ -23,35 +33,36 @@ public class Unmute extends MineverseCommand {
|
||||
.replace("{args}", "[player] [channel]"));
|
||||
return;
|
||||
}
|
||||
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
|
||||
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
|
||||
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
|
||||
return;
|
||||
}
|
||||
for (ChatChannel channel : ChatChannel.getChatChannels()) {
|
||||
if (channel.getName().equalsIgnoreCase(args[1]) || channel.getAlias().equalsIgnoreCase(args[1])) {
|
||||
if (!player.isMuted(channel.getName())) {
|
||||
sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
return;
|
||||
}
|
||||
player.removeMute(channel.getName());
|
||||
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
if (player.isOnline()) {
|
||||
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
} else {
|
||||
player.setModified(true);
|
||||
}
|
||||
if (channel.getBungee()) {
|
||||
MineverseChat.getInstance().synchronize(player, true);
|
||||
}
|
||||
if (ChatChannel.isChannel(args[1])) {
|
||||
ChatChannel channel = ChatChannel.getChannel(args[1]);
|
||||
if(channel.getBungee()) {
|
||||
sendBungeeCordUnmute(sender, args[0], channel);
|
||||
return;
|
||||
}
|
||||
MineverseChatPlayer player = MineverseChatAPI.getMineverseChatPlayer(args[0]);
|
||||
if (player == null || (!player.isOnline() && !sender.hasPermission("venturechat.mute.offline"))) {
|
||||
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
|
||||
return;
|
||||
}
|
||||
if (!player.isMuted(channel.getName())) {
|
||||
sender.sendMessage(LocalizedMessage.PLAYER_NOT_MUTED.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
return;
|
||||
}
|
||||
player.removeMute(channel.getName());
|
||||
sender.sendMessage(LocalizedMessage.UNMUTE_PLAYER_SENDER.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
if (player.isOnline()) {
|
||||
player.getPlayer().sendMessage(LocalizedMessage.UNMUTE_PLAYER_PLAYER.toString()
|
||||
.replace("{player}", player.getName()).replace("{channel_color}", channel.getColor())
|
||||
.replace("{channel_name}", channel.getName()));
|
||||
}
|
||||
else {
|
||||
player.setModified(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
sender.sendMessage(LocalizedMessage.INVALID_CHANNEL.toString().replace("{args}", args[1]));
|
||||
return;
|
||||
@ -60,4 +71,42 @@ public class Unmute extends MineverseCommand {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
|
||||
List<String> completions = new ArrayList<>();
|
||||
if(args.length == 1) {
|
||||
StringUtil.copyPartialMatches(args[0], MineverseChat.networkPlayerNames, completions);
|
||||
Collections.sort(completions);
|
||||
return completions;
|
||||
}
|
||||
if(args.length == 2) {
|
||||
StringUtil.copyPartialMatches(args[1], ChatChannel.getChatChannels().stream().map(ChatChannel::getName).collect(Collectors.toList()), completions);
|
||||
Collections.sort(completions);
|
||||
return completions;
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
private void sendBungeeCordUnmute(CommandSender sender, String playerToUnmute, ChatChannel channel) {
|
||||
ByteArrayOutputStream byteOutStream = new ByteArrayOutputStream();
|
||||
DataOutputStream out = new DataOutputStream(byteOutStream);
|
||||
try {
|
||||
out.writeUTF("Unmute");
|
||||
out.writeUTF("Send");
|
||||
if(sender instanceof Player) {
|
||||
out.writeUTF(((Player) sender).getUniqueId().toString());
|
||||
}
|
||||
else {
|
||||
out.writeUTF("VentureChat:Console");
|
||||
}
|
||||
out.writeUTF(playerToUnmute);
|
||||
out.writeUTF(channel.getName());
|
||||
MineverseChat.sendPluginMessage(byteOutStream);
|
||||
out.close();
|
||||
}
|
||||
catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user