From 3e575ad50533ef5b86ea5797fa5503bb052329bf Mon Sep 17 00:00:00 2001 From: onebone Date: Sun, 18 May 2014 22:56:01 +0900 Subject: [PATCH] Added time command --- src/pocketmine/command/SimpleCommandMap.php | 2 + .../command/defaults/TimeCommand.php | 67 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/pocketmine/command/defaults/TimeCommand.php diff --git a/src/pocketmine/command/SimpleCommandMap.php b/src/pocketmine/command/SimpleCommandMap.php index 15018b3dc..30267ee77 100644 --- a/src/pocketmine/command/SimpleCommandMap.php +++ b/src/pocketmine/command/SimpleCommandMap.php @@ -53,6 +53,7 @@ use pocketmine\command\defaults\TellCommand; use pocketmine\command\defaults\VanillaCommand; use pocketmine\command\defaults\VersionCommand; use pocketmine\command\defaults\WhitelistCommand; +use pocketmine\command\defaults\TimeCommand; use pocketmine\Server; class SimpleCommandMap implements CommandMap{ @@ -101,6 +102,7 @@ class SimpleCommandMap implements CommandMap{ $this->register("pocketmine", new SetWorldSpawnCommand("setworldspawn")); $this->register("pocketmine", new TeleportCommand("tp")); $this->register("pocketmine", new ReloadCommand("reload")); + $this->register("pocketmine", new TimeCommand("time")); if($this->server->getConfigBoolean("debug.commands", false) === true){ $this->register("pocketmine", new StatusCommand("status")); diff --git a/src/pocketmine/command/defaults/TimeCommand.php b/src/pocketmine/command/defaults/TimeCommand.php new file mode 100644 index 000000000..0aac0c5dd --- /dev/null +++ b/src/pocketmine/command/defaults/TimeCommand.php @@ -0,0 +1,67 @@ +\n/time add " + ); + $this->setPermission("pocketmine.command.time.add;pocketmine.command.set;"); + } + + public function execute(CommandSender $sender, $label, array $args){ + if (count($args) < 2) { + $sender->sendMessage(TextFormat::RED."Incorrect usage. Correct usage:\n".$this->getUsage()); + return false; + } + + switch(strtolower($args[0])){ + case "set": + if(!$sender->hasPermission("pocketmine.command.time.add")){ + $sender->sendMessage(TextFormat::RED."You don't have permission to set the time"); + return true; + } + + if($args[1] === "day"){ + $value = 0; + }elseif($args[1] === "night"){ + $value = 12500; + }else{ + $value = $this->getInteger($sender, $args[1], 0); + } + + foreach(Server::getInstance()->getLevels() as $level){ + $level->setTime($value); + } + Command::broadcastCommandMessage($sender, "Set time to ".$value); + + return true; + case "add": + if (!$sender->hasPermission("pocketmine.command.time.add")){ + $sender->sendMessage(TextFormat::RED."You don't have permission to set the time"); + return true; + } + + $value = $this->getInteger($sender, $args[1], 0); + + foreach(Server::getInstance()->getLevels() as $level){ + $level->setTime($level->getTime() + $value); + } + + Command::broadcastCommandMessage($sender, "Added ".$value." to time"); + + return true; + default: + $sender->sendMessage("Unknown method. Usage: ".$this->getUsage()); + } + } +} \ No newline at end of file