From 54c3c4503adc502d7f860350e8daa39514960b5d Mon Sep 17 00:00:00 2001 From: Briar <205427297+icy-briar@users.noreply.github.com> Date: Sat, 3 May 2025 17:53:09 +0000 Subject: android: Add initial frontend for LAN network rooms (#76) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/76 Co-authored-by: Briar <205427297+icy-briar@users.noreply.github.com> Co-committed-by: Briar <205427297+icy-briar@users.noreply.github.com> --- src/network/room.cpp | 19 ++++++++++++++----- src/network/room.h | 6 +++++- 2 files changed, 19 insertions(+), 6 deletions(-) (limited to 'src/network') diff --git a/src/network/room.cpp b/src/network/room.cpp index d87db37de6..49d7ed3313 100644 --- a/src/network/room.cpp +++ b/src/network/room.cpp @@ -1,6 +1,10 @@ // SPDX-FileCopyrightText: Copyright 2017 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: Copyright yuzu/Citra Emulator Project / Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + + #include #include #include @@ -355,7 +359,14 @@ void Room::RoomImpl::HandleJoinRequest(const ENetEvent* event) { std::lock_guard lock(verify_uid_mutex); uid = verify_uid; } - member.user_data = verify_backend->LoadUserData(uid, token); + + if (verify_backend != nullptr) + member.user_data = verify_backend->LoadUserData(uid, token); + + if (nickname == room_information.host_username) { + member.user_data.moderator = true; + LOG_INFO(Network, "User {} is a moderator", std::string(room_information.host_username)); + } std::string ip; { @@ -574,8 +585,7 @@ bool Room::RoomImpl::HasModPermission(const ENetPeer* client) const { if (sending_member == members.end()) { return false; } - if (room_information.enable_yuzu_mods && - sending_member->user_data.moderator) { // Community moderator + if (sending_member->user_data.moderator) { // Community moderator return true; } @@ -1047,7 +1057,7 @@ bool Room::Create(const std::string& name, const std::string& description, const u32 max_connections, const std::string& host_username, const GameInfo preferred_game, std::unique_ptr verify_backend, - const Room::BanList& ban_list, bool enable_yuzu_mods) { + const Room::BanList& ban_list) { ENetAddress address; address.host = ENET_HOST_ANY; if (!server_address.empty()) { @@ -1069,7 +1079,6 @@ bool Room::Create(const std::string& name, const std::string& description, room_impl->room_information.port = server_port; room_impl->room_information.preferred_game = preferred_game; room_impl->room_information.host_username = host_username; - room_impl->room_information.enable_yuzu_mods = enable_yuzu_mods; room_impl->password = password; room_impl->verify_backend = std::move(verify_backend); room_impl->username_ban_list = ban_list.first; diff --git a/src/network/room.h b/src/network/room.h index edbd3ecfb2..780629ada3 100644 --- a/src/network/room.h +++ b/src/network/room.h @@ -1,6 +1,10 @@ // SPDX-FileCopyrightText: Copyright 2017 Citra Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: Copyright yuzu/Citra Emulator Project / Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + + #pragma once #include @@ -123,7 +127,7 @@ public: const u32 max_connections = MaxConcurrentConnections, const std::string& host_username = "", const GameInfo = {}, std::unique_ptr verify_backend = nullptr, - const BanList& ban_list = {}, bool enable_yuzu_mods = false); + const BanList& ban_list = {}); /** * Sets the verification GUID of the room. -- cgit v1.2.3