changed default group permissions and fixed /help

This commit is contained in:
Maverick Motherfucker 2011-06-04 12:00:00 -07:00
parent dbdbc9e41e
commit 8d7a52ff9a
2 changed files with 33 additions and 16 deletions

View file

@ -59,6 +59,15 @@ namespace TShockAPI
{ {
return name; return name;
} }
public bool CanRun(TSPlayer ply)
{
if (!ply.group.HasPermission(permission))
{
return false;
}
return true;
}
} }
public static void InitCommands() public static void InitCommands()
@ -101,7 +110,7 @@ namespace TShockAPI
int ply = args.PlayerID; int ply = args.PlayerID;
if (!(Tools.FindPlayer(plStr) == -1 || Tools.FindPlayer(plStr) == -2 || plStr == "")) if (!(Tools.FindPlayer(plStr) == -1 || Tools.FindPlayer(plStr) == -2 || plStr == ""))
{ {
if (!TShock.players[Tools.FindPlayer(plStr)].IsAdmin()) if (!TShock.players[Tools.FindPlayer(plStr)].group.HasPermission("immunetokick"))
{ {
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));
@ -121,7 +130,7 @@ namespace TShockAPI
int ply = args.PlayerID; int ply = args.PlayerID;
if (!(Tools.FindPlayer(plStr) == -1 || Tools.FindPlayer(plStr) == -2 || plStr == "")) if (!(Tools.FindPlayer(plStr) == -1 || Tools.FindPlayer(plStr) == -2 || plStr == ""))
{ {
if (!TShock.players[Tools.FindPlayer(plStr)].IsAdmin()) if (!TShock.players[Tools.FindPlayer(plStr)].group.HasPermission("immunetoban"))
{ {
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.");
@ -473,9 +482,6 @@ namespace TShockAPI
public static void Help(CommandArgs args) public static void Help(CommandArgs args)
{ {
int ply = args.PlayerID; int ply = args.PlayerID;
var commands = TShock.commandList;
if (TShock.players[ply].IsAdmin())
commands = TShock.admincommandList;
Tools.SendMessage(ply, "TShock Commands:"); Tools.SendMessage(ply, "TShock Commands:");
int h = 1; int h = 1;
int i = 0; int i = 0;
@ -483,31 +489,39 @@ namespace TShockAPI
int page = 1; int page = 1;
if (args.Message.Split(' ').Length == 2) if (args.Message.Split(' ').Length == 2)
int.TryParse(args.Message.Split(' ')[1], out page); int.TryParse(args.Message.Split(' ')[1], out page);
if (commands.Count > (15 * (page - 1))) List<Command> cmdlist = new List<Command>();
for(int j = 0; j < commands.Count; j++)
{ {
for (int j = (15 * (page - 1)); j < commands.Count; j++) if(commands[j].CanRun(TShock.players[args.PlayerID]))
{
cmdlist.Add(commands[j]);
}
}
if (cmdlist.Count > (15 * (page - 1)))
{
for (int j = (15 * (page - 1)); j < cmdlist.Count; j++)
{ {
if (i == 3) break; if (i == 3) break;
if (j == commands.Count - 1) if (j == cmdlist.Count - 1)
{ {
tempstring += "/" + commands.Keys.ElementAt(j) + ", "; tempstring += "/" + cmdlist[j].Name() + ", ";
Tools.SendMessage(ply, tempstring.TrimEnd(new char[] { ' ', ',' }), new float[] { 255f, 255f, 0f }); Tools.SendMessage(ply, tempstring.TrimEnd(new char[] { ' ', ',' }), new float[] { 255f, 255f, 0f });
} }
if ((h - 1) % 5 == 0 && (h - 1) != 0) if ((h - 1) % 5 == 0 && (h - 1) != 0)
{ {
Tools.SendMessage(ply, tempstring.TrimEnd(new char[] { ' ', ',' }), new float[] { 255f, 255f, 0f }); Tools.SendMessage(ply, tempstring.TrimEnd(new char[] { ' ', ',' }), new float[] { 255f, 255f, 0f });
tempstring = "/" + commands.Keys.ElementAt(j) + ", "; tempstring = "/" + cmdlist[j].Name() + ", ";
i++; i++;
h++; h++;
} }
else else
{ {
tempstring += "/" + commands.Keys.ElementAt(j) + ", "; tempstring += "/" + cmdlist[j].Name() + ", ";
h++; h++;
} }
} }
} }
if (commands.Count > (15 * page)) if (cmdlist.Count > (15 * page))
{ Tools.SendMessage(ply, "Type /help " + (page + 1).ToString() + " for more commands.", new float[] { 255f, 0f, 255f }); } { Tools.SendMessage(ply, "Type /help " + (page + 1).ToString() + " for more commands.", new float[] { 255f, 0f, 255f }); }
Tools.SendMessage(ply, "Terraria commands:"); Tools.SendMessage(ply, "Terraria commands:");
Tools.SendMessage(ply, "/playing, /p, /me", new float[] { 255f, 255f, 0f }); Tools.SendMessage(ply, "/playing, /p, /me", new float[] { 255f, 255f, 0f });

View file

@ -7,9 +7,12 @@
#Do not name a group SuperAdmin, that is hard-coded into the code, it grants total permissions #Do not name a group SuperAdmin, that is hard-coded into the code, it grants total permissions
#ALWAYS DECLARE A GROUP'S PARENT BEFORE YOU DECLARE THE GROUP #ALWAYS DECLARE A GROUP'S PARENT BEFORE YOU DECLARE THE GROUP
#currently avaliable permissions: kick ban ignorecheatdetection power cfg causeevents spawnboss tp spawnmob cheat kill pvpfun #currently avaliable permissions: kick ban ignorecheatdetection
#power cfg causeevents spawnboss tp
#spawnmob cheat kill pvpfun
#immunetoban immunetokick
default null kill default null
newadmin default kick newadmin default kick
admin newadmin ban causeevents spawnboss spawnmob tp admin newadmin ban causeevents spawnboss spawnmob tp immunetokick kill
trustedadmin admin ignorecheatdetection power cfg cheat pvpfun trustedadmin admin ignorecheatdetection power cfg cheat pvpfun ignorecheatdetection immunetoban