Added new API method for getting list of channels.

Added channel tab completion for /mute command.
This commit is contained in:
Aust1n46 2021-03-21 00:28:59 -05:00
parent 1da382bb38
commit 72153b57c6
8 changed files with 32 additions and 11 deletions

View File

@ -21,8 +21,10 @@ public class ChatChannel {
private static MineverseChat plugin = MineverseChat.getInstance();
private static ChatChannel defaultChatChannel;
@Deprecated
private static ChatChannel[] channels;
private static String defaultColor;
private static List<ChatChannel> chatChannels = new ArrayList<ChatChannel>();
private String name;
private String permission;
@ -65,6 +67,7 @@ public class ChatChannel {
ChatChannel chatChannel = new ChatChannel(name, color, chatColor, permission, speakPermission, mutable,
filter, defaultChannel, alias, distance, autojoin, bungee, cooldown, format);
channels[counter++] = chatChannel;
chatChannels.add(chatChannel);
if (defaultChannel) {
defaultChatChannel = chatChannel;
defaultColor = color;
@ -77,9 +80,19 @@ public class ChatChannel {
*
* @return {@link ChatChannel}[]
*/
@Deprecated
public static ChatChannel[] getChannels() {
return channels;
}
/**
* Get list of chat channels.
*
* @return {@link List}&lt{@link ChatChannel}&gt
*/
public static List<ChatChannel> getChatChannels() {
return chatChannels;
}
/**
* Get a chat channel by name.

View File

@ -15,7 +15,7 @@ public class Chlist extends MineverseCommand {
@Override
public void execute(CommandSender sender, String command, String[] args) {
sender.sendMessage(LocalizedMessage.CHANNEL_LIST_HEADER.toString());
for(ChatChannel chname : ChatChannel.getChannels()) {
for(ChatChannel chname : ChatChannel.getChatChannels()) {
if(chname.hasPermission()) {
if(sender.hasPermission(chname.getPermission())) {
sender.sendMessage(LocalizedMessage.CHANNEL_LIST_WITH_PERMISSIONS.toString()

View File

@ -29,7 +29,7 @@ public class Setchannelall extends MineverseCommand {
.replace("{args}", args[0]));
return;
}
for(ChatChannel channel : ChatChannel.getChannels()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(channel.hasPermission()) {
if(!player.isOnline()) {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE_NO_PERMISSIONS_CHECK.toString());

View File

@ -5,6 +5,7 @@ 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;
@ -120,10 +121,17 @@ public class Mute extends MineverseCommand {
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
List<String> completions = new ArrayList<>();
StringUtil.copyPartialMatches(args[args.length - 1], MineverseChat.networkPlayerNames, completions);
completions.add("tester");
Collections.sort(completions);
return completions;
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 sendBungeeCordMute(CommandSender sender, String playerToMute, ChatChannel channel, long time) {

View File

@ -31,7 +31,7 @@ public class Muteall extends MineverseCommand {
return;
}
boolean bungee = false;
for(ChatChannel channel : ChatChannel.getChannels()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(channel.isMutable()) {
player.addMute(channel.getName(), 0);
if(channel.getBungee()) {

View File

@ -28,7 +28,7 @@ public class Unmute extends MineverseCommand {
sender.sendMessage(LocalizedMessage.PLAYER_OFFLINE.toString().replace("{args}", args[0]));
return;
}
for (ChatChannel channel : ChatChannel.getChannels()) {
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()

View File

@ -31,7 +31,7 @@ public class Unmuteall extends MineverseCommand {
return;
}
boolean bungee = false;
for(ChatChannel channel : ChatChannel.getChannels()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
player.removeMute(channel.getName());
if(channel.getBungee()) {
bungee = true;

View File

@ -153,7 +153,7 @@ public class CommandListener implements CommandExecutor, Listener {
}
if(!plugin.quickchat) {
for(ChatChannel channel : ChatChannel.getChannels()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(!channel.hasPermission() || mcp.getPlayer().hasPermission(channel.getPermission())) {
if(message.equals("/" + channel.getAlias())) {
mcp.getPlayer().sendMessage(LocalizedMessage.SET_CHANNEL.toString()
@ -227,7 +227,7 @@ public class CommandListener implements CommandExecutor, Listener {
return true;
}
MineverseChatPlayer mcp = MineverseChatAPI.getOnlineMineverseChatPlayer((Player) sender);
for(ChatChannel channel : ChatChannel.getChannels()) {
for(ChatChannel channel : ChatChannel.getChatChannels()) {
if(command.getName().toLowerCase().equals(channel.getAlias())) {
if(args.length == 0) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid command: /" + channel.getAlias() + " message");