Docs

Eventos

Los eventos de PulsePrison son eventos normales de Bukkit: se escuchan con @EventHandler en un Listener registrado por tu plugin. Todos se disparan en el hilo principal.

Paquete: dev.aeros.pulseprison.api.events, salvo PlayerEarnMoneyEvent, que está en dev.aeros.pulseprison.events.

Lista

EventoCancelableCuándoDatos
PlayerLevelUpEventNoUn jugador sube de nivel en un trackgetPlayer(), getTrack(), getLevel()
PlayerEarnMoneyEventNoUn jugador cobra dinero por bloques minados, colocables o autominergetPlayer(), getAmount(), getReason() (mining, placeable, autominer)
PlayerRebirthEventAntes de un rebirth, sin cobrar todavíagetPreviousRebirth(), getNewRebirth(), getMoneyCost(), getTokenCost()
SkillInvestEventAntes de gastar un punto de habilidadgetNode(), getPreviousLevel(), getNewLevel()
PetUnlockEventAntes de desbloquear una mascotagetType()
PetLevelUpEventNoLa mascota activa sube de nivelgetType(), getPreviousLevel(), getNewLevel()
RobotProduceEventNoUn robot termina ciclos de produccióngetRobot(), getCycles(), getBlocksProduced()
MarketPriceChangeEventNoSe recalcula el precio de un bloquegetMaterial(), getPreviousMultiplier(), getNewMultiplier(), getSoldInWindow()
MultiplierChangeEventNoSe pone un multiplicador global o personalgetScope() (GLOBAL, PERSONAL), getTarget(), getValue(), getDurationMillis()
MineResetEventAntes de resetear una mina de rangogetMine(), getEngine()
MineResetCompleteEventNoTerminó el resetgetMine(), getDurationMillis()
PrivateMineCreateEventNoSe crea una mina privadagetMine()
PrivateMineResetEventAntes de resetear una mina privadagetMine(), getCause() (AUTOMATIC, MANUAL, ADMIN, API)
PrivateMineResetCompleteEventNoTerminó el resetgetMine(), getCause()
PrivateMineUpgradeEventAntes de una expansión, etapa o cambio de tipogetKind(), getNewType(), getNewStage(), getNewExpansions()
PrivateMineAccessEventNoCambian miembros, invitaciones, baneos, visibilidad o impuestogetAction(), getTarget()
PrivateMineVisitEventEntra alguien que no es dueño ni miembrogetMine(), getVisitor()
PrivateMineTaxEventAntes de cobrar el impuesto a un visitantegetVisitor(), get/setMoney(), get/setTokens(), get/setGems()
PrivateMineBlocksMinedEventNoUna vez por tick por jugador, con lo minado en ese tickgetMine(), getPlayer(), getBlocks()

Los eventos de minas privadas llevan un PrivateMineView inmutable. Ver Servicios.

Ejemplos

Bloquear rebirths altos sin permiso

java
@EventHandler
public void onRebirth(PlayerRebirthEvent event) {
    if (event.getNewRebirth() > 10 && !event.getPlayer().hasPermission("myaddon.rebirth.extended")) {
        event.setCancelled(true);
    }
}

Cancelado, no se cobra nada y el jugador ve que el rebirth fue bloqueado.

Premiar niveles en Discord o en otro plugin

java
@EventHandler
public void onLevelUp(PlayerLevelUpEvent event) {
    if (event.getTrack().equals("player") && event.getLevel() % 100 == 0) {
        announce(event.getPlayer().getName() + " reached player level " + event.getLevel());
    }
}

Impuesto reducido para amigos del dueño

java
@EventHandler
public void onTax(PrivateMineTaxEvent event) {
    if (friends.areFriends(event.getMine().owner(), event.getVisitor().getUniqueId())) {
        event.setMoney(event.getMoney() / 2);
        event.setTokens(event.getTokens() / 2);
    }
}

Evento con minas cerradas

java
@EventHandler
public void onReset(MineResetEvent event) {
    if (eventRunning && event.getMine().getId().equals("arena")) {
        event.setCancelled(true);
    }
}

Contar ingresos por minería

java
@EventHandler
public void onEarn(PlayerEarnMoneyEvent event) {
    stats.add(event.getPlayer().getUniqueId(), event.getAmount());
}

PlayerEarnMoneyEvent se dispara por cada bloque o lote pagado: mantené el listener liviano.

Lo que no tiene evento

Para atributos, boosters, logros, maestrías, skins, cristales, armaduras, habilidades y encantamientos activados todavía no hay eventos públicos. Si tu addon los necesita, los caminos actuales son las acciones propias, que se pueden poner en las recompensas de cada sistema, y los placeholders.

Events | PulsePrison Core Docs