Merge branch 'add-realtime' of Point808/PMMP_Plugins into master
This commit is contained in:
commit
2f00c814a3
17
RealTime/README.md
Normal file
17
RealTime/README.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# RealTime
|
||||||
|
|
||||||
|
Extracted plugin from old PocketMine and minor update to work on PMMP
|
||||||
|
|
||||||
|
### CREDIT! ###
|
||||||
|
Extracted plugin from old PocketMine and minor update to work on PMMP. ***Credits - this belongs to Guillaume351 but I couldn't find a git repo to fork from.
|
||||||
|
|
||||||
|
### USAGE ###
|
||||||
|
/hour - get the hour
|
||||||
|
/rt
|
||||||
|
enable - enable sync with server time
|
||||||
|
sunrise - set to sunrise
|
||||||
|
sunset - set to sunset
|
||||||
|
day - set to midday
|
||||||
|
night - set to midnight
|
||||||
|
disable - go back to normal pmmp time
|
||||||
|
lock - freeze the time
|
5
RealTime/config.yml
Normal file
5
RealTime/config.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
Time changes: 0
|
||||||
|
Tell time: true
|
||||||
|
Tell time interval in minuts: 5
|
||||||
|
...
|
29
RealTime/plugin.yml
Normal file
29
RealTime/plugin.yml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#name, main, version and api are required
|
||||||
|
name: RealTime
|
||||||
|
main: RealTime\MainClass
|
||||||
|
version: 2.1.3
|
||||||
|
api: [3.0.0-ALPHA5, 3.0.0-ALPHA6]
|
||||||
|
load: POSTWORLD
|
||||||
|
author: Guillaume351
|
||||||
|
description: Take control of the time
|
||||||
|
|
||||||
|
|
||||||
|
commands:
|
||||||
|
rt:
|
||||||
|
description: Lock the time
|
||||||
|
usage: "Usage: /rt enable/sunrise/sunset/day/night/disable/lock"
|
||||||
|
permission: realtime.command.rt
|
||||||
|
hour:
|
||||||
|
description: Get tell the hour
|
||||||
|
usage: "Usage : /hour"
|
||||||
|
permission: realtime.command.hour
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
realtime.command.rt:
|
||||||
|
description: "Allows the user to run the rt command to control the time"
|
||||||
|
default: op
|
||||||
|
realtime.command.hour :
|
||||||
|
description : "Allows the users to run the hour command to get tell the hour"
|
||||||
|
default: true
|
426
RealTime/src/RealTime/MainClass.php
Normal file
426
RealTime/src/RealTime/MainClass.php
Normal file
@ -0,0 +1,426 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace RealTime;
|
||||||
|
|
||||||
|
use pocketmine\command\Command;
|
||||||
|
use pocketmine\command\CommandSender;
|
||||||
|
use pocketmine\Player;
|
||||||
|
use pocketmine\plugin\PluginBase;
|
||||||
|
use pocketmine\Server;
|
||||||
|
use pocketmine\utils\TextFormat;
|
||||||
|
use pocketmine\event\Listener;
|
||||||
|
use pocketmine\level\Level;
|
||||||
|
use pocketmine\utils\Config;
|
||||||
|
use pocketmine\scheduler\CallbackTask;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class MainClass extends PluginBase implements Listener{
|
||||||
|
|
||||||
|
public $config;
|
||||||
|
|
||||||
|
|
||||||
|
public function onLoad(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onEnable(){
|
||||||
|
@mkdir($this->getDataFolder()); // Creation dossier contenant config
|
||||||
|
|
||||||
|
|
||||||
|
$this->getLogger()->info(TextFormat::DARK_GREEN . "RealTime enabled.");
|
||||||
|
|
||||||
|
|
||||||
|
$this->config = new Config($this->getDataFolder() . "config.yml", Config::YAML, array() );
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->config->__isset('Time changes')== false){
|
||||||
|
|
||||||
|
$this->config->set('Time changes', +0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->config->__isset('Tell time')==false){
|
||||||
|
$this->config->set('Tell time', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->config->__isset('Tell time interval in minuts')==false){
|
||||||
|
$this->config->set('Tell time interval in minuts', 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->config->save();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$tTimeInterval = $this->config->get('Tell time interval in minuts')*20*60;
|
||||||
|
$tTime = $this->config->get('Tell time');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$modify = $this->config->get('Time changes');
|
||||||
|
|
||||||
|
|
||||||
|
$test = date('H') + ($modify);
|
||||||
|
|
||||||
|
if ($test > 23){
|
||||||
|
$test = $test - 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->getLogger()->info(TextFormat::DARK_GREEN ."[RealTime] It is " . $test. " (20h is same as 8pm)");
|
||||||
|
$this->getServer()->getScheduler()->scheduleRepeatingTask(new changeTimeTask($this), 120);
|
||||||
|
$this->changeTime();
|
||||||
|
|
||||||
|
if ($tTime == true) {
|
||||||
|
$this->getLogger()->info($tTimeInterval);
|
||||||
|
$this->getServer()->getScheduler()->scheduleRepeatingTask(new tellTimeTask($this), $tTimeInterval);
|
||||||
|
$this->tellTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function onDisable(){
|
||||||
|
$this->config->save();
|
||||||
|
|
||||||
|
$this->getLogger()->info(TextFormat::DARK_RED . "RealTime disabled.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function onCommand(CommandSender $sender, Command $command, $label, array $args){
|
||||||
|
|
||||||
|
if(!($sender instanceof Player)){
|
||||||
|
$this->getLogger()->info(TextFormat::DARK_RED. "[RealTime] Please run this command in-game.\n");
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$w =$sender->getLevel();
|
||||||
|
$world = $w->getName();
|
||||||
|
|
||||||
|
if ($command->getName() == "hour"){
|
||||||
|
$modify = ($this->config->get("Time changes"));
|
||||||
|
$times = date('H');
|
||||||
|
$minutes = date('i');
|
||||||
|
$time = $times + ($modify);
|
||||||
|
|
||||||
|
if ($time > 23){
|
||||||
|
$time = $time - 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] It is ". $time .":". $minutes ."");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($command->getName() == "rt") {
|
||||||
|
switch ($args[0]){
|
||||||
|
|
||||||
|
|
||||||
|
case "enable" :
|
||||||
|
|
||||||
|
$this->config->set( $world, 0);
|
||||||
|
$reponse = ("[RealTime] RealTime enabled for the world '".$world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
case "disable" :
|
||||||
|
|
||||||
|
$this->config->set( $world, 3);
|
||||||
|
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] Time unlock (RealTime disabled) for the world '".$world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case "day" :
|
||||||
|
$this->config->set( $world, 1);
|
||||||
|
//Il faut adapter le file put content a la nouvelle API
|
||||||
|
$reponse = ("[RealTime] Time lock to day for the world '".$world."'");
|
||||||
|
|
||||||
|
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case "night" :
|
||||||
|
|
||||||
|
$this->config->set( $world, 2);
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] Time lock to night for the world '".$world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "sunrise":
|
||||||
|
|
||||||
|
$this->config->set( $world, 5);
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] Time lock to sunrise for the world '". $world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "sunset":
|
||||||
|
|
||||||
|
$this->config->set( $world, 4);
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] Time lock to sunset for the world '" . $world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->config->save();
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "lock":
|
||||||
|
$currentTick = $w->getTime();
|
||||||
|
|
||||||
|
|
||||||
|
$this->config->set( $world, 6);
|
||||||
|
$this->config->set($world."-tick",$currentTick);
|
||||||
|
$this->config->save();
|
||||||
|
|
||||||
|
$reponse = ("[RealTime] Time lock to the tick ".$currentTick." on world '" . $world."'");
|
||||||
|
$sender->sendMessage($reponse);
|
||||||
|
$this->changeTime();
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$this->changeTime();
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function changeTime(){
|
||||||
|
|
||||||
|
$modify = $this->config->get('Time changes');
|
||||||
|
$times = date('H');
|
||||||
|
$time = $times + $modify;
|
||||||
|
|
||||||
|
$monde = $this->getServer()->getLevels();
|
||||||
|
|
||||||
|
|
||||||
|
foreach($monde as $w){
|
||||||
|
|
||||||
|
if ($this->config->__isset($w->getName())!== true){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$this->config->set($w->getName(),3);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$mode = $this->config->get($w->getName());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($mode == 6){
|
||||||
|
$ticks = $this->config->get($w->getName()."-tick");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($mode == 1){
|
||||||
|
$ticks = 6001;
|
||||||
|
}
|
||||||
|
if ($mode == 4){
|
||||||
|
$ticks = 12000;
|
||||||
|
}
|
||||||
|
if ($mode == 5){
|
||||||
|
$ticks = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($mode == 2){
|
||||||
|
$ticks = 13751;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($mode == 0){
|
||||||
|
if ($time > 23){
|
||||||
|
$time = $time - 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($time == 0) {
|
||||||
|
$ticks = 18000;
|
||||||
|
}
|
||||||
|
if ($time == 24) {
|
||||||
|
$ticks = 18000;
|
||||||
|
}
|
||||||
|
if ($time == 1) {
|
||||||
|
$ticks = 19000;
|
||||||
|
}
|
||||||
|
if ($time == 2) {
|
||||||
|
$ticks = 19500;
|
||||||
|
}
|
||||||
|
if ($time == 3) {
|
||||||
|
$ticks = 20000;
|
||||||
|
}
|
||||||
|
if ($time == 4) {
|
||||||
|
$ticks = 20500;
|
||||||
|
}
|
||||||
|
if ($time == 5) {
|
||||||
|
$ticks = 21000;
|
||||||
|
}
|
||||||
|
if ($time == 6) {
|
||||||
|
$ticks = 21500;
|
||||||
|
}
|
||||||
|
if ($time == 7) {
|
||||||
|
$ticks = 22500;
|
||||||
|
}
|
||||||
|
if ($time == 8) {
|
||||||
|
$ticks = 0;
|
||||||
|
}
|
||||||
|
if ($time == 9) {
|
||||||
|
$ticks = 2000;
|
||||||
|
}
|
||||||
|
if ($time == 10) {
|
||||||
|
$ticks = 4000;
|
||||||
|
}
|
||||||
|
if ($time == 11) {
|
||||||
|
$ticks = 5000;
|
||||||
|
}
|
||||||
|
if ($time == 12) {
|
||||||
|
$ticks = 6000;
|
||||||
|
}
|
||||||
|
if ($time == 13) {
|
||||||
|
$ticks = 7000;
|
||||||
|
}
|
||||||
|
if ($time == 14) {
|
||||||
|
$ticks = 8001;
|
||||||
|
}
|
||||||
|
if ($time == 15) {
|
||||||
|
$ticks = 9001;
|
||||||
|
}
|
||||||
|
if ($time == 16) {
|
||||||
|
$ticks = 10251;
|
||||||
|
}
|
||||||
|
if ($time == 17) {
|
||||||
|
$ticks = 11251;
|
||||||
|
}
|
||||||
|
if ($time == 18) {
|
||||||
|
$ticks = 12751;
|
||||||
|
}
|
||||||
|
if ($time == 19) {
|
||||||
|
$ticks = 13001;
|
||||||
|
}
|
||||||
|
if ($time == 20) {
|
||||||
|
$ticks = 13500;
|
||||||
|
}
|
||||||
|
if ($time == 21) {
|
||||||
|
$ticks = 15001;
|
||||||
|
}
|
||||||
|
if ($time == 22) {
|
||||||
|
$ticks = 16751;
|
||||||
|
}
|
||||||
|
if ($time == 23) {
|
||||||
|
$ticks = 17501;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ($mode !== 3){
|
||||||
|
|
||||||
|
|
||||||
|
$w->checkTime();
|
||||||
|
$w->setTime($ticks);
|
||||||
|
|
||||||
|
$w->startTime();
|
||||||
|
|
||||||
|
$w->stopTime();
|
||||||
|
$w->checkTime();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ($mode === 3){
|
||||||
|
$w->checkTime();
|
||||||
|
$w->startTime();
|
||||||
|
$w->checkTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function tellTime(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//$modify = $this->config->get("Time changes");
|
||||||
|
$times = date('H');
|
||||||
|
$minutes = date('i');
|
||||||
|
$time = $times;// + $modify;
|
||||||
|
|
||||||
|
if ($time > 23){
|
||||||
|
$time = $time - 24;
|
||||||
|
}
|
||||||
|
|
||||||
|
Server::getInstance()->broadcastMessage("[RealTime] It is ". $time .":". $minutes );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
17
RealTime/src/RealTime/changeTimeTask.php
Normal file
17
RealTime/src/RealTime/changeTimeTask.php
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
namespace RealTime;
|
||||||
|
|
||||||
|
use pocketmine\scheduler\PluginTask;
|
||||||
|
|
||||||
|
class changeTimeTask extends PluginTask{
|
||||||
|
public $plugin;
|
||||||
|
public function __construct($plugin){
|
||||||
|
parent::__construct($plugin);
|
||||||
|
$this->plugin = $plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function onRun($currentTick) {
|
||||||
|
$this->plugin->changeTime();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
34
RealTime/src/RealTime/tellTimeTask.php
Normal file
34
RealTime/src/RealTime/tellTimeTask.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Created by PhpStorm.
|
||||||
|
* User: Guillaume
|
||||||
|
* Date: 06/07/2015
|
||||||
|
* Time: 11:00
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace RealTime;
|
||||||
|
|
||||||
|
|
||||||
|
use pocketmine\scheduler\PluginTask;
|
||||||
|
|
||||||
|
class tellTimeTask extends PluginTask{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Actions to execute when run
|
||||||
|
*
|
||||||
|
* @param $currentTick
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public $plugin;
|
||||||
|
public function __construct($plugin){
|
||||||
|
parent::__construct($plugin);
|
||||||
|
$this->plugin = $plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function onRun($currentTick)
|
||||||
|
{
|
||||||
|
// TODO: Implement onRun() method.
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user