Permissions

Complete guide to AnnouncementGUI's permission system.

🔐 Permission Overview

AnnouncementGUI uses a simple permission system with a single main permission node.

📋 Permission Nodes

Permission
Description
Default

announcegui.admin

Full access to all plugin features

op

🎯 Permission Details

announcegui.admin

Description: Grants complete access to AnnouncementGUI features.

Allows:

  • Opening the announcement GUI (/announcegui)

  • Creating new announcements

  • Editing existing announcements

  • Deleting announcements

  • Toggling announcement status (enable/disable)

  • Exporting announcements (/announcegui export)

  • Importing announcements (/announcegui import)

  • Managing all announcement properties

Default: Operators (OP) only

Permission Type: Single-node (all-or-nothing)

⚙️ Setting Up Permissions

Grant to Individual User:

Grant to Group:

Remove Permission:

Check User Permissions:

Examples:

Using PermissionsEx (PEX)

Grant to User:

Grant to Group:

Remove Permission:

Examples:

Using GroupManager

Grant to User:

Grant to Group:

Remove Permission:

Examples:

Manual Configuration (permissions.yml)

If you're using Bukkit's built-in permissions system, edit permissions.yml:

🏗️ Permission Structure Examples

1

Basic Server Setup

Goal: Only admins can manage announcements.

2

Staff Hierarchy

Goal: Admins and moderators both have access.

3

Temporary Permission

Goal: Give temporary access for testing.

4

Multi-Server Network

Goal: Different permissions per server.

🎭 Permission Scenarios

1

Full Admin Access

Who: Server owners, head admins Permission: announcegui.admin

Access: Everything - create, edit, delete, import, export

2

Moderator Access

Who: Trusted moderators Permission: announcegui.admin

Access: Same as admins (currently no granular permissions)

3

No Access

Who: Regular players Permission: None

Players without the permission cannot:

  • Open the announcement GUI

  • Use any /announcegui commands

  • See or interact with announcement management

4

Testing/Trial Access

Who: New staff being tested Permission: Temporary announcegui.admin

🔒 Security Best Practices

Principle of Least Privilege

Only grant announcegui.admin to trusted staff who need to manage announcements.

❌ Don't: Give to all moderators if they don't manage announcements ✅ Do: Only give to staff responsible for server announcements

Audit Permission Usage

Regularly review who has the permission:

Use Groups Instead of Individual Permissions

❌ Don't: Grant permission directly to each user ✅ Do: Create groups and assign users to groups

Monitor Permission Changes

Enable permission logging in your permission plugin to track who changes permissions.

Temporary Permissions for Trials

Use temporary permissions when testing new staff:

Remove Permissions When Staff Leave

Always remove permissions when staff members leave:

🚫 Permission Denied Messages

When a player lacks the required permission:

Without Permission:

Console Execution:

These messages can be customized in gui-messages.yml:

🔧 Troubleshooting Permissions

Issue: Permission not working

1

Verify permission is granted:

2

Check if user is online:

  • Have the user rejoin the server

  • OR reload permissions: /lp user <username> reload

3

Check permission plugin:

  • Ensure permission plugin is loaded

  • Check console for permission plugin errors

4

Verify exact spelling:

  • Permission: announcegui.admin (all lowercase)

  • Must be exact match

Issue: User has permission but can't use command

1

Player must relog after permission change

2

Check conflicts with other permission plugins

3

Verify plugin is enabled:

AnnouncementGUI should be green

4

Check server logs for errors

Issue: OP users can't use command

Possible Causes:

  1. Server on Offline Mode - May have permission issues

  2. Permission plugin override - Some permission plugins override OP permissions

  3. Default permissions disabled - Check permission plugin config

Solution:

Issue: Permission works on one server but not others (BungeeCord/Velocity)

Solution:

  1. Check each server has the plugin installed

  2. Verify permission plugin is synced across servers

  3. Grant on specific servers:

📊 Permission Audit Checklist

Use this checklist to audit your permission setup:

🔮 Future Permission Nodes (Planned)

The following permission nodes may be added in future versions:

  • announcegui.create - Only create announcements

  • announcegui.edit - Only edit existing announcements

  • announcegui.delete - Only delete announcements

  • announcegui.toggle - Only enable/disable announcements

  • announcegui.export - Only export announcements

  • announcegui.import - Only import announcements

  • announcegui.view - Only view announcements (read-only)

Note: These are not currently implemented. Currently, only announcegui.admin exists.

📝 Permission Plugin Compatibility

AnnouncementGUI is compatible with all major permission plugins:

Plugin
Compatibility
Notes

LuckPerms

✅ Full

Recommended

PermissionsEx

✅ Full

Legacy, still supported

GroupManager

✅ Full

Legacy, still supported

PowerfulPerms

✅ Full

Modern alternative

bPermissions

✅ Full

Less common

Bukkit/Spigot Default

✅ Full

Basic support

UltraPermissions

✅ Full

Modern alternative

🆘 Getting Help

If you're having permission issues:

  1. Check this guide first

  2. Review server logs for errors

  3. Test with OP - If it works with OP, it's a permission issue

  4. Check permission plugin docs for your specific plugin

  5. Ask for help on GitHub Issues with:

    • Permission plugin name and version

    • Exact permission configuration

    • Server logs (if errors)

    • Steps to reproduce the issue


Related Documentation:

  • Commands Guide - Available commands

  • Installation Guide - Setting up the plugin

  • Configuration Guide - Plugin configuration

  • Troubleshooting - Common issues