Beispiel #1
0
        private void ChannelMembersChanged(IChannel target, ChannelMemberChangeEventArgs args)
        {
            foreach (var addition in args.NewMembers)
            {
                Send(addition.Subject.IrcFullId, "JOIN", target.IrcName);

                if (addition.IsOperator)
                {
                    SendFromServer("MODE", target.IrcName, "+o", addition.Subject.IrcNick);
                }
                if (addition.NewPosition <= PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "+v", addition.Subject.IrcNick);
                }
            }

            foreach (var change in args.ChangedMembers)
            {
                if (change.IsOperator && !change.WasOperator)
                {
                    SendFromServer("MODE", target.IrcName, "+o", change.Subject.IrcNick);
                }
                else if (!change.IsOperator && change.WasOperator)
                {
                    SendFromServer("MODE", target.IrcName, "-o", change.Subject.IrcNick);
                }

                if (change.NewPosition <= PositionCategory.Talk && change.OldPosition > PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "+v", change.Subject.IrcNick);
                }
                else if (change.NewPosition > PositionCategory.Talk && change.OldPosition <= PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "-v", change.Subject.IrcNick);
                }
            }

            foreach (var deletion in args.RemovedMembers)
            {
                Send(deletion.Subject.IrcFullId, "PART", target.IrcName);
            }
        }
        private void ChannelMembersChanged(IChannel target, ChannelMemberChangeEventArgs args)
        {
            foreach(var addition in args.NewMembers)
            {
                Send(addition.Subject.IrcFullId, "JOIN", target.IrcName);

                if(addition.IsOperator)
                {
                    SendFromServer("MODE", target.IrcName, "+o", addition.Subject.IrcNick);
                }
                if(addition.NewPosition <= PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "+v", addition.Subject.IrcNick);
                }
            }

            foreach(var change in args.ChangedMembers)
            {
                if(change.IsOperator && !change.WasOperator)
                {
                    SendFromServer("MODE", target.IrcName, "+o", change.Subject.IrcNick);
                }
                else if (!change.IsOperator && change.WasOperator)
                {
                    SendFromServer("MODE", target.IrcName, "-o", change.Subject.IrcNick);
                }

                if(change.NewPosition <= PositionCategory.Talk && change.OldPosition > PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "+v", change.Subject.IrcNick);
                }
                else if (change.NewPosition > PositionCategory.Talk && change.OldPosition <= PositionCategory.Talk)
                {
                    SendFromServer("MODE", target.IrcName, "-v", change.Subject.IrcNick);
                }
            }

            foreach(var deletion in args.RemovedMembers)
            {
                Send(deletion.Subject.IrcFullId, "PART", target.IrcName);
            }
        }