TFGuilds/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java

151 lines
4.2 KiB
Java
Raw Normal View History

2020-07-13 00:40:11 +00:00
package me.totalfreedom.tfguilds.command;
import java.util.Arrays;
2020-08-02 01:48:15 +00:00
import java.util.Collections;
import java.util.List;
2020-07-13 00:40:11 +00:00
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.TFGuilds;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.util.GUtil;
import org.bukkit.ChatColor;
2020-07-13 00:40:11 +00:00
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
2020-08-02 01:48:15 +00:00
import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
2020-07-13 00:40:11 +00:00
2020-08-02 01:48:15 +00:00
public class GuildCommand extends Common implements CommandExecutor, TabCompleter
2020-07-13 00:40:11 +00:00
{
2020-07-13 00:40:11 +00:00
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
2020-07-13 00:40:11 +00:00
{
Player playerSender = null;
if (sender instanceof Player)
{
playerSender = (Player)sender;
}
2020-07-13 00:40:11 +00:00
if (args.length >= 1)
{
String name = args[0].toLowerCase();
SubCommand command = TFGuilds.getPlugin().getSubCommand(name);
if (command != null)
2020-07-13 00:40:11 +00:00
{
command.execute(sender, playerSender, args);
}
else
{
sender.sendMessage(PREFIX + "Unknown subcommand, do " + ChatColor.GOLD + "/g help" + ChatColor.GRAY + " for help.");
2020-07-13 00:40:11 +00:00
}
return true;
2020-07-13 00:40:11 +00:00
}
return true;
2020-07-13 00:40:11 +00:00
}
2020-08-02 01:48:15 +00:00
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args)
2020-08-02 01:48:15 +00:00
{
Guild guild = null;
if (sender instanceof Player)
{
guild = Guild.getGuild((Player)sender);
}
if (args.length == 1)
{
return TFGuilds.getPlugin().getSubCommands();
}
else if (args.length == 2)
{
switch (args[0])
{
case "home":
{
return Collections.singletonList("set");
}
case "info":
case "join":
case "roster":
{
return Guild.getGuildNames();
}
case "toggletag":
{
if (!tfmBridge.isAdmin(sender))
{
return Collections.emptyList();
}
return GUtil.getPlayerNames();
}
case "motd":
case "tag":
{
return Arrays.asList("set", "clear");
}
case "setstate":
{
return Arrays.asList("OPEN", "CLOSED", "INVITE_ONLY");
}
case "invite":
{
return GUtil.getPlayerNames();
}
case "deleterank":
case "setdefaultrank":
{
if (guild != null && guild.getOwner().equals(((Player)sender).getUniqueId()))
{
return guild.getRankNames();
}
}
case "tp":
{
return guild != null ? guild.getMemberNames() : Collections.emptyList();
}
case "disband":
{
if (!tfmBridge.isAdmin(sender))
{
return Collections.emptyList();
}
return Guild.getGuildNames();
}
case "kick":
{
if (guild != null && guild.isModerator((Player)sender))
{
return guild.getMemberOnlyNames();
}
}
case "removemod":
case "addmod":
case "setowner":
{
if (guild != null && guild.getOwner().equals(((Player)sender).getUniqueId()))
{
return guild.getMemberNames();
}
}
2021-06-15 13:33:22 +00:00
default:
{
return Collections.emptyList();
}
}
}
2020-08-02 01:48:15 +00:00
return Collections.emptyList();
}
}