Example #1
0
        /// <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();
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }