[1.8] Создание и регистрация GUI

Решил снова попробовать работу с модами, но вспомнил не решенную проблему: собственно создание и регистрация GUI. Вот код, практически весь выдран мною с сорцев игры, но регистрацию не нашел(она же там не через хандлеры)
Код:
public class ContainerTrademat extends Container {
    
    private IInventory tradematInventoryIn;
    
    public ContainerTrademat(IInventory playerInventory, IInventory tradematInventory)
    {
        this.tradematInventoryIn = tradematInventory;
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++) 
            {
                addSlotToContainer(new Slot(tradematInventory, j + i, 8 + j * 18, 17 + i * 18)); //Trademat contain
            }
        //addSlotToContainer(new Slot(tile, 0, 8, 17)); //Trademat contain
        for (int i = 0; i < 9; i++)
        {
            addSlotToContainer(new Slot(playerInventory, i, 8 + i * 18, 142));
        }
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }
    }
    
    @Override
    public boolean canInteractWith(EntityPlayer playerIn)
    {
        return this.tradematInventoryIn.isUseableByPlayer(playerIn);
    }
    
    @Override
    public ItemStack transferStackInSlot(EntityPlayer playerIn, int index)
    {
        ItemStack itemstack = null;
        Slot slot = (Slot)this.inventorySlots.get(index);

        if (slot != null && slot.getHasStack())
        {
            ItemStack itemstack1 = slot.getStack();
            itemstack = itemstack1.copy();

            if (index < 9)
            {
                if (!this.mergeItemStack(itemstack1, 9, 45, true))
                {
                    return null;
                }
            }
            else if (!this.mergeItemStack(itemstack1, 0, 9, false))
            {
                return null;
            }

            if (itemstack1.stackSize == 0)
            {
                slot.putStack((ItemStack)null);
            }
            else
            {
                slot.onSlotChanged();
            }

            if (itemstack1.stackSize == itemstack.stackSize)
            {
                return null;
            }

            slot.onPickupFromSlot(playerIn, itemstack1);
        }

        return itemstack;
    }

}
Код:
public class GuiTrademat extends GuiContainer {
    
    private static final ResourceLocation GUI_TEXTURE = new ResourceLocation("rt:textures/gui/container/trademat2.png");
    
    private TETrademat tile;
    
    public GuiTrademat(IInventory player, TETrademat te)
    {
        super(new ContainerTrademat(player, te));
        tile = te;
    }
    
    @Override
    protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3)
    {
        int zX = (width - xSize) / 2;
        int zY = (height - ySize) / 2;
        mc.getTextureManager().bindTexture(GUI_TEXTURE);
        drawTexturedModalRect(zX, zY, 0, 0, xSize, ySize);
    }
}
Код:
public class RegularGuiHandler implements IGuiHandler {

    /*public RegularGuiHandler() {
        // TODO Auto-generated constructor stub
    }*/

    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world,
            int x, int y, int z) {
        BlockPos bPos = new BlockPos(x, y, z);
        TileEntity tile = world.getTileEntity(bPos);
        switch (ID) {
        case 1:
            return new ContainerTrademat((IInventory) player, (TETrademat)tile);
        default:
            return null;
        }
    }

    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world,
            int x, int y, int z) {
        BlockPos bPos = new BlockPos(x, y, z);
        TileEntity tile = world.getTileEntity(bPos);
        switch (ID) {
        case 1:
            return new GuiTrademat((IInventory) player, (TETrademat)tile);
        default:
            return null;
        }
    }

}

