A permissions & ranks plugin for PumpkinMC.
Find a file
2026-10-15 21:08:42 -06:00
.cargo add .cargo and .envrc stuffs 2026-04-21 17:01:00 -06:00
src testing IPC stuff 2026-10-15 21:08:42 -06:00
.envrc add .cargo and .envrc stuffs 2026-04-21 17:01:00 -06:00
.gitignore add gitignore 2026-04-21 17:09:20 -06:00
build.sh update build.sh 2026-05-19 11:08:50 -06:00
Cargo.lock update version 2026-10-10 13:40:25 -06:00
Cargo.toml update version 2026-10-10 13:40:25 -06:00
LICENSE initialize with stuffs 2026-04-21 16:55:56 -06:00
README.md update readme 2026-10-11 16:21:58 -06:00
shell.nix initialize with stuffs 2026-04-21 16:55:56 -06:00

Gourd Perms

A permissions & ranks plugin for PumpkinMC.

This plugin does not take over the vanilla permissions check system, but uses it.

AI Disclaimer

A majority of this plugin is hand-written code, aside from the database migration system and this crate I used for easy color formatting.

Behavior Warning

If you notice player's permissions haven't updated after a group is deleted or a group is no longer default, this is expected.

The Pumpkin plugin API currently doesn't have a way to easily clear all existing permissions from a player to do a "refresh", so just restart the server when this happens.

Commands

/gp

  • user {user}
    • permission
      • set {node} {value} - sets a permission node on a player to true or false.
      • unset {node} - removes a set permission node from a player.
      • list - lists all set permission nodes on a player.
      • check {node} - checks what a player's permission node is set to.
    • group
      • add {group_name} - adds the player to a group.
      • remove {group_name} - removes the player from a group.
      • list - lists all groups the player is added to.
    • prefix * set {prefix} - sets a prefix on the player. Overwrites any group prefix.
    • unset - removes the prefix from the player, if it exists.
    • suffix * set {suffix} - sets a suffix on the player. Overwrites any group suffix.
    • unset - removes the suffix from the player, if it exists.
  • group
    • list - lists all available groups and their weights (priority over each other).
    • create {group_name} {weight} - creates a new group with a specified weight.
    • delete {group_name} - deletes an existing group.
    • {group_name}
      • permission
        • set {node} {value} - sets a permission node on a group to true or false.
        • unset {node} - removes a set permission node from a group.
        • list - lists all set permission nodes on a group.
        • check {node} - checks what a group's permission node is set to.
      • prefix
        • set {prefix} - sets a prefix on the group. Priority is based on weight.
        • unset - removes the prefix from the group, if it exists.
      • suffix
        • set {suffix} - sets a suffix on the group. Priority is based on weight.
        • unset - removes the suffix from the group, if it exists.
      • weight
        • set {weight} - sets a group's weight to anything from 0-65535.
      • default
        • set {bool} - sets whether a group should be added by default to all players.

Configuration

Configuration is done through the config.toml file in the plugins/data/GourdPerms/ directory. A server restart is required for configuration changes to take place.

Permissions

  • GourdPerms:admin - access to all /gp commands.
  • GourdPerms:chat_formatting - allows the player to use chat formatting like &a for green color.

Todo

  • Pretty, colored messages
  • Store data in a DB rather than data.json
  • Finish implementing default groups
  • Rank prefix and suffix (optional through config)
  • Specific permissions for each command
  • Spigot-like permission nodes with wildcards (i.e. GourdPerms.admin instead of GourdPerms:admin)