use of org.pircbotx.User in project downlords-faf-client by FAForever.
the class PircBotXChatServiceTest method testChatMessageEventTriggeredByPrivateMessage.
@Test
public void testChatMessageEventTriggeredByPrivateMessage() throws Exception {
CompletableFuture<ChatMessage> chatMessageFuture = new CompletableFuture<>();
doAnswer(invocation -> chatMessageFuture.complete(((ChatMessageEvent) invocation.getArgument(0)).getMessage())).when(eventBus).post(any());
String message = "private message";
User user = mock(User.class);
when(user.getNick()).thenReturn(chatUser1.getUsername());
connect();
firePircBotXEvent(createPrivateMessageEvent(user, message));
ChatMessage chatMessage = chatMessageFuture.get(TIMEOUT, TIMEOUT_UNIT);
assertThat(chatMessage.getMessage(), is(message));
assertThat(chatMessage.getSource(), is(chatUser1.getUsername()));
assertThat(chatMessage.getUsername(), is(chatUser1.getUsername()));
assertThat(chatMessage.getTime(), is(greaterThan(Instant.ofEpochMilli(System.currentTimeMillis() - 1000))));
assertThat(chatMessage.isAction(), is(false));
}
use of org.pircbotx.User in project downlords-faf-client by FAForever.
the class PircBotXChatService method onPrivateMessage.
private void onPrivateMessage(PrivateMessageEvent event) {
User user = event.getUser();
if (user == null) {
logger.warn("Private message without user: {}", event);
return;
}
logger.debug("Received private message: {}", event);
Player sourcePlayer = playerService.getPlayerForUsername(user.getNick());
if (sourcePlayer != null && sourcePlayer.getSocialStatus() == SocialStatus.FOE && preferencesService.getPreferences().getChat().getHideFoeMessages()) {
log.debug("Suppressing chat message from foe '{}'", user.getNick());
return;
}
eventBus.post(new ChatMessageEvent(new ChatMessage(user.getNick(), Instant.ofEpochMilli(event.getTimestamp()), user.getNick(), event.getMessage())));
}
use of org.pircbotx.User in project downlords-faf-client by FAForever.
the class PircBotXChatService method onAction.
private void onAction(ActionEvent event) {
User user = event.getUser();
if (user == null) {
logger.warn("Action event without user: {}", event);
return;
}
String source;
org.pircbotx.Channel channel = event.getChannel();
if (channel == null) {
source = user.getNick();
} else {
source = channel.getName();
}
eventBus.post(new ChatMessageEvent(new ChatMessage(source, Instant.ofEpochMilli(event.getTimestamp()), user.getNick(), event.getMessage(), true)));
}
use of org.pircbotx.User in project downlords-faf-client by FAForever.
the class PircBotXChatService method postConstruct.
@PostConstruct
void postConstruct() {
eventBus.register(this);
fafService.addOnMessageListener(SocialMessage.class, this::onSocialMessage);
connectionState.addListener((observable, oldValue, newValue) -> {
switch(newValue) {
case DISCONNECTED:
case CONNECTING:
onDisconnected();
break;
}
});
addEventListener(NoticeEvent.class, this::onNotice);
addEventListener(ConnectEvent.class, event -> connectionState.set(ConnectionState.CONNECTED));
addEventListener(DisconnectEvent.class, event -> connectionState.set(ConnectionState.DISCONNECTED));
addEventListener(UserListEvent.class, event -> onChatUserList(event.getChannel().getName(), chatUsers(event.getUsers())));
addEventListener(JoinEvent.class, event -> onUserJoinedChannel(event.getChannel().getName(), getOrCreateChatUser(event.getUser())));
addEventListener(PartEvent.class, event -> onChatUserLeftChannel(event.getChannel().getName(), event.getUser().getNick()));
addEventListener(QuitEvent.class, event -> onChatUserQuit(event.getUser().getNick()));
addEventListener(TopicEvent.class, event -> getOrCreateChannel(event.getChannel().getName()).setTopic(event.getTopic()));
addEventListener(MessageEvent.class, this::onMessage);
addEventListener(ActionEvent.class, this::onAction);
addEventListener(PrivateMessageEvent.class, this::onPrivateMessage);
addEventListener(MotdEvent.class, this::onMotd);
addEventListener(OpEvent.class, event -> {
User recipient = event.getRecipient();
if (recipient != null) {
onModeratorSet(event.getChannel().getName(), recipient.getNick());
}
});
ChatPrefs chatPrefs = preferencesService.getPreferences().getChat();
chatPrefs.userToColorProperty().addListener((MapChangeListener<? super String, ? super Color>) change -> preferencesService.store());
chatPrefs.chatColorModeProperty().addListener((observable, oldValue, newValue) -> {
synchronized (chatUsersByName) {
switch(newValue) {
case CUSTOM:
chatUsersByName.values().stream().filter(chatUser -> chatPrefs.getUserToColor().containsKey(chatUser.getUsername().toLowerCase(US))).forEach(chatUser -> chatUser.setColor(chatPrefs.getUserToColor().get(chatUser.getUsername().toLowerCase(US))));
break;
case RANDOM:
for (ChatUser chatUser : chatUsersByName.values()) {
chatUser.setColor(ColorGeneratorUtil.generateRandomColor(chatUser.getUsername().hashCode()));
}
break;
default:
for (ChatUser chatUser : chatUsersByName.values()) {
chatUser.setColor(null);
}
}
}
});
}
use of org.pircbotx.User in project downlords-faf-client by FAForever.
the class PircBotXChatService method onMessage.
private void onMessage(MessageEvent event) {
User user = event.getUser();
if (user == null) {
logger.warn("Action event without user: {}", event);
return;
}
String source;
org.pircbotx.Channel channel = event.getChannel();
source = channel.getName();
eventBus.post(new ChatMessageEvent(new ChatMessage(source, Instant.ofEpochMilli(event.getTimestamp()), user.getNick(), event.getMessage(), false)));
}
Aggregations