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