Jump to content

Vert3xo

Members
  • Posts

    12
  • Joined

  • Last visited

Everything posted by Vert3xo

  1. Do you have any example code for 1.15? Maybe I'll be able to then apply it to older versions myself.
  2. I know, I came up with this: ResourceLocation[] background = new ResourceLocation[]{new ResourceLocation("mod/splash.png")}; ObfuscationReflectionHelper.setPrivateValue(GuiMainMenu.class, (GuiMainMenu) e.gui, background, "titlePanoramaPaths"); e is InitGuiEvent "mod/splash.png" is in "assets/minecraft/mod/splash.png"
  3. Hello, I was wondering how would I go about changing panorama in main menu. I know that there's no reason to mess with the main menu but this seems like a good example to learn how to change other data types than basic Java data types. I tried using ObfuscationReflectionHelper#setPrivateValue but it didn't work because "titlePanoramaPaths" (which I wanted to change to my own image) is "ResourceLocation[]". How can I do this?
  4. I wanted to create a custom splash screen with Forge, nothing fancy just replacing the Mojang logo with custom image. How can I do that?
  5. Hello, so title says it all. I tried creating a mod without @ Mod annotation by extending the main class with DummyModContainer. My code looks like this: TestMod.java (Main class) package me.vert3xo.testmod; import com.google.common.eventbus.EventBus; import net.minecraftforge.fml.common.DummyModContainer; import net.minecraftforge.fml.common.LoadController; import net.minecraftforge.fml.common.ModMetadata; import java.util.Collections; public class TestMod extends DummyModContainer { public static final String MOD_ID = "testmod"; public static final String MOD_NAME = "Test Mod"; public static final String VERSION = "1.0"; public TestMod() { super(new ModMetadata()); ModMetadata meta = getMetadata(); meta.modId = MOD_ID; meta.name = MOD_NAME; meta.version = VERSION; meta.authorList = Collections.singletonList("Vert3xo"); } @Override public boolean registerBus(EventBus bus, LoadController controller) { return true; } } ModLoader.java (implements IFMLLoadingPlugin) package me.vert3xo.testmod; import me.vert3xo.testmod.asm.ClassTransformer; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; import java.util.Map; @IFMLLoadingPlugin.Name("Test Mod") @IFMLLoadingPlugin.MCVersion("1.8.9") public class ModLoader implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return new String[]{ ClassTransformer.class.getName() }; } @Override public String getModContainerClass() { return TestMod.class.getName(); } @Override public String getSetupClass() { return null; } @Override public void injectData(Map<String, Object> data) { } @Override public String getAccessTransformerClass() { return null; } } ClassTransformer.java (implements IClassTransformer) package me.vert3xo.testmod.asm; import net.minecraft.launchwrapper.IClassTransformer; public class ClassTransformer implements IClassTransformer { @Override public byte[] transform(String s, String s1, byte[] bytes) { return new byte[0]; } } And I have also added this to my build.gradle (copied it from MouseDelayFix mod) jar { manifest { attributes("FMLCorePlugin": "me.vert3xo.testmod.ModLoader") } } With this ^ in my build.gradle I can't even start the client, it gives me this error message: Execution failed for task ':runClient'. > Process 'command 'C:\Program Files\Java\jdk1.8.0_241\bin\java.exe'' finished with non-zero exit value 1 For now I don't want this mod to do anything, I just want to see "4 mods loaded" when I run the client. What am I doing wrong (except trying to even do this without much experience)?
  6. So for some time I wanted to learn something more about core mods but I could hardly find anything about them. I realize that for someone as inexperienced as I am it would be stupid to create core mods so this is just for learning purposes. So could anyone explain to me core mods more in depth (what's the difference between normal mod and core mod, when are core mods useful and why would someone want to create them, ...) and/ or link some tutorials? Thanks in advance.
  7. Hello so I've been interested in creating custom Minecraft main menu but I don't have much experience with mod programming. So I started with custom buttons and so far I've almost managed to do what I wanted and I created button with white background and transparency and added colored text. My problem is that when I try to position the button no matter where it is, it's "hitbox" stays where the original button was. I did it on singleplayer button like this: First I disabled the original button and made it invisible (pretty sure it's enough to make it invisible but I also disabled it just to be sure you can't click it) then I added my button using buttonList.add() and to change it's color, shape, etc. I made my own drawButton() method and used drawRect() and drawCentredString() inside this method. Here's my code: @SubscribeEvent public void onInitGui(final GuiScreenEvent.InitGuiEvent e) { if (e.gui instanceof GuiMainMenu) { for (Object b : e.buttonList) { if (((GuiButton) b).id == 14 || ((GuiButton) b).id == 1) { ((GuiButton) b).enabled = false; ((GuiButton) b).visible = false; } } int i = e.gui.height / 4 + 48; e.buttonList.add(new GuiButton(1, e.gui.width / 2 - 100, e.gui.height / 2 - 12, "Test") { @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { final Color color = new Color(255, 255, 255, 127); final FontRenderer font = mc.fontRendererObj; Gui.drawRect(e.gui.width / 4, 500, e.gui.width / 2, 100, color.getRGB()); drawCenteredString(font, "Singleplayer", this.yPosition, this.yPosition, 0x0145D5); } }); } } In this code I disabled Singleplayer and Realms button. Of course events are registered and I see every change I make. I just have that one problem I described above.
  8. This never happened before and now when I try to run Minecraft Client it gives me says: "Error: Could not find or load main class GradleStart" Here is everything I did: First I extracted Forge MDK and ran gradlew.bat setupDecompWorkspace No errors. Then I opened Intellij and clicked "Import Project" using build.gradle. Then I got this (as every time before and it still worked): Cannot determine classpath for resource 'java/sql/SQLException.class' from location 'jrt:/java.sql/java/sql/SQLException.class'. The project uses Gradle 2.7 which is incompatible with IDEA running on Java 10 or newer. See details at https://github.com/gradle/gradle/issues/8431 Possible solution: - Upgrade Gradle wrapper to 4.8.1 version and re-import the project I clicked Upgrade Gradle wrapper and then ran gradlew.bat genIntellijRuns I got some errors here but I figured out that when I deleted .idea folder and ran gradlew.bat idea genIntellijRuns It generated .idea directory for me and ran without errors. Then I just tried to run Minecraft Client and got this error Error: Could not find or load main class GradleStart Any ideas? EDIT: Also I haven't used Eclipse in a long time but I downloaded it just to try if it works and for Eclipse everything worked fine
  9. Hello, how can I create custom main menu in Forge MDK? I am really new to this. I only used MCP where I could just modify MC code. (I want just something basic. Maybe how to change buttons color)
  10. Ok. No need to reply anymore. Reading the docs was enough
  11. Hello, I have a proble while decompiling forge mdk. I also had same proble with MCP so I just increased ram. Also here is error code: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':decompileMc'. > GC overhead limit exceeded * Try: Run with --info or --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':decompileMc'. 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:52) 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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:62) at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110) at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23) at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43) at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37) at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30) at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:155) at org.gradle.internal.Factories$1.create(Factories.java:22) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52) at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:152) at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:33) at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:100) at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:94) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62) at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:94) at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83) at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94) at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43) at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:77) at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:47) at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:51) at org.gradle.launcher.exec.DaemonUsageSuggestingBuildActionExecuter.execute(DaemonUsageSuggestingBuildActionExecuter.java:28) at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43) at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:170) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 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:33) at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) 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:61) Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded at org.jetbrains.java.decompiler.struct.consts.LinkConstant.resolveDescriptor(LinkConstant.java:139) at org.jetbrains.java.decompiler.struct.consts.LinkConstant.initConstant(LinkConstant.java:130) at org.jetbrains.java.decompiler.struct.consts.LinkConstant.resolveConstant(LinkConstant.java:94) at org.jetbrains.java.decompiler.struct.consts.ConstantPool.<init>(ConstantPool.java:102) at org.jetbrains.java.decompiler.struct.StructClass.<init>(StructClass.java:87) at org.jetbrains.java.decompiler.struct.StructClass.<init>(StructClass.java:75) at org.jetbrains.java.decompiler.struct.StructContext.addArchive(StructContext.java:167) at org.jetbrains.java.decompiler.struct.StructContext.addSpace(StructContext.java:100) at org.jetbrains.java.decompiler.struct.StructContext.addSpace(StructContext.java:78) at org.jetbrains.java.decompiler.main.decompiler.BaseDecompiler.addSpace(BaseDecompiler.java:36) at net.minecraftforge.gradle.tasks.ApplyFernFlowerTask.applyFernFlower(ApplyFernFlowerTask.java:98) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219) at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:585) at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:568) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 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) BUILD FAILED
×
×
  • Create New...

Important Information

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