OneLiteFeatherNET / OneLiteFeatherNET/Voyager

Permission system: staff roles, player roles

Open
#139 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

infrastructure P2 release
Dominant language
Java
Stars
0
Forks
0
Avg merge
2d 21h
Merged PRs (30d)
12

Description

Description

A permission system is needed to gate admin commands, dev mode, and future cosmetics to the appropriate roles. Minestom has no built-in permission backend — we need a lightweight role-based system.

Acceptance Criteria

  • Roles defined: player (default), moderator, admin, developer
  • Roles are stored in the ElytraPlayerEntity DB record as a string field
  • On player join, their role is loaded and applied as a Minestom permission group
  • voyager.admin permission maps to admin and developer roles
  • voyager.dev permission maps to developer role only
  • /role set <player> <role> command for admins to change roles (requires voyager.admin)
  • Role changes persist to DB immediately

Technical Details

  • Minestom Permission API: player.addPermission(new Permission("voyager.admin"))
  • No third-party permission plugin needed — custom PermissionService in server
  • Role is loaded async on join and applied before the player entity enters any phase

Dependencies

  • "Persist player profiles on first join" (Alpha) provides the DB entity to extend

Estimate

M

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the existing ElytraPlayerEntity DB record and the server’s player-join flow first, then review the Minestom Permission API and identify where a custom PermissionService belongs. Trace the dependency on first-join profile persistence before implementing the role command. Done means roles load before phase entry, permissions are applied, admin changes persist immediately, and all listed role mappings work.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authorization, backend, database
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.