Permission magic strings removed

This commit is contained in:
high 2011-08-18 21:10:39 -04:00
parent fc03e72c77
commit b06ec57819
8 changed files with 243 additions and 89 deletions

View file

@ -110,75 +110,75 @@ namespace TShockAPI
public static void InitCommands() public static void InitCommands()
{ {
//When adding new perm in here, add new perm to CommandList in DBEditor //When adding new perm in here, add new perm to CommandList in DBEditor
ChatCommands.Add(new Command("kick", Kick, "kick")); ChatCommands.Add(new Command( Permissions.kick, Kick, "kick"));
ChatCommands.Add(new Command("ban", Ban, "ban")); ChatCommands.Add(new Command(Permissions.ban, Ban, "ban"));
ChatCommands.Add(new Command("ban", BanIP, "banip")); ChatCommands.Add(new Command(Permissions.ban, BanIP, "banip"));
ChatCommands.Add(new Command("unban", UnBan, "unban")); ChatCommands.Add(new Command(Permissions.ban, UnBan, "unban"));
ChatCommands.Add(new Command("unban", UnBanIP, "unbanip")); ChatCommands.Add(new Command(Permissions.ban, UnBanIP, "unbanip"));
ChatCommands.Add(new Command("maintenance", ClearBans, "clearbans")); ChatCommands.Add(new Command(Permissions.maintenance, ClearBans, "clearbans"));
ChatCommands.Add(new Command("whitelist", Whitelist, "whitelist")); ChatCommands.Add(new Command(Permissions.whitelist, Whitelist, "whitelist"));
ChatCommands.Add(new Command("maintenance", Off, "off")); ChatCommands.Add(new Command(Permissions.maintenance, Off, "off"));
ChatCommands.Add(new Command("maintenance", OffNoSave, "off-nosave")); ChatCommands.Add(new Command(Permissions.maintenance, OffNoSave, "off-nosave"));
ChatCommands.Add(new Command("maintenance", CheckUpdates, "checkupdates")); ChatCommands.Add(new Command(Permissions.maintenance, CheckUpdates, "checkupdates"));
ChatCommands.Add(new Command("causeevents", DropMeteor, "dropmeteor")); ChatCommands.Add(new Command(Permissions.causeevents, DropMeteor, "dropmeteor"));
ChatCommands.Add(new Command("causeevents", Star, "star")); ChatCommands.Add(new Command(Permissions.causeevents, Star, "star"));
ChatCommands.Add(new Command("causeevents", Bloodmoon, "bloodmoon")); ChatCommands.Add(new Command(Permissions.causeevents, Bloodmoon, "bloodmoon"));
ChatCommands.Add(new Command("causeevents", Invade, "invade")); ChatCommands.Add(new Command(Permissions.causeevents, Invade, "invade"));
ChatCommands.Add(new Command("spawnboss", Eater, "eater")); ChatCommands.Add(new Command(Permissions.spawnboss, Eater, "eater"));
ChatCommands.Add(new Command("spawnboss", Eye, "eye")); ChatCommands.Add(new Command(Permissions.spawnboss, Eye, "eye"));
ChatCommands.Add(new Command("spawnboss", King, "king")); ChatCommands.Add(new Command(Permissions.spawnboss, King, "king"));
ChatCommands.Add(new Command("spawnboss", Skeletron, "skeletron")); ChatCommands.Add(new Command(Permissions.spawnboss, Skeletron, "skeletron"));
ChatCommands.Add(new Command("spawnboss", Hardcore, "hardcore")); ChatCommands.Add(new Command(Permissions.spawnboss, Hardcore, "hardcore"));
ChatCommands.Add(new Command("spawnmob", SpawnMob, "spawnmob", "sm")); ChatCommands.Add(new Command(Permissions.spawnmob, SpawnMob, "spawnmob", "sm"));
ChatCommands.Add(new Command("tp", Home, "home")); ChatCommands.Add(new Command(Permissions.tp, Home, "home"));
ChatCommands.Add(new Command("tp", Spawn, "spawn")); ChatCommands.Add(new Command(Permissions.tp, Spawn, "spawn"));
ChatCommands.Add(new Command("tp", TP, "tp")); ChatCommands.Add(new Command(Permissions.tp, TP, "tp"));
ChatCommands.Add(new Command("tphere", TPHere, "tphere")); ChatCommands.Add(new Command(Permissions.tphere, TPHere, "tphere"));
ChatCommands.Add(new Command("warp", UseWarp, "warp")); ChatCommands.Add(new Command(Permissions.warp, UseWarp, "warp"));
ChatCommands.Add(new Command("managewarp", SetWarp, "setwarp")); ChatCommands.Add(new Command(Permissions.managewarp, SetWarp, "setwarp"));
ChatCommands.Add(new Command("managewarp", DeleteWarp, "delwarp")); ChatCommands.Add(new Command(Permissions.managewarp, DeleteWarp, "delwarp"));
ChatCommands.Add(new Command("managewarp", HideWarp, "hidewarp")); ChatCommands.Add(new Command(Permissions.managewarp, HideWarp, "hidewarp"));
ChatCommands.Add(new Command("managegroup", AddGroup, "addgroup")); ChatCommands.Add(new Command(Permissions.managewarp, AddGroup, "addgroup"));
ChatCommands.Add(new Command("managegroup", DeleteGroup, "delgroup")); ChatCommands.Add(new Command(Permissions.managewarp, DeleteGroup, "delgroup"));
ChatCommands.Add(new Command("managegroup", ModifyGroup, "modgroup")); ChatCommands.Add(new Command(Permissions.managewarp, ModifyGroup, "modgroup"));
ChatCommands.Add(new Command("manageitem", AddItem, "additem")); ChatCommands.Add(new Command(Permissions.manageitem, AddItem, "additem"));
ChatCommands.Add(new Command("manageitem", DeleteItem, "delitem")); ChatCommands.Add(new Command(Permissions.manageitem, DeleteItem, "delitem"));
ChatCommands.Add(new Command("cfg", SetSpawn, "setspawn")); ChatCommands.Add(new Command(Permissions.cfg, SetSpawn, "setspawn"));
ChatCommands.Add(new Command("cfg", Reload, "reload")); ChatCommands.Add(new Command(Permissions.cfg, Reload, "reload"));
ChatCommands.Add(new Command("cfg", ShowConfiguration, "showconfig")); ChatCommands.Add(new Command(Permissions.cfg, ShowConfiguration, "showconfig"));
ChatCommands.Add(new Command("cfg", ServerPassword, "serverpassword")); ChatCommands.Add(new Command(Permissions.cfg, ServerPassword, "serverpassword"));
ChatCommands.Add(new Command("cfg", Save, "save")); ChatCommands.Add(new Command(Permissions.cfg, Save, "save"));
ChatCommands.Add(new Command("cfg", MaxSpawns, "maxspawns")); ChatCommands.Add(new Command(Permissions.cfg, MaxSpawns, "maxspawns"));
ChatCommands.Add(new Command("cfg", SpawnRate, "spawnrate")); ChatCommands.Add(new Command(Permissions.cfg, SpawnRate, "spawnrate"));
ChatCommands.Add(new Command("time", Time, "time")); ChatCommands.Add(new Command(Permissions.time, Time, "time"));
ChatCommands.Add(new Command("pvpfun", Slap, "slap")); ChatCommands.Add(new Command(Permissions.pvpfun, Slap, "slap"));
ChatCommands.Add(new Command("editspawn", ToggleAntiBuild, "antibuild")); ChatCommands.Add(new Command(Permissions.editspawn, ToggleAntiBuild, "antibuild"));
ChatCommands.Add(new Command("editspawn", ProtectSpawn, "protectspawn")); ChatCommands.Add(new Command(Permissions.editspawn, ProtectSpawn, "protectspawn"));
ChatCommands.Add(new Command("manageregion", Region, "region")); ChatCommands.Add(new Command(Permissions.manageregion, Region, "region"));
ChatCommands.Add(new Command("editspawn", DebugRegions, "debugreg")); ChatCommands.Add(new Command(Permissions.editspawn, DebugRegions, "debugreg"));
ChatCommands.Add(new Command(Help, "help")); ChatCommands.Add(new Command(Help, "help"));
ChatCommands.Add(new Command(Playing, "playing", "online", "who")); ChatCommands.Add(new Command(Playing, "playing", "online", "who"));
ChatCommands.Add(new Command(AuthToken, "auth")); ChatCommands.Add(new Command(AuthToken, "auth"));
ChatCommands.Add(new Command(ThirdPerson, "me")); ChatCommands.Add(new Command(ThirdPerson, "me"));
ChatCommands.Add(new Command(PartyChat, "p")); ChatCommands.Add(new Command(PartyChat, "p"));
ChatCommands.Add(new Command(Rules, "rules")); ChatCommands.Add(new Command(Rules, "rules"));
ChatCommands.Add(new Command("logs", DisplayLogs, "displaylogs")); ChatCommands.Add(new Command(Permissions.logs, DisplayLogs, "displaylogs"));
ChatCommands.Add(new Command(PasswordUser, "password") { DoLog = false }); ChatCommands.Add(new Command(PasswordUser, "password") { DoLog = false });
ChatCommands.Add(new Command(RegisterUser, "register") { DoLog = false }); ChatCommands.Add(new Command(RegisterUser, "register") { DoLog = false });
ChatCommands.Add(new Command("root-only", ManageUsers, "user") { DoLog = false }); ChatCommands.Add(new Command(Permissions.rootonly, ManageUsers, "user") { DoLog = false });
ChatCommands.Add(new Command("root-only", GrabUserUserInfo, "userinfo", "ui")); ChatCommands.Add(new Command(Permissions.rootonly, GrabUserUserInfo, "userinfo", "ui"));
ChatCommands.Add(new Command("root-only", AuthVerify, "auth-verify")); ChatCommands.Add(new Command(Permissions.rootonly, AuthVerify, "auth-verify"));
ChatCommands.Add(new Command(AttemptLogin, "login") { DoLog = false }); ChatCommands.Add(new Command(AttemptLogin, "login") { DoLog = false });
ChatCommands.Add(new Command("cfg", Broadcast, "broadcast", "bc")); ChatCommands.Add(new Command(Permissions.cfg, Broadcast, "broadcast", "bc"));
ChatCommands.Add(new Command("whisper", Whisper, "whisper", "w", "tell")); ChatCommands.Add(new Command(Permissions.whisper, Whisper, "whisper", "w", "tell"));
ChatCommands.Add(new Command("whisper", Reply, "reply", "r")); ChatCommands.Add(new Command(Permissions.whisper, Reply, "reply", "r"));
ChatCommands.Add(new Command("annoy", Annoy, "annoy")); ChatCommands.Add(new Command(Permissions.annoy, Annoy, "annoy"));
ChatCommands.Add(new Command("cfg", ConvertWaR, "convert")); ChatCommands.Add(new Command(Permissions.cfg, ConvertWaR, "convert"));
ChatCommands.Add(new Command("kill", Kill, "kill")); ChatCommands.Add(new Command(Permissions.kill, Kill, "kill"));
ChatCommands.Add(new Command("butcher", Butcher, "butcher")); ChatCommands.Add(new Command(Permissions.butcher, Butcher, "butcher"));
ChatCommands.Add(new Command("item", Item, "item", "i")); ChatCommands.Add(new Command(Permissions.item, Item, "item", "i"));
ChatCommands.Add(new Command("item", Give, "give")); ChatCommands.Add(new Command(Permissions.item, Give, "give"));
ChatCommands.Add(new Command("heal", Heal, "heal")); ChatCommands.Add(new Command(Permissions.heal, Heal, "heal"));
} }
public static bool HandleCommand(TSPlayer player, string text) public static bool HandleCommand(TSPlayer player, string text)
@ -1627,7 +1627,7 @@ namespace TShockAPI
{ {
int.TryParse(args.Parameters[1], out damage); int.TryParse(args.Parameters[1], out damage);
} }
if (!args.Player.Group.HasPermission("kill")) if (!args.Player.Group.HasPermission(Permissions.kill))
{ {
damage = Tools.Clamp(damage, 15, 0); damage = Tools.Clamp(damage, 15, 0);
} }

