This answer is for 1.12 or before. Refer to this answer by pppery for 1.13 to 1.20.4 and this other answer by pppery for 1.20.5+.
You can set up some simple commands with command blocks, and let players click the button of each command block so that they receive the enchanted items.
You can use the following command to give players enchanted items (in this example, 1 diamond sword with Smite 2 and Knockback 30)
/give @p diamond_sword 1 0 {ench:[{id:17,lvl:2},{id:19,lvl:30}]}
This is the general command:
/give @p <ID> <amount> 0 {ench:[{id:<0-62>,lvl:<1-32767>},{id:<0-62>,lvl:<1-32767>},...]}
You put all enchantment tags between [ ]
, each with both id
and lvl
tags wrapped together by curly braces { }
.
You can also add in the clear inventory command to ensure they don't get kits twice.
/clear @p
Remember the highest level for the enchantment is level 32767.
You can stack enchants as many times as you want such as:
/give @p diamond_sword 1 0 {ench:[{id:17,lvl:32767},{id:17,lvl:32767}]}
After setting up the command blocks, put buttons and the players can choose by clicking them.
You can also put enchantments onto things that normally cannot be enchanted or have that specific enchantment. For example, you can do the command stated above to give you enchanted blocks. But, enchantments will NOT affect how the thing works normally. For example, enchanting Thorns on a dirt block will not hurt players when they come into contact with the enchanted block.