diff --git a/pom.xml b/pom.xml
index 4cdfe0b..f34fd0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.totalfreedom
TFGuilds
- 0.2.6
+ 0.2.7
jar
TFGuilds
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/CreateRankSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/CreateRankSubcommand.java
index 931baba..31468c5 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/CreateRankSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/CreateRankSubcommand.java
@@ -2,7 +2,7 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/DeleteRankSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/DeleteRankSubcommand.java
index e328472..a01f19f 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/DeleteRankSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/DeleteRankSubcommand.java
@@ -2,7 +2,7 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java b/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
index 2965ebd..a84706c 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/GuildCommand.java
@@ -1,11 +1,17 @@
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
+public class GuildCommand extends Common implements CommandExecutor, TabCompleter
{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
@@ -65,4 +71,45 @@ public class GuildCommand extends Common implements CommandExecutor
}
return new HelpSubcommand().onCommand(sender, command, label, args);
}
+
+ @Override
+ public List 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");
+ }
+ else if (args.length == 2)
+ {
+ switch (args[0])
+ {
+ case "home":
+ return Arrays.asList("set");
+ case "info":
+ case "join":
+ case "roster":
+ return Guild.getGuildList();
+ case "motd":
+ case "tag":
+ return Arrays.asList("set", "clear");
+ case "setstate":
+ return Arrays.asList("OPEN", "INVITE", "CLOSED");
+ case "invite":
+ return GUtil.getPlayerList();
+ case "deleterank":
+ return guild.getRankNames();
+ case "tp":
+ case "removemod":
+ case "addmod":
+ case "setowner":
+ case "kick":
+ return guild.getMembers();
+ }
+ }
+ return Collections.emptyList();
+ }
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/HomeSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/HomeSubcommand.java
index cc29894..7112ada 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/HomeSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/HomeSubcommand.java
@@ -2,8 +2,6 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
-import me.totalfreedom.tfguilds.util.GUtil;
-import org.apache.commons.lang3.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/MOTDSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/MOTDSubcommand.java
index a0eae58..006bd3b 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/MOTDSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/MOTDSubcommand.java
@@ -3,7 +3,7 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.util.GUtil;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/RemoveModSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/RemoveModSubcommand.java
index ef9e7af..975b6b9 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/RemoveModSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/RemoveModSubcommand.java
@@ -43,6 +43,12 @@ public class RemoveModSubcommand extends Common implements CommandExecutor
return true;
}
+ if (guild.getModerators().contains(sender.getName()))
+ {
+ sender.sendMessage(ChatColor.RED + "You may not demote yourself.");
+ return true;
+ }
+
if (!guild.hasMember(player.getName()))
{
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
@@ -89,6 +95,12 @@ public class RemoveModSubcommand extends Common implements CommandExecutor
return true;
}
+ if (n == player)
+ {
+ sender.sendMessage(ChatColor.RED + "You may not demote yourself.");
+ return true;
+ }
+
if (!guild.hasMember(n.getName()))
{
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/SetOwnerSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/SetOwnerSubcommand.java
index 02a1629..75439fd 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/SetOwnerSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/SetOwnerSubcommand.java
@@ -43,6 +43,12 @@ public class SetOwnerSubcommand extends Common implements CommandExecutor
return true;
}
+ if (guild.getOwner().contains(player.getName()))
+ {
+ sender.sendMessage(ChatColor.RED + "This player is already the owner of that guild!");
+ return true;
+ }
+
if (!guild.hasMember(player.getName()))
{
sender.sendMessage(ChatColor.RED + "This player is not in the specified guild!");
@@ -84,6 +90,12 @@ public class SetOwnerSubcommand extends Common implements CommandExecutor
return true;
}
+ if (n == player)
+ {
+ sender.sendMessage(ChatColor.RED + "You are already the owner of your guild.");
+ return true;
+ }
+
if (!guild.hasMember(n.getName()))
{
sender.sendMessage(ChatColor.RED + "This player is not in your guild!");
diff --git a/src/main/java/me/totalfreedom/tfguilds/command/SetRankSubcommand.java b/src/main/java/me/totalfreedom/tfguilds/command/SetRankSubcommand.java
index 80db8f8..931e116 100644
--- a/src/main/java/me/totalfreedom/tfguilds/command/SetRankSubcommand.java
+++ b/src/main/java/me/totalfreedom/tfguilds/command/SetRankSubcommand.java
@@ -3,7 +3,7 @@ package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.guild.GuildRank;
-import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
diff --git a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
index 68fb34f..0108f8e 100644
--- a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
+++ b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
@@ -11,6 +11,7 @@ import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
+import org.bukkit.command.CommandSender;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
@@ -398,6 +399,20 @@ public class Guild
return guild;
}
+ public static Guild getGuild(CommandSender sender)
+ {
+ Guild guild = null;
+ for (String key : plugin.guilds.getKeys(false))
+ {
+ Guild kg = getGuild(key);
+ if (kg.getMembers().contains(sender.getName()))
+ {
+ guild = kg;
+ }
+ }
+ return guild;
+ }
+
public static boolean guildExists(String identifier)
{
return plugin.guilds.contains(identifier);
diff --git a/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java b/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
index 158682d..1f16a2a 100644
--- a/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
+++ b/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
@@ -1,6 +1,8 @@
package me.totalfreedom.tfguilds.util;
+import java.util.ArrayList;
import org.apache.commons.lang.StringUtils;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import java.text.SimpleDateFormat;
@@ -9,6 +11,7 @@ import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.bukkit.entity.Player;
public class GUtil
{
@@ -45,4 +48,15 @@ public class GUtil
public static List BLACKLISTED_NAMES_AND_TAGS = Arrays.asList(
"admin", "owner", "moderator", "developer", "console", "dev", "staff", "mod", "sra", "sta", "sa", "super admin", "telnet admin", "senior admin");
+
+ public static List getPlayerList()
+ {
+ List players = new ArrayList<>();
+ for (Player player : Bukkit.getOnlinePlayers())
+ {
+ players.add(player.getName());
+ }
+ return players;
+ }
+
}
\ No newline at end of file