С моей писаниной при попытке открыть гуи крашится.
Вот лог:
[15:20:42] [main/INFO] [GradleStart]: Extra: []
[15:20:42] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/vovam/.gradle/caches/minecraft/assets, --assetIndex, 1.8, --accessToken{REDACTED}, --version, 1.8, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[15:20:42] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[15:20:42] [main/INFO] [FML]: Forge Mod Loader version 11.14.4.1563 for Minecraft 1.8 loading
[15:20:42] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_66, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_66
[15:20:42] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[15:20:42] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[15:20:42] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[15:20:42] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[15:20:42] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[15:20:42] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[15:20:42] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[15:20:44] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[15:20:44] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[15:20:44] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[15:20:44] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[15:20:44] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[15:20:44] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[15:20:44] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[15:20:45] [Client thread/INFO]: Setting user: Player230
[15:20:48] [Client thread/INFO]: LWJGL Version: 2.9.1
[15:20:49] [Client thread/INFO] [STDOUT]: [net.minecraftforge.fml.client.SplashProgress:start:246]: ---- Minecraft Crash Report ----
// This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~]

Time: 31.12.15 15:20
Description: Loading screen debug info

This is just a prompt for computer specs to be printed. THIS IS NOT A ERROR


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

-- System Details --
Details:
Minecraft Version: 1.8
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_66, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 858650936 bytes (818 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 359.06' Renderer: 'GeForce GTX 760/PCIe/SSE2'
[15:20:49] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization
[15:20:49] [Client thread/INFO] [FML]: MinecraftForge v11.14.4.1563 Initialized
[15:20:49] [Client thread/INFO] [FML]: Replaced 204 ore recipies
[15:20:49] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization
[15:20:49] [Client thread/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
[15:20:49] [Client thread/INFO] [FML]: Searching C:\Users\vovam\Desktop\ModDevKit-1.8\run\mods for mods
[15:20:51] [Client thread/INFO] [FML]: Forge Mod Loader has identified 4 mods to load
[15:20:51] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, RegularThings] at CLIENT
[15:20:51] [Client thread/INFO] [FML]: Attempting connection with missing mods [mcp, FML, Forge, RegularThings] at SERVER
[15:20:52] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Regular Things
[15:20:52] [Client thread/INFO] [FML]: Processing ObjectHolder annotations
[15:20:52] [Client thread/INFO] [FML]: Found 384 ObjectHolder annotations
[15:20:52] [Client thread/INFO] [FML]: Identifying ItemStackHolder annotations
[15:20:52] [Client thread/INFO] [FML]: Found 0 ItemStackHolder annotations
[15:20:52] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0
[15:20:52] [Forge Version Check/INFO] [ForgeVersionCheck]: [Forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
[15:20:52] [Client thread/INFO] [FML]: Applying holder lookups
[15:20:52] [Client thread/INFO] [FML]: Holder lookups applied
[15:20:52] [Client thread/INFO] [FML]: Injecting itemstacks
[15:20:52] [Client thread/INFO] [FML]: Itemstack injection complete
[15:20:52] [Sound Library Loader/INFO]: Starting up SoundSystem...
[15:20:52] [Forge Version Check/INFO] [ForgeVersionCheck]: [Forge] Found status: UP_TO_DATE Target: null
[15:20:52] [Thread-9/INFO]: Initializing LWJGL OpenAL
[15:20:52] [Thread-9/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[15:20:52] [Thread-9/INFO]: OpenAL initialized.
[15:20:53] [Sound Library Loader/INFO]: Sound engine started
[15:20:56] [Client thread/INFO] [FML]: Max texture size: 16384
[15:20:56] [Client thread/INFO]: Created: 16x16 textures-atlas
[15:20:56] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=west not found
[15:20:56] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=north not found
[15:20:56] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=south not found
[15:20:56] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=east not found
[15:20:56] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#inventory not found
[15:20:57] [Client thread/INFO] [FML]: Injecting itemstacks
[15:20:57] [Client thread/INFO] [FML]: Itemstack injection complete
[15:20:57] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 4 mods
[15:20:57] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Regular Things
[15:20:57] [Client thread/INFO]: SoundSystem shutting down...
[15:20:57] [Client thread/WARN]: Author: Paul Lamb, www.paulscode.com
[15:20:57] [Sound Library Loader/INFO]: Starting up SoundSystem...
[15:20:57] [Thread-11/INFO]: Initializing LWJGL OpenAL
[15:20:57] [Thread-11/INFO]: (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
[15:20:57] [Thread-11/INFO]: OpenAL initialized.
[15:20:58] [Sound Library Loader/INFO]: Sound engine started
[15:21:00] [Client thread/INFO] [FML]: Max texture size: 16384
[15:21:00] [Client thread/INFO]: Created: 512x512 textures-atlas
[15:21:00] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=west not found
[15:21:00] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=north not found
[15:21:00] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=south not found
[15:21:00] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#facing=east not found
[15:21:00] [Client thread/ERROR] [FML]: Model definition for location regularthings:trademat#inventory not found
[15:21:06] [Server thread/INFO]: Starting integrated minecraft server version 1.8
[15:21:06] [Server thread/INFO]: Generating keypair
[15:21:06] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance
[15:21:06] [Server thread/INFO] [FML]: Applying holder lookups
[15:21:06] [Server thread/INFO] [FML]: Holder lookups applied
[15:21:06] [Server thread/INFO] [FML]: Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@3c332cf3)
[15:21:06] [Server thread/INFO] [FML]: Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@3c332cf3)
[15:21:06] [Server thread/INFO] [FML]: Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@3c332cf3)
[15:21:06] [Server thread/INFO]: Preparing start region for level 0
[15:21:07] [Server thread/INFO]: Changing view distance to 12, from 10
[15:21:08] [Netty Local Client IO #0/INFO] [FML]: Server protocol version 2
[15:21:08] [Netty Server IO #1/INFO] [FML]: Client protocol version 2
[15:21:08] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 4 mods : [email protected],[email protected],[email protected],[email protected]
[15:21:08] [Netty Local Client IO #0/INFO] [FML]: [Netty Local Client IO #0] Client side modded connection established
[15:21:08] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established
[15:21:08] [Server thread/INFO]: Player230[local:E:5784b416] logged in with entity id 177 at (1447.9165086729356, 4.0, 96.19029170081883)
[15:21:08] [Server thread/INFO]: Player230 joined the game
[15:21:10] [Server thread/INFO]: Stopping server
[15:21:10] [Server thread/INFO]: Saving players
[15:21:10] [Server thread/INFO]: Saving worlds
[15:21:10] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
[15:21:10] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
[15:21:10] [Server thread/INFO]: Saving chunks for level 'New World'/The End
[15:21:11] [Server thread/INFO] [FML]: Unloading dimension 0
[15:21:11] [Server thread/INFO] [FML]: Unloading dimension -1
[15:21:11] [Server thread/INFO] [FML]: Unloading dimension 1
[15:21:11] [Server thread/INFO] [FML]: Applying holder lookups
[15:21:11] [Server thread/INFO] [FML]: Holder lookups applied
[15:21:11] [Client thread/FATAL]: Unreported exception thrown!
java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.inventory.IInventory
at ru.vovamaster99.rt.handlers.RegularGuiHandler.getClientGuiElement(RegularGuiHandler.java:39) ~[RegularGuiHandler.class:?]
at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:266) ~[NetworkRegistry.class:?]
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:102) ~[FMLNetworkHandler.class:?]
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2579) ~[EntityPlayer.class:?]
at ru.vovamaster99.rt.blocks.Trademat.onBlockActivated(Trademat.java:38) ~[Trademat.class:?]
at net.minecraft.client.multiplayer.PlayerControllerMP.func_178890_a(PlayerControllerMP.java:416) ~[PlayerControllerMP.class:?]
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1571) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2142) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1087) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:376) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_66]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_66]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?]
[15:21:11] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:663]: ---- Minecraft Crash Report ----
// This doesn't make any sense!

