Jump to content

Gui Slots Acting Weird


shucke

Recommended Posts

Hello,

I am trying to open a GuiContainer when clicked on a button when in a GuiScreen.

the gui opens just fine but when i try to drag some items to the slots they start to act all weird.

sometimes when i click on 1 of my custom slots i drag out my armour for some reason.

and when i try to move around items in my player inventory it acts all weird.

the items duplicate to the slot nesxt to them i pick up items i didnt even select and all that kind of stuf.

i hope someone can find what is wrong with my code cuz i cant find the error.

 

anyway here is my code:

 

Block

 

package legendz.common;

 

import java.io.ByteArrayOutputStream;

import java.io.DataOutputStream;

 

import cpw.mods.fml.common.FMLCommonHandler;

import cpw.mods.fml.common.network.FMLNetworkHandler;

import cpw.mods.fml.common.network.PacketDispatcher;

import cpw.mods.fml.common.network.Player;

import cpw.mods.fml.relauncher.Side;

import net.minecraft.block.Block;

import net.minecraft.block.BlockContainer;

import net.minecraft.block.material.Material;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.player.EntityPlayerMP;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.network.packet.Packet250CustomPayload;

import net.minecraft.tileentity.TileEntity;

import net.minecraft.world.World;

 

public class BlockLegendzCraftingTable extends BlockContainer{

 

public BlockLegendzCraftingTable(int par1, Material par2Material) {

super(par1, 1 ,par2Material);

this.setHardness(0.8f);

this.setCreativeTab(getCreativeTabToDisplayOn().tabDecorations);

}

 

public int getBlockTextureFromSide(int i){

if(i == 0){

return 0;

}

if(i == 1){

return 0;

}

return 1;

}

 

public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9){

TileEntityLegendzCraftingTable obj = (TileEntityLegendzCraftingTable)par1World.getBlockTileEntity(par2, par3, par4);

if(obj!=null){

 

if(par5EntityPlayer.inventory.getCurrentItem() != null){

ItemStack item = par5EntityPlayer.inventory.getCurrentItem();

if(item.itemID == BaseLegendz.recipeItem.itemID){

obj.ownedRecipes[item.getItemDamage()] = true;

//par5EntityPlayer.inventory.setCurrentItem(0, 0, false, false);

return true;

}

}

 

FMLNetworkHandler.openGui(par5EntityPlayer, BaseLegendz.LegendzInstance, 0, par1World, par2, par3, par4);

Side side = FMLCommonHandler.instance().getEffectiveSide();

if (side == Side.SERVER) {

SendPacket(par1World, par2, par3, par4, par5EntityPlayer, obj);

}

}

return true;

}

 

private void SendPacket(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, TileEntityLegendzCraftingTable te) {

byte[] b = te.getOwnedRecipes();

 

int byteAmount = b.length + 1 + 12;

ByteArrayOutputStream bos = new ByteArrayOutputStream(byteAmount);

DataOutputStream outputStream = new DataOutputStream(bos);

try {

        outputStream.writeByte(0);

        outputStream.writeInt(par2);

        outputStream.writeInt(par3);

        outputStream.writeInt(par4);

        for(int i = 0; i < te.ownedRecipes.length; i++){

        if(te.ownedRecipes == true){

        outputStream.writeBoolean(true);

        }else{

            outputStream.writeBoolean(false);

        }

        }

 

} catch (Exception ex) {

        ex.printStackTrace();

}

Packet250CustomPayload packet = new Packet250CustomPayload();

packet.channel = "MinecraftLegendz";

packet.data = bos.toByteArray();

packet.length = bos.size();

 

EntityPlayerMP player = (EntityPlayerMP)par5EntityPlayer;

PacketDispatcher.sendPacketToPlayer(packet, (Player)player);

}

 

public String getTextureFile(){

return BaseLegendz.PNGBlock;

}

 

@Override

public TileEntity createNewTileEntity(World var1) {

return new TileEntityLegendzCraftingTable();

}

 

}

 

 

 

Gui (Screen)

 

package legendz.common;

 

import net.minecraft.client.gui.GuiButton;

import net.minecraft.client.gui.GuiScreen;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.player.InventoryPlayer;

import net.minecraft.util.StatCollector;

import net.minecraft.world.World;

 

import org.lwjgl.opengl.GL11;

 

import cpw.mods.fml.common.network.FMLNetworkHandler;

 

public class GuiLegendzCraftingTable extends GuiScreen

{

    private TileEntityLegendzCraftingTable inventory;

   

    private GuiButton button1;

    private GuiButton button2;

    private GuiButton[] button = new GuiButton[11];

    private EntityPlayer player;

    private World world;

    private int x,y,z;

   

    int curPage = 1;

    int maxPage = 2;

   

   

    public GuiLegendzCraftingTable(InventoryPlayer par1InventoryPlayer, TileEntityLegendzCraftingTable te, EntityPlayer p, World w, int xx, int yy, int zz)

    {

        this.inventory = te;

        player = p;

        world = w;

        x = xx;

        y = yy;

        z = zz;

    }

   

    public void initGui(){

    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

    controlList.clear();

    controlList.add(button1 = new GuiButton(100, width / 2 - 60, height / 2 +68, 40, 20, "<"));

    controlList.add(button2 = new GuiButton(101, width / 2 + 60-40, height / 2 +68, 40, 20, ">"));

   

    int yOffset = 0;

    for(int i = 0; i < button.length; i++){

    controlList.add(button = new GuiButton(i, width / 2 - 55, height / 2 -95 + yOffset, 111, 20, ItemRecipe.recipeNames));

    yOffset += 20;

    if(yOffset == 160){

    yOffset = 0;

    }

    }

   

    for(int j = 0; j < button.length; j++){

    button[j].enabled = inventory.ownedRecipes[j];

    }

    UpdatePage();

    }

   

    public boolean doesGuiPauseGame(){

    return false;

    }

   

