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

How do I save player capability across deaths?


GrigLog
 Share

Recommended Posts

Forge 1.16.5-36.1.30. Docs say that PlayerEvent.Copy event is helpful for this, but I cant figure out what to do exactly. This is what I wrote and it doesnt work:
EventHandler:

@SubscribeEvent
static void copyPlayerDataOnRespawn(PlayerEvent.Clone event){
  SoulCap soul = SF.getSoul(event.getOriginal());
  SoulCap soulNew = SF.getSoul(event.getPlayer());
  soulNew = soul;
  SF.sendToClient((ServerPlayerEntity)event.getPlayer(), soulNew);
}

SF:

public static SoulCap getSoul(PlayerEntity player){
    return player.getCapability(SoulCap.SoulProvider.SOUL_CAP, null).resolve().orElse(null);
}
public static void sendToClient(ServerPlayerEntity player, SoulCap cap){
    PacketSender.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), new SoulPacket(cap));
}

SoulPacket:

static void handle(SoulPacket p, Supplier<NetworkEvent.Context> ctx){
        ctx.get().enqueueWork(() -> {
            if (ctx.get().getDirection() == NetworkDirection.PLAY_TO_CLIENT) {
                ClientPlayerEntity player = Minecraft.getInstance().player;
                SoulCap cap = SF.getSoul(player);
                cap.setNbt(p.cap.getNbt());
                if (cap.justParried) {
                    player.stopActiveHand();
                    cap.justParried = false;
                }
            } else if (ctx.get().getDirection() == NetworkDirection.PLAY_TO_SERVER){
                ServerPlayerEntity player = ctx.get().getSender();
                SoulCap cap = SF.getSoul(player);
                cap.setNbt(p.cap.getNbt());
                if (cap.justParried) {
                    cap.justParried = false;
                }
            }
        });
        ctx.get().setPacketHandled(true);
    }

First of all, the sentToClient side can be easlily removed because at this point in code Minecraft.getInstance().player is still null. But I still have to sync sides somehow... And secondly, the capability is not actually getting copied. I guess its because in this case player.getCapability() only provides a copy of the asked capability, not an assignable reference. But there is no player.setCapability method... So what do I do?

 

 

Edited by GrigLog
Link to comment
Share on other sites

5 minutes ago, GrigLog said:
soulNew = soul;

This accomplishes nothing. You need to actually copy the data, not just set some local variable which you do nothing with afterwards.

6 minutes ago, GrigLog said:
SF.sendToClient((ServerPlayerEntity)event.getPlayer(), soulNew);

Do not send packets in PlayerEvent.Clone. The event exists solely to copy data over. Don't do anything else there.

7 minutes ago, GrigLog said:

SoulPacket:

static void handle(SoulPacket p, Supplier<NetworkEvent.Context> ctx){
        ctx.get().enqueueWork(() -> {
            if (ctx.get().getDirection() == NetworkDirection.PLAY_TO_CLIENT) {
                ClientPlayerEntity player = Minecraft.getInstance().player;
                SoulCap cap = SF.getSoul(player);
                cap.setNbt(p.cap.getNbt());
                if (cap.justParried) {
                    player.stopActiveHand();
                    cap.justParried = false;
                }
            } else if (ctx.get().getDirection() == NetworkDirection.PLAY_TO_SERVER){
                ServerPlayerEntity player = ctx.get().getSender();
                SoulCap cap = SF.getSoul(player);
                cap.setNbt(p.cap.getNbt());
                if (cap.justParried) {
                    cap.justParried = false;
                }
            }
        });
        ctx.get().setPacketHandled(true);
    }

This is highly problematic. This allows the client to just set arbitrary data into the capability, which will enable cheating and, depending how setNbt is implemented, may even allow clients to just crash the server.

Please also show your capability classes, the capability as well as the provider.

Link to comment
Share on other sites

Quote

You need to actually copy the data

Well, thats exactly what Im struggling with. Ive also tried soulNew.setNbt(soul.getNbt()), but with no result

Quote

This allows the client to just set arbitrary data into the capability, which will enable cheating

The thing is, I actively use input events and I have to send player inputs to server somehow. I should probably make 2 separate capabilities (for mana and for inputs) later

SoulCap class:

public class SoulCap {
    public static int CATimerMax = 20;
    public static int dashWindowMax = 3;
    public static int dashCDMax = 20;

