Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Using the Simple Network Implementation (SimpleNetworkWrapper) [1.7+]


Recommended Posts

This tutorial is old, please refer to the official documentation instead!

 

This is the recommended way to do Packets as of 1.7, it is not advised to use Netty directly, because it can cause Problems.

 

First, we are going to need to obtain a

SimpleNetworkWrapper
 

instance for our Channel. You get it by calling

NetworkRegistry.INSTANCE.newSimpleChannel("myChannel")
 

. Store the result in a static field in your Mod class.

 

Registering a Packet

Packets are done via separate classes for every Packet-ID (in the code also referred to as "discriminator"). If you are used to the huge

switch
 

-

case
 

statements like many people did it in 1.6, well, it's time to move on.

For each Packet you want to send, we are going to need 2 classes, one for the Packet (implementing

IMessage
 

) and one for handling the Packet (implementing

IMessageHandler
 

). For a cleaner setup I usually implement the handler as an inner class of the Packet (see below).

To register your Packet, call

registerMessage(MyMessageHandler.class, MyMessage.class, packetID, receivingSide)
 

on the wrapper you obtained. The first two parameters should be self-explanatory. PacketID is the same as it was in 1.6, usually you can start at 0 and just increment by one for each packet you add. Keep in mind that the maximum PacketID you can use is 255. The receiving side is, well, the side that should receive the packet. Can be one of

Side.CLIENT
 

or

Side.SERVER
 

.

 

Implementing the packet class

The IMessage interface requires you to implement two methods.

fromBytes
 

and

toBytes
 

. You can think of the IMessage as a blob of data that gets send over the network. Because the network is only a stream bytes, you have to serialize and deserialize your message into this stream of bytes. That is what these two methods do.

toBytes
 

writes your data to the stream (use the

write***
 

methods on the ByteBuf for that) and

fromBytes
 

reads your data back into the message class (use the

read***
 

methods for that).

Keep in mind that your packet class must always have a default constructor, otherwise FML cannot use it.

 

Implementing the packet handler

The IMessageHandler simply requires one method,

onMessage
 

. This method is called when your packet is received, after the IMessage instance has been created and

fromBytes
 

has been called.

Do whatever you want your packet to do in this method.

Warning for Minecraft 1.8: As of Minecraft 1.8

onMessage
 

is no longer called on the main thread but on the Netty-IO-Thread instead. Therefor you must not interact with the World or other "normal Minecraft-y things" in here directly. Instead you must schedule your code to be run on the main thread, which is done through the

IThreadListener
 

interface and it's

addScheduledTask
 

method. The

Runnable
 

you pass to this method will be executed on the main thread. The

IThreadListener
 

instance is

Minecraft.getMinecraft()
 

on the client and

(WorldServer) ctx.getServerHandler().playerEntity.worldObj
 

on the server. See below for examples.

 

Sending packets

The SimpleNetworkWrapper provides you with methods to send IMessage instances to various targets. They should be pretty self-explanatory (

sendToServer
 

,

sendTo
 

, etc.).

If a vanilla packet is needed from your IMessage (for use e.g. as a TileEntity description packet) you can use the

getPacketFrom
 

method.

 

Packet-Responses

The IMessageHandler has a built-in response functionality. Say you send a packet from the client to the server, then you can easily just send a response directly from the

onMessage
 

method, by returning it. That is also what the 2nd type-parameter on IMessageHandler is used for, although leaving it at IMessage doesn't hurt, even if you do have a reply message.

 

Code-Examples (not made for copy & paste)

@Mod
class MyMod {
    
    public static SimpleNetworkWrapper network;
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {
       network = NetworkRegistry.INSTANCE.newSimpleChannel("MyChannel");
       network.registerMessage(MyMessage.Handler.class, MyMessage.class, 0, Side.SERVER);
       // network.registerMessage(SecondMessage.Handler.class, SecondMessage.class, 1, Side.CLIENT);
       // ...
    }

}

class MyMessage implements IMessage {
    
    private String text;

    public MyMessage() { }

    public MyMessage(String text) {
        this.text = text;
    }

    @Override
    public void fromBytes(ByteBuf buf) {
        text = ByteBufUtils.readUTF8String(buf); // this class is very useful in general for writing more complex objects
    }

    @Override
    public void toBytes(ByteBuf buf) {
        ByteBufUtils.writeUTF8String(buf, text);
    }

    public static class Handler implements IMessageHandler<MyMessage, IMessage> {
        
        @Override
        public IMessage onMessage(MyMessage message, MessageContext ctx) {
            System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
            return null; // no response in this case
        }

        // or in 1.8:
        @Override
        public IMessage onMessage(MyMessage message, MessageContext ctx) {
            IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj; // or Minecraft.getMinecraft() on the client
            mainThread.addScheduledTask(new Runnable() {
                @Override
                public void run() {
                    System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName()));
                }
            });
            return null; // no response in this case
        }
    }
}

// Sending packets:
MyMod.network.sendToServer(new MyMessage("foobar"));
MyMod.network.sendTo(new SomeMessage(), somePlayer);
 
Edited by diesieben07
  • Like 1
Link to comment
Share on other sites

  • 5 weeks later...
  • 1 month later...
  • 2 months later...

Something I discovered the hard way - obvious in retrospect, but hey.

If you intend to send a one-way message from the server to the client, your registerMessage should run on the server side code.  Otherwise, if your registerMessage is called from the client side code (logical, since you only need a client side handler), then registerMessage is not called on the dedicated server, and when the dedicated server sends a message, it uses the wrong discriminator.

 

In summary- call registerMessage from common or server-side-only code.

 

-TGG

 

Link to comment
Share on other sites

If you intend to send a one-way message from the server to the client, your registerMessage should run on the server side code.  Otherwise, if your registerMessage is called from the client side code (logical, since you only need a client side handler), then registerMessage is not called on the dedicated server, and when the dedicated server sends a message, it uses the wrong discriminator.

I am not sure I follow you here.

First of all, messages are always one-way.

And then you should call registerMethod for every message on both sides, no matter where it is received.

Link to comment
Share on other sites

If you intend to send a one-way message from the server to the client, your registerMessage should run on the server side code.  Otherwise, if your registerMessage is called from the client side code (logical, since you only need a client side handler), then registerMessage is not called on the dedicated server, and when the dedicated server sends a message, it uses the wrong discriminator.

I am not sure I follow you here.

First of all, messages are always one-way.

