Esempio n. 1
0
            async Task Responce_Pref(string Msg, MessageEventArgs e)
            {
                // Automove
                if (('-' + Msg).CommandCheck("automove"))
                {
                    UserDatas.GetByUser(e.User).AutoMove = !UserDatas.GetByUser(e.User).AutoMove;
                    await e.Channel.SendMessage(e.User.Mention + ", your **Automove** preference has been changed to `" + ((UserDatas.GetByUser(e.User).AutoMove) ? "allow`" : "do not allow`"));

                    WriteLine("Command: Changed " + e.User.Name + "'s Automove pref to " + UserDatas.GetByUser(e.User).AutoMove.ToString());
                }
                // AFKMove
                else if (('-' + Msg).CommandCheck("afkmove"))
                {
                    UserDatas.GetByUser(e.User).AFKMove = !UserDatas.GetByUser(e.User).AFKMove;
                    await e.Channel.SendMessage(e.User.Mention + ", your **AFKmove** preference has been changed to `" + ((UserDatas.GetByUser(e.User).AFKMove) ? "allow`" : "do not allow`"));

                    WriteLine("Command: Changed " + e.User.Name + "'s AFKmove pref to " + UserDatas.GetByUser(e.User).AFKMove.ToString());
                }
                // DoNotTrack
                else if (('-' + Msg).CommandCheck("track"))
                {
                    UserDatas.GetByUser(e.User).AFKMove = !UserDatas.GetByUser(e.User).Track;
                    await e.Channel.SendMessage(e.User.Mention + ", your **Track** preference has been changed to `" + ((UserDatas.GetByUser(e.User).Track) ? "allow tracking`" : "do not track`"));

                    WriteLine("Command: Changed " + e.User.Name + "'s Track pref to " + UserDatas.GetByUser(e.User).Track.ToString());
                }
                else
                {
                    (await e.Channel.SendMessage(":anger: Could not determine what preference you meant, " + e.User.Mention)).Timed(60);
                    WriteLine("Command Error: Could not determine preference");
                }
            }
Esempio n. 2
0
            async Task Responce_Unban(string Msg, MessageEventArgs e)
            {
                var Targets = e.Message.MentionedUsers.Where(x => !x.IsBot);

                if (Targets != null)
                {
                    foreach (var U in Targets)
                    {
                        if (UserDatas.GetByUser(U).BanList.Contains(e.User.Id))
                        {
                            UserDatas.GetByUser(U).BanList.Remove(e.User.Id);
                            await e.Channel.SendMessage(e.User.Mention + " removed his vote to **Ban** " + U.Mention + "\nMaking a total of: " + UserDatas.GetByUser(U).BanCount + " / 3 votes");
                        }
                        else
                        {
                            (await e.Channel.SendMessage("You haven't voted to ban " + U.Mention + "\nHe has a total of: " + UserDatas.GetByUser(U).BanCount + " / 3 votes")).Timed(120);
                        }
                    }
                }
                else
                {
                    (await e.Channel.SendMessage(":anger: Could not find a user")).Timed(40);
                    WriteLine("Command Error: Could not determine a user");
                    return;
                }
            }
Esempio n. 3
0
    IEnumerator signin()
    {
        WWWForm form = new WWWForm();

        form.AddField("username", inputs [1].GetComponentInChildren <InputField>().text);
        form.AddField("password", inputs [0].GetComponentInChildren <InputField>().text);
        UnityWebRequest www = UnityWebRequest.Post(serverAddress + "/signin", form);

        yield return(www.Send());

        if (www.isNetworkError)
        {
            Debug.Log(www.error);
        }
        else
        {
            if (user.username != null)
            {
                user = user.create(www.downloadHandler.text);
                Dictionary <string, string> val = new Dictionary <string, string>();
                val["id"] = user._id;
                socket.Emit("updateMySocketId", new JSONObject(val));
                SceneManager.LoadScene("Homepage", LoadSceneMode.Single);
            }
        }
    }