Time: 31.12.15 15:21
Description: Unexpected error

java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.inventory.IInventory
at ru.vovamaster99.rt.handlers.RegularGuiHandler.getClientGuiElement(RegularGuiHandler.java:39)
at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:266)
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:102)
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2579)
at ru.vovamaster99.rt.blocks.Trademat.onBlockActivated(Trademat.java:38)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_178890_a(PlayerControllerMP.java:416)
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1571)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:2142)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1087)
at net.minecraft.client.Minecraft.run(Minecraft.java:376)
at net.minecraft.client.main.Main.main(Main.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)


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

-- Head --
Stacktrace:
at ru.vovamaster99.rt.handlers.RegularGuiHandler.getClientGuiElement(RegularGuiHandler.java:39)
at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:266)
at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:102)
at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2579)
at ru.vovamaster99.rt.blocks.Trademat.onBlockActivated(Trademat.java:38)
at net.minecraft.client.multiplayer.PlayerControllerMP.func_178890_a(PlayerControllerMP.java:416)
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1571)

-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player230'/177, l='MpServer', x=1447,92, y=4,00, z=96,19]]
Chunk stats: MultiplayerChunkCache: 270, 270
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options:
Level spawn location: 1457,00,4,00,103,00 - World: (1457,4,103), Chunk: (at 1,0,7 in 91,6; contains blocks 1456,0,96 to 1471,255,111), Region: (2,0; contains chunks 64,0 to 95,31, blocks 1024,0,0 to 1535,255,511)
Level time: 1363 game time, 1363 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: 100 total; [EntitySlime['Slime'/19, l='MpServer', x=1372,94, y=4,00, z=57,47], EntitySlime['Slime'/20, l='MpServer', x=1374,53, y=4,02, z=82,31], EntityVillager['Villager'/21, l='MpServer', x=1370,50, y=5,00, z=123,50], EntityVillager['Villager'/22, l='MpServer', x=1375,50, y=5,00, z=136,50], EntitySlime['Slime'/24, l='MpServer', x=1375,91, y=5,16, z=59,72], EntityVillager['Villager'/25, l='MpServer', x=1397,72, y=5,00, z=73,44], EntitySlime['Slime'/26, l='MpServer', x=1389,09, y=5,16, z=66,22], EntitySlime['Slime'/27, l='MpServer', x=1387,66, y=4,02, z=94,22], EntityVillager['Villager'/28, l='MpServer', x=1391,50, y=5,00, z=108,50], EntitySheep['Sheep'/29, l='MpServer', x=1390,09, y=4,00, z=101,16], EntityVillager['Villager'/30, l='MpServer', x=1381,22, y=4,00, z=105,06], EntityVillager['Villager'/31, l='MpServer', x=1378,50, y=5,00, z=107,50], EntityVillager['Villager'/32, l='MpServer', x=1388,69, y=4,00, z=112,00], EntityVillager['Villager'/33, l='MpServer', x=1378,50, y=5,00, z=118,56], EntityVillager['Villager'/34, l='MpServer', x=1387,50, y=5,00, z=136,50], EntityVillager['Villager'/35, l='MpServer', x=1379,50, y=5,00, z=128,50], EntityVillager['Villager'/36, l='MpServer', x=1386,50, y=5,00, z=136,50], EntitySlime['Slime'/37, l='MpServer', x=1405,09, y=4,00, z=29,38], EntitySheep['Sheep'/38, l='MpServer', x=1402,78, y=4,00, z=51,50], EntitySheep['Sheep'/39, l='MpServer', x=1400,16, y=4,00, z=54,03], EntitySheep['Sheep'/40, l='MpServer', x=1401,25, y=4,00, z=53,13], EntitySheep['Sheep'/41, l='MpServer', x=1397,50, y=4,00, z=55,50], EntityItem['item.item.potatoPoisonous'/43, l='MpServer', x=1395,81, y=5,00, z=76,94], EntityVillager['Villager'/44, l='MpServer', x=1406,50, y=5,00, z=74,56], EntitySlime['Slime'/45, l='MpServer', x=1399,31, y=5,00, z=74,75], EntityItem['item.tile.torch'/46, l='MpServer', x=1399,59, y=4,00, z=94,72], EntitySheep['Sheep'/47, l='MpServer', x=1406,72, y=4,00, z=91,50], EntityVillager['Villager'/48, l='MpServer', x=1406,50, y=5,00, z=93,50], EntityVillager['Villager'/49, l='MpServer', x=1406,50, y=5,00, z=86,50], EntityCow['Cow'/50, l='MpServer', x=1393,94, y=5,00, z=95,09], EntityVillager['Villager'/51, l='MpServer', x=1398,50, y=5,00, z=86,50], EntityVillager['Villager'/52, l='MpServer', x=1395,28, y=4,00, z=105,81], EntityCow['Cow'/53, l='MpServer', x=1398,50, y=4,00, z=102,50], EntityVillager['Villager'/54, l='MpServer', x=1396,66, y=5,00, z=101,94], EntityVillager['Villager'/55, l='MpServer', x=1405,88, y=5,00, z=119,41], EntityVillager['Villager'/56, l='MpServer', x=1403,81, y=5,00, z=122,28], EntitySheep['Sheep'/57, l='MpServer', x=1404,22, y=5,00, z=123,47], EntityVillager['Villager'/58, l='MpServer', x=1403,50, y=5,00, z=128,50], EntitySlime['Slime'/59, l='MpServer', x=1407,84, y=4,00, z=145,78], EntityPig['Pig'/60, l='MpServer', x=1407,44, y=4,00, z=130,91], EntityVillager['Villager'/61, l='MpServer', x=1392,50, y=5,00, z=147,50], EntityVillager['Villager'/62, l='MpServer', x=1406,25, y=4,00, z=149,56], EntityVillager['Villager'/63, l='MpServer', x=1399,50, y=6,00, z=158,19], EntityVillager['Villager'/64, l='MpServer', x=1392,47, y=5,00, z=164,56], EntitySlime['Slime'/65, l='MpServer', x=1415,88, y=4,09, z=32,78], EntityCow['Cow'/66, l='MpServer', x=1417,81, y=4,00, z=95,88], EntitySheep['Sheep'/67, l='MpServer', x=1412,50, y=4,00, z=100,50], EntityCow['Cow'/68, l='MpServer', x=1421,69, y=4,00, z=103,78], EntityVillager['Villager'/69, l='MpServer', x=1415,50, y=5,00, z=108,50], EntityPlayerSP['Player230'/177, l='MpServer', x=1447,92, y=4,00, z=96,19], EntityCow['Cow'/70, l='MpServer', x=1414,50, y=4,00, z=97,50], EntitySheep['Sheep'/71, l='MpServer', x=1410,53, y=4,00, z=124,41], EntityVillager['Villager'/72, l='MpServer', x=1415,50, y=5,00, z=119,50], EntityPig['Pig'/73, l='MpServer', x=1410,44, y=4,00, z=125,53], EntitySlime['Slime'/74, l='MpServer', x=1411,03, y=4,02, z=135,19], EntitySlime['Slime'/75, l='MpServer', x=1427,44, y=4,02, z=143,13], EntitySlime['Slime'/76, l='MpServer', x=1415,09, y=4,02, z=145,84], EntityChicken['Chicken'/80, l='MpServer', x=1434,50, y=4,00, z=28,50], EntitySlime['Slime'/81, l='MpServer', x=1428,41, y=4,00, z=31,72], EntitySlime['Slime'/82, l='MpServer', x=1432,47, y=4,02, z=36,66], EntityChicken['Chicken'/83, l='MpServer', x=1431,09, y=4,00, z=40,72], EntitySlime['Slime'/84, l='MpServer', x=1426,97, y=5,22, z=33,31], EntityChicken['Chicken'/85, l='MpServer', x=1436,09, y=4,00, z=32,00], EntityChicken['Chicken'/86, l='MpServer', x=1430,19, y=4,00, z=39,94], EntitySlime['Slime'/87, l='MpServer', x=1438,88, y=4,00, z=57,31], EntitySlime['Slime'/88, l='MpServer', x=1437,75, y=5,22, z=54,53], EntitySlime['Slime'/89, l='MpServer', x=1436,72, y=4,02, z=62,63], EntitySlime['Slime'/90, l='MpServer', x=1431,72, y=4,00, z=68,25], EntitySlime['Slime'/91, l='MpServer', x=1422,03, y=5,16, z=116,38], EntitySlime['Slime'/96, l='MpServer', x=1446,72, y=4,02, z=43,66], EntitySlime['Slime'/97, l='MpServer', x=1449,88, y=4,02, z=57,97], EntitySlime['Slime'/98, l='MpServer', x=1456,03, y=5,00, z=78,16], EntitySlime['Slime'/99, l='MpServer', x=1451,44, y=4,42, z=72,88], EntitySlime['Slime'/100, l='MpServer', x=1449,56, y=4,02, z=166,66], EntitySlime['Slime'/102, l='MpServer', x=1451,69, y=4,02, z=169,09], EntityRabbit['Rabbit'/110, l='MpServer', x=1461,34, y=4,00, z=24,88], EntitySheep['Sheep'/111, l='MpServer', x=1460,44, y=4,00, z=23,72], EntitySheep['Sheep'/112, l='MpServer', x=1462,50, y=4,00, z=24,03], EntitySheep['Sheep'/113, l='MpServer', x=1463,28, y=4,00, z=25,44], EntityPig['Pig'/114, l='MpServer', x=1465,69, y=4,00, z=41,88], EntityPig['Pig'/115, l='MpServer', x=1463,28, y=4,00, z=41,97], EntitySlime['Slime'/116, l='MpServer', x=1464,19, y=4,02, z=47,38], EntitySlime['Slime'/117, l='MpServer', x=1464,97, y=4,02, z=69,63], EntitySlime['Slime'/118, l='MpServer', x=1455,81, y=4,00, z=67,38], EntitySlime['Slime'/119, l='MpServer', x=1455,63, y=5,00, z=93,78], EntityPig['Pig'/123, l='MpServer', x=1479,78, y=4,00, z=47,38], EntityPig['Pig'/124, l='MpServer', x=1472,81, y=4,00, z=37,78], EntitySlime['Slime'/125, l='MpServer', x=1479,09, y=4,02, z=58,88], EntitySlime['Slime'/126, l='MpServer', x=1476,28, y=4,02, z=68,13], EntitySlime['Slime'/127, l='MpServer', x=1486,22, y=4,47, z=110,22], EntitySlime['Slime'/128, l='MpServer', x=1479,84, y=4,02, z=121,16], EntitySlime['Slime'/130, l='MpServer', x=1490,31, y=4,00, z=78,59], EntityRabbit['Rabbit'/131, l='MpServer', x=1499,22, y=4,00, z=163,63], EntityRabbit['Rabbit'/132, l='MpServer', x=1495,56, y=4,00, z=160,53], EntityRabbit['Rabbit'/133, l='MpServer', x=1501,03, y=4,00, z=165,50], EntityRabbit['Rabbit'/134, l='MpServer', x=1500,44, y=4,00, z=172,69], EntitySlime['Slime'/140, l='MpServer', x=1510,53, y=4,02, z=15,22], EntitySlime['Slime'/141, l='MpServer', x=1507,88, y=4,00, z=52,31], EntitySlime['Slime'/142, l='MpServer', x=1519,19, y=4,02, z=78,13], EntitySlime['Slime'/143, l='MpServer', x=1518,94, y=4,00, z=56,34]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:392)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2614)
at net.minecraft.client.Minecraft.run(Minecraft.java:405)
at net.minecraft.client.main.Main.main(Main.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)

