초기커밋
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
public class NotifyJoinPartyMemberHandler
|
||||
{
|
||||
public async Task recvJoinPartyMember(ServerMessage.Types.JoinPartyMemberNoti notify)
|
||||
{
|
||||
var join_info = JsonConvert.DeserializeObject<PartyMemberInfo>(notify.JoinPartyMemberInfo);
|
||||
if (null == join_info) return;
|
||||
|
||||
var global_party = GameServerApp.getServerLogic().findGlobalEntity<GlobalParty>();
|
||||
ArgumentNullException.ThrowIfNull(global_party);
|
||||
|
||||
var party = global_party.getParty(notify.PartyGuid);
|
||||
ArgumentNullException.ThrowIfNull(party);
|
||||
|
||||
// 1. join member 등록
|
||||
var member_action = party.getEntityAction<GlobalPartyDetailMemberAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(member_action, () => $"member_action is null !!!");
|
||||
var change = await member_action.changeMember(join_info);
|
||||
if (change.result.isFail()) return;
|
||||
|
||||
// 2. 메시지 전송
|
||||
var client_message = new ClientToGame();
|
||||
client_message.Message = new();
|
||||
client_message.Message.JoinPartyMemberNoti = new();
|
||||
client_message.Message.JoinPartyMemberNoti.JoinPartyMemberGuid = join_info.UserGuid;
|
||||
client_message.Message.JoinPartyMemberNoti.JoinMemberInfo = new PartyMemberState();
|
||||
client_message.Message.JoinPartyMemberNoti.JoinMemberInfo.MarkId = join_info.MarkId;
|
||||
client_message.Message.JoinPartyMemberNoti.JoinMemberInfo.MemberGuid = join_info.UserGuid;
|
||||
client_message.Message.JoinPartyMemberNoti.JoinMemberInfo.MemberNickname = join_info.Nickname;
|
||||
client_message.Message.JoinPartyMemberNoti.JoinMemberInfo.LocationInfo = join_info.LocationInfo;
|
||||
|
||||
PartyHelper.BroadcastToClients(party, client_message, new List<string>());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user