

Here's what I've done.ġ) Deleted Wurm from Steam and reinstalled itĢ) Downloaded a fresh copy of the client mod and installed itģ) Renamed serverpacks.disabled to serverpacks.properties on clientĥ) Turned off Windows Firewall and Windows Defender (I am running on Windows 10)Ħ) Tried connecting to server1 running Wurm dedicated server on ubuntu 15.04. Doing the same with a linked C++ program would be a ton harder since we'd have no decompiler, no method names and probably performance optimized code which is even harder to read.


With the Java language we're actually blessed. I'd love to have an easier way to change things but using javassist is actually one of the best tradeoffs between performance and ease of use. And this even ignores the memory overhead for all the objects and lists.Īnd it's not even covering what's needed to change the program behaviour in methods. And to make things worse the client usually has way more CPU usage. Adding a hook almost anywhere without actually needing would definitly kill the performance. This goes on to call at least a dozen other methods. This would kill performance all over the place.įor example the creature poll() method in the server is called once for every creature every few seconds. I wonder what performance downgrade would that have, as it would mean that all method calls, would lookup a static class and then iterate a list in it to call the extra code. The end user-developer, would program against the machine generated interfaces that would be included in the mod loader library.
#WURM UNLIMITED NPC MOD FULL#
So at the end, you end up with a full set of new classes that give you interface access to the server without having to know javassist at all. GetNameMethod.execute("if(ItemOverloadManager.breakGetname()) return ") GetNameMethod.executeAfter("ItemOverloadManager.afterGetName()") GetNameMethod.executeBefore("ItemOverloadManager.beforeGetName()") Public static List overloaders = new ArrayList()
#WURM UNLIMITED NPC MOD GENERATOR#
The generator would iterate in the server jar and for that method, it would create code Say there's a class Item with only method getName() in the server jar I wonder how easy and without performance overhead, would it be to generate code for each class and each method in certain packages and then hook that code into the server jar. Currently, if someone wants to hook a method, he has toġ)Find the method inside the compiled jars.ģ)Properly apply the selector with javassist to get the right method.Ĥ)Use javassist defined hooks to add content. I was reading your code yesterday and I was thinking about an improvement.