-- System Details --
Details:
Minecraft Version: 1.8
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_66, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 641573696 bytes (611 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.10 FML v8.0.99.99 Minecraft Forge 11.14.4.1563 4 mods loaded, 4 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.8-11.14.4.1563.jar)
UCHIJAAAA Forge{11.14.4.1563} [Minecraft Forge] (forgeSrc-1.8-11.14.4.1563.jar)
UCHIJAAAA RegularThings{1.0} [Regular Things] (bin)
Loaded coremods (and transformers):
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.5.0 NVIDIA 359.06' Renderer: 'GeForce GTX 760/PCIe/SSE2'
Launched Version: 1.8
LWJGL: 2.9.1
OpenGL: GeForce GTX 760/PCIe/SSE2 GL version 4.5.0 NVIDIA 359.06, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.

Using VBOs: No
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: English (US)
Profiler Position: N/A (disabled)
[15:21:11] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:663]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\vovam\Desktop\ModDevKit-1.8\run\.\crash-reports\crash-2015-12-31_15.21.11-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
 

timaxa007

Модератор
5,831
409
672
Vova_master написал(а):
Код:
java.lang.ClassCastException: net.minecraft.client.entity.EntityPlayerSP cannot be cast to net.minecraft.inventory.IInventory
    at ru.vovamaster99.rt.handlers.RegularGuiHandler.getClientGuiElement(RegularGuiHandler.java:39)
