ago

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

Recommended Posts

17 minutes ago, Eject said:

Ok its not my day ^^

 

Now i added the numbers but it is also not working, and as i said, the example file is also not working.......i give up

 

If you want to have mods which are working properly do not use the javascript script runner from the modloader, code your own mods in Java instead.

Javascript is awful.

Edited by Sklo:D

Share this post


Link to post
Share on other sites

My custom god wont approve mining etc... Even if the settings is set to true... 

Share this post


Link to post
Share on other sites

Hitching Post appears to also allow non-deed members to lead branded animals after they've been hitched?
I"m not sure what that's about exactly, since all the settings for the animal says no one but deedmates can lead.

Share this post


Link to post
Share on other sites
On 19.2.2018 at 3:47 AM, Zera said:

Hitching Post appears to also allow non-deed members to lead branded animals after they've been hitched?
I"m not sure what that's about exactly, since all the settings for the animal says no one but deedmates can lead.

 

The hitchingpost behaves like a vehicle and uses the same logic as a cart:

Option 1:

* If it has a lock you must have the key

* Otherwise: If it is in a village you need permissions to take items

* Otherwise: You can unhitch the animal from an unlocked hitchingpost outside of a village

 

Option 2:

* You are the owner of the hitching post or it has no owner

* Or you have command permissions on the hitching post

 

With default permissions on a village I was not able to unhitch an animal from the hitching post, neither via the hitching post nor via the animal.

 

There is currently a shortcoming with branded animal. I can possibly hitch it to a locked hitching post but I can not unhitch it anymore. I will add a check to allow unhitching animals if the player would have lead permissions on the unhitched animal.

 

Edit: the game won't let you hitch to a vehicle you can not access. So for now this rules out a public hitching post which allows anyone to hitch and unhitch their own horses.

 

 

 

 

 

 

 

Edited by ago
  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, ago said:

 

The hitchingpost behaves like a vehicle and uses the same logic as a cart:

Option 1:

* If it has a lock you must have the key

* Otherwise: If it is in a village you need permissions to take items

* Otherwise: You can unhitch the animal from an unlocked hitchingpost outside of a village

 

Option 2:

* You are the owner of the hitching post or it has no owner

* Or you have command permissions on the hitching post

 

With default permissions on a village I was not able to unhitch an animal from the hitching post, neither via the hitching post nor via the animal.

 

There is currently a shortcoming with branded animal. I can possibly hitch it to a locked hitching post but I can not unhitch it anymore. I will add a check to allow unhitching animals if the player would have lead permissions on the unhitched animal.

 

Edit: the game won't let you hitch to a vehicle you can not access. So for now this rules out a public hitching post which allows anyone to hitch and unhitch their own horses.

 

 

With a permission check on the animal itself through branding should resolve all issues on whether or not the creature could be unhitched in the first place. Resolving the issue of being able to unhitch said branded animal in the first place.
Which I am still confused how someone can specifically unhitch a branded animal, then choose to lead that same branded animal after unhitching it and re-hitch it to the post.

 

I actually have an instance where someone unhitched my branded horse from a post, put it on a lead to themselves and have now hitched it to their own Large Cart...

Edit: I wasn't aware they could be locked, so all our posts are Unlocked.
I still surprised to see that unhitching and leading that same animal afterwards, had no respect for any sort of branding on the animal.

I do feel a locked post should remain private though, after all this is why it's locked right? Unless there are permissions to grant outsider access anyway.
My biggest complaint/problem is the whole interaction with a branded critter and the apparent break it puts on that animal's branding permission checks.

Edited by Zera

Share this post


Link to post
Share on other sites

Actually it will work fine if you fix all the semicolons. Duplicate variables would be an issue if this was more then a print but it works as intended with all messages being at 1 with all variable names being the same. This same script is run on many different servers now without changing the variables and message number. It is not clean looking but will work as intended. I cleaned up all your semicolons below. See if it works for you now @Eject. IDE for a simple javascript, no thanks.. Just some attention to detail and Notepad++

 

var ProtoConstants = Packages.com.wurmonline.shared.constants.ProtoConstants;

function onPlayerLogin(player) {
	var titleWindow = "Server Info";
	var thePlayer = player.getName();
	var message = "Die Nutzung unserer Server setzt voraus dass du unsere Regeln gelesen hast und diese auch einhältst.";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Webseite: httpwww.necropolis.at/game";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Einstiegs-Guide für neue Spieler: http://www.necropolis.at/game/wichtige-infos-fuer-neue-spieler/";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Discord: https://discord.gg/pPZ97Eq";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Der GL-Freedom Chat ist unser Hauptchannel";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Melde dich einfach, wir helfen dir gerne weiter. Der CA-Help Chat ist für Spielbezogene Fragen";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Hilfe findest du auch im Wiki unter: http://www.wurmpedia.com";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Wir wünschen dir viel Spass auf unseren Servern und guten Erfolg.";
	player.showPM(titleWindow,titleWindow,message,1);
	var message = "Happy wurming, Orakel - Webmaster, Serverowner, Head-GM";
	player.showPM(titleWindow,titleWindow,message,1);
}
Edited by Jerone0601
  • Like 1

