Jump to content

Recommended Posts

Posted

For the piston you should copy the bedrock code where it can't be pushed by a piston :)

I'm always happy to help others!

 

Java is not my main programming language but I have alot experience in PHP/HTML/JS/CSS3/C#/SQL

Posted

if you use the redstone wire code for a block and remove the pushed by piston part it should work

I'm always happy to help others!

 

Java is not my main programming language but I have alot experience in PHP/HTML/JS/CSS3/C#/SQL

Posted

ok i've got this so what part of this needs replacing to be a block over the wire

package a.sounds;

 

import java.util.ArrayList;

import java.util.HashSet;

import java.util.Random;

import java.util.Set;

 

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.renderer.texture.IconRegister;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.item.Item;

import net.minecraft.util.AxisAlignedBB;

import net.minecraft.util.Direction;

import net.minecraft.util.Icon;

import net.minecraft.world.ChunkPosition;

import net.minecraft.world.IBlockAccess;

import net.minecraft.world.World;

 

public class RedstoneConducter extends Block

{

    public RedstoneConducter(int par1, Material par2Material) {

super(par1, par2Material);

 

}

 

/**

    * When false, power transmission methods do not look at other redstone wires. Used internally during

    * updateCurrentStrength.

    */

    private boolean wiresProvidePower = true;

    private Set blocksNeedingUpdate = new HashSet();

    @SideOnly(Side.CLIENT)

    private Icon field_94413_c;

    @SideOnly(Side.CLIENT)

    private Icon field_94410_cO;

    @SideOnly(Side.CLIENT)

    private Icon field_94411_cP;

    @SideOnly(Side.CLIENT)

    private Icon field_94412_cQ;

 

    public RedstoneConducter(int par1)