View file

@ -316,7 +316,7 @@ namespace TShockAPI.DB
public bool CanBuild(int x, int y, TSPlayer ply) public bool CanBuild(int x, int y, TSPlayer ply)
{ {
if (!ply.Group.HasPermission("canbuild")) if (!ply.Group.HasPermission(Permissions.canbuild))
{ {
return false; return false;
} }

View file

@ -150,7 +150,7 @@ namespace TShockAPI
{ {
string itemname = Encoding.ASCII.GetString(args.Data.ReadBytes(namelength)); string itemname = Encoding.ASCII.GetString(args.Data.ReadBytes(namelength));
if (!args.Player.Group.HasPermission("usebanneditem") && TShock.Itembans.ItemIsBanned(itemname)) if (!args.Player.Group.HasPermission(Permissions.usebanneditem) && TShock.Itembans.ItemIsBanned(itemname))
{ {
args.Player.Disconnect("Using banned item: " + itemname + ", remove it and rejoin"); args.Player.Disconnect("Using banned item: " + itemname + ", remove it and rejoin");
} }
@ -299,7 +299,7 @@ namespace TShockAPI
return true; return true;
} }
if (!args.Player.Group.HasPermission("canbuild")) if (!args.Player.Group.HasPermission(Permissions.canbuild))
{ {
if (!args.Player.HasBeenSpammedWithBuildMessage) if (!args.Player.HasBeenSpammedWithBuildMessage)
{ {
@ -330,7 +330,7 @@ namespace TShockAPI
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason); return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
} }
} }
if (tiletype == 48 && !args.Player.Group.HasPermission("canspike")) if (tiletype == 48 && !args.Player.Group.HasPermission(Permissions.canspike))
{ {
args.Player.SendMessage("You do not have permission to place spikes.", Color.Red); args.Player.SendMessage("You do not have permission to place spikes.", Color.Red);
Tools.SendLogs(string.Format("{0} tried to place spikes", args.Player.Name), Color.Red); Tools.SendLogs(string.Format("{0} tried to place spikes", args.Player.Name), Color.Red);
@ -338,7 +338,7 @@ namespace TShockAPI
return true; return true;
} }
} }
if (!args.Player.Group.HasPermission("editspawn") && !TShock.Regions.CanBuild(x, y, args.Player) && TShock.Regions.InArea(x, y)) if (!args.Player.Group.HasPermission(Permissions.editspawn) && !TShock.Regions.CanBuild(x, y, args.Player) && TShock.Regions.InArea(x, y))
{ {
if ((DateTime.UtcNow - args.Player.LastTileChangeNotify).TotalMilliseconds > 1000) if ((DateTime.UtcNow - args.Player.LastTileChangeNotify).TotalMilliseconds > 1000)
{ {
@ -350,7 +350,7 @@ namespace TShockAPI
} }
if (TShock.Config.DisableBuild) if (TShock.Config.DisableBuild)
{ {
if (!args.Player.Group.HasPermission("editspawn")) if (!args.Player.Group.HasPermission(Permissions.editspawn))
{ {
if ((DateTime.UtcNow - args.Player.LastTileChangeNotify).TotalMilliseconds > 1000) if ((DateTime.UtcNow - args.Player.LastTileChangeNotify).TotalMilliseconds > 1000)
{ {
@ -363,7 +363,7 @@ namespace TShockAPI
} }
if (TShock.Config.SpawnProtection) if (TShock.Config.SpawnProtection)
{ {
if (!args.Player.Group.HasPermission("editspawn")) if (!args.Player.Group.HasPermission(Permissions.editspawn))
{ {
var flag = TShock.CheckSpawn(x, y); var flag = TShock.CheckSpawn(x, y);
if (flag) if (flag)
@ -477,7 +477,7 @@ namespace TShockAPI
if (type == 29 || type == 28 || type == 37) if (type == 29 || type == 28 || type == 37)
{ {
Log.Debug(string.Format("Explosive(PlyXY:{0}_{1}, Type:{2})", args.Player.TileX, args.Player.TileY, type)); Log.Debug(string.Format("Explosive(PlyXY:{0}_{1}, Type:{2})", args.Player.TileX, args.Player.TileY, type));
if (TShock.Config.DisableExplosives && (!args.Player.Group.HasPermission("useexplosives") || !args.Player.Group.HasPermission("ignoregriefdetection"))) if (TShock.Config.DisableExplosives && (!args.Player.Group.HasPermission(Permissions.useexplosives) || !args.Player.Group.HasPermission(Permissions.ignoregriefdetection)))
{ {
Main.projectile[ident].type = 0; Main.projectile[ident].type = 0;
args.Player.SendData(PacketTypes.ProjectileNew, "", ident); args.Player.SendData(PacketTypes.ProjectileNew, "", ident);
@ -536,21 +536,21 @@ namespace TShockAPI
} }
} }
if (!args.Player.Group.HasPermission("canbuild")) if (!args.Player.Group.HasPermission(Permissions.canbuild))
{ {
args.Player.SendMessage("You do not have permission to build!", Color.Red); args.Player.SendMessage("You do not have permission to build!", Color.Red);
args.Player.SendTileSquare(x, y); args.Player.SendTileSquare(x, y);
return true; return true;
} }
if (lava && !args.Player.Group.HasPermission("canlava")) if (lava && !args.Player.Group.HasPermission(Permissions.canlava))
{ {
args.Player.SendMessage("You do not have permission to use lava", Color.Red); args.Player.SendMessage("You do not have permission to use lava", Color.Red);
Tools.SendLogs(string.Format("{0} tried using lava", args.Player.Name), Color.Red); Tools.SendLogs(string.Format("{0} tried using lava", args.Player.Name), Color.Red);
args.Player.SendTileSquare(x, y); args.Player.SendTileSquare(x, y);
return true; return true;
} }
if (!lava && !args.Player.Group.HasPermission("canwater")) if (!lava && !args.Player.Group.HasPermission(Permissions.canwater))
{ {
args.Player.SendMessage("You do not have permission to use water", Color.Red); args.Player.SendMessage("You do not have permission to use water", Color.Red);
Tools.SendLogs(string.Format("{0} tried using water", args.Player.Name), Color.Red); Tools.SendLogs(string.Format("{0} tried using water", args.Player.Name), Color.Red);
@ -574,7 +574,7 @@ namespace TShockAPI
if (TShock.Config.SpawnProtection) if (TShock.Config.SpawnProtection)
{ {
if (!args.Player.Group.HasPermission("editspawn")) if (!args.Player.Group.HasPermission(Permissions.editspawn))
{ {
var flag = TShock.CheckSpawn(x, y); var flag = TShock.CheckSpawn(x, y);
if (flag) if (flag)
@ -602,13 +602,13 @@ namespace TShockAPI
Tools.ForceKick(args.Player, string.Format(TShock.Config.TileKillAbuseReason, Main.tile[tilex, tiley].type)); Tools.ForceKick(args.Player, string.Format(TShock.Config.TileKillAbuseReason, Main.tile[tilex, tiley].type));
return true; return true;
} }
if (!args.Player.Group.HasPermission("canbuild")) if (!args.Player.Group.HasPermission(Permissions.canbuild))
{ {
args.Player.SendMessage("You do not have permission to build!", Color.Red); args.Player.SendMessage("You do not have permission to build!", Color.Red);
args.Player.SendTileSquare(tilex, tiley); args.Player.SendTileSquare(tilex, tiley);
return true; return true;
} }
if (!args.Player.Group.HasPermission("editspawn") && !TShock.Regions.CanBuild(tilex, tiley, args.Player) && TShock.Regions.InArea(tilex, tiley)) if (!args.Player.Group.HasPermission(Permissions.editspawn) && !TShock.Regions.CanBuild(tilex, tiley, args.Player) && TShock.Regions.InArea(tilex, tiley))
{ {
args.Player.SendMessage("Region protected from changes.", Color.Red); args.Player.SendMessage("Region protected from changes.", Color.Red);
args.Player.SendTileSquare(tilex, tiley); args.Player.SendTileSquare(tilex, tiley);
@ -616,7 +616,7 @@ namespace TShockAPI
} }
if (TShock.Config.DisableBuild) if (TShock.Config.DisableBuild)
{ {
if (!args.Player.Group.HasPermission("editspawn")) if (!args.Player.Group.HasPermission(Permissions.editspawn))
{ {
args.Player.SendMessage("World protected from changes.", Color.Red); args.Player.SendMessage("World protected from changes.", Color.Red);
args.Player.SendTileSquare(tilex, tiley); args.Player.SendTileSquare(tilex, tiley);
@ -625,7 +625,7 @@ namespace TShockAPI
} }
if (TShock.Config.SpawnProtection) if (TShock.Config.SpawnProtection)
{ {
if (!args.Player.Group.HasPermission("editspawn")) if (!args.Player.Group.HasPermission(Permissions.editspawn))
{ {
var flag = TShock.CheckSpawn(tilex, tiley); var flag = TShock.CheckSpawn(tilex, tiley);
if (flag) if (flag)

153
TShockAPI/Permissions.cs Normal file
View file

@ -0,0 +1,153 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace TShockAPI
{
public static class Permissions
{
//Permissions with blank descriptions basically means its described by the commands it gives access to.
[Description("")]
public static readonly string causeevents;
[Description("Required to be able to build (modify tiles and liquid)")]
public static readonly string canbuild;
[Description("")]
public static readonly string kill;
[Description("Allows you to use banned items")]
public static readonly string usebanneditem;
[Description("Required to be able to place spikes")]
public static readonly string canspike;
[Description("Required to be able to place/pickup water")]
public static readonly string canwater;
[Description("Required to be able to place/pickup lava")]
public static readonly string canlava;
[Description("Allows you to edit the spawn")]
public static readonly string editspawn;
[Description("Prevents you from being kicked")]
public static readonly string immunetokick;
[Description("Prevents you from being banned")]
public static readonly string immunetoban;
[Description("Prevents you from being kicked/banned by TShocks grief detections")]
public static readonly string ignoregriefdetection;
[Description("Prevents you from being kicked/banned by TShocks cheat detections")]
public static readonly string ignorecheatdetection;
[Description("Allows you to use explosives even when they are disabled")]
public static readonly string useexplosives;
[Description("Specific log messages are sent to users with this permission")]
public static readonly string logs;
[Description("User gets the admin prefix/color in chat")]
public static readonly string adminchat;
[Todo]
[Description("Not currently working")]
public static readonly string reservedslot;
[Description("User is notified when an update is available")]
public static readonly string maintenance;
[Description("User can kick others")]
public static readonly string kick;
[Description("User can ban others")]
public static readonly string ban;
[Description("User can modify the whitelist")]
public static readonly string whitelist;
[Description("User can spawn bosses")]
public static readonly string spawnboss;
[Description("User can spawn npcs")]
public static readonly string spawnmob;
[Description("User can teleport")]
public static readonly string tp;
[Description("User can teleport people to them")]
public static readonly string tphere;
[Description("User can use warps")]
public static readonly string warp;
[Description("User can manage warps")]
public static readonly string managewarp;
[Description("User can manage item bans")]
public static readonly string manageitem;
[Description("User can edit sevrer configurations")]
public static readonly string cfg;
[Description("")]
public static readonly string time;
[Description("")]
public static readonly string pvpfun;
[Description("User can edit regions")]
public static readonly string manageregion;
[Description("Meant for super admins only")]
public static readonly string rootonly;
[Description("User can whisper to others")]
public static readonly string whisper;
[Description("")]
public static readonly string annoy;
[Description("User can kill all enemy npcs")]
public static readonly string butcher;
[Description("User can spawn items")]
public static readonly string item;
[Description("")]
public static readonly string heal;
static Permissions()
{
foreach (var field in typeof(Permissions).GetFields())
{
field.SetValue(null, field.Name);
}
}
}
[AttributeUsage(AttributeTargets.Field, Inherited = false, AllowMultiple = false)]
public sealed class TodoAttribute : Attribute
{
public string Info { get; private set; }
public TodoAttribute(string info)
{
Info = info;
}
public TodoAttribute()
{
}
}
}

View file

@ -400,7 +400,7 @@ namespace TShockAPI
player.Group = Users.GetGroupForIP(player.IP); player.Group = Users.GetGroupForIP(player.IP);
} }
if (Tools.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission("reservedslot")) if (Tools.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission(Permissions.reservedslot))
{ {
Tools.ForceKick(player, Config.ServerFullReason); Tools.ForceKick(player, Config.ServerFullReason);
handler.Handled = true; handler.Handled = true;
@ -466,7 +466,7 @@ namespace TShockAPI
return; return;
} }
if (tsplr.Group.HasPermission("adminchat") && !text.StartsWith("/") && Config.AdminChatEnabled) if (tsplr.Group.HasPermission(Permissions.adminchat) && !text.StartsWith("/") && Config.AdminChatEnabled)
{ {
Tools.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text, Tools.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text,
tsplr.Group.R, tsplr.Group.G, tsplr.Group.R, tsplr.Group.G,
@ -579,7 +579,7 @@ namespace TShockAPI
// Stop accepting updates from player as this player is going to be kicked/banned during OnUpdate (different thread so can produce race conditions) // Stop accepting updates from player as this player is going to be kicked/banned during OnUpdate (different thread so can produce race conditions)
if ((Config.BanKillTileAbusers || Config.KickKillTileAbusers) && if ((Config.BanKillTileAbusers || Config.KickKillTileAbusers) &&
player.TileThreshold >= Config.TileThreshold && !player.Group.HasPermission("ignoregriefdetection")) player.TileThreshold >= Config.TileThreshold && !player.Group.HasPermission(Permissions.ignoregriefdetection))
{ {
Log.Debug("Rejecting " + type + " from " + player.Name + " as this player is about to be kicked"); Log.Debug("Rejecting " + type + " from " + player.Name + " as this player is about to be kicked");
e.Handled = true; e.Handled = true;
@ -627,7 +627,7 @@ namespace TShockAPI
"PvP is forced! Enable PvP else you can't deal damage to other people. (People can kill you)", "PvP is forced! Enable PvP else you can't deal damage to other people. (People can kill you)",
Color.Red); Color.Red);
} }
if (player.Group.HasPermission("causeevents") && Config.InfiniteInvasion) if (player.Group.HasPermission(Permissions.causeevents) && Config.InfiniteInvasion)
{ {
StartInvasion(); StartInvasion();
} }

View file

@ -118,6 +118,7 @@
<Compile Include="Net\WorldInfoMsg.cs" /> <Compile Include="Net\WorldInfoMsg.cs" />
<Compile Include="DB\RegionManager.cs" /> <Compile Include="DB\RegionManager.cs" />
<Compile Include="PacketBufferer.cs" /> <Compile Include="PacketBufferer.cs" />
<Compile Include="Permissions.cs" />
<Compile Include="RconHandler.cs" /> <Compile Include="RconHandler.cs" />
<Compile Include="DB\RememberPosManager.cs" /> <Compile Include="DB\RememberPosManager.cs" />
<Compile Include="Resources.Designer.cs"> <Compile Include="Resources.Designer.cs">
@ -181,7 +182,7 @@
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <VisualStudio>
<UserProperties BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildAction="Both" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_StartDate="2011/6/17" BuildVersion_IncrementBeforeBuild="False" /> <UserProperties BuildVersion_IncrementBeforeBuild="False" BuildVersion_StartDate="2011/6/17" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_BuildAction="Both" BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" />
</VisualStudio> </VisualStudio>
</ProjectExtensions> </ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.

View file

@ -146,7 +146,7 @@ namespace TShockAPI
TSPlayer.Server.SendMessage(log, color); TSPlayer.Server.SendMessage(log, color);
foreach (TSPlayer player in TShock.Players) foreach (TSPlayer player in TShock.Players)
{ {
if (player != null && player.Active && player.Group.HasPermission("logs") && player.DisplayLogs && TShock.Config.DisableSpewLogs == false) if (player != null && player.Active && player.Group.HasPermission(Permissions.logs) && player.DisplayLogs && TShock.Config.DisableSpewLogs == false)
player.SendMessage(log, color); player.SendMessage(log, color);
} }
} }
@ -344,7 +344,7 @@ namespace TShockAPI
{ {
if (!player.ConnectionAlive) if (!player.ConnectionAlive)
return true; return true;
if (!player.Group.HasPermission("immunetokick")) if (!player.Group.HasPermission(Permissions.immunetokick))
{ {
string playerName = player.Name; string playerName = player.Name;
player.Disconnect(string.Format("Kicked: {0}", reason)); player.Disconnect(string.Format("Kicked: {0}", reason));
@ -367,7 +367,7 @@ namespace TShockAPI
{ {
if (!player.ConnectionAlive) if (!player.ConnectionAlive)
return true; return true;
if (!player.Group.HasPermission("immunetoban")) if (!player.Group.HasPermission(Permissions.immunetoban))
{ {
string ip = player.IP; string ip = player.IP;
string playerName = player.Name; string playerName = player.Name;
@ -390,17 +390,17 @@ namespace TShockAPI
public static bool HandleGriefer(TSPlayer player, string reason) public static bool HandleGriefer(TSPlayer player, string reason)
{ {
return HandleBadPlayer(player, "ignoregriefdetection", TShock.Config.BanGriefers, TShock.Config.KickGriefers, reason); return HandleBadPlayer(player, Permissions.ignoregriefdetection, TShock.Config.BanGriefers, TShock.Config.KickGriefers, reason);
} }
public static bool HandleTntUser(TSPlayer player, string reason) public static bool HandleTntUser(TSPlayer player, string reason)
{ {
return HandleBadPlayer(player, "ignoregriefdetection", TShock.Config.BanKillTileAbusers, TShock.Config.KickKillTileAbusers, reason); return HandleBadPlayer(player, Permissions.ignoregriefdetection, TShock.Config.BanKillTileAbusers, TShock.Config.KickKillTileAbusers, reason);
} }
public static bool HandleExplosivesUser(TSPlayer player, string reason) public static bool HandleExplosivesUser(TSPlayer player, string reason)
{ {
return HandleBadPlayer(player, "ignoregriefdetection", TShock.Config.BanExplosives, TShock.Config.KickExplosives, reason); return HandleBadPlayer(player, Permissions.ignoregriefdetection, TShock.Config.BanExplosives, TShock.Config.KickExplosives, reason);
} }
private static bool HandleBadPlayer(TSPlayer player, string overridePermission, bool ban, bool kick, string reason) private static bool HandleBadPlayer(TSPlayer player, string overridePermission, bool ban, bool kick, string reason)

View file

@ -83,7 +83,7 @@ namespace TShockAPI
NotifyAdministrator(TSPlayer.Server, changes); NotifyAdministrator(TSPlayer.Server, changes);
foreach (TSPlayer player in TShock.Players) foreach (TSPlayer player in TShock.Players)
{ {
if (player != null && player.Active && player.Group.HasPermission("maintenance")) if (player != null && player.Active && player.Group.HasPermission(Permissions.maintenance))
{ {
NotifyAdministrator(player, changes); NotifyAdministrator(player, changes);
} }