Signs can be placed again. TODO: spawn tile entities after chunk has been received and ACKed

This commit is contained in:
Shoghi Cervantes 2014-06-17 19:48:14 +02:00
parent 85007a9dfe
commit dda57f7b0f
2 changed files with 5 additions and 4 deletions

View File

@ -1933,15 +1933,16 @@ class Player extends Human implements CommandSender, InventoryHolder, IPlayer{
$t = $this->getLevel()->getTile(new Vector3($packet->x, $packet->y, $packet->z));
if($t instanceof Sign){
if($t->namedtag->creator !== $this->username){
if(!isset($t->namedtag->Creator) or $t->namedtag["Creator"] !== $this->username){
$t->spawnTo($this);
}else{
$nbt = new NBT(NBT::LITTLE_ENDIAN);
$nbt->read($packet->namedtag);
if($nbt->id !== Tile::SIGN){
$nbt = $nbt->getData();
if($nbt["id"] !== Tile::SIGN){
$t->spawnTo($this);
}else{
$t->setText($nbt->Text1, $nbt->Text2, $nbt->Text3, $nbt->Text4);
$t->setText($nbt["Text1"], $nbt["Text2"], $nbt["Text3"], $nbt["Text4"]);
}
}
}

View File

@ -798,7 +798,7 @@ class Level implements ChunkManager, Metadatable{
new String("Text4", "")
)));
if($player instanceof Player){
$tile->namedtag->creator = new String("creator", $player->getName());
$tile->namedtag->Creator = new String("Creator", $player->getName());
}
}
$item->setCount($item->getCount() - 1);