Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


Forge Modder
  • Posts

  • Joined

  • Last visited

Posts posted by Paul17041993

  1. so then why does build work fine but the run-commands not? and commenting out that line just leaves everything else bar .class files being copied twice...


    edit; no, the build scripts don't verify files before handling them, deleting the entire build directory fixed that and all files are copied correctly...

  2. anyone else getting this? or anyone that isn't could you mention what forge package you're using please? I cant for my life figure out how this is actually happening so I can only think that the runClient task/s are broken in the current version. Standard build works perfectly fine so I'm currently stuck having to copy the jar to a test client and do without any debugging...


    edit; oh yea, and its completely independent on intelliJ (identical results via command-line) and I have wiped and re-added the gradle files and folders repeatedly...

  3. When running the runClient task in intelliJ, the build process seems to be run twice, or at least all the files are copied to the jar twice, and cause the client to crash on start. However running the standard build task will copy the files correctly...




    buildscript {

        repositories {


            maven {

                name = "forge"

                url = "http://files.minecraftforge.net/maven"


            maven {

                name = "sonatype"

                url = "https://oss.sonatype.org/content/repositories/snapshots/"



        dependencies {

            classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'




    apply plugin: 'forge'


    version = ""

    group= "com.paul.powinvert"

    archivesBaseName = "powinvert"


    minecraft {

    version = "1.7.10-"



    //Optional: change the project structure





    srcDirs 'src'

    srcDirs 'api'




    srcDirs 'resources'






        // this will ensure that this task is redone when the versions change.

        inputs.property "version", project.version

        inputs.property "mcversion", project.minecraft.version


        // replace stuff in mcmod.info, nothing else

        from(sourceSets.main.resources.srcDirs) {

            include 'mcmod.info'


            // replace version and mcversion

            expand 'version':project.version, 'mcversion':project.minecraft.version



        // copy everything else, thats not the mcmod.info

        from(sourceSets.main.resources.srcDirs) {

            exclude 'mcmod.info'




    sourceSets {

        main {

            output.resourcesDir = output.classesDir




  4. mmyes but how do I go about inserting a call into it for a static class? not an entity or tile, I need a static function call into my engine to initiate its own ticks in time with minecraft's, otherwise I'm left with a trigger system on tile/entity updates that isn't exactly efficient...


    being java I would expect an event interface to implement and to then register this implementation, similar to blocks etc, however I haven't been able to find anything relating to this anywhere...

  5. ok in short, I'm going to have a custom (threaded) little engine to run to handle entity network calculations and management, instead of running with the tileentities and being a tick bloater, I can set up a way to run the cycles on-call with tileentity updates BUT Id prefer an event call before and/or after each tick on the server;


    is there an interface that allows me to add a custom event function for the start and/or end of each tick?


    Ive looked through a lot of the base classes and haven't really found anything I could use...

  6. yea pretty sure this isn't in vanilla code anywhere, so your simple solution would be to make the block check for items close enough to it and move them where you want, similar to how a hopper grabs items above it.


    other option may be to make your own collision code that checks specifically if the entities are itemstacks, but I don't think this would be very simple or worthwhile to get working...

  7. I believe the tessellator has to be set to a certain mode, or not used at all even, as it does its own translation from world coordinates to screen coordinates, of which you would have noticed means they will never face you unless you did some kooky translation math to counter-act the translation...


    calling startDrawing(int) instead of startDrawingQuads() could give this option, 7 is the quads mode, but I am unsure what the other modes are and if it changes the translation at all, unfortunately I'm only relatively new to how minecraft does things so there isn't much I can help you with...

  8. ok yea refactored my ore system to use a container class (boo java no has structs), changed the block to be actual Blocks instead of VPOres (still initialized with VPOres though) and the generator now generates correctly, so ie;


    public static final VPOre copper_ore = new VPOreCopper();  will fail


    public static final Block copper_ore = new VPOreCopper();    will generate correctly


    of course if your code depended on the block being a specific derivative, refactor using containers or similar instead.


    as for the textures and sporadic mod behavior, I can only assume these are forge bugs that are still getting fixed...

  9. ok I have a mix of problems I cant for my life seem to figure out why they are happening, even tried updating to #1013 from #998 with no effect, I'm mostly new with making an actual minecraftforge mod but I'm pretty sure I'm doing things at least mostly correctly...



    textures for everything don't load at initial start, so everything shows as the purple and black filler texture, though of course vanilla stuff is perfectly fine, if I go to resourcepacks and click done to trigger a reload the textures are then loaded correctly and everything looks perfectly fine.


    ore generation; [FIXED]; yea the block class you enter must be a Block, or it odly dumps it and doesn't even spit an error message...

    I have a generator and ores all set up, but very strangely,  gen.generate(world, random, x, y, z); instead of generating the ore in the world, generates holes, on testing worlds I can see the various perfectly shaped holes where ore should be, but its just filled with air and black surfaces from the lighting not being updated, however, if I just use a basic block replace it all works fine (albeit, only whatever shape I make the algorithm for).


    mod items and blocks are left out of a world if it is created after loading or deleting another one;

    ok, if I have a test world, close the game, load the game, select that world and delete it, then generate a new test world, inside this world will be nothing from my mod bar the creative tab, cant even spawn the blocks manually, and this world stays like this permanently, however, starting the game, not touching any other worlds (not even selecting) and creating a new world or loading a world with the mod data already in it, is perfectly fine.


    apart from these above, the blocks and items seem to work fine, I haven't quite gotten to crafting or tile entities yet but the blocks otherwise behave as they should, no crashing or java errors, all my stuff is held in individual static finals just like minecraft does its own blocks, and they are all registered correctly, I even tried preinit instead of init but with the exact same results...


    some parts of my code;

    public class VPOres {
    public static final VPOre copper_ore 	= new VPOreCopper();
    public static void register()
    static void regOre(VPOre ore)
    	GameRegistry.registerBlock(ore, ore.func_149739_a());


    public class VPGeneratorOre implements IWorldGenerator 
    static Random random = new Random();
    static Vector<VPOre> orelist = new Vector<VPOre>();
    static VPOre activeOreList[];
    static WorldGenMinable activeGenList[];
    static int oreCount;
    public static void registerOre(VPOre ore)
    	System.out.println(ore.func_149739_a() + " added to ore generation");
    public static void finaliseOreSet()
    	//activeOreList = orelist.toArray();
    	oreCount = orelist.size();
    	activeOreList = new VPOre[oreCount];
    	activeGenList = new WorldGenMinable[oreCount];
    	for(int i = 0; i < oreCount; ++i)
    		VPOre ore = orelist.elementAt(i);
    		activeOreList[i] = orelist.elementAt(i);
    		activeGenList[i] = new WorldGenMinable(ore, ore.blobGenSize);
    	System.out.println("ore list finalised!");
        public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
        	for(int i = 0; i < oreCount; ++i)
        		VPOre ore = activeOreList[i];
        		WorldGenMinable gen = activeGenList[i];
        		if(ore.blobGenChunkChance != 0)
        		if(random.nextInt(ore.blobGenChunkChance) == 0)
        			//gen in the chunk
        			int count = 1 + random.nextInt(ore.blobGenCountMax);
        			for(; count > 0; --count)
        				int x = (chunkX * 16) + random.nextInt(16);
        				int y = ore.blobGenHeightMin + random.nextInt(ore.blobGenHeightMax - ore.blobGenHeightMin);
        				int z = (chunkZ * 16) + random.nextInt(16);
        			 	//getBiomeGenForCoords(int par1, int par2)
        				gen.generate(world, random, x, y, z);


    register functions are called in init, generator after the blocks of course, the ore blocks also contain some additional variables for generation alongside the standard block ones, noticable in the generator code, though I don't see how this could affect the generator as standard block replacing works fine, unless it specifically needs a standard block class...?

  10. ok would have edited the previous post but that seems partially broken atm...


    if you add the missing classpathentry below you should be able to use #1013 and compile without it complaining that net and cpw are missing;

    <classpathentry kind="lib" path="C:/Users/*USERNAME*/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-"/>


    replace *USERNAME* with your user, C with whatever drive your users is in (usually C:, but some people like me have it in D:), then you should *hopefully* not have any issues.

  11. basically, after having a bunch of faults in my modding I decided to try updating forge from #998 to a more recent version (#1013), only to find this fault in gradle which I cant get around, attempted ~10 times, ultimately trying on a 100% clean setup (yes I deleted .gradle in my user folder too) with the same result each time...


    ultimate error seems to be;

    Caused by: java.io.IOException: Cannot run program "javac" (in directory "D:\Users\Paul - Admin\Minecraft stuff\Forge Modding\Forge1.7.2\build\tmp\recompForge\sources"): CreateProcess error=2, The system cannot find the file specified

    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:69)

    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified


    t'isnt it meant to point to the JDK directory...?  I tried updating the JDK to u51 as it was on u45 before, though nothing else has had any issues with it...


    full log;

    Powered By MCP:            
    Searge, ProfMobius, Fesh0r,
    R4wk, ZeuX, IngisKahn      
    MCP Data version : unknown
    :downloadClient SKIPPED
    :downloadServer SKIPPED
    :getJavadocs SKIPPED
    :mergeJars SKIPPED
    Applying SpecialSource...
    Applying Exceptor...
    Injecting source info...
    :decompile Corrupted Cache!
    :doFmlPatches Corrupted Cache!
    :remapJar Corrupted Cache!
    :doForgePatches Corrupted Cache!
    :addForgeJavadoc Corrupted Cache!
    extracting sources...
    compiling sources...
    :recompForge FAILED
    FAILURE: Build failed with an exception.
    * What went wrong:
    Execution failed for task ':recompForge'.
    > A problem occurred starting process 'command 'javac''
    * Try:
    Run with --info or --debug option to get more log output.
    * Exception is:
    org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':recompForge'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:283)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:214)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:276)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
    at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:78)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
    at org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:58)
    Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'javac''
    at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:192)
    at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:321)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:88)
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
    Caused by: java.io.IOException: Cannot run program "javac" (in directory "D:\Users\Paul - Admin\Minecraft stuff\Forge Modding\Forge1.7.2\build\tmp\recompForge\sources"): CreateProcess error=2, The system cannot find the file specified
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:69)
    ... 1 more
    Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    ... 2 more
    Total time: 4 mins 4.317 secs


    SOLUTION; you need to add the JDK to your PATH variable, be sure to reboot your computer after too (windows)

    SOLUTION FOR 2ND PROBLEM; see below for the .classpath fix if you need it, fixes net and cpw libraries being missing ;)

  12. not entirely sure if this would be the right area but I don't exactly see a specific place for dev environments...


    after messing about with the files for more then 4 hours, trying to get something working in NetBeans, I cant for my life get everything together, of course I have everything working in eclipse but NetBeans is unable to import the workplace and with all the drastic changes in 1.7 everything is moved about and none of the existing tutorials are of any help...


    so has anyone set up a NetBeans project with the latest forge releases? of course I could just use eclipse but I'd rather not have to meddle with 2 dozen plugins to get it close to industry standards...

  • Create New...

Important Information

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