Well, yes, except that you can use the same message class to communicate from server to client and then from client back to server again.

 

And then you should call registerMethod for every message on both sides, no matter where it is received.

Yeah, I guess that's what I mean.  I think the registerMessage is confusing because it looks like a handler registration.

 

For example, if I'm sending a message from the server to the client, it's obvious that I need to call

registerMessage(myClientSideHandler, MyMessage, myMessageTypeID, Side.CLIENT);

in order for my client side to receive messages.  A logical place for this is from the constructor or initialiser of the client-side class which needs to receive these messages, or perhaps from the clientproxy init.

 

If I never send this message from the client to the server, I might not bother to call registerMessage on the server side.  Why would I, since there is no server side handler?

registerMessage(null, MyMessage, myMessageTypeID, Side.SERVER);  -?

 

This works fine in Integrated Server.  It fails silently on the dedicated server, because the message sends with a default myMessageTypeID (discriminator) of zero.

 

-TGG

 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

Well, yes, except that you can use the same message class to communicate from server to client and then from client back to server again.

Well, no, you can't.

For example, if I'm sending a message from the server to the client, it's obvious that I need to call

registerMessage(myClientSideHandler, MyMessage, myMessageTypeID, Side.CLIENT);

in order for my client side to receive messages.  A logical place for this is from the constructor or initialiser of the client-side class which needs to receive these messages, or perhaps from the clientproxy init.

 

If I never send this message from the client to the server, I might not bother to call registerMessage on the server side.  Why would I, since there is no server side handler?

registerMessage(null, MyMessage, myMessageTypeID, Side.SERVER);  -?

 

This works fine in Integrated Server.  It fails silently on the dedicated server, because the message sends with a default myMessageTypeID (discriminator) of zero.

No no no no no.

You always call registerMessage for both sides. Always. The sending side needs the registration, too, otherwise it would not know the PacketID to use for that IMessage class.

Link to comment
Share on other sites

For interested folks, a summary after further discussion:

 

Recommended to call registerMessage in either Mod.preInit or CommonProxy.preInit.

 

for example

CommonProxy::
preInit() {
           // for handlers which receive the message on the Client side:
  registerMessage(MyClientMessageHandler.class, MyMessage.class, MY_MESSAGE_DISCRIMINATOR_BYTE, Side.CLIENT);      
          // for handlers which receive the message on the Server side:
  registerMessage(MyServerMessageHandler.class, MyMessage.class, MY_MESSAGE_DISCRIMINATOR_BYTE, Side.SERVER);      
}

It's ok to send the same message from client to server and then back from server to client.  Just registerMessage on both Side.CLIENT and Side.SERVER, preferably using two different handler classes. 

 

Link to comment
Share on other sites

  • 2 weeks later...

Ok, so let me make sure I understand this, because I've been struggling on this for a while.

 

Every time that we want to make a new packet we have to make a new class and handler for that packet?

Lets say a "button pressed", for lack of better example.

It would need to be.

 

 

public class ButtonPressed implements IMessage{
     public void fromBytes(ByteBuf buf){
     //CODE
    }

      public void toBytes(ByteBuf buf){
     //CODE
    }

}

 

Does that mean that we have to add another handler since the one in the example implements MyMessage class.

 

The it would be register as such in the main mod class preInit()

network.registerMessage(ButtonPressed.Handler.class, ButtonPressed.class, 3, Side.CLIENT);

 

 

Link to comment
Share on other sites

  • 3 weeks later...

I think I'm using the Simple Network Implementation the wrong way. I want to change a boolean of a TileEntity when I click a button in the GUI. I now have this but I don't think I'm supposed to do it like this.

 

 

package com.ives.supermod.network;

import com.ives.supermod.block.TileEntityConductor;
import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import io.netty.buffer.ByteBuf;
import net.minecraft.tileentity.TileEntity;

/**
* Created by Ives on 11/24/2014.
*/
public class ConductorPacket implements IMessage {
    String message;
    int x, y, z;
    int importMode = 0;

    public ConductorPacket() {
    }

    public ConductorPacket(String message, int x, int y, int z, boolean importMode) {
        this.message = message;
        this.x = x;
        this.y = y;
        this.z = z;
        this.importMode = importMode ? 1 : 0;
    }

    @Override
    public void fromBytes(ByteBuf buf) {
        message = ByteBufUtils.readUTF8String(buf);
        x = ByteBufUtils.readVarInt(buf, 5);
        y = ByteBufUtils.readVarInt(buf, 5);
        z = ByteBufUtils.readVarInt(buf, 5);
        importMode = ByteBufUtils.readVarInt(buf, 1);
    }

    @Override
    public void toBytes(ByteBuf buf) {
        ByteBufUtils.writeUTF8String(buf, message);
        ByteBufUtils.writeVarInt(buf, x, 5);
        ByteBufUtils.writeVarInt(buf, y, 5);
        ByteBufUtils.writeVarInt(buf, z, 5);
        ByteBufUtils.writeVarInt(buf, importMode, 1);
    }


    public static class ConductorHandler implements IMessageHandler<ConductorPacket, IMessage> {

        @Override
        public IMessage onMessage(ConductorPacket message, MessageContext ctx) {
            System.out.println("Got packet: "  + message.message);
            TileEntity te = ctx.getServerHandler().playerEntity.getEntityWorld().getTileEntity(message.x, message.y, message.z);
            boolean modeImport;
            if(message.importMode == 1)
                modeImport = true;
            else
                modeImport = false;

            if(te instanceof TileEntityConductor) {
                ((TileEntityConductor) te).setImportMode(modeImport);
            }
            return null;
        }
    }
}

 

Link to comment
Share on other sites

@Ives: That is more or less correct, but you don't need to send the coordinates of the TileEntity, as the server knows which TE the player is interacting with through the player's current Container. That also ensures that they cannot just change the values in any arbitrary TileEntity (prevents possible hacks).

If you have further questions, please open a new Thread.

Link to comment
Share on other sites

  • 3 weeks later...

Well, yes, except that you can use the same message class to communicate from server to client and then from client back to server again.

Well, no, you can't.

What is the reason that you say one cannot use the same message/handler class to communicate both ways? In my experience, you most certainly can - I've even used the exact same IMessageHandler to handle both sides in certain cases when the message acts identically regardless of where it is received (rare, but it can happen), and can also use one handler that just splits handling based on current side (i.e. if world.isRemote handle client stuff, else server).

 

