🔑 PermissionsEx v2.0 [API 5]

Yeah, offline mode is not supported currently (and would need sponge fixes to be supported)

Out of scope for PEX-- you would use a protection plugin for this.

Hello,

I’m a server owner, and I am not used to configuration files like this. I also tried to create some ranks with permissions in-game but it didn’t work out well.

Is there anyone here that could help me creating a good working permissions file? I will send you the ranks with the permissions that are needed to be added.

I’m willing to pay 10$ to the one helping me out.

My skype is Netherbyte.

Thanks!

I can’t forbid default users to break block. modifyworld.* doesn’t seem to work. any idea ?

I think that would be the role of a protection plugin.

1 Like

You’d need some protection plugin – modifyworld has not been ported yet.

Here are some protection plugins I found for you… might not be all of them, just did a quick search on the forums.

Current Sponge Protection Plugins:


FoxGuard (Similar to WorldGuard, made by @gravityfox) can be viewed here.

Polis (Not mainly a protection plugin, but has some features that allow for it) can be viewed here.

ExplosionGuard (Not a complete protection plugin but to my understanding can protect from Explosions) can be viewed here.

1 Like

Yea Explosion Guard will block from any Explosion :slight_smile: and if you want a mod added to that list of items let us know :slight_smile:

Doesnt work with latest build 995 :frowning:

Version
forge-1.8-11.14.4.1577
spongeforge-1.8-1577-3.0.0-BETA-1000
permissionsex-sponge-2.0-SNAPSHOT - #106

[16:50:53] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: org/spongepowered/api/service/ProviderExistsException
        at java.lang.Class.forName0(Native Method) ~[?:1.8.0_66]
        at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_66]
        at org.spongepowered.mod.plugin.SpongeModPluginContainer.constructMod(SpongeModPluginContainer.java:94) ~[spongeforge-1.8-1577-3.0.0-BETA-1000.jar:1.8-1577-3.0.0-BETA-1000]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
        at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.8.jar:?]
        at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[LoadController.class:?]
        at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[LoadController.class:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
        at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[minecraft_server.1.8.jar:?]
        at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[minecraft_server.1.8.jar:?]
        at net.minecraftforge.fml.common.LoadController.onPost(LoadController.java:53) ~[LoadController.class:?]
        at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:119) ~[LoadController.class:?]
        at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:507) ~[Loader.class:?]
        at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:87) ~[FMLServerHandler.class:?]
        at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:355) ~[FMLCommonHandler.class:?]
        at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:117) ~[po.class:?]
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:438) [MinecraftServer.class:?]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_66]
Caused by: java.lang.ClassNotFoundException: org.spongepowered.api.service.ProviderExistsException
        at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_66]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_66]
        ... 31 more
Caused by: java.lang.NullPointerException
        at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182) ~[launchwrapper-1.12.jar:?]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_66]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_66]
        ... 31 more
[16:50:53] [Server thread/ERROR]: This crash report has been saved to: C:\Users\geant\Desktop\minecraft\Sav - Serveur 1.8\Update\beta\.\crash-reports\crash-2016-01-01_16.50.53-server.txt

crash-reports

---- Minecraft Crash Report ----

WARNING: coremods are present:
  SpongeCoremod (spongeforge-1.8-1577-3.0.0-BETA-1000.jar)
Contact their authors BEFORE contacting forge

// Shall we play a game?

Time: 1/01/16 16:50
Description: Exception in server tick loop

java.lang.NoClassDefFoundError: org/spongepowered/api/service/ProviderExistsException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.spongepowered.mod.plugin.SpongeModPluginContainer.constructMod(SpongeModPluginContainer.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.onPost(LoadController.java:53)
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:507)
    at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:87)
    at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:355)
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:117)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:438)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.spongepowered.api.service.ProviderExistsException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 31 more
Caused by: java.lang.NullPointerException
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:182)
    ... 33 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
    Minecraft Version: 1.8
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_66, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 956668720 bytes (912 MB) / 1819803648 bytes (1735 MB) up to 7635730432 bytes (7282 MB)
    JVM Flags: 2 total; -Xms1G -Xmx8G
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.10 FML v8.0.99.99 Minecraft Forge 11.14.4.1577 6 mods loaded, 6 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UC    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
    UC    FML{8.0.99.99} [Forge Mod Loader] (forge-1.8-11.14.4.1577-universal.jar) 
    UC    Forge{11.14.4.1577} [Minecraft Forge] (forge-1.8-11.14.4.1577-universal.jar) 
    UC    sponge{1.8-1577-3.0.0-BETA-1000} [SpongeForge] (spongeforge-1.8-1577-3.0.0-BETA-1000.jar) 
    UC    EssentialCmds{6.4-2b91e72} [EssentialCmds] (EssentialCmds-6.4b.jar) 
    U    PermissionsEx{2.0-SNAPSHOT} [PermissionsEx] (permissionsex-sponge-2.0-SNAPSHOT.jar) 
    Loaded coremods (and transformers): 
