Анимация моба

Версия Minecraft
1.12.2
API
Forge
36
0
Салам, написал мод который добавляет моба при помощи GeckoLib, так же прикрутил анимацию, все это скомпилировал и кинул мод на сервер, что в ответ получил ошибку, якобы геколиб это клиентская библиотека и не может использоваться на сервере, я так это понял, в итоги я забил на это, удалил весь код, и сейчас спустя две недели вернулся к этому, решил сначала добавить лишь моба на сервер, без анимаций, но все по прежнему, как мне решить данную проблему?

Увидел ошибку в EnergyHUDHandler, но все работало раньше, сейчас ошибка появилась, ошибка не должна быть в EnergyHUDHandler и мешать работать серверу
Java:
package com.lunya.hm.client.model;

import com.lunya.hm.reference.Reference;

import net.minecraft.util.ResourceLocation;
import software.bernie.geckolib3.model.AnimatedGeoModel;

@SuppressWarnings("rawtypes")
public class ModelEntityGiant extends AnimatedGeoModel {
    @Override
    public ResourceLocation getModelLocation(Object object) {
        return new ResourceLocation(Reference.MODID, "geo/bat.geo.json");
    }

    @Override
    public ResourceLocation getTextureLocation(Object object) {
        return new ResourceLocation(Reference.MODID, "textures/models/entity/bat.png");
    }

    @Override
    public ResourceLocation getAnimationFileLocation(Object animatable) {
        return new ResourceLocation(Reference.MODID, "animations/bat.animation.json");
    }
}
Java:
package com.lunya.hm.client.renderer;

import com.lunya.hm.client.model.ModelEntityGiant;
import com.lunya.hm.entity.EntityGiant.EntityGiant;

import net.minecraft.client.renderer.entity.RenderManager;
import software.bernie.geckolib3.renderers.geo.GeoEntityRenderer;

public class RenderEntityGiant extends GeoEntityRenderer<EntityGiant> {

    public RenderEntityGiant(RenderManager renderManager) {
        super(renderManager, new ModelEntityGiant());
    }
}
[CODE=java]package com.lunya.hm.entity.EntityGiant;

import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.ai.EntityAIWatchClosest;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import software.bernie.geckolib3.core.IAnimatable;
import software.bernie.geckolib3.core.IAnimationTickable;
import software.bernie.geckolib3.core.PlayState;
import software.bernie.geckolib3.core.builder.AnimationBuilder;
import software.bernie.geckolib3.core.controller.AnimationController;
import software.bernie.geckolib3.core.event.predicate.AnimationEvent;
import software.bernie.geckolib3.core.manager.AnimationData;
import software.bernie.geckolib3.core.manager.AnimationFactory;

public class EntityGiant extends EntityCreature implements IAnimatable, IAnimationTickable {
    private AnimationFactory factory = new AnimationFactory(this);

    private <E extends IAnimatable> PlayState predicate(AnimationEvent<E> event) {
        event.getController().setAnimation(new AnimationBuilder().addAnimation("animation.bat.fly", true));
        return PlayState.CONTINUE;
    }

    public EntityGiant(World worldIn) {
        super(worldIn);
        this.ignoreFrustumCheck = true;
        this.setSize(0.7F, 1.3F);
    }

    @Override
    public void registerControllers(AnimationData data) {
        data.addAnimationController(new AnimationController<EntityGiant>(this, "controller", 50, this::predicate));
    }

    @Override
    public AnimationFactory getFactory() {
        return this.factory;
    }

    @Override
    protected void initEntityAI() {
        this.tasks.addTask(6, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F));
        super.initEntityAI();
    }

    @Override
    public int tickTimer() {
        return ticksExisted;
    }

    @Override
    public void tick() {
        super.onUpdate();
    }
}
Java:
package com.lunya.hm;

import com.lunya.hm.entity.EntityGiant.EntityGiant;
import com.lunya.hm.reference.Referen
[CODE=java]package com.lunya.hm;

import com.lunya.hm.client.renderer.RenderEntityGiant;
import com.lunya.hm.entity.EntityGiant.EntityGiant;
import com.lunya.hm.misc.HeavenlyTabs;
import com.lunya.hm.proxy.CommonProxy;
import com.lunya.hm.reference.Reference;
import com.lunya.hm.registry.EntityRegistry;
import com.lunya.hm.utils.handler.BagHandler;
import com.lunya.hm.utils.handler.EnergyHUDHandler;
import com.lunya.hm.utils.handler.EnergyHandler;
import com.lunya.hm.utils.handler.GuiHandler;
import com.lunya.hm.utils.handler.TileEntityHandler;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import software.bernie.geckolib3.GeckoLib;

