Jump to content

[SOLVED] Trying to make IMessageHandler more generic


coolAlias

Recommended Posts

SOLUTION: Update Forge to 1121 or later; on 1060, the IMessage system is apparently still broken, as the following generic class worked perfectly as soon as I updated! Though some may view it as pointless, I think it's pretty f-ing sweet. Now if only I could change the names of fromBytes and toBytes to include 'read' and 'write'.... :P

 

Original post:

 

Hey all,

 

So, I decided to attempt to make an abstract class implementing IMessageHandler to do some of the monotonous work for me, like so:

 

public abstract class AbstractMessage<T extends IMessage> implements IMessage, IMessageHandler <T, IMessage> {

// auto-incrementing byte discriminators should really have been built in from the start... =.=
private static byte packetId = 0;

public static void registerMessages() {
// note that: OpenGuiMessage extends AbstractMessage<OpenGuiMessage>
TestMain.dispatcher.registerMessage(OpenGuiMessage.class, OpenGuiMessage.class, packetId++, Side.SERVER);
}

/**
* Handle a message received on the client side; messages can now only be handled on ONE side
* @return a message to send back to the Server, or null if no reply is necessary
*/
public abstract IMessage handleClientMessage(EntityPlayer player, T message, MessageContext ctx);

/**
* Handle a message received on the server side; messages can now only be handled on ONE side
* @return a message to send back to the Client, or null if no reply is necessary
*/
public abstract IMessage handleServerMessage(EntityPlayer player, T message, MessageContext ctx);

@Override
public IMessage onMessage(T message, MessageContext ctx) {
if (ctx.side == Side.CLIENT) {
return handleClientMessage(Minecraft.getMinecraft().thePlayer, message, ctx);
} else {
return handleServerMessage(ctx.getServerHandler().playerEntity, message, ctx);
}
}
}

 

 

While the code seems like it should work and compiles fine, netty/FML can't seem to figure out what to do with it:

 

java.lang.IllegalStateException: cannot determine the type of the type parameter 'REQ': class cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper
at io.netty.util.internal.TypeParameterMatcher.fail(TypeParameterMatcher.java:171) ~[TypeParameterMatcher.class:?]
at io.netty.util.internal.TypeParameterMatcher.find0(TypeParameterMatcher.java:165) ~[TypeParameterMatcher.class:?]
at io.netty.util.internal.TypeParameterMatcher.find(TypeParameterMatcher.java:93) ~[TypeParameterMatcher.class:?]
at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:60) ~[simpleChannelInboundHandler.class:?]
at io.netty.channel.SimpleChannelInboundHandler.<init>(SimpleChannelInboundHandler.java:50) ~[simpleChannelInboundHandler.class:?]
at cpw.mods.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.<init>(SimpleChannelHandlerWrapper.java:17) ~[simpleChannelHandlerWrapper.class:?]
at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.getHandlerWrapper(SimpleNetworkWrapper.java:85) ~[simpleNetworkWrapper.class:?]
at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.addServerHandlerAfter(SimpleNetworkWrapper.java:73) ~[simpleNetworkWrapper.class:?]
at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:63) ~[simpleNetworkWrapper.class:?]
at testingstuff.network.AbstractMessage.registerMessages(AbstractMessage.java:37) ~[AbstractMessage.class:?]

 

 

