예제 #1
0
        public static CNetLeaveChatChannelRMR LeaveChatChannelRMC(Session session, CNetLeaveChatChannelRMC data)
        {
            ChatChannel.Leave(data.ChannelId, session.Player);

            return(new CNetLeaveChatChannelRMR(true)
            {
                Status = 0
            });
        }
예제 #2
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);
        }
예제 #3
0
        /// <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);
        }