示例#1
0
        public override void Execute()
        {
            User user = _persistance.GetUserFromIdent(_ident);

            if (!string.IsNullOrEmpty(user.Vhost))
            {
                var vhostOperCommmand = VhostOperCommmand.SetVhost(_nick, user.Vhost);
                OperCommands.Add(vhostOperCommmand);
            }
            if (user.AutoJoin)
            {
                foreach (var group in user.Groups)
                {
                    if (!string.IsNullOrEmpty(group.Channel))
                    {
                        var sajoinOperCommmand = SajoinOperCommmand.SetSaJoin(_nick, group.Channel);
                        OperCommands.Add(sajoinOperCommmand);
                        if (group.GroupAdmins.Contains(user))
                        {
                            var saModeOpsOperCommmand = SaModeOpsOperCommmand.SetSamode(_nick, group.Channel);
                            OperCommands.Add(saModeOpsOperCommmand);
                        }
                    }
                }
            }
        }
示例#2
0
        public override void Execute()
        {
            User          user  = _persistance.GetUserInfo(Mapping[SetHostArguments.Username]);
            List <string> nicks = _ircReadWriteExchange.GetWhoList().Where(i => i.Ident == user.Name).Select(n => n.Nick).ToList();

            if (nicks.Count == 0)
            {
                Messages.Add(string.Format("Can't change hostname, user {0} is currently offline", Mapping[SetHostArguments.Username]));
            }
            else
            {
                foreach (string nick in nicks)
                {
                    var command = VhostOperCommmand.SetVhost(nick, user.Vhost);
                    OperCommands.Add(command);
                }
                string processednicks = string.Join(" ,", nicks);
                Messages.Add(string.Format("Executing hostname change for user {0}, affected nick(s) {1}", Mapping[SetHostArguments.Username], processednicks));
            }
        }