I know it's not really necessary, but I find it quite tedious (and messy-looking) having to write out "ctx.getServerHandler().playerEntity" every time I want to get the player, as well as recall which side I'm supposed to be on so that I get the correct player (yeah, it's not that hard, but I prefer it to be REALLY obvious). Making the abstract class do that work for me would just be sweet xD

 

Does anyone have any idea how (or if it's even possible) to get this working?

 

Much obliged,

coolAlias

Link to comment
Share on other sites

player = ctx.getHandler().playerEntity

From then on you only have to type 'player' BOOM magic...

Netty is all about generic data it needs a 1:1 ratio, it also needs to have non-abstract classes.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

player = ctx.getHandler().playerEntity

From then on you only have to type 'player' BOOM magic...

Netty is all about generic data it needs a 1:1 ratio, it also needs to have non-abstract classes.

I guess I need to update my Forge version then (1060 still... yeah, I know >.<); all I have is ctx.getClientHandler(), which doesn't even have a player field, and ctx.getServerHandler(); no generic version exists unless you count ctx.netHandler, but that also doesn't have a player.

 

Well, that will be one annoyance out of the way, sort of; I'd still prefer to just have the player as a parameter, but maybe that's just me. :P

 

Thanks for the reply, though.

Link to comment
Share on other sites

Its just not how netty works, you get a context that holds all the information and go from there.

There may not be a generic way of getting it my point is the 'everytime' argument is invalid as it's a basic programming setup to cache the values you need in easy to reference names.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Its just not how netty works, you get a context that holds all the information and go from there.

There may not be a generic way of getting it my point is the 'everytime' argument is invalid as it's a basic programming setup to cache the values you need in easy to reference names.

Yeah, I understand - I just think it would be even more magical to have the EntityPlayer passed directly to the IMessageHandler#onMessage method (which is also a basic programming practice - passing variables that will likely be needed), but if for whatever reason that's not possible, it's not exactly difficult to create a local reference to a field. It's just irksome :P

 

At any rate, I was just curious if there was a way restructure it for myself using generics, both because it's an interesting exercise in Java and the result would appease my urge to economize the amount of typing I must do and the number of lines in my code. Most certainly not necessary, but an adventure in personal preference, if you will. Certainly you've restructured things to suit your personal tastes, before, no?

Link to comment
Share on other sites

Hi coolAlias

 

(welcome back, long time no see :) )

 

Just a thought - based on another thread on this forum recently, this method might cause you grief on the dedicated server because Minecraft doesn't exist there.

@Override
public IMessage onMessage(T message, MessageContext ctx) {
if (ctx.side == Side.CLIENT) {
return handleClientMessage(Minecraft.getMinecraft().thePlayer, message, ctx);
} else {
return handleServerMessage(ctx.getServerHandler().playerEntity, message, ctx);
}
}
}

Not having done much with 1.7.2 so far, I haven't yet figured out whether the best way to get around that is to put the side-specific stuff into one of the proxy classes, or to register two different handlers on the different sides (is that possible with IMessageHandler?)  Any thoughts?

 

-TGG

 

Link to comment
Share on other sites

Hi TGG,

 

Thanks for the welcome xD I was pretty busy moving and starting a new job, so didn't have much time for modding.

 

I'm pretty sure that the IMessageHandler#onMessage method is the final method called in the chain, so it will be either on the client or the server depending on which direction the packet was sent.

 

Granted, I have only just started messing around with this whole message system (since apparently the first Netty tutorial has a memory leak, though no one has bothered to explain where and why), so I could be wrong, but I assume that when MessageContext.side == CLIENT, that I am actually on the client side so Minecraft.getMinecraft() shouldn't be a problem; otherwise, how could anyone do any client-side processing of their packets? :\

 

Re: registering of message handlers, I don't think you need to worry about partitioning those into the proxy classes; the registration process looks to me like it should work by registering during the FML initialization events without worrying about Side at all, except for as an argument to pass to the method.

 

As far as I understand, IMessageHandler should be implemented by each packet (message), not as a generic catch-all handler like some people used in 1.6 and earlier.

 

All that being said, I've only played with this message stuff for about 2 hours so far, so take all of the above with a grain of salt ;)

 

Cheers,

coolAlias

Link to comment
Share on other sites

Thanks for the welcome xD I was pretty busy moving and starting a new job, so didn't have much time for modding.

Life gets in the way, huh :)  how inconvenient... :)

 

Granted, I have only just started messing around with this whole message system (since apparently the first Netty tutorial has a memory leak, though no one has bothered to explain where and why), so I could be wrong, but I assume that when MessageContext.side == CLIENT, that I am actually on the client side so Minecraft.getMinecraft() shouldn't be a problem; otherwise, how could anyone do any client-side processing of their packets? :\

 

Re: registering of message handlers, I don't think you need to worry about partitioning those into the proxy classes; the registration process looks to me like it should work by registering during the FML initialization events without worrying about Side at all, except for as an argument to pass to the method.

coolAlias

