Git Product home page Git Product logo

wurmservermodlauncher's Introduction

WurmServerModLauncher

Wurm Unlimited Mod Launcher

ModLauncher for WurmUnlimited and a set of mods

  • Announcer: Server-wide player login announcement
  • BagOfHolding: magicly increase the size of containers
  • CreatureAgeMod: Animals grow up faster
  • CropMod: Prevent crops from overgrowing
  • HarvestHelper: Get exact season start times
  • InbreedWarning: Receive a warning when breeding related animals
  • ServerPacks: Provides additional pack download service for mods
  • SpellMod: Gives priests all spells and removes priest restrictions

Demo status (conversions of other mods for demonstration and testing purposes):

  • CreatureDemo: AbsolutelyNobodys creature mods
  • DigToGround: Dig to ground, dredge to ship (or ground)
  • HitchingPost: Arkoniks Hitchingpost mod

Installation

  • Download latest release server-modlauncer-xxx.zip
  • Extract contents to Wurm Unlimited server root.
  • For windows: execute patcher.bat
  • For linux: first give execution rights for patcher.sh by using following command chmod +x patcher.sh then execute this file ./patcher.sh
  • To launch server use WurmServerLauncher-patched instead WurmServerLauncher

Configuration

All Configuration files for mods can be found in mods/ directory. For each configuration option, consult mod readme, o configuration file itself.

Update

  • Backup existing mods
  • Download latest release server-modlauncer-xxx.zip
  • Extract contents to Wurm Unlimited server root and replace existing files
  • Remove WurmServerLauncher-patched and launch patcher.sh for linux or patcher.bat for windows

Check the Wiki for details

wurmservermodlauncher's People

Contributors

ago1024 avatar bdew avatar dependabot[bot] avatar tyoda avatar wurmarchive avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wurmservermodlauncher's Issues

Create another repository for the default mods ?

Hey, thanks for this project ! =)

What do you think about creating an other repository with your default mods ? and maybe do a list of all the existing mods there (using some PR or link on the readme).

Erupt spell restrictions

https://forum.wurmonline.com/index.php?/topic/133085-released-server-mod-loader-priest-crops-seasons-server-packs-bag-of-holding/&do=findComment&comment=1849374

If you are a GM and happen to be high enough on the path of power to have earned the erupt spell that GM can no longer use a wand to erupt due to spell restrictions taking place. This means only Magranon followers can use it whilst close enough to their domain. As a Libila follower it means its no longer possible to use erupt at all, both via a statuette or wand.

Hitching Post Unhitch Action

Issue:

  • Right-clicking a single animal while embarked on a cart and pressing unhitch does not unhitch animal and queues up multiple ghost actions in client.

Tested on a patched vanilla LAN server with no other mods added to ensure it is not a mod conflict. The selection of a large cart and selecting Animals > Unhitch does allow for the unhitching of all animals. However, with this mod it appears there is no way to unhitch a single animal while embarked.

Bags of Holding breaks Fruit Press

When trying to use a fruit press with the Bags of Holding mod active it will consume the fruit but the press will not get any fluid in it. Trying to add water or other fluid to the fruit press will crash the server. Dropping the fruit press on the ground will make it disappear and cause any client that tries to load the tile that the fruit press is in to freeze.

All these issues disappear when the mod is disabled and come right back when enabled again.

Add ways to configure what action performers return when reusing existent WU action ID numbers.

Action performers return true when there aren't any more custom actions to handle. This behaviour conflicts with reusing existent WU action IDs. It would be helpful if we could configure how the various behaviours from Behaviours.class interact with new action performers.

The question is:

  • Should action performer return true and end the action object? This may prevent other actions from doing something that use the same ID.
  • Should action performer return false and keep the action active. This ensures all other action methods get called. Although, listening to action objects is expensive so we need to make sure it's not be done for no reason.

Wrong tileY in new actions

