From b7019d826778f57ac3e701407af2789800198339 Mon Sep 17 00:00:00 2001 From: Zack Piispanen Date: Sun, 22 Sep 2013 23:14:14 -0400 Subject: [PATCH] change permissions to tshock.xxx and fix default group creating to reference permissions that exist, and not hardcoded strings. --- TShockAPI/ConfigFile.cs | 1 + TShockAPI/DB/GroupManager.cs | 23 ++++++++++++++++------- TShockAPI/Permissions.cs | 2 +- TShockAPI/TShock.cs | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/TShockAPI/ConfigFile.cs b/TShockAPI/ConfigFile.cs index 36d7e6ae..9079f3e1 100644 --- a/TShockAPI/ConfigFile.cs +++ b/TShockAPI/ConfigFile.cs @@ -267,6 +267,7 @@ namespace TShockAPI [Description("The maximum value that a character may have for health.")] public int MaxMana = 400; + [Description("The number of reserved slots past your max server slot that can be joined by reserved players")] public int ReservedSlots = 20; /// /// Reads a configuration file from a given path /// diff --git a/TShockAPI/DB/GroupManager.cs b/TShockAPI/DB/GroupManager.cs index bd91f09b..32967aed 100644 --- a/TShockAPI/DB/GroupManager.cs +++ b/TShockAPI/DB/GroupManager.cs @@ -53,13 +53,22 @@ namespace TShockAPI.DB LoadPermisions(); // Add default groups if they don't exist - AddDefaultGroup(TShock.Config.DefaultGuestGroupName, "", "canbuild,canregister,canlogin,canpartychat,cantalkinthird"); - AddDefaultGroup("default", TShock.Config.DefaultGuestGroupName, "warp,canchangepassword"); - AddDefaultGroup("newadmin", "default", "kick,editspawn,reservedslot"); - AddDefaultGroup("admin", "newadmin", - "ban,unban,whitelist,causeevents,spawnboss,spawnmob,managewarp,time,tp,pvpfun,kill,logs,immunetokick,tphere"); - AddDefaultGroup("trustedadmin", "admin", "maintenance,cfg,butcher,item,heal,immunetoban,usebanneditem,manageusers"); - AddDefaultGroup("vip", "default", "reservedslot"); + AddDefaultGroup(TShock.Config.DefaultGuestGroupName, "", + string.Join(",", Permissions.canbuild, Permissions.canregister, Permissions.canlogin, Permissions.canpartychat, + Permissions.cantalkinthird)); + + AddDefaultGroup("default", TShock.Config.DefaultGuestGroupName, string.Join(",", Permissions.warp, Permissions.canchangepassword)); + + AddDefaultGroup("newadmin", "default", string.Join(",", Permissions.kick, Permissions.editspawn, Permissions.reservedslot)); + + AddDefaultGroup("admin", "newadmin", string.Join(",", Permissions.ban, Permissions.whitelist, Permissions.causeevents, Permissions.spawnboss, + Permissions.spawnmob, Permissions.managewarp, Permissions.time, Permissions.tp, Permissions.pvpfun, Permissions.kill, Permissions.logs, + Permissions.immunetokick, Permissions.tphere)); + + AddDefaultGroup("trustedadmin", "admin", string.Join(",", Permissions.maintenance, Permissions.cfg, Permissions.butcher, Permissions.item, + Permissions.heal, Permissions.immunetoban, Permissions.usebanneditem)); + + AddDefaultGroup("vip", "default", string.Join(",", Permissions.reservedslot)); Group.DefaultGroup = GetGroupByName(TShock.Config.DefaultGuestGroupName); } diff --git a/TShockAPI/Permissions.cs b/TShockAPI/Permissions.cs index bf56613c..b8015de2 100644 --- a/TShockAPI/Permissions.cs +++ b/TShockAPI/Permissions.cs @@ -181,7 +181,7 @@ namespace TShockAPI { foreach (var field in typeof (Permissions).GetFields()) { - field.SetValue(null, field.Name); + field.SetValue(null, String.Format("tshock.{0}", field.Name)); } } diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 559fadf1..35d03033 100644 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -771,7 +771,7 @@ namespace TShockAPI { var player = new TSPlayer(ply); - if (Utils.ActivePlayers() + 1 > Config.MaxSlots + 20) + if (Utils.ActivePlayers() + 1 > Config.MaxSlots + Config.ReservedSlots) { Utils.ForceKick(player, Config.ServerFullNoReservedReason, true, false); handler.Handled = true;