diff --git a/pom.xml b/pom.xml
index b856f78..2be4132 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,6 +75,10 @@
jitpack.io
https://jitpack.io/
+
+ vault-repo
+ http://nexus.hc.to/content/repositories/pub_releases
+
@@ -100,6 +104,12 @@
Towny
master-SNAPSHOT
+
+ com.github.milkbowl
+ VaultAPI
+ master-SNAPSHOT
+ provided
+
TBMCPlugins
diff --git a/src/main/java/buttondevteam/core/MainPlugin.java b/src/main/java/buttondevteam/core/MainPlugin.java
index 5455e6e..5525da6 100644
--- a/src/main/java/buttondevteam/core/MainPlugin.java
+++ b/src/main/java/buttondevteam/core/MainPlugin.java
@@ -5,13 +5,16 @@ import java.util.UUID;
import java.util.logging.Logger;
import org.bukkit.plugin.PluginDescriptionFile;
+import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.java.JavaPlugin;
import buttondevteam.lib.TBMCCoreAPI;
import buttondevteam.lib.TBMCPlayer;
+import net.milkbowl.vault.permission.Permission;
public class MainPlugin extends JavaPlugin {
public static MainPlugin Instance;
+ public static Permission permission;
private PluginDescriptionFile pdfFile;
private Logger logger;
@@ -22,7 +25,7 @@ public class MainPlugin extends JavaPlugin {
Instance = this;
pdfFile = getDescription();
logger = getLogger();
-
+ setupPermissions();
logger.info(pdfFile.getName() + " has been Enabled (V." + pdfFile.getVersion() + ").");
TBMCCoreAPI.RegisterEventsForExceptions(new PlayerListener(), this);
}
@@ -35,4 +38,13 @@ public class MainPlugin extends JavaPlugin {
}
logger.info("Player data saved.");
}
+
+ private boolean setupPermissions() {
+ RegisteredServiceProvider permissionProvider = getServer().getServicesManager()
+ .getRegistration(Permission.class);
+ if (permissionProvider != null) {
+ permission = permissionProvider.getProvider();
+ }
+ return (permission != null);
+ }
}
diff --git a/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java b/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
index 3a62ef6..0d81794 100644
--- a/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
+++ b/src/main/java/buttondevteam/lib/chat/TBMCChatAPI.java
@@ -8,12 +8,14 @@ import java.util.Set;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.reflections.Reflections;
import org.reflections.scanners.SubTypesScanner;
import org.reflections.util.ClasspathHelper;
import org.reflections.util.ConfigurationBuilder;
+import buttondevteam.core.MainPlugin;
import buttondevteam.lib.TBMCChatEvent;
import buttondevteam.lib.TBMCCoreAPI;
@@ -30,10 +32,12 @@ public class TBMCChatAPI {
*
* @param command
* The command which we want the subcommands of
+ * @param sender
+ * The sender for permissions
* @return The subcommands
*/
- public static String[] GetSubCommands(TBMCCommandBase command) {
- return GetSubCommands(command.GetCommandPath());
+ public static String[] GetSubCommands(TBMCCommandBase command, CommandSender sender) {
+ return GetSubCommands(command.GetCommandPath(), sender);
}
/**
@@ -41,9 +45,11 @@ public class TBMCChatAPI {
*
* @param command
* The command which we want the subcommands of
+ * @param sender
+ * The sender for permissions
* @return The subcommands
*/
- public static String[] GetSubCommands(String command) {
+ public static String[] GetSubCommands(String command, CommandSender sender) {
ArrayList cmds = new ArrayList();
cmds.add("ยง6---- Subcommands ----");
for (TBMCCommandBase cmd : TBMCChatAPI.GetCommands().values()) {
@@ -51,6 +57,10 @@ public class TBMCChatAPI {
int ind = cmd.GetCommandPath().indexOf(' ', command.length() + 2);
if (ind >= 0)
continue;
+ if (cmd.GetPlayerOnly() && !(sender instanceof Player))
+ continue;
+ if (cmd.GetModOnly() && !MainPlugin.permission.has(sender, "tbmc.admin"))
+ continue;
cmds.add("/" + cmd.GetCommandPath());
}
}