Hi Ago, I'm having an issue with one of the cave wall actions I've created. For some reason, the method is returning identical tileX and tileY values every time the item is used. If I'm at 1023, 455 - the action() is returning 1023, 1023. Here's the full action for testing purposes, including a logger output of every variable that gets returned.

I tried the new action() method including the "int dir" argument, but it was not picked up when I used the item. The item functioned naturally in it's current form before the update to 1.5.

In Game Map

hi there!

Sorry to bother ya, but I saw you helped Kilem with his in-game map. I was wondering if you could take a look at mine and help me troubleshoot. Kilem and I spent a few hours trying to get it to go.

I run with the host PingPerfect.
Also, I use the hitching post mod and that works/runs fine. I've included the files I use and the logs in a zip folder

Any advice you could give would be greatly appreciated!
Thanks,
Tony

New folder (2).zip

Thoughts on Shutdown

Would make a few things easier for modders if they had an API way to hook into the server shutdown process. So they could easily add things like saves to custom database and other such finals for a clean shutdown.

We can hook into it, but thinking about the future of modloader as a more user friendly API system. Let me know what you think Ago, if you like the ideas I will post more as I have them, if not I will not post any more. Thank you for your modloader.

Pieces missing...

I am not sure what happens, but everytime you commit different files don't make it to the source code. Example this time the HookManager isn't there.

this makes it a little discouraging to wan't to help you improve it and make more advancements.

Don't get me wrong, you rock, this thing is awesome. However when I do a git I like to get it all hahaha.

Chaining multiple ModVehicleBehaviour per template

Currently only one ModVehicleBehaviour can coexist for each creature/item vehicle template.

Ran into this when trying to set zebra (from creatures mod) vehicle parameters with my movement mod. Since it has it's own ModVehicleBehaviour - mine doesn't get called for it.

error setting up ingame map.

Sorry to bother ya, I have spent a good 12hrs going over and over the setup for servermap ingame. followed your custom map settings 6 times and still get this error on clients.

INFO: Added server pack A0553A65523FE3159852CCAF022C54E021E81492
SEVERE: Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:792)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:789)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1569)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.URL.openStream(URL.java:1045)
at org.gotti.wurmonline.clientmods.serverpacks.PackDownloader.run(PackDownloader.java:35)
at java.lang.Thread.run(Thread.java:745)

map.png is right size
mappings.txt has map.scallywags=scallywags.png.
saved as scallywags.jar
jar is in mods/myservermap
myservermap.properties has serverPacks=scallywags.jar
db mapname has scallywags
server shows added, but clients get above error.
I tried disableing servermap mod to no avail.

Hope you have an idea where I went wrong. pulling what lil hair i have left out.

No update for christmasmod

To the best of my review, christmasmod only configures up to the year 2020 due to the variables within the christmasmod.java class. I attempted to add 2023 and have it read from the christmasmod.config however, it would not compile with modlauncher 0.45 due to super.action not being available in the OpenPresentActionPerformer.java

I removed the super. from the code and it was able to compile from there.

I will likely work on fixing this for myself, but figured I would mention it since it is a popular mod.

# Award the spyglass
# You can use item ids or names from ItemList
#present2015=spyglass
#present2016=spyglass
#present2017=spyglass
#present2018=spyglass
#present2019=spyglass
#present2020=489
#present2021=489
#present2022=665
present2023=664

I set the variable to the default in the code int present2023 = 972 and added the following:

this.present2023 = Integer.parseInt(properties.getProperty("present2023", String.valueOf(this.present2023)));

I still received a farwalker amulet despite the .config edit. Then the server crashed due to the following:
I believe it would also be required to add:

            case 14:
                return new OpenPresentActionPerformer.GiftData(this.present2023);

For it to work and not crash the server. However, the holidays are a busy time so I will manually handle gifts. Maybe an update to the code would help out people who do not/cannot figure out java, Maybe adding the next 5-10 years as a proactive approach would be positive. Also someway to remove setflag(62, true) across all players in a command as I've had mixed luck with update players set reimbursed=0; in players.db which was the suggested method so players could receive gifts again, I'm not sure if there has been a way to automatically reset this flag looking at source. Thanks!

