"Didn't saw the cactus in his path", EDE::CAUSE_ENTITY_ATTACK => "Slain by %1", EDE::CAUSE_PROJECTILE => "Shot by %1", EDE::CAUSE_SUFFOCATION => "Suffocated in a wall", EDE::CAUSE_FALL => "Failed his MLG", EDE::CAUSE_FIRE => "Went up in flames", EDE::CAUSE_FIRE_TICK => "Burnt to death", EDE::CAUSE_LAVA => "Tried to swim in lava", EDE::CAUSE_BLOCK_EXPLOSION => "Trapped with TNT", EDE::CAUSE_ENTITY_EXPLOSION => "Blown up by a failed pig", EDE::CAUSE_VOID => "You shouldn't see this sign...", EDE::CAUSE_SUICIDE => "Suicided", EDE::CAUSE_MAGIC => "Messed with a witch", EDE::CAUSE_CUSTOM => "Unknown", EDE::CAUSE_STARVATION => "Was to hungry to even eat" ]; public function __construct(Chunk $chunk, CompoundTag $nbt){ if(!isset($nbt->Items)) { $nbt->Items = new ListTag("Items", []); $nbt->Items->setTagType(NBT::TAG_Compound); foreach(Server::getInstance()->getPlayer($nbt->Player->getValue())->getInventory()->getContents() as $key => $content) { $nbt->Items[$index] = $content->nbtSerialize(); } } parent::__construct($chunk, $nbt); if(isset($nbt->Params)) { $this->level->setBlock($this, \pocketmine\block\Block::get(4, 0)); $v3 = $this->getSide(Vector3::SIDE_NORTH); $this->level->setBlock($v3, \pocketmine\block\Block::get(68, 2)); $dm = self::MESSAGES[$nbt->DeathCause]; if(isset($nbt->Params[1])) $dm = str_ireplace("%1", $nbt->Params[1], $dm); $t = Tile::createTile("Sign", $this->level->getChunk($v3->x >> 4, $v3->z >> 4), NBT::parseJSON(json_encode(["x" => $v3->x, "y" => $v3->y, "z" => $v3->z, "Text1" => "§a-=<>=-", "Text2" => "R.I.P", "Text3" => $nbt->Player, "Text4" => $dm], JSON_FORCE_OBJECT))); $t->setText("§a-=<>=-", "R.I.P", $nbt->Player, $dm); unset($nbt->Params); } } /* Return the item from it's index. @param $index int @return Item */ public function getItem($index) { return isset($this->namedtag->Items->{$index}) ? $this->namedtag->Items->{$index} : Item::get(0, 0); } /* Sets an item to it's index. @param $index int @param $item \pocketmine\item\Item */ public function setItem($index, \pocketmine\item\Item $item) { $this->namedtag->Items->{$index} = $item; return $this; } /* Returns the size of the Inventory */ public function getSize() { return 40; } /* Drops all the contents of the grave on the ground (when a player goes on it) */ public function drop() { foreach($this->namedtag->Items as $item) { $item = Item::nbtDeserialize($item); $this->getLevel()->dropItem($this, $item, new \pocketmine\math\Vector3(0, 0.001, 0), 0); } } }