Marauroa Chat Tutorial/Server: Difference between revisions
Content deleted Content added
imported>Hendrik Brummermann |
imported>Hendrik Brummermann added missing call to world.initialize() as reported by maxgmer |
||
| (27 intermediate revisions by 2 users not shown) | |||
Line 1:
{{Navigation for Marauroa Top|Using}}
{{Navigation for Marauroa Users}}
{{Marauroa Chat Tutorial}}
Line 18:
if (instance == null) {
instance = new World();
instance.initialize();
}
return instance;
}
@Override
public void onInit() {
super.onInit();
Line 38 ⟶ 40:
<!-- Please, see details here http://stendhal.game-host.org/wiki/index.php/Refactoring_Database_Access_in_Marauroa. -->
<source lang="java">
import java.sql.SQLException;
Line 71 ⟶ 72:
}
@Override
public void setContext(RPServerManager rpman) {
manager = rpman;
}
@Override
public boolean checkGameVersion(String game, String version) {
return game.equals("Chat");
}
@Override
public synchronized void onTimeout(RPObject
onExit(
}
@Override
public synchronized boolean onExit(RPObject
world.remove(
return true;
}
@Override
public synchronized boolean onInit(RPObject
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
zone.add(
return true;
}
@Override
public synchronized void beginTurn() {
}
@Override
public boolean onActionAdd(RPObject caster, RPAction action, List<RPAction> actionList) {
return true;
}
@Override
public synchronized void endTurn() {
}
@Override
public void execute(RPObject caster, RPAction action) {
if (action.get("type").equals("chat")) {
RPObject
IRPZone zone = world.getRPZone(new IRPZone.ID(caster.getID().getZoneID()));
zone.assignRPObjectID(
zone.add(
}
}
@Override
public AccountResult createAccount(String username, String password, String email) {
TransactionPool transactionPool = TransactionPool.get();
Line 134 ⟶ 145:
}
@Override
public CharacterResult createCharacter(String username, String
TransactionPool transactionPool = TransactionPool.get();
DBTransaction trans = transactionPool.beginWork();
CharacterDAO characterDAO = DAORegister.get().get(CharacterDAO.class);
try {
if (characterDAO.hasCharacter(trans, username,
return new CharacterResult(Result.
}
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
RPObject
zone.assignRPObjectID(
characterDAO.addCharacter(trans, username,
transactionPool.commit(trans);
return new CharacterResult(Result.OK_CREATED,
} catch (Exception e1) {
transactionPool.rollback(trans);
return new CharacterResult(Result.FAILED_EXCEPTION,
}
}
Line 171 ⟶ 183:
== Deployment ==
So, we have two files, World.java and Rule.java, which contain the classes mentioned above.
<pre>
javac -cp marauroa.jar;log4j.jar;. *.java
</pre>
On Linux and MacOSX, you have to replace the ";" with ":".
<pre>
javac -cp marauroa.jar:log4j.jar:. *.java
</pre>
Line 206 ⟶ 222:
<pre>
java -cp marauroa.jar;h2.jar;log4j.jar;. marauroa.server.marauroad -c server.ini
</pre>
Again, on Linux and MacOSX, you have to replace the ";" with ":".
<pre>
java -cp marauroa.jar:h2.jar:log4j.jar:. marauroa.server.marauroad -c server.ini
</pre>
Line 212 ⟶ 232:
== Next Steps ==
In the next section of this tutorial, we will write the '''[[Marauroa Chat Tutorial/Text Client|client]]''' which will connect to our server.
[[Category:Marauroa]]
{{#breadcrumbs: [[Marauroa]] | [[Navigation for Marauroa Users|Using]] | [[Marauroa Chat Tutorial|Tutorial]] | [[Marauroa Chat Tutorial/Server|Server]]}}
| |||