API
Generar las plantillas de ExyliaMobs desde otro plugin con el almacén compartido de mobs de ExyliaLib, leerlas y guardarlas con sus listas de recompensas, y abrir la pantalla del mob.
ExyliaMobs no tiene un artefacto de API propio. Responde al almacén compartido de mobs de ExyliaLib: al
arrancar le entrega a la librería un MobStore, y cualquier plugin lo pide con Mobs.store(), sin depender
de ExyliaMobs. Los tipos del almacén son de ExyliaLib, documentados en
El almacén compartido.
Mobs.store().ifPresent(store -> {
MobTemplate template = store.mobs().template("stone_golem");
if (template != null) store.mobs().spawn(template, spot);
});Mobs.store() está vacío cuando ExyliaMobs no está instalado, y vuelve a vaciarse cuando se desactiva.
El artefacto, el repositorio y la línea de plugin.yml están en la página de la API pública.
Añade ExyliaMobs a tu softdepend para que se active antes.
Qué responde el almacén
| Método | Qué hace |
|---|---|
mobs() | El PluginMobs de ExyliaMobs: sus plantillas registradas, apariciones y manejadores. |
stored() | Todas las plantillas de la base de datos, leídas en ese momento y no de la caché, cada una con sus Payouts. Una fila que este servidor no puede leer se deja fuera. |
save(template, payouts) | Guarda una plantilla y la registra. Con payouts en null se queda lo que paga la fila guardada (nada para una nueva). Se completa cuando la escritura ha terminado. |
edit(player, id, back) | Abre la pantalla del mob de ExyliaMobs sobre una plantilla. Su VOLVER ejecuta back; con null vuelve a la lista de mobs. false si no existe esa plantilla. |
Payouts
MobStore.Payouts es lo que paga ExyliaMobs aparte de las recompensas propias de la plantilla, que son la
lista del que más daño hizo.
| Campo | Significado |
|---|---|
booster | La fuente de potenciador. En blanco es mobs. |
mode | La entrega de items del mob, DROP o INVENTORY. En blanco sigue reward-mode de config.yml. |
lists | Listas de recompensas por nombre: SECOND, THIRD, SHARED, HIT, LAST_HIT, EVERYONE, NEARBY, DEATH, ESCAPED. Los nombres desconocidos se ignoran. |
Guardar con payouts sustituye cada lista que nombra y vacía las que no nombra. El modo de entrega propio de cada lista, elegido en ENTREGA DE ÍTEMS, se conserva tal como está guardado. Consulta Recompensas para saber a quién paga cada lista.
Mobs generados a través del almacén
Un mob generado con store.mobs() es de ExyliaMobs: paga sus listas de recompensas como cualquier otro,
cuenta en /mobsadmin y lo quita /mobsadmin killall. Un manejador añadido con onHit u onDeath en el
PluginMobs del almacén oye todos sus mobs, así que filtra por tus propias entidades, y quita el manejador
cuando tu plugin se desactive.
ExyliaRewards usa exactamente esto para las piñatas de las fiestas de votos: genera el mob elegido a través
del almacén, y su botón EDIT MOB llama a edit con un back que vuelve a la piñata.
¿Falta algo en esta página? Dínoslo en Discord