    protected void actionPerformed(GuiButton guiButton){

    if(guiButton.id == 100){

    curPage--;

    UpdatePage();

    return;

    }

    if(guiButton.id == 101){

    curPage++;

    UpdatePage();

    return;

    }

   

    for(int i = 0; i < button.length; i++){

    if(guiButton.id == i){

    inventory.curCraftingRecipe = i;

    FMLNetworkHandler.openGui(player, BaseLegendz.LegendzInstance, 1, world, x, y, z);

    }

    }

   

}

   

    private void UpdatePage() {

    int maxRecipe = curPage * 8;

    int minRecipe = maxRecipe - 8;

    if(maxRecipe > button.length){

    maxRecipe = button.length;

    }

    for(int j = 0; j < button.length; j++){

    if(button[j] != null){

    button[j].enabled = false;

    button[j].drawButton = false;

    }

    }

    for(int i = minRecipe; i < maxRecipe; i++){

    if(button != null){

    button.drawButton = true;

    if(inventory.ownedRecipes == true){

    button.enabled = true;

    }

    }

    }

}

 

public void updateScreen(){

    if(curPage == 1){

    button1.enabled = false;

    }else{

    button1.enabled = true;

    }

   

    if(curPage == maxPage){

    button2.enabled = false;

    }else{

    button2.enabled = true;

    }

    }

 

    public void drawScreen(int par1, int par2, float f)

    {

        //drawDefaultBackground();

        int var4 = this.mc.renderEngine.getTexture("/legendz/resources/gui/craftingSelection.png");

        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

        this.mc.renderEngine.bindTexture(var4);

        int var5 = width / 2 - 88;

        int var6 = height / 2 - 112;

        this.drawTexturedModalRect(var5, var6, 0, 0, 176, 224);

        //button1.drawButton(mc, width, height);

        this.drawCenteredString(this.fontRenderer, ""+curPage, this.width / 2,height/2 +72, 16777215);

        super.drawScreen(par1, par2, f);

    }

}

 

 

 

 

Gui (Container)

 

package legendz.common;

 

import org.lwjgl.opengl.GL11;

 

import net.minecraft.client.gui.inventory.GuiContainer;

import net.minecraft.entity.player.InventoryPlayer;

import net.minecraft.inventory.Container;

import net.minecraft.util.StatCollector;

 

public class GuiLegendzCrafting extends GuiContainer{

 

private int recipeID;

private TileEntityLegendzCraftingTable inventory;

 

public GuiLegendzCrafting(InventoryPlayer inv, TileEntityLegendzCraftingTable te) {

super(new ContainerLegendzCraftingTable(inv, te));

inventory = te;

}

 

public boolean doesGuiPauseGame(){

return false;

}

 

protected void drawGuiContainerForegroundLayer(int i, int j){

recipeID = inventory.curCraftingRecipe;

    this.fontRenderer.drawString(StatCollector.translateToLocal(ItemRecipe.recipeNames[recipeID]), 30, -6, 4210752);

        this.fontRenderer.drawString(StatCollector.translateToLocal("Inventory"), 8, this.ySize - 98, 4210752);

}

 

protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3){

drawDefaultBackground();

int var4 = this.mc.renderEngine.getTexture("/legendz/resources/gui/crafting.png");

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);

        this.mc.renderEngine.bindTexture(var4);

        int var5 = (this.width - this.xSize) / 2;

        int var6 = (this.height - this.ySize) / 2;

        this.drawTexturedModalRect(var5, var6, 0, 0, this.xSize, this.ySize);

}

 

}

 

 

 

Container

 

package legendz.common;

 

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.entity.player.InventoryPlayer;

import net.minecraft.inventory.Container;

import net.minecraft.inventory.Slot;

 

public class ContainerLegendzCraftingTable extends Container {

 

private TileEntityLegendzCraftingTable TELCT;

 

    public ContainerLegendzCraftingTable(InventoryPlayer par1InventoryPlayer, TileEntityLegendzCraftingTable par2)

    {

    TELCT = par2;

   

    for(int var59 = 0; var59 < 3; var59++){

    for(int var60 = 0; var60 < 3; var60++){

    this.addSlotToContainer(new Slot(par2, (3*var59)+var60, 26 + (var60 * 18), (var59 * 18)));

    }

    } 

        //this.addSlotToContainer(new SlotGrinder(par1InventoryPlayer.player, par2, 1, 116, 35));

    this.addSlotToContainer(new Slot(par2, 0, 40, 16));

 

    int var3;

 

        for (var3 = 0; var3 < 3; ++var3)

        {

            for (int var4 = 0; var4 < 9; ++var4)

            {

                this.addSlotToContainer(new Slot(par1InventoryPlayer, var4 + var3 * 9 + 9, 8 + var4 * 18, 84 + var3 * 18));

            }

        }

 

        for (var3 = 0; var3 < 9; ++var3)

        {

            this.addSlotToContainer(new Slot(par1InventoryPlayer, var3, 8 + var3 * 18, 142));

        }

    }

 

@Override

public boolean canInteractWith(EntityPlayer var1) {

return true;

}

 

}

 

 

 

CommonProxy

 

package legendz.common;

 

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.tileentity.TileEntity;

import net.minecraft.world.World;

import cpw.mods.fml.common.network.IGuiHandler;

 

public class CommonProxy implements IGuiHandler{

 

public void registerRenderInformation(){

 

}

 

@Override

public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {

TileEntity te = world.getBlockTileEntity(x, y, z);

if(te != null){

switch(ID){

case 0: return null;

 

case 1: return new ContainerLegendzCraftingTable(player.inventory, (TileEntityLegendzCraftingTable)te);

}

 

}

return null;

}

 

@Override

public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {

TileEntity te = world.getBlockTileEntity(x, y, z);

if(te != null){

switch(ID){

case 0: return new GuiLegendzCraftingTable(player.inventory, (TileEntityLegendzCraftingTable)te, player, world, x, y, z);

 

case 1: return new GuiLegendzCrafting(player.inventory, (TileEntityLegendzCraftingTable)te);

}

}

return null;

}

 

}

 

 

 

