Jump to content

[1.16.5] Refreshing capability between server and client


ImNotJahan

Recommended Posts

In 1.12.2 I was able to use messages between the client and server (https://github.com/ImNotJahan/danmachi-mod/tree/master/v1.12.2/src/main/java/imnotjahan/mod/danmachi/network) I can't figure out how to get any of that to work for 1.16.5 though. This is all my capability code

IStatus

Spoiler

package imnotjahan.mod.danmachi.capabilities;

import java.util.Set;

public interface IStatus
{
    void giveFalna();
    boolean getFalna();

    String getFamilia();

    void setFamilia(String familiaName);

    /**
     * @param points how much the stat should increase by,
     *               is cut in half n - 1 times, n being level.
     *               doesn't cut in half if your adding excelia
     * @param id the id of the stat your increasing
     */
    void increase(int points, int id);

    /**
     * @param id the id of the stat your changing
     * @param amount the amount your setting the stat to
     */
    void set(int id, int amount);

    /**
     * @param id the id of the stat your changing
     * @param amount the amount your setting the stat to
     */
    void setP(int id, int amount);

    /**
     * @param id the id of the stat your grabbing
     */
    int get(int id);

    /**
     * @param id the id of the stat your grabbing
     */
    int getP(int id);

    int updateStatus();

    int getLevel();

    void grantAbility(Status.Ability ability);
    boolean grantSkill();
    boolean grantMagic();

    void setAbilities(Status.Ability[] abilities);
    void setSkills(Status.Skill[] skills);
    void setSpells(Status.Magic[] spells);

    Set<Status.Ability> levelUp();

    boolean canLevelUp();
    void setCanLevelUp(boolean canLevelUp);

    Status.Ability[] getAbilities();
    Status.Skill[] getSkills();
    Status.Magic[] getSpells();
}

 

StatusStorage

Spoiler

package imnotjahan.mod.danmachi.capabilities;

import net.minecraft.nbt.CompoundNBT;
import net.minecraft.nbt.INBT;
import net.minecraft.util.Direction;
import net.minecraftforge.common.capabilities.Capability;

public class StatusStorage implements Capability.IStorage<IStatus>
{
    @Override
    public INBT writeNBT(Capability<IStatus> capability, IStatus instance, Direction side)
    {
        if(Status.capSide == side)
        {
            CompoundNBT status = new CompoundNBT();
            status.putInt("hasFalna", instance.get(0));
            status.putInt("strength", instance.get(1));
            status.putInt("endurance", instance.get(2));
            status.putInt("dexterity", instance.get(3));
            status.putInt("agility", instance.get(4));
            status.putInt("magic", instance.get(5));
            status.putInt("level", instance.get(6));
            status.putInt("excelia", instance.get(7));

            status.putInt("strengthP", instance.getP(0));
            status.putInt("enduranceP", instance.getP(1));
            status.putInt("dexterityP", instance.getP(2));
            status.putInt("agilityP", instance.getP(3));
            status.putInt("magicP", instance.getP(4));
            status.putInt("exceliaP", instance.getP(5));

            status.putString("familia", instance.getFamilia());

            Status.Skill[] instanceSkills = instance.getSkills();
            int[] skills = new int[instanceSkills.length];

            for(int k = 0; k < skills.length; k++)
            {
                skills[k] = instanceSkills[k].toInt();
            }

            status.putIntArray("skills", skills);

            Status.Ability[] instanceAbilities = instance.getAbilities();
            int[] abilities = new int[instanceAbilities.length];
            int[] abilityStats = new int[instanceAbilities.length];

            for(int k = 0; k < abilities.length; k++)
            {
                abilities[k] = instanceAbilities[k].toInt();
                abilityStats[k] = instanceAbilities[k].getStat();
            }

            status.putIntArray("abilities", abilities);
            status.putIntArray("abilityStats", abilityStats);

            return status;
        }

        return new CompoundNBT();
    }

    @Override
    public void readNBT(Capability<IStatus> capability, IStatus instance, Direction side, INBT nbt)
    {
        if(Status.capSide == side)
        {
            if(nbt instanceof CompoundNBT)
            {
                CompoundNBT tag = (CompoundNBT)nbt;

                instance.set(0, tag.getInt("hasFalna"));
                instance.set(1, tag.getInt("strength"));
                instance.set(2, tag.getInt("endurance"));
                instance.set(3, tag.getInt("dexterity"));
                instance.set(4, tag.getInt("agility"));
                instance.set(5, tag.getInt("magic"));
                instance.set(6, tag.getInt("level"));
                instance.set(7, tag.getInt("excelia"));

                instance.setP(0, tag.getInt("strengthP"));
                instance.setP(1, tag.getInt("enduranceP"));
                instance.setP(2, tag.getInt("dexterityP"));
                instance.setP(3, tag.getInt("agilityP"));
                instance.setP(4, tag.getInt("magicP"));
                instance.setP(5, tag.getInt("exceliaP"));

                instance.setFamilia(tag.getString("familia"));

                int[] oldSkills = tag.getIntArray("skills");
                Status.Skill[] skills = new Status.Skill[oldSkills.length];

                for(int k = 0; k < oldSkills.length; k++)
                {
                    skills[k] = Status.Skill.values()[oldSkills[k]];
                }

                instance.setSkills(skills);

                int[] oldAbilities = tag.getIntArray("abilities");
                int[] oldAbilityStats = tag.getIntArray("abilityStats");
                Status.Ability[] abilities = new Status.Ability[oldAbilities.length];

                for(int k = 0; k < oldAbilities.length; k++)
                {
                    abilities[k] = Status.Ability.values()[oldAbilities[k]];
                    abilities[k].setStat(oldAbilityStats[k]);
                }

                instance.setAbilities(abilities);
            }
        }
    }
}

 

Status

Spoiler

package imnotjahan.mod.danmachi.capabilities;
import net.minecraft.util.Direction;

import java.util.*;

public class Status implements IStatus
{
    public static final Direction capSide = Direction.UP;

    public enum Ability
    {
        AbnormalResistance(0),
        Blacksmith(1),
        Mage(2),
        Mystery(3),
        Hunter(4),
        SpiritHealing(5),
        Luck(6);

        private int stat;
        private final int id;
        Ability(int id)
        {
            this.stat = 0;
            this.id = id;
        }

        public int getStat()
        {
            return stat;
        }

        public void increaseStat(int amount)
        {
            stat += amount;
        }

        public void setStat(int amount)
        {
            stat = amount;
        }

        public int toInt()
        {
            return id;
        }

        @Override
        public String toString()
        {
            String name = super.toString();

            name = name.replaceAll("\\d+", "").replaceAll("(.)([A-Z])", "$1_$2").toLowerCase();

            return name;
        }

        private static final List<Ability> VALUES = Collections.unmodifiableList(Arrays.asList(values()));
        private static final Random RANDOM = new Random();
        private static final int SIZE = VALUES.size();

        public static Ability randomAbility()
        {
            return VALUES.get(RANDOM.nextInt(SIZE));
        }
    }

    public enum Skill
    {
        AeroMana(0, 10),
        AilMacMidna(1, 10),
        Avenger(2, 5),
        MindLoad(3, 6);

        private final int index;
        private final int rarity;
        Skill(int index, int rarity)
        {
            this.index = index;
            this.rarity = rarity;
        }

        public int toInt()
        {
            return index;
        }

        private static final List<Skill> VALUES = Collections.unmodifiableList(Arrays.asList(values()));
        private static final int SIZE = VALUES.size();
        private static final Random RANDOM = new Random();

        public static Skill randomSkill()
        {
            Skill skill = Skill.AeroMana;
            Boolean gotOne = false;
            while(!gotOne)
            {
                skill = VALUES.get(RANDOM.nextInt(SIZE));
                if(Math.random() * 10 < skill.rarity)
                {
                    gotOne = true;
                }
            }

            return skill;
        }

        @Override
        public String toString()
        {
            String name = super.toString();

            name = name.replaceAll("\\d+", "").replaceAll("(.)([A-Z])", "$1_$2").toLowerCase();

            return name;
        }
    }

    public enum Magic
    {
        Firebolt(0);

        private final int index;
        Magic(int index)
        {
            this.index = index;
        }

        public int toInt()
        {
            return index;
        }

        private static final List<Magic> VALUES = Collections.unmodifiableList(Arrays.asList(values()));
        private static final int SIZE = VALUES.size();
        private static final Random RANDOM = new Random();

        public static Magic randomSkill()
        {
            return VALUES.get(RANDOM.nextInt(SIZE));
        }

        @Override
        public String toString()
        {
            String name = super.toString();

            name = name.replaceAll("\\d+", "").replaceAll("(.)([A-Z])", "$1_$2").toLowerCase();

            return name;
        }
    }

    private int hasFalna = 0;
    private int strength = 0;
    private int endurance = 0;
    private int dexterity = 0;
    private int agility = 0;
    private int magic = 0;
    private int level = 1;
    private int excelia = 0;
    private int mind = 100;

    private String familia = "";
    private List<Skill> skills = new ArrayList<>();
    private List<Ability> abilities = new ArrayList<>();
    private List<Magic> spells = new ArrayList<>();

    private int strengthP = 0;
    private int enduranceP = 0;
    private int dexterityP = 0;
    private int agilityP = 0;
    private int magicP = 0;
    private int exceliaP = 0;

    public boolean canLevelUp = false;

    @Override
    public void increase(int points, int id)
    {
        if(id != 7)
        {
            for(int k = 0; k < level - 1; k++)
            {
                points /= 2;
            }
        }

        points *= 1; //ModConfig.statMultiplier

        switch(id)
        {
            case 0:
                this.hasFalna += points;
                break;

            case 1:
                this.strengthP += points;
                break;

            case 2:
                this.enduranceP += points;
                break;

            case 3:
                this.dexterityP += points;
                break;

            case 4:
                this.agilityP += points;
                break;

            case 5:
                this.magicP += points;
                break;

            case 6:
                this.level += points;
                break;

            case 7:
                this.exceliaP += points;
                break;
        }
    }

    @Override
    public void set(int id, int stat)
    {
        switch(id)
        {
            case 0:
                this.hasFalna = stat;
                break;

            case 1:
                this.strength = stat;
                break;

            case 2:
                this.endurance = stat;
                break;

            case 3:
                this.dexterity = stat;
                break;

            case 4:
                this.agility = stat;
                break;

            case 5:
                this.magic = stat;
                break;

            case 6:
                this.level = stat;
                break;

            case 7:
                this.excelia = stat;
                break;
        }
    }

    @Override
    public void setP(int id, int stat)
    {
        switch(id)
        {
            case 0:
                this.strengthP = stat;
                break;

            case 1:
                this.enduranceP = stat;
                break;

            case 2:
                this.dexterityP = stat;
                break;

            case 3:
                this.agilityP = stat;
                break;

            case 4:
                this.magicP = stat;
                break;

            case 5:
                this.exceliaP = stat;
                break;
        }
    }

    @Override
    public int get(int id)
    {
        switch(id)
        {
            case 0:
                return this.hasFalna;

            case 1:
                return this.strength;

            case 2:
                return this.endurance;

            case 3:
                return this.dexterity;

            case 4:
                return this.agility;

            case 5:
                return this.magic;

            case 6:
                return this.level;

            case 7:
                return this.excelia;
        }

        return 0;
    }

    @Override
    public int getP(int id)
    {
        switch (id)
        {
            case 0:
                return this.strengthP;

            case 1:
                return this.enduranceP;

            case 2:
                return this.dexterityP;

            case 3:
                return this.agilityP;

            case 4:
                return this.magicP;

            case 5:
                return this.exceliaP;
        }

        return 0;
    }

    @Override
    public void giveFalna()
    {
        hasFalna = 1;
    }

    @Override
    public boolean getFalna()
    {
        return (hasFalna == 1);
    }

    @Override
    public String getFamilia()
    {
        return familia;
    }

    @Override
    public void setFamilia(String familia)
    {
        this.familia = familia;
    }

    @Override
    public int getLevel()
    {
        int level = this.level;
        if(excelia / (300 * level) >= 1 && strength > 400 ||
                endurance > 400 ||
                dexterity > 400 ||
                agility > 400 ||
                magicP > 400)
        {
            canLevelUp = true;
            level++;
        }

        return level;
    }

    @Override
    public Set<Ability> levelUp()
    {
        level += 1;
        excelia = 0;

        strength = 0;
        endurance = 0;
        dexterity = 0;
        agility = 0;
        magic = 0;

        canLevelUp = false;

        Set<Ability> abilities = new HashSet<>();
        for(int k = 0; k < 3; k++)
        {
            abilities.add(Ability.randomAbility());
        }

        return abilities;
    }

    @Override
    public int updateStatus()
    {
        strength += strengthP;
        endurance += enduranceP;
        dexterity += dexterityP;
        agility += agilityP;
        magic += magicP;
        excelia += exceliaP;
        level = getLevel();

        int increase = exceliaP;

        strengthP = 0;
        enduranceP = 0;
        dexterityP = 0;
        agilityP = 0;
        magicP = 0;
        exceliaP = 0;

        return increase;
    }

    @Override
    public void grantAbility(Ability ability)
    {
        abilities.add(ability);
    }

    @Override
    public boolean grantSkill()
    {
        Skill chosenSkill = Skill.randomSkill();
        if(!skills.contains(chosenSkill))
        {
            skills.add(chosenSkill);
            return true;
        }

        return false;
    }

    @Override
    public boolean grantMagic()
    {
        Magic chosenMagic = Magic.randomSkill();
        if(!spells.contains(chosenMagic))
        {
            spells.add(chosenMagic);
            return true;
        }

        return false;
    }

    @Override
    public void setAbilities(Ability[] abilities)
    {
        for(int k = 0; k < abilities.length; k++)
        {
            this.abilities.add(k, abilities[k]);
        }
    }

    @Override
    public void setSkills(Skill[] skills)
    {
        for(int k = 0; k < skills.length; k++)
        {
            this.skills.add(k, skills[k]);
        }
    }

    @Override
    public void setSpells(Magic[] spells)
    {
        for(int k = 0; k < spells.length; k++)
        {
            this.spells.add(k, spells[k]);
        }
    }

    @Override
    public Ability[] getAbilities()
    {
        Ability[] abilityArray = new Ability[abilities.toArray().length];

        for(int k = 0; k < abilityArray.length; k++)
        {
            abilityArray[k] = abilities.get(k);
        }

        return abilityArray;
    }

    @Override
    public Skill[] getSkills()
    {
        Skill[] skillArray = new Skill[skills.toArray().length];

        for(int k = 0; k < skillArray.length; k++)
        {
            skillArray[k] = skills.get(k);
        }

        return skillArray;
    }

    @Override
    public Magic[] getSpells()
    {
        Magic[] spellArray = new Magic[spells.toArray().length];

        for(int k = 0; k < spellArray.length; k++)
        {
            spellArray[k] = spells.get(k);
        }

        return spellArray;
    }

    @Override
    public boolean canLevelUp()
    {
        return canLevelUp;
    }

    @Override
    public void setCanLevelUp(boolean canLevelUp)
    {
        this.canLevelUp = canLevelUp;
    }
}

 

StatusProvider

Spoiler

package imnotjahan.mod.danmachi.capabilities;

import net.minecraft.nbt.INBT;
import net.minecraft.util.Direction;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.CapabilityInject;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.common.util.LazyOptional;

public class StatusProvider implements ICapabilitySerializable<INBT>
{
    @CapabilityInject(IStatus.class)
    public static final Capability<IStatus> STATUS_CAP = null;

    private IStatus instance = STATUS_CAP.getDefaultInstance();

    public boolean hasCapability(Capability<?> capability, Direction facing)
    {
        return capability == STATUS_CAP && facing == Status.capSide;
    }

    @Override
    public <IStatus> LazyOptional<IStatus> getCapability(Capability<IStatus> capability, Direction facing)
    {
        return hasCapability(capability, facing) ? (LazyOptional<IStatus>)this.instance : null;
    }

    @Override
    public INBT serializeNBT()
    {
        return STATUS_CAP.getStorage().writeNBT(STATUS_CAP, this.instance, Status.capSide);
    }

    @Override
    public void deserializeNBT(INBT nbt)
    {
        STATUS_CAP.getStorage().readNBT(STATUS_CAP, this.instance, Status.capSide, nbt);
    }
}

 

Where I'm accessing the capability:

StatusGui

Spoiler

package imnotjahan.mod.danmachi.gui.container;

import com.mojang.blaze3d.matrix.MatrixStack;
import imnotjahan.mod.danmachi.Reference;
import imnotjahan.mod.danmachi.capabilities.IStatus;
import imnotjahan.mod.danmachi.capabilities.Status;
import imnotjahan.mod.danmachi.capabilities.StatusProvider;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.common.util.LazyOptional;

public final class StatusGui extends Screen
{
    LazyOptional<IStatus> lazyStatus;
    IStatus status;

    public StatusGui()
    {
        super(new StringTextComponent("StatusGui"));
    }

    @Override
    public void render(MatrixStack stack, int mouseX, int mouseY, float tick)
    {
        this.renderBackground(stack);

        if(minecraft != null)
        {
            lazyStatus = minecraft.player.getCapability(StatusProvider.STATUS_CAP, Status.capSide);
            status = lazyStatus.orElse(new Status());
        }

        int level = status.get(6);
        int strength = status.get(1);
        int endurance = status.get(2);
        int dexterity = status.get(3);
        int agility = status.get(4);
        int magic = status.get(5);

        minecraft.getTextureManager().bind(new ResourceLocation(String.format("%s:textures/gui/falnas/%s.png",
                Reference.MODID, "hestia")));
        blit(stack, 0, 0, 0, 0, width,height, width, height);

        drawCenteredString(stack, font, new StringTextComponent("Level " + level),
                width / 2, 20, 0xFFFFFF);
        drawCenteredString(stack, font, new StringTextComponent("Strength: " + strength),
                width / 2, 40, 0xFFFFFF);
        drawCenteredString(stack, font, new StringTextComponent("Endurance: " + endurance),
                width / 2, 60, 0xFFFFFF);
        drawCenteredString(stack, font, new StringTextComponent("Dexterity: " + dexterity),
                width / 2, 80, 0xFFFFFF);
        drawCenteredString(stack, font, new StringTextComponent("Agility: " + agility),
                width / 2, 100, 0xFFFFFF);
        drawCenteredString(stack, font, new StringTextComponent("Magic: " + magic),
                width / 2, 120, 0xFFFFFF);

        super.render(stack, mouseX, mouseY, tick);
    }
}

 

MonsterBase (Inside die method)

Spoiler

package imnotjahan.mod.danmachi.entities.templates;

import imnotjahan.mod.danmachi.capabilities.IStatus;
import imnotjahan.mod.danmachi.capabilities.Status;
import imnotjahan.mod.danmachi.capabilities.StatusProvider;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.monster.ZombieEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.DamageSource;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;

public class MonsterBase extends ZombieEntity
{
    String name = "";

    public MonsterBase(EntityType<? extends ZombieEntity> entityType, World world, String name)
    {
        super(entityType, world);
        this.name = name;
    }

    @Override
    protected boolean isSunSensitive()
    {
        return false;
    }

    @Override
    protected ResourceLocation getDefaultLootTable()
    {
        return super.getDefaultLootTable();
    }

    @Override
    public void die(DamageSource cause)
    {
        super.die(cause);

        if(cause.getEntity() instanceof PlayerEntity)
        {
            PlayerEntity player = (PlayerEntity) cause.getEntity();
            IStatus status = player.getCapability(StatusProvider.STATUS_CAP, Status.capSide)
                    .orElse(new Status());
            if (status.getFalna())
            {
                for (int k = 0; k < 5; k++)
                {
                    status.increase(5, k + 1);
                }

                status.increase(5, 7);
            } else
            {
                return;
            }

        }
    }

    @Override
    public boolean isBaby()
    {
        return false;
    }

    @Override
    public boolean canBeLeashed(PlayerEntity player)
    {
        return true;
    }

    /*@Override
    protected void dropLoot(boolean wasRecentlyHit, int lootingModifier, DamageSource source)
    {
        super.dropLoot(wasRecentlyHit, lootingModifier, source);

        if(ModConfig.dropMagicCrystals)
        {
            ResourceLocation resource = LootTableHandler.magicStones.get(name);
            LootTable loottable = this.world.getLootTableManager().getLootTableFromLocation(resource);

            LootContext.Builder lootcontext$builder = (new LootContext.Builder((WorldServer)this.world)).withLootedEntity(this).withDamageSource(source);

            if (wasRecentlyHit && this.attackingPlayer != null)
            {
                lootcontext$builder = lootcontext$builder.withPlayer(this.attackingPlayer).withLuck(this.attackingPlayer.getLuck());
            }

            ItemStack stack = loottable.generateLootForPools(this.rand, lootcontext$builder.build()).get(0);
            entityDropItem(stack, 0);
        }
    }*/
}

 

 

Link to comment
Share on other sites

5 hours ago, ImNotJahan said:

 


    @Override
    public <IStatus> LazyOptional<IStatus> getCapability(Capability<IStatus> capability, Direction facing)
    {
        return hasCapability(capability, facing) ? (LazyOptional<IStatus>)this.instance : null;
    }

 

This is invalid.

  1. instance is not a LazyOptional, this cast will always fail.
  2. Returning null from getCapability is invalid.

See the documentation for the new network channels.

Link to comment
Share on other sites

On 9/3/2021 at 12:35 AM, diesieben07 said:

This is invalid.

  1. instance is not a LazyOptional, this cast will always fail.

Bit off-course from the original question, but I've changed my getCapability code to this

@Override
public <T> LazyOptional<T> getCapability(Capability<T> capability, Direction side)
{
	return capability == STATUS_CAP ? lazyStatus.cast() : LazyOptional.empty();
}

based off of what I found in the forge docs on capabilities, but capability is now never equaling STATUS_CAP, so I'm not sure what's going wrong

Here's what the STATUS_CAP code looks like:

    @CapabilityInject(IStatus.class)
    public static final Capability<IStatus> STATUS_CAP = null;

And also the lazyStatus incase that's important

private static final LazyOptional<IStatus> lazyStatus = LazyOptional.of(Status::new);

 

Edit: It also looks like the getCapability function isn't used at all? At least that's what I've gotten from placing random System.out.println's everywhere. I'm guessing I'm not registering the capability correctly 

    @SubscribeEvent
    public void attachCapability(AttachCapabilitiesEvent<Entity> event) 
    {
        if (!(event.getObject() instanceof PlayerEntity)) return;

        event.addCapability(new ResourceLocation(Reference.MODID, "status"),
                new StatusProvider());
    }

but this seems to be what the docs say to do so I'm not sure if anything's wrong with it

Edited by ImNotJahan
Link to comment
Share on other sites

It wasn't!

This isn't really a good thing but now I figured out that it shouldn't be on the mod bus, and so now it's attaching correctly and the getCapability function is being ran, and everything else seems to be working even without networking (for now at least) so thank you very very much

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I'm making a mod and everything was going well until I enabled accesstransformers. After that, every gradle build attempt fails. What I tried to do to solve the problem: Deleted the forge_gradle folder several times Deleted the caches folder several times Used ./gradlew build, ./gradlew genIntellijRuns and ./gradlew --refresh-dependencies I created a new mod project with only the main file and everything goes well until the inclusion of accesstransformers. Here is the error itself: https://pastebin.com/SQhrqpzr
    • I have no idea what's going wrong and I'm not smart enough to read the crash report and understand what it's trying to tell me.   ---- Minecraft Crash Report ---- // Don't be sad, have a hug! <3 Time: 6/3/23, 3:20 PM Description: Initializing game java.lang.IllegalAccessError: class net.minecraft.client.Minecraft tried to access private field com.mojang.blaze3d.platform.Window.f_85359_ (net.minecraft.client.Minecraft and com.mojang.blaze3d.platform.Window are in module minecraft@1.18.2 of loader 'TRANSFORMER' @2c829dbc)     at net.minecraft.client.Minecraft.md075849$lambda$moveRenderOut$0$1(Minecraft.java:4860) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.moveRenderOut(Minecraft.java:4872) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.loading.ClientModLoader.handler$zii000$begin(ClientModLoader.java:582) ~[forge-1.18.2-40.2.0-universal.jar%23177!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:better_loading_screen.mixins.json:MixinClientModLoader,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java) ~[forge-1.18.2-40.2.0-universal.jar%23177!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:better_loading_screen.mixins.json:MixinClientModLoader,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.<init>(Minecraft.java:459) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:169) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:classloading,re:mixin,pl:runtimedistcleaner:A,pl:mixin:A,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:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.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.md075849$lambda$moveRenderOut$0$1(Minecraft.java:4860) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.moveRenderOut(Minecraft.java:4872) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.loading.ClientModLoader.handler$zii000$begin(ClientModLoader.java:582) ~[forge-1.18.2-40.2.0-universal.jar%23177!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:better_loading_screen.mixins.json:MixinClientModLoader,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraftforge.client.loading.ClientModLoader.begin(ClientModLoader.java) ~[forge-1.18.2-40.2.0-universal.jar%23177!/:?] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:APP:better_loading_screen.mixins.json:MixinClientModLoader,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.<init>(Minecraft.java:459) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:notenoughcrashes.mixins.json:client.MixinMinecraftClient,pl:mixin:APP:apoli.mixins.json:MinecraftClientMixin,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:balm.mixins.json:MinecraftMixin,pl:mixin:APP:better_loading_screen-common.mixins.json:MixinMinecraft,pl:mixin:APP:architectury.mixins.json:MixinMinecraft,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:immersiveengineering.mixins.json:accessors.client.MinecraftAccess,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A} -- Initialization -- Details:     Modules:          ADVAPI32.dll:Advanced Windows 32 Base API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         COMCTL32.dll:User Experience Controls Library:6.10 (WinBuild.160101.0800):Microsoft Corporation         CRYPT32.dll:Crypto API32:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         CRYPTBASE.dll:Base cryptographic API DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         CRYPTSP.dll:Cryptographic Service Provider API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         CoreMessaging.dll:Microsoft CoreMessaging Dll:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         CoreUIComponents.dll:Microsoft Core UI Components Dll:10.0.22557.1:Microsoft Corporation         DBGHELP.DLL:Windows Image Helper:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         DEVOBJ.dll:Device Information Set DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         DNSAPI.dll:DNS Client API DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         GDI32.dll:GDI Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         GLU32.dll:OpenGL Utility Library DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         HID.DLL:Hid User Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         IMM32.DLL:Multi-User Windows IMM32 API Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         IPHLPAPI.DLL:IP Helper API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         KERNEL32.DLL:Windows NT BASE API Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         KERNELBASE.dll:Windows NT BASE API Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         MSASN1.dll:ASN.1 Runtime APIs:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         MSCTF.dll:MSCTF Server DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         MpOav.dll:IOfficeAntiVirus Module:4.18.23050.3 (91cf713774e4083376800dd3a1236363c5e087f6):Microsoft Corporation         NSI.dll:NSI User-mode interface DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         NTASN1.dll:Microsoft ASN.1 API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         OLEAUT32.dll:OLEAUT32.DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         PSAPI.DLL:Process Status Helper:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         Pdh.dll:Windows Performance Data Helper DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         RPCRT4.dll:Remote Procedure Call Runtime:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         SETUPAPI.DLL:Windows Setup API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         SHCORE.dll:SHCORE:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         SHELL32.dll:Windows Shell Common Dll:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         UMPDC.dll:User Mode Power Dependency Coordinator:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         USER32.dll:Multi-User Windows USER API Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         USERENV.dll:Userenv:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         VCRUNTIME140.dll:Microsoft® C Runtime Library:14.29.30133.0 built by: vcwrkspc:Microsoft Corporation         VERSION.dll:Version Checking and File Installation Libraries:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WINHTTP.dll:Windows HTTP Services:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WINMM.dll:MCI API DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WINSTA.dll:Winstation Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WINTRUST.dll:Microsoft Trust Verification APIs:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WS2_32.dll:Windows Socket 2.0 32-Bit DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WSOCK32.dll:Windows Socket 32-Bit DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         WTSAPI32.dll:Windows Remote Desktop Session Host Server SDK APIs:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         amsi.dll:Anti-Malware Scan Interface:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         bcrypt.dll:Windows Cryptographic Primitives Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         bcryptPrimitives.dll:Windows Cryptographic Primitives Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         cfgmgr32.dll:Configuration Manager DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         clbcatq.dll:COM+ Configuration Catalog:2001.12.10941.16384 (WinBuild.160101.0800):Microsoft Corporation         combase.dll:Microsoft COM for Windows:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         cryptnet.dll:Crypto Network Related API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dbgcore.DLL:Windows Core Debugging Helpers:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dhcpcsvc.DLL:DHCP Client Service:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dhcpcsvc6.DLL:DHCPv6 Client:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dinput8.dll:Microsoft DirectInput:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         drvstore.dll:Driver Store API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dwmapi.dll:Microsoft Desktop Window Manager API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         dxcore.dll:DXCore:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         fwpuclnt.dll:FWP/IPsec User-Mode API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         gdi32full.dll:GDI Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         glfw.dll         icm32.dll:Microsoft Color Management Module (CMM):10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         inputhost.dll:InputHost:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         java.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         javaw.exe:OpenJDK Platform binary:17.0.1.0:Microsoft         jemalloc.dll         jimage.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         jli.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         jna11401509881197171055.dll:JNA native library:6.1.2:Java(TM) Native Access (JNA)         jvm.dll:OpenJDK 64-Bit server VM:17.0.1.0:Microsoft         kernel.appcore.dll:AppModel API Host:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         lwjgl.dll         lwjgl_opengl.dll         lwjgl_stb.dll         management.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         management_ext.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         mscms.dll:Microsoft Color Matching System DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         msvcp140.dll:Microsoft® C Runtime Library:14.29.30133.0 built by: vcwrkspc:Microsoft Corporation         msvcp_win.dll:Microsoft® C Runtime Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         msvcrt.dll:Windows NT CRT DLL:7.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         mswsock.dll:Microsoft Windows Sockets 2.0 Service Provider:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         napinsp.dll:E-mail Naming Shim Provider:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         ncrypt.dll:Windows NCrypt Router:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         net.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         nio.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         nlansp_c.dll:NLA Namespace Service Provider DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         ntdll.dll:NT Layer DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         ntmarta.dll:Windows NT MARTA provider:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         nvoglv64.dll:NVIDIA Compatible OpenGL ICD:31.0.15.3168:NVIDIA Corporation         nvspcap64.dll:NVIDIA Game Proxy:3.27.0.112:NVIDIA Corporation         ole32.dll:Microsoft OLE for Windows:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         opengl32.dll:OpenGL Client DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         perfos.dll:Windows System Performance Objects DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         pfclient.dll:SysMain Client:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         pnrpnsp.dll:PNRP Name Space Provider:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         powrprof.dll:Power Profile Helper DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         profapi.dll:User Profile Basic API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         rasadhlp.dll:Remote Access AutoDial Helper:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         rsaenh.dll:Microsoft Enhanced Cryptographic Provider:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         sechost.dll:Host for SCM/SDDL/LSA Lookup APIs:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         shlwapi.dll:Shell Light-weight Utility Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         sunmscapi.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         svml.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         textinputframework.dll:"TextInputFramework.DYNLINK":10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         ucrtbase.dll:Microsoft® C Runtime Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         uxtheme.dll:Microsoft UxTheme Library:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         vcruntime140_1.dll:Microsoft® C Runtime Library:14.29.30133.0 built by: vcwrkspc:Microsoft Corporation         verify.dll:OpenJDK Platform binary:17.0.1.0:Microsoft         win32u.dll:Win32u:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         windows.storage.dll:Microsoft WinRT Storage API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         winrnr.dll:LDAP RnR Provider DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         wintypes.dll:Windows Base Types DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         wldp.dll:Windows Lockdown Policy:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         wshbth.dll:Windows Sockets Helper DLL:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         xinput1_4.dll:Microsoft Common Controller API:10.0.22557.1 (WinBuild.160101.0800):Microsoft Corporation         zip.dll:OpenJDK Platform binary:17.0.1.0:Microsoft Stacktrace:     at net.minecraft.client.main.Main.main(Main.java:169) ~[client-1.18.2-20220404.173914-srg.jar%23172!/:?] {re:classloading,re:mixin,pl:runtimedistcleaner:A,pl:mixin:A,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:31) ~[fmlloader-1.18.2-40.2.0.jar%2317!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} -- System Details -- Details:     Minecraft Version: 1.18.2     Minecraft Version ID: 1.18.2     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: 1746647648 bytes (1665 MiB) / 2768240640 bytes (2640 MiB) up to 8589934592 bytes (8192 MiB)     CPUs: 12     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 5 3600 6-Core Processor                   Identifier: AuthenticAMD Family 23 Model 113 Stepping 0     Microarchitecture: Zen 2     Frequency (GHz): 3.59     Number of physical packages: 1     Number of physical CPUs: 6     Number of logical CPUs: 12     Graphics card #0 name: USB Mobile Monitor Virtual Display     Graphics card #0 vendor: Amyuni     Graphics card #0 VRAM (MB): 0.00     Graphics card #0 deviceId: unknown     Graphics card #0 versionInfo: DriverVersion=1.0.2.9     Graphics card #1 name: NVIDIA GeForce GTX 1050 Ti     Graphics card #1 vendor: NVIDIA (0x10de)     Graphics card #1 VRAM (MB): 4095.00     Graphics card #1 deviceId: 0x1c82     Graphics card #1 versionInfo: DriverVersion=31.0.15.3168     Memory slot #0 capacity (MB): 8192.00     Memory slot #0 clockSpeed (GHz): 2.13     Memory slot #0 type: DDR4     Memory slot #1 capacity (MB): 8192.00     Memory slot #1 clockSpeed (GHz): 2.13     Memory slot #1 type: DDR4     Virtual memory max (MB): 32665.02     Virtual memory used (MB): 26069.58     Swap memory total (MB): 16332.51     Swap memory used (MB): 249.27     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx8192m -Xms256m     Launched Version: forge-40.2.0     Backend library: LWJGL version 3.2.2 SNAPSHOT     Backend API: NVIDIA GeForce GTX 1050 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 531.68, NVIDIA Corporation     Window size: <not initialized>     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     CPU: 12x AMD Ryzen 5 3600 6-Core Processor      ModLauncher: 9.1.3+9.1.3+main.9b69c82a     ModLauncher launch target: forgeclient     ModLauncher naming: srg     ModLauncher services:           mixin PLUGINSERVICE           eventbus PLUGINSERVICE           slf4jfixer PLUGINSERVICE           object_holder_definalize PLUGINSERVICE           runtime_enum_extender PLUGINSERVICE           capability_token_subclass PLUGINSERVICE           accesstransformer PLUGINSERVICE           runtimedistcleaner PLUGINSERVICE           mixin TRANSFORMATIONSERVICE           fml TRANSFORMATIONSERVICE      FML Language Providers:          minecraft@1.0         javafml@null         kotlinforforge@3.12.0         lowcodefml@null     Suspected Mods: java.lang.NullPointerException: Cannot invoke "net.minecraftforge.fml.ModList.getMods()" because the return value of "net.minecraftforge.fml.ModList.get()" is null     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.forge.platform.ForgePlatform.getAllMods(ForgePlatform.java:80)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.lambda$identifyFromMixin$8(ModIdentifier.java:155)     at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.identifyFromMixin(ModIdentifier.java:152)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.identifyFromThrowable(ModIdentifier.java:77)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.lambda$identifyFromStacktrace$2(ModIdentifier.java:43)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.visitChildrenThrowables(ModIdentifier.java:53)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.identifyFromStacktrace(ModIdentifier.java:42)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.lambda$getSuspectedModsOf$0(ModIdentifier.java:35)     at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)     at TRANSFORMER/notenoughcrashes@4.2.0+1.18.2/fudge.notenoughcrashes.stacktrace.ModIdentifier.getSuspectedModsOf(ModIdentifier.java:35)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.CrashReport.md075849$lambda$beforeSystemDetailsAreWritten$1$0(CrashReport.java:535)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.SystemReport.m_143522_(SystemReport.java:65)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.CrashReport.handler$zza000$beforeSystemDetailsAreWritten(CrashReport.java:533)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.CrashReport.m_127519_(CrashReport.java:68)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.CrashReport.m_127526_(CrashReport.java:111)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.CrashReport.m_127512_(CrashReport.java:132)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.Minecraft.m_91332_(Minecraft.java:781)     at TRANSFORMER/minecraft@1.18.2/net.minecraft.client.main.Main.main(Main.java:179)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.base/java.lang.reflect.Method.invoke(Method.java:568)     at MC-BOOTSTRAP/fmlloader@1.18.2-40.2.0/net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.Launcher.run(Launcher.java:106)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.Launcher.main(Launcher.java:77)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26)     at MC-BOOTSTRAP/cpw.mods.modlauncher@9.1.3/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23)     at cpw.mods.bootstraplauncher@1.0.0/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149)
    • https://github.com/person1212121212121221/crashes
    • Im playing using the newest version of forge (version 1.19.4 - 45.0.66) and I tried to shear a piece of string off of a tripwire and it broke the string. It is supposed to activate the hook but the string broke. I then reloaded the game and removed all of the mods (I just ran it using forge) and the same thing happened (the string broke). When I reload my game using vanilla, it shears the string which fires the hook and then it resets without breaking the string. If I am doing something wrong let me know but I believe this is a bug with forge.
    • Thank's but after a 1 per 1 mod check it was all the create add-on mods who just didn't work at all
  • Topics

×
×
  • Create New...

Important Information

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