Caching IsAdmin as to optimize load on file system
This commit is contained in:
parent
79c0bddf5e
commit
818348a445
4 changed files with 22 additions and 9 deletions
|
|
@ -65,7 +65,7 @@ namespace TShockAPI
|
|||
int ply = args.PlayerID;
|
||||
if (!(Tools.FindPlayer(plStr) == -1 || plStr == ""))
|
||||
{
|
||||
if (!Tools.IsAdmin(Tools.FindPlayer(plStr)))
|
||||
if (!TShock.players[Tools.FindPlayer(plStr)].IsAdmin())
|
||||
{
|
||||
Tools.Kick(Tools.FindPlayer(plStr), "You were kicked.");
|
||||
Tools.Broadcast(plStr + " was kicked by " + Tools.FindPlayer(ply));
|
||||
|
|
@ -83,7 +83,7 @@ namespace TShockAPI
|
|||
int ply = args.PlayerID;
|
||||
if (!(Tools.FindPlayer(plStr) == -1 || plStr == ""))
|
||||
{
|
||||
if (!Tools.IsAdmin(Tools.FindPlayer(plStr)))
|
||||
if (!TShock.players[Tools.FindPlayer(plStr)].IsAdmin())
|
||||
{
|
||||
FileTools.WriteBan(Tools.FindPlayer(plStr));
|
||||
Tools.Kick(Tools.FindPlayer(plStr), "You were banned.");
|
||||
|
|
@ -420,7 +420,7 @@ namespace TShockAPI
|
|||
{
|
||||
int ply = args.PlayerID;
|
||||
var commands = TShock.commandList;
|
||||
if (Tools.IsAdmin(ply))
|
||||
if (TShock.players[ply].IsAdmin())
|
||||
commands = TShock.admincommandList;
|
||||
Tools.SendMessage(ply, "TShock Commands:");
|
||||
int h = 1;
|
||||
|
|
@ -489,7 +489,7 @@ namespace TShockAPI
|
|||
|
||||
public static void Kill(CommandArgs args)
|
||||
{
|
||||
bool isadmin = Tools.IsAdmin(args.PlayerID);
|
||||
bool isadmin = TShock.players[args.PlayerID].IsAdmin(); ;
|
||||
var msgargs = Regex.Split(args.Message, "(?<=^[^\"]*(?:\"[^\"]*\"[^\"]*)*) (?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
|
||||
if (msgargs.Length == 2 && isadmin)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,10 +5,12 @@ using System.Text;
|
|||
|
||||
namespace TShockAPI
|
||||
{
|
||||
class TSPlayer
|
||||
public class TSPlayer
|
||||
{
|
||||
public uint tileThreshold;
|
||||
private int player;
|
||||
private bool admin;
|
||||
private bool adminSet;
|
||||
|
||||
public TSPlayer(int ply)
|
||||
{
|
||||
|
|
@ -19,5 +21,16 @@ namespace TShockAPI
|
|||
{
|
||||
return Terraria.Main.player[player];
|
||||
}
|
||||
|
||||
public bool IsAdmin()
|
||||
{
|
||||
if (adminSet)
|
||||
{
|
||||
return admin;
|
||||
}
|
||||
admin = Tools.IsAdmin(player);
|
||||
adminSet = true;
|
||||
return admin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace TShockAPI
|
|||
{
|
||||
public class TShock : TerrariaPlugin
|
||||
{
|
||||
TSPlayer[] players = new TSPlayer[Main.maxPlayers];
|
||||
public static TSPlayer[] players = new TSPlayer[Main.maxPlayers];
|
||||
|
||||
public static string saveDir = "./tshock/";
|
||||
|
||||
|
|
@ -228,7 +228,7 @@ namespace TShockAPI
|
|||
Main.player[who].hostile = true;
|
||||
NetMessage.SendData(30, -1, -1, "", who);
|
||||
}
|
||||
if (Tools.IsAdmin(who) && ConfigurationManager.infiniteInvasion && !ConfigurationManager.startedInvasion)
|
||||
if (TShock.players[who].IsAdmin() && ConfigurationManager.infiniteInvasion && !ConfigurationManager.startedInvasion)
|
||||
{
|
||||
StartInvasion();
|
||||
}
|
||||
|
|
@ -246,7 +246,7 @@ namespace TShockAPI
|
|||
{
|
||||
Commands.CommandArgs args = new Commands.CommandArgs(msg, x, y, ply);
|
||||
var commands = commandList;
|
||||
if (Tools.IsAdmin(ply))
|
||||
if (TShock.players[ply].IsAdmin())
|
||||
commands = admincommandList;
|
||||
|
||||
Commands.CommandDelegate command;
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ namespace TShockAPI
|
|||
/// <param name="ply">int player</param>
|
||||
public static void HandleCheater(int ply)
|
||||
{
|
||||
if (!Tools.IsAdmin(ply))
|
||||
if (!TShock.players[ply].IsAdmin())
|
||||
{
|
||||
string cheater = Tools.FindPlayer(ply);
|
||||
string ip = Tools.GetRealIP(Convert.ToString(Netplay.serverSock[ply].tcpClient.Client.RemoteEndPoint));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue