@Override public void run() { if (player instanceof IHumanPlayer) { DisplayStateMessage message = new DisplayStateMessage(messageKey, state, messageParams); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, message)); } } }
args = new Object[]{((DisplayStateMessage)message).getState()}; Runnable runnable = (Runnable) context.getBean("viewChangeDialogStateRunnable", args); EventHandler<MouseEvent> openDialogEvenHandler = evt -> runnable.run();
} else if (message instanceof DisplayStateMessage) { label.setLinkText(true); EventHandler<MouseEvent> openDialogEvenHandler = createEventHandlerFromRunnable(eventHandlerFactory.getViewChangeActionRunnable(((DisplayStateMessage)message).getState())); label.setOnMouseReleased(openDialogEvenHandler);
/** * Post a message that will end up in the message queue. * @param state dialog state for the display message * @param player player to whom the message is posted * @param messageKey text key of the display state message * @param messageParams message parameters for the message */ public void postToHumanPlayer(IDialogState state, IPlayer player, String messageKey, Object... messageParams) { if (player instanceof IHumanPlayer) { DisplayStateMessage message = new DisplayStateMessage(messageKey, state, messageParams); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, message)); } } }
private EventHandler<MouseEvent> createAcceptOffer() { return mouseEvent -> { try { // post DisplayStateMessage LocalDateTime weddingDate = date.getCurrentDate().plusDays(21); MarriageAnnouncementState announcementState = MarriageAnnouncementState.builder() .date(date.getCurrentDate()) .player(state.getPlayer()) .spouse(state.getSpouse()) .weddingDate(weddingDate) .build(); DisplayStateMessage message = new DisplayStateMessage("ch.sahits.game.openpatrician.engine.event.EventEngine.message.marriage.title", announcementState); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) state.getPlayer(), message)); // TODO: 12.03.17 why do we have a targeted event here? we can sending it directly, as the user is the target. clientEventBus.post(announcementState); // Schedule the celebration CelebrationTask task = taskFactory.getMarriageCelebrationEvent(weddingDate, state.getPlayer(), state.getPlayer().getHometown(), state.getSpouse()); taskList.add(task); } catch (RuntimeException e) { logger.error("Failed to order marriage celebrations", e); } }; } }
.date(date.getCurrentDate()) .build(); DisplayStateMessage message = new DisplayStateMessage("ch.sahits.game.openpatrician.engine.event.EventEngine.message.socialAdvancement.title", state, new Object[0]); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, message)); .reputation(reputationLow) .build(); DisplayStateMessage message = new DisplayStateMessage("ch.sahits.game.openpatrician.engine.event.EventEngine.message.socialAdvancement.title", state, new Object[0]); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, message)); .build(); if (player instanceof IHumanPlayer) { DisplayStateMessage message = new DisplayStateMessage("ch.sahits.game.openpatrician.engine.event.EventEngine.message.buildingPermission.title", state, new Object[]{city.getName()}); clientServerEventBus.post(new TargetedEvent((IHumanPlayer) player, message));