/**
* @param Enchantment $ench
*/
public function addEnchantment(Enchantment $ench)
{
if (!$this->hasCompoundTag()) {
$tag = new Compound("", []);
} else {
$tag = $this->getNamedTag();
}
if (!isset($tag->ench)) {
$tag->ench = new Enum("ench", []);
$tag->ench->setTagType(NBT::TAG_Compound);
}
$found = false;
foreach ($tag->ench as $k => $entry) {
if ($entry["id"] === $ench->getId()) {
$tag->ench->{$k} = new Compound("", ["id" => new Short("id", $ench->getId()), "lvl" => new Short("lvl", $ench->getLevel())]);
$found = true;
break;
}
}
if (!$found) {
$tag->ench->{count($tag->ench) + 1} = new Compound("", ["id" => new Short("id", $ench->getId()), "lvl" => new Short("lvl", $ench->getLevel())]);
}
$this->setNamedTag($tag);
}