Esempio n. 4
0
        internal URegisterResp RegisterState(UserDatas user)
        {
            using (var db = new UserContext())
            {
                var pass       = LoginHelper.HashGen(user.Password);
                var passrepeat = LoginHelper.HashGen(user.RepeatPassword);
                user.Password       = pass;
                user.RepeatPassword = passrepeat;

                if (db.Users.Any(x => x.Username == user.Username))
                {
                    return(new URegisterResp()
                    {
                        Status = false, StatusMsg = "The Username already exist! Please try again."
                    });
                }

                if (db.Users.Any(x => x.Email == user.Email))
                {
                    return(new URegisterResp()
                    {
                        Status = false, StatusMsg = "The Email already exist! Please try again."
                    });
                }

                db.Users.Add(user);
                db.SaveChanges();
                return(new URegisterResp()
                {
                    Status = true, StatusMsg = ""
                });
            }
        }
Esempio n. 5
0
 public void Setup()
 {
     mockProductManagementContext = new Sqlite().CreateSqliteConnection();
     productRepository            = new ProductRepository(mockProductManagementContext);
     mockProductDatas             = new ProductDatas();
     mockUserDatas = new UserDatas();
 }
Esempio n. 6
0
 public void SetUp()
 {
     mockCouponManagementContext = new Sqlite().CreateSqliteConnection();
     couponRepository            = new CouponRepository(mockCouponManagementContext);
     mockCouponData = new CouponData();
     mockUserDatas  = new UserDatas();
 }
Esempio n. 7
0
        public static void ShadowBan(this User U)
        {
            var Dat = UserDatas.GetByUser(U);

            Dat.BanList = new List <ulong>();
            Dat.TotalBans++;
            Dat.UnbanTime = DateTime.Now.AddDays(2 * Dat.TotalBans);
            U.Edit(true, true, null, new Role[] { CodeSelBot.CodeSEL.GetRole(Role_Banned) }, U.Name + " - BANNED");
        }
Esempio n. 8
0
 public ViewResult DataReplyForm(UserDatas userdatas) //Action
 {
     if (ModelState.IsValid)                          //validate
     {
         Repository.AddResponse(userdatas);
         return(View("Thanks", userdatas.Name));
     }
     else
     {
         return(View());
     }
 }
Esempio n. 9
0
    protected void SetAreaDropDownList(System.Web.UI.WebControls.DropDownList ddList)
    {
        UserDatas userData = new UserDatas();
        DataTable dt       = userData.GetArea();

        ddList.DataSource     = dt;
        ddList.DataTextField  = "VALUE";
        ddList.DataValueField = "KEY";
        ddList.DataBind();

        ddList.Items.Insert(0, new ListItem("전체", "--"));
    }
Esempio n. 10
0
 protected override void OnFormClosing(FormClosingEventArgs e)
 {
     CodeSelBot.discord.Disconnect();
     UserDatas.ClearVolatiles();
     notifyIcon.Visible = false;
     if (SaveData)
     {
         SaveUserData();
         SaveBotData();
         SaveConnect4Data();
     }
     Thread.Sleep(1000);
 }
