From 0823d8e009aa556c64dba6b2963b3cae52b7693a Mon Sep 17 00:00:00 2001 From: zhupengfei Date: Fri, 9 Nov 2018 21:56:58 +0800 Subject: [PATCH] citra: add status messages and fix missing errors --- src/citra/citra.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp index d09a6ddc1..631e4d766 100644 --- a/src/citra/citra.cpp +++ b/src/citra/citra.cpp @@ -99,6 +99,10 @@ static void OnStateChanged(const Network::RoomMember::State& state) { "connected to the Room"); exit(1); break; + case Network::RoomMember::State::ConsoleIdCollision: + LOG_ERROR(Network, "Your Console ID conflicted with someone else in the Room"); + exit(1); + break; case Network::RoomMember::State::WrongPassword: LOG_ERROR(Network, "Room replied with: Wrong password"); exit(1); @@ -108,6 +112,10 @@ static void OnStateChanged(const Network::RoomMember::State& state) { "You are using a different version than the room you are trying to connect to"); exit(1); break; + case Network::RoomMember::State::RoomIsFull: + LOG_ERROR(Network, "The room is full"); + exit(1); + break; default: break; } @@ -117,6 +125,20 @@ static void OnMessageReceived(const Network::ChatEntry& msg) { std::cout << std::endl << msg.nickname << ": " << msg.message << std::endl << std::endl; } +static void OnStatusMessageReceived(const Network::StatusMessageEntry& msg) { + std::string message; + switch (msg.type) { + case Network::IdMemberJoin: + message = fmt::format("{} has joined", msg.nickname); + break; + case Network::IdMemberLeave: + message = fmt::format("{} has left", msg.nickname); + break; + } + if (!message.empty()) + std::cout << std::endl << "* " << message << std::endl << std::endl; +} + static void InitializeLogging() { Log::Filter log_filter(Log::Level::Debug); log_filter.ParseFilterString(Settings::values.log_filter); @@ -334,6 +356,7 @@ int main(int argc, char** argv) { if (use_multiplayer) { if (auto member = Network::GetRoomMember().lock()) { member->BindOnChatMessageRecieved(OnMessageReceived); + member->BindOnStatusMessageReceived(OnStatusMessageReceived); member->BindOnStateChanged(OnStateChanged); LOG_DEBUG(Network, "Start connection to {}:{} with nickname {}", address, port, nickname);