Adds chat colors to player groups.
This commit is contained in:
parent
031721c169
commit
5ff8680ccb
4 changed files with 27 additions and 14 deletions
|
|
@ -48,7 +48,7 @@ namespace TShockAPI
|
||||||
public bool DisableBuild;
|
public bool DisableBuild;
|
||||||
public int TileThreshold = 60;
|
public int TileThreshold = 60;
|
||||||
|
|
||||||
public float[] AdminChatRGB = { 255, 0, 0 };
|
public float[] SuperAdminChatRGB = { 255, 0, 0 };
|
||||||
public string AdminChatPrefix = "(Admin) ";
|
public string AdminChatPrefix = "(Admin) ";
|
||||||
public bool AdminChatEnabled = true;
|
public bool AdminChatEnabled = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,21 +16,21 @@ namespace TShockAPI.DB
|
||||||
{
|
{
|
||||||
database = db;
|
database = db;
|
||||||
|
|
||||||
string query;
|
string query = "";
|
||||||
|
|
||||||
if (TShock.Config.StorageType.ToLower() == "sqlite")
|
if (TShock.Config.StorageType.ToLower() == "sqlite")
|
||||||
{
|
{
|
||||||
db.Query("CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT);");
|
db.Query("CREATE TABLE IF NOT EXISTS 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT);");
|
||||||
query = "CREATE TEMPORARY TABLE 'GroupList_backup' ('GroupName' TEXT, 'Commands' TEXT); INSERT INTO 'GroupList_backup' SELECT GroupName,Commands FROM 'GroupList'; DROP TABLE 'GroupList'; CREATE TABLE 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT); INSERT INTO 'GroupList' SELECT GroupName,Commands FROM 'GroupList_backup'; DROP TABLE 'GroupList_backup';";
|
db.Query("CREATE TEMPORARY TABLE 'GroupList_backup' ('GroupName' TEXT, 'Commands' TEXT); INSERT INTO 'GroupList_backup' SELECT GroupName,Commands FROM 'GroupList'; DROP TABLE 'GroupList'; CREATE TABLE 'GroupList' ('GroupName' TEXT PRIMARY KEY, 'Commands' TEXT); INSERT INTO 'GroupList' SELECT GroupName,Commands FROM 'GroupList_backup'; DROP TABLE 'GroupList_backup';");
|
||||||
|
db.Query("ALTER TABLE 'GroupList' ADD COLUMN 'ChatColor' TEXT");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
query =
|
db.Query("CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255));");
|
||||||
"CREATE TABLE IF NOT EXISTS GroupList (GroupName VARCHAR(255) PRIMARY, Commands VARCHAR(255));";
|
|
||||||
db.Query("ALTER TABLE GroupList DROP COLUMN OrderBy");
|
db.Query("ALTER TABLE GroupList DROP COLUMN OrderBy");
|
||||||
|
db.Query("ALTER TABLE GroupList ADD COLUMN ChatColor VARCHAR(255)");
|
||||||
}
|
}
|
||||||
|
|
||||||
db.Query(query);
|
|
||||||
|
|
||||||
//Add default groups
|
//Add default groups
|
||||||
AddGroup("trustedadmin", "admin,maintenance,cfg,butcher,item,heal,immunetoban,ignorecheatdetection,ignoregriefdetection,usebanneditem,manageusers");
|
AddGroup("trustedadmin", "admin,maintenance,cfg,butcher,item,heal,immunetoban,ignorecheatdetection,ignoregriefdetection,usebanneditem,manageusers");
|
||||||
AddGroup("admin", "newadmin,ban,unban,whitelist,causeevents,spawnboss,spawnmob,managewarp,time,tp,pvpfun,kill,logs,immunetokick,tphere");
|
AddGroup("admin", "newadmin,ban,unban,whitelist,causeevents,spawnboss,spawnmob,managewarp,time,tp,pvpfun,kill,logs,immunetokick,tphere");
|
||||||
|
|
@ -100,18 +100,18 @@ namespace TShockAPI.DB
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">name of group</param>
|
/// <param name="name">name of group</param>
|
||||||
/// <param name="permissions">permissions</param>
|
/// <param name="permissions">permissions</param>
|
||||||
public String AddGroup(String name, String permissions)
|
public String AddGroup(String name, String permissions, String ChatColor = "255,255,255")
|
||||||
{
|
{
|
||||||
String message = "";
|
String message = "";
|
||||||
if (GroupExists(name))
|
if (GroupExists(name))
|
||||||
return "Error: Group already exists. Use /modGroup to change permissions.";
|
return "Error: Group already exists. Use /modGroup to change permissions.";
|
||||||
|
|
||||||
string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
|
string query = (TShock.Config.StorageType.ToLower() == "sqlite") ?
|
||||||
"INSERT OR IGNORE INTO GroupList (GroupName, Commands) VALUES (@0, @1);" :
|
"INSERT OR IGNORE INTO GroupList (GroupName, Commands, ChatColor) VALUES (@0, @1, @2);" :
|
||||||
"INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1";
|
"INSERT IGNORE INTO GroupList SET GroupName=@0, Commands=@1";
|
||||||
if (database.Query(query, name, permissions) == 1)
|
if (database.Query(query, name, permissions, ChatColor) == 1)
|
||||||
message = "Group " + name + " has been created successfully.";
|
message = "Group " + name + " has been created successfully.";
|
||||||
Group g = new Group(name);
|
Group g = new Group(name, null, ChatColor);
|
||||||
g.permissions.Add(permissions);
|
g.permissions.Add(permissions);
|
||||||
groups.Add(g);
|
groups.Add(g);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,17 @@ namespace TShockAPI
|
||||||
public Group Parent { get; protected set; }
|
public Group Parent { get; protected set; }
|
||||||
public int Order { get; set; }
|
public int Order { get; set; }
|
||||||
|
|
||||||
public Group(string groupname, Group parentgroup = null)
|
public byte R = 255;
|
||||||
|
public byte G = 255;
|
||||||
|
public byte B = 255;
|
||||||
|
|
||||||
|
public Group(string groupname, Group parentgroup = null, string ChatColor = "255,255,255")
|
||||||
{
|
{
|
||||||
Name = groupname;
|
Name = groupname;
|
||||||
Parent = parentgroup;
|
Parent = parentgroup;
|
||||||
|
byte.TryParse(ChatColor.Split(',')[0], out R);
|
||||||
|
byte.TryParse(ChatColor.Split(',')[1], out G);
|
||||||
|
byte.TryParse(ChatColor.Split(',')[2], out B);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool HasPermission(string permission)
|
public virtual bool HasPermission(string permission)
|
||||||
|
|
@ -100,6 +107,9 @@ namespace TShockAPI
|
||||||
public SuperAdminGroup()
|
public SuperAdminGroup()
|
||||||
: base("superadmin")
|
: base("superadmin")
|
||||||
{
|
{
|
||||||
|
R = (byte)TShock.Config.SuperAdminChatRGB[0];
|
||||||
|
G = (byte)TShock.Config.SuperAdminChatRGB[1];
|
||||||
|
B = (byte)TShock.Config.SuperAdminChatRGB[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool HasPermission(string permission)
|
public override bool HasPermission(string permission)
|
||||||
|
|
|
||||||
|
|
@ -473,8 +473,8 @@ namespace TShockAPI
|
||||||
if (tsplr.Group.HasPermission("adminchat") && !text.StartsWith("/") && Config.AdminChatEnabled)
|
if (tsplr.Group.HasPermission("adminchat") && !text.StartsWith("/") && Config.AdminChatEnabled)
|
||||||
{
|
{
|
||||||
Tools.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text,
|
Tools.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text,
|
||||||
(byte) Config.AdminChatRGB[0], (byte) Config.AdminChatRGB[1],
|
tsplr.Group.R, tsplr.Group.G,
|
||||||
(byte) Config.AdminChatRGB[2]);
|
tsplr.Group.B);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -493,6 +493,9 @@ namespace TShockAPI
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Tools.Broadcast("<" + tsplr.Name + "> " + text,
|
||||||
|
tsplr.Group.R, tsplr.Group.G,
|
||||||
|
tsplr.Group.B);
|
||||||
Log.Info(string.Format("{0} said: {1}", tsplr.Name, text));
|
Log.Info(string.Format("{0} said: {1}", tsplr.Name, text));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue