public override bool Execute(CommandSender sender, params string[] args) { if (args.Length < 2) { this.SendSyntaxMessage(sender); return(false); } Entity[] entities = this.GetEntityFromSelector(args[0], sender); if (entities == null) { this.SendNoTargetMessage(sender); return(false); } int level = 1; if (args.Length > 2) { if (!int.TryParse(args[2], out level)) { level = 1; } } for (int i = 0; i < entities.Length; ++i) { if (entities[i] is EntityLiving) { EntityLiving entity = (EntityLiving)entities[i]; Enchantment enchant = Enchantment.GetEnchantment(args[1], level); if (enchant.MinLevel > level || level > enchant.MaxLevel) { sender.SendMessage(new TranslationMessage(ColorText.RED, "commands.enchant.invalidLevel", enchant.Name, level)); continue; } Item item = entity.Inventory.MainHandItem; if (item.IsTool) { item.AddEnchant(enchant); entity.Inventory.MainHandItem = item; sender.SendMessage(new TranslationMessage("commands.enchant.success", entity.Name)); } else { sender.SendMessage(new TranslationMessage(ColorText.RED, "commands.enchant.cantEnchant", entity.Name)); } } } return(true); }
public static Enchantment GetEnchantment(string name, int level = 1) { int id; if (!int.TryParse(name, out id)) { try { Enchantment enchant = Enchantment.GetEnchantment(1); id = (int)enchant.GetType().GetField(name.ToUpper()).GetValue(enchant); } catch { } } return(Enchantment.GetEnchantment(id, level)); }
public Enchantment GetEnchantment(int id) { if (!this.HasEnchantment(id)) { return(null); } CompoundTag tag = this.GetNamedTag(); ListTag list = tag.GetList("ench"); for (int i = 0; i < list.Count; ++i) { CompoundTag ench = (CompoundTag)list[i]; if (ench.GetShort("id") == id) { return(Enchantment.GetEnchantment(id, ench.GetShort("lvl"))); } } return(null); }
public Enchantment[] GetEnchantments() { CompoundTag tag = this.NamedTag; if (!tag.Exist("ench")) { return(new Enchantment[0]); } ListTag list = tag.GetList("ench"); List <Enchantment> enches = new List <Enchantment>(); for (int i = 0; i < list.Count; ++i) { CompoundTag ench = (CompoundTag)list[i]; enches.Add(Enchantment.GetEnchantment(ench.GetShort("id"), ench.GetShort("lvl"))); } return(enches.ToArray()); }