    {

        super(par1, Material.circuits);

        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);

    }

 

    /**

    * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been

    * cleared to be reused)

    */

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)

    {

        return null;

    }

 

    /**

    * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two

    * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.

    */

    public boolean isOpaqueCube()

    {

        return false;

    }

 

    /**

    * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)

    */

    public boolean renderAsNormalBlock()

    {

        return false;

    }

 

    /**

    * The type of render function that is called for this block

    */

    public int getRenderType()

    {

        return 5;

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called

    * when first determining what to render.

    */

    public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)

    {

        return 8388608;

    }

 

    /**

    * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z

    */

    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)

    {

        return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || par1World.getBlockId(par2, par3 - 1, par4) == Block.glowStone.blockID;

    }

 

    /**

    * Sets the strength of the wire current (0-15) for this block based on neighboring blocks and propagates to

    * neighboring redstone wires

    */

    private void updateAndPropagateCurrentStrength(World par1World, int par2, int par3, int par4)

    {

        this.calculateCurrentChanges(par1World, par2, par3, par4, par2, par3, par4);

        ArrayList arraylist = new ArrayList(this.blocksNeedingUpdate);

        this.blocksNeedingUpdate.clear();

 

        for (int l = 0; l < arraylist.size(); ++l)

        {

            ChunkPosition chunkposition = (ChunkPosition)arraylist.get(l);

            par1World.notifyBlocksOfNeighborChange(chunkposition.x, chunkposition.y, chunkposition.z, this.blockID);

        }

    }

 

    private void calculateCurrentChanges(World par1World, int par2, int par3, int par4, int par5, int par6, int par7)

    {

        int k1 = par1World.getBlockMetadata(par2, par3, par4);

        byte b0 = 0;

        int l1 = this.getMaxCurrentStrength(par1World, par5, par6, par7, b0);

        this.wiresProvidePower = false;

        int i2 = par1World.getStrongestIndirectPower(par2, par3, par4);

        this.wiresProvidePower = true;

 

        if (i2 > 0 && i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        int j2 = 0;

 

        for (int k2 = 0; k2 < 4; ++k2)

        {

            int l2 = par2;

            int i3 = par4;

 

            if (k2 == 0)

            {

                l2 = par2 - 1;

            }

 

            if (k2 == 1)

            {

                ++l2;

            }

 

            if (k2 == 2)

            {

                i3 = par4 - 1;

            }

 

            if (k2 == 3)

            {

                ++i3;

            }

 

            if (l2 != par5 || i3 != par7)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3, i3, j2);

            }

 

            if (par1World.isBlockNormalCube(l2, par3, i3) && !par1World.isBlockNormalCube(par2, par3 + 1, par4))

            {

                if ((l2 != par5 || i3 != par7) && par3 >= par6)

                {

                    j2 = this.getMaxCurrentStrength(par1World, l2, par3 + 1, i3, j2);

                }

            }

            else if (!par1World.isBlockNormalCube(l2, par3, i3) && (l2 != par5 || i3 != par7) && par3 <= par6)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3 - 1, i3, j2);

            }

        }

 

        if (j2 > l1)

        {

            l1 = j2 - 1;

        }

        else if (l1 > 0)

        {

            --l1;

        }

        else

        {

            l1 = 0;

        }

 

        if (i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        if (k1 != l1)

        {

            par1World.setBlockMetadataWithNotify(par2, par3, par4, l1, 2);

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 - 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 + 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 - 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 + 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 - 1));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 + 1));

        }

    }

 

    /**

    * Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone

    * wire.

    */

    private void notifyWireNeighborsOfNeighborChange(World par1World, int par2, int par3, int par4)

    {

        if (par1World.getBlockId(par2, par3, par4) == this.blockID)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

        }

    }

 

    /**

    * Called whenever the block is added into the world. Args: world, x, y, z

    */

    public void onBlockAdded(World par1World, int par2, int par3, int par4)

    {

        super.onBlockAdded(par1World, par2, par3, par4);

 

        if (!par1World.isRemote)

        {

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Called on server worlds only when the block has been replaced by a different block ID, or the same block with a

    * different metadata value, but before the new metadata value is set. Args: World, x, y, z, old block ID, old

    * metadata

    */

    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)

    {

        super.breakBlock(par1World, par2, par3, par4, par5, par6);

 

        if (!par1World.isRemote)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Returns the current strength at the specified block if it is greater than the passed value, or the passed value

    * otherwise. Signature: (world, x, y, z, strength)

    */

    private int getMaxCurrentStrength(World par1World, int par2, int par3, int par4, int par5)

    {

        if (par1World.getBlockId(par2, par3, par4) != this.blockID)

        {

            return par5;

        }

        else

        {

            int i1 = par1World.getBlockMetadata(par2, par3, par4);

            return i1 > par5 ? i1 : par5;

        }

    }

 

    /**

    * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are

    * their own) Args: x, y, z, neighbor blockID

    */

    public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)

    {

        if (!par1World.isRemote)

        {

            boolean flag = this.canPlaceBlockAt(par1World, par2, par3, par4);

 

            if (flag)

            {

                this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            }

            else

            {

                this.dropBlockAsItem(par1World, par2, par3, par4, 0, 0);

                par1World.setBlockToAir(par2, par3, par4);

            }

 

            super.onNeighborBlockChange(par1World, par2, par3, par4, par5);

        }

    }

 

    /**

    * Returns the ID of the items to drop on destruction.

    */

    public int idDropped(int par1, Random par2Random, int par3)

    {

        return Item.redstone.itemID;

    }

 

    /**

    * Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z,

    * side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        return !this.wiresProvidePower ? 0 : this.isProvidingWeakPower(par1IBlockAccess, par2, par3, par4, par5);

    }

 

    /**

    * Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube

    * returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X,

    * Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        if (!this.wiresProvidePower)

        {

            return 0;

        }

        else

        {

            int i1 = par1IBlockAccess.getBlockMetadata(par2, par3, par4);

 

            if (i1 == 0)

            {

                return 0;

            }

            else if (par5 == 1)

            {

                return i1;

            }

            else

            {

                boolean flag = isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3, par4, 1) || !par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 - 1, par4, -1);

                boolean flag1 = isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3, par4, 3) || !par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 - 1, par4, -1);

                boolean flag2 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 - 1, 2) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 - 1, -1);

                boolean flag3 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 + 1, 0) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 + 1, -1);

 

                if (!par1IBlockAccess.isBlockNormalCube(par2, par3 + 1, par4))

                {

                    if (par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 + 1, par4, -1))

                    {

                        flag = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 + 1, par4, -1))

                    {

                        flag1 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 - 1, -1))

                    {

                        flag2 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 + 1, -1))

                    {

                        flag3 = true;

                    }

                }

 

                return !flag2 && !flag1 && !flag && !flag3 && par5 >= 2 && par5 <= 5 ? i1 : (par5 == 2 && flag2 && !flag && !flag1 ? i1 : (par5 == 3 && flag3 && !flag && !flag1 ? i1 : (par5 == 4 && flag && !flag2 && !flag3 ? i1 : (par5 == 5 && flag1 && !flag2 && !flag3 ? i1 : 0))));

            }

        }

    }

 

    /**

    * Can this block provide power. Only wire currently seems to have this change based on its state.

    */

    public boolean canProvidePower()

    {

        return this.wiresProvidePower;

    }

 

    /**

    * Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal

    * notch-side, this can be 0, 1, 2, 3 or -1)

    */

    public static boolean isPowerProviderOrWire(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

        if (i1 == Block.redstoneWire.blockID)

        {

            return true;

        }

        else if (i1 == 0)

        {

            return false;

        }

        else if (!Block.redstoneRepeaterIdle.func_94487_f(i1))

        {

            return (Block.blocksList[i1] != null && Block.blocksList[i1].canConnectRedstone(par0IBlockAccess, par1, par2, par3, par4));

        }

        else

        {

            int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

            return par4 == (j1 & 3) || par4 == Direction.rotateOpposite[j1 & 3];

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * A randomly called display update to be able to add particles or other items for display

    */

    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)

    {

        int l = par1World.getBlockMetadata(par2, par3, par4);

 

        if (l > 0)

        {

            double d0 = (double)par2 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            double d1 = (double)((float)par3 + 0.0625F);

            double d2 = (double)par4 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            float f = (float)l / 15.0F;

            float f1 = f * 0.6F + 0.4F;

 

            if (l == 0)

            {

                f1 = 0.0F;

            }

 

            float f2 = f * f * 0.7F - 0.5F;

            float f3 = f * f * 0.6F - 0.7F;

 

            if (f2 < 0.0F)

            {

                f2 = 0.0F;

            }

 

            if (f3 < 0.0F)

            {

                f3 = 0.0F;

            }

 

            par1World.spawnParticle("reddust", d0, d1, d2, (double)f1, (double)f2, (double)f3);

        }

    }

 

    /**

    * Returns true if the block coordinate passed can provide power, or is a redstone wire, or if its a repeater that

    * is powered.

    */

    public static boolean isPoweredOrRepeater(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        if (isPowerProviderOrWire(par0IBlockAccess, par1, par2, par3, par4))

        {

            return true;

        }

        else

        {

            int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

            if (i1 == Block.redstoneRepeaterActive.blockID)

            {

                int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

                return par4 == (j1 & 3);

            }

            else

            {

                return false;

            }

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)

    */

    public int idPicked(World par1World, int par2, int par3, int par4)

    {

        return Item.redstone.itemID;

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * When this method is called, your block should register all the icons it needs with the given IconRegister. This

    * is the only chance you get to register icons.

    */

    public void registerIcons(IconRegister par1IconRegister)

    {

        this.field_94413_c = par1IconRegister.registerIcon(this.getTextureName() + "_" + "cross");

        this.field_94410_cO = par1IconRegister.registerIcon(this.getTextureName() + "_" + "line");

        this.field_94411_cP = par1IconRegister.registerIcon(this.getTextureName() + "_" + "cross_overlay");

        this.field_94412_cQ = par1IconRegister.registerIcon(this.getTextureName() + "_" + "line_overlay");

        this.blockIcon = this.field_94413_c;

    }

 

    @SideOnly(Side.CLIENT)

    public static Icon getRedstoneWireIcon(String par0Str)

    {

        return par0Str.equals("cross") ? Block.redstoneWire.field_94413_c : (par0Str.equals("line") ? Block.redstoneWire.field_94410_cO : (par0Str.equals("cross_overlay") ? Block.redstoneWire.field_94411_cP : (par0Str.equals("line_overlay") ? Block.redstoneWire.field_94412_cQ : null)));

    }

}

 

 

Posted

To make it pushable, change its material type from Circuits to Rock

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

ok thanks to make this render as a block not like the wire can i remove the render method and texture stuff and re-do the textures as if a normal block

public void registerIcons(IconRegister par1IconRegister)
    {
        this.field_94413_c = par1IconRegister.registerIcon(this.getTextureName() + "_" + "cross");
        this.field_94410_cO = par1IconRegister.registerIcon(this.getTextureName() + "_" + "line");
        this.field_94411_cP = par1IconRegister.registerIcon(this.getTextureName() + "_" + "cross_overlay");
        this.field_94412_cQ = par1IconRegister.registerIcon(this.getTextureName() + "_" + "line_overlay");
        this.blockIcon = this.field_94413_c;
    }

    @SideOnly(Side.CLIENT)
    public static Icon getRedstoneWireIcon(String par0Str)
    {
        return par0Str.equals("cross") ? Block.redstoneWire.field_94413_c : (par0Str.equals("line") ? Block.redstoneWire.field_94410_cO : (par0Str.equals("cross_overlay") ? Block.redstoneWire.field_94411_cP : (par0Str.equals("line_overlay") ? Block.redstoneWire.field_94412_cQ : null)));
    }
}

 

and this

 

/**
     * The type of render function that is called for this block
     */
    public int getRenderType()
    {
        return 5;
    }

Posted

ok it's now a block and  textured but the block is destroyed when the block underneath is removed.

package a.sounds;

 

import java.util.ArrayList;

import java.util.HashSet;

import java.util.Random;

import java.util.Set;

 

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.renderer.texture.IconRegister;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.item.Item;

import net.minecraft.util.AxisAlignedBB;

import net.minecraft.util.Direction;

import net.minecraft.util.Icon;

import net.minecraft.world.ChunkPosition;

import net.minecraft.world.IBlockAccess;

import net.minecraft.world.World;

 

public class RedstoneConducter extends Block

{

    public RedstoneConducter(int par1, Material par2Material) {

super(par1, par2Material);

 

}

 

/**

    * When false, power transmission methods do not look at other redstone wires. Used internally during

    * updateCurrentStrength.

    */

    private boolean wiresProvidePower = true;

    private Set blocksNeedingUpdate = new HashSet();

    @SideOnly(Side.CLIENT)

    private Icon field_94413_c;

    @SideOnly(Side.CLIENT)

    private Icon field_94410_cO;

    @SideOnly(Side.CLIENT)

    private Icon field_94411_cP;

    @SideOnly(Side.CLIENT)

    private Icon field_94412_cQ;

 

    public RedstoneConducter(int par1)

    {

        super(par1, Material.wood);

        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);

    }

 

    /**

    * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been

    * cleared to be reused)

    */

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)

    {

        return null;

    }

 

    /**

    * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two

    * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.

    */

    public boolean isOpaqueCube()

    {

        return false;

    }

 

    /**

    * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)

    */

    public boolean renderAsNormalBlock()

    {

        return false;

    }

 

    /**

    * The type of render function that is called for this block

    */

   

 

    @SideOnly(Side.CLIENT)

 

    /**

    * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called

    * when first determining what to render.

    */

    public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)

    {

        return 8388608;

    }

 

    /**

    * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z

    */

    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)

    {

        return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || par1World.getBlockId(par2, par3 - 1, par4) == Block.glowStone.blockID;

    }

 

    /**

    * Sets the strength of the wire current (0-15) for this block based on neighboring blocks and propagates to

    * neighboring redstone wires

    */

    private void updateAndPropagateCurrentStrength(World par1World, int par2, int par3, int par4)

    {

        this.calculateCurrentChanges(par1World, par2, par3, par4, par2, par3, par4);

        ArrayList arraylist = new ArrayList(this.blocksNeedingUpdate);

        this.blocksNeedingUpdate.clear();

 

        for (int l = 0; l < arraylist.size(); ++l)

        {

            ChunkPosition chunkposition = (ChunkPosition)arraylist.get(l);

            par1World.notifyBlocksOfNeighborChange(chunkposition.x, chunkposition.y, chunkposition.z, this.blockID);

        }

    }

 

    private void calculateCurrentChanges(World par1World, int par2, int par3, int par4, int par5, int par6, int par7)

    {

        int k1 = par1World.getBlockMetadata(par2, par3, par4);

        byte b0 = 0;

        int l1 = this.getMaxCurrentStrength(par1World, par5, par6, par7, b0);

        this.wiresProvidePower = false;

        int i2 = par1World.getStrongestIndirectPower(par2, par3, par4);

        this.wiresProvidePower = true;

 

        if (i2 > 0 && i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        int j2 = 0;

 

        for (int k2 = 0; k2 < 4; ++k2)

        {

            int l2 = par2;

            int i3 = par4;

 

            if (k2 == 0)

            {

                l2 = par2 - 1;

            }

 

            if (k2 == 1)

            {

                ++l2;

            }

 

            if (k2 == 2)

            {

                i3 = par4 - 1;

            }

 

            if (k2 == 3)

            {

                ++i3;

            }

 

            if (l2 != par5 || i3 != par7)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3, i3, j2);

            }

 

            if (par1World.isBlockNormalCube(l2, par3, i3) && !par1World.isBlockNormalCube(par2, par3 + 1, par4))

            {

                if ((l2 != par5 || i3 != par7) && par3 >= par6)

                {

                    j2 = this.getMaxCurrentStrength(par1World, l2, par3 + 1, i3, j2);

                }

            }

            else if (!par1World.isBlockNormalCube(l2, par3, i3) && (l2 != par5 || i3 != par7) && par3 <= par6)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3 - 1, i3, j2);

            }

        }

 

        if (j2 > l1)

        {

            l1 = j2 - 1;

        }

        else if (l1 > 0)

        {

            --l1;

        }

        else

        {

            l1 = 0;

        }

 

        if (i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        if (k1 != l1)

        {

            par1World.setBlockMetadataWithNotify(par2, par3, par4, l1, 2);

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 - 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 + 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 - 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 + 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 - 1));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 + 1));

        }

    }

 

    /**

    * Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone

    * wire.

    */

    private void notifyWireNeighborsOfNeighborChange(World par1World, int par2, int par3, int par4)

    {

        if (par1World.getBlockId(par2, par3, par4) == this.blockID)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

        }

    }

 

    /**

    * Called whenever the block is added into the world. Args: world, x, y, z

    */

    public void onBlockAdded(World par1World, int par2, int par3, int par4)

    {

        super.onBlockAdded(par1World, par2, par3, par4);

 

        if (!par1World.isRemote)

        {

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Called on server worlds only when the block has been replaced by a different block ID, or the same block with a

    * different metadata value, but before the new metadata value is set. Args: World, x, y, z, old block ID, old

    * metadata

    */

    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)

    {

        super.breakBlock(par1World, par2, par3, par4, par5, par6);

 

        if (!par1World.isRemote)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Returns the current strength at the specified block if it is greater than the passed value, or the passed value

    * otherwise. Signature: (world, x, y, z, strength)

    */

    private int getMaxCurrentStrength(World par1World, int par2, int par3, int par4, int par5)

    {

        if (par1World.getBlockId(par2, par3, par4) != this.blockID)

        {

            return par5;

        }

        else

        {

            int i1 = par1World.getBlockMetadata(par2, par3, par4);

            return i1 > par5 ? i1 : par5;

        }

    }

 

    /**

    * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are

    * their own) Args: x, y, z, neighbor blockID

    */

    public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)

    {

        if (!par1World.isRemote)

        {

            boolean flag = this.canPlaceBlockAt(par1World, par2, par3, par4);

 

            if (flag)

            {

                this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            }

            else

            {

                this.dropBlockAsItem(par1World, par2, par3, par4, 0, 0);

                par1World.setBlockToAir(par2, par3, par4);

            }

 

            super.onNeighborBlockChange(par1World, par2, par3, par4, par5);

        }

    }

 

   

 

    /**

    * Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z,

    * side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        return !this.wiresProvidePower ? 0 : this.isProvidingWeakPower(par1IBlockAccess, par2, par3, par4, par5);

    }

 

    /**

    * Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube

    * returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X,

    * Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        if (!this.wiresProvidePower)

        {

            return 0;

        }

        else

        {

            int i1 = par1IBlockAccess.getBlockMetadata(par2, par3, par4);

 

            if (i1 == 0)

            {

                return 0;

            }

            else if (par5 == 1)

            {

                return i1;

            }

            else

            {

                boolean flag = isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3, par4, 1) || !par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 - 1, par4, -1);

                boolean flag1 = isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3, par4, 3) || !par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 - 1, par4, -1);

                boolean flag2 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 - 1, 2) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 - 1, -1);

                boolean flag3 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 + 1, 0) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 + 1, -1);

 

                if (!par1IBlockAccess.isBlockNormalCube(par2, par3 + 1, par4))

                {

                    if (par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 + 1, par4, -1))

                    {

                        flag = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 + 1, par4, -1))

                    {

                        flag1 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 - 1, -1))

                    {

                        flag2 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 + 1, -1))

                    {

                        flag3 = true;

                    }

                }

 

                return !flag2 && !flag1 && !flag && !flag3 && par5 >= 2 && par5 <= 5 ? i1 : (par5 == 2 && flag2 && !flag && !flag1 ? i1 : (par5 == 3 && flag3 && !flag && !flag1 ? i1 : (par5 == 4 && flag && !flag2 && !flag3 ? i1 : (par5 == 5 && flag1 && !flag2 && !flag3 ? i1 : 0))));

            }

        }

    }

 

    /**

    * Can this block provide power. Only wire currently seems to have this change based on its state.

    */

    public boolean canProvidePower()

    {

        return this.wiresProvidePower;

    }

 

    /**

    * Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal

    * notch-side, this can be 0, 1, 2, 3 or -1)

    */

    public static boolean isPowerProviderOrWire(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

        if (i1 == Block.redstoneWire.blockID)

        {

            return true;

        }

        else if (i1 == 0)

        {

            return false;

        }

        else if (!Block.redstoneRepeaterIdle.func_94487_f(i1))

        {

            return (Block.blocksList[i1] != null && Block.blocksList[i1].canConnectRedstone(par0IBlockAccess, par1, par2, par3, par4));

        }

        else

        {

            int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

            return par4 == (j1 & 3) || par4 == Direction.rotateOpposite[j1 & 3];

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * A randomly called display update to be able to add particles or other items for display

    */

    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)

    {

        int l = par1World.getBlockMetadata(par2, par3, par4);

 

        if (l > 0)

        {

            double d0 = (double)par2 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            double d1 = (double)((float)par3 + 0.0625F);

            double d2 = (double)par4 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            float f = (float)l / 15.0F;

            float f1 = f * 0.6F + 0.4F;

 

            if (l == 0)

            {

                f1 = 0.0F;

            }

 

            float f2 = f * f * 0.7F - 0.5F;

            float f3 = f * f * 0.6F - 0.7F;

 

            if (f2 < 0.0F)

            {

                f2 = 0.0F;

            }

 

            if (f3 < 0.0F)

            {

                f3 = 0.0F;

            }

 

            par1World.spawnParticle("reddust", d0, d1, d2, (double)f1, (double)f2, (double)f3);

        }

    }

 

    /**

    * Returns true if the block coordinate passed can provide power, or is a redstone wire, or if its a repeater that

    * is powered.

    */

    public static boolean isPoweredOrRepeater(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        if (isPowerProviderOrWire(par0IBlockAccess, par1, par2, par3, par4))

        {

            return true;

        }

        else

        {

            int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

            if (i1 == Block.redstoneRepeaterActive.blockID)

            {

                int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

                return par4 == (j1 & 3);

            }

            else

            {

                return false;

            }

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)

    */

    public int idPicked(World par1World, int par2, int par3, int par4)

    {

        return Item.redstone.itemID;

    }

 

 

 

    /**

    * When this method is called, your block should register all the icons it needs with the given IconRegister. This

    * is the only chance you get to register icons.

    */

    @SideOnly(Side.CLIENT)

public void registerIcons(IconRegister par1IconRegister){

this.blockIcon = par1IconRegister.registerIcon("oomod:RedstoneConducter");

}

 

    }

 

 

 

Posted

Fix canPlaceBlockAt to return true.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

also this one

 public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
    {
        if (!par1World.isRemote)
        {
            boolean flag = this.canPlaceBlockAt(par1World, par2, par3, par4);

            if (flag)
            {
                this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);
            }
            else
            {
                this.dropBlockAsItem(par1World, par2, par3, par4, 0, 0);
                par1World.setBlockToAir(par2, par3, par4);
            }

            super.onNeighborBlockChange(par1World, par2, par3, par4, par5);
        }
    }

 

or this one

public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
    {
        return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || par1World.getBlockId(par2, par3 - 1, par4) == Block.glowStone.blockID;
    }

Posted

bit off topic but does eclipse have a search for text option?

 

Yes.

 

Search -> Text -> Find in Workspace

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

sorry hate to directly ask for code but can you show me what actaully needs to be write in replace of what, cause i fiddled around and stopped it working completly so reverted the code back. also it the block wont take redstone current from another conductor and wont take from redstone torches

Posted

package net.minecraft.block;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Direction;
import net.minecraft.util.IIcon;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockRedstoneWire extends Block
{
    private boolean field_150181_a = true;
    private Set field_150179_b = new HashSet();
    @SideOnly(Side.CLIENT)
    private IIcon field_150182_M;
    @SideOnly(Side.CLIENT)
    private IIcon field_150183_N;
    @SideOnly(Side.CLIENT)
    private IIcon field_150184_O;
    @SideOnly(Side.CLIENT)
    private IIcon field_150180_P;
    private static final String __OBFID = "CL_00000295";

    public BlockRedstoneWire()
    {
        super(Material.circuits);
        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);
    }

    /**
     * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been
     * cleared to be reused)
     */
    public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
    {
        return null;
    }

    /**
     * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two
     * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.
     */
    public boolean isOpaqueCube()
    {
        return false;
    }

    /**
     * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)
     */
    public boolean renderAsNormalBlock()
    {
        return false;
    }

    /**
     * The type of render function that is called for this block
     */
    public int getRenderType()
    {
        return 5;
    }

    /**
     * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called
     * when first determining what to render.
     */
    @SideOnly(Side.CLIENT)
    public int colorMultiplier(IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_)
    {
        return 8388608;
    }

    /**
     * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z
     */
    public boolean canPlaceBlockAt(World p_149742_1_, int p_149742_2_, int p_149742_3_, int p_149742_4_)
    {
        return World.doesBlockHaveSolidTopSurface(p_149742_1_, p_149742_2_, p_149742_3_ - 1, p_149742_4_) || p_149742_1_.getBlock(p_149742_2_, p_149742_3_ - 1, p_149742_4_) == Blocks.glowstone;
    }

    private void func_150177_e(World p_150177_1_, int p_150177_2_, int p_150177_3_, int p_150177_4_)
    {
        this.func_150175_a(p_150177_1_, p_150177_2_, p_150177_3_, p_150177_4_, p_150177_2_, p_150177_3_, p_150177_4_);
        ArrayList arraylist = new ArrayList(this.field_150179_b);
        this.field_150179_b.clear();

        for (int l = 0; l < arraylist.size(); ++l)
        {
            ChunkPosition chunkposition = (ChunkPosition)arraylist.get(l);
            p_150177_1_.notifyBlocksOfNeighborChange(chunkposition.chunkPosX, chunkposition.chunkPosY, chunkposition.chunkPosZ, this);
        }
    }

    private void func_150175_a(World p_150175_1_, int p_150175_2_, int p_150175_3_, int p_150175_4_, int p_150175_5_, int p_150175_6_, int p_150175_7_)
    {
        int k1 = p_150175_1_.getBlockMetadata(p_150175_2_, p_150175_3_, p_150175_4_);
        byte b0 = 0;
        int i3 = this.func_150178_a(p_150175_1_, p_150175_5_, p_150175_6_, p_150175_7_, b0);
        this.field_150181_a = false;
        int l1 = p_150175_1_.getStrongestIndirectPower(p_150175_2_, p_150175_3_, p_150175_4_);
        this.field_150181_a = true;

        if (l1 > 0 && l1 > i3 - 1)
        {
            i3 = l1;
        }

        int i2 = 0;

        for (int j2 = 0; j2 < 4; ++j2)
        {
            int k2 = p_150175_2_;
            int l2 = p_150175_4_;

            if (j2 == 0)
            {
                k2 = p_150175_2_ - 1;
            }

            if (j2 == 1)
            {
                ++k2;
            }

            if (j2 == 2)
            {
                l2 = p_150175_4_ - 1;
            }

            if (j2 == 3)
            {
                ++l2;
            }

            if (k2 != p_150175_5_ || l2 != p_150175_7_)
            {
                i2 = this.func_150178_a(p_150175_1_, k2, p_150175_3_, l2, i2);
            }

            if (p_150175_1_.getBlock(k2, p_150175_3_, l2).isNormalCube() && !p_150175_1_.getBlock(p_150175_2_, p_150175_3_ + 1, p_150175_4_).isNormalCube())
            {
                if ((k2 != p_150175_5_ || l2 != p_150175_7_) && p_150175_3_ >= p_150175_6_)
                {
                    i2 = this.func_150178_a(p_150175_1_, k2, p_150175_3_ + 1, l2, i2);
                }
            }
            else if (!p_150175_1_.getBlock(k2, p_150175_3_, l2).isNormalCube() && (k2 != p_150175_5_ || l2 != p_150175_7_) && p_150175_3_ <= p_150175_6_)
            {
                i2 = this.func_150178_a(p_150175_1_, k2, p_150175_3_ - 1, l2, i2);
            }
        }

        if (i2 > i3)
        {
            i3 = i2 - 1;
        }
        else if (i3 > 0)
        {
            --i3;
        }
        else
        {
            i3 = 0;
        }

        if (l1 > i3 - 1)
        {
            i3 = l1;
        }

        if (k1 != i3)
        {
            p_150175_1_.setBlockMetadataWithNotify(p_150175_2_, p_150175_3_, p_150175_4_, i3, 2);
            this.field_150179_b.add(new ChunkPosition(p_150175_2_, p_150175_3_, p_150175_4_));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_ - 1, p_150175_3_, p_150175_4_));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_ + 1, p_150175_3_, p_150175_4_));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_, p_150175_3_ - 1, p_150175_4_));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_, p_150175_3_ + 1, p_150175_4_));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_, p_150175_3_, p_150175_4_ - 1));
            this.field_150179_b.add(new ChunkPosition(p_150175_2_, p_150175_3_, p_150175_4_ + 1));
        }
    }

    private void func_150172_m(World p_150172_1_, int p_150172_2_, int p_150172_3_, int p_150172_4_)
    {
        if (p_150172_1_.getBlock(p_150172_2_, p_150172_3_, p_150172_4_) == this)
        {
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_, p_150172_3_, p_150172_4_, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_ - 1, p_150172_3_, p_150172_4_, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_ + 1, p_150172_3_, p_150172_4_, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_, p_150172_3_, p_150172_4_ - 1, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_, p_150172_3_, p_150172_4_ + 1, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_, p_150172_3_ - 1, p_150172_4_, this);
            p_150172_1_.notifyBlocksOfNeighborChange(p_150172_2_, p_150172_3_ + 1, p_150172_4_, this);
        }
    }

    /**
     * Called whenever the block is added into the world. Args: world, x, y, z
     */
    public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_)
    {
        super.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_);

        if (!p_149726_1_.isRemote)
        {
            this.func_150177_e(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_);
            p_149726_1_.notifyBlocksOfNeighborChange(p_149726_2_, p_149726_3_ + 1, p_149726_4_, this);
            p_149726_1_.notifyBlocksOfNeighborChange(p_149726_2_, p_149726_3_ - 1, p_149726_4_, this);
            this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_, p_149726_4_);
            this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_, p_149726_4_);
            this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_ - 1);
            this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_ + 1);

            if (p_149726_1_.getBlock(p_149726_2_ - 1, p_149726_3_, p_149726_4_).isNormalCube())
            {
                this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_ + 1, p_149726_4_);
            }
            else
            {
                this.func_150172_m(p_149726_1_, p_149726_2_ - 1, p_149726_3_ - 1, p_149726_4_);
            }

            if (p_149726_1_.getBlock(p_149726_2_ + 1, p_149726_3_, p_149726_4_).isNormalCube())
            {
                this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_ + 1, p_149726_4_);
            }
            else
            {
                this.func_150172_m(p_149726_1_, p_149726_2_ + 1, p_149726_3_ - 1, p_149726_4_);
            }

            if (p_149726_1_.getBlock(p_149726_2_, p_149726_3_, p_149726_4_ - 1).isNormalCube())
            {
                this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ + 1, p_149726_4_ - 1);
            }
            else
            {
                this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ - 1, p_149726_4_ - 1);
            }

            if (p_149726_1_.getBlock(p_149726_2_, p_149726_3_, p_149726_4_ + 1).isNormalCube())
            {
                this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ + 1, p_149726_4_ + 1);
            }
            else
            {
                this.func_150172_m(p_149726_1_, p_149726_2_, p_149726_3_ - 1, p_149726_4_ + 1);
            }
        }
    }

    public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
    {
        super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);

        if (!p_149749_1_.isRemote)
        {
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_, p_149749_3_ + 1, p_149749_4_, this);
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_, p_149749_3_ - 1, p_149749_4_, this);
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_ + 1, p_149749_3_, p_149749_4_, this);
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_ - 1, p_149749_3_, p_149749_4_, this);
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_, p_149749_3_, p_149749_4_ + 1, this);
            p_149749_1_.notifyBlocksOfNeighborChange(p_149749_2_, p_149749_3_, p_149749_4_ - 1, this);
            this.func_150177_e(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_);
            this.func_150172_m(p_149749_1_, p_149749_2_ - 1, p_149749_3_, p_149749_4_);
            this.func_150172_m(p_149749_1_, p_149749_2_ + 1, p_149749_3_, p_149749_4_);
            this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_ - 1);
            this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_ + 1);

            if (p_149749_1_.getBlock(p_149749_2_ - 1, p_149749_3_, p_149749_4_).isNormalCube())
            {
                this.func_150172_m(p_149749_1_, p_149749_2_ - 1, p_149749_3_ + 1, p_149749_4_);
            }
            else
            {
                this.func_150172_m(p_149749_1_, p_149749_2_ - 1, p_149749_3_ - 1, p_149749_4_);
            }

            if (p_149749_1_.getBlock(p_149749_2_ + 1, p_149749_3_, p_149749_4_).isNormalCube())
            {
                this.func_150172_m(p_149749_1_, p_149749_2_ + 1, p_149749_3_ + 1, p_149749_4_);
            }
            else
            {
                this.func_150172_m(p_149749_1_, p_149749_2_ + 1, p_149749_3_ - 1, p_149749_4_);
            }

            if (p_149749_1_.getBlock(p_149749_2_, p_149749_3_, p_149749_4_ - 1).isNormalCube())
            {
                this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_ + 1, p_149749_4_ - 1);
            }
            else
            {
                this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_ - 1, p_149749_4_ - 1);
            }

            if (p_149749_1_.getBlock(p_149749_2_, p_149749_3_, p_149749_4_ + 1).isNormalCube())
            {
                this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_ + 1, p_149749_4_ + 1);
            }
            else
            {
                this.func_150172_m(p_149749_1_, p_149749_2_, p_149749_3_ - 1, p_149749_4_ + 1);
            }
        }
    }

    private int func_150178_a(World p_150178_1_, int p_150178_2_, int p_150178_3_, int p_150178_4_, int p_150178_5_)
    {
        if (p_150178_1_.getBlock(p_150178_2_, p_150178_3_, p_150178_4_) != this)
        {
            return p_150178_5_;
        }
        else
        {
            int i1 = p_150178_1_.getBlockMetadata(p_150178_2_, p_150178_3_, p_150178_4_);
            return i1 > p_150178_5_ ? i1 : p_150178_5_;
        }
    }

    /**
     * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are
     * their own) Args: x, y, z, neighbor Block
     */
    public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_)
    {
        if (!p_149695_1_.isRemote)
        {
            boolean flag = this.canPlaceBlockAt(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_);

            if (flag)
            {
                this.func_150177_e(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_);
            }
            else
            {
                this.dropBlockAsItem(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, 0, 0);
                p_149695_1_.setBlockToAir(p_149695_2_, p_149695_3_, p_149695_4_);
            }

            super.onNeighborBlockChange(p_149695_1_, p_149695_2_, p_149695_3_, p_149695_4_, p_149695_5_);
        }
    }

    public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
    {
        return Items.redstone;
    }

    public int isProvidingStrongPower(IBlockAccess p_149748_1_, int p_149748_2_, int p_149748_3_, int p_149748_4_, int p_149748_5_)
    {
        return !this.field_150181_a ? 0 : this.isProvidingWeakPower(p_149748_1_, p_149748_2_, p_149748_3_, p_149748_4_, p_149748_5_);
    }

    public int isProvidingWeakPower(IBlockAccess p_149709_1_, int p_149709_2_, int p_149709_3_, int p_149709_4_, int p_149709_5_)
    {
        if (!this.field_150181_a)
        {
            return 0;
        }
        else
        {
            int i1 = p_149709_1_.getBlockMetadata(p_149709_2_, p_149709_3_, p_149709_4_);

            if (i1 == 0)
            {
                return 0;
            }
            else if (p_149709_5_ == 1)
            {
                return i1;
            }
            else
            {
                boolean flag = func_150176_g(p_149709_1_, p_149709_2_ - 1, p_149709_3_, p_149709_4_, 1) || !p_149709_1_.getBlock(p_149709_2_ - 1, p_149709_3_, p_149709_4_).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_ - 1, p_149709_3_ - 1, p_149709_4_, -1);
                boolean flag1 = func_150176_g(p_149709_1_, p_149709_2_ + 1, p_149709_3_, p_149709_4_, 3) || !p_149709_1_.getBlock(p_149709_2_ + 1, p_149709_3_, p_149709_4_).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_ + 1, p_149709_3_ - 1, p_149709_4_, -1);
                boolean flag2 = func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_, p_149709_4_ - 1, 2) || !p_149709_1_.getBlock(p_149709_2_, p_149709_3_, p_149709_4_ - 1).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_ - 1, p_149709_4_ - 1, -1);
                boolean flag3 = func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_, p_149709_4_ + 1, 0) || !p_149709_1_.getBlock(p_149709_2_, p_149709_3_, p_149709_4_ + 1).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_ - 1, p_149709_4_ + 1, -1);

                if (!p_149709_1_.getBlock(p_149709_2_, p_149709_3_ + 1, p_149709_4_).isNormalCube())
                {
                    if (p_149709_1_.getBlock(p_149709_2_ - 1, p_149709_3_, p_149709_4_).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_ - 1, p_149709_3_ + 1, p_149709_4_, -1))
                    {
                        flag = true;
                    }

                    if (p_149709_1_.getBlock(p_149709_2_ + 1, p_149709_3_, p_149709_4_).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_ + 1, p_149709_3_ + 1, p_149709_4_, -1))
                    {
                        flag1 = true;
                    }

                    if (p_149709_1_.getBlock(p_149709_2_, p_149709_3_, p_149709_4_ - 1).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_ + 1, p_149709_4_ - 1, -1))
                    {
                        flag2 = true;
                    }

                    if (p_149709_1_.getBlock(p_149709_2_, p_149709_3_, p_149709_4_ + 1).isNormalCube() && func_150176_g(p_149709_1_, p_149709_2_, p_149709_3_ + 1, p_149709_4_ + 1, -1))
                    {
                        flag3 = true;
                    }
                }

                return !flag2 && !flag1 && !flag && !flag3 && p_149709_5_ >= 2 && p_149709_5_ <= 5 ? i1 : (p_149709_5_ == 2 && flag2 && !flag && !flag1 ? i1 : (p_149709_5_ == 3 && flag3 && !flag && !flag1 ? i1 : (p_149709_5_ == 4 && flag && !flag2 && !flag3 ? i1 : (p_149709_5_ == 5 && flag1 && !flag2 && !flag3 ? i1 : 0))));
            }
        }
    }

    /**
     * Can this block provide power. Only wire currently seems to have this change based on its state.
     */
    public boolean canProvidePower()
    {
        return this.field_150181_a;
    }

    /**
     * Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal
     * notch-side, this can be 0, 1, 2, 3 or -1)
     */
    public static boolean isPowerProviderOrWire(IBlockAccess p_150174_0_, int p_150174_1_, int p_150174_2_, int p_150174_3_, int p_150174_4_)
    {
        Block block = p_150174_0_.getBlock(p_150174_1_, p_150174_2_, p_150174_3_);

        if (block == Blocks.redstone_wire)
        {
            return true;
        }
        else if (!Blocks.unpowered_repeater.func_149907_e(block))
        {
            return block.canConnectRedstone(p_150174_0_, p_150174_1_, p_150174_2_, p_150174_3_, p_150174_4_);
        }
        else
        {
            int i1 = p_150174_0_.getBlockMetadata(p_150174_1_, p_150174_2_, p_150174_3_);
            return p_150174_4_ == (i1 & 3) || p_150174_4_ == Direction.rotateOpposite[i1 & 3];
        }
    }

    /**
     * A randomly called display update to be able to add particles or other items for display
     */
    @SideOnly(Side.CLIENT)
    public void randomDisplayTick(World p_149734_1_, int p_149734_2_, int p_149734_3_, int p_149734_4_, Random p_149734_5_)
    {
        int l = p_149734_1_.getBlockMetadata(p_149734_2_, p_149734_3_, p_149734_4_);

        if (l > 0)
        {
            double d0 = (double)p_149734_2_ + 0.5D + ((double)p_149734_5_.nextFloat() - 0.5D) * 0.2D;
            double d1 = (double)((float)p_149734_3_ + 0.0625F);
            double d2 = (double)p_149734_4_ + 0.5D + ((double)p_149734_5_.nextFloat() - 0.5D) * 0.2D;
            float f = (float)l / 15.0F;
            float f1 = f * 0.6F + 0.4F;

            if (l == 0)
            {
                f1 = 0.0F;
            }

            float f2 = f * f * 0.7F - 0.5F;
            float f3 = f * f * 0.6F - 0.7F;

            if (f2 < 0.0F)
            {
                f2 = 0.0F;
            }

            if (f3 < 0.0F)
            {
                f3 = 0.0F;
            }

            p_149734_1_.spawnParticle("reddust", d0, d1, d2, (double)f1, (double)f2, (double)f3);
        }
    }

    public static boolean func_150176_g(IBlockAccess p_150176_0_, int p_150176_1_, int p_150176_2_, int p_150176_3_, int p_150176_4_)
    {
        if (isPowerProviderOrWire(p_150176_0_, p_150176_1_, p_150176_2_, p_150176_3_, p_150176_4_))
        {
            return true;
        }
        else if (p_150176_0_.getBlock(p_150176_1_, p_150176_2_, p_150176_3_) == Blocks.powered_repeater)
        {
            int i1 = p_150176_0_.getBlockMetadata(p_150176_1_, p_150176_2_, p_150176_3_);
            return p_150176_4_ == (i1 & 3);
        }
        else
        {
            return false;
        }
    }

    /**
     * Gets an item for the block being called on. Args: world, x, y, z
     */
    @SideOnly(Side.CLIENT)
    public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_)
    {
        return Items.redstone;
    }

    @SideOnly(Side.CLIENT)
    public void registerBlockIcons(IIconRegister p_149651_1_)
    {
        this.field_150182_M = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross");
        this.field_150183_N = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line");
        this.field_150184_O = p_149651_1_.registerIcon(this.getTextureName() + "_" + "cross_overlay");
        this.field_150180_P = p_149651_1_.registerIcon(this.getTextureName() + "_" + "line_overlay");
        this.blockIcon = this.field_150182_M;
    }

    @SideOnly(Side.CLIENT)
    public static IIcon getRedstoneWireIcon(String p_150173_0_)
    {
        return p_150173_0_.equals("cross") ? Blocks.redstone_wire.field_150182_M : (p_150173_0_.equals("line") ? Blocks.redstone_wire.field_150183_N : (p_150173_0_.equals("cross_overlay") ? Blocks.redstone_wire.field_150184_O : (p_150173_0_.equals("line_overlay") ? Blocks.redstone_wire.field_150180_P : null)));
    }
}

 

