Jump to content

kaydogz

Members
  • Posts

    106
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by kaydogz

  1. I am currently porting all of my former event-based registration to deferred register and I am having some problems with my custom registry. Here is the building of the custom registry (which worked fine with events):
     

    @SubscribeEvent
    public static void registerRegistries(final RegistryEvent.NewRegistry event) {
    		
    	// Quest Task
    	RegistryBuilder<QuestTask> questTaskBuilder = new RegistryBuilder<QuestTask>();
    	questTaskBuilder.setType(QuestTask.class);
    	ResourceLocation questTaskLocation = DaBoisMod.modLocation("quest_task");
    	questTaskBuilder.setName(questTaskLocation);
    	questTaskBuilder.setDefaultKey(questTaskLocation);
    	questTaskBuilder.create();
    }

     

    I'm trying to use deferred register with this:

    public class QuestTasks {
      	private static final DeferredRegister<QuestTask> QUEST_TASKS = new DeferredRegister<>(GameRegistry.findRegistry(QuestTask.class), DaBoisMod.MODID);
    	
    	public static void registerQuestTasks(IEventBus eventBus) {
    		QuestTasks.QUEST_TASKS.register(eventBus);
    		DaBoisMod.LOGGER.info("Quest tasks registered.");
    	}
    	
    	// Break Blocks
    	public static final RegistryObject<BreakBlocksQuestTask> BREAK_DIRT = QUEST_TASKS.register("break_dirt", () -> new BreakBlocksQuestTask(Blocks.DIRT, 30, 200));
    }

     

    For the most part, all of my other registries work, but my custom one causes the mod to fail to load:
     

    Spoiler
     
     
    0
     Advanced issue found
     
     
    Spoiler

    [07May2020 12:14:03.743] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Setting user: Dev
    [07May2020 12:14:22.844] [Render thread/INFO] [net.minecraft.client.Minecraft/]: Backend library: LWJGL version 3.2.2 build 10
    [07May2020 12:14:24.738] [modloading-worker-1/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 31.1.63, for MC 1.15.2 with MCP 20200414.225201
    [07May2020 12:14:24.738] [modloading-worker-1/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v31.1.63 Initialized
    [07May2020 12:14:24.820] [modloading-worker-2/INFO] [daboismod/]: Blocks registered.
    [07May2020 12:14:24.836] [modloading-worker-2/INFO] [daboismod/]: Items registered.
    [07May2020 12:14:24.842] [modloading-worker-2/INFO] [daboismod/]: Biomes registered.
    [07May2020 12:14:24.848] [modloading-worker-2/INFO] [daboismod/]: Enchantments registered.
    [07May2020 12:14:24.851] [modloading-worker-2/INFO] [daboismod/]: Entities registered.
    [07May2020 12:14:24.857] [modloading-worker-2/INFO] [daboismod/]: Effects registered.
    [07May2020 12:14:24.861] [modloading-worker-2/INFO] [daboismod/]: Mod dimensions registered.
    [07May2020 12:14:24.864] [modloading-worker-2/INFO] [daboismod/]: Potions registered.
    [07May2020 12:14:24.868] [modloading-worker-2/INFO] [daboismod/]: Recipe serializers registered.
    [07May2020 12:14:24.872] [modloading-worker-2/INFO] [daboismod/]: Sound events registered.
    [07May2020 12:14:24.894] [modloading-worker-2/ERROR] [net.minecraftforge.fml.javafmlmod.FMLModContainer/LOADING]: Failed to create mod instance. ModID: daboismod, class com.github.kaydogz.daboismod.DaBoisMod
    java.lang.ExceptionInInitializerError: null
        at com.github.kaydogz.daboismod.DaBoisMod.<init>(DaBoisMod.java:71) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_231]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_231]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_231]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_231]
        at java.lang.Class.newInstance(Class.java:442) ~[?:1.8.0_231]
        at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:131) ~[?:31.1]
        at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_231]
        at java.util.function.Consumer.lambda$andThen$0(Consumer.java:65) ~[?:1.8.0_231]
        at net.minecraftforge.fml.ModContainer.transitionState(ModContainer.java:112) ~[?:?]
        at net.minecraftforge.fml.ModList.lambda$null$10(ModList.java:135) ~[?:?]
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) [?:1.8.0_231]
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) [?:1.8.0_231]
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) [?:1.8.0_231]
        at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291) [?:1.8.0_231]
        at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_231]
    Caused by: java.lang.IllegalArgumentException: Invalid registry argument, must not be null
        at net.minecraftforge.fml.RegistryObject.<init>(RegistryObject.java:74) ~[?:?]
        at net.minecraftforge.fml.RegistryObject.of(RegistryObject.java:50) ~[?:?]
        at net.minecraftforge.registries.DeferredRegister.register(DeferredRegister.java:83) ~[?:?]
        at com.github.kaydogz.daboismod.quest.QuestTasks.<clinit>(QuestTasks.java:23) ~[?:?]
        ... 20 more
    [07May2020 12:14:24.901] [Render thread/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: Failed to complete lifecycle event CONSTRUCT, 1 errors found
    [07May2020 12:14:24.902] [Render thread/FATAL] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: EventBus 0 shutting down - future events will not be posted.
    java.lang.Exception: stacktrace
        at net.minecraftforge.eventbus.EventBus.shutdown(EventBus.java:278) ~[eventbus-2.1.0-service.jar:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:115) ~[forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
        at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:97) ~[forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
        at net.minecraft.client.Minecraft.<init>(Minecraft.java:397) ~[forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
        at net.minecraft.client.main.Main.main(Main.java:141) ~[forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_231]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_231]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_231]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_231]
        at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
        at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-5.1.0.jar:?]
        at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-5.1.0.jar:?]
        at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-5.1.0.jar:?]
        at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-5.1.0.jar:?]
        at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-5.1.0.jar:?]
        at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:102) [forge-1.15.2-31.1.63_mapped_snapshot_20200430-1.15.1-recomp.jar:?]
    [07May2020 12:14:27.528] [Render thread/INFO] [com.mojang.text2speech.NarratorWindows/]: Narrator library for x64 successfully loaded
    [07May2020 12:14:29.352] [Render thread/INFO] [net.minecraft.resources.SimpleReloadableResourceManager/]: Reloading ResourceManager: Default, Mod Resources
    [07May2020 12:14:29.396] [Server-Worker-2/ERROR] [net.minecraftforge.fml.ModLoader/LOADING]: Skipping lifecycle event SETUP, 1 errors found.
    [07May2020 12:14:29.396] [Server-Worker-2/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: Failed to complete lifecycle event SETUP, 1 errors found
    [07May2020 12:14:29.396] [Server-Worker-2/FATAL] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: EventBus 0 shutting down - future events will not be posted.
    java.lang.Exception: stacktrace
        at net.minecraftforge.eventbus.EventBus.shutdown(EventBus.java:278) ~[eventbus-2.1.0-service.jar:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:115) ~[?:?]
        at net.minecraftforge.fml.client.ClientModLoader.startModLoading(ClientModLoader.java:123) ~[?:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$onreload$3(ClientModLoader.java:105) ~[?:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:113) ~[?:?]
        at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1626) [?:1.8.0_231]
        at java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1618) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_231]
    [07May2020 12:14:36.248] [Server-Worker-5/ERROR] [net.minecraftforge.fml.ModLoader/LOADING]: Skipping lifecycle event ENQUEUE_IMC, 1 errors found.
    [07May2020 12:14:36.249] [Server-Worker-5/FATAL] [net.minecraftforge.fml.ModLoader/LOADING]: Failed to complete lifecycle event ENQUEUE_IMC, 1 errors found
    [07May2020 12:14:36.249] [Server-Worker-5/FATAL] [net.minecraftforge.eventbus.EventBus/EVENTBUS]: EventBus 0 shutting down - future events will not be posted.
    java.lang.Exception: stacktrace
        at net.minecraftforge.eventbus.EventBus.shutdown(EventBus.java:278) ~[eventbus-2.1.0-service.jar:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$5(ClientModLoader.java:115) ~[?:?]
        at net.minecraftforge.fml.client.ClientModLoader.finishModLoading(ClientModLoader.java:137) ~[?:?]
        at net.minecraftforge.fml.client.ClientModLoader.lambda$onreload$4(ClientModLoader.java:107) ~[?:?]
        at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:705) [?:1.8.0_231]
        at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:687) [?:1.8.0_231]
        at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) [?:1.8.0_231]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) [?:1.8.0_231]
    [07May2020 12:14:36.503] [Render thread/INFO] [net.minecraft.client.audio.SoundSystem/]: OpenAL initialized.
    [07May2020 12:14:36.504] [Render thread/INFO] [net.minecraft.client.audio.SoundEngine/SOUNDS]: Sound engine started
    [07May2020 12:14:36.745] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 1024x512x4 minecraft:textures/atlas/blocks.png-atlas
    [07May2020 12:14:36.907] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 128x128x4 minecraft:textures/atlas/signs.png-atlas
    [07May2020 12:14:36.908] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x512x4 minecraft:textures/atlas/banner_patterns.png-atlas
    [07May2020 12:14:36.909] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x512x4 minecraft:textures/atlas/shield_patterns.png-atlas
    [07May2020 12:14:36.909] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x256x4 minecraft:textures/atlas/chest.png-atlas
    [07May2020 12:14:36.910] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x256x4 minecraft:textures/atlas/beds.png-atlas
    [07May2020 12:14:36.910] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 512x256x4 minecraft:textures/atlas/shulker_boxes.png-atlas
    [07May2020 12:14:37.498] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x256x0 minecraft:textures/atlas/particles.png-atlas
    [07May2020 12:14:37.501] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 256x256x0 minecraft:textures/atlas/paintings.png-atlas
    [07May2020 12:14:37.501] [Render thread/INFO] [net.minecraft.client.renderer.texture.AtlasTexture/]: Created: 128x128x0 minecraft:textures/atlas/mob_effects.png-atlas
     

    Am I doing something wrong? Is it not possible to use DeferredRegister with custom registries?

  2. 1 hour ago, Novârch said:

    I use PlayerEntity#changeDImension to change my player's dimension, I call this from a client to server packet, this works fine, but it always creates a Nether portal when I call the method, even though I've created a custom Teleporter class and overriden all of the methods from the default Teleporter. The custom Teleporter class looks like this:

      Hide contents
    
    
    public class DimensionHopTeleporter extends Teleporter
    {
        private final ServerWorld world;
        private double x,y,z;
    
        public DimensionHopTeleporter(ServerWorld world, double x, double y, double z)
        {
            super(world);
            this.world = world;
            this.x = x;
            this.y = y;
            this.z = z;
        }
    
        @Override
        public boolean makePortal(Entity entityIn)
        {
            return false;
        }
    
        @Override
        public boolean placeInPortal(Entity p_222268_1_, float p_222268_2_)
        {
            return false;
        }
    
        @Nullable
        @Override
        public BlockPattern.PortalInfo placeInExistingPortal(BlockPos p_222272_1_, Vec3d p_222272_2_, Direction directionIn, double p_222272_4_, double p_222272_6_, boolean p_222272_8_)
        {
            return null;
        }
    
        @Override
        public Entity placeEntity(Entity entity, ServerWorld currentWorld, ServerWorld destWorld, float yaw, Function<Boolean, Entity> repositionEntity)
        {
            return super.placeEntity(entity, currentWorld, destWorld, yaw, repositionEntity);
        }
    }

     

    In theory the above code should do absolutely nothing, but that isn't what it does. For more context see the Git repo of the mod.

    All you need to get rid of the portal is to override placeEntity and return an application of repositionEntity with the parameter being false.

    • Thanks 1
  3. 5 minutes ago, blinky000 said:

    iv'e tried using standard blocks:

    {
        "type": "minecraft:crafting_shaped",
        "pattern":
        [
            "xxx",
            " x ",
            "xxx"
        ],
    "key":
        {
            "x":
            {
                "item": "block/stone"
            }
        },
        "result":
        {
            "item": "block/stone",
            "count": 9
        }
    }

     

    still nothing

    Ensure that the package names are in the right order and have no typos. Your json file should work if it's in the right place.

  4. 12 minutes ago, Slastic said:

    Multiplayer:

    Send player action bar message.

    Additionally, is it possible to do the Totem Of Undying animation in multiplayer with a custom item.

    Thanks

     

    Still learning --new ?

    For the action bar message, you can just use ServerPlayerEntity#sendStatusMessage with the second parameter being true to send an action bar message to a player.
    For the Totem of Undying animation, you have to create your own server-to-client packet which has the line Minecraft.getInstance().gameRenderer.displayItemActivation(...)

    • Thanks 1
  5. 8 hours ago, diesieben07 said:

    You have a deadlock, because while a chunk is being loaded the loaded chunk map is being blocked.

    How would I go about fixing the deadlock? I removed the DBMChunkManager class as I realized I didn't need it. Here is the new code:
     

    @SubscribeEvent
    public static void chunkLoad(final ChunkEvent.Load event) {
    		
    	if (event.getWorld() != null) if (event.getWorld().chunkExists(event.getChunk().getPos().x, event.getChunk().getPos().z)) if (!event.getWorld().isRemote()) {
    		ServerWorld world = (ServerWorld) event.getWorld();
    			
    		if (world.dimension.getType() == DBMDimensions.realm_of_the_ancients) {
    
    			// Force Loads Corresponding Chunks in the Overworld
    			world.getServer().getWorld(DimensionType.OVERWORLD).forceChunk(event.getChunk().getPos().x, event.getChunk().getPos().z, true);
    		} else if (world.dimension.getType() == DimensionType.OVERWORLD && DBMDimensions.realm_of_the_ancients != null) {
    				
    			// Force Loads Corresponding Chunks in the Realm of the Ancients
    			world.getServer().getWorld(DBMDimensions.realm_of_the_ancients).forceChunk(event.getChunk().getPos().x, event.getChunk().getPos().z, true);
    		}
    	}
    }
    		
    @SubscribeEvent
    public static void chunkUnload(final ChunkEvent.Unload event) {
    		
    	if (event.getWorld() != null) if (event.getWorld().chunkExists(event.getChunk().getPos().x, event.getChunk().getPos().z)) if (!event.getWorld().isRemote()) {
    			
    		ServerWorld world = (ServerWorld) event.getWorld();
    			
    		if (world.dimension.getType() == DBMDimensions.realm_of_the_ancients) {
    				
    			// Force Unloads Corresponding Chunks in the Overworld
    			world.getServer().getWorld(DimensionType.OVERWORLD).forceChunk(event.getChunk().getPos().x, event.getChunk().getPos().z, false);
    		} else if (world.dimension.getType() == DimensionType.OVERWORLD && DBMDimensions.realm_of_the_ancients != null) {
    				
    			// Force Unloads Corresponding Chunks in the Realm of the Ancients
    			world.getServer().getWorld(DBMDimensions.realm_of_the_ancients).forceChunk(event.getChunk().getPos().x, event.getChunk().getPos().z, false);
    		}
    	}
    }

    Still gets stuck at 0%.

  6. 15 minutes ago, discodancer said:

    Problem. I want my custom items to be in recipe book but it doesn't happen even though the item is defined as "pickaxe" they don't appear in the appropriate tab. What should I type in my code and where?

    Also I noticed that recipe book takes creative tabs for recipes but it creates another problem: I have my modded items in creative mod tab already for easy access but not in any other vanilla creative tab. 

     image.png.a0ac49efe5599e50e69f9d4a08db8efc.pngimage.png.920a3958fa4a74436f77c3ca41357e3d.png

    Create a json in data.[MODID].advancements.recipes . Look at the vanilla code for examples

    • Like 1
  7. 3 minutes ago, Novârch said:

    How would I go about fixing this? I tried something like this:

    
    int dimensionTick = 0;
    if (this.dimensionTick == 0)
    {
    	dimensionTick=1;
      	this.getMaster().changeDimension(DimensionType.THE_NETHER);
    }

    , but it still crashes, I tested further to see if it was really being run only once and it is.

     

    Yeah, the code is pretty messy, I'll clean that up.

    The dimension tick does not work because the variable gets set back to zero every tick. It effectively does nothing. Try checking if the player is in the same world as the entity: this.world.getPlayers().contains(getMaster())

×
×
  • Create New...

Important Information

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