HI.
I'm posting here after a brief conversation with Hydromancerx on the Steam boards.
The problem:
When I right-click an item, the following exception occurs:
-----------------------------------------
STACK TRACE
-----------------------------------------
function: createMenuEntries -- file: ISCompassMenu.lua line # 138
Callframe at: se.krka.kahlua.integration.expose.MultiLuaJavaInvoker@106cc712
function: createMenu -- file: ISInventoryPaneContextMenu.lua line # 168
function: onRightMouseUp -- file: ISInventoryPane.lua line # 1080
java.lang.RuntimeException: __len not defined for operand
at se.krka.kahlua.vm.KahluaUtil.fail(KahluaUtil.java:91)
at se.krka.kahlua.vm.KahluaUtil.luaAssert(KahluaUtil.java:79)
at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:724)
at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163)
at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1727)
at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1672)
at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:53)
at se.krka.kahlua.integration.LuaCaller.protectedCallVoid(LuaCaller.java:81)
at zombie.Lua.Event.trigger(Event.java:37)
at zombie.Lua.LuaEventManager.triggerEvent(LuaEventManager.java:148)
at zombie.Lua.LuaEventManager.triggerEventGarbage(LuaEventManager.java:159)
at zombie.Lua.LuaManager$GlobalObject.triggerEvent(LuaManager.java:1995)
at sun.reflect.GeneratedMethodAccessor427.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at se.krka.kahlua.integration.expose.caller.MethodCaller.call(MethodCaller.java:61)
at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:199)
at se.krka.kahlua.integration.expose.MultiLuaJavaInvoker.call(MultiLuaJavaInvoker.java:55)
at se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:182)
at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:983)
at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163)
at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1727)
at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1642)
at se.krka.kahlua.integration.LuaCaller.pcall(LuaCaller.java:63)
at zombie.ui.UIElement.onRightMouseUp(UIElement.java:1143)
at zombie.ui.UIElement.onRightMouseUp(UIElement.java:1105)
at zombie.ui.UIManager.update(UIManager.java:1201)
at zombie.GameWindow.logic(GameWindow.java:583)
at zombie.GameWindow.run(GameWindow.java:1233)
at zombie.GameWindow.maina(GameWindow.java:1015)
at zombie.gameStates.MainScreenState.main(MainScreenState.java:177)
Hydromancerx said that this is from the Compass mod and the Author is no longer active.
I've looked at the code and here is the relevant bit:
Zomboid\mods\Hydrocraft\media\lua\client\ISUI\ISCompassMenu.lua :
for i,v in ipairs(clickedItems) do
local inv = getPlayer():getInventory()
for i = 1,#v.items do
local item = v.items[i];
#v.items is the length reference that throws the "java.lang.RuntimeException: __len not defined for operand" exception.
I've looked at some examples online and I've seen people do these menu loops in another way.
It seems to me that something changed in the game where that attribute is no longer available, or the new items are missing this value, I'm not sure.
If someone here who has enough knowledge about the game can comment - I would really appreciate it.
There are some other errors that I'm getting and I'm compelled to look into them, however I'm concerned about having to have "custom" version of the mod on my server, which complicates distribution.
If I ever get to resolve the issues I'm having, can I contribute to update the "main branch" with my fixes?