Match the god damned existing tab format
This commit is contained in:
parent
8bbed92683
commit
5b032f277d
4 changed files with 186 additions and 186 deletions
|
|
@ -82,7 +82,7 @@ namespace TShockAPI
|
|||
Permission = null;
|
||||
Names = new List<string>(names);
|
||||
command = cmd;
|
||||
AllowServer = true;
|
||||
AllowServer = true;
|
||||
DoLog = true;
|
||||
}
|
||||
|
||||
|
|
@ -215,13 +215,13 @@ namespace TShockAPI
|
|||
|
||||
if (cmd == null)
|
||||
{
|
||||
if( player.AwaitingResponse.ContainsKey(cmdName))
|
||||
{
|
||||
Action<CommandArgs> call = player.AwaitingResponse[cmdName];
|
||||
player.AwaitingResponse.Remove(cmdName);
|
||||
call( new CommandArgs(cmdText, player, args));
|
||||
return true;
|
||||
}
|
||||
if (player.AwaitingResponse.ContainsKey(cmdName))
|
||||
{
|
||||
Action<CommandArgs> call = player.AwaitingResponse[cmdName];
|
||||
player.AwaitingResponse.Remove(cmdName);
|
||||
call(new CommandArgs(cmdText, player, args));
|
||||
return true;
|
||||
}
|
||||
player.SendErrorMessage("Invalid command entered. Type /help for a list of valid commands.");
|
||||
return true;
|
||||
}
|
||||
|
|
@ -231,16 +231,16 @@ namespace TShockAPI
|
|||
TShock.Utils.SendLogs(string.Format("{0} tried to execute /{1}.", player.Name, cmdText), Color.Red);
|
||||
player.SendErrorMessage("You do not have access to that command.");
|
||||
}
|
||||
else if (!cmd.AllowServer && !player.RealPlayer)
|
||||
{
|
||||
player.SendErrorMessage("You must use this command in-game.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cmd.DoLog)
|
||||
TShock.Utils.SendLogs(string.Format("{0} executed: /{1}.", player.Name, cmdText), Color.Red);
|
||||
cmd.Run(cmdText, player, args);
|
||||
}
|
||||
else if (!cmd.AllowServer && !player.RealPlayer)
|
||||
{
|
||||
player.SendErrorMessage("You must use this command in-game.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cmd.DoLog)
|
||||
TShock.Utils.SendLogs(string.Format("{0} executed: /{1}.", player.Name, cmdText), Color.Red);
|
||||
cmd.Run(cmdText, player, args);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1943,7 +1943,7 @@ namespace TShockAPI
|
|||
{
|
||||
tsply.SaveServerInventory();
|
||||
}
|
||||
args.Player.SendSuccessMessage("Save succeeded.");
|
||||
args.Player.SendSuccessMessage("Save succeeded.");
|
||||
}
|
||||
|
||||
private static void Settle(CommandArgs args)
|
||||
|
|
@ -2038,19 +2038,19 @@ namespace TShockAPI
|
|||
break;
|
||||
case "night":
|
||||
TSPlayer.Server.SetTime(false, 0.0);
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to night.", args.Player.Name));
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to night.", args.Player.Name));
|
||||
break;
|
||||
case "dusk":
|
||||
TSPlayer.Server.SetTime(false, 0.0);
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to dusk.", args.Player.Name));
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to dusk.", args.Player.Name));
|
||||
break;
|
||||
case "noon":
|
||||
TSPlayer.Server.SetTime(true, 27000.0);
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to noon.", args.Player.Name));
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to noon.", args.Player.Name));
|
||||
break;
|
||||
case "midnight":
|
||||
TSPlayer.Server.SetTime(false, 16200.0);
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to midnight.", args.Player.Name));
|
||||
TSPlayer.All.SendInfoMessage(string.Format("{0} set the time to midnight.", args.Player.Name));
|
||||
break;
|
||||
default:
|
||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /time <day/night/dusk/noon/midnight>");
|
||||
|
|
@ -2162,68 +2162,68 @@ namespace TShockAPI
|
|||
}
|
||||
}
|
||||
|
||||
private static void GetVersion(CommandArgs args)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Format("TShock: {0} ({1}): ({2}/{3})", TShock.VersionNum, TShock.VersionCodename,
|
||||
TShock.Utils.ActivePlayers(), TShock.Config.MaxSlots));
|
||||
}
|
||||
private static void GetVersion(CommandArgs args)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Format("TShock: {0} ({1}): ({2}/{3})", TShock.VersionNum, TShock.VersionCodename,
|
||||
TShock.Utils.ActivePlayers(), TShock.Config.MaxSlots));
|
||||
}
|
||||
|
||||
private static void ListConnectedPlayers(CommandArgs args)
|
||||
{
|
||||
//How many players per page
|
||||
const int pagelimit = 15;
|
||||
//How many players per line
|
||||
const int perline = 5;
|
||||
//Pages start at 0 but are displayed and parsed at 1
|
||||
int page = 0;
|
||||
private static void ListConnectedPlayers(CommandArgs args)
|
||||
{
|
||||
//How many players per page
|
||||
const int pagelimit = 15;
|
||||
//How many players per line
|
||||
const int perline = 5;
|
||||
//Pages start at 0 but are displayed and parsed at 1
|
||||
int page = 0;
|
||||
|
||||
|
||||
if (args.Parameters.Count > 0)
|
||||
{
|
||||
if (!int.TryParse(args.Parameters[0], out page) || page < 1)
|
||||
{
|
||||
args.Player.SendErrorMessage(string.Format("Invalid page number ({0})", page));
|
||||
return;
|
||||
}
|
||||
page--; //Substract 1 as pages are parsed starting at 1 and not 0
|
||||
}
|
||||
if (args.Parameters.Count > 0)
|
||||
{
|
||||
if (!int.TryParse(args.Parameters[0], out page) || page < 1)
|
||||
{
|
||||
args.Player.SendErrorMessage(string.Format("Invalid page number ({0})", page));
|
||||
return;
|
||||
}
|
||||
page--; //Substract 1 as pages are parsed starting at 1 and not 0
|
||||
}
|
||||
|
||||
var playerList = args.Player.Group.HasPermission(Permissions.seeids)
|
||||
? TShock.Utils.GetPlayers(true)
|
||||
: TShock.Utils.GetPlayers(false);
|
||||
var playerList = args.Player.Group.HasPermission(Permissions.seeids)
|
||||
? TShock.Utils.GetPlayers(true)
|
||||
: TShock.Utils.GetPlayers(false);
|
||||
|
||||
//Check if they are trying to access a page that doesn't exist.
|
||||
int pagecount = playerList.Count / pagelimit;
|
||||
if (page > pagecount)
|
||||
{
|
||||
args.Player.SendErrorMessage(string.Format("Page number exceeds pages ({0}/{1})", page + 1, pagecount + 1));
|
||||
return;
|
||||
}
|
||||
//Check if they are trying to access a page that doesn't exist.
|
||||
int pagecount = playerList.Count / pagelimit;
|
||||
if (page > pagecount)
|
||||
{
|
||||
args.Player.SendErrorMessage(string.Format("Page number exceeds pages ({0}/{1})", page + 1, pagecount + 1));
|
||||
return;
|
||||
}
|
||||
|
||||
//Display the current page and the number of pages.
|
||||
args.Player.SendSuccessMessage(string.Format("Players: {0}/{1}",
|
||||
TShock.Utils.ActivePlayers(), TShock.Config.MaxSlots));
|
||||
args.Player.SendSuccessMessage(string.Format("Current players page {0}/{1}:", page + 1, pagecount + 1));
|
||||
//Display the current page and the number of pages.
|
||||
args.Player.SendSuccessMessage(string.Format("Players: {0}/{1}",
|
||||
TShock.Utils.ActivePlayers(), TShock.Config.MaxSlots));
|
||||
args.Player.SendSuccessMessage(string.Format("Current players page {0}/{1}:", page + 1, pagecount + 1));
|
||||
|
||||
//Add up to pagelimit names to a list
|
||||
var nameslist = new List<string>();
|
||||
for (int i = (page * pagelimit); (i < ((page * pagelimit) + pagelimit)) && i < playerList.Count; i++)
|
||||
{
|
||||
nameslist.Add(playerList[i]);
|
||||
}
|
||||
//Add up to pagelimit names to a list
|
||||
var nameslist = new List<string>();
|
||||
for (int i = (page * pagelimit); (i < ((page * pagelimit) + pagelimit)) && i < playerList.Count; i++)
|
||||
{
|
||||
nameslist.Add(playerList[i]);
|
||||
}
|
||||
|
||||
//convert the list to an array for joining
|
||||
var names = nameslist.ToArray();
|
||||
for (int i = 0; i < names.Length; i += perline)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Join(", ", names, i, Math.Min(names.Length - i, perline)));
|
||||
}
|
||||
//convert the list to an array for joining
|
||||
var names = nameslist.ToArray();
|
||||
for (int i = 0; i < names.Length; i += perline)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Join(", ", names, i, Math.Min(names.Length - i, perline)));
|
||||
}
|
||||
|
||||
if (page < pagecount)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Format("Type /who {0} for more players.", (page + 2)));
|
||||
}
|
||||
}
|
||||
if (page < pagecount)
|
||||
{
|
||||
args.Player.SendInfoMessage(string.Format("Type /who {0} for more players.", (page + 2)));
|
||||
}
|
||||
}
|
||||
|
||||
private static void AuthToken(CommandArgs args)
|
||||
{
|
||||
|
|
@ -2332,39 +2332,39 @@ namespace TShockAPI
|
|||
args.Player.SendErrorMessage("You are not in a party!");
|
||||
}
|
||||
|
||||
private static void Mute(CommandArgs args)
|
||||
{
|
||||
if (args.Parameters.Count < 1)
|
||||
{
|
||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /mute <player> [reason]");
|
||||
return;
|
||||
}
|
||||
private static void Mute(CommandArgs args)
|
||||
{
|
||||
if (args.Parameters.Count < 1)
|
||||
{
|
||||
args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /mute <player> [reason]");
|
||||
return;
|
||||
}
|
||||
|
||||
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
|
||||
if (players.Count == 0)
|
||||
args.Player.SendErrorMessage("Invalid player!");
|
||||
else if (players.Count > 1)
|
||||
args.Player.SendErrorMessage("More than one player matched!");
|
||||
else if (players[0].Group.HasPermission(Permissions.mute))
|
||||
{
|
||||
args.Player.SendErrorMessage("You cannot mute this player.");
|
||||
}
|
||||
else if (players[0].mute)
|
||||
{
|
||||
var plr = players[0];
|
||||
plr.mute = false;
|
||||
TSPlayer.All.SendInfoMessage(String.Format("{0} has been unmuted by {1}.", plr.Name, args.Player.Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
string reason = "misbehavior";
|
||||
if (args.Parameters.Count > 1)
|
||||
reason = String.Join(" ", args.Parameters.ToArray(), 1, args.Parameters.Count - 1);
|
||||
var plr = players[0];
|
||||
plr.mute = true;
|
||||
TSPlayer.All.SendInfoMessage(String.Format("{0} has been muted by {1} for {2}.", plr.Name, args.Player.Name, reason));
|
||||
}
|
||||
}
|
||||
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
|
||||
if (players.Count == 0)
|
||||
args.Player.SendErrorMessage("Invalid player!");
|
||||
else if (players.Count > 1)
|
||||
args.Player.SendErrorMessage("More than one player matched!");
|
||||
else if (players[0].Group.HasPermission(Permissions.mute))
|
||||
{
|
||||
args.Player.SendErrorMessage("You cannot mute this player.");
|
||||
}
|
||||
else if (players[0].mute)
|
||||
{
|
||||
var plr = players[0];
|
||||
plr.mute = false;
|
||||
TSPlayer.All.SendInfoMessage(String.Format("{0} has been unmuted by {1}.", plr.Name, args.Player.Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
string reason = "misbehavior";
|
||||
if (args.Parameters.Count > 1)
|
||||
reason = String.Join(" ", args.Parameters.ToArray(), 1, args.Parameters.Count - 1);
|
||||
var plr = players[0];
|
||||
plr.mute = true;
|
||||
TSPlayer.All.SendInfoMessage(String.Format("{0} has been muted by {1} for {2}.", plr.Name, args.Player.Name, reason));
|
||||
}
|
||||
}
|
||||
|
||||
private static void Motd(CommandArgs args)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -126,8 +126,8 @@ namespace TShockAPI.DB
|
|||
}
|
||||
|
||||
string query = (TShock.Config.StorageType.ToLower() == "sqlite")
|
||||
? "INSERT OR IGNORE INTO GroupList (GroupName, Parent, Commands, ChatColor) VALUES (@0, @1, @2, @3);"
|
||||
: "INSERT IGNORE INTO GroupList SET GroupName=@0, Parent=@1, Commands=@2, ChatColor=@3";
|
||||
? "INSERT OR IGNORE INTO GroupList (GroupName, Parent, Commands, ChatColor) VALUES (@0, @1, @2, @3);"
|
||||
: "INSERT IGNORE INTO GroupList SET GroupName=@0, Parent=@1, Commands=@2, ChatColor=@3";
|
||||
if (database.Query(query, name, parentname, permissions, chatcolor) == 1)
|
||||
{
|
||||
groups.Add(group);
|
||||
|
|
@ -183,10 +183,10 @@ namespace TShockAPI.DB
|
|||
if (database.Query(query, parentname, newgroup.Permissions, string.Format("{0},{1},{2}", newgroup.R, newgroup.G, newgroup.B), name) != 1)
|
||||
throw new GroupManagerException("Failed to update group '" + name + "'");
|
||||
|
||||
Group group = TShock.Utils.GetGroup(name);
|
||||
group.ChatColor = chatcolor;
|
||||
group.Permissions = permissions;
|
||||
group.Parent = TShock.Utils.GetGroup(parentname);
|
||||
Group group = TShock.Utils.GetGroup(name);
|
||||
group.ChatColor = chatcolor;
|
||||
group.Permissions = permissions;
|
||||
group.Parent = TShock.Utils.GetGroup(parentname);
|
||||
}
|
||||
|
||||
#if COMPAT_SIGS
|
||||
|
|
|
|||
|
|
@ -1412,15 +1412,15 @@ namespace TShockAPI
|
|||
if (args.Player.RequestedSection)
|
||||
return true;
|
||||
args.Player.RequestedSection = true;
|
||||
if (String.IsNullOrEmpty(args.Player.Name))
|
||||
{
|
||||
TShock.Utils.ForceKick(args.Player, "Blank name.", true);
|
||||
return true;
|
||||
}
|
||||
if (String.IsNullOrEmpty(args.Player.Name))
|
||||
{
|
||||
TShock.Utils.ForceKick(args.Player, "Blank name.", true);
|
||||
return true;
|
||||
}
|
||||
if (TShock.HackedHealth(args.Player) && !args.Player.Group.HasPermission(Permissions.ignorestathackdetection))
|
||||
{
|
||||
TShock.Utils.ForceKick(args.Player, "You have hacked health/mana, please use a different character.", true);
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!args.Player.Group.HasPermission(Permissions.ignorestackhackdetection))
|
||||
|
|
@ -1675,7 +1675,7 @@ namespace TShockAPI
|
|||
{
|
||||
return true;
|
||||
}
|
||||
if (type == 1 && (tiletype == 29 || tiletype == 97) && TShock.Config.ServerSideInventory && TShock.Config.DisablePiggybanksOnSSI)
|
||||
if (type == 1 && (tiletype == 29 || tiletype == 97) && TShock.Config.ServerSideInventory && TShock.Config.DisablePiggybanksOnSSI)
|
||||
{
|
||||
args.Player.SendMessage("You cannot place this tile, server side inventory is enabled.", Color.Red);
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
|
|
@ -1688,25 +1688,25 @@ namespace TShockAPI
|
|||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
if (type == 1 && tiletype == 21)
|
||||
{
|
||||
if (TShock.Utils.MaxChests())
|
||||
{
|
||||
args.Player.SendMessage("Reached the world's max chest limit, unable to place more.", Color.Red);
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
if ((TShock.Utils.TileInRange(tileX, tileY + 1) && Main.tile[tileX, tileY + 1].type == 138) ||
|
||||
(TShock.Utils.TileInRange(tileX + 1, tileY + 1) && Main.tile[tileX + 1, tileY + 1].type == 138))
|
||||
{
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (type == 1 && tiletype == 21)
|
||||
{
|
||||
if (TShock.Utils.MaxChests())
|
||||
{
|
||||
args.Player.SendMessage("Reached the world's max chest limit, unable to place more.", Color.Red);
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
if ((TShock.Utils.TileInRange(tileX, tileY + 1) && Main.tile[tileX, tileY + 1].type == 138) ||
|
||||
(TShock.Utils.TileInRange(tileX + 1, tileY + 1) && Main.tile[tileX + 1, tileY + 1].type == 138))
|
||||
{
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (tiletype == 141 && !args.Player.Group.HasPermission(Permissions.usebanneditem) &&
|
||||
TShock.Itembans.ItemIsBanned("Explosives", args.Player))
|
||||
{
|
||||
args.Player.Disable("Used banned explosives tile without permission.");
|
||||
args.Player.Disable("Used banned explosives tile without permission.");
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
|
|
@ -1909,10 +1909,10 @@ namespace TShockAPI
|
|||
|
||||
if (!args.Player.Group.HasPermission(Permissions.ignorenoclipdetection) &&
|
||||
TSCheckNoclip(pos, args.TPlayer.width, args.TPlayer.height) && !TShock.Config.IgnoreNoClip
|
||||
&& !args.TPlayer.tongued)
|
||||
&& !args.TPlayer.tongued)
|
||||
{
|
||||
int lastTileX = (int) (args.Player.LastNetPosition.X/16f);
|
||||
int lastTileY = (int) (args.Player.LastNetPosition.Y/16f);
|
||||
int lastTileX = (int)(args.Player.LastNetPosition.X / 16f);
|
||||
int lastTileY = (int)(args.Player.LastNetPosition.Y / 16f);
|
||||
if (!args.Player.Teleport(lastTileX, lastTileY + 3))
|
||||
{
|
||||
args.Player.SendErrorMessage("You got stuck in a solid object, Sent to spawn point.");
|
||||
|
|
@ -2162,34 +2162,34 @@ namespace TShockAPI
|
|||
{
|
||||
args.Player.TileLiquidThreshold++;
|
||||
}
|
||||
if (liquid != 0)
|
||||
{
|
||||
int bucket = 0;
|
||||
if (args.TPlayer.inventory[args.TPlayer.selectedItem].type == 206)
|
||||
{
|
||||
bucket = 1;
|
||||
}
|
||||
else if (args.TPlayer.inventory[args.TPlayer.selectedItem].type == 207)
|
||||
{
|
||||
bucket = 2;
|
||||
}
|
||||
if (liquid != 0)
|
||||
{
|
||||
int bucket = 0;
|
||||
if (args.TPlayer.inventory[args.TPlayer.selectedItem].type == 206)
|
||||
{
|
||||
bucket = 1;
|
||||
}
|
||||
else if (args.TPlayer.inventory[args.TPlayer.selectedItem].type == 207)
|
||||
{
|
||||
bucket = 2;
|
||||
}
|
||||
|
||||
if (lava && bucket != 2 && !args.Player.Group.HasPermission(Permissions.usebanneditem) &&
|
||||
TShock.Itembans.ItemIsBanned("Lava Bucket", args.Player))
|
||||
{
|
||||
args.Player.Disable("Using banned lava bucket without permissions.");
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
if (lava && bucket != 2 && !args.Player.Group.HasPermission(Permissions.usebanneditem) &&
|
||||
TShock.Itembans.ItemIsBanned("Lava Bucket", args.Player))
|
||||
{
|
||||
args.Player.Disable("Using banned lava bucket without permissions.");
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!lava && bucket != 1 && !args.Player.Group.HasPermission(Permissions.usebanneditem) &&
|
||||
TShock.Itembans.ItemIsBanned("Water Bucket", args.Player))
|
||||
{
|
||||
args.Player.Disable("Using banned water bucket without permissions.");
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!lava && bucket != 1 && !args.Player.Group.HasPermission(Permissions.usebanneditem) &&
|
||||
TShock.Itembans.ItemIsBanned("Water Bucket", args.Player))
|
||||
{
|
||||
args.Player.Disable("Using banned water bucket without permissions.");
|
||||
args.Player.SendTileSquare(tileX, tileY);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (TShock.CheckTilePermission(args.Player, tileX, tileY))
|
||||
{
|
||||
|
|
@ -2465,10 +2465,10 @@ namespace TShockAPI
|
|||
return true;
|
||||
|
||||
// player is attempting to crash clients
|
||||
if (type < -24 || type >= Main.maxItemTypes)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (type < -24 || type >= Main.maxItemTypes)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (type == 0) //Item removed, let client do this to prevent item duplication client side
|
||||
{
|
||||
return false;
|
||||
|
|
@ -2529,9 +2529,9 @@ namespace TShockAPI
|
|||
if (TShock.Players[id] == null)
|
||||
return true;
|
||||
|
||||
if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap) && id != args.Player.Index)
|
||||
if (dmg > TShock.Config.MaxDamage && !args.Player.Group.HasPermission(Permissions.ignoredamagecap) && id != args.Player.Index)
|
||||
{
|
||||
args.Player.Disable(String.Format("Player damage exceeded {0}.", TShock.Config.MaxDamage ) );
|
||||
args.Player.Disable(String.Format("Player damage exceeded {0}.", TShock.Config.MaxDamage));
|
||||
args.Player.SendData(PacketTypes.PlayerHp, "", id);
|
||||
args.Player.SendData(PacketTypes.PlayerUpdate, "", id);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -174,20 +174,20 @@ namespace TShockAPI
|
|||
/// <returns>Returns true if the user has that permission.</returns>
|
||||
public virtual bool HasPermission(string permission)
|
||||
{
|
||||
if (String.IsNullOrEmpty(permission) || RealHasPermission(permission))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
string[] nodes = permission.Split('.');
|
||||
for (int i = nodes.Length - 1; i >= 0; i--)
|
||||
{
|
||||
nodes[i] = "*";
|
||||
if (RealHasPermission(String.Join(".", nodes, 0, i + 1)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
if (String.IsNullOrEmpty(permission) || RealHasPermission(permission))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
string[] nodes = permission.Split('.');
|
||||
for (int i = nodes.Length - 1; i >= 0; i--)
|
||||
{
|
||||
nodes[i] = "*";
|
||||
if (RealHasPermission(String.Join(".", nodes, 0, i + 1)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private bool RealHasPermission(string permission)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue