Advertisement
Guest User

Custom Death Script Thingee

a guest
Feb 18th, 2019
348
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.     Custom Death Script Thingee
  3.    
  4.     Use this if you want players to keep *some* of their things upon death.  You'll have to set the gamerule of
  5.     keepInventory to True.  
  6.    
  7.     This script checks for the following:
  8.     1. whether an item in inventory is on a "ban list" (for a lack of a better term) that WILL be dropped
  9.         upon death.
  10.     2. whether an item in inventory or an armor in an armor slot will take damage upon player death; and if
  11.         the item has reached its max damage, WILL be destroyed.  Totally destroyed.  Gone.  Poof.  Bereft of
  12.         life.  Gone to sing with the choir invisible.  IT IS AN EX ITEM!
  13.    
  14.     You can change the "banlist" array to whatever you want.  Some of the items in there now are from a custom mod.
  15.    
  16.     This is for Minecraft 1.12.2, with CustonNPCs from 26 August 2018.  Does not seem to work with the 30 January 2019
  17.     release as of yet.
  18.    
  19. */
  20.  
  21.  
  22. function died(event){
  23.     var inventory=event.player.getInventory();
  24.     var banlist=["soupamod:coppercoin", "soupamod:silvercoin", "soupamod:goldcoin", "minecraft:gold_ingot", "minecraft:gold_block", "minecraft:gold_nugget", "soupamod:platinumcoin", "soupamod:etheriumcoin", "soupamod:copperore", "soupamod:silverore", "minecraft:gold_ore", "soupamod:platinumore", "soupamod:etheriumgem", "soupamod:ruby", "soupamod:fireopal", "soupamod:citrine", "minecraft:emerald", "minecraft:emerald_block", "soupamod:sapphire", "soupamod:amethyst", "minecraft:diamond", "minecraft:diamond_block", "soupamod:commodityitem"];
  25.     var count_items=0;
  26.     var i;
  27.     var j;
  28.     for(i = 0; i < 36; i++){ // step through main inventory
  29.         if(inventory[i]!=null){
  30.             var this_item_name=inventory[i].getName();
  31.             var this_item=inventory[i];
  32.             for(j in banlist){
  33.                 if(banlist[j] == this_item_name){ // this stuff will be "dropped"
  34.                     var itemToDrop=this_item.copy();
  35.                     this_item.setStackSize(0);
  36.                     var itemEntity=event.player.world.createEntity("minecraft:item");
  37.                     var x=Math.floor((Math.random()*7) -4);
  38.                     var z=Math.floor((Math.random()*7) -4);
  39.                     itemEntity.setPos(event.player.getPos().add(x,1,z));
  40.                     itemEntity.setItem(itemToDrop);
  41.                     itemEntity.spawn();
  42.                 };
  43.             };
  44.             if(inventory[i].getMaxItemDamage() > 0){
  45.                 var this_damage = inventory[i].getItemDamage();
  46.                 var new_damage = this_damage + 25;
  47.                 var this_item = inventory[i].getItemName();
  48.                 if(new_damage >= inventory[i].getMaxItemDamage()){
  49.                     inventory[i].setStackSize(0);
  50.                     var report_text = "§4Your " + this_item + " has crumbled to dust and is no more.";
  51.                     event.player.message(report_text);
  52.                 } else {
  53.                     inventory[i].setItemDamage(new_damage);
  54.                     var report_text = "Your " + this_item + " has lost some of its durability.";
  55.                     event.player.message(report_text);
  56.                 }                  
  57.             }
  58.         }
  59.     };
  60.     for(i = 0; i < 4; i++){ // step through armor slots
  61.         if(event.player.getArmor(i)!=null){
  62.             var this_damage = event.player.getArmor(i).getItemDamage();
  63.             var new_damage = this_damage + 25;
  64.             var this_item = event.player.getArmor(i).getItemName();
  65.             if(new_damage >= event.player.getArmor(i).getMaxItemDamage()){
  66.                 event.player.getArmor(i).setStackSize(0);
  67.                 var report_text = "§4Your " + this_item + " has crumbled to dust and is no more.";
  68.                 event.player.message(report_text);
  69.             } else {
  70.                 event.player.getArmor(i).setItemDamage(new_damage);
  71.                 var report_text = "Your " + this_item + " has lost some of its durability.";
  72.                 event.player.message(report_text);
  73.             }
  74.         }
  75.     };
  76.  
  77.     if(event.player.getOffhandItem()!=null){ // do off-hand item last
  78.         if(event.player.getOffhandItem().getMaxItemDamage() > 0){
  79.             var this_damage = event.player.getOffhandItem().getItemDamage();
  80.             var new_damage = this_damage + 25;
  81.             var this_item = event.player.getOffhandItem().getItemName();
  82.             if(new_damage >= event.player.getOffhandItem().getMaxItemDamage()){
  83.                 event.player.getOffhandItem().setStackSize(0);
  84.                 var report_text = "§4Your " + this_item + " has crumbled to dust and is no more.";
  85.                 event.player.message(report_text);
  86.             } else {
  87.                 event.player.getOffhandItem().setItemDamage(new_damage);
  88.                 var report_text = "Your " + this_item + " has lost some of its durability.";
  89.                 event.player.message(report_text);
  90.             }
  91.         }
  92.     };
  93. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement