Minecraft – How to enable permissions and groups across dimensions

minecraft-bukkitminecraft-feed-the-beastminecraft-java-edition

I am running a MCPC+ \ Feed The Beast (Forge) server.

I am using the plugins Essentials, EssentialsChat, Group Manager, and MyMcAdmin to control everything.

All my permissions and groups work in the overworld but not in the nether or any mystcraft dimensions. I haven't tested Dimension door's dimensions but I'm going to assume they don't work there due to the previous confirmations.

How do I make my groups and permissions work across all dimensions in my world.?

Best Answer

TL\DR: Find the config for Group Manager and change the name of the parent world to the name of the folder that contains your world.

The config mentioned in this answer can be found in:

plugins/GroupManager/config.yml


So apparently if you change the name of your world manually (it is set to 'world' by default) this screws up the entire permissions\group default system somewhat. Any permissions and groups created by MyMcAdmin still work in the overworld because (and I'm assuming here a little bit) they work in the servers overworld by default regardless of name. However in the config file there is a bit of code that tells the plugin which permissions should work in which dimension of the primary world.

mirrors:
    # Worlds listed here have their settings mirrored in their children.
    # The first element 'world' is the main worlds name, and is the parent world.
    # subsequent elements 'world_nether' and 'world_the_end' are worlds which will use
    # the same user/groups files as the parent.
    # the element 'all_unnamed_worlds' specifies all worlds that aren't listed, and automatically mirrors them to it's parent.
    # Each child world can be configured to mirror the 'groups', 'users' or both files from its parent.
    world:
      world_nether:
      - users
      - groups
      world_the_end:
      - users
      - groups
      all_unnamed_worlds:
      - users
      - groups
#  world2:      (World2 would have it's own set of user and groups files)
#    world3:
#    - users    (World3 would use the users.yml from world2, but it's own groups.yml)
#    world4:
#    - groups   (World4 would use the groups.yml from world2, but it's own users.yml)
#  world5:
#    - world6   (this would cause world6 to mirror both files from world5)



Notice the first "world:"? That is the 'Parent' world for the permissions and groups, and the subsequent "world_nether:", "world_the_end:", and "all_unnamed_worlds:" are the various named and unnamed dimensions contained within the parent world.

The fact that the Parent World is named world in the config is not because the coder has no imagination, its because by default game worlds and their file paths are named world. By changing my world's name I also changed its file path, and the config couldn't 'find' it to give my groups and permissions to my subsequent dimensions. After finding this config, and changing the 'parent world' name to the name of the folder that contains my world, everything worked fine.