Only because I had to make a simular block for my mod

I'm always happy to help others!

 

Java is not my main programming language but I have alot experience in PHP/HTML/JS/CSS3/C#/SQL

Posted

sorry hate to directly ask for code but can you show me what actaully needs to be write in replace of what, cause i fiddled around and stopped it working completly so reverted the code back. also it the block wont take redstone current from another conductor and wont take from redstone torches

 

CHANGE CIRCUITS

 

    public RedstoneConducter(int par1)

    {

        super(par1, Material.circuits);

        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);

    }

 

TO ROCK

 

    public RedstoneConducter(int par1)

    {

        super(par1, Material.rock);

        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);

    }

 

Seriously, Ctrl-F to find-in-file, just like every other application ever.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

i did change it to .rock the piston part worked but palcing on top or removing the under block doesnt.

 

package a.sounds;

 

import java.util.ArrayList;

import java.util.HashSet;

import java.util.Random;

import java.util.Set;

 

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.renderer.texture.IconRegister;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.item.Item;

import net.minecraft.util.AxisAlignedBB;

import net.minecraft.util.Direction;

import net.minecraft.util.Icon;

import net.minecraft.world.ChunkPosition;

import net.minecraft.world.IBlockAccess;

import net.minecraft.world.World;

 

public class RedstoneConducter extends Block

