Jump to content

JustinB0406

Members
  • Posts

    11
  • Joined

  • Last visited

Converted

  • URL
    https://www.curseforge.com/minecraft/mc-mods/ramwal

JustinB0406's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. So I got the jar working by copying and pasting GeckoLib's mods.toml into my own. However, I still can't run the mod on my dev environment. It gives this error: [19Aug2021 22:18:10.430] [Render thread/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: File C:\Users\###\OneDrive\Desktop\Ramwal\build\resources\main constructed 1 mods: [ramwal], but had 2 mods specified: [geckolib3, ramwal] [19Aug2021 22:18:10.477] [Render thread/FATAL] [net.minecraftforge.fml.ModLoader/CORE]: Failed to initialize mod containers net.minecraftforge.fml.ModLoadingException: The Mod File C:\Users\###\OneDrive\Desktop\Ramwal\build\resources\main has mods that were not found at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:289) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$11(ModLoader.java:183) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?] at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:185) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$1(ClientModLoader.java:103) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:103) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraft.client.Minecraft.<init>(Minecraft.java:442) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at net.minecraft.client.main.Main.main(Main.java:149) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:52) ~[forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?] at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:108) [forge-1.16.5-36.2.0_mapped_snapshot_20210309-1.16.5-recomp.jar:?]
  2. I am trying to shadow GeckoLib3 into my mod. However, every time I build the jar file and launch Minecraft with it, I get "mods.toml missing metadata for modid geckolib3." How can I fix this? build.gradle: buildscript { repositories { maven { url = 'https://maven.minecraftforge.net' } mavenCentral() gradlePluginPortal() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true classpath 'gradle.plugin.com.github.jengelman.gradle.plugins:shadow:7.0.0' } } apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' version = '1.0.5' group = 'com.justinb.ramwal' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'ramwal' java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8. println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { // The mappings can be changed at any time, and must be in the following format. // Channel: Version: // snapshot YYYYMMDD Snapshot are built nightly. // stable # Stables are built at the discretion of the MCP team. // official MCVersion Official field/method names from Mojang mapping files // // You must be aware of the Mojang license when using the 'official' mappings. // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md // // Use non-default mappings at your own risk. they may not always work. // Simply re-run your setup task after changing the mappings to update your workspace. mappings channel: 'snapshot', version: '20210309-1.16.5' // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Default run configurations. // These can be tweaked, removed, or duplicated as needed. runs { client { workingDirectory project.file('run') // Recommended logging data for a userdev environment // The markers can be changed as needed. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run') // Recommended logging data for a userdev environment // The markers can be changed as needed. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } data { workingDirectory project.file('run') // Recommended logging data for a userdev environment // The markers can be changed as needed. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. args '--mod', 'ramwal', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { examplemod { source sourceSets.main } } } } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { mavenLocal() mavenCentral() maven { url 'https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/' } } configurations { embed compileOnly.extendsFrom(embed) } dependencies { // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. // The userdev artifact is a special name and will get all sorts of transformations applied to it. minecraft 'net.minecraftforge:forge:1.16.5-36.2.0' embed 'software.bernie.geckolib:geckolib-forge-1.16.5:3.0.45' // You may put jars on which you depend on in ./libs or you may define them like so.. // compile "some.group:artifact:version:classifier" // compile "some.group:artifact:version" // Real examples // compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env // compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env // The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. // provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' // These dependencies get remapped to your current MCP mappings // deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev' // For more info... // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } shadowJar { configurations = [project.configurations.embed] dependencies { include(dependency('software.bernie.geckolib:geckolib-forge-1.16.5:3.0.45')) } relocate 'software.bernie', 'com.justinb.ramwal.software.bernie' classifier '' } reobf { shadowJar {} // Reobfuscate the shadowed JAR } // Example for how to get properties into the manifest for reading by the runtime.. jar { manifest { attributes([ "Specification-Title": "ramwal", "Specification-Vendor": "justinb", "Specification-Version": "1.0.5", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } // Example configuration to allow publishing using the maven-publish task // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing //publish.dependsOn('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } } artifacts { archives shadowJar } The crash report: [19Aug2021 19:05:19.883] [Render thread/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: File C:\Users\###\AppData\Roaming\.minecraft\mods\ramwal-1.0.5.jar constructed 2 mods: [BROKEN, ramwal], but had 1 mods specified: [ramwal] [19Aug2021 19:05:19.884] [Render thread/FATAL] [net.minecraftforge.fml.ModLoader/CORE]: Failed to initialize mod containers net.minecraftforge.fml.ModLoadingException: mods.toml missing metadata for modid geckolib3 at net.minecraftforge.fml.ModLoader.lambda$buildModContainerFromTOML$32(ModLoader.java:295) ~[?:?] at net.minecraftforge.fml.ModLoader$$Lambda$3062/689213488.get(Unknown Source) ~[?:?] at java.util.Optional.orElseThrow(Optional.java:290) ~[?:1.8.0_51] at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:295) ~[?:?] at net.minecraftforge.fml.ModLoader.lambda$buildMods$29(ModLoader.java:275) ~[?:?] at net.minecraftforge.fml.ModLoader$$Lambda$3060/709841971.apply(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1683) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:277) ~[?:?] at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$11(ModLoader.java:177) ~[?:?] at net.minecraftforge.fml.ModLoader$$Lambda$3057/438263665.apply(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:179) [?:?] at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$1(ClientModLoader.java:103) [?:?] at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2921/1618489605.run(Unknown Source) [?:?] at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) [?:?] at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2922/311559967.run(Unknown Source) [?:?] at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:103) [?:?] at net.minecraft.client.Minecraft.<init>(Minecraft.java:437) [?:?] at net.minecraft.client.main.Main.main(Main.java:149) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.1.0.jar:36.1] at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$442/1747721875.call(Unknown Source) [forge-1.16.5-36.1.0.jar:36.1] at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?]
  3. That worked, thank you! For anyone with the same issue, here is my code: onEntityCollision method: public void onEntityCollision(BlockState state, World worldIn, BlockPos pos, Entity entityIn) { if (worldIn instanceof ServerWorld && !entityIn.isPassenger() && !entityIn.isBeingRidden() && entityIn.canChangeDimension()) { RegistryKey<World> dim = RegistryKey.getOrCreateKey(Registry.WORLD_KEY, new ResourceLocation("ramwal:lemondimension")); RegistryKey<World> registrykey = worldIn.getDimensionKey() == dim ? World.OVERWORLD : dim; ServerWorld serverworld = ((ServerWorld)worldIn).getServer().getWorld(registrykey); if (serverworld == null) { return; } entityIn.changeDimension(serverworld, new ModTeleporter()); } } ModTeleporter class: package com.justinb.ramwal.inherited; import net.minecraft.entity.Entity; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.common.util.ITeleporter; import java.util.function.Function; public class ModTeleporter implements ITeleporter { @Override public Entity placeEntity(Entity entity, ServerWorld currentWorld, ServerWorld destWorld, float yaw, Function<Boolean, Entity> repositionEntity) { return repositionEntity.apply(false); } }
  4. If I change the ResourceLocation in the RegistryKey to anything else, serverworld ends up being null, so I'm assuming that the RegistryKey is correct. What am I missing?
  5. I'm attempting to create a portal to my custom dimension, but Minecraft freezes on the "Loading Terrain" screen whenever I enter. However, when I use commands to go to my dimension, it works fine. I searched through Minecraft's libraries and decided to use a slightly modified version of the end portal's code for my portal, but when I debugged the mod, I noticed that my onEntityCollision method, which contains the code to switch dimensions, runs over and over. I believe this is what leads to the game becoming overloaded each time I use the portal. How would I go about fixing this? The portal class: package com.justinb.ramwal.blocks; import com.justinb.ramwal.init.BlockInit; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; public class LemonPortalBlock extends Block { public LemonPortalBlock(Properties properties) { super(properties); } public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn, BlockPos currentPos, BlockPos facingPos) { return !isValidSpawn(currentPos, (World) worldIn) ? BlockInit.LEMONPORTAL.get().getDefaultState() : super.updatePostPlacement(stateIn, facing, facingState, worldIn, currentPos, facingPos); } public void onEntityCollision(BlockState state, World worldIn, BlockPos pos, Entity entityIn) { if (worldIn instanceof ServerWorld && !entityIn.isPassenger() && !entityIn.isBeingRidden() && entityIn.canChangeDimension()) { RegistryKey<World> dim = RegistryKey.getOrCreateKey(Registry.WORLD_KEY, new ResourceLocation("ramwal:lemondimension")); RegistryKey<World> registrykey = worldIn.getDimensionKey() == dim ? World.OVERWORLD : dim; ServerWorld serverworld = ((ServerWorld)worldIn).getServer().getWorld(registrykey); if (serverworld == null) { return; } entityIn.changeDimension(serverworld); } } public ItemStack getItem(IBlockReader worldIn, BlockPos pos, BlockState state) { return ItemStack.EMPTY; } public static boolean isValidSpawn(BlockPos pos, World worldIn) { for (int i = 2; i <= 5; i++) if (!(worldIn.getBlockState(pos.offset(Direction.byIndex(i))).getBlock() == BlockInit.GLITCH.get())) return false; return true; } }
  6. So then I should use if (!worldIn.isRemote()) instead. then?
  7. And how do I spawn it on the server? I apologize if what I'm asking is obvious, but I just started modding today.
  8. I am trying to have a vanilla entity spawn at my position after I finish drinking a bucket of milk. However, the entity does not spawn when I finish drinking the bucket. public ItemStack onItemUseFinish(ItemStack stack, World worldIn, LivingEntity entityLiving) { if (entityLiving instanceof ServerPlayerEntity) { ServerPlayerEntity serverplayerentity = (ServerPlayerEntity)entityLiving; CriteriaTriggers.CONSUME_ITEM.trigger(serverplayerentity, stack); serverplayerentity.addStat(Stats.ITEM_USED.get(this)); } if (entityLiving instanceof PlayerEntity) { stack.shrink(1); PlayerEntity p = (PlayerEntity)entityLiving; p.getFoodStats().addStats(4, 0.8f); } //Spawn entity if (worldIn.isRemote()) { Entity e = EntityType.create(12, worldIn); e.setLocationAndAngles(entityLiving.getPosX(), entityLiving.getPosY(), entityLiving.getPosZ(), 0, 0); worldIn.addEntity(e); } return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; } I am new at modding, so can anyone help me fix this?
×
×
  • Create New...

Important Information

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