mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-05 17:41:46 +00:00
Fixed players sleeping on the same bed
This commit is contained in:
parent
dd5b1869e2
commit
bee3e7d67a
@ -293,13 +293,21 @@ class Player{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function sleepOn(Vector3 $pos){
|
public function sleepOn(Vector3 $pos){
|
||||||
|
foreach($this->server->api->player->getAll($this->level) as $p){
|
||||||
|
if($p->isSleeping instanceof Vector3){
|
||||||
|
if($p->distance($pos) <= 0.1){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
$this->isSleeping = $pos;
|
$this->isSleeping = $pos;
|
||||||
$this->teleport(new Position($pos->x, $pos->y, $pos->z, $this->level));
|
$this->teleport(new Position($pos->x, $pos->y, $pos->z, $this->level));
|
||||||
if($this->entity instanceof Entity){
|
if($this->entity instanceof Entity){
|
||||||
$this->entity->updateMetadata();
|
$this->entity->updateMetadata();
|
||||||
}
|
}
|
||||||
$this->setSpawn($pos);
|
$this->setSpawn($pos);
|
||||||
$this->server->schedule(30, array($this, "checkSleep"));
|
$this->server->schedule(60, array($this, "checkSleep"));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function stopSleep(){
|
public function stopSleep(){
|
||||||
|
@ -29,11 +29,15 @@ class BedBlock extends TransparentBlock{
|
|||||||
public function onActivate(Item $item, Player $player){
|
public function onActivate(Item $item, Player $player){
|
||||||
if(ServerAPI::request()->api->time->getPhase($player->level) !== "night"){
|
if(ServerAPI::request()->api->time->getPhase($player->level) !== "night"){
|
||||||
$player->dataPacket(MC_CLIENT_MESSAGE, array(
|
$player->dataPacket(MC_CLIENT_MESSAGE, array(
|
||||||
"message" => "You can only sleep at night."
|
"message" => "You can only sleep at night"
|
||||||
));
|
));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$player->sleepOn($this);
|
if($player->sleepOn($this) === false){
|
||||||
|
$player->dataPacket(MC_CLIENT_MESSAGE, array(
|
||||||
|
"message" => "This bed is occupied"
|
||||||
|
));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user