/** * @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); }
public function equals(Enchantment $ent) { if ($ent->getId() == $this->getId() and $ent->getLevel() == $this->getLevel() and $ent->getActivationType() == $this->getActivationType() and $ent->getRarity() == $this->getRarity()) { return true; } return false; }