    public int parryTimer = 0;
    public int CATimer = 0;
    public int dashWindow = 0;
    public int dashCD = 0;
    public boolean justParried = false;
    public boolean rightClicked = false;
    public boolean leftClicked = false;
    public double mana = 0;
    public double maxMana = 10;
    public HashMap<String, Integer> usedKeyItems = new HashMap<>();

    public boolean trySpendMana(double a) {
        if (mana >= a){
            mana -= a;
            return true;
        }
        return false;
    }
    public void addMana(double a){
        mana += a;
        if (mana > maxMana)
            mana = maxMana;
    }


    public CompoundNBT getNbt(){
        CompoundNBT tag = new CompoundNBT();
        tag.putInt("parryTimer", parryTimer);
        tag.putInt("CATimer", CATimer);
        tag.putBoolean("justParried", justParried);
        tag.putBoolean("rightClicked", rightClicked);
        tag.putBoolean("leftClicked", leftClicked);
        tag.putDouble("mana", mana);
        tag.putDouble("maxMana", maxMana);
        CompoundNBT keyItems = new CompoundNBT();
        for (String s : usedKeyItems.keySet()){
            keyItems.putInt(s, usedKeyItems.get(s));
        }
        tag.put("usedKeyItems", keyItems);
        return tag;
    }

    public SoulCap setNbt(CompoundNBT nbt){
        parryTimer = nbt.getInt("parryTimer");
        CATimer=  nbt.getInt("CATimer");
        justParried = nbt.getBoolean("justParried");
        rightClicked = nbt.getBoolean("rightClicked");
        leftClicked =  nbt.getBoolean("leftClicked");
        mana = nbt.getDouble("mana");
        maxMana = nbt.getDouble("maxMana");
        CompoundNBT keyItems = nbt.getCompound("usedKeyItems");
        for (String s : keyItems.keySet()){
            usedKeyItems.put(s, keyItems.getInt(s));
        }
        return this;
    }

    public static class SoulProvider implements ICapabilitySerializable<INBT> {
        @CapabilityInject(SoulCap.class)
        public static Capability<SoulCap> SOUL_CAP;
        private final LazyOptional<SoulCap> instance = LazyOptional.of(() -> new SoulCap());

        @Nonnull
        @Override
        public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
            return cap == SOUL_CAP ? instance.cast() : LazyOptional.empty();
        }

        @Nonnull
        @Override
        public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap) {
            return cap == SOUL_CAP ? instance.cast() : LazyOptional.empty();
        }

        @Override
        public INBT serializeNBT() {
            return SOUL_CAP.getStorage().writeNBT(SOUL_CAP, this.instance.resolve().get(), null);
        }

        @Override
        public void deserializeNBT(INBT nbt) {
            SOUL_CAP.getStorage().readNBT(SOUL_CAP, this.instance.resolve().get(), null, nbt);
        }
    }

    public static class SoulStorage implements Capability.IStorage<SoulCap> {
        @Override
        public INBT writeNBT(Capability<SoulCap> capability, SoulCap soulCap, Direction side) {
            return soulCap.getNbt();
        }

        @Override
        public void readNBT(Capability<SoulCap> capability, SoulCap soulCap, Direction side, INBT nbt) {
            soulCap.setNbt((CompoundNBT)nbt);
        }
    }
}

 

 

Link to comment
Share on other sites

13 minutes ago, GrigLog said:

Well, thats exactly what Im struggling with. Ive also tried soulNew.setNbt(soul.getNbt()), but with no result

Define "no results".

13 minutes ago, GrigLog said:

The thing is, I actively use input events and I have to send player inputs to server somehow. I should probably make 2 separate capabilities (for mana and for inputs) later

That's fine, but then allow sending only that. Don't just blindly take the NBT data the client sends you and use it.

Link to comment
Share on other sites

Im sorry, there was a result actually - on server side capability got copied correctly, I just didn't see it from the game because its not synced. Now, how can I send that data to client? In which event?

