Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 1.45 KB

File metadata and controls

56 lines (44 loc) · 1.45 KB

Agent runtime events

Runtime events let plugins react to Agent activity using normal PMMP listeners.

AgentMessageEvent
AgentPubSubPublishedEvent
AgentNetworkEventHandledEvent
AgentNetworkEventSkippedEvent
AgentCommandDispatchResultEvent
AgentKVChangedEvent
AgentNetworkFlagChangedEvent
AgentServerStateChangedEvent
AgentRpcRequestReceivedEvent
AgentRpcResponseReceivedEvent
AgentComputeResultEvent
AgentComputeFailedEvent
AgentComputeExpiredEvent

Example:

use imperazim\agent\constant\AgentNetworkFlags;
use imperazim\agent\event\AgentNetworkFlagChangedEvent;
use pocketmine\event\Listener;

final class BoosterListener implements Listener{
    public function onFlagChanged(AgentNetworkFlagChangedEvent $event) : void{
        if($event->getFlag() !== AgentNetworkFlags::DOUBLE_XP){
            return;
        }

        if($event->isActive()){
            // activate local booster cache
        }
    }
}

Target checks for custom PubSub listeners use AgentPubSubAPI:

use imperazim\agent\api\AgentPubSubAPI;
use imperazim\agent\event\AgentMessageEvent;

if(!AgentPubSubAPI::eventTargetsThisServer($event)){
    return;
}

Events only fire when agent.enabled=true. If the bridge is disabled, no Agent manager, poller or placeholder expansion is registered.

Examples

See examples/agent/AgentFlagsExample.php, AgentPubSubListenerExample.php, AgentRpcExample.php and AgentComputeExample.php for listener-oriented consumer snippets.