# NeoEssentials Permission Nodes - Complete Reference
# Last Updated: January 1, 2026
# Config Version: 5
#
# This file contains ALL permission nodes used in NeoEssentials
# Format: permission.node - description (default: true/false)
#
# 🛡️ All permissions include comprehensive validation and security checks
# 🔄 Supports external permission systems (LuckPerms, FTB Ranks)
# ⚡ Thread-safe permission caching with configurable expiry
# 🎯 Granular permission control with exemption and override systems
#
# IMPORTANT NOTES:
# - Use "neoessentials.item.*" NOT "neoessentials.items.*"
# - Use "neoessentials.teleport.*" NOT "neoessentials.teleportation.*"
# - Use "neoessentials.afk" NOT "neoessentials.utils.afk"
# - Wildcard permissions: neoessentials.* grants ALL permissions

## ═══════════════════════════════════════════════════════════
## CORE PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.use - Basic mod usage (default: true)
neoessentials.admin - Administrative access (default: false)
neoessentials.reload - Reload configuration (default: false)
neoessentials.info - View mod information (default: true)
neoessentials.debug - Debug mode access (default: false)

## ═══════════════════════════════════════════════════════════
## ECONOMY PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.economy.balance - Check own balance (default: true)
neoessentials.economy.balance.others - Check others' balance (default: false)
neoessentials.economy.pay - Send payments (default: true)
neoessentials.economy.pay.toggle - Toggle payment acceptance (default: true)
neoessentials.economy.baltop - View balance leaderboard (default: true)
neoessentials.economy.admin - Economy administration (default: false)
neoessentials.economy.admin.give - Give money to players (default: false)
neoessentials.economy.admin.take - Take money from players (default: false)
neoessentials.economy.admin.set - Set player balance (default: false)

## ═══════════════════════════════════════════════════════════
## TELEPORTATION PERMISSIONS
## ═══════════════════════════════════════════════════════════

### Administrative Teleportation
neoessentials.teleport.admin - Administrative teleportation (default: false)
neoessentials.teleport.admin.tp - Teleport players (default: false)
neoessentials.teleport.admin.tphere - Teleport players to you (default: false)
neoessentials.teleport.admin.tpall - Teleport all players (default: false)
neoessentials.teleport.admin.tppos - Teleport to coordinates (default: false)
neoessentials.teleport.admin.tpo - Teleport other players to locations (default: false)

### Teleport Requests
neoessentials.teleport.request.tpa - Send teleport requests (default: true)
neoessentials.teleport.request.tpahere - Request players teleport to you (default: true)
neoessentials.teleport.request.accept - Accept teleport requests (default: true)
neoessentials.teleport.request.deny - Deny teleport requests (default: true)
neoessentials.teleport.request.cancel - Cancel sent teleport requests (default: true)

### Home System
neoessentials.teleport.home - Use home system (default: true)
neoessentials.teleport.home.set - Set home locations (default: true)
neoessentials.teleport.home.delete - Delete home locations (default: true)
neoessentials.teleport.home.list - List home locations (default: true)
neoessentials.teleport.home.others - Access others' homes (default: false)

### Dynamic Home Limits (Permission-based)
# Pattern: neoessentials.home.<amount>
# The player can have up to <amount> homes
# The highest matching permission wins
# Examples:
#   neoessentials.home.1  - Allows 1 home
#   neoessentials.home.5  - Allows 5 homes
#   neoessentials.home.10 - Allows 10 homes
#   neoessentials.home.50 - Allows 50 homes
# If no permission is set, the config default is used
# These are checked dynamically (1-100 range)

### Warp System
neoessentials.teleport.warp - Use warp system (default: true)
neoessentials.teleport.warp.create - Create warps (default: false)
neoessentials.teleport.warp.delete - Delete warps (default: false)
neoessentials.teleport.warp.list - List warps (default: true)

### Dynamic Player Warp Limits (Permission-based)
# Pattern: neoessentials.warp.limit.<amount>
# The player can have up to <amount> player warps
# The highest matching permission wins
# Examples:
#   neoessentials.warp.limit.1  - Allows 1 player warp
#   neoessentials.warp.limit.3  - Allows 3 player warps
#   neoessentials.warp.limit.10 - Allows 10 player warps
#   neoessentials.warp.limit.unlimited - Unlimited player warps
# If no permission is set, the config default is used
# These are checked dynamically (1-100 range)
neoessentials.warp.limit.unlimited - Unlimited player warps (default: false)

### Spawn System
neoessentials.teleport.spawn - Use spawn teleportation (default: true)
neoessentials.teleport.spawn.set - Set spawn location (default: false)
neoessentials.teleport.spawn.info - View spawn information (default: false)
neoessentials.teleport.spawn.clear - Clear spawn location (default: false)

