184 lines
7.1 KiB
Java
184 lines
7.1 KiB
Java
package me.totalfreedom.tfguilds.command;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import me.totalfreedom.tfguilds.Common;
|
|
import me.totalfreedom.tfguilds.guild.Guild;
|
|
import me.totalfreedom.tfguilds.util.GUtil;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandExecutor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.command.TabCompleter;
|
|
|
|
public class GuildCommand extends Common implements CommandExecutor, TabCompleter
|
|
{
|
|
@Override
|
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
|
|
{
|
|
if (args.length >= 1)
|
|
{
|
|
switch (args[0].toLowerCase())
|
|
{
|
|
case "list":
|
|
return new ListSubcommand().onCommand(sender, command, label, args);
|
|
case "help":
|
|
return new HelpSubcommand().onCommand(sender, command, label, args);
|
|
case "create":
|
|
return new CreateSubcommand().onCommand(sender, command, label, args);
|
|
case "disband":
|
|
return new DisbandSubcommand().onCommand(sender, command, label, args);
|
|
case "invite":
|
|
return new InviteSubcommand().onCommand(sender, command, label, args);
|
|
case "addmod":
|
|
return new AddModSubcommand().onCommand(sender, command, label, args);
|
|
case "removemod":
|
|
return new RemoveModSubcommand().onCommand(sender, command, label, args);
|
|
case "setowner":
|
|
return new SetOwnerSubcommand().onCommand(sender, command, label, args);
|
|
case "setstate":
|
|
return new SetStateSubcommand().onCommand(sender, command, label, args);
|
|
case "kick":
|
|
return new KickSubcommand().onCommand(sender, command, label, args);
|
|
case "leave":
|
|
return new LeaveSubcommand().onCommand(sender, command, label, args);
|
|
case "tp":
|
|
return new TPSubcommand().onCommand(sender, command, label, args);
|
|
case "info":
|
|
return new InfoSubcommand().onCommand(sender, command, label, args);
|
|
case "tag":
|
|
return new TagSubcommand().onCommand(sender, command, label, args);
|
|
case "chat":
|
|
return new ChatSubcommand().onCommand(sender, command, label, args);
|
|
case "join":
|
|
return new JoinSubcommand().onCommand(sender, command, label, args);
|
|
case "rename":
|
|
return new RenameSubcommand().onCommand(sender, command, label, args);
|
|
case "createrank":
|
|
return new CreateRankSubcommand().onCommand(sender, command, label, args);
|
|
case "deleterank":
|
|
return new DeleteRankSubcommand().onCommand(sender, command, label, args);
|
|
case "setrank":
|
|
return new SetRankSubcommand().onCommand(sender, command, label, args);
|
|
case "motd":
|
|
return new MOTDSubcommand().onCommand(sender, command, label, args);
|
|
case "home":
|
|
return new HomeSubcommand().onCommand(sender, command, label, args);
|
|
case "roster":
|
|
return new RosterSubcommand().onCommand(sender, command, label, args);
|
|
case "setdefaultrank":
|
|
return new SetDefaultRankSubcommand().onCommand(sender, command, label, args);
|
|
case "toggletags":
|
|
return new ToggleTagsSubcommand().onCommand(sender, command, label, args);
|
|
case "toggletag":
|
|
return new ToggleTagSubcommand().onCommand(sender, command, label, args);
|
|
case "setmember":
|
|
return new SetMemberSubcommand().onCommand(sender, command, label, args);
|
|
}
|
|
sender.sendMessage(tl(PREFIX + "Unknown command - Run /g help if you need help"));
|
|
return true;
|
|
}
|
|
return new HelpSubcommand().onCommand(sender, command, label, args);
|
|
}
|
|
|
|
@Override
|
|
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args)
|
|
{
|
|
Guild guild = Guild.getGuild(sender);
|
|
if (args.length == 1)
|
|
{
|
|
return Arrays.asList("addmod", "chat", "createrank", "create",
|
|
"deleterank", "disband", "help", "home", "info", "invite",
|
|
"join", "kick", "leave", "list", "motd", "removemod", "rename",
|
|
"roster", "setowner", "setrank", "setstate", "tag", "tp", "setdefaultrank",
|
|
"toggletags", "toggletag", "setmember");
|
|
}
|
|
else if (args.length == 2)
|
|
{
|
|
switch (args[0])
|
|
{
|
|
case "home":
|
|
{
|
|
return Arrays.asList("set");
|
|
}
|
|
|
|
case "info":
|
|
case "join":
|
|
case "roster":
|
|
case "setmember":
|
|
{
|
|
return Guild.getGuildList();
|
|
}
|
|
|
|
case "toggletag":
|
|
{
|
|
if (!plugin.bridge.isAdmin(sender))
|
|
{
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
return GUtil.getPlayerList();
|
|
}
|
|
|
|
case "motd":
|
|
case "tag":
|
|
{
|
|
return Arrays.asList("set", "clear");
|
|
}
|
|
|
|
case "setstate":
|
|
{
|
|
return Arrays.asList("OPEN", "INVITE", "CLOSED");
|
|
}
|
|
|
|
case "invite":
|
|
{
|
|
return GUtil.getPlayerList();
|
|
}
|
|
|
|
case "deleterank":
|
|
case "setdefaultrank":
|
|
{
|
|
if (guild.getOwner().equals(sender.getName()))
|
|
{
|
|
return guild.getRankNames();
|
|
}
|
|
}
|
|
|
|
case "tp":
|
|
{
|
|
return guild.getMembers();
|
|
}
|
|
|
|
case "disband":
|
|
{
|
|
if (!plugin.bridge.isAdmin(sender))
|
|
{
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
return Guild.getGuildList();
|
|
}
|
|
|
|
case "kick":
|
|
{
|
|
if (guild.hasModerator(sender.getName()))
|
|
{
|
|
return guild.getOnlyMembers();
|
|
}
|
|
}
|
|
|
|
case "removemod":
|
|
case "addmod":
|
|
case "setowner":
|
|
{
|
|
if (guild.getOwner().equals(sender.getName()))
|
|
{
|
|
return guild.getMembers();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return Collections.emptyList();
|
|
}
|
|
} |