minetest.register_chatcommand("enchant", { description = "Enchant an item.", params = " []", privs = {give = true}, func = function(_, param) local sparam = param:split(" ") local target_name = sparam[1] local enchantment = sparam[2] local level_str = sparam[3] local level = tonumber(level_str or "1") if not target_name or not enchantment then return false, "Usage: /enchant []" end local target = minetest.get_player_by_name(target_name) if not target then return false, "Player '" .. target_name .. "' cannot be found" end local itemstack = target:get_wielded_item() local can_enchant, errorstring, extra_info = mcl_enchanting.can_enchant(itemstack, enchantment, level) if not can_enchant then if errorstring == "enchantment invalid" then return false, "There is no such enchantment '" .. enchantment .. "'" elseif errorstring == "item missing" then return false, "The target doesn't hold an item" elseif errorstring == "item not supported" then return false, "The selected enchantment can't be added to the target item" elseif errorstring == "level invalid" then return false, "'" .. level_str .. "' is not a valid number" elseif errorstring == "level too high" then return false, "The number you have entered (" .. level_str .. ") is too big, it must be at most " .. extra_info elseif errorstring == "level too small" then return false, "The number you have entered (" .. level_str .. ") is too small, it must be at least " .. extra_info elseif errorstring == "incompatible" then return false, mcl_enchanting.get_enchantment_description(enchantment, level) .. " can't be combined with " .. extra_info end else target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level)) return true, "Enchanting succeded" end end })