### Miscellaneous Teleportation
neoessentials.teleport.back - Use back teleportation (default: true)
neoessentials.teleport.death - Teleport to death location (default: true)
neoessentials.teleport.top - Teleport to highest block (default: true)
neoessentials.teleport.jump - Teleport through walls (default: true)
neoessentials.teleport.jumpto - Teleport to looking at (default: true)
neoessentials.teleport.tpr - Random teleportation (default: true)

## ═══════════════════════════════════════════════════════════
## KIT SYSTEM PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.kits.use - Use kit system (default: true)
neoessentials.kits.list - List available kits (default: true)
neoessentials.kits.nocooldown - Bypass kit cooldowns (default: false)
neoessentials.kits.admin - Kit administration (default: false)
neoessentials.kits.admin.create - Create kits (default: false)
neoessentials.kits.admin.delete - Delete kits (default: false)
neoessentials.kits.admin.list - List all kits (admin) (default: false)

### Dynamic Kit Permissions (created per kit)
# neoessentials.kits.<kitname> - Use specific kit (e.g., neoessentials.kits.starter)
# neoessentials.kits.<kitname>.nocooldown - Bypass cooldown for specific kit

## ═══════════════════════════════════════════════════════════
## ITEM MANAGEMENT PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.item.repair - Repair items (default: false)
neoessentials.item.enchant - Enchant items (default: false)
neoessentials.item.enchant.unsafe - Unsafe enchanting (default: false)
neoessentials.item.enchant.others - Enchant others' items (default: false)
neoessentials.item.powertool - Use powertools (default: false)
neoessentials.item.powertool.toggle - Toggle powertools (default: false)
neoessentials.item.dispose - Use disposal system (default: true)
neoessentials.item.clearinventory - Clear inventory (default: false)
neoessentials.item.clearinventory.others - Clear others' inventory (default: false)

## ═══════════════════════════════════════════════════════════
## CHAT & MESSAGING PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.chat.msg - Send private messages (default: true)
neoessentials.chat.reply - Reply to messages (default: true)
neoessentials.chat.ignore - Ignore players (default: true)
neoessentials.chat.unignore - Unignore players (default: true)
neoessentials.chat.msgtoggle - Toggle message acceptance (default: true)
neoessentials.chat.socialspy - Use social spy (default: false)
neoessentials.chat.mute - Mute players (default: false)
neoessentials.chat.unmute - Unmute players (default: false)
neoessentials.chat.mutelist - View mute list (default: false)
neoessentials.chat.exempt - Exempt from muting (default: false)

## ═══════════════════════════════════════════════════════════
## AFK SYSTEM PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.afk - Use AFK system (default: true)
neoessentials.afk.exempt - Exempt from AFK kick (default: false)

## ═══════════════════════════════════════════════════════════
## PERMISSION SYSTEM PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.permissions.admin - Permission system administration (default: false)
neoessentials.permissions.reload - Reload permissions (default: false)
neoessentials.permissions.list - List permissions (default: false)
neoessentials.permissions.user - User permission management (default: false)
neoessentials.permissions.group - Group permission management (default: false)

## ═══════════════════════════════════════════════════════════
## WILDCARD PERMISSIONS (Grant Multiple Permissions)
## ═══════════════════════════════════════════════════════════
neoessentials.* - ALL NeoEssentials permissions (super admin)
neoessentials.admin.* - All administrative permissions
neoessentials.economy.* - All economy permissions
neoessentials.teleport.* - All teleportation permissions
neoessentials.kits.* - All kit permissions
neoessentials.item.* - All item management permissions
neoessentials.chat.* - All chat permissions
neoessentials.permissions.* - All permission system permissions

## ═══════════════════════════════════════════════════════════
## USAGE EXAMPLES
## ═══════════════════════════════════════════════════════════

# For LuckPerms:
# /lp group admin permission set neoessentials.* true
# /lp group moderator permission set neoessentials.teleport.* true
# /lp group default permission set neoessentials.teleport.home true
# /lp user PlayerName permission set neoessentials.kits.starter true

# For Internal Permission System (permissions.json):
# {
#   "groups": [
#     {
#       "name": "admin",
#       "permissions": ["neoessentials.*"]
#     },
#     {
#       "name": "default",
#       "permissions": [
#         "neoessentials.teleport.home",
#         "neoessentials.teleport.home.set",
#         "neoessentials.economy.balance",
#         "neoessentials.economy.pay",
#         "neoessentials.kits.use"
#       ]
#     }
#   ]
# }

## ═══════════════════════════════════════════════════════════
## COMMON PERMISSION GROUPS
## ═══════════════════════════════════════════════════════════

