A la limite c’est pas très grave si elle est exécutée un peu plus. En fait, j’aurai bien voulu qu’elle soit exécuté en permanence, mais ça pomperait de la ressource serveur. Mais là vu que tu me dis ces fonctions, je vais tester.
Merci.
EDIT : Alors j’ai placé la fonction comme ceci sans setInventorySlotContents :
@Override
public void setInventorySlotContents(int slotId, ItemStack stack)
{
this.inventory[slotId] = stack;
if (stack != null && stack.stackSize > this.getInventoryStackLimit())
{
stack.stackSize = this.getInventoryStackLimit();
}
countBattery();
this.markDirty();
}
Mais à l’ouverture du GUI, j’ai le temps de l’aperçevoir et puis vlan :
[10:31:10] [Client thread/FATAL]: Unreported exception thrown!
java.lang.NullPointerException
at pingo.virtualcraft.common.TileEntityEUsInjector.countBattery(TileEntityEUsInjector.java:295) ~[TileEntityEUsInjector.class:?]
at pingo.virtualcraft.common.TileEntityEUsInjector.setInventorySlotContents(TileEntityEUsInjector.java:255) ~[TileEntityEUsInjector.class:?]
at net.minecraft.inventory.Slot.putStack(Slot.java:104) ~[Slot.class:?]
at net.minecraft.inventory.Container.putStacksInSlots(Container.java:560) ~[Container.class:?]
at net.minecraft.client.network.NetHandlerPlayClient.handleWindowItems(NetHandlerPlayClient.java:1205) ~[NetHandlerPlayClient.class:?]
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:70) ~[S30PacketWindowItems.class:?]
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:78) ~[S30PacketWindowItems.class:?]
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:247) ~[NetworkManager.class:?]
at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:321) ~[PlayerControllerMP.class:?]
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1693) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) ~[Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:961) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_60]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_60]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
–-- Minecraft Crash Report ----
// Oh - I know what I did wrong!
Time: 19/07/14 10:31
Description: Unexpected error
java.lang.NullPointerException: Unexpected error
at pingo.virtualcraft.common.TileEntityEUsInjector.countBattery(TileEntityEUsInjector.java:295)
at pingo.virtualcraft.common.TileEntityEUsInjector.setInventorySlotContents(TileEntityEUsInjector.java:255)
at net.minecraft.inventory.Slot.putStack(Slot.java:104)
at net.minecraft.inventory.Container.putStacksInSlots(Container.java:560)
at net.minecraft.client.network.NetHandlerPlayClient.handleWindowItems(NetHandlerPlayClient.java:1205)
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:70)
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:78)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:247)
at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:321)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1693)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039)
at net.minecraft.client.Minecraft.run(Minecraft.java:961)
at net.minecraft.client.main.Main.main(Main.java:164)
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:134)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at pingo.virtualcraft.common.TileEntityEUsInjector.countBattery(TileEntityEUsInjector.java:295)
at pingo.virtualcraft.common.TileEntityEUsInjector.setInventorySlotContents(TileEntityEUsInjector.java:255)
at net.minecraft.inventory.Slot.putStack(Slot.java:104)
at net.minecraft.inventory.Container.putStacksInSlots(Container.java:560)
at net.minecraft.client.network.NetHandlerPlayClient.handleWindowItems(NetHandlerPlayClient.java:1205)
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:70)
at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:78)
at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:247)
at net.minecraft.client.multiplayer.PlayerControllerMP.updateController(PlayerControllerMP.java:321)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP['pingoleon60'/4, l='MpServer', x=-510,24, y=58,62, z=398,18]]
Chunk stats: MultiplayerChunkCache: 190, 190
Level seed: 0
Level generator: ID 01 - flat, ver 0\. Features enabled: false
Level generator options:
Level spawn location: World: (-499,4,423), Chunk: (at 13,0,7 in -32,26; contains blocks -512,0,416 to -497,255,431), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 261138 game time, 34202 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; [EntityClientPlayerMP['pingoleon60'/4, l='MpServer', x=-510,24, y=58,62, z=398,18]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:417)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2568)
at net.minecraft.client.Minecraft.run(Minecraft.java:990)
at net.minecraft.client.main.Main.main(Main.java:164)
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:134)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
– System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.7.0_60, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 1045615912 bytes (997 MB) / 1524105216 bytes (1453 MB) up to 7622623232 bytes (7269 MB)
JVM Flags: 0 total;
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.18.1180 Minecraft Forge 10.13.0.1180 11 mods loaded, 11 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.18.1180} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.0.1180.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.0.1180} [Minecraft Forge] (forgeSrc-1.7.10-10.13.0.1180.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
IC2{2.2.521-experimental} [IndustrialCraft 2] (industrialcraft-2-2.2.521-experimental-dev.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Core{@VERSION@} [BuildCraft] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Builders{@VERSION@} [BuildCraft Builders] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Energy{@VERSION@} [BuildCraft Energy] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Factory{@VERSION@} [BuildCraft Factory] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Transport{@VERSION@} [Buildcraft Transport] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
BuildCraft|Silicon{@VERSION@} [BuildCraft Silicon] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
virtualcraft{0.1.0-ALPHADEV} [VirtualCraft] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Launched Version: 1.6
LWJGL: 2.9.1
OpenGL: GeForce GTX 780/PCIe/SSE2 GL version 4.4.0, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: ~~ERROR~~ NullPointerException: null
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: Off (1)
#@!@# Game crashed! Crash report saved to: #@!@# G:\Modding\1.7.2\forge\.\crash-reports\crash-2014-07-19_10.31.10-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
EDIT 2 : Après test, si je mets ma fonction juste avant les this.markDirty() dans decrStackSize, je peux l’ouvrir, je peux placer des trucs dedans, mais quand je retire, boum crash. Je pense que c’est ma fonction qui déconne. Je vais faire des tests.
EDIT 3 : Ok résolu ! En fait c’était ma faute, je vérifiais pas si le ItemStack était pas nul (ce qui est le cas quand le slot est vide). Merci pour votre aide !