/// <summary> /// Called after LoadSEconomy, or on PostInitialize, this binds the current SEconomy instance /// to the currently running terraria world. /// </summary> public async Task BindToWorldAsync() { IBankAccount account = null; if ((WorldAccount = RunningJournal.GetWorldAccount()) == null) { TShock.Log.ConsoleError("[SEconomy Bind] The journal system did not return a world account. This is an internal error."); return; } await WorldAccount.SyncBalanceAsync(); TShock.Log.ConsoleInfo(string.Format(SEconomyPlugin.Locale.StringOrDefault(1, "[SEconomy World Account] Paid {0} to players."), WorldAccount.Balance.ToLongString())); await Task.Delay(5000); foreach (var player in TShockAPI.TShock.Players) { if (player == null || string.IsNullOrWhiteSpace(player.Name) == true //|| string.IsNullOrWhiteSpace(player.User.Name) == true || (account = GetBankAccount(player)) == null) { continue; } await account.SyncBalanceAsync(); } }
public IBankAccount GetBankAccount(TSPlayer tsPlayer) { if (tsPlayer == null || RunningJournal == null || !tsPlayer.IsLoggedIn) { return(null); } if (tsPlayer == TSPlayer.Server) { return(WorldAccount); } try { return(RunningJournal.GetBankAccountByName(tsPlayer.Account.Name)); } catch (Exception ex) { TShock.Log.ConsoleError("[SEconomy Error] Error getting bank account for {0}: {1}", tsPlayer.Account.Name, ex.Message); return(null); } }
public IBankAccount GetBankAccount(TShockAPI.TSPlayer tsPlayer) { if (tsPlayer == null || RunningJournal == null) { return(null); } if (tsPlayer == TSPlayer.Server) { return(WorldAccount); } try { return(RunningJournal.GetBankAccountByName(tsPlayer.UserAccountName)); } catch (Exception ex) { TShock.Log.ConsoleError("seconomy error: Error getting bank account for {0}: {1}", tsPlayer.Name, ex.Message); return(null); } }