Jump to content

[Solved][1.11.2]Problem with Container Class


Yurim64

Recommended Posts

Hi guys, I have a problem when I try to quickly place an item in my container inventory.

This is the error code that generates me
 

Spoiler

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
    at net.minecraft.inventory.Container.transferStackInSlot(Container.java:143)
    at net.minecraft.inventory.Container.slotClick(Container.java:261)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)
    at net.minecraft.inventory.Container.retrySlotClick(Container.java:516)
    at net.minecraft.inventory.Container.slotClick(Container.java:270)

-- Affected screen --
Details:
    Screen name: com.yurim.utmod.client.gui.GuiDrill
Stacktrace:
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1797)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1119)
    at net.minecraft.client.Minecraft.run(Minecraft.java:407)
    at net.minecraft.client.main.Main.main(Main.java:118)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:26)

-- Affected level --
Details:
    Level name: MpServer
    All players: 1 total; [EntityPlayerSP['Player568'/0, l='MpServer', x=-488.74, y=56.00, z=-1141.15]]
    Chunk stats: MultiplayerChunkCache: 599, 599
    Level seed: 0
    Level generator: ID 01 - flat, ver 0. Features enabled: false
    Level generator options: 
    Level spawn location: World: (-489,4,-1155), Chunk: (at 7,0,13 in -31,-73; contains blocks -496,0,-1168 to -481,255,-1153), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025)
    Level time: 5947 game time, 1000 day time
    Level dimension: 0
    Level storage version: 0x00000 - Unknown?
    Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
    Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
    Forced entities: 1 total; [EntityPlayerSP['Player568'/0, l='MpServer', x=-488.74, y=56.00, z=-1141.15]]
    Retry entities: 0 total; []
    Server brand: fml,forge
    Server type: Integrated singleplayer server

 

And thi is the GuiDrill Class and the ContainerDrill class

 

Spoiler

public class GuiDrill extends GuiContainer {

    private IInventory playerInv;
    private TileEntityDrill te;

    public GuiDrill(IInventory playerInv, TileEntityDrill te) {
        super(new ContainerDrill(playerInv, te));
        this.xSize = 256;
        this.ySize = 256;
        this.guiLeft = 222;
        this.guiTop = 114;
        this.playerInv = playerInv;
        this.te = te;
    }

    @Override
    public void initGui() {
        super.initGui();
        this.buttonList.add(new FacingButton());
        this.buttonList.get(0).displayString = getFace();
    }

    private String getFace() {
        switch (te.type) {
        case 0:
            return "Down";
        case 1:
            return "Up";
        case 2:
            return "West";
        case 3:
            return "East";
        case 4:
            return "North";
        case 5:
            return "South";
        }
        throw new IllegalArgumentException("Invalid Type");
    }

    @Override
    public void actionPerformed(GuiButton button) throws IOException {
        if (button.id == 0) {
            FacingButton b = (FacingButton) button;
            switch (te.type) {
            case 0:
                te.type = 1;
                b.displayString = "Up";
                break;
            case 1:
                te.type = 2;
                b.displayString = "West";
                break;
            case 2:
                te.type = 3;
                b.displayString = "East";
                break;
            case 3:
                te.type = 4;
                b.displayString = "North";
                break;
            case 4:
                te.type = 5;
                b.displayString = "South";
                break;
            case 5:
                te.type = 0;
                b.displayString = "Down";
                break;
            }
        }
        super.actionPerformed(button);
    }

    @Override
    protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
        this.mc.getTextureManager()
                .bindTexture(new ResourceLocation(References.MODID, "textures/gui/container/drill.png"));
        this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, this.xSize, this.ySize);
    }

    public static class FacingButton extends GuiButton {

        public FacingButton() {
            super(0, 300, 5, 245 - 180, 20, "Down");
        }

    }

}
 

Spoiler

public class ContainerDrill extends Container {

    private IInventory playerInv;
    private TileEntityDrill te;

    public ContainerDrill(IInventory playerInv, TileEntityDrill te) {
        this.playerInv = playerInv;
        this.te = te;
        this.generateSlot();
        for (int l = 0; l < 3; ++l) {
            for (int j1 = 0; j1 < 9; ++j1) {
                this.addSlotToContainer(new Slot(playerInv, j1 + l * 9 + 9, 8 + j1 * 18, 84 + l * 18));
            }
        }
        for (int i1 = 0; i1 < 9; ++i1) {
            this.addSlotToContainer(new Slot(playerInv, i1, 8 + i1 * 18, 142));
        }
    }

    private void generateSlot() {
        IItemHandler handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
        for (int i = 0; i < 9; i++) {
            this.addSlotToContainer(new SlotItemHandler(handler, i, 8 + (i * 18), 18));
        }
        for (int i = 0; i < 9; i++) {
            this.addSlotToContainer(new SlotItemHandler(handler, i + 9, 8 + (i * 18), 36));
        }
        for (int i = 0; i < 9; i++) {
            this.addSlotToContainer(new SlotItemHandler(handler, i + 18, 8 + (i * 18), 54));
        }
    }

    @Override
    public boolean canInteractWith(EntityPlayer playerIn) {
        return true;
    }

}

 

Edited by Yurim64
Link to comment
Share on other sites

  • Like 1

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.

Link to comment
Share on other sites

Join the conversation

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

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

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

×   Your previous content has been restored.   Clear editor

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

Announcements



×
×
  • Create New...

Important Information

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