Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.logging.Logger;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.java.JavaPlugin;
- import com.nijiko.permissions.PermissionHandler;
- import com.nijikokun.bukkit.Permissions.Permissions;
- /**
- * A fake Bukkit plugin that demonstrates methods to make managing multiple
- * permissions systems a lot easier. Supports PermissionsBukkit and Permissions
- * (or anything that can mimic it).
- *
- * Javadocs of this: http://jd.haydencity.net/bukkit/supereasyperms.html
- *
- * This code is released under Creative Commons Attribution 3.0 Unported
- * (CC BY 3.0). You can view the CC BY 3.0 deed at
- * http://creativecommons.org/licenses/by/3.0/
- *
- * @author oxguy3
- */
- public class ExamplePlugin extends JavaPlugin {
- Logger log = Logger.getLogger("Minecraft");
- public static PermissionHandler permissionHandler;
- public static boolean useperms = false;
- public void onDisable() {}
- public void onEnable() {
- setupPermissions();
- }
- /**
- * Figures out what permissions system the plugin should use.
- *
- * Checks if Permissions (or a mimic) is running; if it isn't, PermissionsBukkit
- * will be used instead. The boolean useperms reflects the result of this method:
- * if it's true, Permissions will be used; if it's false, PermissionsBukkit will
- * be used. This method should only be called in onEnable().
- *
- * Based on code at https://github.com/TheYeti/Permissions/wiki/API-Reference
- */
- private void setupPermissions() {
- if (permissionHandler != null) {
- return;
- }
- Plugin permissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions");
- if (permissionsPlugin == null) {
- log.info("ExamplePlugin: Permission system not detected, using Bukkit permissions");
- useperms=false;
- return;
- }
- useperms=true;
- permissionHandler = ((Permissions) permissionsPlugin).getHandler();
- log.info("ExamplePlugin: Found and will use plugin "+((Permissions)permissionsPlugin).getDescription().getFullName());
- }
- /**
- * Checks if a player has a permission node.
- *
- * This method checks to see if a CommandSender has a given permission node. It
- * supports PermissionsBukkit and Permissions (as well as anything else that can
- * mimic Permissions). If the CommandSender is an op or is not a Player
- * (meaning it's probably a ConsoleCommandSender), it always returns true.
- *
- * @param sender the CommandSender being checked
- *
- * @param perm the dot-based permission node (i.e. "Plugin.subgroup.node")
- *
- * @return whether or not the sender has the given permission
- */
- public boolean hasPerm(CommandSender sender, String perm) {
- if (sender.isOp()) {
- return true;
- } else if (sender instanceof Player) {
- Player player = (Player)sender;
- if (useperms) {
- if (!permissionHandler.has(player, perm)) {
- return false;
- } else {
- return true;
- }
- } else if (!sender.hasPermission(perm)) {
- return false;
- }
- return true;
- } else {
- return true;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement