AxoProtectionBlock es un plugin moderno de protecciones para servidores Paper y Folia que permite crear regiones protegidas colocando bloques especiales, sin depender de WorldGuard ni de sistemas externos obligatorios.
Plataforma
Paper 26.2+
Compatibilidad
Paper y Folia
Java Requerido
Java 25+
Autor
AxoStudio
Funcionamiento
El jugador coloca un bloque, el plugin crea una protección alrededor de ese punto, guarda la región en YAML o SQL y aplica reglas de protección mediante eventos nativos
Está pensado para servidores que quieren un sistema claro, configurable y fácil de administrar sin depender de plugins externos como WorldGuard.
Características principales
Sistema propio de regiones optimizado por mundo y chunks.
Bloques configurables desde YAML con radio por eje, material, lore y CustomModelData.
Menús GUI nativos para administración, tienda, homes e impuestos.
Sistema de miembros, co-dueños y permisos públicos para invitados.
Flags configurables: PvP, explosiones, daño a entidades, interacciones y más.
Logs, transferencias, backups y reembolsos desde menús o comandos.
Protecciones por chunks con selección interactiva, límites propios y bloque principal reubicable.
API pública para consultar, crear y modificar protecciones desde otros plugins.
Sistemas avanzados
Tienda integrada con soporte para Vault y paginación.
Sistema de rentas e impuestos completamente configurable.
Homes por protección con teletransporte seguro.
Logs con filtros, rollback de acciones soportadas y backups restaurables.
Reembolsos de protecciones desde la tienda con confirmación opcional.
Almacenamiento SQL (SQLite/MySQL) con migradores automáticos.
Webhooks de Discord para eventos de la protección.
Plugins opcionales
Plugin
Uso
PlaceholderAPI
Registra placeholders externos; funcionan sin él.
Vault
Cobrar dinero en tienda, rentas e impuestos.
CraftEngine
Items y bloques personalizados en protecciones.
WorldGuard
Hook opcional para integraciones y migradores.
JustCombat / EternalCombat
Detecta combate activo para impedir escapes a zonas seguras sin PvP.
Bukkit ServicesManager
Expone la API pública AxoProtectionBlockApi para otros plugins.
AxoProtectionBlock API
Esta sección es para desarrolladores que quieren leer, validar o modificar protecciones desde otro plugin de Paper/Folia.
La API pública vive en org.axostudio.axoprotectionblock.api. Permite consultar regiones, leer snapshots inmutables, validar flags, crear o eliminar protecciones, administrar miembros, modificar chunks, abrir menús, mostrar bordes visuales, consultar combate y trabajar con backups.
Agregar AxoProtectionBlock como dependencia
Agrega JitPack como repositorio y compila contra AxoProtectionBlock. Para plugins Paper se recomienda compileOnly o provided para no empaquetar AxoProtectionBlock dentro de tu jar.
Agregalo en la raíz settings.gradle al final de los repositorios:
Muestra el borde visual de combate configurado en combat.border.
isInCombat(player)
Consulta combate interno o hooks compatibles.
tagCombat(playerA, playerB)
Marca combate usando el sistema interno.
clearCombat(player)
Limpia el estado de combate interno.
protectionBlockTypes()
Lista los tipos cargados desde blocks/.
createProtectionBlockItem(ownerName, blockType)
Crea un item firmado de protección.
isProtectionBlockItem(item)
Valida si un item es un bloque de protección auténtico.
backups(regionId)
Lista backups existentes de una protección.
createBackup(sender, regionId, callback)
Crea un backup manual usando el sistema interno.
Apertura de menús por API
Los métodos de menú reutilizan los inventarios configurados del plugin. El plugin externo debe encargarse de validar permisos si quiere aplicar reglas propias antes de abrirlos.
Los eventos de API se disparan antes de aplicar cambios cuando son cancelables. Las operaciones internas de combate disparan ProtectionCombatBorderEvent cuando se va a mostrar el borde por combate.
Evento
Cuándo se usa
ProtectionRegionCreateEvent
Antes de crear una protección normal o por chunks desde la API.
ProtectionRegionRemoveEvent
Antes de borrar una protección desde la API.
ProtectionRegionUpdateEvent
Antes de cambios generales: tamaño, nombre, dueño, home, vuelo, visibilidad, mensajes o upgrades.
ProtectionFlagChangeEvent
Antes de cambiar flags de región, permisos públicos o permisos de miembros.
ProtectionMemberChangeEvent
Antes de añadir/quitar miembros, co-dueños o baneos desde la API.
ProtectionChunkChangeEvent
Antes de reemplazar, añadir o quitar chunks desde la API.
ProtectionCombatBorderEvent
Antes de mostrar el borde visual cuando combate bloquea entrada a una región sin PvP.
@EventHandler
public void onCombatBorder(ProtectionCombatBorderEvent event) {
if (event.player().hasPermission("myplugin.hidecombatborder")) {
event.setCancelled(true);
}
}
Protección por bloques
Bloques configurables desde la carpeta blocks/ con tamaño por eje, material y lore.
Soporte para cabezas con PLAYER_HEAD, o textura Base64.
Soporte opcional para items de CraftEngine.
Items marcados con PersistentDataContainer para evitar falsificaciones.
Al colocar el bloque se crea una región automáticamente.
Al romper el bloque se elimina la región y vuelve al inventario.
Las explosiones y pistones pueden bloquearse sobre bloques protectores.
Sistema de regiones propio
No usa WorldGuard ni dependencias obligatorias.
El tamaño se define por eje: x_radius, y_radius y z_radius.
y_radius: -1 cubre toda la altura del mundo.
Evita regiones superpuestas y mundos bloqueados.
Soporta múltiples mundos con índice por chunks.
Guarda protecciones en YAML por región o SQL (SQLite/MySQL).
Protecciones por chunks
Permiten reclamar chunks completos en lugar de una caja por radio.
Se activan con chunk-claims.enabled y se usan con /apb chunk claim.
Los chunks de una misma protección deben mantenerse conectados entre sí.
Al añadir chunks adyacentes, el sistema puede fusionar reclamaciones del mismo dueño.
El bloque principal se actualiza según la cantidad de chunks y puede reubicarse si se elimina el chunk donde estaba.
El modo interactivo permite seleccionar chunks con una herramienta, previsualizar bordes, calcular precio y confirmar la compra.
Límites independientes por permisos: axoprotectionblock.chunks.limit.X y axoprotectionblock.chunks.limit.unlimited.
Almacenamiento de regiones
Cada región contiene: ID, nombre, propietario, coordenadas, radio, miembros, co-dueños, bloqueados, flags, home, fecha de creación y mensajes personalizados.
Menús configurables con inventarios nativos desde menu/.
Menú Principal: Acceso a protecciones, tienda, homes e impuestos.
Menú de Protecciones: Lista y gestión de tus regiones.
Menú de Miembros: Añade, elimina y gestiona permisos.
Permisos Públicos: Permite definir qué pueden hacer visitantes sin agregarlos como miembros.
Menú de Flags: Activa o desactiva protecciones por región.
Menú de Logs: Historial por protección con filtros por jugador, acción y fecha.
Creator Visual: Crea y edita tipos de protección desde el juego.
Editor de Recetas: Diseña crafteos personalizados.
Menús Configurables: Desde menu/systems.yml para tienda, rentas e impuestos.
Sistema de Recetas
Editor visual integrado para crear recetas shaped y shapeless.
Las recetas se guardan en recipes/ y se registran automáticamente con recipes.auto-register.
El resultado del crafteo conserva los datos internos del bloque de protección.
Los jugadores pueden ver recetas sin editarlas con /apb recipes <bloque>.
Tienda de protecciones
Se abre con /apb shop (configurable desde shop.command).
Muestra automáticamente bloques definidos en blocks/.
Soporta precios, ícono, brillo, prioridad y slots configurables.
Integración opcional con Vault para cobrar dinero real.
Paginación, decoración, sonidos y actualización automática.
Items personalizados pueden enviar mensajes, ejecutar comandos, reproducir sonidos.
Homes por protección
Cada protección puede tener un home único.
El dueño puede cambiar el home dentro de su protección.
Los miembros pueden usar homes si está habilitado.
Teletransporte seguro con delay configurable.
Compatible con teleportAsync de Paper.
Permisos públicos y miembros
Las flags de una protección definen la regla general. Los permisos públicos definen qué puede hacer un jugador que no es miembro dentro de esa protección.
Los dueños y co-dueños administran la protección.
Los miembros pueden tener permisos individuales desde el menú de miembros.
Los invitados públicos se controlan con /apb guest flag o desde el menú de permisos públicos.
Activar PLAYER_DAMAGE como flag permite el daño de jugadores, pero los no miembros también necesitan ese permiso público habilitado.
Sistema de Rentas
Los dueños publican protecciones en renta por precio y duración.
Cualquier mensaje enviado desde archivos de idioma puede ocultarse poniendo la clave en none o false. Esto evita enviar una línea vacía al chat.
no-permission: none
shop-no-permission: false
Referencia AxoProtectionBlock
Placeholders separados por contexto
Los placeholders de PlaceholderAPI usan el prefijo %axoprotectionblock_...%. Los placeholders internos usan %nombre% dentro de mensajes, menús, tienda, bloques, Discord, rentas, impuestos y backups.
PlaceholderAPI Menús Tienda Sistemas Discord
PlaceholderAPI registrados
Requieren PlaceholderAPI instalado. Si el jugador no está dentro de una protección, los valores de región devuelven vacío salvo in_region y los placeholders region_none/region_or_none.
Placeholder
Tipo
Valor
%axoprotectionblock_in_region%
Booleano
true si el jugador está dentro de una protección; si no, false.
%axoprotectionblock_region%
Texto
Nombre de la protección actual.
%axoprotectionblock_region_name%
Texto
Alias de %axoprotectionblock_region%.
%axoprotectionblock_region_none%
Texto
Nombre de la protección actual, o Ninguna si no está en una protección.
%axoprotectionblock_region_or_none%
Texto
Alias de %axoprotectionblock_region_none%.
%axoprotectionblock_owner%
Texto
Dueño de la protección actual.
%axoprotectionblock_region_owner%
Texto
Alias de %axoprotectionblock_owner%.
%axoprotectionblock_radius%
Número
Radio principal de la protección actual.
%axoprotectionblock_region_radius%
Número
Alias de %axoprotectionblock_radius%.
%axoprotectionblock_x_radius%
Número
Radio X de la protección actual.
%axoprotectionblock_region_x_radius%
Número
Alias de %axoprotectionblock_x_radius%.
%axoprotectionblock_y_radius%
Número
Radio Y de la protección actual; -1 significa altura completa.
%axoprotectionblock_region_y_radius%
Número
Alias de %axoprotectionblock_y_radius%.
%axoprotectionblock_z_radius%
Número
Radio Z de la protección actual.
%axoprotectionblock_region_z_radius%
Número
Alias de %axoprotectionblock_z_radius%.
%axoprotectionblock_world%
Texto
Mundo donde está la protección actual.
%axoprotectionblock_region_world%
Texto
Alias de %axoprotectionblock_world%.
%axoprotectionblock_id%
Texto
UUID completo de la protección actual.
%axoprotectionblock_region_id%
Texto
Alias de %axoprotectionblock_id%.
%axoprotectionblock_short_id%
Texto
ID corto de la protección actual.
%axoprotectionblock_region_short_id%
Texto
Alias de %axoprotectionblock_short_id%.
Menús de protección y listas
Usados en menús como protections, manage, miembros, permisos públicos y navegación contextual.
Permiso global básico de jugador. Incluye permisos normales.
Todos
axoprotectionblock.bypass
Ignora todas las protecciones.
OP
axoprotectionblock.update.notify
Notifica nuevas versiones compatibles.
OP
Permisos - Protecciones
Permiso
Descripción
Default
axoprotectionblock.create
Permite colocar bloques de protección.
Todos
axoprotectionblock.chunks.use
Permite usar /apb chunk y crear protecciones por chunks.
Todos
axoprotectionblock.remove
Permite eliminar protecciones propias.
Todos
axoprotectionblock.admin.create
Permite usar /apb admin create.
OP
axoprotectionblock.info
Permite consultar información y listas.
Todos
axoprotectionblock.edit
Permite editar tamaño, mensajes y bloque.
Todos
axoprotectionblock.rename
Permite renombrar protecciones desde menú.
Todos
axoprotectionblock.transfer
Permite solicitar transferencias de protecciones propias.
Todos
axoprotectionblock.admin.transfer
Permite transferir cualquier protección.
OP
axoprotectionblock.give
Permite entregar bloques de protección.
Falso
Permisos - Miembros y Acceso
Permiso
Descripción
Default
axoprotectionblock.member.add
Permite añadir miembros.
Todos
axoprotectionblock.member.remove
Permite eliminar miembros.
Todos
axoprotectionblock.members.permissions
Permite administrar permisos individuales de miembros.
Todos
axoprotectionblock.guest.flag
Permite cambiar permisos públicos de invitados.
Todos
axoprotectionblock.owner.add
Permite añadir co-dueños.
Todos
axoprotectionblock.owner.remove
Permite eliminar co-dueños.
Todos
axoprotectionblock.kick
Permite expulsar jugadores.
Todos
axoprotectionblock.ban
Permite banear o desbanear jugadores.
Todos
axoprotectionblock.leave
Permite abandonar una protección compartida.
Todos
Permisos - Flags y Configuración
Permiso
Descripción
Default
axoprotectionblock.flag
Permite cambiar flags.
Todos
axoprotectionblock.hide
Permite ocultar o mostrar el bloque protector.
Todos
axoprotectionblock.flight
Permite activar vuelo dentro de una protección.
Todos
axoprotectionblock.view
Permite visualizar bordes de regiones.
Todos
axoprotectionblock.distance
Permite usar la guía de distancia y alineación.
Todos
Permisos - Homes
Permiso
Descripción
Default
axoprotectionblock.home
Permite usar homes.
Todos
axoprotectionblock.sethome
Permite establecer homes.
Todos
axoprotectionblock.home.others
Permite usar homes de regiones ajenas.
OP
Permisos - Menús
Permiso
Descripción
Default
axoprotectionblock.menu
Permite abrir menú principal y homes.
Todos
axoprotectionblock.menu.use
Permite usar menús configurables del sistema.
Todos
axoprotectionblock.menu.members
Permite abrir menú de miembros.
Todos
axoprotectionblock.menu.admin
Permite abrir menú administrativo.
OP
Permisos - Tienda y Recetas
Permiso
Descripción
Default
axoprotectionblock.shop.open
Permite abrir la tienda.
Todos
axoprotectionblock.admin.shop.reload
Permite recargar la tienda.
OP
axoprotectionblock.admin.shop.generate
Permite regenerar shop.yml.
OP
axoprotectionblock.admin.shop.open
Permite abrir tienda a otro jugador.
OP
axoprotectionblock.recipes
Permite ver recetas de bloques.
Todos
axoprotectionblock.refund
Permite usar reembolsos desde la tienda.
Todos
axoprotectionblock.refund.bypass
Permite omitir confirmación de reembolso.
OP
Permisos - Impuestos
Permiso
Descripción
Default
axoprotectionblock.tax.menu
Permite abrir menú de impuestos.
Todos
axoprotectionblock.tax.info
Permite ver impuestos de protecciones.
Todos
axoprotectionblock.tax.pay
Permite pagar impuestos.
Todos
axoprotectionblock.tax.admin
Permite administrar impuestos.
OP
Permisos - Rentas
Permiso
Descripción
Default
axoprotectionblock.rent.menu
Permite abrir menú de rentas.
Todos
axoprotectionblock.rent.set
Permite publicar protecciones en renta.
Todos
axoprotectionblock.rent.remove
Permite quitar publicaciones propias.
Todos
axoprotectionblock.rent.info
Permite ver información de rentas.
Todos
axoprotectionblock.rent.buy
Permite rentar protecciones disponibles.
Todos
axoprotectionblock.rent.cancel
Permite cancelar rentas propias.
Todos
axoprotectionblock.rent.renew
Permite renovar rentas.
Todos
axoprotectionblock.rent.autorenew
Permite activar auto-renovación.
Todos
axoprotectionblock.rent.admin
Permite administrar rentas.
OP
Permisos - Idiomas
Permiso
Descripción
Default
axoprotectionblock.language.change
Permite cambiar idioma personal.
Todos
axoprotectionblock.admin.language.reload
Permite recargar idiomas.
OP
Permisos - Administración avanzada
Permiso
Descripción
Default
axoprotectionblock.reload
Permite recargar el plugin.
OP
axoprotectionblock.admin.creator
Permite usar el creator visual.
OP
axoprotectionblock.admin.creator.edit
Permite editar bloques desde el creator.
OP
axoprotectionblock.admin.creator.delete
Permite eliminar bloques desde el creator.
OP
axoprotectionblock.admin.creator.reload
Permite recargar bloques desde el creator.
OP
axoprotectionblock.admin.recipes
Permite abrir editor de recetas.
OP
axoprotectionblock.admin.recipes.create
Permite crear recetas.
OP
axoprotectionblock.admin.recipes.edit
Permite editar recetas.
OP
axoprotectionblock.admin.recipes.delete
Permite eliminar recetas.
OP
axoprotectionblock.admin.recipes.reload
Permite recargar recetas.
OP
axoprotectionblock.logs
Permite ver logs de protecciones accesibles.
Todos
axoprotectionblock.logs.filter
Permite filtrar logs de protecciones accesibles.
Todos
axoprotectionblock.admin.logs
Permite ver logs de cualquier protección.
OP
axoprotectionblock.admin.logs.filter
Permite filtrar logs de cualquier protección.
OP
axoprotectionblock.admin.rollback
Permite revertir acciones soportadas desde logs.
OP
axoprotectionblock.admin.backup
Permite crear, listar y restaurar backups.
OP
apb.admin.cleanup.preview
Permite generar vista previa de limpieza.
OP
apb.admin.cleanup.remove
Permite eliminar protecciones inactivas.
OP
apb.admin.cleanup.reload
Permite recargar limpieza.
OP
Límites por permisos
El plugin detecta automáticamente el permiso numérico más alto. Los permisos se leen dinámicamente desde Bukkit/Paper, por lo que funcionan con LuckPerms u otros plugins de permisos sin reiniciar.