{

    public RedstoneConducter(int par1, Material par2Material) {

super(par1, par2Material);

 

}

 

/**

    * When false, power transmission methods do not look at other redstone wires. Used internally during

    * updateCurrentStrength.

    */

    private boolean wiresProvidePower = true;

    private Set blocksNeedingUpdate = new HashSet();

    @SideOnly(Side.CLIENT)

    private Icon field_94413_c;

    @SideOnly(Side.CLIENT)

    private Icon field_94410_cO;

    @SideOnly(Side.CLIENT)

    private Icon field_94411_cP;

    @SideOnly(Side.CLIENT)

    private Icon field_94412_cQ;

 

    public RedstoneConducter(int par1)

    {

        super(par1, Material.rock);

        this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.0625F, 1.0F);

    }

 

    /**

    * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been

    * cleared to be reused)

    */

    public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)

    {

        return null;

    }

 

    /**

    * Is this block (a) opaque and (b) a full 1m cube?  This determines whether or not to render the shared face of two

    * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block.

    */

    public boolean isOpaqueCube()

    {

        return false;

    }

 

    /**

    * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc)

    */

    public boolean renderAsNormalBlock()

    {

        return false;

    }

 

    /**

    * The type of render function that is called for this block

    */

   

 

    @SideOnly(Side.CLIENT)

 

    /**

    * Returns a integer with hex for 0xrrggbb with this color multiplied against the blocks color. Note only called

    * when first determining what to render.

    */

    public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)

    {

        return 8388608;

    }

 

    /**

    * Checks to see if its valid to put this block at the specified coordinates. Args: world, x, y, z

    */

    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)

    {

        return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || par1World.getBlockId(par2, par3 - 1, par4) == Block.glowStone.blockID;

    }

 

    /**

    * Sets the strength of the wire current (0-15) for this block based on neighboring blocks and propagates to

    * neighboring redstone wires

    */

    private void updateAndPropagateCurrentStrength(World par1World, int par2, int par3, int par4)

    {

        this.calculateCurrentChanges(par1World, par2, par3, par4, par2, par3, par4);

        ArrayList arraylist = new ArrayList(this.blocksNeedingUpdate);

        this.blocksNeedingUpdate.clear();

 

        for (int l = 0; l < arraylist.size(); ++l)

        {

            ChunkPosition chunkposition = (ChunkPosition)arraylist.get(l);

            par1World.notifyBlocksOfNeighborChange(chunkposition.x, chunkposition.y, chunkposition.z, this.blockID);

        }

    }

 

    private void calculateCurrentChanges(World par1World, int par2, int par3, int par4, int par5, int par6, int par7)

    {

        int k1 = par1World.getBlockMetadata(par2, par3, par4);

        byte b0 = 0;

        int l1 = this.getMaxCurrentStrength(par1World, par5, par6, par7, b0);

        this.wiresProvidePower = false;

        int i2 = par1World.getStrongestIndirectPower(par2, par3, par4);

        this.wiresProvidePower = true;

 

        if (i2 > 0 && i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        int j2 = 0;

 

        for (int k2 = 0; k2 < 4; ++k2)

        {

            int l2 = par2;

            int i3 = par4;

 

            if (k2 == 0)

            {

                l2 = par2 - 1;

            }

 

            if (k2 == 1)

            {

                ++l2;

            }

 

            if (k2 == 2)

            {

                i3 = par4 - 1;

            }

 

            if (k2 == 3)

            {

                ++i3;

            }

 

            if (l2 != par5 || i3 != par7)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3, i3, j2);

            }

 

            if (par1World.isBlockNormalCube(l2, par3, i3) && !par1World.isBlockNormalCube(par2, par3 + 1, par4))

            {

                if ((l2 != par5 || i3 != par7) && par3 >= par6)

                {

                    j2 = this.getMaxCurrentStrength(par1World, l2, par3 + 1, i3, j2);

                }

            }

            else if (!par1World.isBlockNormalCube(l2, par3, i3) && (l2 != par5 || i3 != par7) && par3 <= par6)

            {

                j2 = this.getMaxCurrentStrength(par1World, l2, par3 - 1, i3, j2);

            }

        }

 

        if (j2 > l1)

        {

            l1 = j2 - 1;

        }

        else if (l1 > 0)

        {

            --l1;

        }

        else

        {

            l1 = 0;

        }

 

        if (i2 > l1 - 1)

        {

            l1 = i2;

        }

 

        if (k1 != l1)

        {

            par1World.setBlockMetadataWithNotify(par2, par3, par4, l1, 2);

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 - 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2 + 1, par3, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 - 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3 + 1, par4));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 - 1));

            this.blocksNeedingUpdate.add(new ChunkPosition(par2, par3, par4 + 1));

        }

    }

 

    /**

    * Calls World.notifyBlocksOfNeighborChange() for all neighboring blocks, but only if the given block is a redstone

    * wire.

    */

    private void notifyWireNeighborsOfNeighborChange(World par1World, int par2, int par3, int par4)

    {

        if (par1World.getBlockId(par2, par3, par4) == this.blockID)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

        }

    }

 

    /**

    * Called whenever the block is added into the world. Args: world, x, y, z

    */

    public void onBlockAdded(World par1World, int par2, int par3, int par4)

    {

        super.onBlockAdded(par1World, par2, par3, par4);

 

        if (!par1World.isRemote)

        {

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Called on server worlds only when the block has been replaced by a different block ID, or the same block with a

    * different metadata value, but before the new metadata value is set. Args: World, x, y, z, old block ID, old

    * metadata

    */

    public void breakBlock(World par1World, int par2, int par3, int par4, int par5, int par6)

    {

        super.breakBlock(par1World, par2, par3, par4, par5, par6);

 

        if (!par1World.isRemote)

        {

            par1World.notifyBlocksOfNeighborChange(par2, par3 + 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3 - 1, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 + 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2 - 1, par3, par4, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 + 1, this.blockID);

            par1World.notifyBlocksOfNeighborChange(par2, par3, par4 - 1, this.blockID);

            this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3, par4);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 - 1);

            this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3, par4 + 1);

 

            if (par1World.isBlockNormalCube(par2 - 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 - 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2 + 1, par3, par4))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 + 1, par4);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2 + 1, par3 - 1, par4);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 - 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 - 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 - 1);

            }

 

            if (par1World.isBlockNormalCube(par2, par3, par4 + 1))

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 + 1, par4 + 1);

            }

            else

            {

                this.notifyWireNeighborsOfNeighborChange(par1World, par2, par3 - 1, par4 + 1);

            }

        }

    }

 

    /**

    * Returns the current strength at the specified block if it is greater than the passed value, or the passed value

    * otherwise. Signature: (world, x, y, z, strength)

    */

    private int getMaxCurrentStrength(World par1World, int par2, int par3, int par4, int par5)

    {

        if (par1World.getBlockId(par2, par3, par4) != this.blockID)

        {

            return par5;

        }

        else

        {

            int i1 = par1World.getBlockMetadata(par2, par3, par4);

            return i1 > par5 ? i1 : par5;

        }

    }

 

    /**

    * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are

    * their own) Args: x, y, z, neighbor blockID

    */

    public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)

    {

        if (!par1World.isRemote)

        {

            boolean flag = this.canPlaceBlockAt(par1World, par2, par3, par4);

 

            if (flag)

            {

                this.updateAndPropagateCurrentStrength(par1World, par2, par3, par4);

            }

            else

            {

                this.dropBlockAsItem(par1World, par2, par3, par4, 0, 0);

                par1World.setBlockToAir(par2, par3, par4);

            }

 

            super.onNeighborBlockChange(par1World, par2, par3, par4, par5);

        }

    }

 

   

 

    /**

    * Returns true if the block is emitting direct/strong redstone power on the specified side. Args: World, X, Y, Z,

    * side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingStrongPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        return !this.wiresProvidePower ? 0 : this.isProvidingWeakPower(par1IBlockAccess, par2, par3, par4, par5);

    }

 

    /**

    * Returns true if the block is emitting indirect/weak redstone power on the specified side. If isBlockNormalCube

    * returns true, standard redstone propagation rules will apply instead and this will not be called. Args: World, X,

    * Y, Z, side. Note that the side is reversed - eg it is 1 (up) when checking the bottom of the block.

    */

    public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5)

    {

        if (!this.wiresProvidePower)

        {

            return 0;

        }

        else

        {

            int i1 = par1IBlockAccess.getBlockMetadata(par2, par3, par4);

 

            if (i1 == 0)

            {

                return 0;

            }

            else if (par5 == 1)

            {

                return i1;

            }

            else

            {

                boolean flag = isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3, par4, 1) || !par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 - 1, par4, -1);

                boolean flag1 = isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3, par4, 3) || !par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 - 1, par4, -1);

                boolean flag2 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 - 1, 2) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 - 1, -1);

                boolean flag3 = isPoweredOrRepeater(par1IBlockAccess, par2, par3, par4 + 1, 0) || !par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 - 1, par4 + 1, -1);

 

                if (!par1IBlockAccess.isBlockNormalCube(par2, par3 + 1, par4))

                {

                    if (par1IBlockAccess.isBlockNormalCube(par2 - 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 - 1, par3 + 1, par4, -1))

                    {

                        flag = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2 + 1, par3, par4) && isPoweredOrRepeater(par1IBlockAccess, par2 + 1, par3 + 1, par4, -1))

                    {

                        flag1 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 - 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 - 1, -1))

                    {

                        flag2 = true;

                    }

 

                    if (par1IBlockAccess.isBlockNormalCube(par2, par3, par4 + 1) && isPoweredOrRepeater(par1IBlockAccess, par2, par3 + 1, par4 + 1, -1))

                    {

                        flag3 = true;

                    }

                }

 

                return !flag2 && !flag1 && !flag && !flag3 && par5 >= 2 && par5 <= 5 ? i1 : (par5 == 2 && flag2 && !flag && !flag1 ? i1 : (par5 == 3 && flag3 && !flag && !flag1 ? i1 : (par5 == 4 && flag && !flag2 && !flag3 ? i1 : (par5 == 5 && flag1 && !flag2 && !flag3 ? i1 : 0))));

            }

        }

    }

 

    /**

    * Can this block provide power. Only wire currently seems to have this change based on its state.

    */

    public boolean canProvidePower()

    {

        return this.wiresProvidePower;

    }

 

    /**

    * Returns true if redstone wire can connect to the specified block. Params: World, X, Y, Z, side (not a normal

    * notch-side, this can be 0, 1, 2, 3 or -1)

    */

    public static boolean isPowerProviderOrWire(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

        if (i1 == Block.redstoneWire.blockID)

        {

            return true;

        }

        else if (i1 == 0)

        {

            return false;

        }

        else if (!Block.redstoneRepeaterIdle.func_94487_f(i1))

        {

            return (Block.blocksList[i1] != null && Block.blocksList[i1].canConnectRedstone(par0IBlockAccess, par1, par2, par3, par4));

        }

        else

        {

            int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

            return par4 == (j1 & 3) || par4 == Direction.rotateOpposite[j1 & 3];

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * A randomly called display update to be able to add particles or other items for display

    */

    public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random)

    {

        int l = par1World.getBlockMetadata(par2, par3, par4);

 

        if (l > 0)

        {

            double d0 = (double)par2 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            double d1 = (double)((float)par3 + 0.0625F);

            double d2 = (double)par4 + 0.5D + ((double)par5Random.nextFloat() - 0.5D) * 0.2D;

            float f = (float)l / 15.0F;

            float f1 = f * 0.6F + 0.4F;

 

            if (l == 0)

            {

                f1 = 0.0F;

            }

 

            float f2 = f * f * 0.7F - 0.5F;

            float f3 = f * f * 0.6F - 0.7F;

 

            if (f2 < 0.0F)

            {

                f2 = 0.0F;

            }

 

            if (f3 < 0.0F)

            {

                f3 = 0.0F;

            }

 

            par1World.spawnParticle("reddust", d0, d1, d2, (double)f1, (double)f2, (double)f3);

        }

    }

 

    /**

    * Returns true if the block coordinate passed can provide power, or is a redstone wire, or if its a repeater that

    * is powered.

    */

    public static boolean isPoweredOrRepeater(IBlockAccess par0IBlockAccess, int par1, int par2, int par3, int par4)

    {

        if (isPowerProviderOrWire(par0IBlockAccess, par1, par2, par3, par4))

        {

            return true;

        }

        else

        {

            int i1 = par0IBlockAccess.getBlockId(par1, par2, par3);

 

            if (i1 == Block.redstoneRepeaterActive.blockID)

            {

                int j1 = par0IBlockAccess.getBlockMetadata(par1, par2, par3);

                return par4 == (j1 & 3);

            }

            else

            {

                return false;

            }

        }

    }

 

    @SideOnly(Side.CLIENT)

 

    /**

    * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative)

    */

    public int idPicked(World par1World, int par2, int par3, int par4)

    {

        return Item.redstone.itemID;

    }

 

 

 

    /**

    * When this method is called, your block should register all the icons it needs with the given IconRegister. This

    * is the only chance you get to register icons.

    */

    @SideOnly(Side.CLIENT)

public void registerIcons(IconRegister par1IconRegister){

this.blockIcon = par1IconRegister.registerIcon("oomod:RedstoneConducter");

}

 

    }

 

 

 