As for registration, I think people are confusing 'sides': you need to register messages somewhere that both client and server will know how you registered it (i.e. NOT in your ClientProxy), BUT you CAN register a message/handler to a single side, e.g. if you are only going to send it to the server, only register it to the Side.SERVER, or register it twice using the same id if you are going to be sending it both directions.

 

Keep in mind that my comments here are based on my experience from using it, not from actual knowledge of SNW's implementation details - if it shouldn't be done this way, can you please explain why? Thanks!

Link to comment
Share on other sites

  • 1 month later...

I tried to implement it, but somehow it doesn't recognize my AddedCyberneticMessage class as proper argument for registerMessage :/

 

Any Idea why?

    public void preInit(FMLPreInitializationEvent e) {
    	proxy.preInit(e);
    	network = NetworkRegistry.INSTANCE.newSimpleChannel("MyChannel");
        network.registerMessage(AddedCyberneticsMessageHandler.class, AddedCyberneticsMessage.class, 0, Side.CLIENT);
    }

 

public class AddedCyberneticsMessageHandler implements IMessageHandler {

@Override
public IMessage onMessage(IMessage message, MessageContext ctx) {
	// TODO Auto-generated method stub
	return null;
}

public static class AddedCyberneticsMessage implements IMessage{

	String addedCybernetic;

	public AddedCyberneticsMessage(){

	}

	public AddedCyberneticsMessage(String cybernetic){

	}

	@Override
	public void fromBytes(ByteBuf buf) {
		// TODO Auto-generated method stub

	}

	@Override
	public void toBytes(ByteBuf buf) {
		// TODO Auto-generated method stub

	}



}

}

Link to comment
Share on other sites

  • 3 months later...

Great tutorial!  I had a question though.

 

I am forced to using a client side only method and it gets position of a block, then destroys it.

On single player it works wonderfully, but on multiplayer it doesn't.  How would I update the variable on the server side to hold the BlockPos.

 

My code that uses the Client Side Only method

 

 

        //when Right clicked

