Elrol_Arrowsend Posted July 13, 2016 Posted July 13, 2016 I am trying to change a block's texture depending on the block in the inventory of the block. What I have right now is setting the block to the texture of the block I put in the inventory, however it is also changing the block in the creative menu and not just the block i have placed in the world. I am using if statements in the getIcon method. this is what I have: @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(this.isAdv && this.block != null){ if(side == meta){ return this.block.getBlockTextureFromSide(side); }else{ return this.block.getBlockTextureFromSide(side); } }else{ if(side == meta){ return this.side; }else{ return this.blockIcon; } } } and before anyone says anything about updating to 1.10 this mod is being used in a 1.7.10 pack, so updating to 1.10 will not help me at all. thanks in advance. -Elrol Quote
Draco18s Posted July 13, 2016 Posted July 13, 2016 @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(this.isAdv && this.block != null){ return this.block.getIcon(side,meta); //why not this? } } ? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 13, 2016 Author Posted July 13, 2016 it will change to have a different texture overlay, like using the same block and adding the overlay to it, the else will be for the other 5 sides when ever I add a block to the Inventory all the elevators change to that including the one in the creative menu im looking for a way so that the texture is changed only on the block with the inventory and the block. so that the other blocks can have different textures, like the draw bridges from TMechworks @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(this.isAdv && this.block != null){ if(side == meta){ //this will be the texture of the block with the face overlay so the players know where it is facing return this.block.getBlockTextureFromSide(side); }else{ return this.block.getBlockTextureFromSide(side); } }else{ //This is the Elevator and Advanced Elevator (if it has no block to set the texture) textures if(side == meta){ //This sets a side to be the face of the block, so the players can tell where the elevator is facing return this.side; }else{ return this.blockIcon; } } } Quote
Draco18s Posted July 13, 2016 Posted July 13, 2016 Mmm. You've posted the same code again along with a bunch of words. It doesn't help me figure out why you're not using this.block.getIcon(side,meta); Yes, I skipped the "else" statement, but whatever. I still don't know what the "problem" you're having even is. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 14, 2016 Author Posted July 14, 2016 as i have stated TWICE my issue is not about the block having the textures, it is that the change is to EVERY elevator not just the one which has the block in the invnetory. the block in the creative menu that doesnt have an inventory yet also changes. the elevator is rendering the texture of the block, but all of the other ones are too. Quote
Draco18s Posted July 14, 2016 Posted July 14, 2016 You need to show more of the class, then. Post the whole thing. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 14, 2016 Author Posted July 14, 2016 Here it is: Elevator.class package com.forgewareinc.elrol.guiElevator; import java.util.ArrayList; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class Elevator extends BlockContainer { private boolean isAdv = false; private Block block; public int color; public IIcon side; protected IIcon field_150164_N; private TileEntityElevator tile; public static String[] colors = new String[]{"black", "red", "green", "brown", "blue", "purple", "cyan", "silver", "gray", "pink", "lime", "yellow", "lblue", "magenta", "orange", "white"}; public static String[] dyes = new String[]{"dyeBlack", "dyeRed", "dyeGreen", "dyeBrown", "dyeBlue", "dyePurple", "dyeCyan", "dyeLightGray", "dyeGray", "dyePink", "dyeLime", "dyeYellow", "dyeLightBlue", "dyeMagenta", "dyeOrange", "dyeWhite"}; public Elevator(String name, CreativeTabs tab, float hardness, float resistance, SoundType stepSound, int color) { super(Material.iron); this.setBlockName(name + "_" + colors[color]); this.setHardness(hardness); this.setResistance(resistance); this.setBlockTextureName(ModInfo.MODID + ":" + name + "_" +colors[color]); this.setCreativeTab(tab); this.setStepSound(stepSound); this.color = color; GameRegistry.registerBlock(this, name + "_" + colors[color]); } public Elevator(String name, CreativeTabs tab, float hardness, float resistance, SoundType stepSound, boolean isAdv) { super(Material.iron); this.setBlockName(name + "_adv"); this.setHardness(hardness); this.setResistance(resistance); this.setBlockTextureName(ModInfo.MODID + ":" + name + "_" +"white"); this.setCreativeTab(tab); this.isAdv = isAdv; this.setStepSound(stepSound); GameRegistry.registerBlock(this, name + "_adv"); } public boolean isNormalCube() { return false; } public String getDye(){ return dyes[color]; } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par1, float par2, float par3, float par4) { ItemStack stack = player.inventory.getCurrentItem(); if(player.isSneaking()){ if(world.getBlock(x, y, z).equals(ElevatorMain.elevatorAdv)){ if(!world.isRemote)player.openGui(ElevatorMain.instance, ModInfo.CAMO_GUI, world, x, y, z); return true; }else{ player.openGui(ElevatorMain.instance, ModInfo.FLOOR_GUI, world, x, y, z); return true; } }else{ if(stack != null){ if(getOres(stack).contains("dye")){ for(int i = 0; i < dyes.length; i++){ if(getOres(stack).contains(dyes[i]) && !((Elevator)world.getBlock(x, y, z)).getDye().equalsIgnoreCase(colors[i]) ){ if(!player.capabilities.isCreativeMode){ --player.getCurrentEquippedItem().stackSize; } return false; } } } } player.openGui(ElevatorMain.instance, ModInfo.FLOOR_GUI, world, x, y, z); return true; } } public static ArrayList<String> getOres(ItemStack stack){ int[] ores = OreDictionary.getOreIDs(stack); ArrayList<String> ore = new ArrayList<String>(); for(int i = 0; i < ores.length; i++){ ore.add(OreDictionary.getOreName(ores[i])); } return ore; } @Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { try{ return new TileEntityElevator(); }catch (Exception var3){ throw new RuntimeException(var3); } } public boolean hasTileEntity(int meta){ return true; } @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister icon){ this.blockIcon = icon.registerIcon(this.textureName); this.side = icon.registerIcon(this.textureName + "_face"); } @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(this.isAdv && this.block != null){ if(side == meta){ return this.block.getIcon(side, meta); }else{ return this.block.getIcon(side, meta); } }else{ if(side == meta){ return this.side; }else{ return this.blockIcon; } } } public int onBlockPlaced(World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int meta) { for(int i = y; i < 256; i++){ if(world.getBlock(x, i, z) instanceof Elevator){ TileEntityElevator tile = (TileEntityElevator)world.getTileEntity(x, i, z); if(tile.getName() != null && tile.getName().equals("Floor 1")){ if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Basement 1", x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; }else if(tile.getName() != null && tile.getName().startsWith("Basement")){ try{ String test1 = tile.getName().substring(9); int a = (Integer.parseInt(test1))+1; if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Basement " + a, x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; }catch(Exception e){ if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Basement", x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; } } } } for(int a = y; a > 0; a--){ if(world.getBlock(x, a, z) instanceof Elevator){ TileEntityElevator tile1 = (TileEntityElevator)world.getTileEntity(x, a, z); if(tile1.getName() != null && tile1.getName().startsWith("Floor")){ try{ String test = tile1.getName().substring(6); int id = (Integer.parseInt(test)) + 1; if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Floor " + (id++), x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; }catch(Exception e){ if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Floor", x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; } } } } if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming("Floor 1", x, y, z)); } world.setBlockMetadataWithNotify(x, y, z, side, 2); return side; } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { if(world.getTileEntity(x, y, z) instanceof TileEntityElevator){ this.tile = (TileEntityElevator)world.getTileEntity(x, y, z); } if(this.tile != null && Block.getBlockFromItem(stack.getItem()) != null && Block.getBlockFromItem(stack.getItem()) instanceof Elevator){ Elevator block = (Elevator)Block.getBlockFromItem(stack.getItem()); if(block.isAdv){ tile.isAdv = true; if(!world.isRemote)System.out.println("true"); } }else{ return; } } public void HandlePacket(EntityPlayer player, int x, int y, int z, String value, byte extra){ TileEntity te = player.worldObj.getTileEntity(x, y, z); if(te != null && te instanceof TileEntityElevator){ ((TileEntityElevator)te).name = value; ((TileEntityElevator)te).markDirty();; } } public void dyeBlock(World world, int x, int y, int z, int dye){ TileEntityElevator tile = (TileEntityElevator)world.getTileEntity(x, y, z); Block block = world.getBlock(x, y, z); String name = tile.getName(); int meta = world.getBlockMetadata(x, y, z); switch(dye){ case 0: block = ElevatorMain.elevatorBlack; break; case 1: block = ElevatorMain.elevatorRed; break; case 2: block = ElevatorMain.elevatorGreen; break; case 3: block = ElevatorMain.elevatorBrown; break; case 4: block = ElevatorMain.elevatorBlue; break; case 5: block = ElevatorMain.elevatorPurple; break; case 6: block = ElevatorMain.elevatorCyan; break; case 7: block = ElevatorMain.elevatorSilver; break; case 8: block = ElevatorMain.elevatorGray; break; case 9: block = ElevatorMain.elevatorPink; break; case 10: block = ElevatorMain.elevatorLime; break; case 11: block = ElevatorMain.elevatorYellow; break; case 12: block = ElevatorMain.elevatorLBlue; break; case 13: block = ElevatorMain.elevatorMagenta; break; case 14: block = ElevatorMain.elevatorOrange; break; case 15: block = ElevatorMain.elevatorWhite; break; default: break; } world.setBlock(x, y, z, block); world.setBlockMetadataWithNotify(x, y, z, meta, 2); if(world.isRemote){ ElevatorMain.network.sendToServer(new PacketNaming(name, x, y, z)); } } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { TileEntityElevator te = (TileEntityElevator) world.getTileEntity(x, y, z); Methods.dropItems(world, x, y, z, block, meta); super.breakBlock(world, x, y, z, block, meta); } public void setBlock(Block block){ this.block = block; } public Block getBlock(){ return this.block; } } TileEntityElevator.class package com.forgewareinc.elrol.guiElevator; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; public class TileEntityElevator extends TileEntity implements IInventory{ public String name; public boolean isNamed = false; public boolean isAdv = false; private ItemStack[] inventory; public TileEntityElevator(){ this.inventory = new ItemStack[this.getSizeInventory()]; } @Override public void readFromNBT(NBTTagCompound tag){ this.name = tag.getString("name"); this.isNamed = tag.getBoolean("named"); this.isAdv = tag.getBoolean("adv"); NBTTagList list = tag.getTagList("Items", 10); for (int i = 0; i < list.tagCount(); ++i) { NBTTagCompound stackTag = list.getCompoundTagAt(i); int slot = stackTag.getByte("Slot") & 255; this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(stackTag)); } super.readFromNBT(tag); } @Override public void writeToNBT(NBTTagCompound tag){ if(this.name == null){ tag.setBoolean("named", false); }else{ //System.out.println(name + ", " + isNamed); tag.setString("name", this.name); tag.setBoolean("named", true); } NBTTagList list = new NBTTagList(); for (int i = 0; i < this.getSizeInventory(); ++i) { if (this.getStackInSlot(i) != null) { NBTTagCompound stackTag = new NBTTagCompound(); stackTag.setByte("Slot", (byte) i); this.getStackInSlot(i).writeToNBT(stackTag); list.appendTag(stackTag); } } tag.setTag("Items", list); tag.setBoolean("adv", isAdv); super.writeToNBT(tag); } public void updateEntity() { if(this.getBlock() != null){ Elevator block = (Elevator)worldObj.getBlock(this.xCoord, this.yCoord, this.zCoord); block.setBlock(this.getBlock()); worldObj.scheduleBlockUpdate(this.xCoord, this.yCoord, this.zCoord, block, 1); } } public boolean canUpdate() { return true; } public String getName(){ if(this.name != null){ return this.name; }else{ return null; } } public boolean isAdv(){ return this.isAdv; } public Block getBlock(){ if(this.getStackInSlot(0) != null){ return Block.getBlockFromItem(this.getStackInSlot(0).getItem()); } return null; } public boolean isNamed(){ if(this.name == null){ return false; }else{ return true; } } public Packet getDescriptionPacket(){ NBTTagCompound tag = new NBTTagCompound(); writeToNBT(tag); return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, tag); } public void onDataPacket(NetworkManager networkManager, S35PacketUpdateTileEntity packet){ readFromNBT(packet.func_148857_g()); } @Override public int getSizeInventory() { return 1; } @Override public ItemStack getStackInSlot(int index) { if (index < 0 || index >= this.getSizeInventory()) return null; return this.inventory[index]; } @Override public ItemStack decrStackSize(int index, int count) { if (this.getStackInSlot(index) != null) { ItemStack itemstack; if (this.getStackInSlot(index).stackSize <= count) { itemstack = this.getStackInSlot(index); this.setInventorySlotContents(index, null); this.markDirty(); return itemstack; } else { itemstack = this.getStackInSlot(index).splitStack(count); if (this.getStackInSlot(index).stackSize <= 0) { this.setInventorySlotContents(index, null); } else { //Just to show that changes happened this.setInventorySlotContents(index, this.getStackInSlot(index)); } this.markDirty(); return itemstack; } } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int index) { ItemStack stack = this.getStackInSlot(index); this.setInventorySlotContents(index, null); return stack; } @Override public void setInventorySlotContents(int index, ItemStack stack) { if(index < 0 || index >= this.getSizeInventory()) return; if(stack != null && stack.stackSize > this.getInventoryStackLimit()) stack.stackSize = this.getInventoryStackLimit(); if(stack != null && stack.stackSize == 0) stack = null; this.inventory[index] = stack; this.markDirty(); } @Override public String getInventoryName() { return "container.elevator_inventory"; } @Override public boolean hasCustomInventoryName() { return false; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) == this && player.getDistanceSq(this.xCoord + 0.5, this.yCoord + 0.5, this.zCoord + 0.5) <= 64; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int index, ItemStack stack) { if(Block.getBlockFromItem(stack.getItem()) != null && (Block.getBlockFromItem(stack.getItem())).isBlockNormalCube()){ return true; } return false; } } if you need any other files, like from the GUI or what not, I will also post them. But these are the ones that deal with the textures. Quote
Draco18s Posted July 14, 2016 Posted July 14, 2016 See all this stuff? private boolean isAdv = false; private Block block; private TileEntityElevator tile; You can't do that. Blocks are singleton classes. You must store this information in the TE. You should never ever be storing a reference to the TileEntity in your block class either, that already tells you you have no idea WTF you're doing. Also, don't use BlockContainer. Override hasTileEntity and createNewTileEntity instead. Also... public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { try{ return new TileEntityElevator(); }catch (Exception var3){ throw new RuntimeException(var3); } } WHY ARE YOU DOING THIS. You catch an exception for the sole purpose of throwing it again? Why? Not to mention that creating a new TE can't even throw an exception! Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 14, 2016 Author Posted July 14, 2016 I am trying to learn java and how to code mods for minecraft, sadly there is no school that teaches this to a person who has no money, at least none that I know of. I have some idea of how java works, but yes I am not perfect, If I was I would not need assistance. How would I get Information from the TileEntity inside the Block class for rendering the Texture Differently, I had looked through methods and didnt see any. Any help is welcomed. Quote
Draco18s Posted July 14, 2016 Posted July 14, 2016 http://www.sololearn.com/Course/Java/ Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 14, 2016 Author Posted July 14, 2016 Ok, im going through the tutorials for java, Thanks for that. How would you use a Block in an Inventory to set the block textures of the container. Because I think im going about it wrong. Quote
Draco18s Posted July 14, 2016 Posted July 14, 2016 I would store the block inside the TileEntity and then get the TileEntity from world.getTileEntityAt Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 15, 2016 Author Posted July 15, 2016 and how would you use the block from the tile entity to set the texture? Quote
Draco18s Posted July 15, 2016 Posted July 15, 2016 Override public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) Get the TileEntity Get the block stored in the TE Ask it what it's icon is Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 15, 2016 Author Posted July 15, 2016 I knew all that, im having the issue of getting the tile entity there to make the textures Quote
Draco18s Posted July 15, 2016 Posted July 15, 2016 world.getTileEntityAt ? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 15, 2016 Author Posted July 15, 2016 how exactly would I get the world in the Block to get the textures from the tile entity. I know about: return ((TileEntityElevator)world.getTileEntity(x, y, z)).getBlock().getIcon(side, meta); but how do you get the world? I wasnt aware about this IBlockAccess being the world. I will try it. Quote
Elrol_Arrowsend Posted July 15, 2016 Author Posted July 15, 2016 Now im just having an issue with the block updating to show the texture, im using this: @Override public void closeInventory() { this.worldObj.scheduleBlockUpdate(xCoord, yCoord, zCoord, worldObj.getBlock(xCoord, yCoord, zCoord), 1); } but it doesnt seem to work Quote
Draco18s Posted July 15, 2016 Posted July 15, 2016 I wasnt aware about this IBlockAccess being the world. I will try it. IBlockAccess is "world-lite" or "read-only World." World implements IBlockAcess and IBlockAccess provides access to blocks (every single getter). Now im just having an issue with the block updating to show the texture, im using this: @Override public void closeInventory() { this.worldObj.scheduleBlockUpdate(xCoord, yCoord, zCoord, worldObj.getBlock(xCoord, yCoord, zCoord), 1); } but it doesnt seem to work Please look at world#setBlock to know what that last parameter does. 1 is not the right value to pass. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Elrol_Arrowsend Posted July 15, 2016 Author Posted July 15, 2016 it was an error, I put 2 instead, and it still didnt update the block. Quote
Draco18s Posted July 16, 2016 Posted July 16, 2016 3. You should be passing a 3. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.