Класс игрока не может быть IInventory. На 1.7.х (а на 1.8.х я не знаю как)
Код:
player.inventory
Место твоего:
Код:
(IInventory) player
 
Так, буду теперь эти "костыли" чистить. Так же вот такая проблема мучает с 1.7 еще (Видео). Создаю слоты циклом, если каждый по отдельности - все нормально работает. Спасибо за ответ, Тима.
 
Правочка - отзеркаливание слотов пофиксил. Окончательно выдрал код из контейнера раздатчика. Самое интересное, что мой и моджанговский код почти идентичны.
Код:
public ContainerTrademat(IInventory playerInventory, IInventory tradematInventory)
    {
        this.tradematInventoryIn = tradematInventory;
        int i;
        int j;

        /*for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++) 
            {
                addSlotToContainer(new Slot(tradematInventory, j + i, 8 + j * 18, 17 + i * 18)); //Trademat contain
            }
        //addSlotToContainer(new Slot(tile, 0, 8, 17)); //Trademat contain
        for (int i = 0; i < 9; i++)
        {
            addSlotToContainer(new Slot(playerInventory, i, 8 + i * 18, 142));
        }
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }*/
        
        for (i = 0; i < 3; ++i)
        {
            for (j = 0; j < 3; ++j)
            {
                this.addSlotToContainer(new Slot(tradematInventory, j + i * 3, 62 + j * 18, 17 + i * 18));
            }
        }

        for (i = 0; i < 3; ++i)
        {
            for (j = 0; j < 9; ++j)
            {
                this.addSlotToContainer(new Slot(playerInventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
            }
        }

        for (i = 0; i < 9; ++i)
        {
            this.addSlotToContainer(new Slot(playerInventory, i, 8 + i * 18, 142));
        }
    }

ПыСы - код так и просит "убейте меня". Зря я не послушал совета из книги по яп. Предупреждали же про значение расположения ++
 
1,990
18
105
Попроси убить себя ещё раз. В данном случае расположение знака инкремента роли не играет.
Как присваивается ID в твоём коде:
Код:
j + i
Как присваивается ID в можанг-коде:
Код:
j + i * 3
У тебя он может повторяться (что будет проявляться в дублирующихся слотах и куче багов - т.е. твоём "отзеркаливании"), у них - нет.
 
Oldestkon написал(а):
Попроси убить себя ещё раз. В данном случае расположение знака инкремента роли не играет.
Как присваивается ID в твоём коде:
Код:
j + i
Как присваивается ID в можанг-коде:
Код:
j + i * 3
У тебя он может повторяться (что будет проявляться в дублирующихся слотах и куче багов - т.е. твоём "отзеркаливании"), у них - нет.
Хм. Но ведь это не отменяет того, что при наличии 2 одинаковых циклов зеркалка пойдет, верно?
 
1,990
18
105
Твоя "зеркалка" - результат дублирующихся ID. Слоты ссылаются на один и тот же предмет.
Я уже сказал где была ошибка.
Какой смысл в этих всех крутых книжках, откуда вы берете инфу (например про пост\пре инкремент), если вы даже их трактуете неправильно?
 
Не считая того, что я додик? Я понял про дублирующиеся id и почему в моджанговском коде этого не будет. в своем цикле я создавал переменные j и i только для определенных циклов, а не для всего класса. Я уже не спрашивал почему зеркалка идет
 
Сверху