void tchatbox::add_whisper_received(const std::string& sender, const std::string& message) { bool can_go_to_active = !preferences::whisper_friends_only() || preferences::is_friend(sender); bool can_open_new = preferences::auto_open_whisper_windows() && can_go_to_active; lobby_info().get_whisper_log(sender).add_message(sender, message); if(whisper_window_open(sender, can_open_new)) { if(whisper_window_active(sender)) { add_active_window_message(sender, message); do_notify(NOTIFY_WHISPER, sender, message); } else { add_whisper_window_whisper(sender, message); increment_waiting_whsipers(sender); do_notify(NOTIFY_WHISPER_OTHER_WINDOW, sender, message); } } else if(can_go_to_active) { add_active_window_whisper(sender, message); do_notify(NOTIFY_WHISPER, sender, message); } else { LOG_LB << "Ignoring whisper from " << sender << "\n"; } }
void tchatbox::add_whisper_sent(const std::string& receiver, const std::string& message) { if(whisper_window_active(receiver)) { add_active_window_message(preferences::login(), message, true); } else if(tlobby_chat_window* t = whisper_window_open(receiver, preferences::auto_open_whisper_windows())) { switch_to_window(t); add_active_window_message(preferences::login(), message, true); } else { add_active_window_whisper(vgettext("whisper to $receiver", {{"receiver", receiver}}), message, true); } lobby_info().get_whisper_log(receiver).add_message(preferences::login(), message); }
void tlobby_main::add_whisper_sent(const std::string& receiver, const std::string& message) { if(whisper_window_active(receiver)) { add_active_window_message(preferences::login(), message, true); } else if(tlobby_chat_window* t = whisper_window_open( receiver, preferences::auto_open_whisper_windows())) { switch_to_window(t); add_active_window_message(preferences::login(), message, true); } else { utils::string_map symbols; symbols["receiver"] = receiver; add_active_window_whisper(VGETTEXT("whisper to $receiver", symbols), message, true); } lobby_info_.get_whisper_log(receiver) .add_message(preferences::login(), message); }