Edited by GrigLog
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
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

    • ---- Minecraft Crash Report ---- // You're mean. Time: 22.01.22, 18:41 Description: mouseClicked event handler java.lang.NullPointerException: Cannot invoke "net.minecraft.CrashReport.m_127526_()" because "p_91333_" is null     at net.minecraft.client.Minecraft.m_91332_(Minecraft.java:772) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.doLoadLevel(Minecraft.java:1973) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$doLoadLevel$39(Minecraft.java:1993) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$displayExperimentalConfirmationDialog$41(Minecraft.java:2028) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.ConfirmScreen.m_169258_(ConfirmScreen.java:56) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:40) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,re:classloading}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:16) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,re:classloading}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:111) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:27) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,re:mixin}     at net.minecraft.client.MouseHandler.lambda$onPress$0(MouseHandler.java:88) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:527) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:ScreenAccessor,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:85) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:185) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:118) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default,re:mixin,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:184) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.2.jar%2344!/:build 10] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3101) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at com.mojang.blaze3d.systems.RenderSystem.m_69495_(RenderSystem.java:196) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,xf:OptiFine:default}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:442) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,xf:OptiFine:default}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1062) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:660) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.18.1-39.0.56.jar%2323!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at net.minecraft.client.Minecraft.m_91332_(Minecraft.java:772) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.doLoadLevel(Minecraft.java:1973) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$doLoadLevel$39(Minecraft.java:1993) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.lambda$displayExperimentalConfirmationDialog$41(Minecraft.java:2028) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.ConfirmScreen.m_169258_(ConfirmScreen.java:56) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading}     at net.minecraft.client.gui.components.Button.m_5691_(Button.java:40) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,re:classloading}     at net.minecraft.client.gui.components.AbstractButton.m_5716_(AbstractButton.java:16) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,re:classloading}     at net.minecraft.client.gui.components.AbstractWidget.m_6375_(AbstractWidget.java:111) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.components.events.ContainerEventHandler.m_6375_(ContainerEventHandler.java:27) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,re:mixin}     at net.minecraft.client.MouseHandler.lambda$onPress$0(MouseHandler.java:88) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:527) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:ScreenAccessor,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:85) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:185) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:118) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default,re:mixin,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:184) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.2.jar%2344!/:build 10] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3101) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at com.mojang.blaze3d.systems.RenderSystem.m_69495_(RenderSystem.java:196) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,xf:OptiFine:default} -- Affected screen -- Details:     Screen name: net.minecraft.client.gui.screens.ConfirmScreen Stacktrace:     at net.minecraft.client.gui.screens.Screen.m_96579_(Screen.java:527) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:balm.mixins.json:ScreenAccessor,pl:mixin:APP:patchouli_xplat.mixins.json:client.AccessorScreen,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_91530_(MouseHandler.java:85) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.MouseHandler.m_168091_(MouseHandler.java:185) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.util.thread.BlockableEventLoop.execute(BlockableEventLoop.java:118) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default,re:mixin,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.MouseHandler.m_91565_(MouseHandler.java:184) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:balm.mixins.json:MouseHandlerAccessor,pl:mixin:A,pl:runtimedistcleaner:A}     at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.2.jar%2344!/:build 10] {}     at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3101) ~[lwjgl-glfw-3.2.2.jar%2348!/:build 10] {}     at com.mojang.blaze3d.systems.RenderSystem.m_69495_(RenderSystem.java:196) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,xf:OptiFine:default}     at com.mojang.blaze3d.platform.Window.m_85435_(Window.java:442) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,xf:OptiFine:default}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1062) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:660) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.18.1-39.0.56.jar%2323!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: Yes     Packs: Mod Resources, Default Stacktrace:     at net.minecraft.client.ResourceLoadStateTracker.m_168562_(ResourceLoadStateTracker.java:49) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading}     at net.minecraft.client.Minecraft.m_91354_(Minecraft.java:2255) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:677) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:205) ~[client-1.18.1-20211210.034407-srg.jar%23122!/:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.18.1-39.0.56.jar%2323!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.0.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- System Details -- Details:     Minecraft Version: 1.18.1     Minecraft Version ID: 1.18.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.1, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 2085955288 bytes (1989 MiB) / 6241124352 bytes (5952 MiB) up to 8589934592 bytes (8192 MiB)     CPUs: 4     Processor Vendor: GenuineIntel     Processor Name: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz     Identifier: Intel64 Family 6 Model 142 Stepping 9     Microarchitecture: Amber Lake     Frequency (GHz): 2,90     Number of physical packages: 1     Number of physical CPUs: 2     Number of logical CPUs: 4     Graphics card #0 name: Intel(R) HD Graphics 620     Graphics card #0 vendor: Intel Corporation (0x8086)     Graphics card #0 VRAM (MB): 1024,00     Graphics card #0 deviceId: 0x5916     Graphics card #0 versionInfo: DriverVersion=27.20.100.8854     Memory slot #0 capacity (MB): 8192,00     Memory slot #0 clockSpeed (GHz): 2,13     Memory slot #0 type: DDR4     Virtual memory max (MB): 32659,75     Virtual memory used (MB): 14054,38     Swap memory total (MB): 24576,00     Swap memory used (MB): 2085,16     JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx8G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     Launched Version: 1.18.1-forge-39.0.56     Backend library: LWJGL version 3.2.2 SNAPSHOT     Backend API: Intel(R) HD Graphics 620 GL version 3.2.0 - Build 27.20.100.8854, Intel     Window size: 1920x1080     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'; Server brand changed to 'forge'     Type: Integrated Server (map_client.txt)     Graphics mode: fast     Resource Packs: vanilla     Current Language: English (US)     CPU: 4x Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz     Server Running: true     Player Count: 0 / 8; []     Data Packs: vanilla, mod:extraarmor (incompatible), mod:cyclopscore, mod:quarkoddities (incompatible), mod:dusk (incompatible), mod:shrines (incompatible), mod:jei (incompatible), mod:soaringstructures2 (incompatible), mod:libraryferret, mod:wonderful_enchantments (incompatible), mod:looot (incompatible), mod:waystones, mod:weaponthrow, mod:clumps (incompatible), mod:oresabovediamonds (incompatible), mod:awesomedungeon, mod:citadel, mod:sereneseasons (incompatible), mod:feature_nbt_deadlock_be_gone, mod:dungeoncrawl, mod:chancecubes (incompatible), mod:balm (incompatible), mod:waterstrainer, mod:vtweaks (incompatible), mod:beyond_earth (incompatible), mod:paraglider (incompatible), mod:forge, mod:chococraft, mod:selene (incompatible), mod:ironchest, mod:dungeons_arise, mod:awesomedungeonocean, mod:tinyskeletons, mod:castle_in_the_sky (incompatible), mod:farmersdelight, mod:repurposed_structures, mod:panthalassa (incompatible), mod:morevillagers (incompatible), mod:endrem (incompatible), mod:majrusz_library (incompatible), mod:dimdungeons (incompatible), mod:curios, mod:tetra (incompatible), mod:patchouli, mod:mutil (incompatible), mod:advancednetherite, mod:autoreglib (incompatible), mod:villagertools (incompatible), mod:regrowth (incompatible), mod:gobber2 (incompatible), mod:majruszs_difficulty (incompatible), mod:majruszs_accessories (incompatible), mod:hunterillager, mod:cfm, mod:architectury (incompatible), mod:mtr (incompatible), mod:londonunderground (incompatible), mod:vampirism, mod:solcarrot (incompatible), mod:puzzleslib, mod:voidscape (incompatible), mod:aquaculture (incompatible), mod:the_bumblezone, mod:crossbowverhaul, mod:frostrealm (incompatible), mod:valhelsia_core, mod:valhelsia_structures, mod:chiselsandbits, mod:geckolib3 (incompatible), mod:ars_nouveau (incompatible)     OptiFine Version: OptiFine_1.18.1_HD_U_H4     OptiFine Build: 20211212-175054     Render Distance Chunks: 4     Mipmaps: 4     Anisotropic Filtering: 1     Antialiasing: 0     Multitexture: false     Shaders: null     OpenGlVersion: 3.2.0 - Build 27.20.100.8854     OpenGlRenderer: Intel(R) HD Graphics 620     OpenGlVendor: Intel     CpuCount: 4     ModLauncher: 9.1.0+9.1.0+main.6690ee51     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:           mixin PLUGINSERVICE           eventbus PLUGINSERVICE           object_holder_definalize PLUGINSERVICE           runtime_enum_extender PLUGINSERVICE           capability_token_subclass PLUGINSERVICE           accesstransformer PLUGINSERVICE           runtimedistcleaner PLUGINSERVICE           mixin TRANSFORMATIONSERVICE           OptiFine TRANSFORMATIONSERVICE           fml TRANSFORMATIONSERVICE      FML Language Providers:          minecraft@1.0         javafml@null     Mod List:          ExtraArmor-1.18-1.13.3.jar                        |Extra Armor                   |extraarmor                    |1.18-1.13.3         |DONE      |Manifest: NOSIGNATURE         CyclopsCore-1.18.1-1.12.1.jar                     |Cyclops Core                  |cyclopscore                   |1.12.1              |DONE      |Manifest: NOSIGNATURE         QuarkOddities-1.18.jar                            |Quark Oddities                |quarkoddities                 |1.18                |DONE      |Manifest: NOSIGNATURE         dusk-1.18-1.7.jar                                 |Dusk Mod                      |dusk                          |1.18-1.7            |DONE      |Manifest: NOSIGNATURE         Shrines-1.18.1-3.0.0-Beta8.jar                    |Shrines                       |shrines                       |1.18.1-3.0.0-Beta8  |DONE      |Manifest: NOSIGNATURE         jei-1.18.1-9.2.1.69.jar                           |Just Enough Items             |jei                           |9.2.1.69            |DONE      |Manifest: NOSIGNATURE         Soaring-Structures-2-1.18.1-2.1.jar               |Soaring Structures 2          |soaringstructures2            |1.18.1 - 2.1        |DONE      |Manifest: NOSIGNATURE         LibraryFerret-Forge-1.18.1-1.0.3.jar              |Library ferret                |libraryferret                 |1.0.3               |DONE      |Manifest: NOSIGNATURE         wonderful-enchantments-1.18.1-1.6.1.jar           |Wonderful Enchantments        |wonderful_enchantments        |1.6.1               |DONE      |Manifest: NOSIGNATURE         looot-1.18-1.1.0.0.jar                            |Looot                         |looot                         |1.1.0.0             |DONE      |Manifest: NOSIGNATURE         waystones-forge-1.18.1-9.0.3.jar                  |Waystones                     |waystones                     |9.0.3               |DONE      |Manifest: NOSIGNATURE         WeaponThrow-1.18-5.5.jar                          |Weapon Throw                  |weaponthrow                   |1.18-5.5            |DONE      |Manifest: NOSIGNATURE         Clumps-forge-1.18.1-8.0.4.jar                     |Clumps                        |clumps                        |8.0.4               |DONE      |Manifest: NOSIGNATURE         oresabovediamonds-1.18.1-v8.0.2.jar               |Ores Above Diamonds           |oresabovediamonds             |8.0.2               |DONE      |Manifest: NOSIGNATURE         awesomedungeon-2.0.4.jar                          |Awesome Dungeon               |awesomedungeon                |2.0.4               |DONE      |Manifest: NOSIGNATURE         citadel-1.10.8-1.18.jar                           |Citadel                       |citadel                       |1.10.8              |DONE      |Manifest: NOSIGNATURE         SereneSeasons-1.18.1-6.0.0.10-universal.jar       |Serene Seasons                |sereneseasons                 |1.18.1-6.0.0.10     |DONE      |Manifest: NOSIGNATURE         feature_nbt_deadlock_be_gone_forge-1.0.0+1.18.1.ja|Feature NBT Deadlock Be Gone  |feature_nbt_deadlock_be_gone  |1.0.0+1.18.1        |DONE      |Manifest: NOSIGNATURE         DungeonCrawl-1.18.1-2.3.6.jar                     |Dungeon Crawl                 |dungeoncrawl                  |2.3.6               |DONE      |Manifest: NOSIGNATURE         ChanceCubes-1.18.1-5.0.2.444.jar                  |Chance Cubes                  |chancecubes                   |1.18.1-5.0.2.444    |DONE      |Manifest: NOSIGNATURE         balm-2.4.1+0 (1).jar                              |Balm                          |balm                          |2.4.1+0             |DONE      |Manifest: NOSIGNATURE         WaterStrainer-1.18-12.1.0.jar                     |Water Strainer                |waterstrainer                 |1.18-12.1.0         |DONE      |Manifest: NOSIGNATURE         VTweaks-1.18-3.5.4.jar                            |V-Tweaks                      |vtweaks                       |3.5.4               |DONE      |Manifest: NOSIGNATURE         Beyond-Earth-1.18.1-6.0b.jar                      |Beyond Earth                  |beyond_earth                  |6.0                 |DONE      |Manifest: NOSIGNATURE         Paraglider-1.18-1.5.0.0.jar                       |Paraglider                    |paraglider                    |1.5.0.0             |DONE      |Manifest: NOSIGNATURE         forge-1.18.1-39.0.56-universal.jar                |Forge                         |forge                         |39.0.56             |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         chococraft-1.18.1-0.2.1.jar                       |Chococraft 4                  |chococraft                    |0.2.1               |DONE      |Manifest: NOSIGNATURE         selene-1.18-1.11.jar                              |Selene                        |selene                        |1.18-1.11.0         |DONE      |Manifest: NOSIGNATURE         ironchest-1.18-13.0.7.jar                         |Iron Chests                   |ironchest                     |1.18-13.0.7         |DONE      |Manifest: NOSIGNATURE         DungeonsArise-1.18.1-2.1.49c-beta.jar             |When Dungeons Arise           |dungeons_arise                |2.1.49c-1.18.1      |DONE      |Manifest: NOSIGNATURE         AwesomeDungeonOcean-Forge-1.18-2.0.3.jar          |Awesome Dungeon Ocean         |awesomedungeonocean           |2.0.3               |DONE      |Manifest: NOSIGNATURE         TinySkeletons-v3.1.0-1.18.1-Forge.jar             |Tiny Skeletons                |tinyskeletons                 |3.1.0               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         castle_in_the_sky-1.18.1-0.3.2.jar                |Castle in the sky             |castle_in_the_sky             |1.18.1              |DONE      |Manifest: NOSIGNATURE         client-1.18.1-20211210.034407-srg.jar             |Minecraft                     |minecraft                     |1.18.1              |DONE      |Manifest: a1:d4:5e:04:4f:d3:d6:e0:7b:37:97:cf:77:b0:de:ad:4a:47:ce:8c:96:49:5f:0a:cf:8c:ae:b2:6d:4b:8a:3f         FarmersDelight-1.18.1-1.0.3.jar                   |Farmer's Delight              |farmersdelight                |1.18.1-1.0.3        |DONE      |Manifest: NOSIGNATURE         repurposed_structures_forge-4.2.3+1.18.1.jar      |Repurposed Structures         |repurposed_structures         |4.2.3+1.18.1        |DONE      |Manifest: NOSIGNATURE         panthalassa-0.8.0+1.18.1.jar                      |Panthalassa Mod               |panthalassa                   |0.0NONE             |DONE      |Manifest: NOSIGNATURE         morevillagers-FORGE-1.18.1-3.1.1.jar              |More Villagers                |morevillagers                 |3.1.1               |DONE      |Manifest: NOSIGNATURE         endrem_forge-5.0.1-R-1.18.1.jar                   |End Remastered                |endrem                        |5.0-R-1.18.1        |DONE      |Manifest: NOSIGNATURE         majrusz-library-1.18.1-2.7.1.jar                  |Majrusz Library               |majrusz_library               |2.7.1               |DONE      |Manifest: NOSIGNATURE         dimdungeons-1.13.2-forge-1.18.1.jar               |Dimensional Dungeons          |dimdungeons                   |1.13.2              |DONE      |Manifest: NOSIGNATURE         curios-forge-1.18.1-5.0.4.2.jar                   |Curios API                    |curios                        |1.18.1-5.0.4.2      |DONE      |Manifest: NOSIGNATURE         tetra-1.18.1-4.4.0.jar                            |Tetra                         |tetra                         |4.4.0               |DONE      |Manifest: NOSIGNATURE         Patchouli-1.18.1-63.jar                           |Patchouli                     |patchouli                     |1.18.1-63           |DONE      |Manifest: NOSIGNATURE         mutil-1.18.1-4.2.0.jar                            |mutil                         |mutil                         |4.2.0               |DONE      |Manifest: NOSIGNATURE         advancednetherite-1.10.0-1.18.1.jar               |Advanced Netherite            |advancednetherite             |1.10.0              |DONE      |Manifest: NOSIGNATURE         AutoRegLib-1.7-52.jar                             |AutoRegLib                    |autoreglib                    |1.7-52              |DONE      |Manifest: NOSIGNATURE         villagertools-1.18-1.0.2.jar                      |villagertools                 |villagertools                 |1.18-1.0.2          |DONE      |Manifest: 1f:47:ac:b1:61:82:96:b8:47:19:16:d2:61:81:11:60:3a:06:4b:61:31:56:7d:44:31:1e:0c:6f:22:5b:4c:ed         Regrowth--1.18.1-1.39.0.25.jar                    |Regrowth Mod                  |regrowth                      |1.18.1-1.39.0.25    |DONE      |Manifest: NOSIGNATURE         Gobber2-Forge-1.18.1-2.6.14.jar                   |Gobber 2                      |gobber2                       |2.6.14              |DONE      |Manifest: NOSIGNATURE         majruszs-difficulty-1.18.1-1.4.1.jar              |Majrusz's Progressive Difficul|majruszs_difficulty           |1.4.1               |DONE      |Manifest: NOSIGNATURE         majruszsaccessories-1.18.1-0.4.1.jar              |Majrusz's Accessories         |majruszs_accessories          |0.4.1               |DONE      |Manifest: NOSIGNATURE         HunterIllager-1.18.1-3.1.0.jar                    |Hunter Illager                |hunterillager                 |1.18.1-3.1.0        |DONE      |Manifest: NOSIGNATURE         furniture-7.0.0-pre28-1.18.1.jar                  |MrCrayfish's Furniture Mod    |cfm                           |7.0.0-pre28         |DONE      |Manifest: NOSIGNATURE         architectury-3.4.9.jar                            |Architectury                  |architectury                  |3.4.9               |DONE      |Manifest: NOSIGNATURE         MTR-forge-1.18-3.0.0-beta-8.jar                   |Minecraft Transit Railway     |mtr                           |1.18-3.0.0-beta-8   |DONE      |Manifest: NOSIGNATURE         mtr-lu-addon-forge-1.18-beta-8-1.0.10.jar         |MTR London Underground Addon  |londonunderground             |1.18-beta-8-1.0.10  |DONE      |Manifest: NOSIGNATURE         Vampirism-1.18.1-1.8.0-alpha+20220115-1439.jar    |Vampirism                     |vampirism                     |1.8.0-alpha+20220115|DONE      |Manifest: NOSIGNATURE         SoL-Carrot-1.18.1-1.12.0.jar                      |Spice of Life: Carrot Edition |solcarrot                     |1.18.1-1.12.0       |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v3.1.1-1.18.1-Forge.jar                |Puzzles Lib                   |puzzleslib                    |3.1.1               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         Voidscape-1.18.1-0.2.51.jar                       |Voidscape                     |voidscape                     |1.18.1-0.2.51       |DONE      |Manifest: NOSIGNATURE         Aquaculture-1.18.1-2.3.2.jar                      |Aquaculture 2                 |aquaculture                   |1.18.1-2.3.2        |DONE      |Manifest: NOSIGNATURE         the_bumblezone_forge-4.2.1+1.18.1.jar             |The Bumblezone                |the_bumblezone                |4.2.1+1.18.1        |DONE      |Manifest: NOSIGNATURE         crossbowverhaul-1.18.1-1.2.3-universal.jar        |Crossbowverhaul               |crossbowverhaul               |1.2.3               |DONE      |Manifest: NOSIGNATURE         frostrealm-1.18.1-0.1.4.1.jar                     |FrostRealm                    |frostrealm                    |1.18.1-0.1.4.1      |DONE      |Manifest: NOSIGNATURE         valhelsia_core-1.18.1-0.1.0.jar                   |Valhelsia Core                |valhelsia_core                |1.18.1-0.1.0        |DONE      |Manifest: NOSIGNATURE         valhelsia_structures-1.18.1-0.1.0.jar             |Valhelsia Structures          |valhelsia_structures          |1.18.1-0.1.0        |DONE      |Manifest: NOSIGNATURE         ChiselsBits-forge-1.18.1-1.2.77-universal.jar     |Chisels & bits                |chiselsandbits                |1.2.77              |DONE      |Manifest: NOSIGNATURE         geckolib-1.18-forge-3.0.3.jar                     |GeckoLib                      |geckolib3                     |3.0.3               |DONE      |Manifest: NOSIGNATURE         ars_nouveau-1.18.1-2.0.8.jar                      |Ars Nouveau                   |ars_nouveau                   |2.0.8               |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: 441c5d6b-8a37-4310-af73-51d795cb1816     FML: 39.0     Forge: net.minecraftforge:39.0.56
    • The order in which you create them is their display order.
    • https://mcforge.readthedocs.io/en/latest/networking/simpleimpl/
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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