mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-25 04:13:44 +00:00
Time now is displayed correctly
This commit is contained in:
parent
28480424c5
commit
16a8566fca
@ -712,6 +712,9 @@ class Player{
|
||||
$this->chunksLoaded = array();
|
||||
$this->server->api->entity->spawnToAll($this->entity);
|
||||
$this->server->api->entity->spawnAll($this);
|
||||
$this->dataPacket(MC_SET_TIME, array(
|
||||
"time" => $this->level->getTime(),
|
||||
));
|
||||
$terrain = true;
|
||||
}
|
||||
$this->lastCorrect = $pos;
|
||||
@ -1102,6 +1105,9 @@ class Player{
|
||||
$this->sendSettings();
|
||||
$this->server->schedule(50, array($this, "orderChunks"), array(), true);
|
||||
$this->blocked = false;
|
||||
$this->dataPacket(MC_SET_TIME, array(
|
||||
"time" => $this->level->getTime(),
|
||||
));
|
||||
$this->teleport(new Position($this->data->get("position")["x"], $this->data->get("position")["y"], $this->data->get("position")["z"], $this->level));
|
||||
$this->server->handle("player.spawn", $this);
|
||||
break;
|
||||
|
@ -192,9 +192,9 @@ class CustomPacketHandler{
|
||||
break;
|
||||
case MC_SET_TIME:
|
||||
if($this->c === false){
|
||||
$this->data["time"] = Utils::readLong($this->get(4));
|
||||
$this->data["time"] = Utils::readInt($this->get(4));
|
||||
}else{
|
||||
$this->raw .= Utils::writeLong($this->data["time"]);
|
||||
$this->raw .= Utils::writeInt($this->data["time"]);
|
||||
}
|
||||
break;
|
||||
case MC_START_GAME:
|
||||
|
@ -39,7 +39,7 @@ class Level{
|
||||
$this->nextSave = $this->startCheck = microtime(true);
|
||||
$this->nextSave += 90;
|
||||
$this->server->schedule(15, array($this, "checkThings"), array(), true);
|
||||
$this->server->event("server.close", array($this, "save"));
|
||||
$this->server->schedule(20 * 13, array($this, "checkTime"), array(), true);
|
||||
$this->name = $name;
|
||||
$this->usedChunks = array();
|
||||
$this->changedBlocks = array();
|
||||
@ -65,23 +65,31 @@ class Level{
|
||||
unset($this->usedChunks[$i][$player->CID]);
|
||||
}
|
||||
}
|
||||
|
||||
public function freeChunk($X, $Z, Player $player){
|
||||
unset($this->usedChunks[$X.".".$Z][$player->CID]);
|
||||
}
|
||||
|
||||
public function checkTime(){
|
||||
if(!isset($this->level)){
|
||||
return false;
|
||||
}
|
||||
$now = microtime(true);
|
||||
$time = $this->startTime + ($now - $this->startCheck) * 20;
|
||||
if($this->server->api->dhandle("time.change", array("level" => $this, "time" => $time)) !== false){
|
||||
$this->time = $time;
|
||||
$this->server->api->player->broadcastPacket($this->players, MC_SET_TIME, array(
|
||||
"time" => (int) $this->time,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
public function checkThings(){
|
||||
if(!isset($this->level)){
|
||||
return false;
|
||||
}
|
||||
$this->players = $this->server->api->player->getAll($this);
|
||||
$now = microtime(true);
|
||||
$time = $this->startTime + ($now - $this->startCheck) * 20;
|
||||
if($this->server->api->dhandle("time.change", array("level" => $this, "time" => $time)) !== false){
|
||||
$this->time = $time;
|
||||
$this->server->api->player->broadcastPacket($this->players, MC_SET_TIME, array(
|
||||
"time" => $this->time,
|
||||
));
|
||||
}
|
||||
$this->players = $this->server->api->player->getAll($this);
|
||||
|
||||
if(count($this->changedCount) > 0){
|
||||
arsort($this->changedCount);
|
||||
|
Loading…
x
Reference in New Issue
Block a user