Posted July 6, 2017 https://github.com/ago1024/WurmServerModLauncher/releases/tag/v0.26.2 Version 0.26.2 Modloader Fix custom actions on corners not performing Scriptrunner Add more method signatures to getTile() action helper Share this post Link to post Share on other sites
Posted July 6, 2017 (edited) nwm, my bad. Edited July 6, 2017 by DiWorm Share this post Link to post Share on other sites
Posted July 6, 2017 (edited) Seems odd. Which mods do you run? Could Steam have updated the server while it was running? The method Player.setStudied(int) has been added with the 1.4 update. A mod could possible patch or replace the Player class in a way that it's lacking the new method. Edited July 6, 2017 by ago 1 Share this post Link to post Share on other sites
Posted July 9, 2017 Any tips on how to debug a mod with ModLoader and Eclipse? My understanding is that: 1) the patched launcher .exe launch the patched server.jar which then put the jar of my mod in its execution space. 2) Usually you use java -Xdebug To launch a jar in debug mode. But here we have an .exe that launchs server.jar and pass options to it. 3) I'm not sure how to configure Eclipse to debug my code inside that environnment ( 1) and 2) ?? Share this post Link to post Share on other sites
Posted July 9, 2017 (edited) You can add the debugging parameters to LaunchConfig.ini server=y means the server is listening for incoming debugger requests suspend=n means the server starts and you can connect at any time to the running server, suspend=y means the server is waiting for the debugger before it starts the main method. This is the LaunchConfig.ini from the client but the server uses the same scheme Spoiler [Runtime] OverrideDefaultJavaPath=false JavaPath= [Memory] InitialHeap=512m MaxHeapSize=2048m [VMParams] JvmParam0=-XX:+AggressiveOpts JvmParam1=-agentlib:jdwp=transport=dt_socket,address=localhost:8000,server=y,suspend=n You can then attach from eclipse with a "remote java application" debug configuration. Use "Standard (Socket attach)", host localhost, port 8000. When using the actual hostname you can even connect to servers running on different hosts. But you'll have to configure the firewall to let the traffic through. Adding -Xdebug to the LaunchConfig.ini may work as well but I've no experience with it. Edited July 9, 2017 by ago Share this post Link to post Share on other sites
Posted July 9, 2017 I ended up adding the required stuff in ModLoader.bat. I can debug/set breakpoints for both the server and my 2 mods from within Eclipse so I'm happy Share this post Link to post Share on other sites
Posted July 11, 2017 I am getting the following error. I can't figure out what is causing it. I am running the latest modloader from today. org.gotti.wurmunlimited.modloader.classhooks.HookException: java.lang.reflect.InvocationTargetException at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:312) at com.wurmonline.server.ServerLauncher.runServer(ServerLauncher.java) at com.wurmonline.server.gui.WurmServerGuiController.startDB(WurmServerGuiController.java:1319) at com.wurmonline.server.gui.WurmServerGuiMain.main(WurmServerGuiMain.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.serverlauncher.DelegatedLauncher.main(DelegatedLauncher.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.serverlauncher.ServerLauncher.main(ServerLauncher.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at PatchedLauncher.main(PatchedLauncher.java:20) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gotti.wurmunlimited.modloader.server.ProxyServerHook$1$1.invoke(ProxyServerHook.java:55) at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:302) ... 20 more Caused by: java.lang.ExceptionInInitializerError at com.wurmonline.server.Server.startRunning(Server.java:854) at com.wurmonline.server.ServerLauncher.runServer$1(ServerLauncher.java:119) ... 26 more Caused by: java.lang.NullPointerException at com.wurmonline.server.items.Item.isTileAligned(Item.java:14047) at com.wurmonline.server.zones.VolaTile.addItem(VolaTile.java:1975) at com.wurmonline.server.zones.VolaTile.addItem(VolaTile.java:1935) at com.wurmonline.server.zones.Zone.addItem(Zone.java:1905) at com.wurmonline.server.zones.Zone.loadAllItemsForZone(Zone.java:2427) at com.wurmonline.server.zones.Zones.createZones(Zones.java:1778) at com.wurmonline.server.zones.Zones.<clinit>(Zones.java:278) ... 28 more [04:32:17 AM] INFO com.wurmonline.server.Server: Wurm Server Shutdown hook is running Share this post Link to post Share on other sites
Posted July 11, 2017 I have disabled all mods and I still get the error above. Share this post Link to post Share on other sites
Posted July 11, 2017 20 minutes ago, Jayren said: I have disabled all mods and I still get the error above. The error happens after the launcher is loaded and about to connect to steam. Share this post Link to post Share on other sites
Posted July 11, 2017 (edited) There is a item in the database without a matching item template. This can happen if you disable a mod which added an item. So far there's only the option to re-add the mod in question or manually delete the problematic items from the database. the modsupport.db contains the item ids: SELECT * FROM ids; 22767 ITEMTEMPLATE ago.hitchingpost 2147483647 CREATURETEMPLATE mod.creature.panda 2147483646 CREATURETEMPLATE mod.creature.zebra 2147483645 CREATURETEMPLATE mod.creature.ocelot 22766 ITEMTEMPLATE jp.clayremoval.decaybed If you've identified a mod which is not in use anymore you can delete the items from wurmitems.db DELETE FROM items WHERE 'templateid' = 22766 !!Make a backup of the server folder before changing the database!! Edited July 11, 2017 by ago Share this post Link to post Share on other sites
Posted July 11, 2017 (edited) ok I have cleaned up all my missing item template errors. I also see the following error: [09:06:36 AM] WARNING com.wurmonline.server.WurmId: Failed to insert idnums into logindb! Trying update instead.[SQLITE_CONSTRAINT] Abort due to constraint violation (UNIQUE constraint failed: IDS.SERVER) java.sql.SQLException: [SQLITE_CONSTRAINT] Abort due to constraint violation (UNIQUE constraint failed: IDS.SERVER) Then after the Launcher finished error I get the error I posted above. edit: The above error has been resolved. Removed the Record in the wurmlogin.db that is was complaining about. So now just getting the error after server launcher is finished. Also note that this seems to happen when the unpatched launcher is run as well. So might not be an issue with the modloader. Edited July 11, 2017 by Jayren Share this post Link to post Share on other sites
Posted July 11, 2017 Lets rephrase this: There was an item (e.g a hitching post) created There exists an entry in the item database for this item with an item template id for the hitching post The server is started unpatched or without the mod The server finds an item with an item template id that is now unknown to the server The server crashes as soon as it tries to access the item template The only options right now are to remove the items from the database or to readd the mod 1 Share this post Link to post Share on other sites
Posted July 11, 2017 I removed az fist without the above errors so I can't be positive but at least in my case the server just removed all enchants from the picks and they were fine otherwise. Share this post Link to post Share on other sites
Posted July 12, 2017 ago, I am not sure if you are responding to my posts or to Xyp. I have removed the items that reference the missing Templates. So no other errors on launch other then the one after the Launcher finishes. Here is an error I get when using unpatched launcher which is slightly different. Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774) at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8411) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:352) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:275) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$355(GlassViewEventHandler.java:388) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) ... 60 more Caused by: java.lang.ExceptionInInitializerError at com.wurmonline.server.Server.startRunning(Server.java:854) at com.wurmonline.server.ServerLauncher.runServer(ServerLauncher.java:119) at com.wurmonline.server.gui.WurmServerGuiController.startGame(WurmServerGuiController.java:1221) at com.wurmonline.server.gui.WurmServerGuiController.startBtnClicked(WurmServerGuiController.java:141) ... 70 more Caused by: java.lang.NullPointerException at com.wurmonline.server.items.Item.isTileAligned(Item.java:14047) at com.wurmonline.server.zones.VolaTile.addItem(VolaTile.java:1975) at com.wurmonline.server.zones.VolaTile.addItem(VolaTile.java:1935) at com.wurmonline.server.zones.Zone.addItem(Zone.java:1905) at com.wurmonline.server.zones.Zone.loadAllItemsForZone(Zone.java:2427) at com.wurmonline.server.zones.Zones.createZones(Zones.java:1778) at com.wurmonline.server.zones.Zones.<clinit>(Zones.java:278) ... 74 more Share this post Link to post Share on other sites
Posted July 13, 2017 (edited) It seems it's the realtemplate. Please check for items with realtemplate > 1306 select * from items where 'realtemplate' > 1306 select templateid, name, realtemplate from items where realtemplate <> -10 group by realtemplate there's also a chance that there is an item with realtemplate pointing to a removed item template. Bulk items and liquids seem to use the realtemplate. Maybe a azebatan axe in a bulk storage. If you can't find the item then please send me the wurmitems.db and modsupport.db. Edited July 13, 2017 by ago Share this post Link to post Share on other sites
Posted July 13, 2017 (edited) seems I have 135995 records returned with select * from items where 'realtemplate' > 1306 356 records for select templateid, name, realtemplate from items where realtemplate <> -10 group by realtemplate Edited July 13, 2017 by Jayren Share this post Link to post Share on other sites
Posted July 13, 2017 correction: select * from items where realtemplate > 1306 Without the quotes around 'realtemplate'. Share this post Link to post Share on other sites
Posted July 13, 2017 Ok I found it. Removed the seafloor mining item and it now launches. I am now getting the error someone else reported. java.lang.NoClassDefFoundError: com/wurmonline/server/CounterTypes I will review the earlier posts on how to address that. Thanks for the help. Share this post Link to post Share on other sites
Posted July 13, 2017 weird I didn't have this mod enabled. I restarted the server and the issue went away. Thanks again. Our players will be happy we can finally upgrade. Share this post Link to post Share on other sites
Posted July 13, 2017 https://github.com/ago1024/WurmServerModLauncher/releases/tag/v0.26.3 Version 0.26.3 Scriptrunner Fix broken actions.js Share this post Link to post Share on other sites
Posted July 14, 2017 The UpkeepCosts mod doesn't work on my production server but it does on my test server. I have all the same mods loaded. When I try to run with the mod loaded on prod I get the error org.gotti.wurmunlimited.modloader.classhooks.HookException: java.lang.NoClassDefFoundError: com/wurmonline/server/CounterTypes at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:312) at com.wurmonline.server.ServerLauncher.runServer(ServerLauncher.java) at com.wurmonline.server.gui.WurmServerGuiController.startDB(WurmServerGuiController.java:1319) at com.wurmonline.server.gui.WurmServerGuiMain.main(WurmServerGuiMain.java:101) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.serverlauncher.DelegatedLauncher.main(DelegatedLauncher.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at javassist.Loader.run(Loader.java:288) at org.gotti.wurmunlimited.serverlauncher.ServerLauncher.main(ServerLauncher.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at PatchedLauncher.main(PatchedLauncher.java:20) Caused by: java.lang.NoClassDefFoundError: com/wurmonline/server/CounterTypes at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.lang.ClassLoader.defineClass(ClassLoader.java:642) at javassist.Loader.findClass(Loader.java:377) at org.gotti.wurmunlimited.modloader.classhooks.HookManager$1.findClass(HookManager.java:107) at javassist.Loader.loadClass(Loader.java:309) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at mod.wurmonline.mods.upkeepcosts.UpkeepCosts.onServerStarted(UpkeepCosts.java:169) at org.gotti.wurmunlimited.modloader.server.ServerHook.lambda$fireOnServerStarted$2(ServerHook.java:45) at org.gotti.wurmunlimited.modloader.server.Listeners.lambda$fire$0(Listeners.java:35) at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:890) at org.gotti.wurmunlimited.modloader.server.Listeners.fire(Listeners.java:33) at org.gotti.wurmunlimited.modloader.server.ServerHook.fireOnServerStarted(ServerHook.java:45) at org.gotti.wurmunlimited.modloader.server.ProxyServerHook$1$1.invoke(ProxyServerHook.java:56) at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:302) Share this post Link to post Share on other sites
Posted July 14, 2017 Not sure why you don't get the error on your test server but the mod is borked so I don't recommend trying to run it. This is the thread for that mod: Share this post Link to post Share on other sites
Posted July 14, 2017 Yeah I had some issues a while back which was self inflicted. Hopefully the mod will get updated. Share this post Link to post Share on other sites
Posted July 14, 2017 So I actually get that same error on the test server. However, the Server stays running. Production server does the shutting down thing as soon as it gets that error. I recopied the mod folder from prod to my test server thinking maybe I had something on prod and not on test, but it still runs fine on test. Share this post Link to post Share on other sites