using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer; public class NotifyChangePartyMemberMarker { public async Task recvChangePartyMemberMarkerHandler(ServerMessage.Types.ExchangePartyMemberMarkNoti notify) { var global_party = GameServerApp.getServerLogic().findGlobalEntity(); ArgumentNullException.ThrowIfNull(global_party); var party = global_party.getParty(notify.PartyGuid); ArgumentNullException.ThrowIfNull(party); var party_member_action = party.getEntityAction(); ArgumentNullException.ThrowIfNull(party_member_action); // 1. 파티원 마커 변경 var result = await party_member_action.changeMemberMaker(notify.MemberUserGuid, notify.MarkId, false); if (result.isFail()) return; // 2. 변경 알림 var client_message = new ClientToGame() { Message = new() { ExchangePartyMemberMarkNoti = new() { MarkId = notify.MarkId, MemberUserGuid = notify.MemberUserGuid } } }; PartyHelper.BroadcastToClients(party, client_message, new List()); } }