Permissions FAQ

Discussion in 'Plugin Development' started by Dinnerbone, Jul 7, 2011.

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

    Celtic Minstrel

    Not without a permissions plugin.
     
  2. Offline

    m0rt

    Is there a way to set up a permission (as plugin developer) that is defaulted to console only? I found only OP and FALSE setting, neither of which does what I need. Another way I think would be possible is to add the permission directly to console object, but I am not really sure whether it's entirely clean solution. (Also it crashes with NullPointerException, as the plugin is loaded on startup, but that could be solved with timed event)
     
  3. Offline

    desht

    The problem is that the actual answer seems to be "it depends on what permissions plugin you use". Which is why I'm really after an authoritative statement from the Bukkit devs on what the correct behaviour should be, not guesswork on what it might be.

    If we knew what the behaviour was supposed to be, then maybe a test for correctness could be added to Evenprime 's SuperPermsTest plugin, but without that information, all we can do is avoid overriding nodes in inherited nodes altogether.
     
  4. Offline

    Papareborn

    My friend is hosting a server from a host company, and it seems that only permissions.yml exists, in the root directory. The company said it came with bukkit, but I am very confused, and the FAQ page didn't seem to cover that. Is there anywhere I can go to get reference as to where the config file is?
     
  5. Offline

    Ewe Loon

    Ok I oviously missed something simple somewhere

    my plugin is called FuzComs
    the main package is me.el.FuzComs
    the main class is FuzComs

    this is one of the groups in permissions
    Code:
        MiniAdmin:
            default: false
            info:
                prefix: '&f[&eAdmin&f]<'
                suffix: '&f>'
                build: true
            inheritance:
                - Moderator
            permissions:
                - 'worldedit'
                - 'worldedit.*'
                - 'worldguard*'
                - 'worldguard.locate'
                - 'waypoint.*'
                - 'fuzcoms'
                - 'fuzcoms.*'
    
    this is in my plugins oncommand function
    Code:
            if(cmd.getName().equalsIgnoreCase("day")){
                if (pl.hasPermission("fuzcoms.day")){
                    pl.getWorld().setTime(0);
                    sender.sendMessage("Time Set To Day");               
                }else{
                    sender.sendMessage("You dont Have Permission to use /day");   
                }               
                return true;
            }
    
    if the player is not an op it returns false
    if the player is an op it returns true

    What have I done wrong
     
  6. Offline

    desht

    When you say 'permissions', do you mean the Permission 3 plugin? Because if so, that's what you've done wrong. Permissions 3 is not a superperms-compatible plugin, and there's no good reason to be using it these days.
     
  7. Offline

    desht

    I have some more questions about just how the parent-child node relationship is supposed to work in Superperms. I'm not sure if it's really worth posting here, given the lack of response to my last question, but...

    The problem I'm facing right now is that I want to set up a load of low-level permission nodes for all the things users could do with my plugin, but I also want some parent nodes for common groups of permissions. For an example, see https://github.com/desht/ScrollingMenuSign/blob/master/src/main/resources/plugin.yml.
    1. A lot of low-level nodes default to true, which I understand means they will always be allowed (with or without a permissions plugin in effect), unless an explicit "false" node is assigned via a permissions plugin. Is this correct?
    2. The parent node "scrollingmenusign.denied" defaults to false, so it should never be given to a user unless explicitly assigned. Is this correct? Because it seems to be happening sometimes, and then I get complaints that nothing works.
    3. If "scrollingmenusign.denied" is given to a user, will it reverse the default sense of a child node, or set it?
    4. Should the absence of a node like "scrollingmenusign.denied" for a player imply that its child nodes (defined as false) should be set to true for the player? Sounds like an esoteric question, but it seems at least PEX (v1.18) does exactly this.
    5. What if a child node has a default of "op", and a parent node lists it as "false". Will it now only work for non-operator players? Or will giving the parent node to a player make the child nodes false?
    The problem is that no two perms plugins appear to treat the parent-child relationship in the same way, making it impossible to create any meaningful node hierarchy in plugin.yml. It's pretty frustrating trying to deal with problem reports from users related to other plugins, and as far as I can see there's no formal specification for how it's supposed to work, so plugin permissions developers probably can't be blamed for the mess. Or perhaps I've just misunderstood it all, and the plugin.yml I listed above doesn't make any sense.
    In effect, plugin authors should probably make life easier for themselves and just not use parent nodes, which is probably what I'm going to do. It'll cost some flexibility, but at least it will make things work a little more reliably.
     
  8. Offline

    Celtic Minstrel

    Calling it a parent-child relationship is a bit inaccurate; it's more like a container-contents relationship. A "parent node" is merely a shortcut for setting its "child nodes" to a particular value; if you set the parent node to true, its children will be set to the specified value, while if you set the parent node to false, its children will be set to the opposite of the specified value (I think? I'm not actually quite sure if that's the case). Several "parent nodes" can contain the same "child node", and of course there's arbitrary nesting allowed.

    I'll try to address each of your questions individually.
    Unless I'm missing something, yes it's correct. (Side note: An explicit false can be assigned without a permissions plugin as well, using the permissions.yml.)

    I think this is correct? As long as the child nodes default to something else, at least.

    It reverses the setting... I don't think it has anything to do with defaults though.

    I don't think so. If the node is not assigned, then what its children are is irrelevant. On the other hand, if denied is explicitly false, then its children will be reversed.

    I think how it's listed in the parent node is separate from the default; the default is how the server determines how to act if someone checks for the permission when it is not assigned, while the true/false setting in the parent node is what it should be set to if the parent is assigned. In this specific example, assigning the parent node should set it to false.

    It's been some time since I worked with permissions, so some of this may be a little inaccurate. Hopefully someone else will correct me if this is the case.
     
  9. Offline

    LinkterSHD

    Very Useful
     
  10. Offline

    Jade

    I would like to now know if it is possible to delete/disable this? It gets in the way of my PermissionsEx. :\
     
  11. Offline

    monsoue

    Quick Question: Dose PermissionsBukkit Automaticly log new users as they log in, or do i have to manully add them?
    Or is there a way for me to make it automaticly add new users?
     
  12. Offline

    ItsHarry

    I need to know which group people are in, because I need to give items to donators on a server reload. How would I do this since it's impossible to get which group people are in? Using PermissionsBukkit btw
     
  13. Offline

    frdfsnlght

    OK. I've read most of the 12 pages in this thread and have come to the conclusion the API is lacking in some important ways that prevents me from using it in my plugin. Let me 'splain:

    The current API wrongfully assumes the only things that can have permissions are online players. I'm sure this holds true 99% of the time, but I'm in the 1%.

    My plugin, Transporter, allows users to create gates that can be used to travel to different servers. Before a player can teleport to another server, the destination server checks to see if the player has permissions to do so. The player is not online yet in the destination server. SuperPerms fails me here.

    My plugin also has the ability to let gates have permissions. So Gate A can have permission to send players to Gate B, or not. This is mostly useful for cross-server links. Gates are not players. SuperPerms fails me here.

    Some folks have mentioned the idea of persisting Permissible's on a server (not implemented anyplace that I know of) to handle the case of offline players. This doesn't help me at all since a player may not have ever logged into the destination server before, so there would be nothing persisted for them.

    I'd like to propose a possible solution (change to the API). It's not perfect, but would suit my needs and maybe others.

    1. A "Permissible" is really a "Principal" in security terms, as some have pointed out. A principal usually has a way to identify them, like a name. Permissibles don't have this. They need it. Badly. In addition, they should also have some other handy data available, like Location (coords and world). There are probably other things that would be useful, but those are what I need. For online players, these values obviously can come from the player name and location.
    2. The API should offer a way to add and remove Permissibles/Principals and emit events for both actions. I've seen code in this thread, and in fact in PermissionsBukkit, that listen for player join/quit events and calculate permissions when those events occur. Instead, those plugins should listen for the add/remove Permissible events. This would allow plugins like mine to create an implementation of Permissible that "wraps" a gate or offline-player, complete with name and location (the destination gate location for an offline player). The event listener (probably a permissions plugin like PermissionsBukkit) can then calculate permissions when I "add" it. And clean up when I "remove" it.
    Those changes would allow my plugin (and maybe others' plugins) to use SuperPerms to do all necessary authorization checks and finally be independent of specific permission plugin implementations.
     
    tyzoid likes this.
  14. Offline

    Jerry117

    Hey i have a problem with my config.yml (use PB 1.6 and MC 1.2.3)


    i dont use the permissions.yml

    ingame commands like /perm player addgrup or /perm group list doesnt work since i manual edit the condig.yml
    when i start with the custom one it works...

    edit:
    ive deleted homespawnplus and set the all rights ingame to the groups. this works.
    but when i edit the config.yml manually, the changes doesnt happen..

    http://pastebin.com/kaFMzU06

    like in the user group - 2 times essentials.spawn
    1 doenst work - (set up manually) 1 work for the users (set up via ingame /perm)

    is this just a bug of 1.6?
    Can i add groups to the config with any permbukkit command? didnt find one.
     
  15. Offline

    tyzoid

    Can't vault read permissions directly from permissions plugins?
     
  16. Offline

    frdfsnlght

    I'm not sure what this means or how it impacts what I said, but that could be because I'm dense. I believe Vault just uses the various permission plugin APIs to "translate" Vault calls into the appropriate permissions backend call. And in the case of SuperPerms, if you use the Vault API to check for a player's permission using just their name, as opposed to their actual Player object, Vault tries to get an online player with that name (a Player object), and failing that, returns false (permission denied). That's broken, but that's because that's all Vault can really do since online players are the only supported Permissable in Bukkit (in the sense that they are addressable by a name and stored by Bukkit). With my scheme, Bukkit would provide a server method to look up any Permissable by name (not just players).
     
  17. Offline

    mokapang

    I loved to use PermissionsBukkit until now..
    I download the recent version and run the server.
    everything looks fine, no problems appeared on serverlogs.
    but it seems dont work in game.
    all permissions for default arent work but ops.
    I'm sure I did rightway on config.yml.
    what should I check?
    (I filed my config on this reply. please check T.T)
     

    Attached Files:

  18. Offline

    tyzoid

    PermissionsBukkit =/= Buikkit's Superperms.

    You should report that to the PermissionsBukkit dev.
     
  19. Offline

    rofthorax

    http://www.omg.org/spec/RAD/

    This is how you'd handle all forms of permissions dynamically in a CORBA environment.. This design permits both static and dynamic permissions.. I'm sure you could water this down and come out with something that is realtime and mutable.. This method is used to track classified information in laboratories and hospitals.. So it works..
     
  20. Offline

    not a spy

    other user's don't get the permissions they should
    can someone plz tell me what im doing wrong
    Code:
    groups:
      default:
        default: true
        permissions:
        - modifyworld.*
        - permissions.build: true #PermissionsBukkit
        - iSafe.place.*: true #iSafe
        - iSafe.break.*: true #iSafe
        - iSafe.chat: true #iSafe
        - iSafe.bed-enter: true #iSafe
        - iSafe.fish: true #iSafe
        - iSafe.interact.buttons: true #iSafe
        - iSafe.interact.woodendoors: true #iSafe
        - iSafe.interact.irondoors: true #iSafe
        - iSafe.interact.stonepressureplate: true #iSafe
        - iSafe.interact.woodenpressureplate: true #iSafe
        - iSafe.interact.levers: true #iSafe
        - iSafe.interact.trapdoor: true #iSafe
        - iSafe.interact.woodenfencegate: true #iSafe
        - iSafe.interact.chest: true #iSafe
        - iSafe.drop: true #iSafe
        - iSafe.pickup: true #iSafe
        - iSafe.place: true #iSafe
        - iSafe.break: true #iSafe
        - lockette.user.*: true #Lockette
        admin:
            default: false
            permissions:
        - modifyworld.*
        - tribu.*: true #Tribu
        - tribu.use: true #Tribu
        - tribu.use.enter: true #Tribu
        - tribu.use.leave: true #Tribu
        - tribu.use.vote: true #Tribu
        - tribu.use.stats: true #Tribu
        - tribu.level: true #Tribu
        - tribu.level.package: true #Tribu
        - tribu.level.create: true #Tribu
        - tribu.level.delete: true #Tribu
        - tribu.level.load: true #Tribu
        - tribu.level.unload: true #Tribu
        - tribu.level.save: true #Tribu
        - tribu.level.list: true #Tribu
        - tribu.level.zspawn: true #Tribu
        - tribu.level.dspawn: true #Tribu
        - tribu.level.ispawn: true #Tribu
        - tribu.game: true #Tribu
        - tribu.game.start: true #Tribu
        - tribu.game.stop: true #Tribu
        - tribu.plugin: true #Tribu
        - tribu.plugin.reload: true #Tribu
        - allpermissions.reload: true #AllPermissions
        - allpermissions.givepermissions: true #AllPermissions
        - permissions.*: true #PermissionsBukkit
        - permissions.build: true #PermissionsBukkit
        - permissions.help: true #PermissionsBukkit
        - permissions.reload: true #PermissionsBukkit
        - permissions.check: true #PermissionsBukkit
        - permissions.info: true #PermissionsBukkit
        - permissions.dump: true #PermissionsBukkit
        - permissions.group.*: true #PermissionsBukkit
        - permissions.group.help: true #PermissionsBukkit
        - permissions.group.list: true #PermissionsBukkit
        - permissions.group.players: true #PermissionsBukkit
        - permissions.group.setperm: true #PermissionsBukkit
        - permissions.group.unsetperm: true #PermissionsBukkit
        - permissions.player.*: true #PermissionsBukkit
        - permissions.player.help: true #PermissionsBukkit
        - permissions.player.groups: true #PermissionsBukkit
        - permissions.player.setgroup: true #PermissionsBukkit
        - permissions.player.addgroup: true #PermissionsBukkit
        - permissions.player.removegroup: true #PermissionsBukkit
        - permissions.player.setperm: true #PermissionsBukkit
        - permissions.player.unsetperm: true #PermissionsBukkit
        - vault.admin: true #Vault
        - permissionsex.handler.injected: true #PermissionsEx
        - iSafe.*: true #iSafe
        - iSafe.canceldamage.*: true #iSafe
        - iSafe.place.*: true #iSafe
        - iSafe.break.*: true #iSafe
        - iSafe.drop.*: true #iSafe
        - iSafe.interact.*: true #iSafe
        - iSafe.vehicle.*: true #iSafe
        - iSafe.lavabucket.empty: true #iSafe
        - iSafe.sprint: true #iSafe
        - iSafe.sneak: true #iSafe
        - iSafe.waterbucket.empty: true #iSafe
        - iSafe.reload: true #iSafe
        - iSafe.info: true #iSafe
        - iSafe.teleport: true #iSafe
        - iSafe.chat: true #iSafe
        - iSafe.bed-enter: true #iSafe
        - iSafe.fish: true #iSafe
        - iSafe.interact.buttons: true #iSafe
        - iSafe.interact.woodendoors: true #iSafe
        - iSafe.interact.irondoors: true #iSafe
        - iSafe.interact.stonepressureplate: true #iSafe
        - iSafe.interact.woodenpressureplate: true #iSafe
        - iSafe.interact.levers: true #iSafe
        - iSafe.interact.trapdoor: true #iSafe
        - iSafe.interact.woodenfencegate: true #iSafe
        - iSafe.interact.chest: true #iSafe
        - iSafe.drop: true #iSafe
        - iSafe.serverinfo: true #iSafe
        - iSafe.pickup: true #iSafe
        - iSafe.superbreak: true #iSafe
        - iSafe.place.blacklist.bypass: true #iSafe
        - iSafe.break.blacklist.bypass: true #iSafe
        - iSafe.drop.blacklist.bypass: true #iSafe
        - iSafe.pickup.blacklist.bypass: true #iSafe
        - iSafe.place: true #iSafe
        - iSafe.break: true #iSafe
        - iSafe.teleport.command: true #iSafe
        - iSafe.teleport.enderpearl: true #iSafe
        - iSafe.teleport.plugin: true #iSafe
        - iSafe.teleport.unknown: true #iSafe
        - iSafe.stopserver: true #iSafe
        - iSafe.bow.use: true #iSafe
        - iSafe.cleardrops: true #iSafe
        - iSafe.teleport.endportal: true #iSafe
        - iSafe.teleport.netherportal: true #iSafe
        - iSafe.canceldamage.fire: true #iSafe
        - iSafe.canceldamage.contact: true #iSafe
        - iSafe.canceldamage.custom: true #iSafe
        - iSafe.canceldamage.drowning: true #iSafe
        - iSafe.canceldamage.entityattack: true #iSafe
        - iSafe.canceldamage.fall: true #iSafe
        - iSafe.canceldamage.lava: true #iSafe
        - iSafe.canceldamage.lightning: true #iSafe
        - iSafe.canceldamage.magic: true #iSafe
        - iSafe.canceldamage.poison: true #iSafe
        - iSafe.canceldamage.projectile: true #iSafe
        - iSafe.canceldamage.starvation: true #iSafe
        - iSafe.canceldamage.suffocation: true #iSafe
        - iSafe.canceldamage.suicide: true #iSafe
        - iSafe.canceldamage.void: true #iSafe
        - realwinter.*: true #RealWinter
        - realwinter.player: true #RealWinter
        - realwinter.admin: true #RealWinter
        - realwinter.immune: true #RealWinter
        - realwinter.immune.winter: true #RealWinter
        - realwinter.immune.desert: true #RealWinter
        - realwinter.immune.thirst: true #RealWinter
        - realwinter.immune.jungle: true #RealWinter
        - lockette.*: true #Lockette
        - lockette.user.*: true #Lockette
        - lockette.user.create.*: true #Lockette
        - lockette.admin.*: true #Lockette
        - lockette.admin.create.*: true #Lockette
        - lockette.user.create.chest: true #Lockette
        - lockette.user.create.furnace: true #Lockette
        - lockette.user.create.dispenser: true #Lockette
        - lockette.user.create.brewingstand: true #Lockette
        - lockette.user.create.custom: true #Lockette
        - lockette.user.create.trapdoor: true #Lockette
        - lockette.user.create.door: true #Lockette
        - lockette.admin.create.chest: true #Lockette
        - lockette.admin.create.furnace: true #Lockette
        - lockette.admin.create.dispenser: true #Lockette
        - lockette.admin.create.brewingstand: true #Lockette
        - lockette.admin.create.custom: true #Lockette
        - lockette.admin.create.trapdoor: true #Lockette
        - lockette.admin.create.door: true #Lockette
        - lockette.admin.break: true #Lockette
        - lockette.admin.bypass: true #Lockette
        - lockette.admin.snoop: true #Lockette
        - lockette.admin.reload: true #Lockette
        - lockette.towny.wilds: true #Lockette
        - mobdisguise.*: true #MobDisguise
        - mobdisguise.player: true #MobDisguise
        - mobdisguise.mob.*: true #MobDisguise
        - mobdisguise.mob.creeper: true #MobDisguise
        - mobdisguise.mob.skeleton: true #MobDisguise
        - mobdisguise.mob.spider: true #MobDisguise
        - mobdisguise.mob.giant: true #MobDisguise
        - mobdisguise.mob.zombie: true #MobDisguise
        - mobdisguise.mob.slime: true #MobDisguise
        - mobdisguise.mob.ghast: true #MobDisguise
        - mobdisguise.mob.pigman: true #MobDisguise
        - mobdisguise.mob.pig: true #MobDisguise
        - mobdisguise.mob.sheep: true #MobDisguise
        - mobdisguise.mob.cow: true #MobDisguise
        - mobdisguise.mob.chicken: true #MobDisguise
        - mobdisguise.mob.squid: true #MobDisguise
        - mobdisguise.mob.wolf: true #MobDisguise
        - mobdisguise.mob.enderman: true #MobDisguise
        - mobdisguise.mob.cavespider: true #MobDisguise
        - mobdisguise.mob.silverfish: true #MobDisguise
        - mobdisguise.mob.villager: true #MobDisguise
        - mobdisguise.mob.snowgolem: true #MobDisguise
        - mobdisguise.mob.mooshroom: true #MobDisguise
        - mobdisguise.mob.blaze: true #MobDisguise
        - mobdisguise.mob.magmacube: true #MobDisguise
        - mobdisguise.mob.enderdragon: true #MobDisguise
        - mobdisguise.mob.baby: true #MobDisguise
        - mobdisguise.mob.cat: true #MobDisguise
        - mobdisguise.mob.ocelot: true #MobDisguise
        - mobdisguise.mob.irongolem: true #MobDisguise
        - factions.kit.admin: true #Factions
        - factions.*: true #Factions
        - factions.kit.mod: true #Factions
        - factions.kit.halfmod: true #Factions
        - factions.kit.fullplayer: true #Factions
        - factions.kit.halfplayer: true #Factions
        - factions.admin: true #Factions
        - factions.admin.any: true #Factions
        - factions.autoclaim: true #Factions
        - factions.bypass: true #Factions
        - factions.chat: true #Factions
        - factions.chatspy: true #Factions
        - factions.claim: true #Factions
        - factions.config: true #Factions
        - factions.create: true #Factions
        - factions.deinvite: true #Factions
        - factions.description: true #Factions
        - factions.disband: true #Factions
        - factions.disband.any: true #Factions
        - factions.help: true #Factions
        - factions.home: true #Factions
        - factions.invite: true #Factions
        - factions.join: true #Factions
        - factions.join.any: true #Factions
        - factions.join.others: true #Factions
        - factions.kick: true #Factions
        - factions.kick.any: true #Factions
        - factions.leave: true #Factions
        - factions.list: true #Factions
        - factions.lock: true #Factions
        - factions.managesafezone: true #Factions
        - factions.managewarzone: true #Factions
        - factions.map: true #Factions
        - factions.mod: true #Factions
        - factions.mod.any: true #Factions
        - factions.money.balance: true #Factions
        - factions.money.balance.any: true #Factions
        - factions.money.deposit: true #Factions
        - factions.money.withdraw: true #Factions
        - factions.money.withdraw.any: true #Factions
        - factions.money.f2f: true #Factions
        - factions.money.f2p: true #Factions
        - factions.money.p2f: true #Factions
        - factions.money.kit.standard: true #Factions
        - factions.money.*: true #Factions
        - factions.noboom: true #Factions
        - factions.open: true #Factions
        - factions.owner: true #Factions
        - factions.ownerlist: true #Factions
        - factions.ownershipbypass: true #Factions
        - factions.setpeaceful: true #Factions
        - factions.setpermanent: true #Factions
        - factions.setpermanentpower: true #Factions
        - factions.power: true #Factions
        - factions.power.any: true #Factions
        - factions.powerboost: true #Factions
        - factions.relation: true #Factions
        - factions.reload: true #Factions
        - factions.save: true #Factions
        - factions.sethome: true #Factions
        - factions.sethome.any: true #Factions
        - factions.show: true #Factions
        - factions.tag: true #Factions
        - factions.title: true #Factions
        - factions.version: true #Factions
        - factions.unclaim: true #Factions
        - factions.unclaimall: true #Factions
        - *
    users:
        redmistdemon:
            group:
            - Admins
            permissions:
            - permissions.*
        leamme_iannuzzo:
        group:
        - default
        permissions:
                - modifyworld.*
            - permissions.build: true #PermissionsBukkit
            - iSafe.place.*: true #iSafe
            - iSafe.break.*: true #iSafe
            - iSafe.chat: true #iSafe
            - iSafe.bed-enter: true #iSafe
            - iSafe.fish: true #iSafe
            - iSafe.interact.buttons: true #iSafe
            - iSafe.interact.woodendoors: true #iSafe
            - iSafe.interact.irondoors: true #iSafe
            - iSafe.interact.stonepressureplate: true #iSafe
            - iSafe.interact.woodenpressureplate: true #iSafe
            - iSafe.interact.levers: true #iSafe
            - iSafe.interact.trapdoor: true #iSafe
            - iSafe.interact.woodenfencegate: true #iSafe
            - iSafe.interact.chest: true #iSafe
            - iSafe.drop: true #iSafe
            - iSafe.pickup: true #iSafe
            - iSafe.place: true #iSafe
            - iSafe.break: true #iSafe
                - lockette.user.*: true #Lockette
        jj5437:
        group:
        - default
        permissions:
                - modifyworld.*
            - permissions.build: true #PermissionsBukkit
            - iSafe.place.*: true #iSafe
            - iSafe.break.*: true #iSafe
            - iSafe.chat: true #iSafe
            - iSafe.bed-enter: true #iSafe
            - iSafe.fish: true #iSafe
            - iSafe.interact.buttons: true #iSafe
            - iSafe.interact.woodendoors: true #iSafe
            - iSafe.interact.irondoors: true #iSafe
            - iSafe.interact.stonepressureplate: true #iSafe
            - iSafe.interact.woodenpressureplate: true #iSafe
            - iSafe.interact.levers: true #iSafe
            - iSafe.interact.trapdoor: true #iSafe
            - iSafe.interact.woodenfencegate: true #iSafe
            - iSafe.interact.chest: true #iSafe
            - iSafe.drop: true #iSafe
            - iSafe.pickup: true #iSafe
            - iSafe.place: true #iSafe
            - iSafe.break: true #iSafe
                - lockette.user.*: true #Lockette
        leamme_iannuzzo:
        group:
        - Default
        permissions:
                - modifyworld.*
            - permissions.build: true #PermissionsBukkit
            - iSafe.place.*: true #iSafe
            - iSafe.break.*: true #iSafe
            - iSafe.chat: true #iSafe
            - iSafe.bed-enter: true #iSafe
            - iSafe.fish: true #iSafe
            - iSafe.interact.buttons: true #iSafe
            - iSafe.interact.woodendoors: true #iSafe
            - iSafe.interact.irondoors: true #iSafe
            - iSafe.interact.stonepressureplate: true #iSafe
            - iSafe.interact.woodenpressureplate: true #iSafe
            - iSafe.interact.levers: true #iSafe
            - iSafe.interact.trapdoor: true #iSafe
            - iSafe.interact.woodenfencegate: true #iSafe
            - iSafe.interact.chest: true #iSafe
            - iSafe.drop: true #iSafe
            - iSafe.pickup: true #iSafe
            - iSafe.place: true #iSafe
            - iSafe.break: true #iSafe
                - lockette.user.*: true #Lockette
        jj5437:
        group:
        - Default
        permissions:
                - modifyworld.*
            - permissions.build: true #PermissionsBukkit
            - iSafe.place.*: true #iSafe
            - iSafe.break.*: true #iSafe
            - iSafe.chat: true #iSafe
            - iSafe.bed-enter: true #iSafe
            - iSafe.fish: true #iSafe
            - iSafe.interact.buttons: true #iSafe
            - iSafe.interact.woodendoors: true #iSafe
            - iSafe.interact.irondoors: true #iSafe
            - iSafe.interact.stonepressureplate: true #iSafe
            - iSafe.interact.woodenpressureplate: true #iSafe
            - iSafe.interact.levers: true #iSafe
            - iSafe.interact.trapdoor: true #iSafe
            - iSafe.interact.woodenfencegate: true #iSafe
            - iSafe.interact.chest: true #iSafe
            - iSafe.drop: true #iSafe
            - iSafe.pickup: true #iSafe
            - iSafe.place: true #iSafe
            - iSafe.break: true #iSafe
                - lockette.user.*: true #Lockette
     
  21. this is not permissionsbukkit
     
  22. Offline

    Dyrocraft

    How would you add a return statment when access is denied? example teleporting Permissions i use:

    if (player.hasPermission("teleport.use") || player.isOp()) {
    How could i add a sendMessage to player saying "Permission denied" ?
     
  23. Offline

    Gravity

    if (player.hasPermission("teleport.use") || player.isOp()) {
    // Do stuff
    }
    else {
    player.sendMessage("Permission denied");
    }

    That's just java, that has nothing to do with the API lol.
     
    Dyrocraft likes this.
  24. Offline

    Dyrocraft


    Thank you i'm a little new to Java, But thanks for the Code i've been looking for Hours... :)
     
  25. Offline

    rutr

    i have permission nodes like this:
    Code:
    plugin.edit.<groupName>
    groups can be created in runtime. What can I do that all groups were under plugin.all ??
     
  26. Offline

    Venat

    Hi All,

    Right off the bat let me say I have never used permissions and I find it a bit complex.

    I have run our minecraft server for a while and never set up permissions the mods we use happen to work great with just me as the OP.

    I'd like to use the LapisPortal MOD which requires permissions for non OPs to use the teleports.

    I understand that I need to give the general users access to the 'LapisPortals.teleport' node (correct term?).

    I'm hoping there is a way I can add this permission (I see a permission.yml in the basic bukkit server folder) without messing up any permissions for the other mods.

    What I mean is there a way to just add this permission (LapisPortals.teleport ) and keep all the ohter mods permissiosn default to OP. Or once I start using permissiosn will I ahve to configure it for every mod?

    Thanks a lot for any help.
     
  27. Offline

    Gravity

    Install a permissions manager like bPermissions or PermissionsEx
     
  28. place this inside permissions.yml
    Code:java
    1. server.user:
    2. default: true
    3. children:
    4. LapisPortals.teleport: true

    I know that h31ix already has posted, but why use an permissions plugin if it can be also whit aln way build in bukkit?
     
  29. Offline

    Bobfan

    I actually have a better method than permissions: create a new .yml called permissions in the separate folder thing, that the config is in. Once you turn on the server, put peoples names in it if you want them to have permission. It is easier than having to download a permissions plugin, and adding all of these permissions that have a 50-50 percent chance it could ACTUALLY work. (The permission.yml would be split up into multiple parts, each part would represent each permission, that way a person wouldn't have every permission, just the one you would let them have) I am adding this to ALL of my plugins I make.
     
  30. Offline

    evilmidget38

    That's the stupidest/worst "feature" I've ever heard of. Say you've got something like Essentials. You're stuck with an all or nothing if they were to use your method. That means players either get no commands, or OP commands. It also means you can't use VIP ranks. Pretty much your permissions method remove the entire idea of permissions.
     
Thread Status:
Not open for further replies.

Share This Page