I've into the problem before that a Server-Side class which refers to Client Side classes cause a runtime error before a single line of code gets executed.  I don't know much about Java runtime linking but it seems that the first use of the Server-side class makes the jvm look for all the other classes referred to by the Server-Side class.  Those classes don't exist so it gives a runtime error.  Doesn't make any difference that the client-side classes are unreachable when the Server-side methods are called.

 

Could be I've misinterpreted the cause of the errors I was getting, but in the end I fixed it by moving all references to client-side classes into the proxy class.  It was quite painful actually. 

 

-TGG

 

 

 

 

 

Link to comment
Share on other sites

I've into the problem before that a Server-Side class which refers to Client Side classes cause a runtime error before a single line of code gets executed.  I don't know much about Java runtime linking but it seems that the first use of the Server-side class makes the jvm look for all the other classes referred to by the Server-Side class.  Those classes don't exist so it gives a runtime error.  Doesn't make any difference that the client-side classes are unreachable when the Server-side methods are called.

 

Could be I've misinterpreted the cause of the errors I was getting, but in the end I fixed it by moving all references to client-side classes into the proxy class.  It was quite painful actually. 

 

-TGG

Sure, that can happen if it's a Server-Side class, but this isn't :P If you take another look, you'll see that the Minecraft.getMinecraft() is embedded inside of a method that only gets called when a message (packet) is being processed; this only ever happens on one side or the other (at a time - it could happen on either depending on how you register it), which is why I check the Side first. It's effectively the same as saying "if (world.isRemote) getClientStuff; else getServerStuff", which I'm sure you've seen happen in other methods, e.g. Item#onRightClick, in which you could either spawn an entity (server) or particles (client), neither of which will crash if executed on the correct side.

 

I've definitely experienced what you are talking about though - it was with things like Render, Gui, KeyBindings and those kinds of classes. Basically, any time you are going to reference something that only exists on the client, you must segregate it somehow or you will run into the issue you described.

 

The main problem is for an entire CLASS, such as a Render class that you stuck @SideOnly(Side.CLIENT) above because it's everywhere else in the code (I do that...), or a client-only field that is initialized in-line (i.e. public IIcon[] icons = new IIcon[3] <- crash), when you go to register that class, there is no segregation of sides done by default, so you must either check yourself (using something like FML's getEffectiveSide if you don't have a world object) or delegate to the Proxy classes (much cleaner and easier).

 

Same idea for something like Minecraft.getMinecraft() - as long as you can segregate the call and ensure it happens on the client side, nothing averse will come of it.

 

