public void OnUpdateParty(UpdatePartyMessage message) { BasePlayerCharacterEntity playerCharacterEntity; PartyData party; if (ServerPartyHandlers.TryGetParty(message.id, out party)) { switch (message.type) { case UpdatePartyMessage.UpdateType.ChangeLeader: party.SetLeader(message.characterId); ServerPartyHandlers.SetParty(message.id, party); ServerGameMessageHandlers.SendSetPartyLeaderToMembers(party); break; case UpdatePartyMessage.UpdateType.Setting: party.Setting(message.shareExp, message.shareItem); ServerPartyHandlers.SetParty(message.id, party); ServerGameMessageHandlers.SendSetPartySettingToMembers(party); break; case UpdatePartyMessage.UpdateType.Terminate: foreach (string memberId in party.GetMemberIds()) { if (ServerUserHandlers.TryGetPlayerCharacterById(memberId, out playerCharacterEntity)) { playerCharacterEntity.ClearParty(); ServerGameMessageHandlers.SendClearPartyData(playerCharacterEntity.ConnectionId, message.id); } } ServerPartyHandlers.RemoveParty(message.id); break; } } }