Jump to content

Turtledove

Members
  • Posts

    167
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Turtledove's Achievements

Creeper Killer

Creeper Killer (4/8)

5

Reputation

  1. 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?
  2. 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.
  3. Take a look at how the vanilla fireball or snowballs are rendered
  4. Look at the vanilla one, it's just an entity like anything else in the game.
  5. 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 👍
  6. 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
  7. 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...
  8. Ah that's perfect, I really didn't want to shit out a giant switch statement for this.
  9. 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?
  10. 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?
  11. 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?
  12. ...just have the effect apply per every ___ ticks. I.e. do effect if player's tick count % 40 is 0
  13. 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
×
×
  • Create New...

Important Information

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