Anyway, my AbstractMessage class seems to be working just fine now, so I'm pretty happy with that xD I still need to test it in a multiplayer scenario, but I suspect it won't have any problems.

 

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • My forge 1.12.2 server is very slow and laggy. The reason is probably because every 5 seconds, the console spits out this message (or smth like it):   Running 15ms behind! Is the server overloaded? Skipping 60 ticks (example, but keeps sending messages just like it)   I've been trying to allocate ram to fix this issue. How can I do this on 1.12.2? There is no jvm args.txt, like in 1.20.1.  
    • I am trying to play an old modpack on curseforge but I can't even get to the main screen before this error message pops up. Can anyone tell me how to fix this?     pw.mods.fml.common.LoaderException: java.lang.ExceptionInInitializerError     at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)     at cpw.mods.fml.common.Loader.loadMods(Loader.java:544)     at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:208)     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:480)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:878)     at net.minecraft.client.main.Main.main(SourceFile:148)     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.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28) Caused by: java.lang.ExceptionInInitializerError     at java.lang.Class.forName0(Native Method)     at java.lang.Class.forName(Class.java:348)     at cpw.mods.fml.common.ProxyInjector.inject(ProxyInjector.java:59)     at cpw.mods.fml.common.FMLModContainer.constructMod(FMLModContainer.java:512)     at sun.reflect.GeneratedMethodAccessor4.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 cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)     at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)     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 cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)     at cpw.mods.fml.common.Loader.loadMods(Loader.java:513)     ... 10 more Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1     at com.google.gson.Gson.fromJson(Gson.java:815)     at com.google.gson.Gson.fromJson(Gson.java:768)     at com.google.gson.Gson.fromJson(Gson.java:717)     at com.google.gson.Gson.fromJson(Gson.java:689)     at net.ilexiconn.llibrary.client.ClientProxy.<clinit>(ClientProxy.java:34)     ... 35 more Caused by: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1     at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:338)     at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:70)     at com.google.gson.Gson.fromJson(Gson.java:803)     ... 39 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- System Details -- Details:     Minecraft Version: 1.7.10     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 482358976 bytes (460 MB) / 1571815424 bytes (1499 MB) up to 3280994304 bytes (3129 MB)     JVM Flags: 3 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx3520m -Xms256m     AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used     IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0     FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1566 151 mods loaded, 151 mods active     States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored     UC    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)      UC    FML{7.10.99.99} [Forge Mod Loader] (forge-1.7.10-10.13.4.1566-1.7.10.jar)      UC    Forge{10.13.4.1566} [Minecraft Forge] (forge-1.7.10-10.13.4.1566-1.7.10.jar)      UC    appliedenergistics2-core{rv2-stable-10} [AppliedEnergistics2 Core] (minecraft.jar)      UC    CodeChickenCore{1.0.7.47} [CodeChicken Core] (minecraft.jar)      UC    MobiusCore{1.2.5} [MobiusCore] (minecraft.jar)      UC    NotEnoughItems{1.0.5.120} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.5.120-universal.jar)      UC    voltzenginepreloader{0.0.1} [Voltz Engine Preloader] (minecraft.jar)      UC    <CoFH ASM>{000} [CoFH ASM] (minecraft.jar)      UC    FastCraft{1.25} [FastCraft] (fastcraft-1.25.jar)      UC    debug{1.0} [debug] (denseores-1.6.2.jar)      UC    ExtendedPotions{1.2} [Extended Potions] (ExtendedPotions-MC1.7.10-1.2.jar)      UC    securitycraft{v1.8.13} [SecurityCraft] ([1.7.10] SecurityCraft v1.8.13.jar)      UC    DamageIndicatorsMod{3.2.0} [Damage Indicators] ([1.7.10]DamageIndicatorsMod-3.2.0.jar)      UC    movillages{1.4.2} [Mo' Villages] ([1.7.10]MoVillages-1.4.2.jar)      UC    Baubles{1.0.1.10} [Baubles] (Baubles-1.7.10-1.0.1.10.jar)      UC    adventurebackpack{1.7.10-0.8b} [Adventure Backpack] (adventurebackpack-1.7.10-0.8c.jar)      UC    AnimationAPI{1.2.4} [AnimationAPI] (AnimationAPI-1.7.10-1.2.4.jar)      UC    appliedenergistics2{rv2-stable-10} [Applied Energistics 2] (appliedenergistics2-rv2-stable-10.jar)      UC    ArchimedesShips{1.7.10 v1.7.1} [Archimedes' Ships] (ArchimedesShips-1.7.1.jar)      UC    bookshelf{1.0.4.187} [Bookshelf] (Bookshelf-1.7.10-1.0.4.187.jar)      UC    betterboat{1.1.0} [Better Boat] (BetterBoat-1.7.10-1.1.0.jar)      UC    betterbuilderswands{0.8.1} [Better Builder's Wands] (BetterBuildersWands-0.8.1-1.7.10r92+aec06c3.jar)      UC    BiblioCraft{1.11.7} [BiblioCraft] (BiblioCraft[v1.11.7][MC1.7.10].jar)      UC    Mantle{1.7.10-0.3.2.jenkins191} [Mantle] (Mantle-1.7.10-0.3.2b.jar)      UC    Natura{2.2.0} [Natura] (natura-1.7.10-2.2.0.1.jar)      UC    BiomesOPlenty{2.1.0} [Biomes O' Plenty] (BiomesOPlenty-1.7.10-2.1.0.1889-universal.jar)      UC    BiblioWoodsBoP{1.9} [BiblioWoods Biomes O'Plenty Edition] (BiblioWoods[BiomesOPlenty][v1.9].jar)      UC    ExtrabiomesXL{3.16.4} [ExtrabiomesXL] (extrabiomesxl_1.7.10-3.16.4.jar)      UC    BiblioWoodsEBXL{1.4} [BiblioWoods ExtraBiomesXL Edition] (BiblioWoods[ExtraBiomesXL][v1.4].jar)      UC    IC2{2.2.827-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.827-experimental.jar)      UC    CoFHCore{1.7.10R3.1.4} [CoFH Core] (CoFHCore-[1.7.10]3.1.4-329.jar)      UC    Forestry{4.2.16.64} [Forestry for Minecraft] (forestry_1.7.10-4.2.16.64.jar)      UC    BiblioWoodsForestry{1.7} [BiblioWoods Forestry Edition] (BiblioWoods[Forestry][v1.7].jar)      UC    BiblioWoodsNatura{1.5} [BiblioWoods Natura Edition] (BiblioWoods[Natura][v1.5].jar)      UC    ThermalFoundation{1.7.10R1.2.6} [Thermal Foundation] (ThermalFoundation-[1.7.10]1.2.6-118.jar)      UC    ThermalExpansion{1.7.10R4.1.5} [Thermal Expansion] (ThermalExpansion-[1.7.10]4.1.5-248.jar)      UC    BigReactors{0.4.3A} [Big Reactors] (BigReactors-0.4.3A.jar)      UC    Thaumcraft{4.2.3.5} [Thaumcraft] (Thaumcraft-1.7.10-4.2.3.5.jar)      UC    Botania{r1.8-249} [Botania] (Botania r1.8-249.jar)      UC    BuildCraft|Core{7.1.23} [BuildCraft] (buildcraft-7.1.23.jar)      UC    BuildCraft|Transport{7.1.23} [BC Transport] (buildcraft-7.1.23.jar)      UC    BuildCraft|Factory{7.1.23} [BC Factory] (buildcraft-7.1.23.jar)      UC    BuildCraft|Silicon{7.1.23} [BC Silicon] (buildcraft-7.1.23.jar)      UC    BuildCraft|Robotics{7.1.23} [BC Robotics] (buildcraft-7.1.23.jar)      UC    BuildCraft|Energy{7.1.23} [BC Energy] (buildcraft-7.1.23.jar)      UC    BuildCraft|Builders{7.1.23} [BC Builders] (buildcraft-7.1.23.jar)      UC    Railcraft{9.12.2.0} [Railcraft] (Railcraft_1.7.10-9.12.2.0.jar)      UC    TwilightForest{2.3.7} [The Twilight Forest] (twilightforest-1.7.10-2.3.7.jar)      UC    ForgeMultipart{1.2.0.345} [Forge Multipart] (ForgeMultipart-1.7.10-1.2.0.345-universal.jar)      UC    chisel{2.9.5.11} [Chisel] (Chisel-2.9.5.11.jar)      UC    CarpentersBlocks{3.3.8.1} [Carpenter's Blocks] (Carpenter's Blocks v3.3.8.1 - MC 1.7.10.jar)      UC    ChickenChunks{1.3.4.19} [ChickenChunks] (ChickenChunks-1.7.10-1.3.4.19-universal.jar)      UC    chunkpregenerator{2.1} [Chunk Pregenerator] (Chunk Pregenerator V1.7.10-2.1.jar)      UC    customnpcs{1.7.10d} [CustomNpcs] (CustomNPCs_1.7.10d(29oct17).jar)      UC    PTRModelLib{1.0.0} [PTRModelLib] (Decocraft-2.4.2_1.7.10.jar)      UC    props{2.4.2} [Decocraft] (Decocraft-2.4.2_1.7.10.jar)      UC    dldungeonsjdg{1.11.0} [Doomlike Dungeons] (DoomlikeDungeons-1.11.0-MC1.7.10.jar)      UC    DynamicLights{1.3.9a} [Dynamic Lights] (Dynamic Lights-1.3.9a-MC1.7.10.jar)      UC    emeraldmod{3.5.1} [EmeraldMod] (Emerald-Mod-1.7.10_1.jar)      UC    Mekanism{9.1.1} [Mekanism] (Mekanism-1.7.10-9.1.1.1031.jar)      UC    EnderIO{1.7.10-2.2.8.381} [Ender IO] (EnderIO-1.7.10-2.2.8.381.jar)      UC    EnderStorage{1.4.7.37} [EnderStorage] (EnderStorage-1.7.10-1.4.7.37-universal.jar)      UC    Waila{1.5.10} [Waila] (Waila-1.5.10_1.7.10.jar)      UC    extracells{2.3.14} [Extra Cells 2] (ExtraCells-1.7.10-2.3.14b200.jar)      UC    ExtraUtilities{1.2.12} [Extra Utilities] (extrautilities-1.2.12.jar)      UC    fastleafdecay{1.4} [Fast Leaf Decay] (FastLeafDecay-1.7.10-1.4.jar)      UC    FoodExpansion{1.0} [Food Expansion] (FoodExpansion1.1.1-mc1.7.10.jar)      UC    FpsReducer{mc1.7.10-1.10.3} [FPS Reducer] (FpsReducer-mc1.7.10-1.10.3.jar)      UC    FTBL{1.0.18.2} [FTBLib] (FTBLib-1.7.10-1.0.18.3.jar)      UC    FTBU{1.0.18.2} [FTBUtilities] (FTBUtilities-1.7.10-1.0.18.3.jar)      UC    fw{1.3.0} [Fullscreen Windowed] (FullscreenWindowed-1.7.10-1.3.0b.jar)      UC    gravestone{0.7.10.3} [Gravestone] (GraveStone Mod 0.7.10.3.jar)      UC    GrimoireOfGaia{1.0.0} [Grimoire of Gaia 3] (GrimoireOfGaia3-1.7.10-1.2.7.jar)      UC    TConstruct{1.7.10-1.8.8.build988} [Tinkers' Construct] (TConstruct-1.7.10-1.8.8.jar)      UC    voltzengine{1.9.14.302} [Voltz Engine] (VoltzEngine-1.7.10-1.9.14b302.jar)      UC    icbm{2.15.4.497} [ICBM] (ICBM-1.7.10-2.15.4b497.jar)      UC    icbmclassic{2.16.2.205} [ICBM-Classic] (ICBM-classic-1.7.10-2.16.2b205.jar)      UC    infinitycraft{1.0.0} [Infinity Craft] (infinitycraft-1.0.jar)      UC    InventoryPets{1.4.9.9b} [Inventory Pets] (inventorypets-1.7.10-1.4.9.9b-universal.jar)      UC    IronChest{6.0.62.742} [Iron Chest] (ironchest-1.7.10-6.0.62.742-universal.jar)      UC    ItsRainingFood{1.0.2} [It's Raining Food] (itsrainingfood-1.7.10-1.0.4.jar)      UC    JABBA{1.2.2} [JABBA] (Jabba-1.2.2_1.7.10.jar)      UC    journeymap{5.1.4p2} [JourneyMap] (journeymap-1.7.10-5.1.4p2-unlimited.jar)      UE    llibrary{1.5.1} [LLibrary] (llibrary-1.5.1-1.7.10.jar)      UE    jurassicraft{1.5.0} [JurassiCraft] (JurassiCraft-1.4.0.jar)      UC    LogisticsPipes{0.9.3.132} [Logistics Pipes] (logisticspipes-0.9.3.132.jar)      UC    lootbags{2.0.17} [Loot Bags] (LootBags-1.7.10-2.0.17.jar)      UC    magicalcrops{1.7.2 - 0.1 ALPHA} [Magical Crops] (magicalcrops-1.7.10_0.1.jar)      UC    MagicBees{2.4.4} [Magic Bees] (magicbees-1.7.10-2.4.4.jar)      UC    malisiscore{1.7.10-0.14.3} [MalisisCore] (malisiscore-1.7.10-0.14.3.jar)      UC    malisisdoors{1.7.10-1.13.2} [Malisis' Doors] (malisisdoors-1.7.10-1.13.2.jar)      UC    MekanismGenerators{9.1.1} [MekanismGenerators] (MekanismGenerators-1.7.10-9.1.1.1031.jar)      UC    MekanismTools{9.1.1} [MekanismTools] (MekanismTools-1.7.10-9.1.1.1031.jar)      UC    MobProperties{1.0.2} [Mob Properties] (MobProperties-1.7.10-1.0.2.jar)      UC    morechisels{@VERSION@} [More Chisels] (MoreChisels-1.7.10-1.0-28.jar)      UC    Morpheus{1.7.10-1.6.21} [Morpheus] (Morpheus-1.7.10-1.6.21.jar)      UC    MouseTweaks{2.4.4} [Mouse Tweaks] (MouseTweaks-2.4.4-mc1.7.10.jar)      UC    cfm{3.4.7} [§9MrCrayfish's Furniture Mod] (MrCrayfishFurnitureModv3.4.7(1.7.10).jar)      UC    MutantCreatures{1.4.9} [Mutant Creatures] (MutantCreatures-1.7.10-1.4.9.jar)      UC    NEIAddons{1.12.14.40} [NEI Addons] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|Developer{1.12.14.40} [NEI Addons: Developer Tools] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|AppEng{1.12.14.40} [NEI Addons: Applied Energistics 2] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|Botany{1.12.14.40} [NEI Addons: Botany] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|Forestry{1.12.14.40} [NEI Addons: Forestry] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|CraftingTables{1.12.14.40} [NEI Addons: Crafting Tables] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    NEIAddons|ExNihilo{1.12.14.40} [NEI Addons: Ex Nihilo] (neiaddons-1.12.14.40-mc1.7.10.jar)      UC    neiintegration{1.1.2} [NEI Integration] (NEIIntegration-MC1.7.10-1.1.2.jar)      UC    NEIlootbags{1.1.3} [NEIlootbags] (NEIlootbags-1.7.10-1.1.3.jar)      UC    NetherOres{1.7.10R2.3.1} [Nether Ores] (NetherOres-[1.7.10]2.3.1-22.jar)      UC    OreSpawn{1.7.10.20.3} [OreSpawn] (orespawn-1.7.10-20.3.zip)      UC    origin{8.0.3} [Origin] (Origin-1.7.10-8.0.3.jar)      UC    addonscrewdriver{1.0.0} [OriginAddonScrewdriver] (Origin-1.7.10-8.0.3.jar)      UC    getalltheseeds{1.7.10a} [Pam's Get all the Seeds!] (Pam's Get all the Seeds 1.7.10a.jar)      UC    harvestcraft{1.7.10j} [Pam's HarvestCraft] (Pam's HarvestCraft 1.7.10Lb.jar)      UC    simplerecipes{1.7.10a} [Pam's Simple Recipes] (Pam's Simple Recipes 1.7.10a.jar)      UC    pandorasbox{2.0.1} [Pandora's Box] (PandorasBox-2.1.jar)      UC    ProjectE{1.7.10-PE1.10.1} [ProjectE] (ProjectE-1.7.10-PE1.10.1.jar)      UC    MrTJPCoreMod{1.1.0.33} [MrTJPCore] (MrTJPCore-1.1.0.33-universal.jar)      UC    ProjRed|Core{4.7.0pre12.95} [ProjectRed Core] (ProjectRed-1.7.10-4.7.0pre12.95-Base.jar)      UC    ProjRed|Transmission{4.7.0pre12.95} [ProjectRed Transmission] (ProjectRed-1.7.10-4.7.0pre12.95-Integration.jar)      UC    ProjRed|Transportation{4.7.0pre12.95} [ProjectRed Transportation] (ProjectRed-1.7.10-4.7.0pre12.95-Mechanical.jar)      UC    ProjRed|Compatibility{4.7.0pre12.95} [ProjectRed Compatibility] (ProjectRed-1.7.10-4.7.0pre12.95-Compat.jar)      UC    ProjRed|Integration{4.7.0pre12.95} [ProjectRed Integration] (ProjectRed-1.7.10-4.7.0pre12.95-Integration.jar)      UC    ProjRed|Illumination{4.7.0pre12.95} [ProjectRed Illumination] (ProjectRed-1.7.10-4.7.0pre12.95-Lighting.jar)      UC    ProjRed|Expansion{4.7.0pre12.95} [ProjectRed Expansion] (ProjectRed-1.7.10-4.7.0pre12.95-Mechanical.jar)      UC    ResourceLoader{1.3} [Resource Loader] (ResourceLoader-MC1.7.10-1.3.jar)      UC    Roguelike{1.5.0} [Roguelike Dungeons] (roguelike-1.7.10-1.5.0b.jar)      UC    runicdungeons{1.1.7b} [Runic Dungeons] (RunicDungeons-1.1.7b.jar)      UC    secretroomsmod{4.7.1} [The SecretRoomsMod] (secretroomsmod-1.7.10-4.7.1.413.jar)      UC    StorageDrawers{1.7.10-1.10.9} [Storage Drawers] (StorageDrawers-1.7.10-1.10.9.jar)      UC    Teletubbies{0.5.4} [Teletubbies] (Teletubbies-1.7.10-0.5.4.jar)      UC    TextureGeneratorLib{0.2} [TextureGeneratorLib] (TextureGeneratorLib-1.7.10_vBeta2.jar)      UC    Translocator{1.1.2.16} [Translocator] (Translocator-1.7.10-1.1.2.16-universal.jar)      UC    vampirism{0.7.9} [Vampirism] (Vampirism-1.7.10-0.7.9.jar)      UC    VeinMiner{0.36.0_1.7.10-28a7f13} [Vein Miner] (VeinMiner-1.7.10-0.36.0.496+28a7f13.jar)      UC    VeinMinerModSupport{0.36.0_1.7.10-28a7f13} [Mod Support] (VeinMiner-1.7.10-0.36.0.496+28a7f13.jar)      UC    voltzenginemodcompat{1.9.14.302} [Voltz Engine Mod Compatibility Loader] (VoltzEngine-1.7.10-1.9.14b302.jar)      UC    voltzenginemodflag{1.9.14.302} [VoltzEngine mod protection, flag, and region system] (VoltzEngine-1.7.10-1.9.14b302.jar)      UC    WailaHarvestability{1.1.6} [Waila Harvestability] (WailaHarvestability-mc1.7.10-1.1.6.jar)      UC    wawla{1.3.1} [What Are We Looking At] (Wawla-1.0.5.120.jar)      UC    witchery{0.24.1} [Witchery] (witchery-1.7.10-0.24.1.jar)      UC    WTFCore{1.7} [WhiskyTangoFox's Core] (WTFCore-1.7.10_v1.7.jar)      UC    CaveBiomes{1.6} [WhiskyTangoFox's CaveBiomes] (WTFCaveBiomes-1.7.10_v1.6.jar)      UC    YAFM{1.0.3} [Yet Another Food Mod] (yafm-1.0.3.jar)      UC    McMultipart{1.2.0.345} [Minecraft Multipart Plugin] (ForgeMultipart-1.7.10-1.2.0.345-universal.jar)      UC    ForgeRelocation{0.0.1.4} [ForgeRelocation] (ForgeRelocation-0.0.1.4-universal.jar)      UC    MCFrames{1.0} [MCFrames] (ForgeRelocation-0.0.1.4-universal.jar)      UC    RelocationFMP{0.0.1.2} [RelocationFMP] (ForgeRelocationFMP-0.0.1.2-universal.jar)      UC    denseores{1.0} [Dense Ores] (denseores-1.6.2.jar)      UC    ForgeMicroblock{1.2.0.345} [Forge Microblocks] (ForgeMultipart-1.7.10-1.2.0.345-universal.jar)      GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 536.23' Renderer: 'NVIDIA GeForce RTX 3090 Ti/PCIe/SSE2'     AE2 Version: stable rv2-stable-10 for Forge 10.13.2.1291     Mantle Environment: Environment healthy.     CoFHCore: -[1.7.10]3.1.4-329     ThermalFoundation: -[1.7.10]1.2.6-118     ThermalExpansion: -[1.7.10]4.1.5-248     TConstruct Environment: Environment healthy.     NetherOres: -[1.7.10]2.3.1-22
    • Update your AMD/ATI drivers - get the latest drivers from their website - do not update via system
    • I've been having this problem for a really long time now, i can run fabric fine and all but i want to play forge. I've tried to: Update my drivers, reinstall forge, reinstall minecraft. But after all of that, i still have the problem. Here is my crash report; https://paste.ee/p/w0FDJ Help!!  
  • Topics

×
×
  • Create New...

Important Information

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