-
Entity Model with Block in it
Look up how the enderman does it
-
Duplicating Alt+F1 screen decluttering? [1.16.5]
I'm creating a gui (container-less) and for the sake of visual simplicity, I'd like background screen components like the healthbar and hotbar to go away while this screen is open, like how pressing alt+f1 declutters the screen. Anyone know how I can do this?
-
Performance of Villager AI vs others - where is the bottleneck?
I'm creating a new type of villager with performance in mind, the goal is to have at least 50 villager entities loaded nearby without causing significant frame drops. I've noticed that if I have 50 villagers loaded in a village vs 50 creepers, performance is hardest hit with the former. I think this might have to do with the fact each villager is constantly looking for new paths, searching hash tables, etc, but is pathfinding really that expensive an operation, or is there something else? I have a decent CPU+RAM (Ryzen 5 2600x with 16GB of DDR4 2933 memory) and loading 50 villagers causes the game to drop up to 20 frames. Of course it'd get worse on lower end hardware or the more villagers I spawn.
-
Orienting a rendered entity correctly
Take a look at how the vanilla fireball or snowballs are rendered
-
Make a custom boat.
Look at the vanilla one, it's just an entity like anything else in the game.
-
NoClassDefError nightmare
The latter was it. I thought "If I have the library linked in my dev environment, surely when I generate the jar it'd be linked to!" But nope, just being dumb. As for the registration code, it currently works without issue, but is there a reason why I shouldn't combine static initializers with the registry event? Reflection was the obvious choice as well to reduce the amount of code I had to type for all my dozens and dozens of entities. Thanks for your input as always ๐
-
NoClassDefError nightmare
The error in question: Time: 7/10/21 1:09 PM Description: Mod loading error has occurred java.lang.Exception: Mod Loading has failed at net.minecraftforge.fml.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:85) ~[?:?] {re:classloading} at net.minecraftforge.fml.client.ClientModLoader.completeModLoading(ClientModLoader.java:188) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.lambda$null$1(Minecraft.java:494) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.util.Util.func_215077_a(SourceFile:404) ~[?:?] {re:classloading} at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:490) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.ResourceLoadProgressGui.func_230430_a_(ResourceLoadProgressGui.java:113) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:480) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:953) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:584) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) ~[minecraft-1.16.3-client.jar:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) ~[forge-1.16.3-34.1.0-launcher.jar:34.1] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-7.0.1.jar:?] {} at io.github.zekerzhayard.forgewrapper.installer.Main.main(Main.java:50) [ForgeWrapper-1.4.2.jar:?] {} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_241] {} at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_241] {} at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_241] {} at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196) [NewLaunch.jar:?] {} at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231) [NewLaunch.jar:?] {} at org.multimc.EntryPoint.listen(EntryPoint.java:143) [NewLaunch.jar:?] {} at org.multimc.EntryPoint.main(EntryPoint.java:34) [NewLaunch.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace: at java.lang.ClassLoader.findClass(Unknown Source) ~[?:1.8.0_241] {} -- MOD withernauts -- Details: Caused by 0: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/github/alexthe666/citadel/animation/IAnimatedEntity at com.withernauts.withernauts.entity.EntityRegistry.<clinit>(EntityRegistry.java:23) ~[?:1.0] {re:classloading} at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.lambda$inject$6(AutomaticEventSubscriber.java:75) ~[?:?] {re:classloading} at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:62) ~[?:?] {re:classloading} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:91) ~[?:34.1] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:111) ~[?:?] {re:classloading} at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_241] {} Caused by 1: java.lang.NoClassDefFoundError: com/github/alexthe666/citadel/animation/IAnimatedEntity at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_241] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:62) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:21) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:20) ~[eventbus-3.0.3-service.jar:3.0.3+63+master.b6b4769] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:119) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:256) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:135) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:62) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:21) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:20) ~[eventbus-3.0.3-service.jar:3.0.3+63+master.b6b4769] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:119) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:256) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:135) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at com.withernauts.withernauts.entity.EntityRegistry.<clinit>(EntityRegistry.java:23) ~[?:1.0] {re:classloading} at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.lambda$inject$6(AutomaticEventSubscriber.java:75) ~[?:?] {re:classloading} at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:62) ~[?:?] {re:classloading} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:91) ~[?:34.1] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:111) ~[?:?] {re:classloading} at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_241] {} Mod File: modid-1.0.jar Failure message: Withernauts (withernauts) has failed to load correctly java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/github/alexthe666/citadel/animation/IAnimatedEntity Mod Version: 1.0 Mod Issue URL: NOT PROVIDED Exception message: java.lang.ClassNotFoundException: com.github.alexthe666.citadel.animation.IAnimatedEntity Stacktrace: at java.lang.ClassLoader.findClass(Unknown Source) ~[?:1.8.0_241] {} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:105) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_241] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241] {} at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:62) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:21) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:20) ~[eventbus-3.0.3-service.jar:3.0.3+63+master.b6b4769] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:119) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:256) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:135) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.eventbus.EventSubclassTransformer.buildEvents(EventSubclassTransformer.java:62) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventSubclassTransformer.transform(EventSubclassTransformer.java:44) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.EventBusEngine.processClass(EventBusEngine.java:21) ~[eventbus-3.0.3-service.jar:?] {} at net.minecraftforge.eventbus.service.ModLauncherService.processClassWithFlags(ModLauncherService.java:20) ~[eventbus-3.0.3-service.jar:3.0.3+63+master.b6b4769] {} at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:85) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:119) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:256) ~[modlauncher-7.0.1.jar:?] {} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:135) ~[modlauncher-7.0.1.jar:?] {re:classloading} at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:97) ~[modlauncher-7.0.1.jar:?] {re:classloading} at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241] {} at com.withernauts.withernauts.entity.EntityRegistry.<clinit>(EntityRegistry.java:23) ~[?:1.0] {re:classloading} at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241] {} at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.lambda$inject$6(AutomaticEventSubscriber.java:75) ~[?:?] {re:classloading} at java.util.ArrayList.forEach(Unknown Source) ~[?:1.8.0_241] {} at net.minecraftforge.fml.AutomaticEventSubscriber.inject(AutomaticEventSubscriber.java:62) ~[?:?] {re:classloading} at net.minecraftforge.fml.javafmlmod.FMLModContainer.constructMod(FMLModContainer.java:91) ~[?:34.1] {re:classloading} at net.minecraftforge.fml.ModContainer.lambda$buildTransitionHandler$5(ModContainer.java:111) ~[?:?] {re:classloading} at java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[?:1.8.0_241] {} at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[?:1.8.0_241] {} And the relevant class: https://github.com/CyclingDank/withernauts/blob/main/src/main/java/com/withernauts/withernauts/entity/EntityRegistry.java
-
NoClassDefError nightmare
I've completed and generated a build of a mod I thought was ready to export. It runs without issue on runClient, but when I run MC with the mod's jar file, it spits out a NoClassDefError for my entity classes during entity and renderer registration. I've checked the jar file with 7zip and the class files are all there, so I'm suspecting I've unintentionally reached across logical sides here and there, meaning I've got a long refactor in front of me...sigh... During general development, is there a fool-proof way of checking this? I don't see any warnings in the compiler's console when I do, so tracking down these things after the fact is a horrible nightmare...
-
Calling valueOf() on Enums and obfuscation
Ah that's perfect, I really didn't want to shit out a giant switch statement for this.
-
Calling valueOf() on Enums and obfuscation
In a json file I store some status (representing an enum) as a string, and at compile-time I'm reading this in and converting back to an Enum value. For that conversion process, I use valueOf() as my go-to, as a giant switch statement returning all the possible values isn't scalable and messy. Just a quick example for what I'm doing, in reality there are dozens of possible Enum states, which is why scalability is important here: json: { "mood": "ANGRY" ... } Enum: public enum EntityMoods { NEUTRAL, ANGRY, SAD, HAPPY } Conversion: EntityMoods moodStatus = EntityMoods.valueOf("ANGRY"); assertTrue(moodStatus == EntityMoods.ANGRY); But would this still work in Minecraft's obfuscated environment?
-
What happens to world capability data when the player enters another dimension? 1.16.5
Ok that's good to hear
-
What happens to world capability data when the player enters another dimension? 1.16.5
I know that, but you're saying that when we switch between dimensions A->B, the data in dimension A is saved, and reloads normally when we return to A from B?
-
What happens to world capability data when the player enters another dimension? 1.16.5
Say I have some data that I serialize/deserialize in the Overworld using world capabilities' NBT. When the player then enters the Nether, does that data get saved to NBT when the Nether loads its own world instance, and able to reload when the player exits the Nether, or does it just get destroyed?
-
Custom regeneration effect / regen on tick? (1.16.5)
...just have the effect apply per every ___ ticks. I.e. do effect if player's tick count % 40 is 0
-
[1.16] Render an Entity with an OBJ model
Ah sorry, you're right. I can refer you to the way Lycanites renders all of their .obj model entities, and best of all it's up to date for 1.16, but it is pretty complicated than just your standard java model. Depending on what you're doing it might not be worth it... https://gitlab.com/Lycanite/LycanitesMobs/-/tree/master/src/main/java/com/lycanitesmobs/client
IPS spam blocked by CleanTalk.