TileEntity

 

package legendz.common;

 

import java.util.ArrayList;

import java.util.List;

 

import cpw.mods.fml.common.registry.GameRegistry;

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.BlockFurnace;

import net.minecraft.block.material.Material;

import net.minecraft.entity.player.EntityPlayer;

import net.minecraft.inventory.IInventory;

import net.minecraft.item.Item;

import net.minecraft.item.ItemBlock;

import net.minecraft.item.ItemHoe;

import net.minecraft.item.ItemStack;

import net.minecraft.item.ItemSword;

import net.minecraft.item.ItemTool;

import net.minecraft.item.crafting.FurnaceRecipes;

import net.minecraft.nbt.NBTTagCompound;

import net.minecraft.nbt.NBTTagList;

import net.minecraft.tileentity.TileEntity;

 

import net.minecraftforge.common.ForgeDirection;

import net.minecraftforge.common.ISidedInventory;

 

public class TileEntityLegendzCraftingTable extends TileEntity implements IInventory, ISidedInventory

{

    /**

    * The ItemStacks that hold the items currently being used in the furnace

    */

    private ItemStack[] tableItemStacks = new ItemStack[12];

    public boolean[] ownedRecipes = new boolean[20];

    public int curCraftingRecipe = 0;

 

 

    /**

    * Returns the number of slots in the inventory.

    */

    public int getSizeInventory()

    {

        return this.tableItemStacks.length;

    }

 

    /**

    * Returns the stack in slot i

    */

    public ItemStack getStackInSlot(int par1)

    {

        return this.tableItemStacks[par1];

    }

 

    /**

    * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a

    * new stack.

    */

    public ItemStack decrStackSize(int par1, int par2)

    {

        if (this.tableItemStacks[par1] != null)

        {

            ItemStack var3;

 

            if (this.tableItemStacks[par1].stackSize <= par2)

            {

                var3 = this.tableItemStacks[par1];

                this.tableItemStacks[par1] = null;

                return var3;

            }

            else

            {

                var3 = this.tableItemStacks[par1].splitStack(par2);

 

                if (this.tableItemStacks[par1].stackSize == 0)

                {

                    this.tableItemStacks[par1] = null;

                }

 

                return var3;

            }

        }

        else

        {

            return null;

        }

    }

 

    /**

    * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -

    * like when you close a workbench GUI.

    */

    public ItemStack getStackInSlotOnClosing(int par1)

    {

        if (this.tableItemStacks[par1] != null)

        {

            ItemStack var2 = this.tableItemStacks[par1];

            this.tableItemStacks[par1] = null;

            return var2;

        }

        else

        {

            return null;

        }

    }

 

    /**

    * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).

    */

    public void setInventorySlotContents(int par1, ItemStack par2ItemStack)

    {

        this.tableItemStacks[par1] = par2ItemStack;

 

        if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit())

        {

            par2ItemStack.stackSize = this.getInventoryStackLimit();

        }

    }

 

    /**

    * Returns the name of the inventory.

    */

    public String getInvName()

    {

        return "container.legendzcraftingtable";

    }

 

    /**

    * Reads a tile entity from NBT.

    */

    public void readFromNBT(NBTTagCompound par1NBTTagCompound)

    {

        super.readFromNBT(par1NBTTagCompound);

        NBTTagList var2 = par1NBTTagCompound.getTagList("Items");

        this.tableItemStacks = new ItemStack[this.getSizeInventory()];

 

        for (int var3 = 0; var3 < var2.tagCount(); ++var3)

        {

            NBTTagCompound var4 = (NBTTagCompound)var2.tagAt(var3);

            byte var5 = var4.getByte("Slot");

 

            if (var5 >= 0 && var5 < this.tableItemStacks.length)

            {

                this.tableItemStacks[var5] = ItemStack.loadItemStackFromNBT(var4);

            }

        }

    }

 

    /**

    * Writes a tile entity to NBT.

    */

    public void writeToNBT(NBTTagCompound par1NBTTagCompound)

    {

        super.writeToNBT(par1NBTTagCompound);

        NBTTagList var2 = new NBTTagList();

 

        for (int var3 = 0; var3 < this.tableItemStacks.length; ++var3)

        {

            if (this.tableItemStacks[var3] != null)

            {

                NBTTagCompound var4 = new NBTTagCompound();

                var4.setByte("Slot", (byte)var3);

                this.tableItemStacks[var3].writeToNBT(var4);

                var2.appendTag(var4);

            }

        }

 

        par1NBTTagCompound.setTag("Items", var2);

    }

 

    /**

    * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't

    * this more of a set than a get?*

    */

    public int getInventoryStackLimit()

    {

        return 64;

    }

 

    /**

    * Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count

    * ticks and creates a new spawn inside its implementation.

    */

    public void updateEntity(){

      if(tableItemStacks[10] != null){

      int dmg = tableItemStacks[10].getItemDamage();

      if(ownedRecipes[dmg] == false){

      ownedRecipes[dmg] = true;

      tableItemStacks[10] = null;

      }

      }

      /*for(int ii = 0; ii < ownedRecipes.length; ii++){

      if(ownedRecipes[ii] == true){

      System.out.println(ii);

      }

      }*/

    }

   

    public byte[] getOwnedRecipes(){

    /*ArrayList list = new ArrayList();

    for(int i = 0; i < ownedRecipes.length; i++){

    if(ownedRecipes == true){

    list.add((byte) i);

    }

    }

   

    byte[] b = new byte[list.size()];

    for(int iii = 0; iii < ownedRecipes.length; iii++){

    if(ownedRecipes[iii] == true){

    b[]

    }

    }*/

    byte[] b = new byte[ownedRecipes.length];

    for(byte i = 0; i < ownedRecipes.length; i++){

    if(ownedRecipes == true){

    b = (byte)(i+1);

    }else{

    b = 0;

    }

    }

    return b;

    }

 

    /**

    * Do not make give this method the name canInteractWith because it clashes with Container

    */

    public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)

    {

        return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;

    }

 

    public void openChest() {}

 

    public void closeChest() {}

 

    @Override

    public int getStartInventorySide(ForgeDirection side)

    {

        if (side == ForgeDirection.DOWN) return 1;

        if (side == ForgeDirection.UP) return 0;

        return 2;

    }

 

    @Override

    public int getSizeInventorySide(ForgeDirection side)

    {

        return 1;

    }

}

 

 

 

