diff --git a/src/pocketmine/command/SimpleCommandMap.php b/src/pocketmine/command/SimpleCommandMap.php index a1eb9e38b..bbaca362a 100644 --- a/src/pocketmine/command/SimpleCommandMap.php +++ b/src/pocketmine/command/SimpleCommandMap.php @@ -101,6 +101,7 @@ class SimpleCommandMap implements CommandMap{ $this->register("pocketmine", new SpawnpointCommand("spawnpoint")); $this->register("pocketmine", new SetWorldSpawnCommand("setworldspawn")); $this->register("pocketmine", new TeleportCommand("tp")); + $this->register("pocketmine", new TimeCommand("time")); $this->register("pocketmine", new ReloadCommand("reload")); if($this->server->getProperty("debug.commands", false) === true){ diff --git a/src/pocketmine/command/defaults/TimeCommand.php b/src/pocketmine/command/defaults/TimeCommand.php new file mode 100644 index 000000000..9e428c4d1 --- /dev/null +++ b/src/pocketmine/command/defaults/TimeCommand.php @@ -0,0 +1,83 @@ +\n/time add " + ); + $this->setPermission("pocketmine.command.time.add;pocketmine.command.time.set"); + } + + public function execute(CommandSender $sender, $currentAlias, array $args){ + if(count($args) < 2){ + $sender->sendMessage(TextFormat::RED . "Usage: " . $this->usageMessage); + return false; + } + + if($args[0] === "set"){ + if(!$sender->hasPermission("pocketmine.command.time.set")){ + $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($sender->getServer()->getLevels() as $level){ + $level->checkTime(); + $level->setTime($value); + $level->checkTime(); + } + Command::broadcastCommandMessage($sender, "Set time to " . $value); + }elseif($args[0] === "add"){ + if(!$sender->hasPermission("pocketmine.command.time.add")){ + $sender->sendMessage(TextFormat::RED . "You don't have permission to add the time"); + return true; + } + + $value = $this->getInteger($sender, $args[1], 0); + foreach($sender->getServer()->getLevels() as $level){ + $level->checkTime(); + $level->setTime($level->getTime() + $value); + $level->checkTime(); + } + }else{ + $sender->sendMessage(TextFormat::RED . "Usage: " . $this->usageMessage); + } + + return true; + } +} \ No newline at end of file