
SteveMCFreak
Members-
Posts
18 -
Joined
-
Last visited
Everything posted by SteveMCFreak
-
[1.8] Getting the chat input and modifying it.
SteveMCFreak replied to SteveMCFreak's topic in Modder Support
Can't you do it in ClientConnectToServerEvent with some sort of net handler intercepting some chat packet? -
[1.8] Getting the chat input and modifying it.
SteveMCFreak replied to SteveMCFreak's topic in Modder Support
Heres the thing, If I did this on the server side every single server would have to download forge and my mod on it and I can tell you already no one is gonna do that. It needs to be on the CLIENT side. Sorry if I didn't make it clearer in the first post. -
Hello, I am currently coding a auto correct mod that is suppose to read the message the player types (after they press enter), and modify or cancel it. The mod is almost finished all I need now is to figure out how to modify the chat input the client enters. I have tried google, no luck with that so I came here.
-
No thanks
-
WorldProviderSettings is not a class. I've tried WorldProvider and that didn't work either.
-
I have some ideas for some new ores, I would like a ore to replicate the generation as one of the ores in minecraft, for that I would need to know the classes that generate the ore. My question is where are these classes located?
-
Hello, I was wondering if their is a way to get all the blocks in a Biome.
-
Hey, I have an idea! How about you fuck off this post. Since you are no help at all.
-
It actually is. Just read threw the class. It isn't that hard you know.
-
That didn't help nor solve anything.
-
Can you not read? I clearly said the problem was in onPlacedBlockBy.
-
Class: public class BlockNuke extends Block { @SideOnly(Side.CLIENT) private IIcon top; @SideOnly(Side.CLIENT) private IIcon bottom; @SideOnly(Side.CLIENT) private IIcon front; @SideOnly(Side.CLIENT) private IIcon side; private static final String __OBFID = "CL_00000324"; public BlockNuke() { super(Material.grass); this.setStepSound(soundTypeGrass); } /** * Gets the block's texture. Args: side, meta */ @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ if (side == 1) return this.top; else if (side == 0) return this.bottom; else if (metadata == 2 && side == 2) return this.front; else if (metadata == 3 && side == 5) return this.front; else if (metadata == 0 && side == 3) return this.front; else if (metadata == 1 && side == 4) return this.front; else return this.blockIcon; } /** * Called whenever the block is added into the world. Args: world, x, y, z */ public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_) { super.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_); if (p_149726_1_.isBlockIndirectlyGettingPowered(p_149726_2_, p_149726_3_, p_149726_4_)) { this.onBlockDestroyedByPlayer(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_, 1); p_149726_1_.setBlockToAir(p_149726_2_, p_149726_3_, p_149726_4_); } } @Override public void onBlockPlacedBy(World par1World, int x, int y, int z, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack) { int whichDirectionFacing = MathHelper .floor_double((double) (par5EntityLivingBase.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3; par1World.setBlockMetadataWithNotify(x, y, z, whichDirectionFacing, 2); } /** * Lets the block know when one of its neighbor changes. Doesn't know which * neighbor changed (coordinates passed are their own) Args: x, y, z, * neighbor Block */ public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_) { if (p_149695_1_.isBlockIndirectlyGettingPowered(p_149695_2_, p_149695_3_, p_149695_4_)) { this.onBlockDestroyedByPlayer(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, 1); p_149695_1_.setBlockToAir(p_149695_2_, p_149695_3_, p_149695_4_); } } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random p_149745_1_) { return 1; } /** * Called upon the block being destroyed by an explosion */ public void onBlockDestroyedByExplosion(World p_149723_1_, int p_149723_2_, int p_149723_3_, int p_149723_4_, Explosion p_149723_5_) { if (!p_149723_1_.isRemote) { EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(p_149723_1_, (double) ((float) p_149723_2_ + 0.5F), (double) ((float) p_149723_3_ + 0.5F), (double) ((float) p_149723_4_ + 0.5F), p_149723_5_.getExplosivePlacedBy()); entitytntprimed.fuse = p_149723_1_.rand.nextInt(entitytntprimed.fuse / 4) + entitytntprimed.fuse / 8; p_149723_1_.spawnEntityInWorld(entitytntprimed); } } /** * Called right before the block is destroyed by a player. Args: world, x, * y, z, metaData */ public void onBlockDestroyedByPlayer(World p_149664_1_, int p_149664_2_, int p_149664_3_, int p_149664_4_, int p_149664_5_) { this.func_150114_a(p_149664_1_, p_149664_2_, p_149664_3_, p_149664_4_, p_149664_5_, (EntityLivingBase) null); } public void func_150114_a(World p_150114_1_, int p_150114_2_, int p_150114_3_, int p_150114_4_, int p_150114_5_, EntityLivingBase p_150114_6_) { if (!p_150114_1_.isRemote) { if ((p_150114_5_ & 1) == 1) { EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(p_150114_1_, (double) ((float) p_150114_2_ + 0.5F), (double) ((float) p_150114_3_ + 0.5F), (double) ((float) p_150114_4_ + 0.5F), p_150114_6_); p_150114_1_.spawnEntityInWorld(entitytntprimed); p_150114_1_.playSoundAtEntity(entitytntprimed, "game.tnt.primed", 1.0F, 1.0F); } } } /** * Called upon block activation (right click on the block.) */ public boolean onBlockActivated(World p_149727_1_, int p_149727_2_, int p_149727_3_, int p_149727_4_, EntityPlayer p_149727_5_, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if (p_149727_5_.getCurrentEquippedItem() != null && p_149727_5_.getCurrentEquippedItem().getItem() == Items.flint_and_steel) { this.func_150114_a(p_149727_1_, p_149727_2_, p_149727_3_, p_149727_4_, 1, p_149727_5_); p_149727_1_.setBlockToAir(p_149727_2_, p_149727_3_, p_149727_4_); p_149727_5_.getCurrentEquippedItem().damageItem(1, p_149727_5_); return true; } else { return super.onBlockActivated(p_149727_1_, p_149727_2_, p_149727_3_, p_149727_4_, p_149727_5_, p_149727_6_, p_149727_7_, p_149727_8_, p_149727_9_); } } /** * Triggered whenever an entity collides with this block (enters into the * block). Args: world, x, y, z, entity */ public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) { if (p_149670_5_ instanceof EntityArrow && !p_149670_1_.isRemote) { EntityArrow entityarrow = (EntityArrow) p_149670_5_; if (entityarrow.isBurning()) { this.func_150114_a(p_149670_1_, p_149670_2_, p_149670_3_, p_149670_4_, 1, entityarrow.shootingEntity instanceof EntityLivingBase ? (EntityLivingBase) entityarrow.shootingEntity : null); p_149670_1_.setBlockToAir(p_149670_2_, p_149670_3_, p_149670_4_); } } } /** * Return whether this block can drop from an explosion. */ public boolean canDropFromExplosion(Explosion p_149659_1_) { return false; } @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister reg) { this.blockIcon = reg.registerIcon("explosives:nuke_side"); top = reg.registerIcon("explosives:nuke_top"); bottom = reg.registerIcon("explosives:nuke_bottom"); front = reg.registerIcon("explosives:nuke_front"); } Problem: The block randomly turns into TNT when I break it. I've tried commenting out onBlockPlacedBy and then it didn't randomly explode when I break it. I need the onBlockPlacedBy function. Why is onBlockPlacedBy causing this and how can I use it without this happening?