Jump to content

[1.6.1] onBlockActivated doesn't work anymore!


KeeganDeathman
 Share

Recommended Posts

Hi again!

I have some blocks with custom tile entities rendering some models, but they both have onBlockActivated booleans, but when I right click absolutely nothing happens! and I know that on one of them I have it coded right cause it worked before i implemented the TileEnity!

Help?

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

Link to comment
Share on other sites

okay, if your wondering why I have a modloader function its because I cant get the forge one to work for me, mainly cause i cant understand it.

BlockTowerFloorBase:

package codelyoko;

import net.minecraft.block.*;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.src.ModLoader;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockTowerFloorBase extends BlockContainer
implements ITileEntityProvider
{

public BlockTowerFloorBase(int id, Material par1Material)
{

	super(id, par1Material);
	this.setCreativeTab(Lyoko.tabLyoko);

}
@Override
public TileEntity createNewTileEntity(World world)
{
    return new TileEntityTowerFloor(); //Rename to your tile entity 
}

@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
{
    TileEntity tile = world.getBlockTileEntity(x, y, z);  // Once again rename to your tile entity.
    if (tile instanceof TileEntityTowerFloor  && ((TileEntityTowerFloor)tile).shouldRender) {
        return AxisAlignedBB.getBoundingBox(x - 1, y - 1, z - 1, x + 1, y + 1, z + 1);
    }
    return super.getCollisionBoundingBoxFromPool(world, x, y, z);
}

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
{
	par1World.setBlock(par2+1, par3, par4, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2+1, par3, par4+1, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2+1, par3, par4-1, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2, par3, par4+1, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2, par3, par4-1, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2-1, par3, par4+1, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2-1, par3, par4, Lyoko.TowerFloorGagBlock.blockID, 0, 2);
	par1World.setBlock(par2-1, par3, par4-1, Lyoko.TowerFloorGagBlock.blockID, 0, 2); 
	ModLoader.openGUI(par5EntityPlayer, new GUITowerFloorCreated());
	System.out.print("complete");
	return true;
}

//This will tell minecraft not to render any side of our cube.
public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
{
	return false;
}

//And this tell it that you can see through this block, and neighbor blocks should be rendered.
public boolean isOpaqueCube()
{
	return false;
}


}

 

BlockTowerConsole:

package codelyoko;

import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.src.ModLoader;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockTowerConsole extends Block
implements ITileEntityProvider{

public BlockTowerConsole(int par1, Material par2Material) {
	super(par1, par2Material);
	this.setCreativeTab(Lyoko.tabLyoko);
}

@Override
public TileEntity createNewTileEntity(World world) {
	return new TileEntityTowerConsoleBlock();
}

public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l)
{
	return false;
}

//And this tell it that you can see through this block, and neighbor blocks should be rendered.
public boolean isOpaqueCube()
{
	return false;
}

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5player){
	ModLoader.openGUI(par5player, new GuiTowerConsole());
	return true;
}
}

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

Link to comment
Share on other sites

The modloader command will be what's screwing it up. Try adding a print line at the start of the method too, saying "begin". Also try temporarily commenting out or removing the modloader code

 

The Forge version of the openGUI is:

 

 

                player.openGui([your mod ID].instance, 0, world, x, y, z);

 

The 0 is the ID of the GUI, and you need a GUI handler too. This one is just copied straight out of my mod, so you'll have to modify it to suit you:

 

package co.uk.silvania.city;

import co.uk.silvania.city.tileentities.ContainerATM;
import co.uk.silvania.city.tileentities.GuiATM;
import co.uk.silvania.city.tileentities.TileEntityATMEntity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {


	public GuiHandler() {
	}
        @Override
        public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
        	switch(id) {
        	case 0: {
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
                if(tileEntity instanceof TileEntityATMEntity) {
                        return new ContainerATM(player.inventory, (TileEntityATMEntity) tileEntity);
                }	
        	}
        }
		return null;	
    }

        @Override
        public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) {
        	switch(id) {
        	case 0: {
                TileEntity tileEntity = world.getBlockTileEntity(x, y, z);
                if(tileEntity instanceof TileEntityATMEntity) {
                        return new GuiATM(player.inventory, (TileEntityATMEntity) tileEntity, world, x, y, z);
                }	
        	}
        }
		return null;
    }
}

 

And finally in the main class, again copied from the mod I have open at the time:

    @Instance("FlenixCities")
    public static GuiHandler roadsGuiHandler = new GuiHandler();

    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    	NetworkRegistry.instance().registerGuiHandler(this, roadsGuiHandler);
    }

 

 