SpongeCoremod (spongeforge-1.8-1577-3.0.0-BETA-1000.jar)
  org.spongepowered.common.launch.transformer.SpongeSuperclassTransformer
    Profiler Position: N/A (disabled)
    Is Modded: Definitely; Server brand changed to 'fml,forge,SpongeForge'
    Type: Dedicated Server (map_server.txt)

I have a few questions about the json file:

Also where is the official documentation???


What is default referring to here? What is contexts? Is this saying the server console has all permissions?

"default": [{
   "contexts": {
     "srcip": "127.0.0.1"
   },
   "permissions-default": 1
}],

In the same vein there is an outer default, which so far has default (which my question above is about) and user as options according to my config. Are there other options for the outer default other than these two?

"default": {
  "default": [{
    "contexts": {
      "srcip": "127.0.0.1"
    },
    "permissions-default": 1
  }],
  "user": [{
    "parents": [
      "group:Default"
    ]
  }]
},

What do system and console mean? For example I saw this in someone else’s config. Does this also give the server console all permissions like in the first question? Also what other options exist for system other than console?

"system": {
  "console": [{
    "permissions-default": 1
  }]
},

Finally back when you had a YAML file you supported globbing like command.thing.*. Is there any support for that in your json files?

and…

I’ve read all of that. Where is the updated documentation? It’s still using yaml files as examples, and none of my questions are answered there. The only place that seems to be updated is Home · PEXPlugins/PermissionsEx Wiki · GitHub. Otherwise mostly everything else is not useful.

I have a strong background in software development, and prefer to directly edit the config files instead of the tedious process of typing in every command. While these commands abstract the knowledge of how the config file works away, I would still like to know how to manually configure the file, which is where my questions originated from.

Also @HassanS6000 @zml do you know the answers to my questions?

It’s pretty unconventional and tedious, but I followed the guide for a few commands/perm inserts then viewed the file. Once things are added into the json file, it’s pretty clear on how to follow the format.

@Luke Yeah I have a working manual config up and running. It’s not that I have any problems with the plugin, but rather I want a better grasp of what everything means.

I’m afraid there isn’t a ton of documentation available yet – I’ve been pretty busy irl and haven’t had a chance to do a ton. Probably your most useful general description of the file format will be the JSON-Schema at PermissionsEx/permissions-schema.json at master · PEXPlugins/PermissionsEx · GitHub.
Regarding your specific comments,

  1. The general structure is “”: { “”: {…} , …}. Default subjects are the defaults – so type is default, the name is the subject type to set defaults for. In this case, default:default applies defaults to all subject types and default:user only applies defaults to users.

  2. system:console is the server console. The only other system subject currently used is system:rcon iirc.

  3. permissions-default sets the default permission to true. It’s a modification of the * node in 1.x to fit with the tree structure of permissions used in 2.x

  4. Contexts are a more abstract version of world-specific permissions – in the example you used, srcip being set to 127.0.0.1 restricts that block of permissions to apply to only subjects who have a local source address. Any plugin can add its own contexts – world and dimension are two keys used by sponge – at some point there will be a table listing these and their purposes.

  5. command.thing.* is no longer supported. Setting command.thing in 2.0 is equivalent to setting command.thing and command.thing.* in 1.x

2 Likes

@zml I know you are busy but any word on when you are going to be compatible with SpongeForge Build 1000?

I’m having trouble installing PermissionsEx on Sponge Vanilla (no Forge).

Using Sponge 1.8-3.0.0-BETA-129

Is there another version of Sponge Vanilla that I can download that would run PermissionsEx? I’ve tried a couple different versions of PEX and none have worked. All give me an error: http://pastebin.com/xtVqnsNH

Thanks,
J

Download the latest build – it’s fixed there.

1 Like

You cantón put al the comanda to create a groups because i dont understand how to create because i need 5

Trainer
Gym-leader
Vip
Admin
Owner

Please helpme

/pex group Trainer option prefix "&4[Trainer]"

The above command creates the group Trainer if not already existing, and then sets its prefix to [Trainer] in Red, if you have a plugin that supports it.