@Mod(modid = Reference.MODID, name = Reference.NAME, version = Reference.VERSION, acceptedMinecraftVersions = Reference.ACCEPTED_MINECRAFT_VERSION)
public class HeavenlyMod {
    @Instance
    public static HeavenlyMod instance;
    @SidedProxy(clientSide = Reference.CLIENT, serverSide = Reference.COMMON)
    public static CommonProxy proxy;
    public static final CreativeTabs HEAVENLY_TABS = new HeavenlyTabs("heavenly_tab");

    @EventHandler
    public static void preInit(FMLPreInitializationEvent event) {

        MinecraftForge.EVENT_BUS.register(new CommonListener());
        RenderingRegistry.registerEntityRenderingHandler(EntityGiant.class, RenderEntityGiant::new);
    }

    @Mod.EventHandler
    public void init(FMLInitializationEvent event) {
        GeckoLib.initialize();

    }

    @EventHandler
    public static void postInit(FMLPostInitializationEvent event) {
    }
}

Java:
package com.lunya.hm;

import com.lunya.hm.entity.EntityGiant.EntityGiant;
import com.lunya.hm.reference.Reference;

import net.minecraft.util.ResourceLocation;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.EntityEntryBuilder;

public class CommonListener {


    @SubscribeEvent
    public void onRegisterEntities(RegistryEvent.Register<EntityEntry> event) {
        int id = 0;
        event.getRegistry().register(EntityEntryBuilder.create().entity(EntityGiant.class).name("Example")
                .id(new ResourceLocation(Reference.MODID, "example"), id++).tracker(160, 2, false).build());

    }

}


вот краш который я получаю на сервере


Java:
net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Heavenly Mod (hm)
Caused by: java.lang.NoClassDefFoundError: com/lunya/hm/utils/handler/EnergyHUDHandler
    at com.lunya.hm.HeavenlyMod.preInit(HeavenlyMod.java:38)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:637)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:219)
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:197)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:136)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:629)
    at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:99)
    at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:333)
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:125)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:486)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.lunya.hm.utils.handler.EnergyHUDHandler
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 37 more
Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@5305c37d from coremod FMLCorePlugin
    at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:260)
    at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
    ... 39 more
Caused by: java.lang.RuntimeException: Attempted to load class com/lunya/hm/utils/handler/EnergyHUDHandler for invalid side SERVER
    at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:62)
    at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:256)
    ... 41 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
    Minecraft Version: 1.12.2
    Operating System: Linux (amd64) version 5.4.0-176-generic
    Java Version: 1.8.0_312, Temurin
    Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Temurin
    Memory: 461629840 bytes (440 MB) / 742916096 bytes (708 MB) up to 1670381568 bytes (1593 MB)
    JVM Flags: 17 total; -Xms128M -Xmx1792M -XX:+UseNUMA -XX:G1ReservePercent=10 -XX:G1HeapWastePercent=10 -XX:+OptimizeStringConcat -XX:+TieredCompilation -XX:+EliminateLocks -XX:+UseSuperWord -XX:+OptimizeFill -XX:LoopUnrollMin=4 -XX:LoopMaxUnroll=16 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+DisableExplicitGC -XX:+UseFastJNIAccessors -XX:+UseParallelGC
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.42 Powered by Forge 14.23.5.2860 6 mods loaded, 6 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

    | State | ID        | Version      | Source                           | Signature                                |
    |:----- |:--------- |:------------ |:-------------------------------- |:---------------------------------------- |
    | LCH   | minecraft | 1.12.2       | minecraft.jar                    | None                                     |
    | LCH   | mcp       | 9.42         | minecraft.jar                    | None                                     |
    | LCH   | FML       | 8.0.99.99    | server.jar                       | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCH   | forge     | 14.23.5.2860 | server.jar                       | e3c3d50c7c986df74c645c0ac54639741c90a557 |
    | LCH   | geckolib3 | 3.0.20       | geckolib-forge-1.12.2-3.0.21.jar | None                                     |
    | LCE   | hm        | 0.1          | modid-1.0.jar                    | None                                     |

    Loaded coremods (and transformers):
    Profiler Position: N/A (disabled)
    Is Modded: Definitely; Server brand changed to 'fml,forge'
    Type: Dedicated Server (map_server.txt)
 
Последнее редактирование:
Различай серверную и клиентскую сторону, рекомендую почитать об этом подробнее здесь Прокси - Создание Minecraft модов

@EventHandler public static void preInit(FMLPreInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new CommonListener()); RenderingRegistry.registerEntityRenderingHandler(EntityGiant.class, RenderEntityGiant::new); }
Это категорически нельзя вызывать на стороне сервера
 
Назад
Сверху