Share this post


Link to post
Share on other sites

One of the reasons for adding scriptrunner was to allow users to add some customizations to their servers without needing to build full Java mods. A case like Ejects login message can be done with just an editor, without the need to get into Mods, Java, Eclipse or IntelliJ and Maven or Gradle.

I had a ton of inquiries about how to setup an ide or how to get from a .java file to a mod. Scriptrunner reduces the number of those questions. It gets the people straight to stage two: Why doesn't this piece of (javascript or java) code work.

 

Nevertheless its highly recommended to use at least an editor which understands JavaScript syntax and can check the code for errors and other pitfalls. If the editor can't do it use tools like jslint. And check the logs.

 

Many of the issues users have are actually visible in the logs. Most mods print the configuration settings in the logs. Scriptrunner complains if the scripts folder is not present and errors in the scripts will produce huge ugly stack traces.

Share this post


Link to post
Share on other sites

Thanks all for your help

 

I use now Ago´s reworked code, it looks very cleaner but still i get no new chattab with the infos for the players.

 

var ProtoConstants = Packages.com.wurmonline.shared.constants.ProtoConstants;

function onPlayerLogin(player) {
	var titleWindow = "Server Info";
	var thePlayer = player.getName();
	var message;
	
	message = "Die Nutzung unserer Server setzt voraus dass du unsere Regeln gelesen hast und diese auch einhaeltst.";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Webseite: http.www.necropolis.at/game";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Einstiegs-Guide für neue Spieler: http://www.necropolis.at/game/wichtige-infos-fuer-neue-spieler/";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Discord: https://discord.gg/pPZ97Eq";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Du darfst maximal zwei Deeds auf einer Karte besitzen!";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Melde dich einfach, wir helfen dir gerne weiter. Der CA-Help Chat ist für Spielbezogene Fragen";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Hilfe findest du auch im Wiki unter: http://www.wurmpedia.com";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Wir wuenschen dir viel Spass auf unseren Servern und guten Erfolg.";
	player.showPM(titleWindow,titleWindow,message,false);
	message = "Happy wurming, Orakel - Webmaster, Serverowner, Head-GM";
	player.showPM(titleWindow,titleWindow,message,false);
}

i found one errormessage in the server.log but have no idea how to fix this

 

Spoiler

[12:34:59 PM] SCHWERWIEGEND org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunner.onPlayerLogin.greet.js: java.nio.charset.MalformedInputException: Input length = 1
javax.script.ScriptException: java.nio.charset.MalformedInputException: Input length = 1
    at jdk.nashorn.api.scripting.NashornScriptEngine.makeSource(NashornScriptEngine.java:221)
    at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:150)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptManager.refresh(ScriptManager.java:57)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptManager.invoke(ScriptManager.java:67)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunner.runScript(ScriptRunner.java:79)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunner.lambda$runScripts$2(ScriptRunner.java:92)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunner.runScripts(ScriptRunner.java:92)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunnerMod.lambda$run$1(ScriptRunnerMod.java:77)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
    at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
    at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunnerMod.run(ScriptRunnerMod.java:77)
    at org.gotti.wurmunlimited.mods.scriptrunner.ScriptRunnerMod.onPlayerLogin(ScriptRunnerMod.java:100)
    at org.gotti.wurmunlimited.modloader.server.ServerHook.lambda$fireOnPlayerLogin$7(ServerHook.java:64)
    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.fireOnPlayerLogin(ServerHook.java:64)
    at org.gotti.wurmunlimited.modloader.server.ProxyServerHook$4$1.invoke(ProxyServerHook.java:141)
    at org.gotti.wurmunlimited.modloader.classhooks.HookManager.invoke(HookManager.java:344)
    at com.wurmonline.server.LoginHandler.sendLoggedInPeople(LoginHandler.java)
    at com.wurmonline.server.LoginHandler.loadPlayer(LoginHandler.java:2470)
    at com.wurmonline.server.Server.sendFinals(Server.java:2772)
    at com.wurmonline.server.Server.run(Server.java:2456)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Caused by: java.nio.charset.MalformedInputException: Input length = 1
    at java.nio.charset.CoderResult.throwException(CoderResult.java:281)
    at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:339)
    at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
    at java.io.InputStreamReader.read(InputStreamReader.java:184)
    at java.io.BufferedReader.read1(BufferedReader.java:210)
    at java.io.BufferedReader.read(BufferedReader.java:286)
    at jdk.nashorn.internal.runtime.Source.readFully(Source.java:750)
    at jdk.nashorn.internal.runtime.Source$RawData.<init>(Source.java:174)
    at jdk.nashorn.internal.runtime.Source$RawData.<init>(Source.java:158)
    at jdk.nashorn.internal.runtime.Source.sourceFor(Source.java:518)
    at jdk.nashorn.api.scripting.NashornScriptEngine.makeSource(NashornScriptEngine.java:219)
    ... 37 more

 

Is it meaning that i cant use Ü Ö Ä ?

 

add: ok., removing the ä and ü also dont fix it

 

add2: i see now in the code is var thePlayer = player.getName();

 

