Как получить количество заполненных слотов?

Версия Minecraft
1.12.2
5,018
47
783
Собсно, вопрос в названии. Мне нужно как то получить сколько слотов в инвентаре игрока заполнено.
Хочу сделать что то наподобии Тимахиной системы веса, только в его коде я не разобрался, чего то он там слишком сложно наворотил всего, хочу по своему сделать...
 
5,018
47
783
Теперь еще бы гайд про рюкзаки найти... Чет из тимахиного с 1.7 у меня не получается переделать(( Крашится вот
Код:
java.lang.NullPointerException: null
    at com.lg.realism.Items.BackPacks.Container.ContainerBackpack.<init>(ContainerBackpack.java:27) ~[ContainerBackpack.class:?]
    at com.lg.realism.Items.BackPacks.Gui.GuiBackpack.<init>(GuiBackpack.java:20) ~[GuiBackpack.class:?]
    at com.lg.realism.fire.GuiHandler.getClientGuiElement(GuiHandler.java:33) ~[GuiHandler.class:?]
    at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:277) ~[NetworkRegistry.class:?]
    at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:110) ~[FMLNetworkHandler.class:?]
    at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2809) ~[EntityPlayer.class:?]
    at com.lg.realism.Items.BackPacks.ItemBackpack.onItemRightClick(ItemBackpack.java:22) ~[ItemBackpack.class:?]
    at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:234) ~[ItemStack.class:?]
    at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClick(PlayerControllerMP.java:543) ~[PlayerControllerMP.class:?]
    at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1710) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:441) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
    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_151]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_151]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_151]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:26) [start/:?]
[13:28:42] [main/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:630]: ---- Minecraft Crash Report ----
// Hey, that tickles! Hehehe!

Time: 12/24/17 1:28 PM
Description: Unexpected error

java.lang.NullPointerException: Unexpected error
    at com.lg.realism.Items.BackPacks.Container.ContainerBackpack.<init>(ContainerBackpack.java:27)
    at com.lg.realism.Items.BackPacks.Gui.GuiBackpack.<init>(GuiBackpack.java:20)
    at com.lg.realism.fire.GuiHandler.getClientGuiElement(GuiHandler.java:33)
    at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:277)
    at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:110)
    at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2809)
    at com.lg.realism.Items.BackPacks.ItemBackpack.onItemRightClick(ItemBackpack.java:22)
    at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:234)
    at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClick(PlayerControllerMP.java:543)
    at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1710)
    at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186)
    at net.minecraft.client.Minecraft.run(Minecraft.java:441)
    at net.minecraft.client.main.Main.main(Main.java:118)
    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(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:26)


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

-- Head --
Thread: Client thread
Stacktrace:
    at com.lg.realism.Items.BackPacks.Container.ContainerBackpack.<init>(ContainerBackpack.java:27)
    at com.lg.realism.Items.BackPacks.Gui.GuiBackpack.<init>(GuiBackpack.java:20)
    at com.lg.realism.fire.GuiHandler.getClientGuiElement(GuiHandler.java:33)
    at net.minecraftforge.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:277)
    at net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:110)
    at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2809)
    at com.lg.realism.Items.BackPacks.ItemBackpack.onItemRightClick(ItemBackpack.java:22)
    at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:234)
    at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClick(PlayerControllerMP.java:543)
    at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1710)
    at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
    at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)