Posted

Are you actually making any of the changes I suggest?

 

Fix canPlaceBlockAt to return true.

 

    public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)

    {

        return par1World.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) || par1World.getBlockId(par2, par3 - 1, par4) == Block.glowStone.blockID;

    }

 

IS NOT ALWAYS RETURNING TRUE.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

really?

public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)

    {

      return true;

    }

I'm always happy to help others!

 

Java is not my main programming language but I have alot experience in PHP/HTML/JS/CSS3/C#/SQL

Posted

multiple outputs cancel each other, so if i had ----[]---- it would work but if i did -----[]-----

                                                                                                                                    | 

the two which arent from the power source turn off

 

secondly can i make the redstone current transmit vertically?

 

third doesnt get a current when conencted to a repeater or torch?

 

fourth wont give current to a repeater

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • https://pastebin.com/SnWukPj8   thats the crash log if anyone can help add me on discord: privatelk
    • Remove Neruina and justleveling from your server
    • I'm attempting to make a 1.20.1-47.4.0 forge server but when I change the user_jvm_args.txt it does nothing so i tried adding it to the run.bat which it picks up on the startup console but then gives me this [21:56:01] [main/ERROR] [minecraft/Main]: Failed to start the minecraft server joptsimple.UnrecognizedOptionException: X is not a recognized option     at joptsimple.OptionException.unrecognizedOption(OptionException.java:108) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at joptsimple.OptionParser.validateOptionCharacters(OptionParser.java:633) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at joptsimple.OptionParser.handleShortOptionCluster(OptionParser.java:528) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at joptsimple.OptionParser.handleShortOptionToken(OptionParser.java:523) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at joptsimple.OptionParserState$2.handleArgument(OptionParserState.java:59) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at joptsimple.OptionParser.parse(OptionParser.java:396) ~[jopt-simple-5.0.4.jar%2393!/:?] {}     at net.minecraft.server.Main.main(Main.java:98) ~[server-1.20.1-20230612.114412-srg.jar%23101!/:?] {re:classloading}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.4.0.jar%2369!/:?] {}     at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.serverService(CommonLaunchHandler.java:103) ~[fmlloader-1.20.1-47.4.0.jar%2369!/:?] {}     at net.minecraftforge.fml.loading.targets.CommonServerLaunchHandler.lambda$makeService$0(CommonServerLaunchHandler.java:27) ~[fmlloader-1.20.1-47.4.0.jar%2369!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar%2355!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} I have uninstalled and reinstalled all my versions of java and tried deleting and restarting everything several times to no avail. I have no more ideas and would appreciate any assistance.
    • [01:52:34] [Server thread/WARN] [neruina/]: Neruina caught an exception, see below for cause java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid dist DEDICATED_SERVER         at net.minecraftforge.fml.loading.RuntimeDistCleaner.processClassWithFlags(RuntimeDistCleaner.java:57) ~[fmlloader-1.20.1-47.4.0.jar%2369!/:1.0] {}         at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-10.0.9.jar%2355!/:?] {}         at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.10.jar:?] {}         at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.10.jar:?] {}         at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] {}         at net.minecraftforge.network.simple.SimpleChannel.sendToServer(SimpleChannel.java:87) ~[forge-1.20.1-47.4.0-universal.jar%23670!/:?] {re:mixin,re:classloading,pl:mixin:APP:connectivity.mixins.json:SimpleChannelMixin from mod connectivity,pl:mixin:A}         at com.dplayend.justleveling.network.ServerNetworking.sendToServer(ServerNetworking.java:36) ~[justleveling-forge-1.20.x-v1.7.jar%23542!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.network.packet.common.CounterAttackSP.send(CounterAttackSP.java:51) ~[justleveling-forge-1.20.x-v1.7.jar%23542!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.registry.RegistryCommonEvents.lambda$onAttackEntity$8(RegistryCommonEvents.java:315) ~[justleveling-forge-1.20.x-v1.7.jar%23542!/:forge-1.20.x-v1.7] {re:classloading}         at net.minecraftforge.common.util.LazyOptional.ifPresent(LazyOptional.java:137) ~[forge-1.20.1-47.4.0-universal.jar%23670!/:?] {re:mixin,re:classloading}         at com.dplayend.justleveling.registry.RegistryCommonEvents.onAttackEntity(RegistryCommonEvents.java:315) ~[justleveling-forge-1.20.x-v1.7.jar%23542!/:forge-1.20.x-v1.7] {re:classloading}         at com.dplayend.justleveling.registry.__RegistryCommonEvents_onAttackEntity_LivingHurtEvent.invoke(.dynamic) ~[justleveling-forge-1.20.x-v1.7.jar%23542!/:forge-1.20.x-v1.7] {re:classloading,pl:eventbus:B}         at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.common.ForgeHooks.onLivingHurt(ForgeHooks.java:292) ~[forge-1.20.1-47.4.0-universal.jar%23670!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.redirected_forge_1.20.1.json:forge.net.minecraftforge.common.ForgeHooksMixin from mod redirected,pl:mixin:APP:modernfix-forge.mixins.json:perf.faster_ingredients.ForgeHooksMixin from mod modernfix,pl:mixin:APP:apotheosis.mixins.json:ForgeHooksMixin from mod apotheosis,pl:mixin:APP:connectormod.mixins.json:ForgeHooksMixin from mod connectormod,pl:mixin:APP:connectormod.mixins.json:item.ForgeHooksMixin from mod connectormod,pl:mixin:A}         at net.minecraft.world.entity.player.Player.m_6475_(Player.java:909) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:baguettelib.mixins.json:PlayerDeathMixin from mod baguettelib,pl:mixin:APP:pehkui.mixins.json:reach.PlayerEntityMixin from mod pehkui,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinPlayer from mod openpartiesandclaims,pl:mixin:APP:paraglider.mixins.json:MixinPlayer from mod paraglider,pl:mixin:APP:attributeslib.mixins.json:PlayerMixin from mod attributeslib,pl:mixin:APP:fabric-entity-events-v1.mixins.json:PlayerEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:fabric-entity-events-v1.mixins.json:elytra.PlayerEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:tipsylib.mixins.json:server.PlayerMixin from mod tipsylib,pl:mixin:APP:pehkui.mixins.json:PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat117plus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1194plus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1204minus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:mixins.travelersbackpack.json:PlayerMixin from mod travelersbackpack,pl:mixin:APP:alltheleaks.mixins.json:main.PlayerMixin from mod alltheleaks,pl:mixin:APP:baguettelib.mixins.json:PlayerEquipmentMixin from mod baguettelib,pl:mixin:APP:dummmmmmy-common.mixins.json:PlayerMixin from mod dummmmmmy,pl:mixin:APP:soulsweapons.mixins.json:PlayerEntityMixin from mod soulsweapons,pl:mixin:APP:endergetic.mixins.json:PlayerMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:PlayerEntityMixin from mod friendsandfoes,pl:mixin:APP:justleveling.mixins.json:MixPlayer from mod justleveling,pl:mixin:APP:skilltree.mixins.json:minecraft/PlayerMixin from mod skilltree,pl:mixin:APP:supplementaries-common.mixins.json:PlayerMixin from mod supplementaries,pl:mixin:APP:supplementaries.mixins.json:PlayerProjectileMixin from mod supplementaries,pl:mixin:APP:mixins.irons_spellbooks.json:PlayerMixin from mod irons_spellbooks,pl:mixin:APP:mixins.epicfight.json:MixinPlayer from mod epicfight,pl:mixin:APP:create.mixins.json:PlayerMixin from mod create,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.LivingEntity.m_6469_(LivingEntity.java:1112) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:connectormod:insertInjectionTarget,xf:fml:connectormod:updateItemUseStartTreshold,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,xf:fml:connectormod:insertInjectionTarget,xf:fml:connectormod:updateItemUseStartTreshold,pl:mixin:APP:baguettelib.mixins.json:LivingEntityDeathMixin from mod baguettelib,pl:mixin:APP:subtle_effects.mixins.json:common.CommonLivingEntityMixin from mod subtle_effects,pl:mixin:APP:modernfix-forge.mixins.json:perf.forge_cap_retrieval.LivingEntityMixin from mod modernfix,pl:mixin:APP:armorcurve.mixins.json:ValueUpdateMixin from mod armorcurve,pl:mixin:APP:apotheosis.mixins.json:LivingEntityInvoker from mod apotheosis,pl:mixin:APP:apotheosis.mixins.json:LivingEntityMixin from mod apotheosis,pl:mixin:APP:apotheosis.mixins.json:MHFMixinLivingEntity from mod apotheosis,pl:mixin:APP:projectile_damage.mixins.json:LivingEntityMixin from mod projectile_damage,pl:mixin:APP:autoleveling.mixins.json:LivingEntityAccessor from mod autoleveling,pl:mixin:APP:curios.mixins.json:MixinLivingEntity from mod curios,pl:mixin:APP:attributeslib.mixins.json:LivingEntityMixin from mod attributeslib,pl:mixin:APP:fabric-entity-events-v1.mixins.json:LivingEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:fabric-entity-events-v1.mixins.json:elytra.LivingEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:lithium.mixins.json:alloc.enum_values.living_entity.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.collisions.unpushable_cramming.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_elytra_check.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_hand_swing.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_powder_snow_check.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.skip_equipment_change_check.LivingEntityMixin from mod radium,pl:mixin:APP:questkilltask.mixins.json:LivingEntityMixin from mod questkilltask,pl:mixin:APP:tipsylib.mixins.json:server.LivingEntityAttributesMixin from mod tipsylib,pl:mixin:APP:tipsylib.mixins.json:server.LivingEntityEffectsMixin from mod tipsylib,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin from mod pehkui,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity from mod caelus,pl:mixin:APP:simply_swords_overhaul.mixins.json:MixinLivingEntity from mod simply_swords_overhaul,pl:mixin:APP:idas.mixins.json:LabyrinthBossKilledMixin from mod idas,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin from mod citadel,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity from mod bookshelf,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity from mod bookshelf,pl:mixin:APP:dummmmmmy-common.mixins.json:LivingEntityMixin from mod dummmmmmy,pl:mixin:APP:cataclysm.mixins.json:LivingEntityMixin from mod cataclysm,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:LivingEntityMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:soulsweapons.mixins.json:LivingEntityInvoker from mod soulsweapons,pl:mixin:APP:soulsweapons.mixins.json:LivingEntityMixin from mod soulsweapons,pl:mixin:APP:endergetic.mixins.json:LivingEntityMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:BlazeLivingEntityMixin from mod friendsandfoes,pl:mixin:APP:friendsandfoes-common.mixins.json:LivingEntityMixin from mod friendsandfoes,pl:mixin:APP:simplyswords-common.mixins.json:LivingEntityMixin from mod simplyswords,pl:mixin:APP:knavesneeds-common.mixins.json:LivingEntityMixin from mod knavesneeds,pl:mixin:APP:justleveling.mixins.json:MixLivingEntity from mod justleveling,pl:mixin:APP:skilltree.mixins.json:minecraft/LivingEntityMixin from mod skilltree,pl:mixin:APP:skilltree.mixins.json:LivingEntityAccessor from mod skilltree,pl:mixin:APP:quark.mixins.json:accessor.AccessorLivingEntity from mod quark,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor from mod supplementaries,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin from mod supplementaries,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin from mod supplementaries,pl:mixin:APP:mixins.irons_spellbooks.json:LivingEntityMixin from mod irons_spellbooks,pl:mixin:APP:additional_attributes.mixins.json:LivingEntityMixin from mod additional_attributes,pl:mixin:APP:particle_effects.mixins.json:LivingEntityMixin from mod particle_effects,pl:mixin:APP:improvedmobs.mixins.json:LivingEntityMixin from mod improvedmobs,pl:mixin:APP:mixins.epicfight.json:MixinLivingEntity from mod epicfight,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin from mod create,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin from mod create,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor from mod create,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:obscure_api.mixins.json:LivingEntityMixin from mod obscure_api,pl:mixin:APP:maxhealthfix.common.mixins.json:MixinLivingEntity from mod maxhealthfix,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinLivingEntity from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.player.Player.m_6469_(Player.java:840) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:baguettelib.mixins.json:PlayerDeathMixin from mod baguettelib,pl:mixin:APP:pehkui.mixins.json:reach.PlayerEntityMixin from mod pehkui,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinPlayer from mod openpartiesandclaims,pl:mixin:APP:paraglider.mixins.json:MixinPlayer from mod paraglider,pl:mixin:APP:attributeslib.mixins.json:PlayerMixin from mod attributeslib,pl:mixin:APP:fabric-entity-events-v1.mixins.json:PlayerEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:fabric-entity-events-v1.mixins.json:elytra.PlayerEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:tipsylib.mixins.json:server.PlayerMixin from mod tipsylib,pl:mixin:APP:pehkui.mixins.json:PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat117plus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1194plus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1204minus.PlayerEntityMixin from mod pehkui,pl:mixin:APP:mixins.travelersbackpack.json:PlayerMixin from mod travelersbackpack,pl:mixin:APP:alltheleaks.mixins.json:main.PlayerMixin from mod alltheleaks,pl:mixin:APP:baguettelib.mixins.json:PlayerEquipmentMixin from mod baguettelib,pl:mixin:APP:dummmmmmy-common.mixins.json:PlayerMixin from mod dummmmmmy,pl:mixin:APP:soulsweapons.mixins.json:PlayerEntityMixin from mod soulsweapons,pl:mixin:APP:endergetic.mixins.json:PlayerMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:PlayerEntityMixin from mod friendsandfoes,pl:mixin:APP:justleveling.mixins.json:MixPlayer from mod justleveling,pl:mixin:APP:skilltree.mixins.json:minecraft/PlayerMixin from mod skilltree,pl:mixin:APP:supplementaries-common.mixins.json:PlayerMixin from mod supplementaries,pl:mixin:APP:supplementaries.mixins.json:PlayerProjectileMixin from mod supplementaries,pl:mixin:APP:mixins.irons_spellbooks.json:PlayerMixin from mod irons_spellbooks,pl:mixin:APP:mixins.epicfight.json:MixinPlayer from mod epicfight,pl:mixin:APP:create.mixins.json:PlayerMixin from mod create,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.level.ServerPlayer.m_6469_(ServerPlayer.java:695) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:computing_frames,pl:accesstransformer:B,pl:connector_pre_launch:A,re:mixin,pl:accesstransformer:B,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.Mob.m_7327_(Mob.java:1410) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:mixins.redirected_forge_1.20.1.json:net.minecraft.world.entity.MobMixin from mod redirected,pl:mixin:APP:subtle_effects.mixins.json:common.MobMixin from mod subtle_effects,pl:mixin:APP:fabric-entity-events-v1.mixins.json:MobEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:lithium.mixins.json:entity.inactive_navigations.MobEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.skip_equipment_change_check.MobEntityMixin from mod radium,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin from mod pehkui,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob from mod bookshelf,pl:mixin:APP:despawn_tweaker.mixins.json:MobMixin from mod despawn_tweaker,pl:mixin:APP:otherworldapoth.mixins.json:MobMixin from mod otherworldapoth,pl:mixin:APP:letmedespawn.mixins.json:MobMixin from mod letmedespawn,pl:mixin:APP:endergetic.mixins.json:MobMixin from mod endergetic,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin from mod moonlight,pl:mixin:APP:improvedmobs.mixins.json:MobEntityMixin from mod improvedmobs,pl:mixin:APP:improvedmobs.mixins.json:MobMixin from mod improvedmobs,pl:mixin:APP:mixins.epicfight.json:MixinMob from mod epicfight,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin from mod pehkui,pl:mixin:APP:openpartiesandclaims.forge.mixins.json:MixinForgeMob from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.monster.Zombie.m_7327_(Zombie.java:315) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin from mod pehkui,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.monster.Husk.m_7327_(Husk.java:57) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:connector_pre_launch:A}         at yesman.epicfight.world.capabilities.entitypatch.MobPatch.attack(MobPatch.java:179) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:mixin,re:classloading}         at yesman.epicfight.api.animation.types.AttackAnimation.hurtCollidingEntities(AttackAnimation.java:241) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}         at yesman.epicfight.api.animation.types.AttackAnimation.attackTick(AttackAnimation.java:216) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}         at yesman.epicfight.api.animation.types.AttackAnimation.tick(AttackAnimation.java:169) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:mixin:A,pl:runtimedistcleaner:A}         at yesman.epicfight.api.animation.ServerAnimator.tick(ServerAnimator.java:85) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:classloading}         at yesman.epicfight.world.capabilities.entitypatch.LivingEntityPatch.tick(LivingEntityPatch.java:154) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:mixin,pl:runtimedistcleaner:A,re:classloading,pl:runtimedistcleaner:A}         at yesman.epicfight.events.EntityEvents.updateEvent(EntityEvents.java:103) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:classloading}         at yesman.epicfight.events.__EntityEvents_updateEvent_LivingTickEvent.invoke(.dynamic) ~[epicfight-forge-20.9.7-1.20.1.jar%23476!/:20.9.7] {re:classloading,pl:eventbus:B}         at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:315) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.eventbus.EventBus.post(EventBus.java:296) ~[eventbus-6.0.5.jar%2352!/:?] {}         at net.minecraftforge.common.ForgeHooks.onLivingTick(ForgeHooks.java:264) ~[forge-1.20.1-47.4.0-universal.jar%23670!/:?] {re:mixin,re:classloading,pl:mixin:APP:mixins.redirected_forge_1.20.1.json:forge.net.minecraftforge.common.ForgeHooksMixin from mod redirected,pl:mixin:APP:modernfix-forge.mixins.json:perf.faster_ingredients.ForgeHooksMixin from mod modernfix,pl:mixin:APP:apotheosis.mixins.json:ForgeHooksMixin from mod apotheosis,pl:mixin:APP:connectormod.mixins.json:ForgeHooksMixin from mod connectormod,pl:mixin:APP:connectormod.mixins.json:item.ForgeHooksMixin from mod connectormod,pl:mixin:A}         at net.minecraft.world.entity.LivingEntity.m_8119_(LivingEntity.java:2258) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:connectormod:insertInjectionTarget,xf:fml:connectormod:updateItemUseStartTreshold,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,xf:fml:connectormod:insertInjectionTarget,xf:fml:connectormod:updateItemUseStartTreshold,pl:mixin:APP:baguettelib.mixins.json:LivingEntityDeathMixin from mod baguettelib,pl:mixin:APP:subtle_effects.mixins.json:common.CommonLivingEntityMixin from mod subtle_effects,pl:mixin:APP:modernfix-forge.mixins.json:perf.forge_cap_retrieval.LivingEntityMixin from mod modernfix,pl:mixin:APP:armorcurve.mixins.json:ValueUpdateMixin from mod armorcurve,pl:mixin:APP:apotheosis.mixins.json:LivingEntityInvoker from mod apotheosis,pl:mixin:APP:apotheosis.mixins.json:LivingEntityMixin from mod apotheosis,pl:mixin:APP:apotheosis.mixins.json:MHFMixinLivingEntity from mod apotheosis,pl:mixin:APP:projectile_damage.mixins.json:LivingEntityMixin from mod projectile_damage,pl:mixin:APP:autoleveling.mixins.json:LivingEntityAccessor from mod autoleveling,pl:mixin:APP:curios.mixins.json:MixinLivingEntity from mod curios,pl:mixin:APP:attributeslib.mixins.json:LivingEntityMixin from mod attributeslib,pl:mixin:APP:fabric-entity-events-v1.mixins.json:LivingEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:fabric-entity-events-v1.mixins.json:elytra.LivingEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:lithium.mixins.json:alloc.enum_values.living_entity.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.collisions.unpushable_cramming.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_elytra_check.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_hand_swing.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.fast_powder_snow_check.LivingEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.skip_equipment_change_check.LivingEntityMixin from mod radium,pl:mixin:APP:questkilltask.mixins.json:LivingEntityMixin from mod questkilltask,pl:mixin:APP:tipsylib.mixins.json:server.LivingEntityAttributesMixin from mod tipsylib,pl:mixin:APP:tipsylib.mixins.json:server.LivingEntityEffectsMixin from mod tipsylib,pl:mixin:APP:pehkui.mixins.json:LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat117plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1194plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:pehkui.mixins.json:compat1204minus.LivingEntityMixin from mod pehkui,pl:mixin:APP:caelus.mixins.json:MixinLivingEntity from mod caelus,pl:mixin:APP:simply_swords_overhaul.mixins.json:MixinLivingEntity from mod simply_swords_overhaul,pl:mixin:APP:idas.mixins.json:LabyrinthBossKilledMixin from mod idas,pl:mixin:APP:citadel.mixins.json:LivingEntityMixin from mod citadel,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorLivingEntity from mod bookshelf,pl:mixin:APP:bookshelf.common.mixins.json:patches.entity.MixinLivingEntity from mod bookshelf,pl:mixin:APP:dummmmmmy-common.mixins.json:LivingEntityMixin from mod dummmmmmy,pl:mixin:APP:cataclysm.mixins.json:LivingEntityMixin from mod cataclysm,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:LivingEntityMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:soulsweapons.mixins.json:LivingEntityInvoker from mod soulsweapons,pl:mixin:APP:soulsweapons.mixins.json:LivingEntityMixin from mod soulsweapons,pl:mixin:APP:endergetic.mixins.json:LivingEntityMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:BlazeLivingEntityMixin from mod friendsandfoes,pl:mixin:APP:friendsandfoes-common.mixins.json:LivingEntityMixin from mod friendsandfoes,pl:mixin:APP:simplyswords-common.mixins.json:LivingEntityMixin from mod simplyswords,pl:mixin:APP:knavesneeds-common.mixins.json:LivingEntityMixin from mod knavesneeds,pl:mixin:APP:justleveling.mixins.json:MixLivingEntity from mod justleveling,pl:mixin:APP:skilltree.mixins.json:minecraft/LivingEntityMixin from mod skilltree,pl:mixin:APP:skilltree.mixins.json:LivingEntityAccessor from mod skilltree,pl:mixin:APP:quark.mixins.json:accessor.AccessorLivingEntity from mod quark,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityAccessor from mod supplementaries,pl:mixin:APP:supplementaries-common.mixins.json:LivingEntityMixin from mod supplementaries,pl:mixin:APP:supplementaries.mixins.json:LivingEntityMixin from mod supplementaries,pl:mixin:APP:mixins.irons_spellbooks.json:LivingEntityMixin from mod irons_spellbooks,pl:mixin:APP:additional_attributes.mixins.json:LivingEntityMixin from mod additional_attributes,pl:mixin:APP:particle_effects.mixins.json:LivingEntityMixin from mod particle_effects,pl:mixin:APP:improvedmobs.mixins.json:LivingEntityMixin from mod improvedmobs,pl:mixin:APP:mixins.epicfight.json:MixinLivingEntity from mod epicfight,pl:mixin:APP:create.mixins.json:CustomItemUseEffectsMixin from mod create,pl:mixin:APP:create.mixins.json:LavaSwimmingMixin from mod create,pl:mixin:APP:create.mixins.json:accessor.LivingEntityAccessor from mod create,pl:mixin:APP:pehkui.mixins.json:compat115plus.LivingEntityMixin from mod pehkui,pl:mixin:APP:obscure_api.mixins.json:LivingEntityMixin from mod obscure_api,pl:mixin:APP:maxhealthfix.common.mixins.json:MixinLivingEntity from mod maxhealthfix,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinLivingEntity from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.Mob.m_8119_(Mob.java:337) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:mixins.redirected_forge_1.20.1.json:net.minecraft.world.entity.MobMixin from mod redirected,pl:mixin:APP:subtle_effects.mixins.json:common.MobMixin from mod subtle_effects,pl:mixin:APP:fabric-entity-events-v1.mixins.json:MobEntityMixin from mod fabric_entity_events_v1,pl:mixin:APP:lithium.mixins.json:entity.inactive_navigations.MobEntityMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.skip_equipment_change_check.MobEntityMixin from mod radium,pl:mixin:APP:pehkui.mixins.json:MobEntityMixin from mod pehkui,pl:mixin:APP:bookshelf.common.mixins.json:accessors.entity.AccessorMob from mod bookshelf,pl:mixin:APP:despawn_tweaker.mixins.json:MobMixin from mod despawn_tweaker,pl:mixin:APP:otherworldapoth.mixins.json:MobMixin from mod otherworldapoth,pl:mixin:APP:letmedespawn.mixins.json:MobMixin from mod letmedespawn,pl:mixin:APP:endergetic.mixins.json:MobMixin from mod endergetic,pl:mixin:APP:moonlight-common.mixins.json:EntityMixin from mod moonlight,pl:mixin:APP:improvedmobs.mixins.json:MobEntityMixin from mod improvedmobs,pl:mixin:APP:improvedmobs.mixins.json:MobMixin from mod improvedmobs,pl:mixin:APP:mixins.epicfight.json:MixinMob from mod epicfight,pl:mixin:APP:pehkui.mixins.json:compat116plus.MobEntityMixin from mod pehkui,pl:mixin:APP:openpartiesandclaims.forge.mixins.json:MixinForgeMob from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.entity.monster.Zombie.m_8119_(Zombie.java:210) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,xf:fml:forge:forge_method_redirector,pl:connector_pre_launch:A,re:classloading,xf:fml:forge:forge_method_redirector,pl:mixin:APP:pehkui.mixins.json:compat1201minus.EntityVehicleHeightOffsetMixin from mod pehkui,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.level.ServerLevel.m_8647_(ServerLevel.java:694) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:libx:level_load,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,xf:fml:libx:level_load,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin from mod cupboard,pl:mixin:APP:betterendisland.mixins.json:ServerLevelMixin from mod betterendisland,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.faster_structure_location.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:projectile_damage.mixins.json:ServerWorldMixin from mod projectile_damage,pl:mixin:APP:ysns.mixins.json:ServerWorldMixin from mod ysns,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:chunk.entity_class_groups.ServerWorldAccessor from mod radium,pl:mixin:APP:lithium.mixins.json:entity.inactive_navigations.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:profiler.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.entity_movement_tracking.ServerWorldAccessor from mod radium,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin from mod pehkui,pl:mixin:APP:immersive_weathering-common.mixins.json:ServerLevelMixin from mod immersive_weathering,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelAccessor from mod immersive_optimization,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:catchers.ServerWorldMixin from mod neruina,pl:mixin:APP:idas.mixins.json:ServerLevelMixin from mod idas,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel from mod corgilib,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:ServerWorldMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:fabric-api-lookup-api-v1.mixins.json:ServerWorldMixin from mod fabric_api_lookup_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:ServerLevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ServerWorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin from mod blueprint,pl:mixin:APP:endergetic.mixins.json:ServerLevelMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor from mod friendsandfoes,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin from mod friendsandfoes,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin from mod moonlight,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin from mod supplementaries,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor from mod create,pl:mixin:APP:betterendisland.mixins.json:EndergeticExpansionMixins from mod betterendisland,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinServerLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.level.Level.mixinextras$bridge$accept$186(Level.java) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:mixins.redirected_forge_1.20.1.json:forge.net.minecraft.world.level.LevelMixin from mod redirected,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.collisions.intersection.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_entity_retrieval.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_tracking.block_listening.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.chunk_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_block_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_height.WorldMixin from mod radium,pl:mixin:APP:immersive_optimization.mixins.json:LevelMixin from mod immersive_optimization,pl:mixin:APP:alltheleaks.mixins.json:main.LevelMixin from mod alltheleaks,pl:mixin:APP:citadel.mixins.json:LevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:AttachmentTargetsMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:LevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:WorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:neruina.mixins.json:catchers.WorldMixin from mod neruina,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at com.bawnorton.neruina.handler.TickHandler.safelyTickEntities(TickHandler.java:92) ~[Neruina-2.1.2-forge+1.20.1.jar%23574!/:?] {re:mixin,re:classloading}         at net.minecraft.world.level.Level.wrapOperation$cgb000$neruina$catchTickingEntities$notTheCauseOfTickLag(Level.java:8040) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:mixins.redirected_forge_1.20.1.json:forge.net.minecraft.world.level.LevelMixin from mod redirected,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.collisions.intersection.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_entity_retrieval.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_tracking.block_listening.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.chunk_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_block_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_height.WorldMixin from mod radium,pl:mixin:APP:immersive_optimization.mixins.json:LevelMixin from mod immersive_optimization,pl:mixin:APP:alltheleaks.mixins.json:main.LevelMixin from mod alltheleaks,pl:mixin:APP:citadel.mixins.json:LevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:AttachmentTargetsMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:LevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:WorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:neruina.mixins.json:catchers.WorldMixin from mod neruina,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.level.Level.m_46653_(Level.java:479) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:mixins.redirected_forge_1.20.1.json:forge.net.minecraft.world.level.LevelMixin from mod redirected,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:entity.collisions.intersection.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_entity_retrieval.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.block_tracking.block_listening.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.chunk_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_block_access.WorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:world.inline_height.WorldMixin from mod radium,pl:mixin:APP:immersive_optimization.mixins.json:LevelMixin from mod immersive_optimization,pl:mixin:APP:alltheleaks.mixins.json:main.LevelMixin from mod alltheleaks,pl:mixin:APP:citadel.mixins.json:LevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:AttachmentTargetsMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:LevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:WorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:neruina.mixins.json:catchers.WorldMixin from mod neruina,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.level.ServerLevel.m_184063_(ServerLevel.java:343) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:libx:level_load,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,xf:fml:libx:level_load,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin from mod cupboard,pl:mixin:APP:betterendisland.mixins.json:ServerLevelMixin from mod betterendisland,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.faster_structure_location.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:projectile_damage.mixins.json:ServerWorldMixin from mod projectile_damage,pl:mixin:APP:ysns.mixins.json:ServerWorldMixin from mod ysns,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:chunk.entity_class_groups.ServerWorldAccessor from mod radium,pl:mixin:APP:lithium.mixins.json:entity.inactive_navigations.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:profiler.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.entity_movement_tracking.ServerWorldAccessor from mod radium,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin from mod pehkui,pl:mixin:APP:immersive_weathering-common.mixins.json:ServerLevelMixin from mod immersive_weathering,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelAccessor from mod immersive_optimization,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:catchers.ServerWorldMixin from mod neruina,pl:mixin:APP:idas.mixins.json:ServerLevelMixin from mod idas,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel from mod corgilib,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:ServerWorldMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:fabric-api-lookup-api-v1.mixins.json:ServerWorldMixin from mod fabric_api_lookup_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:ServerLevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ServerWorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin from mod blueprint,pl:mixin:APP:endergetic.mixins.json:ServerLevelMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor from mod friendsandfoes,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin from mod friendsandfoes,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin from mod moonlight,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin from mod supplementaries,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor from mod create,pl:mixin:APP:betterendisland.mixins.json:EndergeticExpansionMixins from mod betterendisland,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinServerLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.world.level.entity.EntityTickList.m_156910_(EntityTickList.java:54) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:connector_pre_launch:A,re:classloading,pl:mixin:APP:lithium.mixins.json:collections.entity_ticking.EntityListMixin from mod radium,pl:mixin:APP:immersive_optimization.mixins.json:EntityTickListAccessor from mod immersive_optimization,pl:mixin:APP:alltheleaks.mixins.json:main.EntityTickListMixin from mod alltheleaks,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.level.ServerLevel.m_8793_(ServerLevel.java:323) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {re:mixin,pl:accesstransformer:B,xf:fml:libx:level_load,pl:connector_pre_launch:A,re:classloading,pl:accesstransformer:B,xf:fml:libx:level_load,pl:mixin:APP:cupboard.mixins.json:ServerAddEntityMixin from mod cupboard,pl:mixin:APP:betterendisland.mixins.json:ServerLevelMixin from mod betterendisland,pl:mixin:APP:modernfix-common.mixins.json:bugfix.chunk_deadlock.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.faster_structure_location.ServerLevelMixin from mod modernfix,pl:mixin:APP:modernfix-common.mixins.json:perf.cache_strongholds.ServerLevelMixin from mod modernfix,pl:mixin:APP:projectile_damage.mixins.json:ServerWorldMixin from mod projectile_damage,pl:mixin:APP:ysns.mixins.json:ServerWorldMixin from mod ysns,pl:mixin:APP:lithium.mixins.json:alloc.chunk_random.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:chunk.entity_class_groups.ServerWorldAccessor from mod radium,pl:mixin:APP:lithium.mixins.json:entity.inactive_navigations.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:profiler.ServerWorldMixin from mod radium,pl:mixin:APP:lithium.mixins.json:util.entity_movement_tracking.ServerWorldAccessor from mod radium,pl:mixin:APP:pehkui.mixins.json:compat117plus.ServerWorldMixin from mod pehkui,pl:mixin:APP:immersive_weathering-common.mixins.json:ServerLevelMixin from mod immersive_weathering,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelAccessor from mod immersive_optimization,pl:mixin:APP:immersive_optimization.mixins.json:ServerLevelMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:catchers.ServerWorldMixin from mod neruina,pl:mixin:APP:idas.mixins.json:ServerLevelMixin from mod idas,pl:mixin:APP:corgilib-common.mixins.json:MixinServerLevel from mod corgilib,pl:mixin:APP:citadel.mixins.json:ServerLevelMixin from mod citadel,pl:mixin:APP:fabric-data-attachment-api-v1.mixins.json:ServerWorldMixin from mod fabric_data_attachment_api_v1,pl:mixin:APP:fabric-api-lookup-api-v1.mixins.json:ServerWorldMixin from mod fabric_api_lookup_api_v1,pl:mixin:APP:dataanchor-common.mixins.json:ServerLevelMixin from mod dataanchor,pl:mixin:APP:fabric-lifecycle-events-v1.mixins.json:ServerWorldMixin from mod fabric_lifecycle_events_v1,pl:mixin:APP:blueprint.mixins.json:ServerLevelMixin from mod blueprint,pl:mixin:APP:endergetic.mixins.json:ServerLevelMixin from mod endergetic,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldAccessor from mod friendsandfoes,pl:mixin:APP:friendsandfoes-common.mixins.json:ServerWorldMixin from mod friendsandfoes,pl:mixin:APP:moonlight-common.mixins.json:ServerLevelMixin from mod moonlight,pl:mixin:APP:supplementaries-common.mixins.json:ServerLevelMixin from mod supplementaries,pl:mixin:APP:create.mixins.json:accessor.ServerLevelAccessor from mod create,pl:mixin:APP:betterendisland.mixins.json:EndergeticExpansionMixins from mod betterendisland,pl:mixin:APP:openpartiesandclaims.mixins.json:MixinServerLevel from mod openpartiesandclaims,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.MinecraftServer.m_5703_(MinecraftServer.java:893) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:openpartiesandclaims.mixins.json:MixinMinecraftServer from mod openpartiesandclaims,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:balm.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:fastload.mixins.json:server.MinecraftServerMixin from mod fastload,pl:mixin:APP:immersive_optimization.mixins.json:MinecraftServerMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin from mod neruina,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftServerMixin from mod alltheleaks,pl:mixin:APP:xaerohud.mixins.json:MixinMinecraftServer from mod xaerominimap,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:xaeroworldmap.mixins.json:MixinMinecraftServer from mod xaeroworldmap,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:settlement-roads.mixins.json:ExampleMixin from mod settlement_roads,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.dedicated.DedicatedServer.m_5703_(DedicatedServer.java:283) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:blueprint.mixins.json:DedicatedServerMixin from mod blueprint,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.MinecraftServer.m_5705_(MinecraftServer.java:814) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:openpartiesandclaims.mixins.json:MixinMinecraftServer from mod openpartiesandclaims,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:balm.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:fastload.mixins.json:server.MinecraftServerMixin from mod fastload,pl:mixin:APP:immersive_optimization.mixins.json:MinecraftServerMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin from mod neruina,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftServerMixin from mod alltheleaks,pl:mixin:APP:xaerohud.mixins.json:MixinMinecraftServer from mod xaerominimap,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:xaeroworldmap.mixins.json:MixinMinecraftServer from mod xaeroworldmap,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:settlement-roads.mixins.json:ExampleMixin from mod settlement_roads,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A,pl:connector_pre_launch:A}         at net.minecraft.server.MinecraftServer.m_130011_(MinecraftServer.java:661) ~[server-1.20.1-20230612.114412-srg.jar%23665!/:?] {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:openpartiesandclaims.mixins.json:MixinMinecraftServer from mod openpartiesandclaims,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:balm.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:fastload.mixins.json:server.MinecraftServerMixin from mod fastload,pl:mixin:APP:immersive_optimization.mixins.json:MinecraftServerMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin from mod neruina,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftServerMixin from mod alltheleaks,pl:mixin:APP:xaerohud.mixins.json:MixinMinecraftServer from mod xaerominimap,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:xaeroworldmap.mixins.json:MixinMinecraftServer from mod xaeroworldmap,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:settlement-roads.mixins.json:ExampleMixin from mod settlement_roads,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,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%23665!/:?] {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:openpartiesandclaims.mixins.json:MixinMinecraftServer from mod openpartiesandclaims,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:balm.mixins.json:MinecraftServerMixin from mod balm,pl:mixin:APP:fastload.mixins.json:server.MinecraftServerMixin from mod fastload,pl:mixin:APP:immersive_optimization.mixins.json:MinecraftServerMixin from mod immersive_optimization,pl:mixin:APP:neruina.mixins.json:MinecraftServerMixin from mod neruina,pl:mixin:APP:alltheleaks.mixins.json:main.MinecraftServerMixin from mod alltheleaks,pl:mixin:APP:xaerohud.mixins.json:MixinMinecraftServer from mod xaerominimap,pl:mixin:APP:fabric-message-api-v1.mixins.json:MinecraftServerMixin from mod fabric_message_api_v1,pl:mixin:APP:structureessentials.mixins.json:LevelCreatedCallback from mod structureessentials,pl:mixin:APP:xaeroworldmap.mixins.json:MixinMinecraftServer from mod xaeroworldmap,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:settlement-roads.mixins.json:ExampleMixin from mod settlement_roads,pl:mixin:APP:blueprint.mixins.json:MinecraftServerMixin from mod blueprint,pl:mixin:A,pl:connector_pre_launch:A}         at java.lang.Thread.run(Thread.java:840) ~[?:?] {re:mixin}   I dont know what mod isnt working
    • Remove entity_model_features_1.20.1-forge-3.0.1.jar from your mods folder. If there are other mods that depend on that mod, you may have to remove them also.
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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