Jump to content

Recommended Posts

Posted (edited)

I'm trying to make a forge (basically a custom furnace) which has selectable results (the input item is the same, with the count being different per result). Everything seems to work, but when forging starts, the effects of it are immediately reverted (or I suppose never existed in the first place) ie. the input count is not changed, and when the forging finishes, it outputs a fake item which disappears when you interact with it, with no error in the log.

 

Block Class

public class BlockAdamantineForge extends Block {
    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    public static final PropertyBool BURNING = PropertyBool.create("burning");
    private static final int HARVEST_LEVEL = ModConfig.addMineLevels ? 4 : 2;

    public BlockAdamantineForge(String name) {
        super(Material.IRON);
        setRegistryName(name);
        setUnlocalizedName(Objects.requireNonNull(getRegistryName()).toString());
        setCreativeTab(Main.TAB_GENERAL);
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(BURNING, false));

        setSoundType(SoundType.METAL);
        setHardness(6.0F);
        setResistance(6.0F);
        setHarvestLevel("pickaxe", HARVEST_LEVEL);

        ModBlocks.BLOCKS.add(this);
        ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()));
    }

    @Override
    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
        if(!worldIn.isRemote) {
            IBlockState north = worldIn.getBlockState(pos.north());
            IBlockState south = worldIn.getBlockState(pos.south());
            IBlockState east = worldIn.getBlockState(pos.east());
            IBlockState west = worldIn.getBlockState(pos.west());
            EnumFacing face = state.getValue(FACING);

            if(face == EnumFacing.NORTH && north.isFullBlock() && !south.isFullBlock())
                face = EnumFacing.SOUTH;
            else if(face == EnumFacing.SOUTH && south.isFullBlock() && !north.isFullBlock())
                face = EnumFacing.NORTH;
            else if(face == EnumFacing.EAST && east.isFullBlock() && !west.isFullBlock())
                face = EnumFacing.WEST;
            else if(face == EnumFacing.WEST && west.isFullBlock() && !east.isFullBlock())
                face = EnumFacing.EAST;
            worldIn.setBlockState(pos, state.withProperty(FACING, face), 2);
        }
    }

    @Override
    public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
        IItemHandler capability = Objects.requireNonNull(worldIn.getTileEntity(pos)).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
        for(int i = 0; i< Objects.requireNonNull(capability).getSlots(); i++) {
            ItemStack stack = capability.getStackInSlot(i);
            if(!stack.isEmpty())
                InventoryHelper.spawnItemStack(worldIn, pos.getX(), pos.getY(), pos.getZ(), stack);
        }
        super.breakBlock(worldIn, pos, state);
    }

    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
        if(!worldIn.isRemote)
            playerIn.openGui(Main.instance, Reference.GUI_ADAMANTINE_FORGE, worldIn, pos.getX(), pos.getY(), pos.getZ());
        return true;
    }

    @Override
    public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand) {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }

    @Override
    protected BlockStateContainer createBlockState() {
        return new BlockStateContainer(this, BURNING, FACING);
    }

    @Override
    public IBlockState getStateFromMeta(int meta) {
        EnumFacing facing = EnumFacing.getFront(meta);
        if(facing.getAxis() == EnumFacing.Axis.Y)
            facing = EnumFacing.NORTH;
        return this.getDefaultState().withProperty(FACING, facing);
    }

    @Override
    public int getMetaFromState(IBlockState state) {
        return (state.getValue(FACING)).getIndex();
    }

    @Override
    public boolean hasTileEntity(IBlockState state) {
        return true;
    }

    @Override
    public TileEntity createTileEntity(World world, IBlockState state) { return new TileEntityAdamantineForge(); }
}

 

Tile Entity Class

public class TileEntityAdamantineForge extends TileEntity implements ITickable {
    private final ItemStackHandler handler = new ItemStackHandler(3);

    public ItemStack result = ItemStack.EMPTY;
    public int burnTime, currentBurnTime, cookTime, totalCookTime = 200;
    private boolean isCurrentlyActive = false;

    private final String TAG_BURN_TIME = "BurnTime", TAG_CURRENT_BURN_TIME = "CurrentBurnTime", TAG_COOK_TIME = "CookTime", TAG_TOTAL_COOK_TIME = "TotalCookTime";
    private final String INVENTORY_KEY = "Inventory";
    private final String TAG_RESULT = "CurrentResult";
    private final String TAG_ACTIVE = "IsActive";