Esempio n. 11
0
        /// <summary>
        /// 验证权限(action执行前会先执行这里)
        /// </summary>
        /// <param name="filterContext"></param>
        //public override void OnActionExecuting(ActionExecutingContext filterContext)
        //{
        //    // 获取域名
        //    string domainName = filterContext.HttpContext.Request.Url.Authority;
        //    //获取模块名称
        //    // module = filterContext.HttpContext.Request.Url.Segments[1].Replace('/', ' ').Trim();
        //    //获取 controllerName 名称
        //    string controllerName = filterContext.RouteData.Values["controller"].ToString();
        //    //获取ACTION 名称
        //    string actionName = filterContext.RouteData.Values["action"].ToString();

        //    //如果存在身份信息
        //    if (!HttpContext.Current.User.Identity.IsAuthenticated)
        //    {
        //        ContentResult Content = new ContentResult();
        //        Content.Content = string.Format("<script type='text/javascript'>alert('请先登录!');window.location.href='{0}';</script>", FormsAuthentication.LoginUrl);
        //        filterContext.Result = Content;
        //    }
        //    else
        //    {
        //        HttpCookie authCookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];//获取cookie
        //        FormsAuthenticationTicket Ticket = FormsAuthentication.Decrypt(authCookie.Value);//解密
        //        UserData userData = Common.Deserialize<UserData>(Ticket.UserData);//反序列化
        //        string[] Role = userData.Roles.Split(','); //获取所有角色
        //        if (!Role.Contains(Code)) //验证权限
        //        {
        //            //验证不通过
        //            ContentResult Content = new ContentResult();
        //            Content.Content = "<script type='text/javascript'>alert('权限验证不通过!');history.go(-1);</script>";
        //            filterContext.Result = Content;
        //        }
        //    }
        //}

        //string adminCode = System.Configuration.ConfigurationManager.AppSettings["adminCode"].ToString();

        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (httpContext == null)
            {
                throw new ArgumentNullException("httpContext");
            }
            if (!httpContext.User.Identity.IsAuthenticated)
            {
                return(false);
            }

            //string filePath = httpContext.Request.CurrentExecutionFilePath;

            var cookie = httpContext.Request.Cookies[FormsAuthentication.FormsCookieName];

            if (cookie == null || string.IsNullOrEmpty(cookie.Value))
            {
                return(false);
            }
            var ticket = FormsAuthentication.Decrypt(cookie.Value);

            if (ticket != null && !string.IsNullOrWhiteSpace(ticket.UserData))
            {
                UserDatas obj = Common.Deserialize <UserDatas>(ticket.UserData);
                Dictionary <string, object> dict = new Dictionary <string, object>();
                dict.Add("r", string.Join(",", obj.Roles));
                dict.Add("c", controllerName);
                dict.Add("a", actionName);
                var result = HttpClientHelper.Post("test", "roles", dict, "IsPermission");

                return(true);
                //return result == "true";
                //string httpUrl = httpContext.Request.FilePath.TrimEnd('/');
                //if (new UserBLL().IsHasRight(httpUrl, obj.RoleCode))
                //    result = true;

                //return true;
            }
            else
            {
                //FormsIdentity fi = (HttpContext.Current.User.Identity as FormsIdentity);
                //if (!result)
                //{
                //    httpContext.Response.StatusCode = 403;
                //}
                return(false);
            }
        }
Esempio n. 12
0
    protected void SetDateDropDownList(System.Web.UI.WebControls.DropDownList ddlYear, System.Web.UI.WebControls.DropDownList ddlMonth)
    {
        UserDatas userData = new UserDatas();
        DataTable dt       = userData.GetYear();
        DataView  dv       = dt.DefaultView;

        dv.Sort                = "KEY DESC";
        ddlYear.DataSource     = dv;
        ddlYear.DataTextField  = "VALUE";
        ddlYear.DataValueField = "KEY";
        ddlYear.DataBind();

        dt = userData.GetMonth();
        ddlMonth.DataSource     = dt;
        ddlMonth.DataTextField  = "VALUE";
        ddlMonth.DataValueField = "KEY";
        ddlMonth.DataBind();
    }
Esempio n. 13
0
            private async void OnUserJoined(object sender, UserEventArgs e)
            {
                var Msg = "Hello, " + e.User.Mention + ", Welcome to Code.SEL <:codesel:249266261928706048>\n" +
                          "Mention any of the following Roles *(@role)* based on the games you play:\n\n";

                foreach (var R in Dictionaries.Roles.Where(x => CodeSEL.GetRole(x).Name.Contains("Buddy")))
                {
                    Msg += CodeSEL.GetRole(R).Mention + "\n";
                }
                await CodeSEL.DefaultChannel.SendMessage(Msg);

                var temp = UserDatas.ToList();

                temp.Add(new UserData()
                {
                    UserID = e.User.Id
                });
                UserDatas = temp.ToArray();
            }
Esempio n. 14
0
            async Task Responce_Info(string Msg, MessageEventArgs e)
            {
                var U = e.Message.MentionedUsers.FirstOrDefault();

                if (U == null)
                {
                    if (Msg == "")
                    {
                        (await e.Channel.SendMessage(":anger: Could not find a user")).Timed(40);
                        WriteLine("Command Error: Could not determine a user");
                    }
                    else
                    {
                        (await e.Channel.SendMessage("You might be confusing `-info` with `-help <command>`")).Timed(60);
                    }
                    return;
                }
                await e.Channel.SendMessage(UserDatas.GetByUser(U).ToString());
            }
Esempio n. 15
0
    private void SaveUser()
    {
        // Just in case of concurency
        var newUser = SelectedUser;

        if (newUser == null)
        {
            return;
        }
        var isNewUser = newUser.UserId == 0;

        // Persist it to the database
        this.userRepository.Add(newUser);
        this.userRepository.SaveChanges();

        // If all worked well, add it to the observable collection
        if (isNewUser)
        {
            // Only add if new, otherwise it should be already in the collection
            UserDatas.Add(newUser)
        }
    }
