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 |
public synchronized void onTimeout(RPObject character) { |
||
onExit( |
onExit(character); |
||
} |
} |
||
@Override |
|||
public synchronized boolean onExit(RPObject |
public synchronized boolean onExit(RPObject character) { |
||
world.remove( |
world.remove(character.getID()); |
||
return true; |
return true; |
||
} |
} |
||
@Override |
|||
public synchronized boolean onInit(RPObject |
public synchronized boolean onInit(RPObject character) { |
||
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby")); |
IRPZone zone = world.getRPZone(new IRPZone.ID("lobby")); |
||
zone.add( |
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 |
RPObject chatEntry = new RPObject(); |
||
chatEntry.put("text", action.get("text")); |
|||
chatEntry.put("from", caster.get("nick")); |
|||
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( |
zone.assignRPObjectID(chatEntry); |
||
zone.add( |
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 |
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, |
if (characterDAO.hasCharacter(trans, username, characterName)) { |
||
return new CharacterResult(Result. |
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 |
RPObject character = new RPObject(template); |
||
character.put("nick", characterName); |
|||
zone.assignRPObjectID( |
zone.assignRPObjectID(character); |
||
characterDAO.addCharacter(trans, username, |
characterDAO.addCharacter(trans, username, characterName, character); |
||
transactionPool.commit(trans); |
transactionPool.commit(trans); |
||
return new CharacterResult(Result.OK_CREATED, |
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, |
return new CharacterResult(Result.FAILED_EXCEPTION, characterName, template); |
||
} |
} |
||
} |
} |
||