public static CNetLeaveChatChannelRMR LeaveChatChannelRMC(Session session, CNetLeaveChatChannelRMC data) { ChatChannel.Leave(data.ChannelId, session.Player); return(new CNetLeaveChatChannelRMR(true) { Status = 0 }); }
/// <summary>Handles an incoming channel leave request</summary> /// <param name="client">the client the incoming packet belongs to</param> /// <param name="packet">the full packet</param> public static void HandleLeaveChannel(IRealmClient client, RealmPacketIn packet) { int num = (int)packet.ReadUInt32(); string channelName = packet.ReadCString(); ChatChannel chatChannel = ChatChannelGroup.RetrieveChannel(client.ActiveCharacter, channelName); if (chatChannel == null) { return; } chatChannel.Leave(client.ActiveCharacter, false); }
/// <summary> /// Invoked when a <see cref="GuildMember"/> goes offline. /// </summary> protected override void MemberOffline(GuildMember member) { // remove member to any chat channels if applicable if (member.Rank.HasPermission(GuildRankPermission.MemberChat)) { memberChannel?.Leave(member.CharacterId); } if (member.Rank.HasPermission(GuildRankPermission.OfficerChat)) { officerChannel?.Leave(member.CharacterId); } base.MemberOffline(member); }