9 downloads · 0 stars
Published 9 Jul 2026 from ImAMadDev/UltimatePerms at ce6d3299fac3105b578b6f1822f5465b202d7a7b, after moderator review.
Plugin description
UltimatePerms
An ultimate Permission Management plugin for PocketMine-MP
Tabla de Contenidos
- Características
- Instalación
- Configuración
- Comandos
- Sistema de Permisos
- Grupos y Rangos
- Almacenamiento
- API Pública
- Wiki Completa
Características
✅ Sistema de Permisos Contextual — Permisos que varían según el mundo o gamemode
✅ Grupos con Jerarquía — Herencia lineal con detección de ciclos
✅ Rangos Temporales — Expiración automática de permisos y rangos
✅ Múltiples Rangos por Jugador — Combinación de varios grupos
✅ Chat Formatter Personalizado — Prefijos, sufijos y colores dinámicos
✅ 4 Backends de Almacenamiento — YAML, JSON, SQLite, MySQL
✅ Eventos de Expiración — RankExpireEvent, PermissionExpireEvent, GroupPermExpireEvent
✅ Wildcard Support — Permisos con comodines (essentials.*) y negación específica
✅ Metadata Personalizada — Key-value libre para extensibilidad
✅ API Pública — Integración fácil con otros plugins
Instalación
Requisitos
- PocketMine-MP 5.0.0 o superior
- PHP 8.1+
Pasos
- Copiar la carpeta del plugin a
plugins/ - Iniciar el servidor — el plugin creará
config.ymlautomáticamente - Verificar instalación ejecutando
/uperms
Configuración
config.yml
# ── Chat & Display ────────────────────────────────────────────────────
# Placeholders: {prefix} {suffix} {name} {displayname}
# {message} {group} {group_display} {chat_color}
chat:
enabled: true
format: "{prefix}{name}{suffix}§r: {chat_color}{message}"
nametag:
enabled: true
format: "{prefix}{name}{suffix}"
displayName:
enabled: true
locale: en_US
# ── Storage ──────────────────────────────────────────────────────────
storage:
# Opciones: yaml | json | sqlite | mysql
type: json
# Solo necesario si type: mysql
mysql:
host: 127.0.0.1
port: 3306
user: root
password: ""
database: ultimateperms
Elegir Backend de Almacenamiento
JSON (por defecto)
storage:
type: json
MySQL (recomendado para servidores grandes)
storage:
type: mysql
mysql:
host: tu-servidor.com
port: 3306
user: ultimateperms
password: tu-contraseña
database: ultimateperms
Comandos
Comando Principal: /uperms · alias: /up, /perms
Usuarios (ultimateperms.command.user)
# Información del jugador
/uperms user <jugador> info
# Gestión de rangos
/uperms user <jugador> group set <grupo> [duración] # Reemplaza todos los rangos
/uperms user <jugador> group add <grupo> [duración] # Agrega rango adicional
/uperms user <jugador> group remove <grupo> # Quita un rango
# Permisos personales (overrides)
/uperms user <jugador> perm set <nodo> [true|false] [duración] [ctx=valor...]
/uperms user <jugador> perm unset <nodo>
/uperms user <jugador> perm check <nodo>
# Auditoría de permisos resueltos
/uperms user <jugador> audit [página]
# Prefix / Suffix personal
/uperms user <jugador> prefix set <texto>
/uperms user <jugador> prefix unset
/uperms user <jugador> prefix get
/uperms user <jugador> suffix set <texto>
/uperms user <jugador> suffix unset
/uperms user <jugador> suffix get
# Metadata
/uperms user <jugador> meta set <clave> <valor>
/uperms user <jugador> meta unset <clave>
/uperms user <jugador> meta get <clave>
Grupos (ultimateperms.command.group)
# Listar todos los grupos (ordenados por weight)
/uperms group list
# Crear / info / eliminar / clonar
/uperms group <nombre> create [displayName] [weight]
/uperms group <nombre> info
/uperms group <nombre> delete [confirm]
/uperms group <nombre> clone <nuevoId> [displayName]
# Permisos del grupo
/uperms group <nombre> perm set <nodo> [true|false] [duración] [ctx=valor...]
/uperms group <nombre> perm unset <nodo>
/uperms group <nombre> perm list [página]
# Herencia (un solo padre por grupo)
/uperms group <nombre> parent set <grupoPadre>
/uperms group <nombre> parent unset
# Display
/uperms group <nombre> setweight <número>
/uperms group <nombre> setprefix <texto>
/uperms group <nombre> setsuffix <texto>
# Metadata
/uperms group <nombre> meta set <clave> <valor>
/uperms group <nombre> meta unset <clave>
/uperms group <nombre> meta get <clave>
Diagnóstico
# Verificar origen de un permiso con trazabilidad
/uperms check <jugador> <permiso>
# Simular permiso con contexto personalizado (sin aplicar)
/uperms simulate <jugador> <permiso> [ctx=valor...]
# alias: /uperms sim
# Listar permisos registrados por un plugin
/uperms inspect <nombrePlugin>
# Recargar config.yml y recalcular permisos de todos los jugadores online
/uperms reload
# Abrir interfaz gráfica (experimental)
/uperms ui
Formato de Duración
| Sufijo | Unidad | Ejemplo |
|---|---|---|
Y | Años | 1Y |
M | Meses | 2M |
w | Semanas | 3w |
d | Días | 7d |
h | Horas | 24h |
m | Minutos | 30m |
s | Segundos | 3600s |
Se pueden combinar: 1d12h = 36 horas. Omitir duración = permanente.
Ejemplos Prácticos
# Crear rango YouTuber
/uperms group youtuber create "§c§lYouTuber" 65
# Establecer herencia
/uperms group youtuber parent set vip
# Agregar permisos
/uperms group youtuber perm set essentials.fly true
# Prohibir fly solo en PvP
/uperms group youtuber perm set essentials.fly false world=pvp
# Asignar a jugador permanente (reemplaza rangos anteriores)
/uperms user John group set youtuber
# Asignar temporalmente 7 días (sin reemplazar)
/uperms user John group add youtuber 7d
# Verificar origen de un permiso
/uperms check John essentials.fly
# Simular en otro contexto
/uperms simulate John essentials.fly world=pvp
Sistema de Permisos
Algoritmo de Resolución
El plugin resuelve permisos en este orden de prioridad:
- Overrides Personales (máxima prioridad) — permisos asignados directamente al jugador; las negaciones explícitas siempre prevalecen
- Grupos del Jugador (ordenados por weight DESC) — se procesan del más pesado al menos pesado
- Herencia de Grupos — cada grupo puede heredar de un único padre
- Wildcard Support —
essentials.*cubreessentials.fly,essentials.nick, etc. - Default: Denegado — si un permiso no está definido en ningún nivel, se deniega
Contextos
Installing it
Drop the phar into plugins/ and restart the server. If the API version below does not match your server, the plugin will refuse to load, which is the check working as intended.
Releases
| Version | API | Built |
|---|---|---|
| 1.0.0-beta | 5.0.0 | 9 Jul 2026 · 71 KB |
SHA-256 of 1.0.0-betabd65276b252201159deeae72670180d957434834ee6f730d5cab08bd4a728607
Reviewed by a moderator before publishing. Built from ImAMadDev/UltimatePerms at ce6d3299fac3105b578b6f1822f5465b202d7a7b. Nobody reviews plugin code here: read the source before running it on a server you care about.
Sign in with GitHub to star this plugin or leave a comment.
No comments yet.