You may need some networking code too, I can't help with that.

 

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

I don't remember how often this has been said. Whenever you (intend to) override a method (if you don't know what this is learn java first) mark it with @Override! If that gives you an error removing the annotation will NOT resolve anything. It just means that you are not overriding ANYTHING, even though you want to.

The method signature (again, learn java if you don't know what this is) has changed for onBlockActivated from 1.5 => 1.6.

Link to comment
Share on other sites

::), not sure if @Override can be ran inside a method but,

any way, I tried to use a System.print.out("Begin") at the begining f the method and nothing showed up still, and I tried to @Override, and it threw an error.

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

Link to comment
Share on other sites

::), not sure if @Override can be ran inside a method but,

any way, I tried to use a System.print.out("Begin") at the begining f the method and nothing showed up still, and I tried to @Override, and it threw an error.

 

I don't know what you mean by "inside a method" - Your override should be like this:

        @Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer)
{
	blah
        }

 

I never noticed it wasn't there before :P

 

In relation to containers; you need to have one. BlockContainer is what you need to use for rendering models.

width=463 height=200

http://s13.postimg.org/z9mlly2av/siglogo.png[/img]

My mods (Links coming soon)

Cities | Roads | Remula | SilvaniaMod | MoreStats

Link to comment
Share on other sites

Okay, is i okay to have a "blank" container?

and I mean that thier cant be say public void blah(parameters){

@override

blahblah

}

so yeah, and I tried putting an override on onBlockAtivated, and it said no.

 

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

Link to comment
Share on other sites

Sorry to say but this makes me angry like f***.

You added the @Override and it spits out an error. I talked about that EXACT situation and how to fix it. What you did is exactly what will NOT fix it (you removed the annotation again).

You can't expect to make a proper mod without the slightest of efforts to learn java. This is absolute basic java knowledge.

Link to comment
Share on other sites

Okay, well get this, the @Override annotation you told me to put in, eclipse tole me to either remove it, or edit a base file!

So you need to check your stuff, cause you're being the dumbest modder ever if you think the answer is to edit a base file.

[shadow=gray,left][glow=red,2,300]KEEGAN[/glow][/shadow]

Link to comment
Share on other sites

YOU are the dumbest modder if you don't know such simple things about java. Eclipse is a very good IDE, but it can't help you if you don't know a f*** about java.

Eclipse suggest changing the base file to "fix" the discrepancy between your method signature and the signature in your parent class. If you can't edit the parent class (which you shouldn't) guess what you need to change.

Dude, go learn java before you start modding.

Link to comment
Share on other sites

Figured this should be cleaned up just in case someone needs the info  ;)

 

KeeganDeathman was using:

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5player)

 

While this use to work the parameters have changed in 1.6 and is now viewed as a new method in KeeganDeathman's code, one which Minecraft never calls.

 

As diesieben07 pointed out, every time you override an existing method mark it with @Override .

With an @Override Elicpse will inform you the old method doesn't exist, this is a big hint to you to find the replacement and fix your code.

 

in this case onBlockActivated changed from

onBlockActivated(World, int, int, int, EntityPlayer)

to