Esempio n. 16
0
    /// <summary>
    /// 旋转相机携程
    /// 从配置中读取旋转参数
    /// </summary>
    /// <param name="complateRecall"></param>
    /// <returns></returns>
    IEnumerator coLookAround(Action complateRecall)
    {
        //计算演示动画数值区间
        var   yrot_str  = UserDatas.GetUserData("CameraYRot");
        var   scale_str = UserDatas.GetUserData("CameraScale");
        float user_yrot;
        float user_scale;

        if (!float.TryParse(yrot_str, out user_yrot))
        {
            user_yrot = SData_mapdata.Single.GetDataOfID(1).CameraY_Xuanzhuan_End;
        }

        if (!float.TryParse(scale_str, out user_scale))
        {
            user_scale = SData_mapdata.Single.GetDataOfID(1).FreeCamera_Scale_End;
        }

        float scale_start;
        float scale_end = user_scale;

        if (user_scale < SData_mapdata.Single.GetDataOfID(1).FreeCamera_Scale_StopRange_Min)
        {
            scale_start = SData_mapdata.Single.GetDataOfID(1).FreeCamera_Scale_End;
        }
        else if (user_scale > SData_mapdata.Single.GetDataOfID(1).FreeCamera_Scale_StopRange_Max)
        {
            scale_start = SData_mapdata.Single.GetDataOfID(1).FreeCamera_Scale;
        }
        else
        {
            scale_start = user_scale;
        }

        float yrot_start;
        float yrot_end = user_yrot;

        if (user_yrot < SData_mapdata.Single.GetDataOfID(1).CameraY_Xuanzhuan_StopRange_Min)
        {
            yrot_start = SData_mapdata.Single.GetDataOfID(1).CameraY_Xuanzhuan_End;
        }
        else if (user_yrot > SData_mapdata.Single.GetDataOfID(1).CameraY_Xuanzhuan_StopRange_Max)
        {
            yrot_start = SData_mapdata.Single.GetDataOfID(1).CameraY_Xuanzhuan_Start;
        }
        else
        {
            yrot_start = user_yrot;
        }


        YQ2CameraCtrl.Single.EnabledAll = false;//禁用相机控制

        float count = 0;

        do
        {
            if (m_InterruptLookAround)
            {
                break;                       //已经被打断了
            }
            count += Time.deltaTime;

            //计算插值系数
            var t = Mathf.Clamp(count / SData_FightKeyValue.Single.ZhanqianCameraStop, 0, 1);

            //插值
            var currScale = DP_TweenFuncs.Tween_Deceleration_Float(scale_start, scale_end, t);
            var currYRot  = DP_TweenFuncs.Tween_Deceleration_Float(yrot_start, yrot_end, t);

            //应用效果
            YQ2CameraCtrl.Single.SetScale(currScale);
            YQ2CameraCtrl.Single.SetYRot(currYRot);

            yield return(null);
        } while (count < SData_FightKeyValue.Single.ZhanqianCameraStop);


        YQ2CameraCtrl.Single.EnabledAll = true;//启用相机控制
    }
Esempio n. 17
0
 public void Setup()
 {
     mockUserRepository   = new Mock <IUserRepository>();
     mockUserData         = new UserDatas();
     userManagementHelper = new UserManagementHelper(mockUserRepository.Object);
 }
Esempio n. 18
0
 public URegisterResp UserRegisterAction(UserDatas user)
 {
     return(RegisterState(user));
 }
