O3Bubbles09

Crash

Jan 27th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.31 KB | None | 0 0
  1. /* TeleportBlock.class */
  2. package me.robert.teleport.blocks;
  3.  
  4. import me.robert.teleport.Teleport;
  5. import me.robert.teleport.blocks.tileentities.TileEntityTeleport;
  6. import me.robert.teleport.init.ModItems;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.material.Material;
  9. import net.minecraft.block.state.IBlockState;
  10. import net.minecraft.entity.Entity;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.item.Item;
  13. import net.minecraft.item.ItemStack;
  14. import net.minecraft.nbt.NBTTagCompound;
  15. import net.minecraft.tileentity.TileEntity;
  16. import net.minecraft.util.BlockPos;
  17. import net.minecraft.world.World;
  18.  
  19. public class BlockTeleport extends Block {
  20.  
  21.     public BlockTeleport() {
  22.         super(Material.rock);
  23.         setCreativeTab(Teleport.tabTeleport);
  24.     }
  25.  
  26.     @Override
  27.     public void onLanded(World worldIn, Entity entityIn) {
  28.         TileEntityTeleport tile = (TileEntityTeleport) worldIn.getTileEntity(entityIn.getPosition());
  29.         if (tile != null) {
  30.             int dim = tile.dim;
  31.             int posX = tile.posX;
  32.             int posY = tile.posY;
  33.             int posZ = tile.posZ;
  34.  
  35.             entityIn.travelToDimension(dim);
  36.             entityIn.setPositionAndUpdate(posX, posY, posZ);
  37.         }
  38.     }
  39.  
  40.     @Override
  41.     public TileEntity createTileEntity(World world, IBlockState state) {
  42.         return new TileEntityTeleport();
  43.     }
  44. }
  45.  
  46. /* TileEntityTeleport.class */
  47. package me.robert.teleport.blocks.tileentities;
  48.  
  49. import net.minecraft.nbt.NBTTagCompound;
  50. import net.minecraft.tileentity.TileEntity;
  51.  
  52. public class TileEntityTeleport extends TileEntity {
  53.  
  54.     public int dim;
  55.     public int posX;
  56.     public int posY;
  57.     public int posZ;
  58.  
  59.     @Override
  60.     public void writeToNBT(NBTTagCompound compound) {
  61.         super.writeToNBT(compound);
  62.         compound.setInteger("dim", dim);
  63.         compound.setInteger("posX", posX);
  64.         compound.setInteger("posY", posY);
  65.         compound.setInteger("posZ", posZ);
  66.     }
  67.  
  68.     @Override
  69.     public void readFromNBT(NBTTagCompound compound) {
  70.         super.readFromNBT(compound);
  71.         compound.getInteger("dim");
  72.         compound.getInteger("posX");
  73.         compound.getInteger("posY");
  74.         compound.getInteger("posZ");
  75.     }
  76. }
  77.  
  78. /* ItemCoordCache.class */
  79. package me.robert.teleport.items;
  80.  
  81. import java.util.List;
  82.  
  83. import org.lwjgl.input.Keyboard;
  84.  
  85. import me.robert.teleport.blocks.tileentities.TileEntityTeleport;
  86. import me.robert.teleport.init.ModBlocks;
  87. import net.minecraft.client.gui.GuiScreen;
  88. import net.minecraft.entity.player.EntityPlayer;
  89. import net.minecraft.item.Item;
  90. import net.minecraft.item.ItemStack;
  91. import net.minecraft.nbt.NBTTagCompound;
  92. import net.minecraft.util.BlockPos;
  93. import net.minecraft.util.ChatComponentText;
  94. import net.minecraft.util.EnumChatFormatting;
  95. import net.minecraft.util.EnumFacing;
  96. import net.minecraft.util.IChatComponent;
  97. import net.minecraft.world.World;
  98. import net.minecraft.world.WorldProvider;
  99. import net.minecraftforge.fml.relauncher.Side;
  100. import net.minecraftforge.fml.relauncher.SideOnly;
  101.  
  102. public class ItemCoordCache extends Item {
  103.  
  104.     @Override
  105.     public boolean onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ) {
  106.  
  107.         if (!playerIn.isSneaking()) {
  108.             if (stack.getTagCompound() == null) {
  109.                 stack.setTagCompound(new NBTTagCompound());
  110.                 NBTTagCompound nbt = new NBTTagCompound();
  111.                 nbt.setInteger("dim", playerIn.dimension);
  112.                 nbt.setInteger("posX", pos.getX());
  113.                 nbt.setInteger("posY", pos.getY());
  114.                 nbt.setInteger("posZ", pos.getZ());
  115.                 stack.getTagCompound().setTag("coord", nbt);
  116.                 stack.setStackDisplayName(EnumChatFormatting.AQUA + "Coordanite Cache");
  117.             } else {
  118.                 if (worldIn.getBlockState(pos).getBlock().equals(ModBlocks.block_teleport)) {
  119.                     TileEntityTeleport tile = (TileEntityTeleport) worldIn.getTileEntity(pos);
  120.                     NBTTagCompound nbt = stack.getTagCompound().getCompoundTag("coord");
  121.                    
  122.                     tile.dim = nbt.getInteger("dim");
  123.                     tile.posX = nbt.getInteger("posX");
  124.                     tile.posY = nbt.getInteger("posY");
  125.                     tile.posZ = nbt.getInteger("posZ");
  126.                 }
  127.             }
  128.         }
  129.         return false;
  130.     }
  131.  
  132.     @Override
  133.     public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn) {
  134.  
  135.         if (playerIn.isSneaking()) {
  136.             if (itemStackIn.getTagCompound() != null) {
  137.                 itemStackIn.getTagCompound().removeTag("coord");
  138.                 itemStackIn.clearCustomName();
  139.             }
  140.         }
  141.         return itemStackIn;
  142.     }
  143.  
  144.     @Override
  145.     @SideOnly(Side.CLIENT)
  146.     public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) {
  147.         if (stack.getTagCompound() != null) {
  148.             if (stack.getTagCompound().hasKey("coord")) {
  149.                 NBTTagCompound nbt = (NBTTagCompound) stack.getTagCompound().getTag("coord");
  150.                 int dim = nbt.getInteger("dim");
  151.                 int posX = nbt.getInteger("posX");
  152.                 int posY = nbt.getInteger("posY");
  153.                 int posZ = nbt.getInteger("posZ");
  154.  
  155.                 String aqua = EnumChatFormatting.AQUA + "";
  156.                 String purple = EnumChatFormatting.DARK_PURPLE + "";
  157.  
  158.                 String dimName = WorldProvider.getProviderForDimension(dim).getDimensionName();
  159.  
  160.                 if (GuiScreen.isShiftKeyDown()) {
  161.                     tooltip.add(aqua + "Dim: " + purple + dimName);
  162.                     tooltip.add(aqua + "X: " + purple + posX);
  163.                     tooltip.add(aqua + "Y: " + purple + posY);
  164.                     tooltip.add(aqua + "Z: " + purple + posZ);
  165.                 } else {
  166.                     tooltip.add(aqua + "Hold SHIFT for more information");
  167.                 }
  168.             }
  169.         }
  170.     }
  171.  
  172.     @Override
  173.     public boolean hasEffect(ItemStack stack) {
  174.         if (stack.getTagCompound() != null) {
  175.             return stack.getTagCompound().hasKey("coord");
  176.         }
  177.         return false;
  178.     }
  179. }
Advertisement
Add Comment
Please, Sign In to add comment