    @Override
    public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) {
        if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return true;
        return super.hasCapability(capability, facing);
    }

    @Override
    @SuppressWarnings("unchecked")
    public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
        if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return (T)this.handler;
        return super.getCapability(capability, facing);
    }

    @Override
    public void readFromNBT(NBTTagCompound compound) {
        super.readFromNBT(compound);
        this.handler.deserializeNBT(compound.getCompoundTag(INVENTORY_KEY));
        this.burnTime = compound.getInteger(TAG_BURN_TIME);
        this.cookTime = compound.getInteger(TAG_COOK_TIME);
        this.totalCookTime = compound.getInteger(TAG_TOTAL_COOK_TIME);
        this.currentBurnTime = compound.getInteger(TAG_CURRENT_BURN_TIME);
        this.isCurrentlyActive = compound.getBoolean(TAG_ACTIVE);
        NBTTagCompound compoundStack = compound.getCompoundTag(TAG_RESULT);
        this.result = new ItemStack(compoundStack);
    }
    @Override
    public NBTTagCompound writeToNBT(NBTTagCompound compound) {
        super.writeToNBT(compound);
        compound.setInteger(TAG_BURN_TIME, this.burnTime);
        compound.setInteger(TAG_COOK_TIME, this.cookTime);
        compound.setInteger(TAG_TOTAL_COOK_TIME, this.totalCookTime);
        compound.setInteger(TAG_CURRENT_BURN_TIME, this.currentBurnTime);
        compound.setTag(INVENTORY_KEY, this.handler.serializeNBT());
        compound.setBoolean(TAG_ACTIVE, this.isCurrentlyActive);
        NBTTagCompound compoundStack = this.result.writeToNBT(new NBTTagCompound());
        compound.setTag(TAG_RESULT, compoundStack);

        return compound;
    }

    @Override
    public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newState) {
        return oldState.getBlock() != newState.getBlock();
    }

    @Override
    public ITextComponent getDisplayName() {
        return new TextComponentTranslation("container.adamantine_forge");
    }

    /**
     * Checks if the player can use the tile entity
     * @param player The player to check.
     * @return True if the player is within range to use the tile entity, else false.
     */
    public boolean isUsableByPlayer(EntityPlayer player) {
        return this.world.getTileEntity(this.pos) == this && player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D;
    }

    public void setState(boolean active, World world, BlockPos pos) {
        IBlockState state = world.getBlockState(pos);
        TileEntity tileEntity = world.getTileEntity(pos);

        if(active != state.getValue(BlockAdamantineForge.BURNING)) {
            if(active)
                world.setBlockState(pos, state.withProperty(BlockAdamantineForge.BURNING, true));
            else
                world.setBlockState(pos, state.withProperty(BlockAdamantineForge.BURNING, false));
        }

        if(tileEntity != null)
            tileEntity.validate();
    }

    public void update() {
        ItemStack input = this.handler.getStackInSlot(0); //Gets an item stack containing the stack in the input slot
        ItemStack fuel = this.handler.getStackInSlot(1); //Gets an item stack containing the stack in the fuel slot

        if(!this.isBurning())
            setState(false, this.getWorld(), this.getPos()); //Sets the state of the adamantine forge to not burning when it isn't burning
        if(this.isCurrentlyActive && !(this.getCookTime()>0)){
            int inputCount = AdamantineForgeRecipes.getInstance().getInputCount(this.result); //Get the item count of the recipe
            if(input.getCount() >= inputCount && input.getItem() == AdamantineForgeRecipes.getInstance().getForgingInput(this.result).getItem()) {
                this.cookTime++; //Increment cook time
                this.setTotalCookTime(this.getCookTime(this.result)); //Set the total cook time to the cook time of the recipe
                this.handler.getStackInSlot(0).shrink(inputCount); //Shrink the input stack by the recipe input count
            }
        }
        if(this.getCookTime()>0 && (this.isBurning() || !fuel.isEmpty())) {
            this.burnTime--; //Reduces the burn time by one if the forge is burning or fuel is empty, and is forging (reduces the time left fueled by one tick)
            this.cookTime++; //Increment cook time if the forge is forging
            if(!this.isBurning()) { //If the forge is active and is not burning
                this.setBurnTime(TileEntityFurnace.getItemBurnTime(fuel)); //Set the burn time to the burn time of the fuel
                this.setCurrentBurnTime(this.getBurnTime()); //Set the current burn time to the burn time
                setState(true, this.getWorld(), this.getPos()); //Sets the state of the adamantine forge to burning when it first starts burning

                if(this.isBurning() && !fuel.isEmpty()) { //If the adamantine forge is active and fuel isn't empty
                    if(fuel.getItem() != Items.LAVA_BUCKET) //If fuel isn't a lava bucket
                        fuel.shrink(1); //Reduce the fuel stack by one
                    else
                        this.handler.setStackInSlot(1, new ItemStack(Items.BUCKET)); //Sets the stack in the fuel slot to an empty bucket

                    if(fuel.isEmpty()) //If the fuel stack is empty
                        this.handler.setStackInSlot(1, ItemStack.EMPTY); //Sets the stack in the fuel slot to the empty item stack
                }
            }
            if(this.getCookTime() == this.getTotalCookTime()) { //If cook time is total cook time
                if(this.handler.getStackInSlot(2).getCount() == 0) //If the output slot is empty
                    this.handler.insertItem(2, this.result, false); //Insert the recipe result into the output slot
                this.setTotalCookTime(0); //Set the total cook time to 0
                this.setCookTime(0); //Set the cook time to 0
                this.setCurrentlyActive(false); //Set inactive
            }
        }
    }

    /**
     * Sets currently active if forge button is clicked, and sets result based on result button selected.
     * @param guiLeft The left side of the gui.
     * @param guiTop The top of the gui.
     * @param mouseX The x position of the mouse.
     * @param mouseY The y position of the mouse.
     */
    public void onClick(int guiLeft, int guiTop, int mouseX, int mouseY) {
        //If mouse clicked the forge button
        if(mouseX>(guiLeft+61) && mouseX<(guiLeft+84)){
            if(mouseY>(guiTop+50) && mouseY<(guiTop+61)) {
                if(!this.isCurrentlyActive() && this.canSmelt())
                    this.setCurrentlyActive(true); //Set the forge to be active
            }
        }else if(mouseX>(guiLeft+93) && mouseX<(guiLeft+129)) { //If mouse clicked a left column result button
            if(mouseY > (guiTop+10) && mouseY < (guiTop+22)) { //If mouse clicked sword button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_SWORD)); //Set the result to corresponding button
            }else if (mouseY > (guiTop+23) && mouseY < (guiTop+35)) { //If mouse clicked pickaxe button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_PICKAXE)); //Set the result to corresponding button
            }else if(mouseY>(guiTop+36) && mouseY<(guiTop+48)) { //If mouse clicked axe button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_AXE)); //Set the result to corresponding button
            }else if(mouseY>(guiTop+49) && mouseY<(guiTop+61)) { //If mouse clicked shovel button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_SHOVEL)); //Set the result to corresponding button
            }else if(mouseY>(guiTop+62) && mouseY<(guiTop+74)) { //If mouse clicked hoe button
                if (!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_HOE)); //Set the result to corresponding button
            }
        }else if(mouseX>(guiLeft+131) && mouseX<(guiLeft+167)) { //If mouse clicked a right column result button
            if(mouseY > (guiTop+17) && mouseY < (guiTop+29)) { //If mouse clicked helmet button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_HELMET)); //Set the result to corresponding button
            }else if (mouseY > (guiTop+30) && mouseY < (guiTop+42)) { //If mouse clicked chestplate button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_CHESTPLATE)); //Set the result to corresponding button
            }else if (mouseY > (guiTop+43) && mouseY < (guiTop+55)) { //If mouse clicked leggings button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_LEGGINGS)); //Set the result to corresponding button
            }else if (mouseY > (guiTop+56) && mouseY < (guiTop+68)) { //If mouse clicked boots button
                if(!this.isCurrentlyActive())
                    this.setResult(new ItemStack(ModItems.ADAMANTINE_BOOTS)); //Set the result to corresponding button
            }
        }
    }

    /**
     * Checks whether the tile entity is active.
     * @return True if the burn time is greater than 0, else false.
     */
    public boolean isBurning() {
        return this.burnTime > 0;
    }

    /**
     * Checks whether the tile entity is active.
     * @param te The tile entity.
     * @return True if the burnTime field of the tile entity is greater than 0, else false.
     */
    @SideOnly(Side.CLIENT)
    public static boolean isBurning(TileEntityAdamantineForge te) {
        return te.burnTime > 0;
    }

    /**
     * Gets the cook time for the recipe with the given input
     * @param result The result of the recipe.
     * @return The cook time for the recipe.
     */
    private int getCookTime(ItemStack result) {
        return AdamantineForgeRecipes.getInstance().getForgingTime(result);
    }

    /**
     * Checks whether the recipe is valid and the output slot can fit the result.
     * @return True if the recipe is valid and the output slot is not full, else false.
     */
    public boolean canSmelt() {
        if(!(this.handler.getStackInSlot(0).isEmpty()) && this.handler.getStackInSlot(2).isEmpty()) {
            if(this.handler.getStackInSlot(0).getCount() >= AdamantineForgeRecipes.getInstance().getInputCount(this.result))
                return AdamantineForgeRecipes.getInstance().getForgingInput(this.result) != ItemStack.EMPTY;
        }
        return false;
    }

    public int getBurnTime() {
        return this.burnTime;
    }
    public void setBurnTime(int burnTime) {
        this.burnTime = burnTime;
    }
    public int getCurrentBurnTime() {
        return this.currentBurnTime;
    }
    public void setCurrentBurnTime(int currentBurnTime) {
        this.currentBurnTime = currentBurnTime;
    }

    public int getCookTime() {
        return this.cookTime;
    }
    public void setCookTime(int cookTime) {
        this.cookTime = cookTime;
    }
    public int getTotalCookTime() {
        return this.totalCookTime;
    }
    public void setTotalCookTime(int totalCookTime) {
        this.totalCookTime = totalCookTime;
    }

    public ItemStack getResult() {
        return this.result;
    }
    public void setResult(ItemStack result) {
        this.result = result;
    }

    public void setCurrentlyActive(boolean isActive) {
        this.isCurrentlyActive = isActive;
    }
    public boolean isCurrentlyActive() {
        return this.isCurrentlyActive;
    }
}

 

Container Class

public class ContainerAdamantineForge extends Container {
    private final TileEntityAdamantineForge tileEntity;
    private int cookTime, totalCookTime, burnTime, currentBurnTime;

    /**
     * Creates the slots in the container.
     * @param player The player to create player inventory slots.
     * @param tileEntity The tile entity to create item handler for tile entity slots.
     */
    public ContainerAdamantineForge(InventoryPlayer player, TileEntityAdamantineForge tileEntity) {
        this.tileEntity = tileEntity;
        IItemHandler handler = tileEntity.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);

        this.addSlotToContainer(new SlotItemHandler(handler, 0, 10, 23));
        this.addSlotToContainer(new SlotForgeFuel(handler, 1, 10, 48));
        this.addSlotToContainer(new SlotOutput(handler, 2, 65, 24));

        for(int y=0; y<3; y++) {
            for(int x=0; x<9; x++) {
                this.addSlotToContainer(new Slot(player, x + y*9 + 9, 8 + x*18, 84 + y*18));
            }
        }
        for(int x=0; x<9; x++) {
            this.addSlotToContainer(new Slot(player, x, 8 + x*18, 142));
        }
    }

    @Override
    public void detectAndSendChanges() {
        super.detectAndSendChanges();

        for(IContainerListener iContainerListener : this.listeners) {
            if(this.cookTime != this.tileEntity.getCookTime())
                iContainerListener.sendWindowProperty(this, 2, this.tileEntity.getCookTime());
            if(this.burnTime != this.tileEntity.getBurnTime())
                iContainerListener.sendWindowProperty(this, 0, this.tileEntity.getBurnTime());
            if(this.currentBurnTime != this.tileEntity.getCurrentBurnTime())
                iContainerListener.sendWindowProperty(this, 1, this.tileEntity.getCurrentBurnTime());
            if(this.totalCookTime != this.tileEntity.getTotalCookTime())
                iContainerListener.sendWindowProperty(this, 3, this.tileEntity.getTotalCookTime());
        }

        this.cookTime = this.tileEntity.getCookTime();
        this.burnTime = this.tileEntity.getBurnTime();
        this.currentBurnTime = this.tileEntity.getCurrentBurnTime();
        this.totalCookTime = this.tileEntity.getTotalCookTime();
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void updateProgressBar(int id, int data) {
        switch(id) {
            case 0:
                this.tileEntity.setBurnTime(data);
                break;
            case 1:
                this.tileEntity.setCurrentBurnTime(data);
                break;
            case 2:
                this.tileEntity.setCookTime(data);
                break;
            case 3:
                this.tileEntity.setTotalCookTime(data);
        }
    }

    @Override
    public boolean canInteractWith(EntityPlayer playerIn) {
        return this.tileEntity.isUsableByPlayer(playerIn);
    }

    @Override
    public ItemStack transferStackInSlot(EntityPlayer playerIn, int index) {
        ItemStack stack = ItemStack.EMPTY;
        Slot slot = this.inventorySlots.get(index);

        if(slot != null && slot.getHasStack()) {
            ItemStack stack1 = slot.getStack();
            stack = stack1.copy();

            if(index == 2) {
                if(!this.mergeItemStack(stack1, 4, 39, true)) return ItemStack.EMPTY;
                slot.onSlotChange(stack1, stack);
            }else if(index != 1 && index != 0) {
                if(stack1.getItem() == ModItems.ADAMANTINE_WAFER) {
                    if(!this.mergeItemStack(stack1, 0, 1, false))
                        return ItemStack.EMPTY;
                }
                if(TileEntityFurnace.isItemFuel(stack1)) {
                    if(!this.mergeItemStack(stack1, 1, 2, false))
                        return ItemStack.EMPTY;
                }else if(index >= 4 && index < 31) {
                    if(!this.mergeItemStack(stack1, 31, 39, false))
                        return ItemStack.EMPTY;
                }else if(index >= 31 && index < 39 && !this.mergeItemStack(stack1, 4, 31, false)) {
                    return ItemStack.EMPTY;
                }
            }else if(!this.mergeItemStack(stack1, 4, 39, false))
                return ItemStack.EMPTY;
            if(stack1.isEmpty())
                slot.putStack(ItemStack.EMPTY);
            else
                slot.onSlotChanged();
            if(stack1.getCount() == stack.getCount())
                return ItemStack.EMPTY;
            slot.onTake(playerIn, stack1);
        }
        return stack;
    }
}

 

