Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Just_EmSee

Members
  • Joined

  • Last visited

  1. ok so I figured out that what i was doing here worked i apparently did not supply a starting jigsaw to the generate method, although now i get this error No starting jigsaw the_dungeon:goblin_caves/spawns found in start pool the_dungeon:goblin_caves/spawns this is the json file { "name": "the_dungeon:goblin_caves/spawns", "fallback": "minecraft:empty", "elements": [ { "weight": 1, "element": { "location": "the_dungeon:goblin_caves/spawns/stone_cave_spawn", "processors": "minecraft:empty", "projection": "rigid", "element_type": "minecraft:single_pool_element" } } ] }
  2. Version: 1.20.6 Forge: 50.0.26 current code: public static Holder<StructureTemplatePool> getTemplatePoolHolder(final ServerLevel level, final ResourceLocation resourceLocation) { if (level==null) { return null; } RegistryAccess registryaccess = level.registryAccess(); Registry<StructureTemplatePool> registry = registryaccess.registryOrThrow(Registries.TEMPLATE_POOL); Logger logger = TheDungeon.LOGGER; logger.info("searcing for {} in {}", resourceLocation, registry); //Holder<StructureTemplatePool> holder = registry.getHolder(resourceLocation).orElse(null); StructureTemplatePool pool = registry.get(resourceLocation); Holder<StructureTemplatePool> holder = null; if (pool!=null) holder = Holder.direct(pool); return holder; } unfortunately it seems like either i am getting the Registry wrong or the ResourceKey this is the resource location it is trying to find: new ResourceLocation(TheDungeon.MOD_ID, "goblin_caves/spawns") where the file is located resources > data > the_dungeon > worldgen > template_pool > goblin_caves > spawns.json it does generate randomly when i create a structureSet
  3. I have been trying to place a jigsaw structure for about a week now and cant get it to work. I have the template pool etc set up and working it does randomly generate now I just want to place it in the world using a coded trigger. I cant seem to find any useful information on the internet and am completely stuck I think I need to use : JigsawPlacement.generateJigsaw() But I cant get the Holder<StructureTemplatePool>
  4. I am making a mod for 1.20.6 I want to make a randomly generated structure using jigsaw but want to guarantee that a specific room is generated and not more than once. I cant generate starting from this room as I need to do this for 2 different rooms. I cant find more info on this in the Minecraft wiki or the forums. is it possible to set a min and max count for structure pieces?
  5. fix found had to add: implementation('net.sf.jopt-simple:jopt-simple:5.0.4') { version { strictly '5.0.4' } } to the dependancies
  6. full failure report Execution failed for task ':runData'. > Process 'command 'C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot\bin\java.exe'' finished with non-zero exit value 1 * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':runData'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:149) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:147) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49) Caused by: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot\bin\java.exe'' finished with non-zero exit value 1 at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:415) at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:52) at org.gradle.api.tasks.JavaExec.exec(JavaExec.java:165) at net.minecraftforge.gradle.common.util.runs.MinecraftRunTask.exec(MinecraftRunTask.java:56) at jdk.internal.reflect.GeneratedMethodAccessor533.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29) at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:242) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29) at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68) at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:227) at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:210) at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:193) at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:166) at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105) at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59) at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56) at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67) at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37) at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41) at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74) at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50) at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:28) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.executeDelegateBroadcastingChanges(CaptureStateAfterExecutionStep.java:100) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:72) at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:50) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:40) at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:29) at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:166) at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:70) at org.gradle.internal.Either$Right.fold(Either.java:175) at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:68) at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:46) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:36) at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:25) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36) at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22) at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:91) at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55) at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:37) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:65) at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:36) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:76) at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:37) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:94) at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:49) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:71) at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:45) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.executeWithNonEmptySources(SkipEmptyWorkStep.java:177) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:81) at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:53) at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:32) at org.gradle.internal.execution.steps.RemoveUntrackedExecutionStateStep.execute(RemoveUntrackedExecutionStateStep.java:21) at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36) at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23) at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:75) at org.gradle.internal.execution.steps.CleanupStaleOutputsStep.execute(CleanupStaleOutputsStep.java:41) at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:32) at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:287) at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30) at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:21) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37) at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:47) at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:34) at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:146) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:135) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52) at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:324) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:317) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:49)
  7. MC version :1.20.6 forge version: 50.0.26 mapping channel: parchment mapping version: 2024.05.01-1.20.6 Caused by: java.lang.module.FindException: Module jopt.simple not found, required by cpw.mods.modlauncher i get this error when trying to launch my dev environment
  8. do you happen to have any info on it? a website or a video. before I start looking myself. might make the searching process easier.
  9. I am trying to create a "research" like system for crafting some items and I have the custom recipes set up but i would like to know if it is possible to reference an advancement in the JSON I am looking for something like this: { "type": "majestic:scribing", "advancement": "insert advancement" "ingredients": [ { "item": "insert custom item" }, { "item": "insert custom item" }, { "item": "insert custom item" }, { "item": "insert custom item" } ], "output": { "item": "insert custom item", "count": 1 } } is that doable and how do I reference it in the code?
  10. im sorry, here is the code i am referring to package net.JustEmSee_Burd.the_majestic.item; import net.JustEmSee_Burd.the_majestic.The_Majestic; import net.JustEmSee_Burd.the_majestic.block.ModBlocks; import net.JustEmSee_Burd.the_majestic.spell.Spell; import net.JustEmSee_Burd.the_majestic.spell.SpellItem; import net.JustEmSee_Burd.the_majestic.world.feature.ModConfiguredFeatures; import net.JustEmSee_Burd.the_majestic.world.feature.ModOrePlacement; import net.minecraft.data.worldgen.features.OreFeatures; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.levelgen.VerticalAnchor; import net.minecraft.world.level.levelgen.placement.HeightRangePlacement; import net.minecraft.world.level.levelgen.placement.PlacementModifier; import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest; import net.minecraft.world.level.material.Material; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import org.jetbrains.annotations.Nullable; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; import java.util.function.Supplier; public class ModCrystalItems { private List GenerateOres = new ArrayList(); public static final DeferredRegister<Item> CRYSTALS = DeferredRegister.create(ForgeRegistries.ITEMS, The_Majestic.MOD_ID); public static final RegistryObject<Item> MANA_CRYSTAL = registerCrystal("mana_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> FIRE_CRYSTAL = registerCrystal("fire_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), true, false, OreFeatures.NETHER_ORE_REPLACEABLES, 100 , ModOrePlacement.commonOrePlacement(1 ,HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))), null); public static final RegistryObject<Item> WATER_CRYSTAL = registerCrystal("water_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), true, true, OreFeatures.STONE_ORE_REPLACEABLES, 100 , ModOrePlacement.commonOrePlacement(1 ,HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))), null); public static final RegistryObject<Item> EARTH_CRYSTAL = registerCrystal("earth_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), true, true, OreFeatures.STONE_ORE_REPLACEABLES, 100 , ModOrePlacement.commonOrePlacement(1 ,HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))), null); public static final RegistryObject<Item> AIR_CRYSTAL = registerCrystal("air_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), true, true, OreFeatures.STONE_ORE_REPLACEABLES, 100 , ModOrePlacement.commonOrePlacement(1 ,HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))), null); public static final RegistryObject<Item> MAGMA_CRYSTAL = registerCrystal("magma_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> ICE_CRYSTAL = registerCrystal("ice_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> NATURE_CRYSTAL = registerCrystal("nature_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> LIGHTNING_CRYSTAL = registerCrystal("lightning_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> LIGHT_CRYSTAL = registerCrystal("light_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0 , null, null); public static final RegistryObject<Item> DARKNESS_CRYSTAL = registerCrystal("darkness_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false,false, null, 0, null, null); public static final RegistryObject<Item> VOID_CRYSTAL = registerCrystal("void_crystal", () -> new Item(new Item.Properties().tab(ModCreativeModeTab.Majestic_TAB)), false, false, null, 0, null, null); public static void register(IEventBus eventBus) { CRYSTALS.register(eventBus); } private static <T extends Item> RegistryObject<T> registerCrystal(String name, Supplier<T> item, boolean hasOre, boolean hasDeepslateOre, RuleTest defaultOreReplaceBlock, int oreSize, List<PlacementModifier> orePlacementFeatures, List Features) { RegistryObject<T> toReturn = CRYSTALS.register(name, item); String oreName = null; String deepslateOreName = null; if (hasOre) oreName = name+"_ore"; if (hasDeepslateOre)deepslateOreName = "deepslate_"+name+"_ore"; if (hasOre || hasDeepslateOre)registerCrystalOre(oreName, deepslateOreName, ModCreativeModeTab.Majestic_TAB, defaultOreReplaceBlock, oreSize, orePlacementFeatures, Features); return toReturn; } private static void registerCrystalOre(String oreName, String deepslateOreName, CreativeModeTab tab,RuleTest ruleTest, int oreSize,List<PlacementModifier> orePlacementFeatures, List Features) { RegistryObject<Block> ore = null; RegistryObject<Block> deepslateOre = null; if(oreName != null) ore = ModBlocks.registerBlock(oreName, () -> new Block(BlockBehaviour.Properties.of(Material.STONE) .strength(5F).requiresCorrectToolForDrops()), tab); if(deepslateOreName != null) deepslateOre = ModBlocks.registerBlock(deepslateOreName, () -> new Block(BlockBehaviour.Properties.of(Material.STONE) .strength(5F).requiresCorrectToolForDrops()), tab); ModConfiguredFeatures.RegisterOre(oreName, ore, deepslateOre, ruleTest, oreSize, orePlacementFeatures, Features); } } package net.JustEmSee_Burd.the_majestic.world.feature; import net.JustEmSee_Burd.the_majestic.The_Majestic; import net.minecraft.core.Holder; import net.minecraft.data.worldgen.features.FeatureUtils; import net.minecraft.data.worldgen.features.OreFeatures; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; import net.minecraft.world.level.levelgen.placement.PlacementModifier; import net.minecraft.world.level.levelgen.structure.templatesystem.RuleTest; import net.minecraftforge.registries.RegistryObject; import java.util.ArrayList; import java.util.List; public class ModConfiguredFeatures { public static List<OreConfiguration.TargetBlockState> RegisterOre(String name, RegistryObject<Block> oreBlock, RegistryObject<Block> deepslateOreBlock, RuleTest deafaultOreReplaceBlock, int OreSize, List<PlacementModifier> OrePlacementFeatures, List ExtraFeatures) { List<OreConfiguration.TargetBlockState> toReturn = new ArrayList<>(); if (oreBlock != null) toReturn.add(OreConfiguration.target(deafaultOreReplaceBlock, oreBlock.get().defaultBlockState())); if (deepslateOreBlock != null) toReturn.add(OreConfiguration.target(OreFeatures.DEEPSLATE_ORE_REPLACEABLES, deepslateOreBlock.get().defaultBlockState())); if (ExtraFeatures != null) toReturn.addAll(ExtraFeatures); configureOre(toReturn, name, OreSize, OrePlacementFeatures); return toReturn; } public static Holder<ConfiguredFeature<OreConfiguration, ?>> configureOre(List<OreConfiguration.TargetBlockState> features, String name, int OreSize, List<PlacementModifier> OrePlacementFeatures) { Holder<ConfiguredFeature<OreConfiguration, ?>> toReturn = FeatureUtils.register(name, Feature.ORE, new OreConfiguration(features, OreSize)); ModPlacedFeatures.GenerateOrePlacement(name+"_placed", toReturn, OrePlacementFeatures); return toReturn; } public static void registerConfiguredFeatures() { System.out.println("Registering ModConfiguredFeatures for " + The_Majestic.MOD_ID); } } package net.JustEmSee_Burd.the_majestic.world.feature; import net.minecraft.world.level.levelgen.placement.*; import java.util.List; public class ModOrePlacement { public static List<PlacementModifier> orePlacement(PlacementModifier veinsPerChunk, PlacementModifier p_195348_) { return List.of(veinsPerChunk, InSquarePlacement.spread(), p_195348_, BiomeFilter.biome()); } public static List<PlacementModifier> commonOrePlacement(int p_195344_, PlacementModifier p_195345_) { return orePlacement(CountPlacement.of(p_195344_), p_195345_); } public static List<PlacementModifier> rareOrePlacement(int p_195350_, PlacementModifier p_195351_) { return orePlacement(RarityFilter.onAverageOnceEvery(p_195350_), p_195351_); } } package net.JustEmSee_Burd.the_majestic.world.gen; import net.minecraft.core.Holder; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.placement.PlacedFeature; import net.minecraftforge.event.world.BiomeLoadingEvent; import java.util.ArrayList; import java.util.List; public class ModOreGeneration { private static List<Holder<PlacedFeature>> list = new ArrayList<>(); public static void generateOres(final BiomeLoadingEvent event) { List<Holder<PlacedFeature>> base = event.getGeneration().getFeatures(GenerationStep.Decoration.UNDERGROUND_ORES); base.addAll(list); } public static void addOreGen(Holder<PlacedFeature> placedFeatureHolder) { list.add(placedFeatureHolder); } } or the github: https://github.com/sen2006/The-Majestic
  11. and i cant find a way around calling .get()
  12. yes I know but it is a RegistryObject until the point where i need the BlockState

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.