Advertisement
Guest User

Public

a guest
Aug 1st, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. package com.EvilNotch.SilkSpawners;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import cpw.mods.fml.common.eventhandler.SubscribeEvent;
  6. import cpw.mods.fml.relauncher.Side;
  7. import cpw.mods.fml.relauncher.SideOnly;
  8. import gnu.trove.map.TIntObjectMap;
  9. import gnu.trove.map.hash.TIntObjectHashMap;
  10. import net.minecraft.block.Block;
  11. import net.minecraft.block.BlockMobSpawner;
  12. import net.minecraft.block.BlockSand;
  13. import net.minecraft.enchantment.Enchantment;
  14. import net.minecraft.enchantment.EnchantmentHelper;
  15. import net.minecraft.entity.EntityLivingBase;
  16. import net.minecraft.entity.player.EntityPlayer;
  17. import net.minecraft.init.Blocks;
  18. import net.minecraft.init.Items;
  19. import net.minecraft.item.ItemStack;
  20. import net.minecraft.nbt.NBTTagCompound;
  21. import net.minecraft.tileentity.TileEntity;
  22. import net.minecraft.tileentity.TileEntityMobSpawner;
  23. import net.minecraft.world.ChunkPosition;
  24. import net.minecraft.world.World;
  25. import net.minecraft.world.WorldProvider;
  26. import net.minecraftforge.event.entity.player.PlayerInteractEvent;
  27. import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
  28. import net.minecraftforge.event.world.BlockEvent.BreakEvent;
  29. import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
  30. import net.minecraftforge.event.world.BlockEvent.PlaceEvent;
  31.  
  32. public class SilkSpawners {
  33. public static TileEntity var1;
  34. public static int varmeta;
  35. public static TileEntity varTile_nbt_read;
  36.  
  37. //@SideOnly(Side.SERVER)
  38. // private static TIntObjectMap<Map<ChunkPosition, TileEntity>> feild = new TIntObjectHashMap<>();
  39.  
  40.  
  41. // WorldProvider#dimensionId field
  42. // (first is chunkposition tileentity ("key") )
  43. //String name = countryNames.get("IT");
  44. @SubscribeEvent
  45. public void BlockEvent(BreakEvent event)
  46. {
  47. System.out.println("Var1 before set");
  48. System.out.println(var1);
  49. if (!event.world.isRemote)
  50. {
  51. if (event.block instanceof BlockMobSpawner)
  52. {
  53.  
  54. if (event.world.getTileEntity(event.x, event.y, event.z) instanceof TileEntityMobSpawner);
  55. {
  56. ItemStack heldItem = event.getPlayer().getCurrentEquippedItem();
  57.  
  58.  
  59. if (heldItem != null && heldItem.getItem().getHarvestLevel(heldItem, "pickaxe") > 0)
  60. {
  61.  
  62. var1 = event.world.getTileEntity(event.x, event.y, event.z);
  63. event.world.removeTileEntity(event.x, event.y, event.z);
  64. varmeta = event.world.getBlockMetadata(event.x, event.y, event.z);
  65. System.out.println("Varmeeeeeeeeeeeeeeeeeeeeeta");
  66. System.out.println(varmeta);
  67.  
  68. }
  69. }
  70. }
  71. }
  72. }
  73.  
  74.  
  75.  
  76. // world.getProvider().getDimensionId() world.getTileEntity()
  77.  
  78. @SubscribeEvent
  79. public void yourPlayerHarvestEvent(HarvestDropsEvent event1)
  80. {
  81. if(!event1.world.isRemote)
  82. {
  83.  
  84. if (event1.block instanceof BlockMobSpawner)
  85. {
  86.  
  87. ItemStack heldItem1 = event1.harvester.getCurrentEquippedItem();
  88.  
  89. if (heldItem1 != null && heldItem1.getItem().getHarvestLevel(heldItem1, "pickaxe") > 0 && EnchantmentHelper.getSilkTouchModifier(event1.harvester))
  90. {
  91. Block block = Blocks.mob_spawner;
  92. NBTTagCompound BlockEntityTag = new NBTTagCompound();
  93. NBTTagCompound var_nbt = new NBTTagCompound(); // Write the TileEntity to NBT
  94. var1.writeToNBT(var_nbt);
  95. System.out.println("vAAAAAAAAAAAAAAAAAAAAR !!!!!!!!!!!!!!!!!! 1");
  96. System.out.println(var_nbt);
  97. final ItemStack droppedItem = new ItemStack(block); // Create an ItemStack of the Block
  98. final ItemStack MetaBlock = new ItemStack(block, 1, varmeta);
  99. droppedItem.setTagInfo("BlockEntityTag", var_nbt); // Store the TileEntity data in the ItemStack
  100. //droppedItem.writeToNBT(var_nbt); ebuger
  101. MetaBlock.setTagInfo("BlockEntityTag", var_nbt); // Store the TileEntity data in the ItemStack
  102. event1.drops.add(droppedItem); // Add the ItemStack to the drops list
  103. System.out.println("drooooooooooooooooooooooop");
  104. System.out.println(droppedItem);
  105.  
  106. //event1.drops.clear();
  107. //var1 = null; //resets var1 to null and is ready for the next instance
  108. // if necessary feild.clear();
  109. }
  110. }
  111. }
  112. }
  113.  
  114. @SubscribeEvent
  115. public void BlockEvent (PlaceEvent event2)
  116. {
  117. if (!event2.world.isRemote)
  118. {
  119.  
  120. if (event2.placedBlock == Blocks.mob_spawner)
  121. {
  122. if (event2.itemInHand != null && event2.itemInHand.hasTagCompound() );
  123. {
  124.  
  125. System.out.println("ItemInHand");
  126. System.out.println(event2.itemInHand);
  127.  
  128. ItemStack varhand = event2.itemInHand;
  129. varhand.getTagCompound();
  130. System.out.println("NBT Compound");
  131. System.out.println(varhand.getTagCompound() );
  132.  
  133. NBTTagCompound handNBT = new NBTTagCompound();
  134. varhand.writeToNBT(handNBT);
  135.  
  136. varTile_nbt_read = event2.world.getTileEntity(event2.x, event2.y, event2.z);
  137.  
  138. NBTTagCompound var_nbt = new NBTTagCompound();
  139. var1.writeToNBT(var_nbt);
  140.  
  141. varTile_nbt_read.readFromNBT(var_nbt);
  142. varTile_nbt_read.writeToNBT(var_nbt);
  143. System.out.println("Var_NBT_Final");
  144. System.out.println(var_nbt);
  145. }
  146. }
  147. }
  148. }
  149.  
  150.  
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement