ago

[RELEASED] Server mod loader + priest + crops + seasons + server packs + bag of holding

Recommended Posts

nwm, my bad.

Edited by DiWorm

Share this post


Link to post
Share on other sites

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 by ago
  • Like 1

Share this post


Link to post
Share on other sites

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

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 by ago

Share this post


Link to post
Share on other sites

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

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

I have disabled all mods and I still get the error above.

Share this post


Link to post
Share on other sites
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

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 by ago

Share this post


Link to post
Share on other sites

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 by Jayren

Share this post


Link to post
Share on other sites

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

 

  • Like 1

Share this post


Link to post
Share on other sites

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

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

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 by ago

Share this post


Link to post
Share on other sites

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 by Jayren

Share this post


Link to post
Share on other sites

correction:

select * from items where realtemplate > 1306

Without the quotes around 'realtemplate'.

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now