Gui Class

public class GuiAdamantineForge extends GuiContainer {
    private static final ResourceLocation TEXTURES = new ResourceLocation(Reference.MODID + ":textures/gui/gui_adamantine_forge.png");
    private final InventoryPlayer player;
    private final TileEntityAdamantineForge tileEntity;

    public GuiAdamantineForge(InventoryPlayer player, TileEntityAdamantineForge tileEntity) {
        super(new ContainerAdamantineForge(player, tileEntity));
        this.player = player;
        this.tileEntity = tileEntity;
    }

    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        this.drawDefaultBackground();
        super.drawScreen(mouseX, mouseY, partialTicks);
        this.renderHoveredToolTip(mouseX, mouseY);
    }

    @Override
    protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
        super.drawGuiContainerForegroundLayer(mouseX, mouseY);
        String tileName = Objects.requireNonNull(this.tileEntity.getDisplayName()).getUnformattedText();
        int inputCount = AdamantineForgeRecipes.getInstance().getInputCount(this.tileEntity.result);
        this.fontRenderer.drawString(tileName, 4, 6, 4210752);
        this.fontRenderer.drawString(this.player.getDisplayName().getUnformattedText(), 8, this.ySize - 96 + 2, 4210752);
        this.fontRenderer.drawString("x" + inputCount, inputCount<10 ? 67: 65, 62, 16777215);
    }

    @Override
    protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.getTextureManager().bindTexture(TEXTURES);
        this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);

        if(TileEntityAdamantineForge.isBurning(tileEntity)) {
            int k = this.getBurnLeftScaled();
            this.drawTexturedModalRect(this.guiLeft+36, this.guiTop+49+12-k, 176, 12-k, 14, k+1);
        }

        int l = this.getCookProgressScaled();
        this.drawTexturedModalRect(this.guiLeft+31, this.guiTop+23, 176, 14, l+1, 16);

        mouseHover(mouseX, mouseY);
        drawCurrentSelected();
    }

    /**
     * Gets the number of pixels of the fire animation to show.
     * @return The number of pixels height to render.
     */
    private int getBurnLeftScaled() {
        int i = this.tileEntity.getCurrentBurnTime();
        if(i == 0) i = 200;
        return this.tileEntity.getBurnTime()*13/i;
    }

    /**
     * Gets the number of pixels of the arrow animation to show.
     * @return The number of pixels width to render.
     */
    private int getCookProgressScaled() {
        int i = this.tileEntity.getCookTime();
        int j = this.tileEntity.getTotalCookTime();
        return j != 0 && i != 0 ? i*24/j : 0;
    }

    @Override
    protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
        super.mouseClicked(mouseX, mouseY, mouseButton);

        if(Minecraft.getMinecraft().currentScreen instanceof GuiAdamantineForge) {
            if(mouseButton == 0)
                this.tileEntity.onClick(this.guiLeft, this.guiTop, mouseX, mouseY);
        }
    }

    private void mouseHover(int mouseX, int mouseY) {
        if(mouseX>(this.guiLeft+61) && mouseX<(this.guiLeft+84)){
            if(mouseY>(this.guiTop+50) && mouseY<(this.guiTop+61))
                this.drawTexturedModalRect(this.guiLeft+62, this.guiTop+50, 198, 131, 22, 10);
        }else if(mouseX>(this.guiLeft+93) && mouseX<(this.guiLeft+129)){
            if(mouseY>(this.guiTop+10) && mouseY<(this.guiTop+22))
                this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+10, 211, 31, 35, 11);
            else if(mouseY>(this.guiTop+23) && mouseY<(this.guiTop+35))
                this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+23, 211, 42, 35, 11);
            else if(mouseY>(this.guiTop+36) && mouseY<(this.guiTop+48))
                this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+36, 211, 53, 35, 11);
            else if(mouseY>(this.guiTop+49) && mouseY<(this.guiTop+61))
                this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+49, 211, 64, 35, 11);
            else if(mouseY>(this.guiTop+62) && mouseY<(this.guiTop+74))
                this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+62, 211, 75, 35, 11);
        }else if(mouseX>(this.guiLeft+131) && mouseX<(this.guiLeft+167)){
            if(mouseY>(this.guiTop+17) && mouseY<(this.guiTop+29))
                this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+17, 211, 86, 35, 11);
            else if(mouseY>(this.guiTop+30) && mouseY<(this.guiTop+42))
                this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+30, 211, 97, 35, 11);
            else if(mouseY>(this.guiTop+43) && mouseY<(this.guiTop+55))
                this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+43, 211, 108, 35, 11);
            else if(mouseY>(this.guiTop+56) && mouseY<(this.guiTop+68))
                this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+56, 211, 119, 35, 11);
        }
    }

    private void drawCurrentSelected() {
        if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_SWORD)
            this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+10, 176, 31, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_PICKAXE)
            this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+23, 176, 42, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_AXE)
            this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+36, 176, 53, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_SHOVEL)
            this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+49, 176, 64, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_HOE)
            this.drawTexturedModalRect(this.guiLeft+94, this.guiTop+62, 176, 75, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_HELMET)
            this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+17, 176, 86, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_CHESTPLATE)
            this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+30, 176, 97, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_LEGGINGS)
            this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+43, 176, 108, 35, 11);
        else if(this.tileEntity.getResult().getItem() == ModItems.ADAMANTINE_BOOTS)
            this.drawTexturedModalRect(this.guiLeft+132, this.guiTop+56, 176, 119, 35, 11);

        if(this.tileEntity.isCurrentlyActive())
            this.drawTexturedModalRect(this.guiLeft+62, this.guiTop+50, 176, 131, 22, 10);
    }
}

 

Recipes Class

public class AdamantineForgeRecipes {
    private static final AdamantineForgeRecipes INSTANCE = new AdamantineForgeRecipes();
    private final Map<ItemStack, ItemStack> smeltingList = Maps.newHashMap();
    private final Map<ItemStack, Integer> smeltingTime = Maps.newHashMap();
    private final Map<ItemStack, Float> experienceList = Maps.newHashMap();

    public static AdamantineForgeRecipes getInstance() {
        return INSTANCE;
    }

    private AdamantineForgeRecipes() {
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_SWORD), new ItemStack(ModItems.ADAMANTINE_WAFER, 7), 8.0F, 1500);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_PICKAXE), new ItemStack(ModItems.ADAMANTINE_WAFER, 11), 8.0F, 2100);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_AXE), new ItemStack(ModItems.ADAMANTINE_WAFER, 11), 8.0F, 1800);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_SHOVEL), new ItemStack(ModItems.ADAMANTINE_WAFER, 5), 8.0F, 1200);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_HOE), new ItemStack(ModItems.ADAMANTINE_WAFER, 8), 8.0F, 1900);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_HELMET), new ItemStack(ModItems.ADAMANTINE_WAFER, 15), 8.0F, 2400);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_CHESTPLATE), new ItemStack(ModItems.ADAMANTINE_WAFER, 24), 8.0F, 3300);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_LEGGINGS), new ItemStack(ModItems.ADAMANTINE_WAFER, 21), 8.0F, 3000);
        addForgingRecipe(new ItemStack(ModItems.ADAMANTINE_BOOTS), new ItemStack(ModItems.ADAMANTINE_WAFER, 12), 8.0F, 3600);
    }

    /**
     * Adds a forging recipe if the recipe does not already exist
     * @param input The input of the recipe.
     * @param result The result of the recipe.
     * @param experience The chance for the recipe to drop an experience.
     * @param time The time taken for the recipe to complete.
     */
    public void addForgingRecipe(ItemStack result, ItemStack input, float experience, int time) {
        if(getForgingInput(result) != ItemStack.EMPTY) return;
        this.smeltingList.put(result, input);
        this.smeltingTime.put(result, time);
        this.experienceList.put(result, experience);
    }

    /**
     * Gets the input of the forging recipe with the given result.
     * @param result The result of the recipe.
     * @return The input of the recipe.
     */
    public ItemStack getForgingInput(ItemStack result) {
        for(Map.Entry<ItemStack, ItemStack> entry : this.smeltingList.entrySet()) {
            if(this.compareItemStacks(result, entry.getKey())) {
                return entry.getValue();
            }
        }
        return ItemStack.EMPTY;
    }

    /**
     * Gets the input count of the forging recipe with the given input.
     * @param result The result of the recipe.
     * @return The number of items the recipe requires.
     */
    public int getInputCount(ItemStack result) {
        for(Map.Entry<ItemStack, ItemStack> entry : this.smeltingList.entrySet()) {
            if(this.compareItemStacks(result, entry.getKey())) {
                return entry.getValue().getCount();
            }
        }
        return 0;
    }

    /**
     * Gets the time taken for the forging recipe with the given input to complete.
     * @param result The result of the recipe.
     * @return The time taken for the recipe to complete, if it exists.
     */
    public int getForgingTime(ItemStack result) {
        for(Map.Entry<ItemStack, Integer> entry : this.smeltingTime.entrySet()) {
            if(this.compareItemStacks(result, entry.getKey())) {
                return entry.getValue();
            }
        }
        return 0;
    }

    /**
     * Gets the experience given by the recipe with the given result.
     * @param result The result of the recipe.
     * @return The experience given by the recipe, if it exists.
     */
    public float getForgingExperience(ItemStack result) {
        for(Map.Entry<ItemStack, Float> entry : this.experienceList.entrySet()) {
            if(this.compareItemStacks(result, entry.getKey()))
                return entry.getValue();
        }
        return 0.0F;
    }

    /**
     * Compares two item stacks to check if they are the same.
     * @param stack1 The item stack to compare.
     * @param stack2 The item stack to compare to.
     * @return True if the item stacks are identical, else false.
     */
    private boolean compareItemStacks(ItemStack stack1, ItemStack stack2) {
        return stack2.getItem() == stack1.getItem() && stack2.getMetadata() == stack1.getMetadata();
    }
}

 

