2016-07-28 06:39:24 +00:00
|
|
|
<?php
|
|
|
|
namespace Ad5001\GameManager;
|
|
|
|
use pocketmine\command\CommandSender;
|
|
|
|
use pocketmine\command\Command;
|
|
|
|
use pocketmine\event\Listener;
|
2016-07-31 09:17:15 +00:00
|
|
|
use pocketmine\event\player\PlayerInteractEvent;
|
2016-07-28 06:39:24 +00:00
|
|
|
use pocketmine\plugin\PluginBase;
|
|
|
|
use pocketmine\Server;
|
|
|
|
use pocketmine\Player;
|
|
|
|
use Ad5001\GameManager\GameManager;
|
|
|
|
|
|
|
|
|
2016-07-31 09:17:15 +00:00
|
|
|
class Main extends PluginBase implements Listener {
|
2016-07-28 06:39:24 +00:00
|
|
|
|
|
|
|
|
2016-07-31 07:27:54 +00:00
|
|
|
protected $manager;
|
|
|
|
|
|
|
|
|
2016-07-28 06:39:24 +00:00
|
|
|
public function onEnable(){
|
|
|
|
$this->reloadConfig();
|
|
|
|
$this->getServer()->getPluginManager()->registerEvents($this, $this);
|
2016-07-31 07:27:54 +00:00
|
|
|
@mkdir($this->getServer()->getFilePath() . "worldsBackups/");
|
2016-07-28 06:39:24 +00:00
|
|
|
$this->manager = new GameManager($this);
|
2016-07-31 09:17:15 +00:00
|
|
|
}
|
|
|
|
|
2016-07-28 06:39:24 +00:00
|
|
|
|
2016-07-31 09:17:15 +00:00
|
|
|
public function onInteract(PlayerInteractEvent $event) {
|
|
|
|
if($event->getBlock() instanceof \pocketmine\block\SignPost and $event->getBlock() instanceof \pocketmine\block\WallSign) {
|
|
|
|
$t = $event->getBlock()->getLevel()->getTile($block);
|
|
|
|
if(str_ireplace("{game}", $class->getName(), $this->getConfig()->get("Game1")) == $t->getText()[0]) {
|
|
|
|
$lvlex = explode("{level}", $this->getConfig()->get("Game2"));
|
|
|
|
$lvl = str_ireplace($lvlex[0], "", $t->getText()[1]);
|
|
|
|
$lvl = str_ireplace($lvlex[1], "", $lvl);
|
|
|
|
if($name == $lvl) {
|
|
|
|
if($this->gameManager->getLevels()[$lvl->getName()]->isStarted()) {
|
|
|
|
$event->getPlayer()->teleport($lvl->getDefaultSpawn());
|
|
|
|
$event->getPlayer()->setGamemode(3);
|
|
|
|
} else {
|
|
|
|
$event->getPlayer()->teleport($lvl->getDefaultSpawn());
|
|
|
|
$this->gameManager->getLevels()[$lvl->getName()]->onJoin($event->getPlayer());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2016-07-28 06:39:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function onLoad(){
|
|
|
|
$this->saveDefaultConfig();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-07-31 07:27:54 +00:00
|
|
|
public function getGameManager() {
|
|
|
|
return $this->manager;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-07-28 06:39:24 +00:00
|
|
|
public function onCommand(CommandSender $sender, Command $cmd, $label, array $args){
|
|
|
|
switch($cmd->getName()){
|
|
|
|
case "default":
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public function getClasses(string $file) {
|
|
|
|
$tokens = token_get_all($php_file);
|
|
|
|
$class_token = false;
|
|
|
|
foreach ($tokens as $token) {
|
|
|
|
if (is_array($token)) {
|
|
|
|
if ($token[0] == T_CLASS) {
|
|
|
|
$class_token = true;
|
|
|
|
} else if ($class_token && $token[0] == T_STRING) {
|
|
|
|
return $token[1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|