void BoxNameTextChanged(object sender, EventArgs e) { var tag = (slot.Item.tag.Contains("tag") ? slot.Item.tag["tag"] : null); var display = ((tag != null && tag.Contains("display")) ? tag["display"] : null); var name = boxName.Text; if (name != "") { if (tag == null) { tag = NbtTag.CreateCompound(); slot.Item.tag.Add("tag", tag); } if (display == null) { display = NbtTag.CreateCompound(); tag.Add("display", display); } if (display.Contains("Name")) { display["Name"].Value = name; } else { display.Add("Name", name); } } else { display["Name"].Remove(); } slot.CallChanged(); }
void BoxTitleTextChanged(object sender, EventArgs e) { if (slot.Item.ID != 387) { return; } slot.Item.tag["tag"]["title"].Value = boxTitle.Text; slot.CallChanged(); }
void ChangeLevel(short level) { boxEnchantments.ItemSelectionChanged -= BoxEnchantmentsItemSelectionChanged; editId.ValueChanged -= EditIdValueChanged; boxName.SelectedIndexChanged -= BoxNameSelectedIndexChanged; editLevel.ValueChanged -= EditLevelValueChanged; editLevel.Value = level; var enchantment = (Data.Enchantment)boxName.SelectedItem; if (level != 0) { if (!slot.Item.tag.Contains("tag")) { slot.Item.tag.Add("tag", NbtTag.CreateCompound()); } if (!slot.Item.tag["tag"].Contains("ench")) { slot.Item.tag["tag"].Add("ench", NbtTag.CreateList(NbtTagType.Compound)); } NbtTag tag = null; foreach (var ench in slot.Item.tag["tag"]["ench"]) { if ((short)ench["id"] == enchantment.id) { tag = ench; break; } } if (tag == null) { tag = NbtTag.CreateCompound( "id", enchantment.id, "lvl", level); slot.Item.tag["tag"]["ench"].Add(tag); var listItem = new ListViewItem(new string[] { enchantment.name, editLevel.Value.ToString() }); listItem.Tag = enchantment.id; boxEnchantments.Items.Add(listItem); listItem.Selected = true; enchantments.Add(enchantment.id, Tuple.Create(tag, listItem)); } else { tag["lvl"].Value = level; foreach (ListViewItem item in boxEnchantments.Items) { if ((short)item.Tag == enchantment.id) { item.SubItems[1].Text = editLevel.Value.ToString(); } } } } else { NbtTag tag = null; foreach (var ench in slot.Item.tag["tag"]["ench"]) { if ((short)ench["id"] == enchantment.id) { tag = ench; break; } } tag.Remove(); foreach (ListViewItem item in boxEnchantments.Items) { if ((short)item.Tag == enchantment.id) { item.Remove(); break; } } if (slot.Item.tag["tag"]["ench"].Count == 0) { slot.Item.tag["tag"]["ench"].Remove(); } if (slot.Item.tag["tag"].Count == 0) { slot.Item.tag["tag"].Remove(); } enchantments.Remove(enchantment.id); } slot.CallChanged(); boxEnchantments.ItemSelectionChanged += BoxEnchantmentsItemSelectionChanged; editId.ValueChanged += EditIdValueChanged; boxName.SelectedIndexChanged += BoxNameSelectedIndexChanged; editLevel.ValueChanged += EditLevelValueChanged; }