As a side-note, how do you get a recipe to drop experience? I have the method to get experience in the recipes class, but I don't know what to do with it.

Edited by ShadowVappy
Spoiler tags not working
Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Open the file and remove the # from # -Xmx4G
    • https://mclo.gs/uea1hj9 It should be easier to see the crash report in this format...sorry I'm new to this
    • Hello...I was wondering if somebody could help me with this crash. I was using chunky to pre-load chunks and this chunk, -473 285 (-7685 y 4560) seems to be corrupted or something. So like a dummy I teleported myself from the server console there and it crashed as soon as I would join the world. I used MCA selector to delete the problematic chunk and luckily it sent me back to my last known location. Can anyone see what is possibly causing this issue with the crash log? Anyway...here it is. My gosh this is frustrating. ---- Minecraft Crash Report ---- // Hi. I'm Connector, and I'm a crashaholic ========================= SINYTRA CONNECTOR IS PRESENT! Please verify issues are not caused by Connector before reporting them to mod authors. If you're unsure, file a report on Connector's issue tracker found at https://github.com/Sinytra/Connector/issues. ========================= // You should try our sister game, Minceraft! Time: 2025-09-05 03:24:05 Description: Feature placement java.lang.NullPointerException: Cannot invoke "net.minecraft.world.level.Level.m_8055_(net.minecraft.core.BlockPos)" because "this.f_58857_" is null     at net.minecraft.world.level.block.entity.JukeboxBlockEntity.m_271871_(JukeboxBlockEntity.java:76) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:fabric-transfer-api-v1.mixins.json:JukeboxBlockEntityMixin from mod fabric_transfer_api_v1,pl:mixin:APP:amendments-common.mixins.json:JukeboxBlockEntityMixin from mod amendments,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.block.entity.JukeboxBlockEntity.m_7407_(JukeboxBlockEntity.java:132) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:fabric-transfer-api-v1.mixins.json:JukeboxBlockEntityMixin from mod fabric_transfer_api_v1,pl:mixin:APP:amendments-common.mixins.json:JukeboxBlockEntityMixin from mod amendments,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_8016_(ContainerSingleItem.java:37) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_272108_(ContainerSingleItem.java:28) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_6211_(ContainerSingleItem.java:20) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.Clearable.m_18908_(Clearable.java:10) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.m_230328_(StructureTemplate.java:232) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:betterdungeons.mixins.json:DungeonContextMixin from mod betterdungeons,pl:mixin:APP:betterdungeons.mixins.json:StructureTemplateMixin from mod betterdungeons,pl:mixin:APP:cataclysm.mixins.json:StructureTemplateMixin from mod cataclysm,pl:mixin:APP:lithostitched.mixins.json:common.StructureTemplateMixin from mod lithostitched,pl:mixin:APP:dungeonnowloading.forge.mixins.json:structures.StructureTemplateMixin from mod dungeonnowloading,pl:mixin:APP:integrated_api-common.mixins.json:structures.StructureTemplateMixin from mod integrated_api,pl:mixin:APP:integrated_api-common.mixins.json:structures.TemplateAccessor from mod integrated_api,pl:mixin:APP:blueprint.mixins.json:StructureTemplateMixin from mod blueprint,pl:mixin:APP:zeta.mixins.json:StructureTemplateMixin from mod zeta,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.TemplateStructurePiece.m_213694_(TemplateStructurePiece.java:83) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:computing_frames,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A,re:mixin,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.structures.OceanRuinPieces$OceanRuinPiece.m_213694_(OceanRuinPieces.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.StructureStart.m_226850_(StructureStart.java:90) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:blueprint.mixins.json:StructureStartMixin from mod blueprint,pl:mixin:APP:zeta.mixins.json:StructureStartMixin from mod zeta,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkGenerator.m_223080_(ChunkGenerator.java:320) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422) ~[guava-31.1-jre.jar%2374!/:?] {re:mixin}     at net.minecraft.world.level.chunk.ChunkGenerator.m_213609_(ChunkGenerator.java:319) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_279978_(ChunkStatus.java:108) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus$SimpleGenerationTask.m_214024_(ChunkStatus.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_280308_(ChunkStatus.java:252) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:643) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%2377!/:?] {}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$29(ChunkMap.java:634) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}     at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {re:mixin} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Server thread Suspected Mods: NONE Stacktrace:     at net.minecraft.world.level.block.entity.JukeboxBlockEntity.m_271871_(JukeboxBlockEntity.java:76) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:fabric-transfer-api-v1.mixins.json:JukeboxBlockEntityMixin from mod fabric_transfer_api_v1,pl:mixin:APP:amendments-common.mixins.json:JukeboxBlockEntityMixin from mod amendments,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.block.entity.JukeboxBlockEntity.m_7407_(JukeboxBlockEntity.java:132) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:fabric-transfer-api-v1.mixins.json:JukeboxBlockEntityMixin from mod fabric_transfer_api_v1,pl:mixin:APP:amendments-common.mixins.json:JukeboxBlockEntityMixin from mod amendments,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_8016_(ContainerSingleItem.java:37) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_272108_(ContainerSingleItem.java:28) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.ticks.ContainerSingleItem.m_6211_(ContainerSingleItem.java:20) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.Clearable.m_18908_(Clearable.java:10) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.m_230328_(StructureTemplate.java:232) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:betterdungeons.mixins.json:DungeonContextMixin from mod betterdungeons,pl:mixin:APP:betterdungeons.mixins.json:StructureTemplateMixin from mod betterdungeons,pl:mixin:APP:cataclysm.mixins.json:StructureTemplateMixin from mod cataclysm,pl:mixin:APP:lithostitched.mixins.json:common.StructureTemplateMixin from mod lithostitched,pl:mixin:APP:dungeonnowloading.forge.mixins.json:structures.StructureTemplateMixin from mod dungeonnowloading,pl:mixin:APP:integrated_api-common.mixins.json:structures.StructureTemplateMixin from mod integrated_api,pl:mixin:APP:integrated_api-common.mixins.json:structures.TemplateAccessor from mod integrated_api,pl:mixin:APP:blueprint.mixins.json:StructureTemplateMixin from mod blueprint,pl:mixin:APP:zeta.mixins.json:StructureTemplateMixin from mod zeta,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.TemplateStructurePiece.m_213694_(TemplateStructurePiece.java:83) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:computing_frames,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A,re:mixin,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.structures.OceanRuinPieces$OceanRuinPiece.m_213694_(OceanRuinPieces.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A}     at net.minecraft.world.level.levelgen.structure.StructureStart.m_226850_(StructureStart.java:90) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:blueprint.mixins.json:StructureStartMixin from mod blueprint,pl:mixin:APP:zeta.mixins.json:StructureStartMixin from mod zeta,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkGenerator.m_223080_(ChunkGenerator.java:320) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422) ~[guava-31.1-jre.jar%2374!/:?] {re:mixin}     at net.minecraft.world.level.chunk.ChunkGenerator.m_213609_(ChunkGenerator.java:319) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_279978_(ChunkStatus.java:108) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus$SimpleGenerationTask.m_214024_(ChunkStatus.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_280308_(ChunkStatus.java:252) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:643) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%2377!/:?] {}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$29(ChunkMap.java:634) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}     at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {} -- Feature -- Details:     Description: ResourceKey[minecraft:worldgen/structure / minecraft:ocean_ruin_warm] Stacktrace:     at net.minecraft.world.level.chunk.ChunkGenerator.m_213609_(ChunkGenerator.java:319) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_279978_(ChunkStatus.java:108) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus$SimpleGenerationTask.m_214024_(ChunkStatus.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_280308_(ChunkStatus.java:252) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:643) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%2377!/:?] {}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$29(ChunkMap.java:634) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}     at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {re:mixin} -- Generation -- Details:     CenterX: -473     CenterZ: 285     Seed: 1176945434636047048 Stacktrace:     at net.minecraft.world.level.chunk.ChunkGenerator.m_213609_(ChunkGenerator.java:319) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:citadel.mixins.json:ChunkGeneratorMixin from mod citadel,pl:mixin:APP:bettermineshafts.mixins.json:DisableVanillaMineshaftsMixin from mod bettermineshafts,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_279978_(ChunkStatus.java:108) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus$SimpleGenerationTask.m_214024_(ChunkStatus.java:309) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.world.level.chunk.ChunkStatus.m_280308_(ChunkStatus.java:252) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:connector_pre_launch:A}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:643) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%2377!/:?] {}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$29(ChunkMap.java:634) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}     at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {re:mixin} -- Chunk to be generated -- Details:     Location: -473,285     Position hash: 1228360646183     Generator: net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator@68ab688d Stacktrace:     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$27(ChunkMap.java:643) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at com.mojang.datafixers.util.Either$Left.map(Either.java:38) ~[datafixerupper-6.0.8.jar%2377!/:?] {}     at net.minecraft.server.level.ChunkMap.lambda$scheduleChunkGeneration$29(ChunkMap.java:634) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:bugfix.paper_chunk_patches.ChunkMapMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:bugfix.chunk_deadlock.ChunkMapLoadMixin from mod modernfix,pl:mixin:APP:fabric-networking-api-v1.mixins.json:accessor.ThreadedAnvilChunkStorageAccessor from mod fabric_networking_api_v1,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ThreadedAnvilChunkStorageMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:lithium.mixins.json:world.player_chunk_tick.ThreadedAnvilChunkStorageMixin from mod radium,pl:mixin:APP:lithostitched.mixins.json:common.ChunkMapMixin from mod lithostitched,pl:mixin:A,pl:connector_pre_launch:A}     at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1150) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?] {}     at net.minecraft.server.level.ChunkTaskPriorityQueueSorter.m_143188_(ChunkTaskPriorityQueueSorter.java:62) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18759_(ProcessorMailbox.java:91) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.m_18747_(ProcessorMailbox.java:146) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at net.minecraft.util.thread.ProcessorMailbox.run(ProcessorMailbox.java:102) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:classloading,pl:connector_pre_launch:A}     at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:mixin,re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {re:mixin} -- Wrapped in -- Details:     Wrapping exception: ~~ERROR~~ CompletionException: net.minecraft.ReportedException: Feature placement Stacktrace:     at net.minecraft.server.MinecraftServer.m_206568_(MinecraftServer.java:718) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin from mod citadel,pl:mixin:APP:connectormod.mixins.json:registries.MinecraftServerMixin from mod connectormod,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:675) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin from mod citadel,pl:mixin:APP:connectormod.mixins.json:registries.MinecraftServerMixin from mod connectormod,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:A,pl:connector_pre_launch:A}     at net.minecraft.server.MinecraftServer.m_206580_(MinecraftServer.java:251) ~[server-1.20.1-20230612.114412-srg.jar%23269!/:?] {re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:modernfix-common.mixins.json:perf.fix_loop_spin_waiting.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.dedicated_reload_executor.MinecraftServerMixin from mod modernfix,pl:mixin:APP:modernfix-forge.mixins.json:core.MinecraftServerMixin from mod modernfix,pl:mixin:APP:citadel.mixins.json:MinecraftServerMixin from mod citadel,pl:mixin:APP:connectormod.mixins.json:registries.MinecraftServerMixin from mod connectormod,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:MinecraftServerMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:fabric-resource-loader-v0.mixins.json:MinecraftServerMixin from mod fabric_resource_loader_v0,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:A,pl:connector_pre_launch:A}     at java.lang.Thread.run(Thread.java:833) ~[?:?] {re:mixin} -- System Details -- Details:     Minecraft Version: 1.20.1     Minecraft Version ID: 1.20.1     Operating System: Windows 10 (amd64) version 10.0     Java Version: 17.0.7, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode, sharing), Oracle Corporation     Memory: 475988768 bytes (453 MiB) / 2516582400 bytes (2400 MiB) up to 34359738368 bytes (32768 MiB)     CPUs: 32     Processor Vendor: AuthenticAMD     Processor Name: AMD Ryzen 9 9950X 16-Core Processor                 Identifier: AuthenticAMD Family 26 Model 68 Stepping 0     Microarchitecture: unknown     Frequency (GHz): 4.29     Number of physical packages: 1     Number of physical CPUs: 16     Number of logical CPUs: 32     Graphics card #0 name: NVIDIA GeForce RTX 5070 Ti     Graphics card #0 vendor: NVIDIA (0x10de)     Graphics card #0 VRAM (MB): 4095.00     Graphics card #0 deviceId: 0x2c05     Graphics card #0 versionInfo: DriverVersion=32.0.15.8097     Memory slot #0 capacity (MB): 49152.00     Memory slot #0 clockSpeed (GHz): 6.40     Memory slot #0 type: Unknown     Memory slot #1 capacity (MB): 49152.00     Memory slot #1 clockSpeed (GHz): 6.40     Memory slot #1 type: Unknown     Virtual memory max (MB): 104051.97     Virtual memory used (MB): 20980.76     Swap memory total (MB): 6144.00     Swap memory used (MB): 36.83     JVM Flags: 1 total; -Xmx32G     Server Running: true     Player Count: 0 / 20; []     Data Packs: vanilla, mod:betterdungeons, mod:fabric_renderer_api_v1, mod:netherexp, mod:playeranimator (incompatible), mod:fabric_item_api_v1, mod:illagerinvasion, mod:fabric_rendering_fluids_v1, mod:exlinecopperequipment, mod:fabric_models_v0, mod:sophisticatedcore (incompatible), mod:golemsarefriends (incompatible), mod:fabric_convention_tags_v1, mod:placebo (incompatible), mod:citadel (incompatible), mod:alexsmobs (incompatible), mod:fabric_command_api_v1, mod:fabric_block_view_api_v2, mod:fabric_command_api_v2, mod:yungsapi, mod:fabric_data_attachment_api_v1, mod:mixinextras (incompatible), mod:bookshelf, mod:sophisticatedbackpacks (incompatible), mod:guardvillagers (incompatible), mod:fabric_screen_api_v1, mod:cloth_config (incompatible), mod:fabric_api, mod:fabric_content_registries_v0, mod:geophilic, mod:jadensnetherexpansiondelight, mod:farmersdelight, mod:fabric_game_rule_api_v1, mod:fabric_api_lookup_api_v1, mod:endersdelight, mod:cataclysmiccombat, mod:lionfishapi (incompatible), mod:cataclysm (incompatible), mod:curios (incompatible), mod:connectormod, mod:fabric_entity_events_v1, mod:spartanweaponry, mod:architectury (incompatible), mod:fabric_loot_api_v2, mod:betterendisland, mod:fabric_rendering_data_attachment_v1, mod:fabric_networking_api_v1, mod:illageandspillage, mod:bettermineshafts, mod:fabric_lifecycle_events_v1, mod:fabric_key_binding_api_v1, mod:fabric_client_tags_api_v1, mod:fabric_transfer_api_v1, mod:fabric_dimensions_v1, mod:mowziesmobs, mod:geckolib, mod:endertrigon (incompatible), mod:elysium_api, mod:fabric_model_loading_api_v1, mod:mowzies_cataclysm, mod:jei, mod:lithostitched, mod:graveyard (incompatible), mod:fabric_screen_handler_api_v1, mod:fabric_resource_loader_v0, mod:caelus (incompatible), mod:obscure_api (incompatible), mod:fabric_rendering_v1, mod:fabric_renderer_indigo, mod:fastsuite (incompatible), mod:dungeonnowloading (incompatible), mod:integrated_api, mod:fabric_mining_level_api_v1, mod:fromtheshadows (incompatible), mod:crackerslib (incompatible), mod:outer_end, mod:magistuarmory (incompatible), mod:starlight (incompatible), mod:aquamirae_mod_extra_music, mod:blueprint, mod:savage_and_ravage (incompatible), mod:fabric_particles_v1, mod:puzzlesaccessapi, mod:forge, mod:fabric_transitive_access_wideners_v1, mod:nyfsspiders (incompatible), mod:tectonic (incompatible), mod:caverns_and_chasms (incompatible), mod:upgrade_aquatic (incompatible), mod:illagerwarship, mod:okzoomer (incompatible), mod:enchdesc (incompatible), mod:moonlight (incompatible), mod:fabric_api_base, mod:bettercombat (incompatible), mod:combatroll (incompatible), mod:glowingraidillagers (incompatible), mod:fabric_blockrenderlayer_v1, mod:mixinsquared (incompatible), mod:fabric_block_api_v1, mod:nethersdelight, mod:fabric_resource_conditions_api_v1, mod:spartanshields, mod:fabric_item_group_api_v1, mod:fastbench (incompatible), mod:aquacombat, mod:zeta (incompatible), mod:quark (incompatible), mod:supplementaries, mod:amendments (incompatible), mod:irons_spellbooks, mod:fabric_biome_api_v1, mod:fabric_registry_sync_v0, mod:fastfurnace (incompatible), mod:oceansdelight (incompatible), mod:alexsdelight, mod:fabric_recipe_api_v1, mod:ferritecore (incompatible), mod:fabric_object_builder_api_v1, mod:puzzleslib, mod:fabric_sound_api_v1, mod:ias_spellbooks, mod:fabric_message_api_v1, mod:fabric_data_generation_api_v1, mod:fabric_events_interaction_v0, mod:aquamirae (incompatible), tectonic/tectonic (incompatible), tectonic/tectonic/overlay.mod, alexsmobs_compat, caverns_and_chasms_compat, fabric, lithostitched/breaks_seed_parity, Supplementaries Generated Pack, mod:cupboard (incompatible), mod:modernfix (incompatible), mod:chunky (incompatible), mod:radium     Enabled Feature Flags: minecraft:vanilla     World Generation: Experimental     Is Modded: Definitely; Server brand changed to 'forge'     Type: Dedicated Server (map_server.txt)     Sinytra Connector: 1.0.0-beta.46+1.20.1         SINYTRA CONNECTOR IS PRESENT!         Please verify issues are not caused by Connector before reporting them to mod authors. If you're unsure, file a report on Connector's issue tracker.         Connector's issue tracker can be found at https://github.com/Sinytra/Connector/issues.     ModLauncher: 10.0.9+10.0.9+main.dcd20f30     ModLauncher launch target: forgeserver     ModLauncher naming: srg     ModLauncher services:          mixin-0.8.5.jar mixin PLUGINSERVICE          eventbus-6.0.5.jar eventbus PLUGINSERVICE          fmlloader-1.20.1-47.4.0.jar slf4jfixer PLUGINSERVICE          fmlloader-1.20.1-47.4.0.jar object_holder_definalize PLUGINSERVICE          fmlloader-1.20.1-47.4.0.jar runtime_enum_extender PLUGINSERVICE          fmlloader-1.20.1-47.4.0.jar capability_token_subclass PLUGINSERVICE          accesstransformers-8.0.4.jar accesstransformer PLUGINSERVICE          fmlloader-1.20.1-47.4.0.jar runtimedistcleaner PLUGINSERVICE          modlauncher-10.0.9.jar mixin TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar fml TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar mixin-transmogrifier TRANSFORMATIONSERVICE          modlauncher-10.0.9.jar connector_loader TRANSFORMATIONSERVICE      FML Language Providers:          [email protected]         lowcodefml@null         javafml@null     Mod List:          YungsBetterDungeons-1.20-Forge-4.0.4.jar          |YUNG's Better Dungeons        |betterdungeons                |1.20-Forge-4.0.4    |DONE      |Manifest: NOSIGNATURE         fabric-renderer-api-v1-3.2.1+cf68abbe77.jar       |Fabric Renderer API (v1)      |fabric_renderer_api_v1        |3.2.1+cf68abbe77    |DONE      |Manifest: NOSIGNATURE         Jadens-Nether-Expansion-2.3.5.jar                 |Jaden's Nether Expansion      |netherexp                     |2.3.5               |DONE      |Manifest: NOSIGNATURE         player-animation-lib-forge-1.0.2-rc1+1.20.jar     |Player Animator               |playeranimator                |1.0.2-rc1+1.20      |DONE      |Manifest: NOSIGNATURE         fabric-item-api-v1-2.1.28+4d0bbcfa77.jar          |Fabric Item API (v1)          |fabric_item_api_v1            |2.1.28+4d0bbcfa77   |DONE      |Manifest: NOSIGNATURE         IllagerInvasion-v8.0.7-1.20.1-Forge.jar           |Illager Invasion              |illagerinvasion               |8.0.7               |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         fabric-rendering-fluids-v1-3.0.28+4ac5e37a77.jar  |Fabric Rendering Fluids (v1)  |fabric_rendering_fluids_v1    |3.0.28+4ac5e37a77   |DONE      |Manifest: NOSIGNATURE         exlinecopperequipment-forge-1.20.1-v2.0.8.jar     |Exline's Copper Equipment     |exlinecopperequipment         |2.0.8               |DONE      |Manifest: NOSIGNATURE         fabric-models-v0-0.4.2+7c3892a477.jar             |Fabric Models (v0)            |fabric_models_v0              |0.4.2+7c3892a477    |DONE      |Manifest: NOSIGNATURE         sophisticatedcore-1.20.1-1.2.79.1066.jar          |Sophisticated Core            |sophisticatedcore             |1.2.79.1066         |DONE      |Manifest: NOSIGNATURE         golemsarefriends-1.20.0-1.0.1.jar                 |Golems Are Friends Not Fodder |golemsarefriends              |1.20.0-1.0.1        |DONE      |Manifest: NOSIGNATURE         fabric-convention-tags-v1-1.5.5+fa3d1c0177.jar    |Fabric Convention Tags        |fabric_convention_tags_v1     |1.5.5+fa3d1c0177    |DONE      |Manifest: NOSIGNATURE         Placebo-1.20.1-8.6.3.jar                          |Placebo                       |placebo                       |8.6.3               |DONE      |Manifest: NOSIGNATURE         modernfix-forge-5.24.4+mc1.20.1.jar               |ModernFix                     |modernfix                     |5.24.4+mc1.20.1     |DONE      |Manifest: NOSIGNATURE         citadel-2.6.2-1.20.1.jar                          |Citadel                       |citadel                       |2.6.2               |DONE      |Manifest: NOSIGNATURE         alexsmobs-1.22.9.jar                              |Alex's Mobs                   |alexsmobs                     |1.22.9              |DONE      |Manifest: NOSIGNATURE         fabric-command-api-v1-1.2.34+f71b366f77.jar       |Fabric Command API (v1)       |fabric_command_api_v1         |1.2.34+f71b366f77   |DONE      |Manifest: NOSIGNATURE         fabric-block-view-api-v2-1.0.1+0767707077.jar     |Fabric BlockView API (v2)     |fabric_block_view_api_v2      |1.0.1+0767707077    |DONE      |Manifest: NOSIGNATURE         fabric-command-api-v2-2.2.13+561530ec77.jar       |Fabric Command API (v2)       |fabric_command_api_v2         |2.2.13+561530ec77   |DONE      |Manifest: NOSIGNATURE         YungsApi-1.20-Forge-4.0.6.jar                     |YUNG's API                    |yungsapi                      |1.20-Forge-4.0.6    |DONE      |Manifest: NOSIGNATURE         fabric-data-attachment-api-v1-1.0.0+30ef839e77.jar|Fabric Data Attachment API (v1|fabric_data_attachment_api_v1 |1.0.0+30ef839e77    |DONE      |Manifest: NOSIGNATURE         mixinextras-forge-0.2.0-beta.7.jar                |MixinExtras                   |mixinextras                   |0.2.0-beta.7        |DONE      |Manifest: NOSIGNATURE         Bookshelf-Forge-1.20.1-20.2.13.jar                |Bookshelf                     |bookshelf                     |20.2.13             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         sophisticatedbackpacks-1.20.1-3.23.23.1289.jar    |Sophisticated Backpacks       |sophisticatedbackpacks        |3.23.23.1289        |DONE      |Manifest: NOSIGNATURE         guardvillagers-1.20.1-1.6.11.jar                  |Guard Villagers               |guardvillagers                |1.20.1-1.6.11       |DONE      |Manifest: NOSIGNATURE         fabric-screen-api-v1-2.0.8+45a670a577.jar         |Fabric Screen API (v1)        |fabric_screen_api_v1          |2.0.8+45a670a577    |DONE      |Manifest: NOSIGNATURE         cloth-config-11.1.136-forge.jar                   |Cloth Config v10 API          |cloth_config                  |11.1.136            |DONE      |Manifest: NOSIGNATURE         fabric-api-0.92.2+1.11.12+1.20.1.jar              |Forgified Fabric API          |fabric_api                    |0.92.2+1.11.12+1.20.|DONE      |Manifest: NOSIGNATURE         fabric-content-registries-v0-4.0.11+a670df1e77.jar|Fabric Content Registries (v0)|fabric_content_registries_v0  |4.0.11+a670df1e77   |DONE      |Manifest: NOSIGNATURE         Geophilic v3.4.2 f15-80.mod.jar                   |Geophilic                     |geophilic                     |3.4.2               |DONE      |Manifest: NOSIGNATURE         jadensnetherexpansiondelight-1.0.3-1.20.1-forge.ja|Jaden's Nether Expansion Delig|jadensnetherexpansiondelight  |1.0.3-1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.20.1-1.2.8.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.8        |DONE      |Manifest: NOSIGNATURE         fabric-game-rule-api-v1-1.0.40+683d4da877.jar     |Fabric Game Rule API (v1)     |fabric_game_rule_api_v1       |1.0.40+683d4da877   |DONE      |Manifest: NOSIGNATURE         fabric-api-lookup-api-v1-1.6.36+67f9824077.jar    |Fabric API Lookup API (v1)    |fabric_api_lookup_api_v1      |1.6.36+67f9824077   |DONE      |Manifest: NOSIGNATURE         endersdelight-forge-1.20.1-1.1.3.jar              |Ender's Delight               |endersdelight                 |1.1.3               |DONE      |Manifest: NOSIGNATURE         cataclysmiccombat-1.4.1-1.20.1.jar                |Cataclysmic Combat            |cataclysmiccombat             |1.4                 |DONE      |Manifest: NOSIGNATURE         Chunky-1.3.146.jar                                |Chunky                        |chunky                        |1.3.146             |DONE      |Manifest: NOSIGNATURE         lionfishapi-2.4.jar                               |LionfishAPI                   |lionfishapi                   |2.4                 |DONE      |Manifest: NOSIGNATURE         L_Enders_Cataclysm-3.15.jar                       |cataclysm                     |cataclysm                     |3.15                |DONE      |Manifest: NOSIGNATURE         curios-forge-5.14.1+1.20.1.jar                    |Curios API                    |curios                        |5.14.1+1.20.1       |DONE      |Manifest: NOSIGNATURE         Connector-1.0.0-beta.46+1.20.1-mod.jar            |Connector                     |connectormod                  |1.0.0-beta.46+1.20.1|DONE      |Manifest: NOSIGNATURE         fabric-entity-events-v1-1.6.0+4ca7515277.jar      |Fabric Entity Events (v1)     |fabric_entity_events_v1       |1.6.0+4ca7515277    |DONE      |Manifest: NOSIGNATURE         SpartanWeaponry-1.20.1-forge-3.2.1-all.jar        |Spartan Weaponry              |spartanweaponry               |3.2.1               |DONE      |Manifest: NOSIGNATURE         architectury-9.2.14-forge.jar                     |Architectury                  |architectury                  |9.2.14              |DONE      |Manifest: NOSIGNATURE         fabric-loot-api-v2-1.2.1+eb28f93e77.jar           |Fabric Loot API (v2)          |fabric_loot_api_v2            |1.2.1+eb28f93e77    |DONE      |Manifest: NOSIGNATURE         cupboard-1.20.1-2.7.jar                           |Cupboard utilities            |cupboard                      |1.20.1-2.7          |DONE      |Manifest: NOSIGNATURE         YungsBetterEndIsland-1.20-Forge-2.0.6.jar         |YUNG's Better End Island      |betterendisland               |1.20-Forge-2.0.6    |DONE      |Manifest: NOSIGNATURE         fabric-rendering-data-attachment-v1-0.3.37+a6081af|Fabric Rendering Data Attachme|fabric_rendering_data_attachme|0.3.37+a6081afc77   |DONE      |Manifest: NOSIGNATURE         fabric-networking-api-v1-1.3.11+503a202477.jar    |Fabric Networking API (v1)    |fabric_networking_api_v1      |1.3.11+503a202477   |DONE      |Manifest: NOSIGNATURE         illageandspillagerespillaged-1.2.8.jar            |Illage and Spillage: Respillag|illageandspillage             |1.2.8               |DONE      |Manifest: NOSIGNATURE         YungsBetterMineshafts-1.20-Forge-4.0.4.jar        |YUNG's Better Mineshafts      |bettermineshafts              |1.20-Forge-4.0.4    |DONE      |Manifest: NOSIGNATURE         fabric-lifecycle-events-v1-2.2.22+afab492177.jar  |Fabric Lifecycle Events (v1)  |fabric_lifecycle_events_v1    |2.2.22+afab492177   |DONE      |Manifest: NOSIGNATURE         fabric-key-binding-api-v1-1.0.37+561530ec77.jar   |Fabric Key Binding API (v1)   |fabric_key_binding_api_v1     |1.0.37+561530ec77   |DONE      |Manifest: NOSIGNATURE         fabric-client-tags-api-v1-1.1.2+5d6761b877.jar    |Fabric Client Tags            |fabric_client_tags_api_v1     |1.1.2+5d6761b877    |DONE      |Manifest: NOSIGNATURE         fabric-transfer-api-v1-3.3.5+631c9cd677.jar       |Fabric Transfer API (v1)      |fabric_transfer_api_v1        |3.3.5+631c9cd677    |DONE      |Manifest: NOSIGNATURE         fabric-dimensions-v1-2.1.54+8005d10d77.jar        |Fabric Dimensions API (v1)    |fabric_dimensions_v1          |2.1.54+8005d10d77   |DONE      |Manifest: NOSIGNATURE         radium-mc1.20.1-0.12.4+git.26c9d8e.jar            |Radium                        |radium                        |0.12.4+git.26c9d8e  |DONE      |Manifest: NOSIGNATURE         mowziesmobs-1.7.3.jar                             |Mowzie's Mobs                 |mowziesmobs                   |1.7.3               |DONE      |Manifest: NOSIGNATURE         geckolib-forge-1.20.1-4.7.3.jar                   |GeckoLib 4                    |geckolib                      |4.7.3               |DONE      |Manifest: NOSIGNATURE         endertrigon-1.20.1-1.1-all.jar                    |Ender Trigon                  |endertrigon                   |1.20.1-1.1          |DONE      |Manifest: NOSIGNATURE         ElysiumAPI-1.20.1-1.1.3.jar                       |Elysium                       |elysium_api                   |1.1.3               |DONE      |Manifest: NOSIGNATURE         fabric-model-loading-api-v1-1.0.3+6274ab9d77.jar  |Fabric Model Loading API (v1) |fabric_model_loading_api_v1   |1.0.3+6274ab9d77    |DONE      |Manifest: NOSIGNATURE         mowzies_cataclysm-1.2.0.jar                       |Mowzie's Cataclysm            |mowzies_cataclysm             |1.2.0               |DONE      |Manifest: NOSIGNATURE         jei-1.20.1-forge-15.20.0.112.jar                  |Just Enough Items             |jei                           |15.20.0.112         |DONE      |Manifest: NOSIGNATURE         lithostitched-forge-1.20.1-1.4.11.jar             |Lithostitched                 |lithostitched                 |1.4.11              |DONE      |Manifest: NOSIGNATURE         The_Graveyard_3.1_(FORGE)_for_1.20.1.jar          |The Graveyard                 |graveyard                     |3.1                 |DONE      |Manifest: NOSIGNATURE         fabric-screen-handler-api-v1-1.3.30+561530ec77.jar|Fabric Screen Handler API (v1)|fabric_screen_handler_api_v1  |1.3.30+561530ec77   |DONE      |Manifest: NOSIGNATURE         fabric-resource-loader-v0-0.11.10+bcd08ed377.jar  |Fabric Resource Loader (v0)   |fabric_resource_loader_v0     |0.11.10+bcd08ed377  |DONE      |Manifest: NOSIGNATURE         caelus-forge-3.2.0+1.20.1.jar                     |Caelus API                    |caelus                        |3.2.0+1.20.1        |DONE      |Manifest: NOSIGNATURE         obscure_api-15.jar                                |Obscure API                   |obscure_api                   |15                  |DONE      |Manifest: NOSIGNATURE         fabric-rendering-v1-3.0.8+66e9a48f77.jar          |Fabric Rendering (v1)         |fabric_rendering_v1           |3.0.8+66e9a48f77    |DONE      |Manifest: NOSIGNATURE         fabric-renderer-indigo-1.5.2+b5b2da4177.jar       |Fabric Renderer - Indigo      |fabric_renderer_indigo        |1.5.2+b5b2da4177    |DONE      |Manifest: NOSIGNATURE         FastSuite-1.20.1-5.1.0.jar                        |Fast Suite                    |fastsuite                     |5.1.0               |DONE      |Manifest: NOSIGNATURE         Dungeon Now Loading-forge-1.20.1-1.5.jar          |Dungeon Now Loading           |dungeonnowloading             |1.5                 |DONE      |Manifest: NOSIGNATURE         integrated_api-1.5.3+1.20.1-forge.jar             |Integrated API                |integrated_api                |1.5.3+1.20.1-forge  |DONE      |Manifest: NOSIGNATURE         fabric-mining-level-api-v1-2.1.50+561530ec77.jar  |Fabric Mining Level API (v1)  |fabric_mining_level_api_v1    |2.1.50+561530ec77   |DONE      |Manifest: NOSIGNATURE         fromtheshadowsreborn-2.8.jar                      |From the Shadows Reborn       |fromtheshadows                |2.8                 |DONE      |Manifest: NOSIGNATURE         crackerslib-forge-1.20.1-0.3.2.1.jar              |CrackersLib                   |crackerslib                   |1.20.1-0.3.2.1      |DONE      |Manifest: NOSIGNATURE         TheOuterEnd-1.0.10.jar                            |The Outer End                 |outer_end                     |1.0.8               |DONE      |Manifest: NOSIGNATURE         [1.20.1-forge]-Epic-Knights-9.23.jar              |Epic Knights Mod              |magistuarmory                 |9.23                |DONE      |Manifest: NOSIGNATURE         starlight-1.1.2+forge.1cda73c.jar                 |Starlight                     |starlight                     |1.1.2+forge.1cda73c |DONE      |Manifest: NOSIGNATURE         Aquamirae Mod Boss Music Tweaks 1.20.1 v1.1.0.jar |Aquamirae Mod EXTRA Music     |aquamirae_mod_extra_music     |1.0.0               |DONE      |Manifest: NOSIGNATURE         blueprint-1.20.1-7.1.3.jar                        |Blueprint                     |blueprint                     |7.1.3               |DONE      |Manifest: NOSIGNATURE         savage_and_ravage-1.20.1-6.0.0.jar                |Savage & Ravage               |savage_and_ravage             |6.0.0               |DONE      |Manifest: NOSIGNATURE         fabric-particles-v1-1.1.2+78e1ecb877.jar          |Fabric Particles (v1)         |fabric_particles_v1           |1.1.2+78e1ecb877    |DONE      |Manifest: NOSIGNATURE         puzzlesaccessapi-forge-20.1.1.jar                 |Puzzles Access Api            |puzzlesaccessapi              |20.1.1              |DONE      |Manifest: NOSIGNATURE         forge-1.20.1-47.4.0-universal.jar                 |Forge                         |forge                         |47.4.0              |DONE      |Manifest: 84:ce:76:e8:45:35:e4:0e:63:86:df:47:59:80:0f:67:6c:c1:5f:6e:5f:4d:b3:54:47:1a:9f:7f:ed:5e:f2:90         fabric-transitive-access-wideners-v1-4.3.1+1880499|Fabric Transitive Access Widen|fabric_transitive_access_widen|4.3.1+1880499877    |DONE      |Manifest: NOSIGNATURE         nyfsspiders-forge-1.20.1-2.1.1.jar                |Nyf's Spiders                 |nyfsspiders                   |2.1.1               |DONE      |Manifest: NOSIGNATURE         tectonic-3.0.6-forge-1.20.1.jar                   |Tectonic                      |tectonic                      |3.0.6               |DONE      |Manifest: NOSIGNATURE         server-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              |DONE      |Manifest: NOSIGNATURE         caverns_and_chasms-1.20.1-2.0.0.jar               |Caverns & Chasms              |caverns_and_chasms            |2.0.0               |DONE      |Manifest: NOSIGNATURE         upgrade_aquatic-1.20.1-6.0.3.jar                  |Upgrade Aquatic               |upgrade_aquatic               |6.0.3               |DONE      |Manifest: NOSIGNATURE         illagerwarship-1.0.1-forge-1.20.1.jar             |Illager-Warship               |illagerwarship                |1.0.1               |DONE      |Manifest: NOSIGNATURE         okzoomer-forge-1.20-3.0.1.jar                     |OkZoomer                      |okzoomer                      |3.0.1               |DONE      |Manifest: NOSIGNATURE         EnchantmentDescriptions-Forge-1.20.1-17.1.19.jar  |EnchantmentDescriptions       |enchdesc                      |17.1.19             |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         moonlight-1.20-2.15.6-forge.jar                   |Moonlight Library             |moonlight                     |1.20-2.15.6         |DONE      |Manifest: NOSIGNATURE         fabric-api-base-0.4.31+ef105b4977.jar             |Fabric API Base               |fabric_api_base               |0.4.31+ef105b4977   |DONE      |Manifest: NOSIGNATURE         bettercombat-forge-1.8.6+1.20.1.jar               |Better Combat                 |bettercombat                  |1.8.6+1.20.1        |DONE      |Manifest: NOSIGNATURE         combatroll-forge-1.3.3+1.20.1.jar                 |Combat Roll                   |combatroll                    |1.3.3+1.20.1        |DONE      |Manifest: NOSIGNATURE         glowingraidillagers-1.20-1.20.1-1.0.0.jar         |GlowingRaidIllagers           |glowingraidillagers           |1.0.0               |DONE      |Manifest: NOSIGNATURE         fabric-blockrenderlayer-v1-1.1.41+1d0da21e77.jar  |Fabric BlockRenderLayer Regist|fabric_blockrenderlayer_v1    |1.1.41+1d0da21e77   |DONE      |Manifest: NOSIGNATURE         mixinsquared-forge-0.1.1.jar                      |MixinSquared                  |mixinsquared                  |0.1.1               |DONE      |Manifest: NOSIGNATURE         fabric-block-api-v1-1.0.11+0e6cb7f777.jar         |Fabric Block API (v1)         |fabric_block_api_v1           |1.0.11+0e6cb7f777   |DONE      |Manifest: NOSIGNATURE         nethersdelight-1.20.1-4.0.jar                     |Nether's Delight              |nethersdelight                |1.20.1-4.0          |DONE      |Manifest: NOSIGNATURE         fabric-resource-conditions-api-v1-2.3.8+9e342fc177|Fabric Resource Conditions API|fabric_resource_conditions_api|2.3.8+9e342fc177    |DONE      |Manifest: NOSIGNATURE         SpartanShields-1.20.1-forge-3.1.1.jar             |Spartan Shields               |spartanshields                |3.1.1               |DONE      |Manifest: NOSIGNATURE         fabric-item-group-api-v1-4.0.12+c9161c2d77.jar    |Fabric Item Group API (v1)    |fabric_item_group_api_v1      |4.0.12+c9161c2d77   |DONE      |Manifest: NOSIGNATURE         FastWorkbench-1.20.1-8.0.4.jar                    |Fast Workbench                |fastbench                     |8.0.4               |DONE      |Manifest: NOSIGNATURE         aquacombat 1.2.jar                                |Aqua combat                   |aquacombat                    |1.2                 |DONE      |Manifest: NOSIGNATURE         Zeta-1.0-30.jar                                   |Zeta                          |zeta                          |1.0-30              |DONE      |Manifest: NOSIGNATURE         Quark-4.0-462.jar                                 |Quark                         |quark                         |4.0-462             |DONE      |Manifest: NOSIGNATURE         supplementaries-1.20-3.1.36.jar                   |Supplementaries               |supplementaries               |1.20-3.1.36         |DONE      |Manifest: NOSIGNATURE         amendments-1.20-2.0.3.jar                         |Amendments                    |amendments                    |1.20-2.0.3          |DONE      |Manifest: NOSIGNATURE         irons_spellbooks-1.20.1-3.4.0.10.jar              |Iron's Spells 'n Spellbooks   |irons_spellbooks              |1.20.1-3.4.0.10     |DONE      |Manifest: NOSIGNATURE         fabric-biome-api-v1-13.0.13+dc36698e77.jar        |Fabric Biome API (v1)         |fabric_biome_api_v1           |13.0.13+dc36698e77  |DONE      |Manifest: NOSIGNATURE         fabric-registry-sync-v0-2.3.3+1c0ea72177.jar      |Fabric Registry Sync (v0)     |fabric_registry_sync_v0       |2.3.3+1c0ea72177    |DONE      |Manifest: NOSIGNATURE         FastFurnace-1.20.1-8.0.2.jar                      |FastFurnace                   |fastfurnace                   |8.0.2               |DONE      |Manifest: NOSIGNATURE         oceansdelight-1.0.2-1.20.jar                      |Ocean's Delight               |oceansdelight                 |1.0.2-1.20          |DONE      |Manifest: NOSIGNATURE         alexsdelight-1.5.jar                              |Alex's Delight                |alexsdelight                  |1.5                 |DONE      |Manifest: NOSIGNATURE         fabric-recipe-api-v1-1.0.21+514a076577.jar        |Fabric Recipe API (v1)        |fabric_recipe_api_v1          |1.0.21+514a076577   |DONE      |Manifest: NOSIGNATURE         ferritecore-6.0.1-forge.jar                       |Ferrite Core                  |ferritecore                   |6.0.1               |DONE      |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         fabric-object-builder-api-v1-11.1.3+4bd998fa77.jar|Fabric Object Builder API (v1)|fabric_object_builder_api_v1  |11.1.3+4bd998fa77   |DONE      |Manifest: NOSIGNATURE         PuzzlesLib-v8.1.32-1.20.1-Forge.jar               |Puzzles Lib                   |puzzleslib                    |8.1.32              |DONE      |Manifest: 9a:09:85:98:65:c4:8c:11:c5:49:f6:d6:33:23:39:df:8d:b4:ff:92:84:b8:bd:a5:83:9f:ac:7f:2a:d1:4b:6a         fabric-sound-api-v1-1.0.13+4f23bd8477.jar         |Fabric Sound API (v1)         |fabric_sound_api_v1           |1.0.13+4f23bd8477   |DONE      |Manifest: NOSIGNATURE         illage-and-spell-age-0.5.0-1.20.1.jar             |Illage and Spell-age          |ias_spellbooks                |0.5.0-1.20.1        |DONE      |Manifest: NOSIGNATURE         fabric-message-api-v1-5.1.9+52cc178c77.jar        |Fabric Message API (v1)       |fabric_message_api_v1         |5.1.9+52cc178c77    |DONE      |Manifest: NOSIGNATURE         fabric-data-generation-api-v1-12.3.4+369cb3a477.ja|Fabric Data Generation API (v1|fabric_data_generation_api_v1 |12.3.4+369cb3a477   |DONE      |Manifest: NOSIGNATURE         fabric-events-interaction-v0-0.6.2+0d0bd5a777.jar |Fabric Events Interaction (v0)|fabric_events_interaction_v0  |0.6.2+0d0bd5a777    |DONE      |Manifest: NOSIGNATURE         aquamirae-6.API15.jar                             |Aquamirae                     |aquamirae                     |6.API15             |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: 1bafdbcd-c29f-499e-a272-e920f6f303c3     FML: 47.4     Forge: net.minecraftforge:47.4.0  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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