Esempio n. 19
0
            private void TimeLooper(object sender, ElapsedEventArgs e)
            {
                if (CodeSEL == null || ConnectionState != "Connected")
                {
                    return;
                }

                BotData.UpTime += TimeSpan.TicksPerSecond;

                foreach (var U in CodeSEL.Users)
                {
                    if (U.Status != "offline")
                    {
                        UserDatas.GetByUser(U).LastOnline = DateTime.Now;
                        if (UserDatas.GetByUser(U).OnlineSince.ToString() == "01-Jan-01 12:00:00 AM")
                        {
                            UserDatas.GetByUser(U).OnlineSince = DateTime.Now;
                        }
                    }
                    else
                    {
                        UserDatas.GetByUser(U).OnlineSince = DateTime.Parse("01-Jan-01 12:00:00 AM");
                    }

                    if (U.CurrentGame.HasValue && !UserDatas.GetByUser(U).Games.Contains(U.CurrentGame.Value.Name))
                    {
                        UserDatas.GetByUser(U).Games.Add(U.CurrentGame.Value.Name);
                    }
                }

                foreach (var VChannel in CodeSEL.VoiceChannels.Where(c => c.Users.Count() > 0))
                {
                    var counter = new Dictionary <ulong, int>();
                    foreach (var v in Dictionaries.VChannels.Values)
                    {
                        counter.Add(v, 0);
                    }

                    foreach (var u in VChannel.Users)
                    {
                        if (u.CurrentGame.HasValue && u.CurrentGame.Value.Name.GetChannel() != null)
                        {
                            counter[u.CurrentGame.Value.Name.GetChannel().Id]++;
                        }
                    }

                    var TargetChannel = CodeSEL.GetChannel(counter.Where(y => y.Value == counter.Values.Max()).FirstOrDefault().Key);
                    if (counter.Values.Max() >= Math.Max(1, VChannel.Users.Count() / 2) &&
                        TargetChannel != VChannel && VChannel.Users.All(x => UserDatas.GetByUser(x).CurrentGame != TargetChannel.Id))
                    {
                        foreach (var u in VChannel.Users)
                        {
                            if ((UserDatas.GetByUser(u).AutoMove) &&
                                (u.VoiceChannel != CodeSEL.AFKChannel || UserDatas.GetByUser(u).AFKMove))
                            {
                                if (!(VChannel.Id == CodeSEL.AFKChannel.Id && (!u.CurrentGame.HasValue || u.CurrentGame.Value.Name.GetChannel().Id != TargetChannel.Id)))
                                {
                                    u.Edit(null, null, TargetChannel);
                                    UserDatas.GetByUser(u).CurrentGame = TargetChannel.Id;
                                    UserDatas.GetByUser(u).TimesMoved++;
                                }
                            }
                            else if (VChannel.Users.Count() > 1)
                            {
                                (CodeSEL.DefaultChannel.SendMessage(u.Mention + ", you have not been moved automatically due to your **AutoMove** preferences")).Timed(100);
                            }
                        }
                    }
                    else if ((VChannel.Id != Dictionaries.Ch_V_Main &&
                              VChannel.Id != Dictionaries.Ch_V_AFK &&
                              VChannel.Id != Dictionaries.Ch_V_Music) &&
                             VChannel.Users.Count() > 0 &&
                             VChannel.Users.All(u => !u.CurrentGame.HasValue ||
                                                (u.CurrentGame.Value.Name.GetChannel() != null &&
                                                 u.CurrentGame.Value.Name.GetChannel().Id != u.VoiceChannel.Id)))
                    {
                        foreach (var u in VChannel.Users)
                        {
                            if (UserDatas.GetByUser(u).AutoMove)
                            {
                                u.Edit(null, null, CodeSEL.GetChannel(Dictionaries.Ch_V_Main));
                                UserDatas.GetByUser(u).CurrentGame = 0;
                                UserDatas.GetByUser(u).TimesMoved++;
                            }
                        }
                    }
                }
            }