Base File

 

package legendz.common;

 

@Mod(modid = "Minecraft Legendz", name = "Minecraft Legendz", version = "0.1")

@NetworkMod( clientSideRequired = true, serverSideRequired = false, versionBounds = "[0.1]",

channels=("MinecraftLegendz"), packetHandler = PacketHandler.class/*,

clientPacketHandlerSpec = @SidedPacketHandler(channels = {"CCraftClient"}, packetHandler = centurycraft.client.ClientPacketHandler.class),

serverPacketHandlerSpec = @SidedPacketHandler(channels = {"CCraft"}, packetHandler = centurycraft.common.PacketHandler.class)*/)

 

public class BaseLegendz {

public static final String PNGBlock = "/legendz/resources/Blocks/terrain.png";

public static final String PNGItem = "/legendz/resources/gui/item.png";

public static final String PNGAnimated = "/legendz/resources/gui/animatedItem.png";

 

@SidedProxy(clientSide = "legendz.client.ClientProxy", serverSide = "legendz.common.CommonProxy")

public static CommonProxy proxy;

 

@Instance("Minecraft Legendz")

public static BaseLegendz LegendzInstance;

 

public static int startBlockID;

public static int startItemID;

 

public static Block legendzCraftingTable, testBlock;

 

public static EnumArmorMaterial ENERGY = EnumHelper.addArmorMaterial("ENERGY", 80, new int[]{12, 27, 21, 12}, 60);

 

TickHandler tickHandler = new TickHandler();

 

private void LoadBlocks(){

legendzCraftingTable = new BlockLegendzCraftingTable(startBlockID, Material.wood).setBlockName("legendzcraftingtable");

}

 

private void RegisterBlocks() {

GameRegistry.registerBlock(legendzCraftingTable, "LegendzCraftingTable");

}

 

private void InitItems(){

 

}

 

@PreInit

public void PreLoad(FMLPreInitializationEvent evt){

Configuration config = new Configuration(evt.getSuggestedConfigurationFile());

config.load();

/*startBlockID = config.getOrCreateBlockIdProperty("BlockID", 400).getInt();

startItemID = config.getOrCreateIntProperty("ItemID", Configuration.CATEGORY_ITEM, 400).getInt();*/

startBlockID = config.get("General", "blockID", 750).getInt();

startItemID = config.get("General", "itemID", 3500).getInt();

        config.save();

        LoadBlocks();

        InitItems();

}

 

@Init

public void Load(FMLInitializationEvent evt){

proxy.registerRenderInformation();

NetworkRegistry.instance().registerGuiHandler(LegendzInstance, proxy);

GameRegistry.registerWorldGenerator(new WorldGenerator());

RegisterBlocks();

RegisterTileEntitys();

TickRegistry.registerTickHandler(tickHandler, Side.CLIENT);

//AddSmelting();

AddRecipes();

}

 

private void RegisterTileEntitys() {

GameRegistry.registerTileEntity(TileEntityLegendzCraftingTable.class, "Legendz Crafting Table");

}

 

private void AddRecipes(){

 

}

}

 

 

 

Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I made server version of my modpack, deleted all clientside mods, server starts but latest.log contains many errors and i have no idea how to fix them Latest.log https://mclo.gs/jswh7LP
    • ---- Minecraft Crash Report ---- // Why did you do that? Time: 2024-09-29 13:38:10 Description: Rendering screen java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0     at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)     at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)     at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)     at java.base/java.util.Objects.checkIndex(Objects.java:385)     at java.base/java.util.ArrayList.get(ArrayList.java:427)     at net.replaceitem.symbolchat.gui.widget.DropDownWidget.method_25369(DropDownWidget.java:81)     at net.replaceitem.symbolchat.gui.widget.DropDownWidget.method_48579(DropDownWidget.java:51)     at net.minecraft.class_339.method_25394(class_339.java:66)     at net.minecraft.class_437.method_25394(class_437.java:128)     at net.minecraft.class_408.method_25394(class_408.java:200)     at net.minecraft.class_437.method_47413(class_437.java:117)     at net.minecraft.class_757.mixinextras$bridge$method_47413$257(class_757.java)     at net.minecraft.class_757.wrapOperation$bij000$fabric-screen-api-v1$onRenderScreen(class_757.java:3086)     at net.minecraft.class_757.method_3192(class_757.java:913)     at net.minecraft.class_310.method_1523(class_310.java:1285)     at net.minecraft.class_310.method_1514(class_310.java:882)     at net.minecraft.client.main.Main.main(Main.java:256)     at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)     at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)     at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:100)     at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:106)     at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:302)     at java.base/java.util.Objects.checkIndex(Objects.java:385)     at java.base/java.util.ArrayList.get(ArrayList.java:427)     at net.replaceitem.symbolchat.gui.widget.DropDownWidget.method_25369(DropDownWidget.java:81)     at net.replaceitem.symbolchat.gui.widget.DropDownWidget.method_48579(DropDownWidget.java:51)     at net.minecraft.class_339.method_25394(class_339.java:66)     at net.minecraft.class_437.method_25394(class_437.java:128)     at net.minecraft.class_408.method_25394(class_408.java:200)     at net.minecraft.class_437.method_47413(class_437.java:117)     at net.minecraft.class_757.mixinextras$bridge$method_47413$257(class_757.java)     at net.minecraft.class_757.wrapOperation$bij000$fabric-screen-api-v1$onRenderScreen(class_757.java:3086) -- Screen render details -- Details:     Screen name: net.minecraft.class_408     Mouse location: Scaled: (213, 120). Absolute: (427.000000, 240.000000)     Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2.000000 Stacktrace:     at net.minecraft.class_757.method_3192(class_757.java:913)     at net.minecraft.class_310.method_1523(class_310.java:1285)     at net.minecraft.class_310.method_1514(class_310.java:882)     at net.minecraft.client.main.Main.main(Main.java:256)     at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)     at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)     at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) -- Uptime -- Details:     JVM uptime: 52.276s     Wall uptime: 35.737s     High-res time: 684634.710s     Client ticks: 305 ticks / 15.250s Stacktrace:     at net.minecraft.class_310.method_1587(class_310.java:2501)     at net.minecraft.class_310.method_54580(class_310.java:949)     at net.minecraft.class_310.method_1514(class_310.java:902)     at net.minecraft.client.main.Main.main(Main.java:256)     at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480)     at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74)     at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) -- Affected level -- Details:     All players: 14 total; [class_746['Snr_Ganapi'/12586, l='ClientLevel', x=-12.50, y=-28.00, z=23.50], class_745['h33nky'/12585, l='ClientLevel', x=-12.50, y=-28.00, z=23.50], class_745['dimasik2009123'/12565, l='ClientLevel', x=-12.50, y=-28.00, z=23.50], class_745['Elik89'/12583, l='ClientLevel', x=-18.46, y=-30.00, z=12.76], class_745['1b123eb8-107a-46'/1, l='ClientLevel', x=-4.50, y=-29.00, z=-11.50], class_745['9e1895c7-120a-4d'/3, l='ClientLevel', x=-12.50, y=-29.00, z=-13.50], class_745['1c7db329-783c-4d'/4, l='ClientLevel', x=-0.50, y=-29.00, z=-9.50], class_745['b6ddb583-f492-48'/9, l='ClientLevel', x=-8.50, y=-29.00, z=-13.50], class_745['2459f82c-f115-49'/7, l='ClientLevel', x=-28.50, y=-29.00, z=-6.50], class_745['2333ac85-73e9-4e'/5, l='ClientLevel', x=-20.50, y=-29.00, z=-11.50], class_745['06fe93b3-6dd2-4c'/2, l='ClientLevel', x=-16.50, y=-29.00, z=-13.50], class_745['ac3f6659-8d12-4c'/6, l='ClientLevel', x=-24.50, y=-29.00, z=-9.50], class_745['54753c0c-908c-44'/8, l='ClientLevel', x=3.50, y=-29.00, z=-6.50], class_745['scaly_toad'/12587, l='ClientLevel', x=-12.50, y=-27.90, z=23.50]]     Chunk stats: 1024, 293 F: 0 L: 0 U: 0 C: 0     Level dimension: minecraft:overworld     Level spawn location: World: (-13,-28,23), Section: (at 3,4,7 in -1,-2,1; chunk contains blocks -16,-64,16 to -1,319,31), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,-64,0 to -1,319,511)     Level time: 321927384 game time, 9000 day time     Server brand: SPWorlds P2: (hub-2)     Server type: Non-integrated multiplayer server     Tracked entity count: 516 -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: No     Packs: vanilla, fabric, betterf3, betterthirdperson, boatiview, bobby, c2me, caffeineconfig, capes, cardinal-components-base, cardinal-components-entity, cicada, cloth-config, dynamic_fps, ears, enhancedblockentities, entity_texture_features, entityculling, explosiveenhancement, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-blockrenderlayer-v1, fabric-client-tags-api-v1, fabric-command-api-v1, fabric-command-api-v2, fabric-commands-v0, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-keybindings-v0, fabric-language-kotlin, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-loot-api-v3, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-renderer-registries-v1, fabric-rendering-data-attachment-v1, fabric-rendering-fluids-v1, fabric-rendering-v0, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-sound-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, fabricloader, fallingleaves, forcecloseworldloadingscreen, immediatelyfast, indium, iris, lithium, modernfix, modmenu, nvidium, obsidianui, placeholder-api, plasmovoice, reeses-sodium-options, rrls, ryoamiclights, satin, showmeyourskin, skinlayers3d, sodium, sodium-extra, spark, symbol-chat, vmp, voicechat, wakes, xaerominimap, yet_another_config_lib_v3, zoomify, file/iconsv.1.8 (1).zip, file/No Pumpkin Blur 1.20-1.20.1.zip, file/Default-Dark-Mode-1.20-2023.6.0.zip, file/CalvinsSinisterSculk[1.20.4][v1.0].zip -- System Details -- Details:     Minecraft Version: 1.21     Minecraft Version ID: 1.21     Operating System: Windows 10 (amd64) version 10.0     Java Version: 21.0.3, Microsoft     Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Microsoft     Memory: 225615872 bytes (215 MiB) / 1140850688 bytes (1088 MiB) up to 2147483648 bytes (2048 MiB)     CPUs: 4     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 3 4300U with Radeon Graphics              Identifier: AuthenticAMD Family 23 Model 96 Stepping 1     Microarchitecture: unknown     Frequency (GHz): 2.70     Number of physical packages: 1     Number of physical CPUs: 4     Number of logical CPUs: 4     Graphics card #0 name: AMD Radeon(TM) Graphics     Graphics card #0 vendor: Advanced Micro Devices, Inc.     Graphics card #0 VRAM (MiB): 512.00     Graphics card #0 deviceId: VideoController1     Graphics card #0 versionInfo: 31.0.12044.3     Memory slot #0 capacity (MiB): 8192.00     Memory slot #0 clockSpeed (GHz): 3.20     Memory slot #0 type: DDR4     Virtual memory max (MiB): 12942.09     Virtual memory used (MiB): 9630.07     Swap memory total (MiB): 5376.00     Swap memory used (MiB): 528.52     Space in storage for jna.tmpdir (MiB): available: 166917.31, total: 243558.98     Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 166917.31, total: 243558.98     Space in storage for io.netty.native.workdir (MiB): available: 166917.31, total: 243558.98     Space in storage for java.io.tmpdir (MiB): available: 166917.31, total: 243558.98     Space in storage for workdir (MiB): available: 166917.31, total: 243558.98     JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M     Fabric Mods:          badoptimizations: BadOptimizations 2.1.4         betterf3: BetterF3 11.0.1         betterthirdperson: Better Third Person 1.9.0         boatiview: Boat Item View Fabric 0.0.5         bobby: Bobby 5.2.3+mc1.21             com_typesafe_config: config 1.4.2             fabric-api-base: Fabric API Base 0.4.42+6573ed8c90             io_leangen_geantyref_geantyref: geantyref 1.3.13             org_spongepowered_configurate-core: configurate-core 4.1.2             org_spongepowered_configurate-hocon: configurate-hocon 4.1.2         c2me: Concurrent Chunk Management Engine 0.2.0+alpha.11.109+1.21             c2me-base: Concurrent Chunk Management Engine (Base) 0.2.0+alpha.11.109+1.21             c2me-client-uncapvd: Concurrent Chunk Management Engine (Client/Uncap View Distance) 0.2.0+alpha.11.109+1.21             c2me-fixes-chunkio-threading-issues: Concurrent Chunk Management Engine (Fixes/Chunk IO/Threading Issues) 0.2.0+alpha.11.109+1.21             c2me-fixes-general-threading-issues: Concurrent Chunk Management Engine (Fixes/General/Threading Issues) 0.2.0+alpha.11.109+1.21             c2me-fixes-worldgen-threading-issues: Concurrent Chunk Management Engine (Fixes/WorldGen/Threading Issues) 0.2.0+alpha.11.109+1.21             c2me-fixes-worldgen-vanilla-bugs: Concurrent Chunk Management Engine (Fixes/WorldGen/Vanilla Bugs) 0.2.0+alpha.11.109+1.21             c2me-notickvd: Concurrent Chunk Management Engine (No Tick View Distance) 0.2.0+alpha.11.109+1.21             c2me-opts-allocs: Concurrent Chunk Management Engine (Optimizations/Memory Allocations) 0.2.0+alpha.11.109+1.21             c2me-opts-chunk-access: Concurrent Chunk Management Engine (Optimizations/Chunk Access) 0.2.0+alpha.11.109+1.21             c2me-opts-chunkio: Concurrent Chunk Management Engine (Optimizations/Chunk IO) 0.2.0+alpha.11.109+1.21             c2me-opts-math: Concurrent Chunk Management Engine (Optimizations/Math) 0.2.0+alpha.11.109+1.21             c2me-opts-scheduling: Concurrent Chunk Management Engine (Optimizations/Scheduling) 0.2.0+alpha.11.109+1.21             c2me-opts-worldgen-general: Concurrent Chunk Management Engine (Optimizations/General WorldGen) 0.2.0+alpha.11.109+1.21             c2me-opts-worldgen-vanilla: Concurrent Chunk Management Engine (Optimizations/Vanilla WorldGen) 0.2.0+alpha.11.109+1.21             c2me-rewrites-chunk-serializer: Concurrent Chunk Management Engine (Rewrites/Chunk Serializer) 0.2.0+alpha.11.109+1.21             c2me-rewrites-chunkio: Concurrent Chunk Management Engine (Rewrites/Chunk IO) 0.2.0+alpha.11.109+1.21             c2me-server-utils: Concurrent Chunk Management Engine (Server Utils) 0.2.0+alpha.11.109+1.21             c2me-threading-chunkio: Concurrent Chunk Management Engine (Threading/WorldGen) 0.2.0+alpha.11.109+1.21             c2me-threading-lighting: Concurrent Chunk Management Engine (Threading/Lighting) 0.2.0+alpha.11.109+1.21             c2me-threading-worldgen: Concurrent Chunk Management Engine (Threading/WorldGen) 0.2.0+alpha.11.109+1.21             com_electronwill_night-config_core: core 3.6.5             com_electronwill_night-config_toml: toml 3.6.5             com_ibm_async_asyncutil: asyncutil 0.1.0             net_objecthunter_exp4j: exp4j 0.4.8             org_threadly_threadly: threadly 7.0         capes: Capes 1.5.4+1.21         cicada: CICADA 0.8.3+1.21-and-above         cloth-config: Cloth Config v15 15.0.128             cloth-basic-math: cloth-basic-math 0.6.1         clumps: Clumps 18.0.0.2         dynamic_fps: Dynamic FPS 3.6.3             net_lostluma_battery: battery 1.1.0         ears: Ears 1.4.6         enhancedblockentities: Enhanced Block Entities 0.10.1+1.21         entity_texture_features: Entity Texture Features 6.1.3             org_apache_httpcomponents_httpmime: httpmime 4.5.10         entityculling: EntityCulling 1.6.6         explosiveenhancement: Explosive Enhancement 1.2.3-1.21.0         fabric-api: Fabric API 0.102.0+1.21             fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.68+b5597344d1             fabric-biome-api-v1: Fabric Biome API (v1) 13.0.29+5bd9f1bcd1             fabric-block-api-v1: Fabric Block API (v1) 1.0.22+0af3f5a7d1             fabric-block-view-api-v2: Fabric BlockView API (v2) 1.0.10+6573ed8cd1             fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.52+0af3f5a7d1             fabric-client-tags-api-v1: Fabric Client Tags 1.1.15+6573ed8cd1             fabric-command-api-v1: Fabric Command API (v1) 1.2.49+f71b366fd1             fabric-command-api-v2: Fabric Command API (v2) 2.2.28+6ced4dd9d1             fabric-commands-v0: Fabric Commands (v0) 0.2.66+df3654b3d1             fabric-content-registries-v0: Fabric Content Registries (v0) 8.0.16+b5597344d1             fabric-convention-tags-v1: Fabric Convention Tags 2.0.19+7f945d5bd1             fabric-convention-tags-v2: Fabric Convention Tags (v2) 2.5.0+c5e2b5c6d1             fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.2.29+0af3f5a7d1             fabric-data-attachment-api-v1: Fabric Data Attachment API (v1) 1.1.27+6a6dfa19d1             fabric-data-generation-api-v1: Fabric Data Generation API (v1) 20.2.16+16c4ae25d1             fabric-dimensions-v1: Fabric Dimensions API (v1) 4.0.0+6fc22b99d1             fabric-entity-events-v1: Fabric Entity Events (v1) 1.6.12+6fc22b99d1             fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.7.12+ba9dae06d1             fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.53+6ced4dd9d1             fabric-item-api-v1: Fabric Item API (v1) 11.0.0+afdfc921d1             fabric-item-group-api-v1: Fabric Item Group API (v1) 4.1.4+78017270d1             fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.47+0af3f5a7d1             fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.45+df3654b3d1             fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.3.12+6c1df360d1             fabric-loot-api-v2: Fabric Loot API (v2) 3.0.14+3f89f5a5d1             fabric-loot-api-v3: Fabric Loot API (v3) 1.0.2+3f89f5a5d1             fabric-message-api-v1: Fabric Message API (v1) 6.0.13+6573ed8cd1             fabric-model-loading-api-v1: Fabric Model Loading API (v1) 2.0.0+fe474d6bd1             fabric-networking-api-v1: Fabric Networking API (v1) 4.2.2+60c3209bd1             fabric-object-builder-api-v1: Fabric Object Builder API (v1) 15.2.0+a551f7a4d1             fabric-particles-v1: Fabric Particles (v1) 4.0.2+6573ed8cd1             fabric-recipe-api-v1: Fabric Recipe API (v1) 5.0.12+65089712d1             fabric-registry-sync-v0: Fabric Registry Sync (v0) 5.1.2+60c3209bd1             fabric-renderer-api-v1: Fabric Renderer API (v1) 3.4.0+c705a49cd1             fabric-renderer-indigo: Fabric Renderer - Indigo 1.7.0+c705a49cd1             fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.68+df3654b3d1             fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.48+73761d2ed1             fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 3.1.6+b5597344d1             fabric-rendering-v0: Fabric Rendering (v0) 1.1.71+df3654b3d1             fabric-rendering-v1: Fabric Rendering (v1) 5.0.5+df16efd0d1             fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 4.3.0+8dc279b1d1             fabric-resource-loader-v0: Fabric Resource Loader (v0) 1.3.0+56599129d1             fabric-screen-api-v1: Fabric Screen API (v1) 2.0.24+b5597344d1             fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.3.86+b5597344d1             fabric-sound-api-v1: Fabric Sound API (v1) 1.0.23+6573ed8cd1             fabric-transfer-api-v1: Fabric Transfer API (v1) 5.1.16+3dccd343d1             fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 6.1.0+176f9036d1         fabric-language-kotlin: Fabric Language Kotlin 1.12.0+kotlin.2.0.10             org_jetbrains_kotlin_kotlin-reflect: kotlin-reflect 2.0.10             org_jetbrains_kotlin_kotlin-stdlib: kotlin-stdlib 2.0.10             org_jetbrains_kotlin_kotlin-stdlib-jdk7: kotlin-stdlib-jdk7 2.0.10             org_jetbrains_kotlin_kotlin-stdlib-jdk8: kotlin-stdlib-jdk8 2.0.10             org_jetbrains_kotlinx_atomicfu-jvm: atomicfu-jvm 0.25.0             org_jetbrains_kotlinx_kotlinx-coroutines-core-jvm: kotlinx-coroutines-core-jvm 1.8.1             org_jetbrains_kotlinx_kotlinx-coroutines-jdk8: kotlinx-coroutines-jdk8 1.8.1             org_jetbrains_kotlinx_kotlinx-datetime-jvm: kotlinx-datetime-jvm 0.6.0             org_jetbrains_kotlinx_kotlinx-io-bytestring-jvm: kotlinx-io-bytestring-jvm 0.5.1             org_jetbrains_kotlinx_kotlinx-io-core-jvm: kotlinx-io-core-jvm 0.5.1             org_jetbrains_kotlinx_kotlinx-serialization-cbor-jvm: kotlinx-serialization-cbor-jvm 1.7.1             org_jetbrains_kotlinx_kotlinx-serialization-core-jvm: kotlinx-serialization-core-jvm 1.7.1             org_jetbrains_kotlinx_kotlinx-serialization-json-jvm: kotlinx-serialization-json-jvm 1.7.1         fabricloader: Fabric Loader 0.16.5             mixinextras: MixinExtras 0.4.1         fallingleaves: Falling Leaves 1.16.2         ferritecore: FerriteCore 7.0.0         forcecloseworldloadingscreen: kennytv's epic force close loading screen mod for Fabric 2.2.2         immediatelyfast: ImmediatelyFast 1.2.20+1.21.1             net_lenni0451_reflect: Reflect 1.3.4         indium: Indium 1.0.34+mc1.21         iris: Iris 1.7.3+mc1.21             io_github_douira_glsl-transformer: glsl-transformer 2.0.1             org_anarres_jcpp: jcpp 1.4.14             org_antlr_antlr4-runtime: antlr4-runtime 4.13.1         java: OpenJDK 64-Bit Server VM 21         ksyxis: Ksyxis 1.3.2         lithium: Lithium 0.12.7         minecraft: Minecraft 1.21         modernfix: ModernFix 5.19.1+mc1.21         modmenu: Mod Menu 11.0.1         nvidium: Nvidium 0.2.9-beta         obsidianui: ObsidianUI 0.2.7+mc1.21         placeholder-api: Placeholder API 2.4.1+1.21         plasmovoice: Plasmo Voice 2.0.10             aopalliance_aopalliance: aopalliance 1.0             com_google_inject_guice: guice 5.0.1             javax_inject_javax_inject: javax.inject 1         reeses-sodium-options: Reese's Sodium Options 1.7.3+mc1.21         rrls: Remove Reloading Screen 5.0.7+mc1.21-fabric         ryoamiclights: RyoamicLights 0.2.9+mc1.21         showmeyourskin: Show Me Your Skin! 1.11.3+1.21             cardinal-components-base: Cardinal Components API (base) 6.1.0             cardinal-components-entity: Cardinal Components API (entities) 6.1.0         skinlayers3d: 3d-Skin-Layers 1.6.7         sodium: Sodium 0.5.11+mc1.21         sodium-extra: Sodium Extra 0.5.7+mc1.21             caffeineconfig: CaffeineConfig 1.3.0+1.17         spark: spark 1.10.73             fabric-permissions-api-v0: fabric-permissions-api 0.3.1         symbol-chat: Symbol Chat 1.21-1.2.7         vmp: Very Many Players 0.2.0+beta.7.163+1.21         voicechat: Simple Voice Chat 1.21.1-2.5.22         wakes: Wakes 0.3.0+1.21.1             blue_endless_jankson: jankson 1.2.2             com_github_jdiemke_delaunay-triangulator_delaunaytriangulator: DelaunayTriangulator 1.0.0             satin: Satin 2.0.0         xaerominimap: Xaero's Minimap 24.4.0         yet_another_config_lib_v3: YetAnotherConfigLib 3.5.0+1.21-fabric             com_twelvemonkeys_common_common-image: common-image 3.10.0             com_twelvemonkeys_common_common-io: common-io 3.10.0             com_twelvemonkeys_common_common-lang: common-lang 3.10.0             com_twelvemonkeys_imageio_imageio-core: imageio-core 3.10.0             com_twelvemonkeys_imageio_imageio-metadata: imageio-metadata 3.10.0             com_twelvemonkeys_imageio_imageio-webp: imageio-webp 3.10.0             org_quiltmc_parsers_gson: gson 0.2.1             org_quiltmc_parsers_json: json 0.2.1         zoomify: Zoomify 2.14.0+1.21             com_akuleshov7_ktoml-core-jvm: ktoml-core-jvm 0.5.1     Loaded Shaderpack: (off)     Launched Version: fabric-loader-0.16.5-1.21     Launcher name: minecraft-launcher     Backend library: LWJGL version 3.3.3-snapshot     Backend API: AMD Radeon(TM) Graphics GL version 3.2.0 Core Profile Context 22.20.44.221025, ATI Technologies Inc.     Window size: 854x480     GFLW Platform: win32     GL Caps: Using framebuffer using OpenGL 3.2     GL debug messages:      Is Modded: Definitely; Client brand changed to 'fabric'     Universe: 400921fb54442d18     Type: Client (map_client.txt)     Graphics mode: fast     Render Distance: 9/9 chunks     Resource Packs: vanilla, fabric, betterf3, betterthirdperson, boatiview (incompatible), bobby, c2me, caffeineconfig, capes, cardinal-components-base, cardinal-components-entity, cicada, cloth-config, dynamic_fps, ears, enhancedblockentities, entity_texture_features, entityculling, explosiveenhancement, fabric-api, fabric-api-base, fabric-api-lookup-api-v1, fabric-biome-api-v1, fabric-block-api-v1, fabric-block-view-api-v2, fabric-blockrenderlayer-v1, fabric-client-tags-api-v1, fabric-command-api-v1, fabric-command-api-v2, fabric-commands-v0, fabric-content-registries-v0, fabric-convention-tags-v1, fabric-convention-tags-v2, fabric-crash-report-info-v1, fabric-data-attachment-api-v1, fabric-data-generation-api-v1, fabric-dimensions-v1, fabric-entity-events-v1, fabric-events-interaction-v0, fabric-game-rule-api-v1, fabric-item-api-v1, fabric-item-group-api-v1, fabric-key-binding-api-v1, fabric-keybindings-v0, fabric-language-kotlin, fabric-lifecycle-events-v1, fabric-loot-api-v2, fabric-loot-api-v3, fabric-message-api-v1, fabric-model-loading-api-v1, fabric-networking-api-v1, fabric-object-builder-api-v1, fabric-particles-v1, fabric-recipe-api-v1, fabric-registry-sync-v0, fabric-renderer-api-v1, fabric-renderer-indigo, fabric-renderer-registries-v1, fabric-rendering-data-attachment-v1, fabric-rendering-fluids-v1, fabric-rendering-v0, fabric-rendering-v1, fabric-resource-conditions-api-v1, fabric-resource-loader-v0, fabric-screen-api-v1, fabric-screen-handler-api-v1, fabric-sound-api-v1, fabric-transfer-api-v1, fabric-transitive-access-wideners-v1, fabricloader, fallingleaves, forcecloseworldloadingscreen, immediatelyfast, indium, iris, lithium, modernfix (incompatible), modmenu, nvidium, obsidianui, placeholder-api, plasmovoice, reeses-sodium-options, rrls, ryoamiclights, satin, showmeyourskin, skinlayers3d, sodium, sodium-extra, spark (incompatible), symbol-chat, vmp, voicechat, wakes, xaerominimap (incompatible), yet_another_config_lib_v3 (incompatible), zoomify, file/iconsv.1.8 (1).zip (incompatible), file/No Pumpkin Blur 1.20-1.20.1.zip (incompatible), file/Default-Dark-Mode-1.20-2023.6.0.zip (incompatible), file/CalvinsSinisterSculk[1.20.4][v1.0].zip (incompatible)     Current Language: ru_ru     Locale: ru_RU     System encoding: Cp1251     File encoding: UTF-8     CPU: 4x AMD Ryzen 3 4300U with Radeon Graphics 
    • I have no idea - maybe a fabric mod, but just Connector is mentioned
  • Topics

×
×
  • Create New...

Important Information

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