Making a Permissions manager? DON'T USE YOUR OWN API - use SuperPerms.

Discussion in 'Resources' started by codename_B, Aug 5, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    codename_B

    Here is a very easy classfile for using instead of your own API to make your Permissions Manager compatible with SuperPerms.

    Code:
    package com.ubempire.permissions;
    
    import java.util.List;
    import java.util.Map;
    import java.util.Set;
    
    import org.bukkit.entity.Player;
    import org.bukkit.permissions.PermissionAttachment;
    import org.bukkit.permissions.PermissionAttachmentInfo;
    
    public class SuperPermissionHandler {
        private Player p;
    
        SuperPermissionHandler(Player p) {
            this.p = p;
        }
    
        public void setupPlayer(List<String> nodes) {
            PermissionAttachment att = p.addAttachment(Permissions);
            for (String node : nodes) {
                att.setPermission(node, true);
            }
        }
    
        public void unsetupPlayer() {
                Set<PermissionAttachmentInfo> pAtt = p.getEffectivePermissions();
                if(pAtt != null)
                {
                for(PermissionAttachmentInfo pInfo : pAtt)
                {
                PermissionAttachment pa = pInfo.getAttachment();
                Map<String,Boolean> paNodes = pa.getPermissions();
                if(paNodes != null)
                {
                Set<String> keys = paNodes.keySet();
                for(String key : keys)
                {
                    pa.unsetPermission(key);
                }
                }
                }
                p.recalculatePermissions();
                }
                }
    
    }
    
     
    fernferret and dark_hunter like this.
  2. Offline

    Redyugi

    OMG, lyke tis hrrble. Lyke srsly.

    Doesn't look too hard. Too bad I don't release my plugins and I don't use SuperPerms, otherwise, I would use this to easily manage it.
     
Thread Status:
Not open for further replies.

Share This Page