Muqsit / Tebex

Tebex plugin for PocketMine-MP servers

Home Page:https://poggit.pmmp.io/ci/Muqsit/Tebex

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Implement events

Muqsit opened this issue · comments

Plugin developers may want to cancel processing packages until players have logged in (HereAuth), until custom player data is fetched asynchronously...

public function onTebexOnlinePlayerPurchase(TebexOnlinePlayerPurchaseEvent $event) : void{
	if($this->manager->isLocked($event->getPlayer())){
		// Will keep trying to process this package
		// everytime plugin checks for pending packages
		// until the event isn't cancelled.
		$event->setCancelled();
	}
}

to implement a custom rewarding system that does not rely on tebex's enforced command execution...

public const PACKAGE_RANDOM_LOOT = 1337;

/**
 * @param TebexOnlinePlayerPurchaseEvent $event
 * @priority MONITOR
 * @ignoreCancelled true
 */
public function onTebexOnlinePlayerPurchase(TebexOnlinePlayerPurchaseEvent $event) : void{
	if($event->getPackage()->getId() === self::PACKAGE_RANDOM_LOOT){
		LootTables::getRandom()->reward($event->getPlayer());
	}
}

or simply logging.

/**
 * @param TebexPlayerPurchaseEvent $event
 * @priority MONITOR
 * @ignoreCancelled true
 */
public function onTebexPlayerPurchase(TebexPlayerPurchaseEvent $event) : void{
	$this->logTebexPurchaseToDiscord(
		$event->getPackage(),
		$event->getPlayer(),
		$event->getCommands()
	);
}