but i cant see the variable below in the code.

Edited by Eject

Share this post


Link to post
Share on other sites

You need to save the file with UTF-8 character encoding. And you missed one "ü"

 

	message = "Einstiegs-Guide für neue Spieler: http://www.necropolis.at/game/wichtige-infos-fuer-neue-spieler/";

Share this post


Link to post
Share on other sites

Thanks, i removed the las ü, i just forget to edit it here in the forum.

I just edited the file, i thought if i save anythink on my pc its always utf-8, i never had a problem with edited files, ether if it is an JS or an edited classfile

 

Eject

Share this post


Link to post
Share on other sites

Finaly it works, thank you very much for all your help, it was realy just the utf-8 encoder

 

Eject

Share this post


Link to post
Share on other sites

I found this while going through my log for another mod:

 

[04:24:37 PM] WARNING org.gotti.wurmunlimited.modloader.EarlyLoadingChecker: Mod creaturemod loaded server class com.wurmonline.server.creatures.CreatureTypes during phase init

 

This is the 2.2 version, edited/updated by yourself @ago.
From what I understand this can be a big problem with other mods. Anyway this can get resolved?

Also curious why CreatureMod isn't listed with your others, I had to stumble upon it hidden within the creatures thread somewhere.

Hitching post also seems to cause a similar error to appear:

[04:24:34 PM] WARNING org.gotti.wurmunlimited.modloader.EarlyLoadingChecker: Mod hitchingpost loaded server class com.wurmonline.server.items.ItemTypes during phase load
[04:24:34 PM] WARNING org.gotti.wurmunlimited.modloader.EarlyLoadingChecker: Mod hitchingpost loaded server class com.wurmonline.server.MiscConstants during phase load

 

 

I've also for some reason having this spam my console:

[08:24:37 PM] INFO com.wurmonline.server.creatures.Communicator: Subcommand for reallyHandle_CMD_REQUEST_SELECT=3
[08:24:37 PM] INFO com.wurmonline.server.creatures.Communicator: Subcommand for reallyHandle_CMD_REQUEST_SELECT=3
[08:24:37 PM] INFO com.wurmonline.server.creatures.Communicator: Subcommand for reallyHandle_CMD_REQUEST_SELECT=3

 

Edited by Zera

Share this post


Link to post
Share on other sites

CreatureTypes, ItemTypes and MiscConstants are just classes with protocol constants. It's not useful to modify those classes but using the constants from those classes is extremly useful. This means there is little risk when those classes are frozen for edit but the benefits of using them are huge. After all it's just a warning to determine which mod is responsible if a class was frozen.

 

While I fixed a a compatibility issue with creaturemod and the newer servers I don't want to pull in all the work of maintaining the mod. That's why it's  not listed anywhere.

 

From the code it seems like the last messages appear when a player sends a lot of commands. The message is printed if the player sent more than 10 command in a second.

 

 

Edited by ago

Share this post


Link to post
Share on other sites
Spoiler

derp

 

nothing to see here, sorry

Edited by ozmods

Share this post


Link to post
Share on other sites

I deleted the additional packs located in my packs folder for Wurm Unlimited, in an attempt to redownload a file that appeared to be missing from my server to client downloads for my server.

However, now I am not receiving any pack information from my server at all which is leading all mod items and creature related packs to display incorrectly.

 

How do I go about fixing this?

 

EDIT: Nevermind, figured out what was wrong :P

Edited by Zera

Share this post


Link to post
Share on other sites

Hey. 

 

The spellmod is set to Favor limit 100, But one of our players have gone pass 100.. How could this be possible? 

Share this post


Link to post
Share on other sites
1 hour ago, Elsa said:

Hey. 

 

The spellmod is set to Favor limit 100, But one of our players have gone pass 100.. How could this be possible? 

Are you perhaps also using "Spellcraft"?
That can also change player faith limit.

  • Like 1

Share this post


Link to post
Share on other sites
5 hours ago, Zera said:

Are you perhaps also using "Spellcraft"?
That can also change player faith limit.

Thats it! Thanks

Share this post


Link to post
Share on other sites

Hello Ago

 

Is just the modloader to update or also the included mods?

 

Eject

Share this post


Link to post
Share on other sites

Version 0.34

modloader

  • Adjust for Wurm Unlimited 1.6 [bdew]
  • resistances, vulnerabilities, leaderTemplateId in CreatureTemplateBuilder
  • Added primary and secondary dye amount, secondary item to ItemTemplateBuilder

https://github.com/ago1024/WurmServerModLauncher/releases/tag/v0.34

 

@Eject

It's probably best to update the mods as well although there were no code changes

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, ago said:
  • resistances, vulnerabilities, leaderTemplateId in CreatureTemplateBuilder
  • Added primary and secondary dye amount, secondary item to ItemTemplateBuilder

Thank you!

Share this post


Link to post
Share on other sites

 I installed version 0.34. It does work

 

Edited by Oberrill
update
  • Like 1

Share this post


Link to post
Share on other sites

Is anyone else having crops rot with the update?  I installed the latest version of everything and my crops are spoiling.

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