Jump to content

Registering Messages [1.11.2]


TLHPoE

Recommended Posts

I'm receiving this error when trying to host a server with a built version of my mod (quickconsume):

 

---- Minecraft Crash Report ----

WARNING: coremods are present:
  FMLPlugin (InventoryTweaks-1.62-dev-77.jar)
  LoadingPlugin (Quark-r1.2-81.jar)
  AppleCore (AppleCore-mc1.11.2-2.1.1.jar)
  IvToolkit (IvToolkit-1.3.2.1.jar)
Contact their authors BEFORE contacting forge

// I'm sorry, Dave.

Time: 2/25/17 1:27 PM
Description: Exception in server tick loop

net.minecraftforge.fml.common.LoaderExceptionModCrash: Caught exception from Quick Consume (quickconsume)
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityPlayerSP
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
    at java.lang.Class.getConstructor0(Class.java:3075)
    at java.lang.Class.newInstance(Class.java:412)
    at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:171)
    at net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:164)
    at com.kain.quickconsume.proxy.CommonProxy.init(CommonProxy.java:28)
    at com.kain.quickconsume.QuickConsume.preInit(QuickConsume.java:30)
    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:497)
    at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:641)
    at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:246)
    at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:224)
    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:497)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
    at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:628)
    at net.minecraftforge.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:100)
    at net.minecraftforge.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:331)
    at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:121)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:442)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityPlayerSP
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 39 more
Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@3ecd267f from coremod FMLCorePlugin
    at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:257)
    at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
    at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
    ... 41 more
Caused by: java.lang.RuntimeException: Attempted to load class bps for invalid side SERVER
    at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:56)
    at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:253)
    ... 43 more


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