public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player)

    {

if(world.isRemote){

lastPos = player.rayTrace(200, 1.0f);

    }

Link to comment
Share on other sites

You can't. Destroying a block must happen on the server, so you cannot use a client-only method. In this case you can just copy the contents of the method.

Not sure what it has to do with this tutorial, if you have more issues, please make a separate topic.

Link to comment
Share on other sites

  • 2 months later...

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • Crash log: ------------------------------------- Translated Report (Full Report Below) ------------------------------------- Incident Identifier: 7CAA4B03-8F62-4A2F-8A43-CBD007A415A5 CrashReporter Key:   ED6F8700-AF0C-6974-E3A4-CD80287AB607 Hardware Model:      MacBookAir10,1 Process:             CurseForge [10814] Path:                /Applications/CurseForge.app/Contents/MacOS/CurseForge Identifier:          com.overwolf.curseforge Version:             0.191.1-0 (0.191.1-0) Code Type:           X86-64 (Native) Role:                Default Parent Process:      launchd [1] Coalition:           com.overwolf.curseforge [8558] Date/Time:           2022-01-26 10:12:59.2167 -0500 Launch Time:         2022-01-26 10:12:59.2034 -0500 OS Version:          macOS 12.1 (21C52) Release Type:        User Report Version:      104 Exception Type:  EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x00007ff7ffcfdaf8 Exception Note:  EXC_CORPSE_NOTIFY Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Terminating Process: exc handler [10814] Triggered by Thread:  0 Application Specific Information: rosetta error: /var/db/oah/279281326358528_279281326358528/be37e5a363c5d81d0c37bc73c1ee2b006f077b9724befbf819258e3486062181/CurseForge.aot: attachment of code signature supplement failed: 1 Thread 0 Crashed: 0   runtime                               0x7ff7ffcfdaf8 0x7ff7ffce1000 + 117496 1   runtime                               0x7ff7ffcfdb40 0x7ff7ffce1000 + 117568 2   runtime                               0x7ff7ffcf4440 0x7ff7ffce1000 + 78912 3   runtime                               0x7ff7ffcf5518 0x7ff7ffce1000 + 83224 4   runtime                               0x7ff7ffcf4c94 0x7ff7ffce1000 + 81044 5   runtime                               0x7ff7ffce4a80 0x7ff7ffce1000 + 14976 6   dyld                                     0x203106000 ??? Thread 0 crashed with ARM Thread State (64-bit):     x0: 0x0000000000000000   x1: 0x0000000000000003   x2: 0x000000000000003c   x3: 0x000000000000002c     x4: 0x0000000000000303   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000000     x8: 0x00007ff7ffd1c000   x9: 0x0000000000000000  x10: 0x0000000000000000  x11: 0x00007ff7ffd1c94d    x12: 0x0000000000000000  x13: 0x0000000000000000  x14: 0x0000000000000000  x15: 0x00007ff7ffd04828    x16: 0xffffffffffffffe1  x17: 0x00000000ffffffff  x18: 0x000000030a0c907b  x19: 0x00007ff7ffd122e1    x20: 0x000000030a0c9730  x21: 0x0000000102f5e000  x22: 0x0000000000000004  x23: 0x0000000102f5e000    x24: 0x0000000000000003  x25: 0x0000000000000001  x26: 0x000000030a0c8b90  x27: 0x00000002031861b8    x28: 0x000000030a0d1960   fp: 0x000000030a0c7970   lr: 0x00007ff7ffcfdaf0     sp: 0x000000030a0c7950   pc: 0x00007ff7ffcfdaf8 cpsr: 0x60001000    far: 0x000000030a0c7988  esr: 0xf2000001 (Breakpoint) brk 1 Binary Images:     0x7ff7ffce1000 -     0x7ff7ffd10fff runtime (*) <21c1e0c9-a36e-3e4b-a12b-1bf54ce4403e> /usr/libexec/rosetta/runtime        0x203106000 -        0x203171fff dyld (*) <cef5a27a-d50b-3020-af03-1734b19bc8c5> /usr/lib/dyld Error Formulating Crash Report: dyld_process_snapshot_get_shared_cache failed EOF ----------- Full Report ----------- {"app_name":"CurseForge","timestamp":"2022-01-26 10:12:59.00 -0500","app_version":"0.191.1-0","slice_uuid":"4c4c4459-5555-3144-a1a7-b3c6f9c3e9b2","build_version":"0.191.1-0","platform":0,"bundleID":"com.overwolf.curseforge","share_with_app_devs":1,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.1 (21C52)","incident_id":"7CAA4B03-8F62-4A2F-8A43-CBD007A415A5","name":"CurseForge"} {   "uptime" : 62000,   "procLaunch" : "2022-01-26 10:12:59.2034 -0500",   "procRole" : "Default",   "version" : 2,   "userID" : 501,   "deployVersion" : 210,   "modelCode" : "MacBookAir10,1",   "procStartAbsTime" : 1509902989671,   "coalitionID" : 8558,   "osVersion" : {     "train" : "macOS 12.1",     "build" : "21C52",     "releaseType" : "User"   },   "captureTime" : "2022-01-26 10:12:59.2167 -0500",   "incident" : "7CAA4B03-8F62-4A2F-8A43-CBD007A415A5",   "bug_type" : "309",   "pid" : 10814,   "procExitAbsTime" : 1509903288492,   "translated" : true,   "cpuType" : "X86-64",   "procName" : "CurseForge",   "procPath" : "\/Applications\/CurseForge.app\/Contents\/MacOS\/CurseForge",   "bundleInfo" : {"CFBundleShortVersionString":"0.191.1-0","CFBundleVersion":"0.191.1-0","CFBundleIdentifier":"com.overwolf.curseforge"},   "storeInfo" : {"deviceIdentifierForVendor":"A56CA4BD-4B57-5C65-A215-705910F757B8","thirdParty":true},   "parentProc" : "launchd",   "parentPid" : 1,   "coalitionName" : "com.overwolf.curseforge",   "crashReporterKey" : "ED6F8700-AF0C-6974-E3A4-CD80287AB607",   "wakeTime" : 1557,   "sleepWakeUUID" : "FCF8ACF7-5FDD-4163-A30E-325CF4F24B8A",   "sip" : "disabled",   "isCorpse" : 1,   "exception" : {"codes":"0x0000000000000001, 0x00007ff7ffcfdaf8","rawCodes":[1,140703125461752],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"},   "termination" : {"flags":0,"code":5,"namespace":"SIGNAL","indicator":"Trace\/BPT trap: 5","byProc":"exc handler","byPid":10814},   "asi" : {"runtime":["rosetta error: \/var\/db\/oah\/279281326358528_279281326358528\/be37e5a363c5d81d0c37bc73c1ee2b006f077b9724befbf819258e3486062181\/CurseForge.aot: attachment of code signature supplement failed: 1"]},   "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},   "faultingThread" : 0,   "threads" : [{"triggered":true,"id":671423,"threadState":{"x":[{"value":0},{"value":3},{"value":60},{"value":44},{"value":771},{"value":0},{"value":0},{"value":0},{"value":140703125585920},{"value":0},{"value":0},{"value":140703125588301,"symbolLocation":197,"symbol":"__crashreporter_info__"},{"value":0},{"value":0},{"value":0},{"value":140703125489704},{"value":18446744073709551585},{"value":4294967295},{"value":13053497467},{"value":140703125545697},{"value":13053499184},{"value":4344635392},{"value":4},{"value":4344635392},{"value":3},{"value":1},{"value":13053496208},{"value":8641864120,"symbolLocation":0,"symbol":"dyld_all_image_infos"},{"value":13053532512}],"flavor":"ARM_THREAD_STATE64","lr":{"value":140703125461744},"cpsr":{"value":1610616832},"fp":{"value":13053491568},"sp":{"value":13053491536},"esr":{"value":4060086273,"description":"(Breakpoint) brk 1"},"pc":{"value":140703125461752,"matchesCrashFrame":1},"far":{"value":13053491592}},"frames":[{"imageOffset":117496,"imageIndex":0},{"imageOffset":117568,"imageIndex":0},{"imageOffset":78912,"imageIndex":0},{"imageOffset":83224,"imageIndex":0},{"imageOffset":81044,"imageIndex":0},{"imageOffset":14976,"imageIndex":0},{"imageOffset":0,"imageIndex":1}]}],   "usedImages" : [   {     "source" : "P",     "arch" : "arm64",     "base" : 140703125344256,     "size" : 196608,     "uuid" : "21c1e0c9-a36e-3e4b-a12b-1bf54ce4403e",     "path" : "\/usr\/libexec\/rosetta\/runtime",     "name" : "runtime"   },   {     "source" : "P",     "arch" : "x86_64",     "base" : 8641339392,     "size" : 442368,     "uuid" : "cef5a27a-d50b-3020-af03-1734b19bc8c5",     "path" : "\/usr\/lib\/dyld",     "name" : "dyld"   } ],   "vmSummary" : "ReadOnly portion of Libraries: Total=840K resident=0K(0%) swapped_out_or_unallocated=840K(100%)\nWritable regions: Total=21.4M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=21.4M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nSTACK GUARD                       56.0M        1 \nStack                             8176K        1 \nVM_ALLOCATE                       13.1M        4 \nVM_ALLOCATE (reserved)             264K        3         reserved VM address space (unallocated)\n__DATA                              80K        3 \n__DATA_CONST                        80K        1 \n__LINKEDIT                         240K        4 \n__TEXT                             624K        2 \nmapped file                        6.0G       27 \n===========                     =======  ======= \nTOTAL                              6.0G       46 \nTOTAL, minus reserved VM space     6.0G       46 \n",   "legacyInfo" : {   "threadTriggered" : {   } },   "trialInfo" : {   "rollouts" : [     {       "rolloutId" : "5fc94383418129005b4e9ae0",       "factorPackIds" : {       },       "deploymentId" : 240000207     },     {       "rolloutId" : "607844aa04477260f58a8077",       "factorPackIds" : {         "SIRI_MORPHUN_ASSETS" : "6103050cbfe6dc472e1c982a"       },       "deploymentId" : 240000066     },     {       "rolloutId" : "5ffde50ce2aacd000d47a95f",       "factorPackIds" : {       },       "deploymentId" : 240000094     },     {       "rolloutId" : "602ad4dac86151000cf27e46",       "factorPackIds" : {         "SIRI_DICTATION_ASSETS" : "61a80a438feb033580c2778b"       },       "deploymentId" : 240000290     },     {       "rolloutId" : "60da5e84ab0ca017dace9abf",       "factorPackIds" : {       },       "deploymentId" : 240000008     },     {       "rolloutId" : "601d9415f79519000ccd4b69",       "factorPackIds" : {         "SIRI_TEXT_TO_SPEECH" : "61c11dcd2cb6041dc630dc63"       },       "deploymentId" : 240000369     }   ],   "experiments" : [   ] },   "reportNotes" : [   "dyld_process_snapshot_get_shared_cache failed" ] } Model: MacBookAir10,1, BootROM 7429.61.2, proc 8:4:4 processors, 16 GB, SMC  Graphics: Apple M1, Apple M1, Built-In Display: Color LCD, 2560 x 1600 Retina, Main, MirrorOff, Online Memory Module: LPDDR4 AirPort: Wi-Fi, wl0: Oct 26 2021 16:10:41 version 18.20.310.15.7.8.120 FWID 01-5d6c3867 Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports Network Service: Wi-Fi, AirPort, en0 USB Device: USB31Bus USB Device: USB31Bus Thunderbolt Bus: MacBook Air, Apple Inc. Thunderbolt Bus: MacBook Air, Apple Inc.  
    • Here is a list with all I use on server and client: -----------------------------------SERVER-------------------------------------- ||                        || \/                        \/ '[1.16.X-1.0.10] Dragon Mounts Legacy.jar'                frozenup-1.0.1.jar  3dSkinLayers-forge-1.1.0.jar                             ftb-backups-2.1.2.2.jar  abnormals_core-1.16.5-3.3.1.jar                          ftb-chunks-forge-1605.3.2-build.115.jar  abnormals_delight-1.16.5-1.2.1.jar                       ftb-library-forge-1605.3.4-build.90.jar  Adorn-1.14.1+1.16.5-forge.jar                            ftb-quests-forge-1605.3.6-build.76.jar  AI-Improvements-1.16.5-0.4.0.jar                         ftb-teams-forge-1605.2.3-build.40.jar  AkashicTome-1.4-16.jar                                   geckolib-forge-1.16.5-3.0.61.jar "Alex's Delight 1.1.3 - Forge 1.16.5.jar"                 goblintraders-1.6.0-1.16.3.jar  alexsmobs-1.12.1.jar                                     goldenhopper-1.2.1-1.16.3.jar  Aquaculture-1.16.5-2.1.21.jar                            Highlighter-1.16.5-1.1.1.jar  Architects-Palette-1.16.4-1.1.5.jar                      HunterIllager-1.16.5-1.4.0.jar  architectury-1.28.48.jar                                 Iceberg-1.16.5-1.0.38.jar  atmospheric-1.16.5-3.1.1.jar                             illagersweararmor-1.0.5.jar  AttributeFix-1.16.5-10.1.3.jar                           immersivecooking-1.0.1.jar  AutoRegLib-1.6-49.jar                                    ImprovedBackpacks-1.6.2.0.jar  autumnity-1.16.5-2.1.2.jar                               incontrol-1.16-5.2.2.jar  Babel-1.0.5.jar                                          infernal-expansion-1.16.5-2.4.0.jar  BadMobs-1.16.5-9.0.5.jar                                'InventoryHud_[1.16.2-1.16.5].forge-3.4.1.jar'  bamboo_blocks-1.16.5-3.0.1.jar                           irregularchef-1.16.5-1.0.1.jar  Bayou-Blues-1.16.5-1.0.5.jar                             item-filters-forge-1605.2.5-build.9.jar  BetterAdvancements-1.16.5-0.1.1.115.jar                  Jade-1.16.4-2.8.1.jar  Better-Badlands-1.16.5-2.0.3.jar                         jei-1.16.5-7.7.1.145.jar  BetterCompatibilityChecker-1.0.7-build.22+mc1.16.5.jar   JEITweaker-1.16.5-1.1.0.49.jar  BetterDungeons-1.16.4-1.2.1.jar                          Kiwi-1.16.5-3.6.1.jar  betterendforge-1.16.5-2.5.jar                            KleeSlabs_1.16.5-9.2.1.jar  BetterMineshafts-Forge-1.16.4-2.0.4.jar                  kotlinforforge-1.16.0-obf.jar  BetterModsButton-v1.0.5-1.16.5-Forge.jar                 kryptonreforged-mc1.16.5_v1.0.0.jar  betternether_reforged-1.2.jar                            lazydfu-0.1.3.jar  BetterShieldsMC1.16.3-1.2.jar                            MorePaths-1.16.1-1.3.2.jar  BetterStrongholds-1.16.4-1.2.1.jar                       morevillagers-FORGE-1.16.5-1.5.5.jar  Blocks+-1.16.5-1.2.jar                                   MouseTweaks-2.14-mc1.16.2.jar  blue_skies-1.16.5-1.1.3.jar                              mowziesmobs-1.5.19.jar  Bookshelf-Forge-1.16.5-10.4.31.jar                      'Nature Expansion1.4.1.jar'  Bountiful-1.16.4-3.3.1.jar                               NaturesCompass-1.16.5-1.9.1-forge.jar  buzzier_bees-1.16.5-3.0.3.jar                            neapolitan-1.16.5-2.2.1.jar  byg-1.3.5.jar                                            nethers_delight-2.1.jar  caelus-forge-1.16.5-2.1.3.2.jar                         'NourishedEndV6.1 Backport.jar'  campful-1.16.5-3.1.0.jar                                 NourishedNetherV10ProperBackport.jar  carryon-1.16.5-1.15.5.22.jar                             obfuscate-0.6.2-1.16.3.jar  Cataclysm-0.11.jar                                       omnis-1.16.5-1.1.2.3.jar  catalogue-1.5.0-1.16.5.jar                               OSV-Forge-7.5.jar  CatLib-Forge-1.12.jar                                    OuterEnd-0.2.14.jar  cavebiomeapi-1.16.5-1.4.2.jar                            outvoted-1.16.5-1.2.4.jar  cavesandcliffs-1.16.5-7.2.0.jar                          overloadedarmorbar-5.1.0.jar  CavesCliffsBackportAdditions2.58.jar                     paintings-1.16.4-7.0.0.1.jar  charm-forge-1.16.5-2.3.2.jar                             Patchouli-1.16.4-53.2.jar  chocolate-1.3.0-1.16.4.jar                               Paxi-Forge-1.16.4-1.0.jar  citadel-1.8.1-1.16.5.jar                                 personality-1.16.5-1.0.3.jar  cleancut-mc1.16-2.2-forge.jar                            PickUpNotifier-v1.2-1.16.3.jar  ClientTweaks_1.16.3-5.3.0.jar                            polymorph-forge-1.16.5-0.39.jar  cloth-config-4.13.49-forge.jar                           PuzzlesLib-v1.0.15-1.16.5-Forge.jar  Clumps-6.0.0.27.jar                                      Quark-r2.4-321.jar  CNB-1.16.3_5-1.2.11.jar                                  randompatches-2.4.4-forge.jar  collective-1.16.5-3.8.jar                                repurposed_structures_forge-3.4.7+1.16.5.jar  combustivefishing-forge-1.16.3-4.0.0.1.jar               RevampedWolf-1.16.4-0.7.1.jar  comforts-forge-1.16.5-4.0.1.3.jar                        RoadRunner-mc1.16.5-1.4.0.jar  ConfigMenusForge-v1.2.0-1.16.5-Forge.jar                 savageandravage-1.16.5-3.2.0.jar  Controlling-7.0.0.28.jar                                 selene-1.16.5-1.9.0.jar  copperpot-1.16.5-1.2.0.jar                               SereneSeasons-1.16.5-4.0.1.123-universal.jar  corpse-1.16.5-1.0.6.jar                                  simpleshops-1.1.1.jar  CraftTweaker-1.16.5-7.1.2.489.jar                        SimpleStorageNetwork-1.16.5-1.5.1.jar  create-mc1.16.5_v0.3.2g.jar                              skinned_lanterns-1.16.5-1.3.1.jar  cuneiform-1.16.3-1.2.5.jar                               spark-forge.jar  curioofundying-forge-1.16.5-5.2.0.0.jar                  stalwart-dungeons-1.16.5-1.1.7.jar  curios-forge-1.16.5-4.0.5.3.jar                          stoneholm-1.2.2.jar  curiouselytra-forge-1.16.5-4.0.2.4.jar                   strawgolem-1.16-1.9.jar  CustomStartingGear-1.16.5-2.0.3-universal.jar            structure_gel-1.16.5-1.7.8.jar  darkerdepths-1.16.5-1.1.4.jar                            sulfuric-1.1.jar  DarkPaintings-1.16.5-6.0.10.jar                          supplementaries-1.16.5-0.18.0.jar  decorative_blocks-1.16.4-1.7.2.jar                      'Talpm 1.0.0 1.16.5.jar'  decorative_blocks_abnormals-1.2.jar                      terraincognita-1.16.3-1.7.1.1.jar  deepdark_4.2.jar                                        'TheAbyss2 2.0.0-4 1.16.5.jar'  differentiate-1.16.5-0.5.3.jar                           the-conjurer-1.16.4-1.0.13.jar  DungeonsArise-1.16.5-2.1.49-beta.jar                     TinySkeletons-v1.0.1-1.16.5-Forge.jar  dungeons_mobs-1.16.5-1.0.10.jar                          Tips-1.16.5-4.0.15.jar  dungeons_plus-1.16.5-1.1.5.jar                           torchmaster-2.3.8.jar  dynviewdist-2.0.jar                                      totw_additions-1.1.0.jar  earthmobsmod-1.16.4-0.4.2.jar                            toughnessbar-6.1.jar  EasyMagic-v1.0.4-1.16.5.jar                              towers_of_the_wild-1.16.3-2.1.0.1.jar  elevatorid-1.16.5-1.7.13.jar                             TradingPost-v1.0.2-1.16.5.jar  EnchantmentDescriptions-1.16.5-7.0.18.jar                travelers_index-1.16.4-1.0.2.jar  enchantwithmob-1.16.5-1.5.2.jar                          TravelersTitles-1.16.4-1.5.jar  endergetic-1.16.4-3.0.0.jar                              tumbleweed-1.16-0.4.9.jar  enhancedcelestials-2.0.9-1.16.5.jar                      twilightforest-1.16.5-4.0.870-universal.jar  Enhanced-Mushrooms-1.16.5-3.0.9.jar                      upgrade_aquatic-1.16.5-3.1.2.jar  environmental-1.16.5-1.1.1.jar                          'Upgraded Netherite 1.10.1.jar'  EquipmentCompare-1.16.5-1.2.7.jar                        veinmining-forge-1.16.5-0.16.jar  extendedmushrooms-1.6.1-1.16.5+.jar                      village-employment-1.16.5-1.4.1.jar  extraboats-1.16.5-2.1.1.jar                              villagernames_1.16.5-3.4.jar  FallingTree-1.16.5-2.11.5.jar                            villagertools-1.16.5-1.0.2.jar  FarmersDelight-1.16.5-0.5.4.jar                          VisualWorkbench-v1.1.0-1.16.5.jar  farmersdelightintegration-1.16.5-1.0.3.jar               voidtotem-1.16.5-1.4.0.jar  farmersdelightintegrations-1.16.5-1.2.jar                wandering-bag-1.16.5-1.0.3.jar  fastbenchminusreplacement-1.4.jar                        Waystones_1.16.5-7.6.4.jar  fastfurnaceminusreplacement-1.1-1.16.3.jar               what_did_you_vote_for-1.16.5-1.0.5.jar  FastLeafDecay-v25.2.jar                                  Xaeros_Minimap_22.1.0_Forge_1.16.5.jar  fd_cookbook-2.0.jar                                      XaerosWorldMap_1.20.0_Forge_1.16.5.jar  ferritecore-2.1.0-forge.jar                              xptome-1.16.5-v2.1.2.jar  flywheel-1.16-0.2.5.jar                                  YungsApi-1.16.4-Forge-13.jar --------------------------------------------CLIENT---------------------------------- abnormals_core-1.16.5-3.3.1.jar Bookshelf-Forge-1.16.5-10.4.31.jar Bountiful-1.16.4-3.3.1.jar buzzier_bees-1.16.5-3.0.3.jar caelus-forge-1.16.5-2.1.3.2.jar campful-1.16.5-3.1.0.jar carryon-1.16.5-1.15.5.22.jar catalogue-1.5.0-1.16.5.jar CatLib-Forge-1.12.jar cavebiomeapi-1.16.5-1.4.2.jar cavesandcliffs-1.16.5-7.2.0.jar CavesCliffsBackportAdditions2.58.jar charm-forge-1.16.5-2.3.2.jar chocolate-1.3.0-1.16.4.jar citadel-1.8.1-1.16.5.jar cleancut-mc1.16-2.2-forge.jar ClientTweaks_1.16.3-5.3.0.jar cloth-config-4.13.49-forge.jar Clumps-6.0.0.27.jar collective-1.16.5-3.8.jar combustivefishing-forge-1.16.3-4.0.0.1.jar comforts-forge-1.16.5-4.0.1.3.jar ConfigMenusForge-v1.2.0-1.16.5-Forge.jar Controlling-7.0.0.28.jar copperpot-1.16.5-1.2.0.jar corpse-1.16.5-1.0.6.jar CraftTweaker-1.16.5-7.1.2.489.jar create-mc1.16.5_v0.3.2g.jar CNB-1.16.3_5-1.2.11.jar cuneiform-1.16.3-1.2.5.jar curioofundying-forge-1.16.5-5.2.0.0.jar curios-forge-1.16.5-4.0.5.3.jar curiouselytra-forge-1.16.5-4.0.2.4.jar CustomStartingGear-1.16.5-2.0.3-universal.jar DarkPaintings-1.16.5-6.0.10.jar darkerdepths-1.16.5-1.1.4.jar deepdark_4.2.jar decorative_blocks-1.16.4-1.7.2.jar decorative_blocks_abnormals-1.2.jar differentiate-1.16.5-0.5.3.jar [1.16.X-1.0.10] Dragon Mounts Legacy.jar drippyloadingscreen_forge_1.4.2_MC_1.16.2-1.16.5.jar dungeons_mobs-1.16.5-1.0.10.jar dungeons_plus-1.16.5-1.1.5.jar DynamicSurroundings-1.16.5-4.0.5.0.jar dynviewdist-2.0.jar earthmobsmod-1.16.4-0.4.2.jar EasyMagic-v1.0.4-1.16.5.jar enchantwithmob-1.16.5-1.5.2.jar EnchantmentDescriptions-1.16.5-7.0.18.jar enhancedcelestials-2.0.9-1.16.5.jar Enhanced-Mushrooms-1.16.5-3.0.9.jar environmental-1.16.5-1.1.1.jar EquipmentCompare-1.16.5-1.2.7.jar extendedmushrooms-1.6.1-1.16.5+.jar extraboats-1.16.5-2.1.1.jar Fallingleaves-1.16.3-1.2.4.jar FallingTree-1.16.5-2.11.5.jar FarmersDelight-1.16.5-0.5.4.jar farmersdelightintegrations-1.16.5-1.2.jar fd_cookbook-2.0.jar farmersdelightintegration-1.16.5-1.0.3.jar fastfurnaceminusreplacement-1.1-1.16.3.jar FastLeafDecay-v25.2.jar fastbenchminusreplacement-1.4.jar ferritecore-2.1.0-forge.jar frozenup-1.0.1.jar ftb-backups-2.1.2.2.jar ftb-chunks-forge-1605.3.2-build.115.jar ftb-library-forge-1605.3.4-build.90.jar ftb-quests-forge-1605.3.6-build.76.jar ftb-teams-forge-1605.2.3-build.40.jar goblintraders-1.6.0-1.16.3.jar goldenhopper-1.2.1-1.16.3.jar guardvillagers-1.16.5.1.2.6.jar HunterIllager-1.16.5-1.4.0.jar Iceberg-1.16.5-1.0.38.jar illagersweararmor-1.0.5.jar immersivecooking-1.0.1.jar ImprovedBackpacks-1.6.2.0.jar incontrol-1.16-5.2.2.jar infernal-expansion-1.16.5-2.4.0.jar InventoryHud_[1.16.2-1.16.5].forge-3.4.1.jar item-filters-forge-1605.2.5-build.9.jar Highlighter-1.16.5-1.1.1.jar Jade-1.16.4-2.8.1.jar JEIEnchantmentInfo-1.16.4-1.2.1.jar jei-professions-1.0.0-1.16.4.jar JEITweaker-1.16.5-1.1.0.49.jar jeed-1.16.5-1.6.jar jei-1.16.5-7.7.1.145.jar JEPB-1.0.0.jar JustEnoughProfessions-1.16.5-1.2.2.jar JustEnoughResources-1.16.5-0.12.1.133.jar Kiwi-1.16.5-3.6.1.jar KleeSlabs_1.16.5-9.2.1.jar konkrete_forge_1.3.3_MC_1.16.2-1.16.5.jar kotlinforforge-1.16.0-obf.jar kryptonreforged-mc1.16.5_v1.0.0.jar Cataclysm-0.11.jar lazydfu-0.1.3.jar magnesium-1.5.jar dynamiclightsreforged-mc1.16.5_v1.0.1.jar magnesium_extras-mc1.16.5_v1.3.1.jar morevillagers-FORGE-1.16.5-1.5.5.jar MorePaths-1.16.1-1.3.2.jar MouseTweaks-2.14-mc1.16.2.jar Nature Expansion1.4.1.jar NaturesCompass-1.16.5-1.9.1-forge.jar neapolitan-1.16.5-2.2.1.jar nethers_delight-2.1.jar NourishedEndV6.1 Backport.jar NourishedNetherV10ProperBackport.jar obfuscate-0.6.2-1.16.3.jar byg-1.3.5.jar omnis-1.16.5-1.1.2.3.jar elevatorid-1.16.5-1.7.13.jar OSV-Forge-7.5.jar outvoted-1.16.5-1.2.4.jar overloadedarmorbar-5.1.0.jar paintings-1.16.4-7.0.0.1.jar Patchouli-1.16.4-53.2.jar Paxi-Forge-1.16.4-1.0.jar personality-1.16.5-1.0.3.jar PickUpNotifier-v1.2-1.16.3.jar polymorph-forge-1.16.5-0.39.jar PuzzlesLib-v1.0.15-1.16.5-Forge.jar Quark-r2.4-321.jar randompatches-2.4.4-forge.jar repurposed_structures_forge-3.4.7+1.16.5.jar RevampedWolf-1.16.4-0.7.1.jar RoadRunner-mc1.16.5-1.4.0.jar savageandravage-1.16.5-3.2.0.jar selene-1.16.5-1.9.0.jar SereneSeasons-1.16.5-4.0.1.123-universal.jar simple-rpc-1.16.5-2.7.1.jar simpleshops-1.1.1.jar SimpleStorageNetwork-1.16.5-1.5.1.jar 3dSkinLayers-forge-1.1.0.jar skinned_lanterns-1.16.5-1.3.1.jar spark-forge.jar stalwart-dungeons-1.16.5-1.1.7.jar stoneholm-1.2.2.jar strawgolem-1.16-1.9.jar structure_gel-1.16.5-1.7.8.jar sulfuric-1.1.jar terraincognita-1.16.3-1.7.1.1.jar Talpm 1.0.0 1.16.5.jar the-conjurer-1.16.4-1.0.13.jar endergetic-1.16.4-3.0.0.jar irregularchef-1.16.5-1.0.1.jar OuterEnd-0.2.14.jar twilightforest-1.16.5-4.0.870-universal.jar TinySkeletons-v1.0.1-1.16.5-Forge.jar Tips-1.16.5-4.0.15.jar torchmaster-2.3.8.jar totw_additions-1.1.0.jar towers_of_the_wild-1.16.3-2.1.0.1.jar TradingPost-v1.0.2-1.16.5.jar travelers_index-1.16.4-1.0.2.jar TravelersTitles-1.16.4-1.5.jar tumbleweed-1.16-0.4.9.jar upgrade_aquatic-1.16.5-3.1.2.jar veinmining-forge-1.16.5-0.16.jar villagertools-1.16.5-1.0.2.jar village-employment-1.16.5-1.4.1.jar villagernames_1.16.5-3.4.jar VisualWorkbench-v1.1.0-1.16.5.jar voidtotem-1.16.5-1.4.0.jar wandering-bag-1.16.5-1.0.3.jar Waystones_1.16.5-7.6.4.jar what_did_you_vote_for-1.16.5-1.0.5.jar DungeonsArise-1.16.5-2.1.49-beta.jar Xaeros_Minimap_22.1.0_Forge_1.16.5.jar XaerosWorldMap_1.20.0_Forge_1.16.5.jar xptome-1.16.5-v2.1.2.jar YungsApi-1.16.4-Forge-13.jar BetterDungeons-1.16.4-1.2.1.jar BetterMineshafts-Forge-1.16.4-2.0.4.jar BetterStrongholds-1.16.4-1.2.1.jar
    • nvm tried it with jre1.8 worked 
    • [26Jan2022 15:37:29.873] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--gameDir, ., --launchTarget, fmlserver, --fml.forgeVersion, 35.1.37, --fml.mcpVersion, 20201102.104115, --fml.mcVersion, 1.16.4, --fml.forgeGroup, net.minecraftforge] [26Jan2022 15:37:29.883] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 11.0.14 by Oracle Corporation [26Jan2022 15:37:30.796] [main/INFO] [net.minecraftforge.fml.loading.FixSSL/CORE]: Added Lets Encrypt root certificates as additional trust [26Jan2022 15:37:30.921] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.2 Source=file:/C:/Users/Monke/AppData/Roaming/.minecraft/SERVERS/sf3/libraries/org/spongepowered/mixin/0.8.2/mixin-0.8.2.jar Service=ModLauncher Env=SERVER [26Jan2022 15:37:31.771] [main/INFO] [STDERR/]: [jdk.nashorn.api.scripting.NashornScriptEngine:<init>:143]: Warning: Nashorn engine is planned to be removed from a future JDK release [26Jan2022 15:37:32.530] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'fmlserver' with arguments [--gameDir, .] [26Jan2022 15:37:32.684] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]: java.lang.NoSuchMethodError: sun.security.util.ManifestEntryVerifier.<init>(Ljava/util/jar/Manifest;)V [26Jan2022 15:37:32.685] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.SecureJarHandler.createCodeSource(SecureJarHandler.java:66) [26Jan2022 15:37:32.685] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.TransformingClassLoader$DelegatedClassLoader.findClass(TransformingClassLoader.java:275) [26Jan2022 15:37:32.686] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:136) [26Jan2022 15:37:32.687] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:98) [26Jan2022 15:37:32.688] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) [26Jan2022 15:37:32.688] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.lang.Class.forName0(Native Method) [26Jan2022 15:37:32.690] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at java.base/java.lang.Class.forName(Class.java:398) [26Jan2022 15:37:32.691] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at net.minecraftforge.fml.loading.FMLServerLaunchProvider.lambda$launchService$0(FMLServerLaunchProvider.java:51) [26Jan2022 15:37:32.691] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [26Jan2022 15:37:32.692] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [26Jan2022 15:37:32.692] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [26Jan2022 15:37:32.693] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [26Jan2022 15:37:32.694] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [26Jan2022 15:37:32.695] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at net.minecraftforge.server.ServerMain$Runner.runLauncher(ServerMain.java:63) [26Jan2022 15:37:32.695] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at net.minecraftforge.server.ServerMain$Runner.access$100(ServerMain.java:60) [26Jan2022 15:37:32.695] [main/INFO] [STDERR/]: [java.lang.ThreadGroup:uncaughtException:1050]:     at net.minecraftforge.server.ServerMain.main(ServerMain.java:57)
    • I also getting issues with installing Forge serve i also try to remove 5 time java  nd reinstall when i select forge server they said Failed to download version manifest, can not find server jar URL. how i fix this JVM info: Eclipse Adoptium - 17.0.1 - 17.0.1+12 java.net.preferIPv4Stack=true Found java version 17.0.1 <html><a href='https://www.creeperhost.net/'>Data kindly mirrored by CreeperHost</a></html> Considering minecraft server jar javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:370)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:313)     at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)     at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1357)     at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1232)     at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1175)     at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:480)     at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:458)     at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:200)     at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172)     at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1500)     at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1415)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:450)     at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:421)     at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:580)     at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1665)     at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)     at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:529)     at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:308)     at net.minecraftforge.installer.DownloadUtils.getConnection(DownloadUtils.java:243)     at net.minecraftforge.installer.DownloadUtils.downloadManifest(DownloadUtils.java:307)     at net.minecraftforge.installer.json.Util.getVanillaVersion(Util.java:73)     at net.minecraftforge.installer.actions.ServerInstall.run(ServerInstall.java:86)     at net.minecraftforge.installer.InstallerPanel.run(InstallerPanel.java:423)     at net.minecraftforge.installer.SimpleInstaller.launchGui(SimpleInstaller.java:175)     at net.minecraftforge.installer.SimpleInstaller.main(SimpleInstaller.java:147) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:439)     at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:306)     at java.base/sun.security.validator.Validator.validate(Validator.java:264)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)     at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)     at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1341)     ... 24 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target     at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)     at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)     at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)     at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:434)     ... 29 more Failed to download version manifest, can not find server jar URL.    
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.