2014-09-01 12:44:52 +02:00

60 lines
1.4 KiB
PHP

<?php
/*
*
* ____ _ _ __ __ _ __ __ ____
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* @author PocketMine Team
*
*
*/
namespace pocketmine\scheduler;
/**
* Allows the creation of simple callbacks with extra data
* The last parameter in the callback will be this object
*
* If you want to do a task in a Plugin, consider extending PluginTask to your needs
*/
class CallbackTask extends Task{
/** @var callable */
protected $callable;
/** @var array */
protected $args;
/**
* @param callable $callable
* @param array $args
*/
public function __construct(callable $callable, array $args = []){
$this->callable = $callable;
$this->args = $args;
$this->args[] = $this;
}
/**
* @return callable
*/
public function getCallable(){
return $this->callable;
}
public function onRun($currentTicks){
call_user_func_array($this->callable, $this->args);
}
}