-- System Details --
Details:
    Minecraft Version: 1.11.2
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_65, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 113158624 bytes (107 MB) / 284000256 bytes (270 MB) up to 2112618496 bytes (2014 MB)
    JVM Flags: 2 total; -Xincgc -Xmx2G
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP 9.38 Powered by Forge 13.20.0.2228 30 mods loaded, 30 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCH    minecraft{1.11.2} [Minecraft] (minecraft.jar) 
    UCH    mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) 
    UCH    FML{8.0.99.99} [Forge Mod Loader] (forge-1.11.2-13.20.0.2228-universal.jar) 
    UCH    forge{13.20.0.2228} [Minecraft Forge] (forge-1.11.2-13.20.0.2228-universal.jar) 
    UCH    ivtoolkit{1.3.2.1} [IvToolkit] (minecraft.jar) 
    UCH    actuallyadditions{1.11.2-r102} [Actually Additions] (ActuallyAdditions-1.11.2-r102.jar) 
    UCH    applecore{2.1.1} [AppleCore] (AppleCore-mc1.11.2-2.1.1.jar) 
    UCH    quark{r1.2-81} [Quark] (Quark-r1.2-81.jar) 
    UCH    autoreglib{1.1-4} [AutoRegLib] (AutoRegLib-1.1-4.jar) 
    UCH    betterachievements{0.4.3.12} [Better Achievements] (BetterAchievements-1.11.2-0.4.3.12.jar) 
    UCH    cfm{4.1.2} [MrCrayfish's Furniture Mod] (cfm-4.1.2-mc1.11.2.jar) 
    UCH    chiselsandbits{13.10} [Chisels & Bits] (chiselsandbits-13.10.jar) 
    UCH    cookingforblockheads{5.2.6} [Cooking for Blockheads] (CookingForBlockheads_1.11.2-5.2.6.jar) 
    UCH    dldungeonsjdg{1.9.0} [Doomlike Dungeons] (DoomlikeDungeons-1.9.1-MC1.11.2.jar) 
    UCH    enderthing{0.7.3} [Enderthing] (enderthing-1.11.0-0.7.3.jar) 
    UCH    gravestone{1.7.2} [Gravestone] (GraveStone Mod 1.7.2.jar) 
    UCH    inventorytweaks{1.62-dev-77-7812cce} [Inventory Tweaks] (InventoryTweaks-1.62-dev-77.jar) 
    UCH    jei{4.2.7.240} [Just Enough Items] (jei_1.11.2-4.2.7.240.jar) 
    UCH    journeymap{1.11.2-5.4.6} [JourneyMap] (journeymap-1.11.2-5.4.6.jar) 
    UCE    quickconsume{1.1} [Quick Consume] (modid-1.0.jar) 
    UCH    harvestcraft{1.11.2d} [Pam's HarvestCraft] (Pam's HarvestCraft 1.11.2d.jar) 
    UCH    persistentbits{1.0.6} [Persistent Bits] (PersistentBits-1.11-1.0.6.jar) 
    UCH    reccomplex{1.2.9.1} [Recurrent Complex] (RecurrentComplex-1.2.9.1.jar) 
    UCH    refinedstorage{1.4.1} [Refined Storage] (refinedstorage-1.4.1.jar) 
    UCH    xreliquary{1.11.2-1.3.3.635} [Reliquary] (Reliquary-1.11.2-1.3.3.635.jar) 
    UCH    roguelike{1.6.3} [Roguelike Dungeons] (RoguelikeDungeons-1.11.2-1.6.3.jar) 
    UCH    lteleporters{1.11.2-2.0.2} [Simple Teleporters] (SimpleTeleporters-1.11.2-2.0.2.jar) 
    UCH    simplyconveyors{2.1.0} [Simply Conveyors] (SimplyConveyors-2.1.2.jar) 
    UCH    soulshardstow{1.11-2.6.6-47} [Soul Shards - The Old Ways] (SoulShards-TOW-1.11-2.6.6-47.jar) 
    UCH    usefulnullifiers{1.3.4} [Useful Nullifiers] (usefulnullifiers-1.3.4.jar) 
    Loaded coremods (and transformers): 
FMLPlugin (InventoryTweaks-1.62-dev-77.jar)
  invtweaks.forge.asm.ContainerTransformer
LoadingPlugin (Quark-r1.2-81.jar)
  vazkii.quark.base.asm.ClassTransformer
AppleCore (AppleCore-mc1.11.2-2.1.1.jar)
  squeek.applecore.asm.TransformerModuleHandler
IvToolkit (IvToolkit-1.3.2.1.jar)
  
    Profiler Position: N/A (disabled)
    Is Modded: Definitely; Server brand changed to 'fml,forge'
    Type: Dedicated Server (map_server.txt)

 

Here's the class in question: http://pastebin.com/hqGR6Cjm

The purpose of the MessageSyncClient class is to be sent from the server to the client, so it has to be registered on the server side. I'm not sure why it's referencing EntityPlayerSP too.

Edited by TLHPoE

Kain

Link to comment
Share on other sites

13 minutes ago, Lhykos said:

I think you call a client method in your "onMessage" method in the handler class.

Can you post the code of you "MessageSyncClientHandler" class?

http://pastebin.com/0FXgPP5C

 

I'm not sure how I would accomplish this without referencing the player. I was thinking about having a static class that would just hold the items in a field so that it won't have to reference any piece of Minecraft at all, but that seems hacky.

Kain

Link to comment
Share on other sites

You need to call your actions on the main thread. From the Forge Documentation:

Quote

As of Minecraft 1.8 packets are by default handled on the network thread.

That means that your IMessageHandler can not interact with most game objects directly. The example above for example would not be correct. Minecraft provides a convenient way to make your code execute on the main thread instead using IThreadListener.addScheduledTask.

The way to obtain an IThreadListener is using either the Minecraft instance (client side) or a WorldServer instance (server side).

 

  • Like 1
Link to comment
Share on other sites

48 minutes ago, TLHPoE said:

http://pastebin.com/0FXgPP5C

 

I'm not sure how I would accomplish this without referencing the player. I was thinking about having a static class that would just hold the items in a field so that it won't have to reference any piece of Minecraft at all, but that seems hacky.

The Minecraft class doesn't exist on the server (it's @SideOnly(Side.Client)). To reference it, you need to make methods in your proxies which return the objects you need (i.e. the player) in the client proxy, and throw an exception in the server proxy (because they should never be called from there). I just had (and solved) this problem today - link!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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