onBlockActivated(World, int, int, int, EntityPlayer, int, float, float, float)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Never mind, I think finally found the list of Forge tags in the extended libraries of my workspace. I should be all set with that now.
    • This mod does it, so you could try looking at their code to get an idea of how they do it. Or, just use their mod. https://www.curseforge.com/minecraft/mc-mods/shutup-experimental-settings
    • And here is the cmd panel of the server         2023-01-29 20:12:16,231 main WARN Advanced terminal features are not available in this environment [20:12:16] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgeserver, --fml.forgeVersion, 44.1.8, --fml.mcVersion, 1.19.3, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20221207.122022, nogui] [20:12:16] [main/INFO] [cp.mo.mo.Launcher/MODLAUNCHER]: ModLauncher 10.0.8+10.0.8+main.0ef7e830 starting: java version 19.0.2 by Oracle Corporation; OS Windows 10 arch amd64 version 10.0 [20:12:16] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/Muharrem/Desktop/FTB%20Servers/%7Bcurrent%20directory%202%5D/libraries/org/spongepowered/mixin/0.8.5/mixin-0.8.5.jar%2364!/ Service=ModLauncher Env=SERVER [20:12:16] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file C:\Users\Muharrem\Desktop\FTB Servers\{current directory 2]\libraries\net\minecraftforge\fmlcore\1.19.3-44.1.8\fmlcore-1.19.3-44.1.8.jar is missing mods.toml file [20:12:16] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file C:\Users\Muharrem\Desktop\FTB Servers\{current directory 2]\libraries\net\minecraftforge\javafmllanguage\1.19.3-44.1.8\javafmllanguage-1.19.3-44.1.8.jar is missing mods.toml file [20:12:16] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file C:\Users\Muharrem\Desktop\FTB Servers\{current directory 2]\libraries\net\minecraftforge\lowcodelanguage\1.19.3-44.1.8\lowcodelanguage-1.19.3-44.1.8.jar is missing mods.toml file [20:12:16] [main/WARN] [ne.mi.fm.lo.mo.ModFileParser/LOADING]: Mod file C:\Users\Muharrem\Desktop\FTB Servers\{current directory 2]\libraries\net\minecraftforge\mclanguage\1.19.3-44.1.8\mclanguage-1.19.3-44.1.8.jar is missing mods.toml file [20:12:17] [main/INFO] [ne.mi.fm.lo.mo.JarInJarDependencyLocator/]: No dependencies to load found. Skipping! [20:12:18] [main/INFO] [cp.mo.mo.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgeserver' with arguments [nogui] [20:12:23] [main/INFO] [minecraft/DataFixers]: Building unoptimized datafixer [20:12:25] [modloading-worker-0/INFO] [ne.mi.co.ForgeMod/FORGEMOD]: Forge mod loading, version 44.1.8, for MC 1.19.3 with MCP 20221207.122022 [20:12:25] [modloading-worker-0/INFO] [ne.mi.co.MinecraftForge/FORGE]: MinecraftForge v44.1.8 Initialized [20:12:25] [Forge Version Check/INFO] [ne.mi.fm.VersionChecker/]: [forge] Starting version check at https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json [20:12:26] [Forge Version Check/INFO] [ne.mi.fm.VersionChecker/]: [forge] Found status: AHEAD Current: 44.1.8 Target: null [20:12:26] [main/INFO] [mojang/YggdrasilAuthenticationService]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [20:12:27] [main/WARN] [minecraft/VanillaPackResourcesBuilder]: Assets URL 'union:/C:/Users/Muharrem/Desktop/FTB%20Servers/%7Bcurrent%20directory%202%5D/libraries/net/minecraft/server/1.19.3-20221207.122022/server-1.19.3-20221207.122022-srg.jar%23101!/assets/.mcassetsroot' uses unexpected schema [20:12:27] [main/WARN] [minecraft/VanillaPackResourcesBuilder]: Assets URL 'union:/C:/Users/Muharrem/Desktop/FTB%20Servers/%7Bcurrent%20directory%202%5D/libraries/net/minecraft/server/1.19.3-20221207.122022/server-1.19.3-20221207.122022-srg.jar%23101!/data/.mcassetsroot' uses unexpected schema [20:12:29] [main/INFO] [minecraft/RecipeManager]: Loaded 7 recipes [20:12:29] [main/INFO] [minecraft/AdvancementList]: Loaded 1179 advancements [20:12:30] [Server thread/INFO] [minecraft/DedicatedServer]: Starting minecraft server version 1.19.3 [20:12:30] [Server thread/INFO] [minecraft/DedicatedServer]: Loading properties [20:12:30] [Server thread/INFO] [minecraft/DedicatedServer]: Default game type: SURVIVAL [20:12:30] [Server thread/INFO] [minecraft/MinecraftServer]: Generating keypair [20:12:30] [Server thread/INFO] [minecraft/DedicatedServer]: Starting Minecraft server on 78.174.226.175:25565 [20:12:30] [Server thread/INFO] [minecraft/ServerConnectionListener]: Using default channel type [20:12:30] [Server thread/WARN] [minecraft/DedicatedServer]: **** FAILED TO BIND TO PORT! [20:12:30] [Server thread/WARN] [minecraft/DedicatedServer]: The exception was: java.net.BindException: Cannot assign requested address: bind [20:12:30] [Server thread/WARN] [minecraft/DedicatedServer]: Perhaps a server is already running on that port? [20:12:30] [Server thread/ERROR] [minecraft/MinecraftServer]: Encountered an unexpected exception java.lang.IllegalStateException: Failed to initialize server         at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:637) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at java.lang.Thread.run(Thread.java:1589) ~[?:?] {} [20:12:30] [Server thread/FATAL] [ne.mi.co.ForgeMod/]: Preparing crash report with UUID 9ad7a420-98e0-4be3-be96-3783b966a471 [20:12:30] [Server thread/ERROR] [minecraft/MinecraftServer]: This crash report has been saved to: C:\Users\Muharrem\Desktop\FTB Servers\{current directory 2]\.\crash-reports\crash-2023-01-29_20.12.30-server.txt [20:12:30] [Server thread/INFO] [minecraft/MinecraftServer]: Stopping server [20:12:30] [Server thread/INFO] [minecraft/MinecraftServer]: Saving worlds [20:12:30] [Server thread/ERROR] [minecraft/MinecraftServer]: Exception stopping the server java.lang.NullPointerException: Cannot invoke "net.minecraft.server.level.ServerLevel.m_6857_()" because "serverlevel2" is null         at net.minecraft.server.MinecraftServer.m_129885_(MinecraftServer.java:513) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at net.minecraft.server.MinecraftServer.m_7041_(MinecraftServer.java:586) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at net.minecraft.server.dedicated.DedicatedServer.m_7041_(DedicatedServer.java:498) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:692) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}         at java.lang.Thread.run(Thread.java:1589) ~[?:?] {} Press any key to continue . . .
    • Hello my server crashes. Here is the crash log   ---- Minecraft Crash Report ---- // Hi. I'm Minecraft, and I'm a crashaholic. Time: 2023-01-29 20:06:27 Description: Exception in server tick loop java.lang.IllegalStateException: Failed to initialize server     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:637) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.19.3-20221207.122022-srg.jar%23101!/:?] {re:classloading,pl:accesstransformer:B}     at java.lang.Thread.run(Thread.java:1589) ~[?:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.19.3     Minecraft Version ID: 1.19.3     Operating System: Windows 10 (amd64) version 10.0     Java Version: 19.0.2, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation     Memory: 787282120 bytes (750 MiB) / 1059061760 bytes (1010 MiB) up to 4294967296 bytes (4096 MiB)     CPUs: 8     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Core(TM) i5-10300H CPU @ 2.50GHz     Identifier: Intel64 Family 6 Model 165 Stepping 2     Microarchitecture: unknown     Frequency (GHz): 2.50     Number of physical packages: 1     Number of physical CPUs: 4     Number of logical CPUs: 8     Graphics card #0 name: NVIDIA GeForce GTX 1650 Ti     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x1f95     Graphics card #0 versionInfo: DriverVersion=31.0.15.1659     Graphics card #1 name: Intel(R) UHD Graphics     Graphics card #1 vendor: Intel Corporation (0x8086)     Graphics card #1 VRAM (MB): 1024.00     Graphics card #1 deviceId: 0x9bc4     Graphics card #1 versionInfo: DriverVersion=26.20.100.7642     Memory slot #0 capacity (MB): 16384.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Virtual memory max (MB): 25467.80     Virtual memory used (MB): 16976.89     Swap memory total (MB): 9216.00     Swap memory used (MB): 282.24     JVM Flags: 1 total; -Xmx4G     Server Running: true     Data Packs: vanilla, mod:forge     Enabled Feature Flags: minecraft:vanilla     World Generation: Experimental     Is Modded: Definitely; Server brand changed to 'forge'     Type: Dedicated Server (map_server.txt)     ModLauncher: 10.0.8+10.0.8+main.0ef7e830     ModLauncher launch target: forgeserver     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.3.jar eventbus PLUGINSERVICE          fmlloader-1.19.3-44.1.8.jar slf4jfixer PLUGINSERVICE          fmlloader-1.19.3-44.1.8.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.19.3-44.1.8.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.19.3-44.1.8.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.19.3-44.1.8.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.8.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.8.jar fml TRANSFORMATIONSERVICE      FML Language Providers:          minecraft@1.0         lowcodefml@null         javafml@null     Mod List:          server-1.19.3-20221207.122022-srg.jar             |Minecraft                     |minecraft                     |1.19.3              |DONE      |Manifest: NOSIGNATURE         forge-1.19.3-44.1.8-universal.jar                 |Forge                         |forge                         |44.1.8              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90     Crash Report UUID: 0d2db5a7-3a08-4956-9f06-c2c0e49cb878     FML: 44.1     Forge: net.minecraftforge:44.1.8
    • The information you're looking for is found here, on Loot Tables: https://minecraft.fandom.com/wiki/Loot_table And here, on Predicates: https://minecraft.fandom.com/wiki/Predicate So specifically, in this case, the Table Bonus is the probability parameters being set for the drops in regards to the Fortune enchantment. Survives explosion sets the probability of getting the block when an explosion occurs within the built in radius. If this isn't set, it's always successful. Not sure what else you need to know, but I'm sure you can find it on those two pages and whatever other links on them.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.