mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Added PEX and Bukkit Permissions.
Changed maindirectory to use File.separator Added permissions: to plugin.yml
This commit is contained in:
		@@ -10,12 +10,9 @@ import com.gmail.nossr50.locale.mcLocale;
 | 
			
		||||
import com.gmail.nossr50.party.Party;
 | 
			
		||||
import com.gmail.nossr50.skills.*;
 | 
			
		||||
import com.nijikokun.bukkit.Permissions.Permissions;
 | 
			
		||||
import com.nijiko.permissions.PermissionHandler;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.io.BufferedReader;
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.FileReader;
 | 
			
		||||
@@ -49,13 +46,13 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
	 * Donate via paypal to nossr50@gmail.com (A million thanks to anyone that does!)
 | 
			
		||||
	 */
 | 
			
		||||
	
 | 
			
		||||
	public static String maindirectory = "plugins/mcMMO/"; 
 | 
			
		||||
	public static String maindirectory = "plugins + File.separator + mcMMO"; 
 | 
			
		||||
	File file = new File(maindirectory + File.separator + "config.yml");
 | 
			
		||||
	public static final Logger log = Logger.getLogger("Minecraft"); 
 | 
			
		||||
	private final mcPlayerListener playerListener = new mcPlayerListener(this);
 | 
			
		||||
	private final mcBlockListener blockListener = new mcBlockListener(this);
 | 
			
		||||
	private final mcEntityListener entityListener = new mcEntityListener(this);
 | 
			
		||||
	public static PermissionHandler permissionHandler;
 | 
			
		||||
	public static mcPermissions permissionHandler = new mcPermissions();
 | 
			
		||||
	private Permissions permissions;
 | 
			
		||||
 | 
			
		||||
	private Timer mcMMO_Timer = new Timer(true); //BLEED AND REGENERATION
 | 
			
		||||