Serverpacks: allow sending file pack with a fixed name

The ServerPacks interface has

	void addServerPack(Path path, ServerPackOptions... options);
	void addServerPack(byte[] data, ServerPackOptions... options);
	void addServerPack(String name, byte[] data, ServerPackOptions... options);

(1) and (2) send a pack with the SHA-1 hash as id. (3) uses a fixed name and is used for sending the packs with the generated map image.

Sending a file with a fixed name is currently not possible.

The change adds the new method to send a pack from a file with a fixed name.

	void addServerPack(String name, Path path, ServerPackOptions... options);

Mod loading order

The order in which mods are loaded on Windows and Linux seems to differ.

In general it would be nice to get some way to define loading order or at least mention library mods somewhere, so they can be loaded first for the other mods which depend on those library mods.

Exception in thread "JavaFX Application Thread"

Using version 0.24 I get this error when starting the server with ./modlauncher.sh. Server comes up fine and seems to be working but the launcher thinks the server is offline.

"Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException"

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

Any ideas?

Startup log: http://pastebin.com/V9VkVxge

Bag of holding weird behaviour with liquid containers

Report from one of my players:

I cast it on some small barrels and was then able to put very large amounts of water in them. However, if I then added something else to the barrel (a casserole), it reset the water volume inside the barrel to the default 45kg. I was able to put more water in it afterwards, but much water was lost.