-- Affected level --
Details:
    Level name: MpServer
    All players: 1 total; [EntityPlayerSP['Player321'/163, l='MpServer', x=-122.64, y=4.00, z=-1007.67]]
    Chunk stats: MultiplayerChunkCache: 557, 557
    Level seed: 0
    Level generator: ID 01 - flat, ver 0. Features enabled: false
    Level generator options:
    Level spawn location: World: (-126,4,-1010), Chunk: (at 2,0,14 in -8,-64; contains blocks -128,0,-1024 to -113,255,-1009), Region: (-1,-2; contains chunks -32,-64 to -1,-33, blocks -512,0,-1024 to -1,255,-513)
    Level time: 3451 game time, 3451 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: 62 total; [EntitySlime['Слизень'/128, l='MpServer', x=-76.41, y=4.00, z=-1059.61], EntitySheep['Овца'/129, l='MpServer', x=-66.50, y=4.00, z=-1032.99], EntityCow['Корова'/130, l='MpServer', x=-65.50, y=4.00, z=-1027.50], EntitySlime['Слизень'/135, l='MpServer', x=-63.38, y=5.17, z=-1087.11], EntitySheep['Овца'/136, l='MpServer', x=-62.90, y=4.00, z=-1025.90], EntityCow['Корова'/137, l='MpServer', x=-62.50, y=4.00, z=-1024.50], EntitySlime['Слизень'/138, l='MpServer', x=-43.74, y=4.00, z=-981.00], EntitySlime['Слизень'/139, l='MpServer', x=-54.29, y=4.95, z=-970.07], EntitySlime['Слизень'/154, l='MpServer', x=-52.36, y=4.00, z=-1000.15], EntitySlime['Слизень'/156, l='MpServer', x=-44.46, y=4.33, z=-963.03], EntitySlime['Слизень'/673, l='MpServer', x=-93.44, y=4.00, z=-1020.31], EntitySlime['Слизень'/47, l='MpServer', x=-201.55, y=4.61, z=-1017.40], EntitySlime['Слизень'/48, l='MpServer', x=-197.01, y=4.00, z=-1004.53], EntitySlime['Слизень'/50, l='MpServer', x=-196.05, y=4.61, z=-960.80], EntitySlime['Слизень'/51, l='MpServer', x=-195.22, y=4.53, z=-933.55], EntitySlime['Слизень'/52, l='MpServer', x=-184.11, y=4.00, z=-946.65], EntitySlime['Слизень'/55, l='MpServer', x=-181.46, y=4.61, z=-1016.04], EntitySlime['Слизень'/56, l='MpServer', x=-186.87, y=4.00, z=-937.07], EntitySheep['Овца'/57, l='MpServer', x=-165.03, y=4.00, z=-1051.79], EntitySlime['Слизень'/58, l='MpServer', x=-163.73, y=4.72, z=-978.43], EntitySlime['Слизень'/59, l='MpServer', x=-167.53, y=5.17, z=-980.07], EntitySlime['Слизень'/60, l='MpServer', x=-168.02, y=4.95, z=-975.19], EntitySlime['Слизень'/61, l='MpServer', x=-161.91, y=4.72, z=-962.15], EntitySlime['Слизень'/62, l='MpServer', x=-174.34, y=4.00, z=-952.44], EntityChicken['Курица'/64, l='MpServer', x=-145.30, y=4.00, z=-1078.15], EntityCow['Корова'/65, l='MpServer', x=-145.20, y=4.00, z=-1075.38], EntityChicken['Курица'/66, l='MpServer', x=-151.30, y=4.00, z=-1075.11], EntityHorse['Лошадь'/67, l='MpServer', x=-147.78, y=4.00, z=-1048.72], EntityHorse['Лошадь'/68, l='MpServer', x=-151.89, y=4.00, z=-1053.28], EntityHorse['Лошадь'/69, l='MpServer', x=-156.20, y=4.00, z=-1054.64], EntitySheep['Овца'/70, l='MpServer', x=-144.50, y=4.00, z=-1048.50], EntitySlime['Слизень'/71, l='MpServer', x=-154.60, y=4.00, z=-1057.50], EntitySheep['Овца'/72, l='MpServer', x=-155.79, y=4.00, z=-1026.49], EntitySheep['Овца'/73, l='MpServer', x=-154.21, y=4.00, z=-1034.40], EntityPig['Свинья'/74, l='MpServer', x=-151.53, y=4.00, z=-1037.18], EntitySlime['Слизень'/75, l='MpServer', x=-149.46, y=4.00, z=-979.37], EntitySlime['Слизень'/76, l='MpServer', x=-163.15, y=4.00, z=-955.66], EntityCow['Корова'/78, l='MpServer', x=-140.29, y=4.00, z=-1075.90], EntitySlime['Слизень'/79, l='MpServer', x=-134.86, y=5.08, z=-997.05], EntitySlime['Слизень'/80, l='MpServer', x=-148.66, y=4.33, z=-990.14], EntitySlime['Слизень'/81, l='MpServer', x=-138.74, y=4.00, z=-947.19], EntitySlime['Слизень'/94, l='MpServer', x=-110.70, y=4.00, z=-1063.80], EntitySlime['Слизень'/95, l='MpServer', x=-114.14, y=4.00, z=-1052.13], EntityPig['Свинья'/96, l='MpServer', x=-97.62, y=4.00, z=-938.70], EntityPig['Свинья'/97, l='MpServer', x=-107.50, y=4.00, z=-940.50], EntityPig['Свинья'/98, l='MpServer', x=-100.75, y=4.00, z=-943.33], EntityPig['Свинья'/99, l='MpServer', x=-104.59, y=4.00, z=-944.31], EntitySlime['Слизень'/111, l='MpServer', x=-84.41, y=4.67, z=-1067.18], EntitySlime['Слизень'/112, l='MpServer', x=-86.09, y=4.95, z=-1023.97], EntitySlime['Слизень'/113, l='MpServer', x=-95.76, y=4.61, z=-1014.76], EntitySlime['Слизень'/114, l='MpServer', x=-76.00, y=4.61, z=-1003.48], EntitySlime['Слизень'/115, l='MpServer', x=-92.09, y=4.00, z=-1003.99], EntitySlime['Слизень'/116, l='MpServer', x=-90.80, y=5.10, z=-986.83], EntityPlayerSP['Player321'/163, l='MpServer', x=-122.64, y=4.00, z=-1007.67], EntitySlime['Слизень'/117, l='MpServer', x=-87.81, y=4.00, z=-971.04], EntitySlime['Слизень'/118, l='MpServer', x=-101.87, y=4.72, z=-937.08], EntitySlime['Слизень'/122, l='MpServer', x=-73.37, y=4.00, z=-1087.59], EntitySlime['Слизень'/123, l='MpServer', x=-72.14, y=4.14, z=-1076.78], EntitySlime['Слизень'/124, l='MpServer', x=-74.59, y=4.00, z=-1079.67], EntitySlime['Слизень'/125, l='MpServer', x=-68.03, y=4.00, z=-1078.26], EntitySlime['Слизень'/126, l='MpServer', x=-72.48, y=4.92, z=-1086.12], EntitySlime['Слизень'/127, l='MpServer', x=-75.92, y=4.00, z=-1071.47]]
    Retry entities: 0 total; []
    Server brand: fml,forge
    Server type: Integrated singleplayer server
Stacktrace:
    at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:461)
    at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2897)
    at net.minecraft.client.Minecraft.run(Minecraft.java:470)
    at net.minecraft.client.main.Main.main(Main.java:118)
    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(GradleStartCommon.java:97)
    at GradleStart.main(GradleStart.java:26)
В каком вот мне месте проверку на null делать?...
 
5,018
47
783
5,018
47
783
Java:
                int full = 0;
            for (int i = 0; i < player.inventory.mainInventory.length; i++) {
                if (player.inventory.getStackInSlot(i) != null) {
                    full++;
                }
            }
Кстати, в 1.12.2 нету
for (int i = 0; i < player.inventory.mainInventory.length; i++) {
Предложите другое плез)
 
5,018
47
783
Так жеш посмотреть можно, что там есть...Там не массив уже, а список, поэтому size(). Ну и название может другое, или методом каким-то достается...
Java:
player.inventory.getSizeInventory()
Это я нашел. Проблема в том, что он просто получает размер инвентаря и плюсует full до 36, после чего любые изменения ему по барабану
 
Сверху