1 /** 2 * 3 */ 4 package games.stendhal.server.core.events; 5 6 import games.stendhal.common.NotificationType; 7 import games.stendhal.server.core.engine.SingletonRepository; 8 import games.stendhal.server.core.engine.dbcommand.StoreMessageCommand; 9 import games.stendhal.server.entity.player.Player; 10 import marauroa.server.db.command.DBCommandQueue; 11 12 /** 13 * Sends a private message to a player after a short delay, and if they weren't online, uses postman 14 * 15 * @author kymara 16 * 17 */ 18 public class GuaranteedDelayedPlayerTextSender extends DelayedPlayerTextSender { 19 private final String source; 20 21 /** 22 * Creates a new GuaranteedDelayedPlayerTextSender. 23 * @param source 24 * @param player 25 * @param message 26 * @param seconds 27 */ GuaranteedDelayedPlayerTextSender(final String source, final Player player, final String message, int seconds)28 public GuaranteedDelayedPlayerTextSender(final String source, final Player player, final String message, 29 int seconds) { 30 super(player, message, seconds); 31 this.source = source; 32 } 33 34 @Override onTurnReached(final int currentTurn)35 public void onTurnReached(final int currentTurn) { 36 final String playername = player.getName(); 37 final Player playerNow = SingletonRepository.getRuleProcessor().getPlayer(playername); 38 if (playerNow != null) { 39 playerNow.sendPrivateText(NotificationType.PRIVMSG, source + " tells you:\n" + message); 40 } else { 41 DBCommandQueue.get().enqueue(new StoreMessageCommand(source, playername, message, "N")); 42 } 43 } 44 } 45