Ejemplo n.º 1
0
        private void PlayerPostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs e)
        {
            //if the player is not in the db, add them
            if (!db.Contains(e.Player.User.ID))
            {
                db.RegisterNewUser(e.Player.User.ID);
            }

            //if the player is in db but has not logged in yet
            else if (!db.HasLoggedIn(e.Player.User.ID))
            {
                //update their login streak and daily login
                db.UpdateLogin(e.Player.User.ID);
            }
            else
            {
                db.UpdateTime(e.Player.User.ID);
            }

            PlayerLogin playerLogin = OnPlayerLogin;

            if (playerLogin != null)
            {
                //fire the OnPlayerLogin event
                playerLogin(e.Player, db.GetLoginData(e.Player.User.ID));
            }
        }
Ejemplo n.º 2
0
        public static void PostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
        {
            if (args.Player == null)
            {
                return;
            }

            TempGroupPlayer tgplr = TempGroupDbManage.GetTempGroup(args.Player.Name);

            if (tgplr.ActualGroup == null)
            {
                return;
            }

            if ((DateTime.Now - tgplr.ExpireDate).TotalMilliseconds > 0)
            {
                args.Player.Group         = TShock.Groups.GetGroupByName(tgplr.PrimaryGroup);
                args.Player.Account.Group = tgplr.PrimaryGroup;
                TShock.UserAccounts.SetUserGroup(args.Player.Account, tgplr.PrimaryGroup);

                TempGroupDbManage.RemoveTempGroup(args.Player.Name);

                args.Player.SendMessage($"[c/595959:»]  Waznosc twojej rangi [c/ffff66:{tgplr.ActualGroup}] wygasla.", Color.Gray);
                return;
            }

            if (Players.ContainsKey(args.Player.Name))
            {
                return;
            }

            Players.Add(args.Player.Name, tgplr);
        }
Ejemplo n.º 3
0
        private void HandlePlayerLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
        {
            try
            {
                SkillPlayer ply = PlayerManager.GetPlayer(args.Player.Index);
                PlayerManager.SavePlayer(ply);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            var player = PlayerManager.LoadPlayer(args.Player);

            PlayerManager.ActivatePlayer(player, player.Player.Index);
        }
Ejemplo n.º 4
0
        protected async void PlayerHooks_PlayerPostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs e)
        {
            IBankAccount account;
            await Task.Delay(2500);

            if ((account = Parent.GetBankAccount(e.Player)) == null)
            {
                if ((account = await Parent.CreatePlayerAccountAsync(e.Player)) == null)
                {
                    TShock.Log.ConsoleError("seconomy error:  Creating account for {0} failed.", e.Player.Name);
                }
                return;
            }

            await account.SyncBalanceAsync();

            e.Player.SendInfoMessage(SEconomyPlugin.Locale.StringOrDefault(26, "You have {0}."),
                                     account.Balance.ToLongString());
        }
 private void TShock_PlayerPostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs e)
 {
     this.HandlePlayerPostLogin(e.Player);
 }
Ejemplo n.º 6
0
 private void OnPostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
 {
     Players[args.Player.Index] = new PlayerInfo(args.Player.Index);
 }
Ejemplo n.º 7
0
        void OnPlayerLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
        {
            TUser ply = new TUser(args.Player.Name, args.Player.User.ID, 0, 0, 0, 0, 0);

            DbManager.addUser(ply, args.Player);
        }
Ejemplo n.º 8
0
        private void LookUpUser(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
        {
            ThreadPool.QueueUserWorkItem(s => {
                try
                {
                    var steamid = "";
                    steamid     = userManager.GetSteamIDForUsername(args.Player.UserAccountName);
                    using (var cl = new WebClient())
                    {
                        var uri = String.Format("{3}/api/user/lookup/{0}/{1}/{2}", steamid, Config.ServerId,
                                                Config.RestToken, Config.WhiteLotusAddress);
                        var client     = (HttpWebRequest)WebRequest.Create(uri);
                        client.Timeout = 60000;
                        try
                        {
                            using (var resp = GetResponseNoException(client))
                            {
                                if (resp.StatusCode != HttpStatusCode.OK)
                                {
                                    throw new IOException("Server did not respond with an OK.");
                                }

                                using (var reader = new StreamReader(resp.GetResponseStream()))
                                {
                                    var text = reader.ReadToEnd();
                                    var obj  = JsonConvert.DeserializeObject <UserInfo>(text);
                                    if (obj.IsBanned)
                                    {
                                        TShock.Utils.Kick(args.Player, "White Lotus Ban", true, true, "WhiteLotus", false);
                                        return;
                                    }

                                    if (Config.GlobalBansTriggerCount > 0 && obj.GlobalBans >= Config.GlobalBansTriggerCount)
                                    {
                                        DoBan(steamid, "Global auto ban", "add");
                                    }

                                    if (Config.NotifyGlobalBans)
                                    {
                                        foreach (var ply in TShock.Players.ToList().Where(p => p != null && p.IsLoggedIn && p.Group.HasPermission("white-lotus")))
                                        {
                                            ply.SendWarningMessage(
                                                String.Format("{0} has just logged in.  He is banned from {1} White Lotus servers.",
                                                              args.Player.UserAccountName,
                                                              obj.GlobalBans)
                                                );
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Console.Error.WriteLine(e.Message);
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine(e.Message);
                }
            });
        }
Ejemplo n.º 9
0
        private static void PostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args)
        {
            SPlayer player = Tools.GetPlayer(args.Player.Index);

            if (player == null)
            {
                Players.Add(new SPlayer(args.Player.Index));
                PostLogin(new TShockAPI.Hooks.PlayerPostLoginEventArgs(args.Player));
                return;
            }

            var storage = Tools.GetStoredPlayerExact(args.Player.UserAccountName);

            if (storage == null)
            {
                Log.ConsoleInfo("{0} has been registered to Statistics", args.Player.UserAccountName);

                player.storage = StoredPlayers.AddAndReturn(new StoredPlayer(args.Player.UserAccountName,
                                                                             DateTime.Now.ToString("G"), DateTime.Now.ToString("G"), 0, 1,
                                                                             args.Player.UserAccountName, args.Player.IP, 0, 0, 0, 0));

                database.AddUser(player.storage);
                player.SyncStats();

                HighScores.highScores.Add(new HighScore(player.Name, player.kills, player.mobkills, player.deaths,
                                                        player.bosskills, player.timePlayed));

                return;
            }

            player.storage = storage;

            if (player.storage.knownIPs.Length > 0)
            {
                if (!player.storage.knownIPs.Contains(args.Player.IP))
                {
                    player.storage.knownIPs += ", " + args.Player.IP;
                }
            }
            else
            {
                player.storage.knownIPs = args.Player.IP;
            }

            if (player.storage.knownAccounts.Length > 0)
            {
                if (!player.storage.knownAccounts.Contains(args.Player.UserAccountName))
                {
                    player.storage.knownAccounts += ", " + args.Player.UserAccountName;
                }
            }
            else
            {
                player.storage.knownAccounts = args.Player.UserAccountName;
            }

            player.SyncStats();

            Log.ConsoleInfo("Successfully linked account {0} with stored player {1}",
                            args.Player.UserAccountName, player.storage.name);
        }