mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +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){
|
||||
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->teleport(new Position($pos->x, $pos->y, $pos->z, $this->level));
|
||||
if($this->entity instanceof Entity){
|
||||
$this->entity->updateMetadata();
|
||||
}
|
||||
$this->setSpawn($pos);
|
||||
$this->server->schedule(30, array($this, "checkSleep"));
|
||||
$this->server->schedule(60, array($this, "checkSleep"));
|
||||
return true;
|
||||
}
|
||||
|
||||
public function stopSleep(){
|
||||
|
@ -29,11 +29,15 @@ class BedBlock extends TransparentBlock{
|
||||
public function onActivate(Item $item, Player $player){
|
||||
if(ServerAPI::request()->api->time->getPhase($player->level) !== "night"){
|
||||
$player->dataPacket(MC_CLIENT_MESSAGE, array(
|
||||
"message" => "You can only sleep at night."
|
||||
"message" => "You can only sleep at night"
|
||||
));
|
||||
return true;
|
||||
}
|
||||
$player->sleepOn($this);
|
||||
if($player->sleepOn($this) === false){
|
||||
$player->dataPacket(MC_CLIENT_MESSAGE, array(
|
||||
"message" => "This bed is occupied"
|
||||
));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user