Esempio n. 20
0
            private async void OnMessage(object sender, MessageEventArgs e)
            {
                if (e.Message.RawText != "")
                {
                    foreach (var C in Commands)
                    {
                        if ((C.AcceptBotMsgs || !e.User.IsBot) && C.Check(e))
                        {
                            if (C.Permission.Count == 0 || (e.User.Roles.Any(x => C.Permission.Any(y => y == x.Id))))
                            {
                                BotData.CommandsProccessed++;
                                if (!C.AllowPrivateChannels && e.Channel.IsPrivate)
                                {
                                    await e.Channel.SendMessage($"The **{C.Name}** command is not available in private chat");
                                }
                                else
                                {
                                    if (C.DeleteMsg)
                                    {
                                        e.Message.Timed(5);
                                    }
                                    WriteLine(C.Name + " Command found in | " + e.Message);
                                    await C.Action(e.Message.RawText.Decrypt(C.Triggers), e);

                                    if (C.Breaks)
                                    {
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                (await e.Channel.SendMessage("You do not have the correct permissions to use this command")).Timed(60);
                            }
                        }

                        // In case of role selection
                        if (e.User.Roles.Count() == 1 && e.Message.MentionedRoles != null && e.Message.MentionedRoles.Count() > 0)
                        {
                            var Msg   = e.User.Mention + ", you've been given the ";
                            var Roles = e.Message.MentionedRoles.Where(x => x.Name.Contains("Buddy"));
                            foreach (var R in Roles)
                            {
                                Msg += R.Mention + "  ";
                            }
                            await e.Channel.SendMessage(Msg);

                            await e.User.Edit(null, null, null, Roles);
                        }
                    }
                }
                UserDatas.GetByUser(e.User).MessagesSent++;
                UserDatas.GetByUser(e.User).CharactersSent += e.Message.RawText.Length;
                if (Listening)
                {
                    if (e.Message.RawText != "")
                    {
                        WriteLine($"#{e.Channel.Name} {e.User.Name}: {e.Message.RawText}");
                    }
                    else
                    {
                        WriteLine($"#{e.Channel.Name} {e.User.Name}: File Sent");
                    }
                }
            }
 public void Setup()
 {
     mockUserManagementHelper = new Mock <IUserManagementHelper>();
     mockUserDatas            = new UserDatas();
     userController           = new UserController(mockUserManagementHelper.Object);
 }
Esempio n. 22
0
            async Task Responce_Exile(string Msg, MessageEventArgs e)
            {
                User Target = e.Message.MentionedUsers.FirstOrDefault();
                var  Time   = 0;              // in Seconds.

                if (Target == null)
                {
                    (await e.Channel.SendMessage(":anger: Missing target user for exile\n`Syntax Error`")).Timed(30);
                    WriteLine("Command Error: Could not find target user");
                    return;
                }
                if (Target.Id == Dictionaries.Bot_ID)
                {
                    (await e.Channel.SendMessage("I can't exile myself :grey_exclamation:")).Timed(30);
                    WriteLine("Command Error: Target can not be the Bot");
                    return;
                }
                if (Target.Roles.Any(x => x.Id == Dictionaries.Role_ServerBot || x.Id == Dictionaries.Role_ServerOwner))
                {
                    (await e.Channel.SendMessage("**" + Target.Name + "** is beyond my reach :cry: ")).Timed(30);
                    WriteLine("Command Error: Target is beyond the Bot's reach");
                    return;
                }
                try
                {
                    Msg = Msg.RemoveMentions().RemoveSpaces();
                    if (!Msg.Contains('#'))
                    {
                        Time = 300;
                    }
                    else
                    {
                        if (Msg.Contains(':'))
                        {
                            Time += int.Parse(Msg.Substring(Msg.IndexOf(':') + 1));
                            if (Msg.Between('#', ':') != "")
                            {
                                Time += 60 * int.Parse(Msg.Between('#', ':'));
                            }
                        }
                        else
                        {
                            Time += 60 * int.Parse(Msg.Substring(Msg.IndexOf('#') + 1));
                        }
                    }
                }
                catch (Exception) { (await e.Channel.SendMessage(":anger: could not determine Exile time\n`Syntax Error`")).Timed(30); WriteLine("Command Error: Could not determine exile time"); return; }

                UserDatas.GetByUser(Target).ExileTime += Time;
                if (Exiles.Any(x => x.User == Target))
                {
                    Exiles.Where(w => w.User == Target).FirstOrDefault().AddTime(Time);
                    WriteLine("Command: Added " + Time + " seconds to " + Target.Name + "'s exile");
                }
                else
                {
                    Exiles.Add(new Exile()
                    {
                        User = Target, ExpireTime = DateTime.Now.AddSeconds(Time), e = e, Timeleft = Time
                    });
                    var ExileTarget = Exiles.Last();
                    ExileTarget.ExileUser();
                    ExileTarget.Timer.Start();
                    ExileTarget.Timer.Disposed += (S, E) =>
                    {
                        while (ConnectionState != "Connected")
                        {
                            System.Threading.Thread.Sleep(500);
                        }
                        ExileTarget.UnexileUser();
                        Exiles.Remove(ExileTarget);
                    };
                    WriteLine("Command: Exiled " + Target.Name + " for " + Time + " seconds");
                }
            }