# DEFAULT GROUP (Basic Player):
# - neoessentials.economy.balance
# - neoessentials.economy.pay
# - neoessentials.economy.pay.toggle
# - neoessentials.economy.baltop
# - neoessentials.item.repair
# - neoessentials.item.dispose
# - neoessentials.chat.msg
# - neoessentials.chat.reply
# - neoessentials.chat.ignore
# - neoessentials.chat.unignore
# - neoessentials.chat.msgtoggle
# - neoessentials.afk
# - neoessentials.kits.use
# - neoessentials.kits.list
# - neoessentials.teleport.home
# - neoessentials.teleport.home.set
# - neoessentials.teleport.home.delete
# - neoessentials.teleport.home.list
# - neoessentials.teleport.spawn
# - neoessentials.teleport.warp
# - neoessentials.teleport.warp.list
# - neoessentials.teleport.request.tpa
# - neoessentials.teleport.request.tpahere
# - neoessentials.teleport.request.accept
# - neoessentials.teleport.request.deny
# - neoessentials.teleport.request.cancel
# - neoessentials.teleport.back
# - neoessentials.teleport.top
# - neoessentials.info

# MODERATOR GROUP (Staff):
# Inherits from default, plus:
# - neoessentials.economy.balance.others
# - neoessentials.economy.admin
# - neoessentials.item.*
# - neoessentials.chat.mute
# - neoessentials.chat.unmute
# - neoessentials.chat.mutelist
# - neoessentials.chat.socialspy
# - neoessentials.afk.exempt
# - neoessentials.permissions.reload
# - neoessentials.permissions.list
# - neoessentials.kits.admin.create
# - neoessentials.kits.admin.delete
# - neoessentials.kits.admin.list
# - neoessentials.teleport.admin.tp
# - neoessentials.teleport.admin.tphere
# - neoessentials.teleport.admin.tppos
# - neoessentials.teleport.home.others
# - neoessentials.teleport.warp.create
# - neoessentials.teleport.warp.delete
# - neoessentials.teleport.spawn.set
# - neoessentials.teleport.jump
# - neoessentials.teleport.jumpto
# - neoessentials.teleport.tpr

# ADMIN GROUP (Full Access):
# - neoessentials.*

## ═══════════════════════════════════════════════════════════
## TROUBLESHOOTING
## ═══════════════════════════════════════════════════════════

# Permission not working? Check:
# 1. Correct spelling: Use "teleport" NOT "teleportation", "item" NOT "items"
# 2. Proper inheritance: Child groups inherit from parent groups
# 3. Wildcard coverage: neoessentials.teleport.* covers all teleport.* permissions
# 4. Cache cleared: /neoessentials reload or restart server
# 5. External sync: If using LuckPerms, ensure permissions are synced

# Common Mistakes:
# ❌ neoessentials.items.repair      → ✅ neoessentials.item.repair
# ❌ neoessentials.teleportation.home → ✅ neoessentials.teleport.home
# ❌ neoessentials.utils.afk          → ✅ neoessentials.afk
# ❌ neoessentials.economy.paytoggle  → ✅ neoessentials.economy.pay.toggle

## ═══════════════════════════════════════════════════════════
## WEB DASHBOARD PERMISSIONS
## ═══════════════════════════════════════════════════════════
neoessentials.dashboard - Basic dashboard access (default: false)
neoessentials.dashboard.view - View dashboard interface (default: false)
neoessentials.dashboard.status - View dashboard status (default: false)
neoessentials.dashboard.admin - Full dashboard administration (default: false)
neoessentials.dashboard.admin.restart - Restart server via dashboard (default: false)
neoessentials.dashboard.admin.stop - Stop server via dashboard (default: false)
neoessentials.dashboard.admin.reload - Reload configs via dashboard (default: false)
neoessentials.dashboard.admin.save - Save all worlds via dashboard (default: false)
neoessentials.dashboard.temppass - Generate temporary passwords (default: false)

## ═══════════════════════════════════════════════════════════
## ADDITIONAL INFORMATION
## ═══════════════════════════════════════════════════════════

# Total Registered Permissions: 96+
# Permission Categories: 9 (Core, Economy, Teleport, Kits, Items, Chat, Misc, Admin, Dashboard)
# Supports: LuckPerms, FTB Ranks, Internal Permission System
# Validation: Automatic validation on server startup
# Caching: Configurable permission caching with expiry

# For complete documentation, see:
# - docs/wiki/PermissionSystem.md
# - PERMISSION_NODES_FIX.md
# - PERMISSION_NODES_SUMMARY.md

# Configuration Files:
# - config/neoessentials/config.json (main config)
# - config/neoessentials/permissions.json (internal permissions)

# Commands:
# /neoessentials reload - Reload all configurations
# /permissions list - List all registered permissions (if permissions module enabled)

## ═══════════════════════════════════════════════════════════
## END OF PERMISSION NODES REFERENCE
## ═══════════════════════════════════════════════════════════