@@ -71,9 +68,9 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
 | 
			
		||||
	public void onEnable() 
 | 
			
		||||
	{
 | 
			
		||||
		//new File(maindirectory).mkdir();
 | 
			
		||||
		new File(maindirectory).mkdir();
 | 
			
		||||
		
 | 
			
		||||
		setupPermissions();
 | 
			
		||||
		mcPermissions.initialize(getServer());
 | 
			
		||||
		config.configCheck();
 | 
			
		||||
		
 | 
			
		||||
		if(!LoadProperties.useMySQL)
 | 
			
		||||
@@ -121,25 +118,6 @@ public class mcMMO extends JavaPlugin
 | 
			
		||||
		//mcMMO_SpellTimer.schedule(new mcTimerSpells(this), (long)0, (long)(100));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private void setupPermissions() 
 | 
			
		||||
	{
 | 
			
		||||
	    if (permissionHandler != null) 
 | 
			
		||||
	    {
 | 
			
		||||
	        return;
 | 
			
		||||
	    }
 | 
			
		||||
	    
 | 
			
		||||
	    Plugin permissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions");
 | 
			
		||||
	    
 | 
			
		||||
	    if (permissionsPlugin == null) 
 | 
			
		||||
	    {
 | 
			
		||||
	        //log.log(Level.INFO, "[mcMMO] Permission system not detected, defaulting to OP");
 | 
			
		||||
	        return;
 | 
			
		||||
	    }
 | 
			
		||||
	    
 | 
			
		||||
	    permissionHandler = ((Permissions) permissionsPlugin).getHandler();
 | 
			
		||||
	    //log.log(Level.INFO, "[mcMMO] Found and will use plugin "+((Permissions)permissionsPlugin).getDescription().getFullName());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public boolean inSameParty(Player playera, Player playerb){
 | 
			
		||||
		if(Users.getProfile(playera).inParty() && Users.getProfile(playerb).inParty()){
 | 
			
		||||
			if(Users.getProfile(playera).getParty().equals(Users.getProfile(playerb).getParty())){
 | 
			
		||||
 
 | 
			
		||||
@@ -1,33 +1,52 @@
 | 
			
		||||
package com.gmail.nossr50;
 | 
			
		||||
 | 
			
		||||
import java.util.logging.Level;
 | 
			
		||||
import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Server;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import ru.tehkode.permissions.PermissionManager;
 | 
			
		||||
import ru.tehkode.permissions.bukkit.PermissionsEx;
 | 
			
		||||
 | 
			
		||||
import com.nijiko.permissions.PermissionHandler;
 | 
			
		||||
import com.nijikokun.bukkit.Permissions.Permissions;
 | 
			
		||||
 | 
			
		||||
public class mcPermissions 
 | 
			
		||||
{
 | 
			
		||||
	private static Permissions permissionsPlugin;
 | 
			
		||||
    public static boolean permissionsEnabled = false;
 | 
			
		||||
    private static volatile mcPermissions instance;
 | 
			
		||||
    
 | 
			
		||||
	private enum PermissionType {
 | 
			
		||||
		PEX, PERMISSIONS, BUKKIT
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	private static PermissionType permissionType;
 | 
			
		||||
	private static Object PHandle;
 | 
			
		||||
	public static boolean permissionsEnabled = false;
 | 
			
		||||
 | 
			
		||||
    public static void initialize(Server server) 
 | 
			
		||||
    {
 | 
			
		||||
        Plugin test = server.getPluginManager().getPlugin("Permissions");
 | 
			
		||||
        if (test != null) 
 | 
			
		||||
        {
 | 
			
		||||
            Logger log = Logger.getLogger("Minecraft");
 | 
			
		||||
            permissionsPlugin = ((Permissions) test);
 | 
			
		||||
            permissionsEnabled = true;
 | 
			
		||||
            log.log(Level.INFO, "[mcMMO] Permissions enabled.");
 | 
			
		||||
        } else 
 | 
			
		||||
        {
 | 
			
		||||
            Logger log = Logger.getLogger("Minecraft");
 | 
			
		||||
            log.log(Level.SEVERE, "[mcMMO] Permissions isn't loaded, there are no restrictions.");
 | 
			
		||||
        }
 | 
			
		||||
        Logger log = Logger.getLogger("Minecraft");
 | 
			
		||||
        
 | 
			
		||||
		if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
 | 
			
		||||
		
 | 
			
		||||
		Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
 | 
			
		||||
		Plugin test = server.getPluginManager().getPlugin("Permissions");
 | 
			
		||||
		if(PEXtest != null) {
 | 
			
		||||
			PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
 | 
			
		||||
			permissionType = PermissionType.PEX;
 | 
			
		||||
			permissionsEnabled = true;
 | 
			
		||||
			log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
 | 
			
		||||
		} else if(test != null) {
 | 
			
		||||
			PHandle = (PermissionHandler) ((Permissions) test).getHandler();
 | 
			
		||||
			permissionType = PermissionType.PERMISSIONS;
 | 
			
		||||
			permissionsEnabled = true;
 | 
			
		||||
			log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
 | 
			
		||||
		} else {
 | 
			
		||||
			permissionType = PermissionType.BUKKIT;
 | 
			
		||||
			permissionsEnabled = true;
 | 
			
		||||
			log.info("[mcMMO] Using Bukkit Permissions.");
 | 
			
		||||
		}
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static boolean getEnabled()
 | 
			
		||||
@@ -35,10 +54,20 @@ public class mcPermissions
 | 
			
		||||
    	return permissionsEnabled;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    private static boolean permission(Player player, String string) 
 | 
			
		||||
    private static boolean permission(Player player, String permission) 
 | 
			
		||||
    {
 | 
			
		||||
        return permissionsPlugin.getHandler().has(player, string);
 | 
			
		||||
    }
 | 
			
		||||
		if(!permissionsEnabled) return player.isOp();
 | 
			
		||||
		switch(permissionType) {
 | 
			
		||||
			case PEX:
 | 
			
		||||
				return ((PermissionManager) PHandle).has(player, permission);
 | 
			
		||||
			case PERMISSIONS:
 | 
			
		||||
				return ((PermissionHandler) PHandle).has(player, permission);
 | 
			
		||||
			case BUKKIT:
 | 
			
		||||
				return player.hasPermission(permission);
 | 
			
		||||
			default:
 | 
			
		||||
				return true;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
    public boolean admin(Player player){
 | 
			
		||||
    	if (permissionsEnabled) {
 | 
			
		||||
            return permission(player, "mcmmo.admin");
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										165
									
								
								mcMMO/plugin.yml
									
									
									
									
									
								
							
							
						
						
									
										165
									
								
								mcMMO/plugin.yml
									
									
									
									
									
								
							@@ -63,4 +63,167 @@ commands:
 | 
			
		||||
    a:
 | 
			
		||||
        description: Toggle Admin chat or send admin chat messages
 | 
			
		||||
    sorcery:
 | 
			
		||||
        description: Detailed skill info
 | 
			
		||||
        description: Detailed skill info
 | 
			
		||||
permissions:
 | 
			
		||||
    mcmmo.*:
 | 
			
		||||
        description: Implies all mcmmo permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.admin: true 
 | 
			
		||||
            mcmmo.tools.*: true
 | 
			
		||||
            mcmmo.ability.*: true 
 | 
			
		||||
            mcmmo.item.*: true 
 | 
			
		||||
            mcmmo.tools.*: true 
 | 
			
		||||
            mcmmo.regeneration: true 
 | 
			
		||||
            mcmmo.motd: true 
 | 
			
		||||
            mcmmo.commands.*: true 
 | 
			
		||||
            mcmmo.chat.*: true 
 | 
			
		||||
            mcmmo.skills.*: true
 | 
			
		||||
    mcmmo.admin:
 | 
			
		||||
        default: op
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.tools.*:
 | 
			
		||||
        description: Implies all mcmmo.tools permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.tools.mcrefresh: true 
 | 
			
		||||
            mcmmo.tools.mmoedit: true 
 | 
			
		||||
            mcmmo.tools.mcgod: true 
 | 
			
		||||
    mcmmo.tools.mcrefresh:
 | 
			
		||||
        default: op
 | 
			
		||||
    mcmmo.tools.mmoedit:
 | 
			
		||||
        default: op
 | 
			
		||||
    mcmmo.tools.mcgod:
 | 
			
		||||
        default: op
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.ability.*:
 | 
			
		||||
        description: Implies all mcmmo.ability permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.ability.herbalism: true 
 | 
			
		||||
            mcmmo.ability.excavation: true 
 | 
			
		||||
            mcmmo.ability.unarmed: true 
 | 
			
		||||
            mcmmo.ability.mining: true 
 | 
			
		||||
            mcmmo.ability.axes: true 
 | 
			
		||||
            mcmmo.ability.swords: true 
 | 
			
		||||
            mcmmo.ability.woodcutting: true 
 | 
			
		||||
    mcmmo.ability.herbalism:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.excavation:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.unarmed:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.mining:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.axes:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.swords:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.ability.woodcutting:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.item.*:
 | 
			
		||||
        description: Implies all mcmmo.item permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.item.chimaerawing: true 
 | 
			
		||||
    mcmmo.item.chimaerawing:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.regeneration:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.motd:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.commands.*:
 | 
			
		||||
        description: Implies all mcmmo.commands permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.commands.ability: true 
 | 
			
		||||
            mcmmo.commands.myspawn: true 
 | 
			
		||||
            mcmmo.commands.setmyspawn: true 
 | 
			
		||||
            mcmmo.commands.ptp: true 
 | 
			
		||||
            mcmmo.commands.whois: true 
 | 
			
		||||
            mcmmo.commands.party: true 
 | 
			
		||||
    mcmmo.commands.ability:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.commands.myspawn:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.commands.setmyspawn:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.commands.ptp:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.commands.whois:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.commands.party:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.chat.*:
 | 
			
		||||
        description: Implies all mcmmo.chat permissions. (Warning, contains adminchat)
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.chat.adminchat: true 
 | 
			
		||||
            mcmmo.chat.partychat: true 
 | 
			
		||||
    mcmmo.chat.adminchat:
 | 
			
		||||
        default: op
 | 
			
		||||
    mcmmo.chat.partychat:
 | 
			
		||||
        default: true
 | 
			
		||||
        
 | 
			
		||||
    mcmmo.skills.*:
 | 
			
		||||
        description: Implies all mcmmo.skills permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.skills.sorcery.*: true 
 | 
			
		||||
            mcmmo.skills.curative.*: true 
 | 
			
		||||
            mcmmo.skills.taming: true 
 | 
			
		||||
            mcmmo.skills.mining: true 
 | 
			
		||||
            mcmmo.skills.woodcutting: true 
 | 
			
		||||
            mcmmo.skills.repair: true 
 | 
			
		||||
            mcmmo.skills.unarmed: true 
 | 
			
		||||
            mcmmo.skills.archery: true 
 | 
			
		||||
            mcmmo.skills.herbalism: true 
 | 
			
		||||
            mcmmo.skills.excavation: true 
 | 
			
		||||
            mcmmo.skills.swords: true 
 | 
			
		||||
            mcmmo.skills.axes: true 
 | 
			
		||||
            mcmmo.skills.acrobatics: true
 | 
			
		||||
    mcmmo.skills.sorcery.*:
 | 
			
		||||
        description: Implies all mcmmo.skills.sorcery permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.skills.sorcery: true 
 | 
			
		||||
            mcmmo.skills.sorcery.water: true 
 | 
			
		||||
            mcmmo.skills.sorcery.water.thunder: true 
 | 
			
		||||
    mcmmo.skills.curative.*:
 | 
			
		||||
        description: Implies all mcmmo.skills.curative permissions.
 | 
			
		||||
        children:
 | 
			
		||||
            mcmmo.skills.curative: true 
 | 
			
		||||
            mcmmo.skills.curative.heal.other: true 
 | 
			
		||||
            mcmmo.skills.curative.heal.self: true 
 | 
			
		||||
    
 | 
			
		||||
    mcmmo.skills.sorcery:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.sorcery.water:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.sorcery.water.thunder:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.curative:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.curative.heal.other:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.curative.heal.self:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.taming:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.mining:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.woodcutting:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.repair:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.unarmed:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.archery:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.herbalism:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.excavation:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.swords:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.axes:
 | 
			
		||||
        default: true
 | 
			
		||||
    mcmmo.skills.acrobatics:
 | 
			
		||||
        default: true
 | 
			
		||||
		Reference in New Issue
	
	Block a user