I think (but haven't tested) the problem is that vanilla code calls getVolume in this part of Item.moveToItem

                if (liquid != null) {
                    final int used = target.getUsedVolume();
                    final int size = liquid.getWeightGrams();
                    final int free = target.getVolume() - used; // <- this
                    ....

That should probably be changed to target.getContainerVolume. There are a bunch of other calls to getVolume there that shouldn't be changed, so it's going to need some bytecode editing most likely.

I'll try to test and PR a fix for this when i get the time, but if someone wants to do this first... :P

Shared ClassLoader doesn't support loading of Resources from mod jars

Hi,
When using shared class loader, there is no way for a mod to load a .properties file from the mod jar.
I'm trying to create a localizable mod, but i can't load the messages_xx.properties files.
Unfortunately, I need the shared classloader to hook into some classes manually so resource loading falls apart.

Thanks

modlauncher.jar missing

Cannot get this to work at all is it complains about a missing modlauncher.jar file. This file seems to be no where in the git repo at all.

Serverpacks should notify players if a new pack was added

The serverpacks only send the pack list to the client when the client connects. Sending a new pack while the client is already connected is currently not supported.

The change allows to send new packs to all currently connected clients.

BehaviourProvider doesn't work for tile borders, corners, skills, etc.

The BehaviourProvider for custom actions works for many of the action targets in the games. Items, tiles, creatures all work fine. But when it comes to fringe areas like tile borders, corners, and skills, it ceases to function. I wrote a quick mod which overrode every behaviour provider sub-method with a logger message. Try it for yourself and you'll see that many of the action targets to do not work from the BehaviourProvider.
testmodlauncher.zip

Beta Support?

The Mod Loader Patcher doesn't have beta support for 1.3.5.5 is it possible to get a hotfix?

getBehavioursFor function using deprecated function.

In org.gotti.wurmunlimited.modsupport.actions.BehaviourProvider the functions

  • getBehavioursFor(Creature performer, Item object, int tilex, int tiley, boolean onSurface, boolean corner, int tile)
  • getBehavioursFor(Creature performer, int tilex, int tiley, boolean onSurface, boolean corner, int tile)
    are still used in spite of being deprecated.

Solution ideas:
They are used

  1. In the same class. Here the functions using them should be deprecated themselves, or they should return null like the other overloads of getBehavioursFor.
  2. In the same package in ChainedBehaviourProvider. These should maybe be deprecated instead of using @SuppressWarnings("deprecation")

Update Spell message (BagOfHolding)

  • The examine message for BagOfHolding says it's a Courier. This can probably be fixed by using a custom EXAMINE ActionPerformer
  • There are "new" on screen messages for spells. Add this for the courier spell too

Cropmod Properties file is missing

I downloaded your Wurmservermodlauncher, And cropmod was not working. AFter going through your repository, I noticed that you have a cropmod properties file, And the zip file that I downloaded does not.

Prayer Limits Not Adjusting

Both the values for overriding the prayer timer and total faith gain limit are set to true. However, the 20-minute timer is still in effect. Server has been restarted multiple times as well.

Player Class Frozen/Full Server Meltdown

This occurs whenever player is passed as an argument to any method, whether it's called or not. Defrosting the method simply breaks the server completely, and causes all mods to cease functioning. I've created a demonstration mod for it.

Mod source code: http://pastebin.com/qqYTzhdA (configure defrost commented out)
Error with no configure defrost: http://pastebin.com/bwZ69im4
Error when using configure defrost: http://pastebin.com/wypTtr4g
wurmmodtemplate.zip

linux instructions please

going to get the main info out of the way...
OS: Linux Mint 1.7.3 Cinnamon 64-bit
Cinnamon Version: 2.8.6
Linux Kernal: 3.16.0-38-generic
processor: Intel Core 2 Duo CPU E6550 @ 2.33GHz x2
memory: 3.7 GiB
hard drives 1693.6GB
Graphics Card NVIDIA Corporation GF119 [GeForce GT 610]
,ok now that i got that out of the way,
can you please make a tutorial to install this mod loader from fresh installation of wurm unlimited?

Priests cant improve items

Hello!
I've basically left all the options in the .config as vanilla as possible.
my priests on the server cant improve items.
do i have to remove all the restrictions via the config to make improving possible? from the wiki i gathered, that even with restrictions in place priests would be able to improve items

Ingame map - Necroing

Hello! New Wurm Server Admin here...
I followed the surrounding information and got my serverlog to say it made a pack.
Now my client.log doesn't seem to want to download the according pack.
Any help with setting this up would be greatly appreciated i will gladly provide any information you need!

EDIT1 i left the httpserver.config as is, do i need to set ips and ports in there?

[Suggestion] Add ModActions.registerAction versions that work directly with ActionPerformer and BehaviourProvider

Currently if you have ActionPerformer separate from BehaviourProvider (e.g. if you want to put multiple actions in a submenu), registering them looks silly. Moreover you need to implement dummy behabiour providers on all ModActions even if they do nothing since getBehaviourProvider call is not checked for null return in registerAction.

It would be nice to have additional methods (e.g. registerActionPerfomer / registerBehaviour) that take the appropriate interface and register it.

SpellMod error after changes to getCost()

Modifying spell costs broken since server 1.9.0

Caused by: java.lang.NoSuchMethodError: com.wurmonline.server.spells.Spell.getCost(Z)I
        at org.gotti.wurmunlimited.mods.spellmod.SpellMod.onServerStarted(SpellMod.java:103)
        at org.gotti.wurmunlimited.modloader.server.ServerHook.lambda$fireOnServerStarted$2(ServerHook.java:81)
        at org.gotti.wurmunlimited.modloader.server.Listeners.lambda$fire$0(Listeners.java:63)
        at java.util.concurrent.CopyOnWriteArrayList.forEach(CopyOnWriteArrayList.java:891)
        at org.gotti.wurmunlimited.modloader.server.Listeners.fire(Listeners.java:61)

The Spell.getCost(boolean forItem) method has been split up into many methods for creatures, items, terrain...

CropMod - disableWeeds Not Working

CropMod, disableWeeds Not Working.

true: prevent crops from growing to weeds

disableWeeds=true

number: additional results from harvests

#extraHarvest=0

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.