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)); } }
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); }
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); }
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); }
private void OnPostLogin(TShockAPI.Hooks.PlayerPostLoginEventArgs args) { Players[args.Player.Index] = new PlayerInfo(args.Player.Index); }
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); }
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); } }); }
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); }