• Minecraft Middle Earth is a Minecraft community that recreates the world described by JRR Tolkien and his writings. Everyone can participate in organized events in which we collaborate to create major landmarks, terrain, caves, castles, towns, farms and more.

    To get started, visit The New Player Guide

Rank sync

  • Views Views: 41
  • Last updated Last updated:
  • Rank synchronisation is handled because of the extensive scope and use of ranks within MCME.
    There are user roles on the website, roles on Discord, in-game roles, ...

    To avoid burdening people to manage the ranks manually, and to keep the information better up to date there is a system of sorts that can handle rank changes.

    There are a few systems that handle groups right now:
    1. LuckPerms, is the in-game permission handler and management tool that is used to give out roles, badges and ranks on the server.
    2. Discord, requires roles to have proper access to the channels and is also used to give the usernames certain flair so they are distinguishable.
    3. Forums, require the proper user role to have access to staff areas or otherwise non-public forums and functions.
    Rank changes should only be done in-game. The rest will be handled automatically.
    If you alter the ranks anywhere that is not done by LuckPerms, your action(s) might get overridden.

    Since we can not be 100% certain who or what account on Discord and the Forums is who, this system only works for those who we have confirmed the identity with.

    Confirming identity
    1. A user authenticated with the Minecraft session servers.
    2. The Minecraft authentication server verifies if the user has a valid Minecraft account and if he is premium or not (paid)
    3. If the user is premium, the Minecraft authentication server will grant the user an auth token that can be used to join servers that only accepts premium users.
    4. The user joins build.mcmiddleearth.com
    5. The user can link his (authenticated) Minecraft account by typing /link in the game.
    6. A unique url will be server that only the user can see and may use.
      This url will bring the user to the forums on www.mcmiddleearth.com and bind the logged-in forums account to this specific Minecraft UUID. (Registration required)
    Sync starts
    Since the forums now has a confirmed identity, the Rank Sync System will start to work.
    The forums will receive periodic updates (its not instant) about rank changes, but only for users who have used /link.
    The forum roles will be updated according to the role that will be supplied by LuckPerms.
    Once a forum role is assigned, the forums start pushing periodic updates to the Discord server to update the roles on Discord.

    MCME Rank Sync System(1).png

    1. The 'sync plugin' installed on the Build server handles the /link command and collects information from LuckPerms.
    2. LuckPerms supplies the rank/role name(s) to the sync plugin.
    3. The sync plugin pushes updates to the forums system so the forum can update the roles on the website.
    4. The forums pushes updates to the Discord server.

    Potential issues
    - The synchronization only works for people who have successfully linked their in-game account. Other people do not get synced.
    - Trying to alter groups on Discord or the Forums of people who are linked, while the group/role in LuckPerms is not changed, is useless as the change will get overridden once a new synchronization cycle starts.

    Thus, in practice:
    1. If a user desires a rank or role, this user should be obligated to use the /link command as this makes everything smoother and easier to manage.
    2. Users that are updated manually (and not linked) will have to be maintained manually too, which can lead to unwanted permission access if not noticed.