Create a Stendhal server extension: Difference between revisions

Content deleted Content added
imported>Hendrik Brummermann
imported>Hendrik Brummermann
added navigation menu
 
(22 intermediate revisions by the same user not shown)
Line 1:
{{Navigation for Stendhal Top|Building & Hosting}}
 
How to create a server extension? This will teach you how to! Todays project: add the commands "/date" and "/time" for the users, so that they can check what time or what date it is.
==Requirements==
Whats required?
*An OS
Line 8 ⟶ 10:
*Java knowledge is recommened
 
==Getting your own setup==
Ok, let's be cliched here. The "hello, world!" of stendhal server extensions!
 
===The file===
Create a file in <downloaded stendhal source>/src/games/stendhal/server/extension/ called "HelloWorldExtension.java" and add this to it (just for now):
<source lang="java">
Line 83 ⟶ 85:
Now, I'm not going to re-post the entire script, as it gets to be just under 100 lines of code, and I don't want a INCREDIBLY long page!
First, we import a new class: <code>java.util.Calendar</code> With that, we can get the current date and time! Then, add these lines to your class method:
<source lang="java">
<pre>
StendhalRPRuleProcessor.register("date", this);
StendhalRPRuleProcessor.register("time", this);
</presource>
These register the date and time commands. Now, we add the if to onAction:
<source lang="java">
<pre>
if (type.equals("date")) {
onDate(world, rules, player, action);
Line 94 ⟶ 96:
onTime(world, rules, player, action);
}
</presource>
And add the two functions onDate and onTime:
<source lang="java">
<pre>
private void onDate(RPWorld world, StendhalRPRuleProcessor rules,
Player player, RPAction action) {
Line 109 ⟶ 111:
player.sendPrivateText("The current time is: " + calendar.getTime().toString());
}
</presource>
That's it! Now, just recompile your server, and boom! Your 75% there! Now, one last thing; configuring the server to moticeload your new extension.
 
==Configuration of marauroa==
Now, again open upthe file server marauroaserver.ini, and add these lines:
 
==Configuration of marauroa==
Now, again open up marauroa.ini, and add these lines:
<pre>
date_time=games.stendhal.server.extension.DateAndTimeExtension
server_extension=date_time
</pre>
Now, if you've been following the tut, don't just copy/paste the second line - add 'date_time' to the end of the list, with a comma before it. Also, if you've saved the file somewhere else other than where the Spouse extension is (which I don't recommend doing, it's in a folder called "extension") you're going to have to change the class path to point to that.
 
Now, if you've been following the tut, don't just copy/paste the second line - add 'date_time' to the end of the list, with a comma before it. Also, if you've saved the file somewhere else other than where the Spouse extension is (which I don't recommend doing, it's in a folder called "extension") you're going to have to change the class path to point to that.
=Done=
 
==Done==
Done! Now you've completely added 2 extensions, one of which is pointless other than, "I did it! I did it!" Have your users be notified of the change; they may or may not like it!