Advertisement
Guest User

Give enchant at death

a guest
Apr 10th, 2020
845
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var REGISTRY = Java.type('net.minecraftforge.fml.common.registry.ForgeRegistries');
  2.  
  3. function getAllEnchants() {
  4.     var ENCHANTS = REGISTRY.ENCHANTMENTS.getValues();
  5.     var allEnchants = [];
  6.     for (var i in ENCHANTS) {
  7.         var ench = ENCHANTS[i];
  8.         var ename = REGISTRY.ENCHANTMENTS.getKey(ench);
  9.         var eid = REGISTRY.ENCHANTMENTS.getID(ench);
  10.         allEnchants.push({
  11.             'name': ename.toString(),
  12.             'id': eid
  13.         });
  14.     }
  15.  
  16.     return allEnchants;
  17. }
  18.  
  19. var bookChance = 100; //% chance to get a book at all
  20.  
  21. function died(e) {
  22.     if(e.source) {
  23.         if(e.source.getType() == 1) {
  24.             var giveBookChance = Math.random() * 100;
  25.  
  26.             if(giveBookChance < bookChance) {
  27.                 var enchants = getAllEnchants();
  28.                 var enchant = enchants[Math.round(Math.random() * (enchants.length - 1))];
  29.                 var item = e.npc.world.createItem('minecraft:enchanted_book', 0, 1);
  30.  
  31.                 var itemNbt = item.getNbt();
  32.                 var enchantNbt = e.API.stringToNbt('{lvl:1s,id:'+enchant.id.toString()+'s}');
  33.                 itemNbt.setList('StoredEnchantments', [enchantNbt]); //Changing NBT, immediatly changes item
  34.  
  35.                 e.source.giveItem(item);
  36.             }
  37.         }
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement