Marauroa Chat Tutorial/Server: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
No edit summary
imported>Fjacob
Cleaned up java code to adhere to the java coding conventions, changed some variable names to be more explicit.
Line 22: Line 22:
}
}
@Override
public void onInit() {
public void onInit() {
super.onInit();
super.onInit();
Line 38: Line 39:
<!-- Please, see details here http://stendhal.game-host.org/wiki/index.php/Refactoring_Database_Access_in_Marauroa. -->
<!-- Please, see details here http://stendhal.game-host.org/wiki/index.php/Refactoring_Database_Access_in_Marauroa. -->
<source lang="java">
<source lang="java">
import java.util.List;
import java.sql.SQLException;
import java.sql.SQLException;


Line 71: Line 71:
}
}


@Override
public void setContext(RPServerManager rpman) {
public void setContext(RPServerManager rpman) {
manager = rpman;
manager = rpman;
}
}


@Override
public boolean checkGameVersion(String game, String version) {
public boolean checkGameVersion(String game, String version) {
return game.equals("Chat");
return game.equals("Chat");
}
}


@Override
public synchronized void onTimeout(RPObject object) {
public synchronized void onTimeout(RPObject character) {
onExit(object);
onExit(character);
}
}


@Override
public synchronized boolean onExit(RPObject object) {
public synchronized boolean onExit(RPObject character) {
world.remove(object.getID());
world.remove(character.getID());
return true;
return true;
}
}


@Override
public synchronized boolean onInit(RPObject object) {
public synchronized boolean onInit(RPObject character) {
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
zone.add(object);
zone.add(character);
return true;
return true;
}
}


@Override
public synchronized void beginTurn() {
public synchronized void beginTurn() {
}
}


@Override
public boolean onActionAdd(RPObject caster, RPAction action, List<RPAction> actionList) {
public boolean onActionAdd(RPObject caster, RPAction action, List<RPAction> actionList) {
return true;
return true;
}
}


@Override
public synchronized void endTurn() {
public synchronized void endTurn() {
}
}


@Override
public void execute(RPObject caster, RPAction action) {
public void execute(RPObject caster, RPAction action) {
if (action.get("type").equals("chat")) {
if (action.get("type").equals("chat")) {
RPObject chat_entry = new RPObject();
RPObject chatEntry = new RPObject();
chat_entry.put("text", action.get("text"));
chatEntry.put("text", action.get("text"));
chat_entry.put("from", caster.get("nick"));
chatEntry.put("from", caster.get("nick"));
chat_entry.put("turn", manager.getTurn());
chatEntry.put("turn", manager.getTurn());
IRPZone zone = world.getRPZone(new IRPZone.ID(caster.getID().getZoneID()));
IRPZone zone = world.getRPZone(new IRPZone.ID(caster.getID().getZoneID()));
zone.assignRPObjectID(chat_entry);
zone.assignRPObjectID(chatEntry);
zone.add(chat_entry);
zone.add(chatEntry);
}
}
}
}


@Override
public AccountResult createAccount(String username, String password, String email) {
public AccountResult createAccount(String username, String password, String email) {
TransactionPool transactionPool = TransactionPool.get();
TransactionPool transactionPool = TransactionPool.get();
Line 134: Line 144:
}
}


@Override
public CharacterResult createCharacter(String username, String character, RPObject template) {
public CharacterResult createCharacter(String username, String characterName, RPObject template) {
TransactionPool transactionPool = TransactionPool.get();
TransactionPool transactionPool = TransactionPool.get();
DBTransaction trans = transactionPool.beginWork();
DBTransaction trans = transactionPool.beginWork();
CharacterDAO characterDAO = DAORegister.get().get(CharacterDAO.class);
CharacterDAO characterDAO = DAORegister.get().get(CharacterDAO.class);
try {
try {
if (characterDAO.hasCharacter(trans, username, character)) {
if (characterDAO.hasCharacter(trans, username, characterName)) {
return new CharacterResult(Result.FAILED_PLAYER_EXISTS, character, template);
return new CharacterResult(Result.FAILED_CHARACTER_EXISTS, characterName, template);
}
}
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby"));
RPObject object = new RPObject(template);
RPObject character = new RPObject(template);
object.put("nick", character);
character.put("nick", characterName);
zone.assignRPObjectID(object);
zone.assignRPObjectID(character);
characterDAO.addCharacter(trans, username, character, object);
characterDAO.addCharacter(trans, username, characterName, character);
transactionPool.commit(trans);
transactionPool.commit(trans);
return new CharacterResult(Result.OK_CREATED, character, object);
return new CharacterResult(Result.OK_CREATED, characterName, character);
} catch (Exception e1) {
} catch (Exception e1) {
transactionPool.rollback(trans);
transactionPool.rollback(trans);


return new CharacterResult(Result.FAILED_EXCEPTION, character, template);
return new CharacterResult(Result.FAILED_EXCEPTION, characterName, template);
}
}
}
}