奈斯启示录 Necesse

奈斯启示录 Necesse

Stack Resizer
柠檬 3 月 2 日 上午 12:35
There is a conflict between game modules
Mods: Stack Resizer (v. 0.3.2) & Stack Resizer (v. 0.3.2)

java.lang.NullPointerException: Cannot read field "displayName" because "necesse.engine.state.MainGame.getClient().worldEntity.serverWorld" is null
at main.java.ModifyISS.StackResizer.getCurrentWorld(StackResizer.java:370)
at main.java.ModifyISS.StackResizer.getCurrentSettings(StackResizer.java:378)
at main.java.ModifyISS.StackResizer.isInBlacklist(StackResizer.java:212)
at main.java.ModifyISS.StackResizer.getStackSizeModification(StackResizer.java:284)
at necesse.inventory.item.Item.getStackSize(Item.java:529)
at necesse.inventory.InventoryItem.itemStackSize(InventoryItem.java:132)
at necesse.inventory.Inventory.getItemStackLimit(Inventory.java:997)
at necesse.inventory.container.slots.ContainerSlot.getItemStackLimit(ContainerSlot.java:47)
at necesse.inventory.container.slots.ContainerSlot.combineSlots(ContainerSlot.java:96)
at necesse.inventory.container.slots.ContainerSlot.combineSlots(ContainerSlot.java:120)
at necesse.inventory.container.Container.applyLeftClick(Container.java:317)
at necesse.inventory.container.Container.applyContainerAction(Container.java:259)
at necesse.gfx.forms.components.containerSlot.FormContainerSlot.runAction(FormContainerSlot.java:396)
at necesse.gfx.forms.components.containerSlot.FormContainerSlot.handleActionInputEvents(FormContainerSlot.java:139)
at necesse.gfx.forms.components.containerSlot.FormContainerToolbarSlot.handleInputEvent(FormContainerToolbarSlot.java:41)
at necesse.gfx.forms.ComponentList.submitInputEvent(ComponentList.java:52)
at necesse.gfx.forms.Form.handleInputEvent(Form.java:236)
at necesse.gfx.forms.ComponentList.submitInputEvent(ComponentList.java:52)
at necesse.gfx.forms.FormManager.submitInputEvent(FormManager.java:226)
at necesse.engine.state.MainGame.lambda$frameTick$0(MainGame.java:315)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at java.base/java.util.Collections$UnmodifiableCollection.forEach(Unknown Source)
at necesse.engine.state.MainGame.lambda$frameTick$2(MainGame.java:313)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordPerformance(PerformanceTimerManager.java:105)
at necesse.engine.gameLoop.tickManager.Performance.record(Performance.java:10)
at necesse.engine.state.MainGame.lambda$frameTick$3(MainGame.java:309)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordPerformance(PerformanceTimerManager.java:105)
at necesse.engine.gameLoop.tickManager.Performance.record(Performance.java:10)
at necesse.engine.state.MainGame.frameTick(MainGame.java:135)
at necesse.engine.gameLoop.ClientGameLoop.lambda$update$5(ClientGameLoop.java:77)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordConstantPerformance(PerformanceTimerManager.java:113)
at necesse.engine.gameLoop.tickManager.Performance.recordConstant(Performance.java:16)
at necesse.engine.gameLoop.ClientGameLoop.update(ClientGameLoop.java:76)
at necesse.engine.gameLoop.tickManager.TickManager.tickLogic(TickManager.java:98)
at necesse.engine.gameLoop.GameLoop.runMainGameLoop(GameLoop.java:19)
at necesse.engine.loading.ClientLoader.startGame(ClientLoader.java:347)
at necesse.StartPlatformClient.start(StartPlatformClient.java:12)
at StartSteamClient.main(StartSteamClient.java:6)
java.lang.NullPointerException: Cannot read field "displayName" because "necesse.engine.state.MainGame.getClient().worldEntity.serverWorld" is null
at main.java.ModifyISS.StackResizer.getCurrentWorld(StackResizer.java:370)
at main.java.ModifyISS.StackResizer.getCurrentSettings(StackResizer.java:378)
at main.java.ModifyISS.StackResizer.isInBlacklist(StackResizer.java:212)
at main.java.ModifyISS.StackResizer.getStackSizeModification(StackResizer.java:284)
at necesse.inventory.item.Item.getStackSize(Item.java:529)
at necesse.inventory.InventoryItem.itemStackSize(InventoryItem.java:132)
at necesse.inventory.InventoryFilter.getItemStackLimit(InventoryFilter.java:8)
at necesse.inventory.Inventory.getItemStackLimit(Inventory.java:998)
at necesse.inventory.Inventory.addItem(Inventory.java:708)
at necesse.entity.objectEntity.FueledProcessingTechInventoryObjectEntity$TechProcessingHelp.update(FueledProcessingTechInventoryObjectEntity.java:240)
at necesse.entity.objectEntity.FueledProcessingTechInventoryObjectEntity$TechProcessingHelp.getGhostItem(FueledProcessingTechInventoryObjectEntity.java:270)
at necesse.gfx.forms.components.containerSlot.FormContainerProcessingRecipeSlot.drawDecal(FormContainerProcessingRecipeSlot.java:30)
at necesse.gfx.forms.components.containerSlot.FormContainerSlot.draw(FormContainerSlot.java:439)
at necesse.gfx.forms.ComponentList.lambda$drawComponents$3(ComponentList.java:173)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at necesse.gfx.forms.ComponentList.drawComponents(ComponentList.java:172)
at necesse.gfx.forms.Form.drawComponents(Form.java:341)
at necesse.gfx.forms.Form.lambda$draw$2(Form.java:397)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordPerformance(PerformanceTimerManager.java:105)
at necesse.engine.gameLoop.tickManager.Performance.record(Performance.java:10)
at necesse.gfx.forms.Form.draw(Form.java:346)
at necesse.gfx.forms.FormSwitcherTyped.draw(FormSwitcherTyped.java:127)
at necesse.gfx.forms.presets.containerComponent.object.OEInventoryContainerForm.draw(OEInventoryContainerForm.java:207)
at necesse.gfx.forms.ComponentList.lambda$drawComponents$3(ComponentList.java:173)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at necesse.gfx.forms.ComponentList.drawComponents(ComponentList.java:172)
at necesse.gfx.forms.components.FormComponentListTyped.draw(FormComponentListTyped.java:66)
at necesse.gfx.forms.presets.containerComponent.object.FueledProcessingInventoryContainerForm.draw(FueledProcessingInventoryContainerForm.java:75)
at necesse.gfx.forms.ComponentList.lambda$drawComponents$3(ComponentList.java:173)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
at necesse.gfx.forms.ComponentList.drawComponents(ComponentList.java:172)
at necesse.gfx.forms.FormManager.draw(FormManager.java:517)
at necesse.gfx.forms.MainGameFormManager.draw(MainGameFormManager.java:362)
at necesse.engine.state.MainGame.lambda$drawHud$14(MainGame.java:634)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordPerformance(PerformanceTimerManager.java:105)
at necesse.engine.gameLoop.tickManager.Performance.record(Performance.java:10)
at necesse.engine.state.MainGame.drawHud(MainGame.java:633)
at necesse.gfx.Renderer.lambda$drawTick$3(Renderer.java:128)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordPerformance(PerformanceTimerManager.java:105)
at necesse.engine.gameLoop.tickManager.Performance.record(Performance.java:10)
at necesse.gfx.Renderer.lambda$drawTick$4(Renderer.java:123)
at necesse.engine.gameLoop.tickManager.PerformanceTimerManager.recordConstantPerformance(PerformanceTimerManager.java:113)
at necesse.engine.gameLoop.tickManager.Performance.recordConstant(Performance.java:16)
at necesse.gfx.Renderer.drawTick(Renderer.java:96)
at necesse.engine.gameLoop.ClientGameLoop.update(ClientGameLoop.java:84)
at necesse.engine.gameLoop.tickManager.TickManager.tickLogic(TickManager.java:98)
at necesse.engine.gameLoop.GameLoop.runMainGameLoop(GameLoop.java:19)
at necesse.engine.loading.ClientLoader.startGame(ClientLoader.java:347)
at necesse.StartPlatformClient.start(StartPlatformClient.java:12)
at StartSteamClient.main(StartSteamClient.java:6)
< >
正在显示第 1 - 5 条,共 5 条留言
Jacob Style 3 月 2 日 下午 11:14 
I'm getting the same necesse.engine.state.MainGame.getClient().worldEntity.serverWorld exception. Tried looking at the code on Github to see if there was anything obvious like a misspelling or something, but I couldn't find anything, and I don't know how to see anything that the code is actually interacting with in the actual game engine, so I've got no idea what's going on outside the files I was browsing. Hoping it gets fixed because this mod seems like the perfect fix for so many frustrations in this game <3
Ferren-  [开发者] 3 月 4 日 下午 3:14 
Hah. The source of that error is actually the code I just updated in order to fix multiplayer crashes. I was able to reproduce the error when creating a new game, for which it seems like the displayName is updated in a way that occurs after the mod tries to read it. I'll patch it and upload it now.
Ferren-  [开发者] 3 月 4 日 下午 3:45 
Alrighty! Fixed. One method of getting world display name for when a client connects to a server, and a completely different method for when the client creates or loads a new world locally. That's modding! I can't wait to fix it after tomorrow's patch.
Jacob Style 3 月 11 日 下午 4:51 
Padmé: but they do document this difference
Padmé: they do document this difference, right?
Ferren-  [开发者] 3 月 12 日 上午 9:30 
Goodness no, anyone modding this game right now is still de-compiling the original code and reverse engineering it to make things happen. In this case, the issue is that the world name is assigned at different times based on whether or not you are playing on your own local world or a remote world you are connecting to. I think what I have changed should hold up until the next patch. I am working on a much larger mod right now and just haven't had time to do code review, and have depended upon posts like these to find problems!
< >
正在显示第 1 - 5 条,共 5 条留言
每页显示数: 1530 50