As per High's complaining, holocaust against the Tools class (now Utils)

Plugin developers: You really need to change to reference this.
This commit is contained in:
Lucas Nicodemus 2011-12-01 23:24:02 -07:00
parent d32d36b459
commit 8514140ca7
15 changed files with 764 additions and 763 deletions

View file

@ -64,9 +64,9 @@ namespace TShockAPI
if (worldpath != null && !Directory.Exists(worldpath))
Directory.CreateDirectory(worldpath);
Tools.Broadcast("Server map saving, potential lag spike");
TShock.Utils.Broadcast("Server map saving, potential lag spike");
Console.WriteLine("Backing up world...");
Thread SaveWorld = new Thread(Tools.SaveWorld);
Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start();
while (SaveWorld.ThreadState == ThreadState.Running)

View file

@ -209,13 +209,13 @@ namespace TShockAPI
if (!cmd.CanRun(player))
{
Tools.SendLogs(string.Format("{0} tried to execute {1}", player.Name, cmd.Name), Color.Red);
TShock.Utils.SendLogs(string.Format("{0} tried to execute {1}", player.Name, cmd.Name), Color.Red);
player.SendMessage("You do not have access to that command.", Color.Red);
}
else
{
if (cmd.DoLog)
Tools.SendLogs(string.Format("{0} executed: /{1}", player.Name, cmdText), Color.Red);
TShock.Utils.SendLogs(string.Format("{0} executed: /{1}", player.Name, cmdText), Color.Red);
cmd.Run(cmdText, player, args);
}
return true;
@ -311,7 +311,7 @@ namespace TShockAPI
if (args.Player.LoginAttempts > TShock.Config.MaximumLoginAttempts && (TShock.Config.MaximumLoginAttempts != -1))
{
Log.Warn(args.Player.IP + "(" + args.Player.Name + ") had " + TShock.Config.MaximumLoginAttempts + " or more invalid login attempts and was kicked automatically.");
Tools.Kick(args.Player, "Too many invalid login attempts.");
TShock.Utils.Kick(args.Player, "Too many invalid login attempts.");
}
if (args.Parameters.Count != 2)
@ -322,7 +322,7 @@ namespace TShockAPI
}
try
{
string encrPass = Tools.HashPassword(args.Parameters[1]);
string encrPass = TShock.Utils.HashPassword(args.Parameters[1]);
var user = TShock.Users.GetUserByName(args.Parameters[0]);
if (user == null)
{
@ -330,7 +330,7 @@ namespace TShockAPI
}
else if (user.Password.ToUpper() == encrPass.ToUpper())
{
args.Player.Group = Tools.GetGroup(user.Group);
args.Player.Group = TShock.Utils.GetGroup(user.Group);
args.Player.UserAccountName = args.Parameters[0];
args.Player.UserID = TShock.Users.GetUserID(args.Player.UserAccountName);
args.Player.IsLoggedIn = true;
@ -359,7 +359,7 @@ namespace TShockAPI
if (args.Player.IsLoggedIn && args.Parameters.Count == 2)
{
var user = TShock.Users.GetUserByName(args.Player.UserAccountName);
string encrPass = Tools.HashPassword(args.Parameters[0]);
string encrPass = TShock.Utils.HashPassword(args.Parameters[0]);
if (user.Password.ToUpper() == encrPass.ToUpper())
{
args.Player.SendMessage("You changed your password!", Color.Green);
@ -600,7 +600,7 @@ namespace TShockAPI
return;
}
var players = Tools.FindPlayer(args.Parameters[0]);
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count > 1)
{
args.Player.SendMessage("More than one player matched your query.", Color.Red);
@ -630,7 +630,7 @@ namespace TShockAPI
}
string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -642,7 +642,7 @@ namespace TShockAPI
else
{
string reason = args.Parameters.Count > 1 ? String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1)) : "Misbehaviour.";
if (!Tools.Kick(players[0], reason))
if (!TShock.Utils.Kick(players[0], reason))
{
args.Player.SendMessage("You can't kick another admin!", Color.Red);
}
@ -663,7 +663,7 @@ namespace TShockAPI
}
string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -675,7 +675,7 @@ namespace TShockAPI
else
{
string reason = args.Parameters.Count > 1 ? String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1)) : "Misbehaviour.";
if (!Tools.Ban(players[0], reason))
if (!TShock.Utils.Ban(players[0], reason))
{
args.Player.SendMessage("You can't ban another admin!", Color.Red);
}
@ -856,20 +856,20 @@ namespace TShockAPI
message += " " + args.Parameters[i];
}
Tools.Broadcast("(Server Broadcast)" + message, Color.Red);
TShock.Utils.Broadcast("(Server Broadcast)" + message, Color.Red);
return;
}
private static void Off(CommandArgs args)
{
Tools.ForceKickAll("Server shutting down!");
TShock.Utils.ForceKickAll("Server shutting down!");
WorldGen.saveWorld();
Netplay.disconnect = true;
}
private static void OffNoSave(CommandArgs args)
{
Tools.ForceKickAll("Server shutting down!");
TShock.Utils.ForceKickAll("Server shutting down!");
Netplay.disconnect = true;
}
@ -906,7 +906,7 @@ namespace TShockAPI
Process.Start(new ProcessStartInfo("UpdateTShock.exe"));
Tools.ForceKickAll("Server shutting down for update!");
TShock.Utils.ForceKickAll("Server shutting down for update!");
WorldGen.saveWorld();
Netplay.disconnect = true;
}
@ -940,19 +940,19 @@ namespace TShockAPI
private static void Bloodmoon(CommandArgs args)
{
TSPlayer.Server.SetBloodMoon(true);
Tools.Broadcast(string.Format("{0} turned on blood moon.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} turned on blood moon.", args.Player.Name));
}
private static void Invade(CommandArgs args)
{
if (Main.invasionSize <= 0)
{
Tools.Broadcast(string.Format("{0} has started an invasion.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} has started an invasion.", args.Player.Name));
TShock.StartInvasion();
}
else
{
Tools.Broadcast(string.Format("{0} has ended an invasion.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} has ended an invasion.", args.Player.Name));
Main.invasionSize = 0;
}
}
@ -971,9 +971,9 @@ namespace TShockAPI
return;
}
amount = Math.Min(amount, Main.maxNPCs);
NPC eater = Tools.GetNPCById(13);
NPC eater = TShock.Utils.GetNPCById(13);
TSPlayer.Server.SpawnNPC(eater.type, eater.name, amount, args.Player.TileX, args.Player.TileY);
Tools.Broadcast(string.Format("{0} has spawned eater of worlds {1} times!", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} has spawned eater of worlds {1} times!", args.Player.Name, amount));
}
private static void Eye(CommandArgs args)
@ -990,10 +990,10 @@ namespace TShockAPI
return;
}
amount = Math.Min(amount, Main.maxNPCs);
NPC eye = Tools.GetNPCById(4);
NPC eye = TShock.Utils.GetNPCById(4);
TSPlayer.Server.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(eye.type, eye.name, amount, args.Player.TileX, args.Player.TileY);
Tools.Broadcast(string.Format("{0} has spawned eye {1} times!", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} has spawned eye {1} times!", args.Player.Name, amount));
}
private static void King(CommandArgs args)
@ -1010,9 +1010,9 @@ namespace TShockAPI
return;
}
amount = Math.Min(amount, Main.maxNPCs);
NPC king = Tools.GetNPCById(50);
NPC king = TShock.Utils.GetNPCById(50);
TSPlayer.Server.SpawnNPC(king.type, king.name, amount, args.Player.TileX, args.Player.TileY);
Tools.Broadcast(string.Format("{0} has spawned king slime {1} times!", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} has spawned king slime {1} times!", args.Player.Name, amount));
}
private static void Skeletron(CommandArgs args)
@ -1029,10 +1029,10 @@ namespace TShockAPI
return;
}
amount = Math.Min(amount, Main.maxNPCs);
NPC skeletron = Tools.GetNPCById(35);
NPC skeletron = TShock.Utils.GetNPCById(35);
TSPlayer.Server.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(skeletron.type, skeletron.name, amount, args.Player.TileX, args.Player.TileY);
Tools.Broadcast(string.Format("{0} has spawned skeletron {1} times!", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} has spawned skeletron {1} times!", args.Player.Name, amount));
}
private static void Hardcore(CommandArgs args)
@ -1049,16 +1049,16 @@ namespace TShockAPI
return;
}
amount = Math.Min(amount, Main.maxNPCs / 4);
NPC eater = Tools.GetNPCById(13);
NPC eye = Tools.GetNPCById(4);
NPC king = Tools.GetNPCById(50);
NPC skeletron = Tools.GetNPCById(35);
NPC eater = TShock.Utils.GetNPCById(13);
NPC eye = TShock.Utils.GetNPCById(4);
NPC king = TShock.Utils.GetNPCById(50);
NPC skeletron = TShock.Utils.GetNPCById(35);
TSPlayer.Server.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(eater.type, eater.name, amount, args.Player.TileX, args.Player.TileY);
TSPlayer.Server.SpawnNPC(eye.type, eye.name, amount, args.Player.TileX, args.Player.TileY);
TSPlayer.Server.SpawnNPC(king.type, king.name, amount, args.Player.TileX, args.Player.TileY);
TSPlayer.Server.SpawnNPC(skeletron.type, skeletron.name, amount, args.Player.TileX, args.Player.TileY);
Tools.Broadcast(string.Format("{0} has spawned all bosses {1} times!", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} has spawned all bosses {1} times!", args.Player.Name, amount));
}
private static void SpawnMob(CommandArgs args)
@ -1082,7 +1082,7 @@ namespace TShockAPI
amount = Math.Min(amount, Main.maxNPCs);
var npcs = Tools.GetNPCByIdOrName(args.Parameters[0]);
var npcs = TShock.Utils.GetNPCByIdOrName(args.Parameters[0]);
if (npcs.Count == 0)
{
args.Player.SendMessage("Invalid mob type!", Color.Red);
@ -1097,7 +1097,7 @@ namespace TShockAPI
if (npc.type >= 1 && npc.type < Main.maxNPCTypes)
{
TSPlayer.Server.SpawnNPC(npc.type, npc.name, amount, args.Player.TileX, args.Player.TileY, 50, 20);
Tools.Broadcast(string.Format("{0} was spawned {1} time(s).", npc.name, amount));
TShock.Utils.Broadcast(string.Format("{0} was spawned {1} time(s).", npc.name, amount));
}
else
args.Player.SendMessage("Invalid mob type!", Color.Red);
@ -1147,7 +1147,7 @@ namespace TShockAPI
}
string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
args.Player.SendMessage("Invalid player!", Color.Red);
else if (players.Count > 1)
@ -1190,7 +1190,7 @@ namespace TShockAPI
return;
}
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -1219,7 +1219,7 @@ namespace TShockAPI
return;
}
var foundplr = Tools.FindPlayer(args.Parameters[0]);
var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]);
if (foundplr.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -1458,7 +1458,7 @@ namespace TShockAPI
{
if (args.Parameters.Count > 0)
{
var items = Tools.GetItemByIdOrName(args.Parameters[0]);
var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
if (items.Count == 0)
{
args.Player.SendMessage("Invalid item type!", Color.Red);
@ -1491,7 +1491,7 @@ namespace TShockAPI
{
if (args.Parameters.Count > 0)
{
var items = Tools.GetItemByIdOrName(args.Parameters[0]);
var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
if (items.Count == 0)
{
args.Player.SendMessage("Invalid item type!", Color.Red);
@ -1529,8 +1529,8 @@ namespace TShockAPI
Main.spawnTileX = args.Player.TileX + 1;
Main.spawnTileY = args.Player.TileY + 3;
Tools.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(Tools.SaveWorld);
TShock.Utils.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start();
}
@ -1577,8 +1577,8 @@ namespace TShockAPI
private static void Save(CommandArgs args)
{
Tools.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(Tools.SaveWorld);
TShock.Utils.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start();
}
@ -1591,7 +1591,7 @@ namespace TShockAPI
return;
}
Liquid.StartPanic();
Tools.Broadcast("Settling all liquids...");
TShock.Utils.Broadcast("Settling all liquids...");
}
@ -1607,7 +1607,7 @@ namespace TShockAPI
int.TryParse(args.Parameters[0], out amount);
NPC.defaultMaxSpawns = amount;
TShock.Config.DefaultMaximumSpawns = amount;
Tools.Broadcast(string.Format("{0} changed the maximum spawns to: {1}", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} changed the maximum spawns to: {1}", args.Player.Name, amount));
}
private static void SpawnRate(CommandArgs args)
@ -1622,7 +1622,7 @@ namespace TShockAPI
int.TryParse(args.Parameters[0], out amount);
NPC.defaultSpawnRate = amount;
TShock.Config.DefaultSpawnRate = amount;
Tools.Broadcast(string.Format("{0} changed the spawn rate to: {1}", args.Player.Name, amount));
TShock.Utils.Broadcast(string.Format("{0} changed the spawn rate to: {1}", args.Player.Name, amount));
}
#endregion Server Config Commands
@ -1641,23 +1641,23 @@ namespace TShockAPI
{
case "day":
TSPlayer.Server.SetTime(true, 150.0);
Tools.Broadcast(string.Format("{0} set time to day.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} set time to day.", args.Player.Name));
break;
case "night":
TSPlayer.Server.SetTime(false, 0.0);
Tools.Broadcast(string.Format("{0} set time to night.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} set time to night.", args.Player.Name));
break;
case "dusk":
TSPlayer.Server.SetTime(false, 0.0);
Tools.Broadcast(string.Format("{0} set time to dusk.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} set time to dusk.", args.Player.Name));
break;
case "noon":
TSPlayer.Server.SetTime(true, 27000.0);
Tools.Broadcast(string.Format("{0} set time to noon.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} set time to noon.", args.Player.Name));
break;
case "midnight":
TSPlayer.Server.SetTime(false, 16200.0);
Tools.Broadcast(string.Format("{0} set time to midnight.", args.Player.Name));
TShock.Utils.Broadcast(string.Format("{0} set time to midnight.", args.Player.Name));
break;
default:
args.Player.SendMessage("Invalid syntax! Proper syntax: /time <day/night/dusk/noon/midnight>", Color.Red);
@ -1679,7 +1679,7 @@ namespace TShockAPI
}
string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -1698,10 +1698,10 @@ namespace TShockAPI
}
if (!args.Player.Group.HasPermission(Permissions.kill))
{
damage = Tools.Clamp(damage, 15, 0);
damage = TShock.Utils.Clamp(damage, 15, 0);
}
plr.DamagePlayer(damage);
Tools.Broadcast(string.Format("{0} slapped {1} for {2} damage.",
TShock.Utils.Broadcast(string.Format("{0} slapped {1} for {2} damage.",
args.Player.Name, plr.Name, damage));
Log.Info(args.Player.Name + " slapped " + plr.Name + " with " + damage + " damage.");
}
@ -1714,13 +1714,13 @@ namespace TShockAPI
private static void ToggleAntiBuild(CommandArgs args)
{
TShock.Config.DisableBuild = (TShock.Config.DisableBuild == false);
Tools.Broadcast(string.Format("Anti-build is now {0}.", (TShock.Config.DisableBuild ? "on" : "off")));
TShock.Utils.Broadcast(string.Format("Anti-build is now {0}.", (TShock.Config.DisableBuild ? "on" : "off")));
}
private static void ProtectSpawn(CommandArgs args)
{
TShock.Config.SpawnProtection = (TShock.Config.SpawnProtection == false);
Tools.Broadcast(string.Format("Spawn is now {0}.", (TShock.Config.SpawnProtection ? "protected" : "open")));
TShock.Utils.Broadcast(string.Format("Spawn is now {0}.", (TShock.Config.SpawnProtection ? "protected" : "open")));
}
private static void DebugRegions(CommandArgs args)
@ -2122,7 +2122,7 @@ namespace TShockAPI
private static void Playing(CommandArgs args)
{
args.Player.SendMessage(string.Format("Current players: {0}.", Tools.GetPlayers()), 255, 240, 20);
args.Player.SendMessage(string.Format("Current players: {0}.", TShock.Utils.GetPlayers()), 255, 240, 20);
}
private static void AuthToken(CommandArgs args)
@ -2139,7 +2139,7 @@ namespace TShockAPI
try
{
TShock.Users.AddUser(new User(args.Player.IP, "", "", "superadmin"));
args.Player.Group = Tools.GetGroup("superadmin");
args.Player.Group = TShock.Utils.GetGroup("superadmin");
args.Player.SendMessage("This IP address is now superadmin. Please perform the following command:");
args.Player.SendMessage("/user add <username>:<password> superadmin");
args.Player.SendMessage("Creates: <username> with the password <password> as part of the superadmin group.");
@ -2202,7 +2202,7 @@ namespace TShockAPI
args.Player.SendMessage("Invalid syntax! Proper syntax: /me <text>", Color.Red);
return;
}
Tools.Broadcast(string.Format("*{0} {1}", args.Player.Name, String.Join(" ", args.Parameters)), 205, 133, 63);
TShock.Utils.Broadcast(string.Format("*{0} {1}", args.Player.Name, String.Join(" ", args.Parameters)), 205, 133, 63);
}
private static void PartyChat(CommandArgs args)
@ -2230,12 +2230,12 @@ namespace TShockAPI
private static void Motd(CommandArgs args)
{
Tools.ShowFileToUser(args.Player, "motd.txt");
TShock.Utils.ShowFileToUser(args.Player, "motd.txt");
}
private static void Rules(CommandArgs args)
{
Tools.ShowFileToUser(args.Player, "rules.txt");
TShock.Utils.ShowFileToUser(args.Player, "rules.txt");
}
private static void Whisper(CommandArgs args)
@ -2246,7 +2246,7 @@ namespace TShockAPI
return;
}
var players = Tools.FindPlayer(args.Parameters[0]);
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -2288,7 +2288,7 @@ namespace TShockAPI
int annoy = 5;
int.TryParse(args.Parameters[1], out annoy);
var players = Tools.FindPlayer(args.Parameters[0]);
var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count == 0)
args.Player.SendMessage("Invalid player!", Color.Red);
else if (players.Count > 1)
@ -2314,7 +2314,7 @@ namespace TShockAPI
}
string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -2353,7 +2353,7 @@ namespace TShockAPI
killcount++;
}
}
Tools.Broadcast(string.Format("Killed {0} NPCs.", killcount));
TShock.Utils.Broadcast(string.Format("Killed {0} NPCs.", killcount));
}
private static void Item(CommandArgs args)
@ -2370,7 +2370,7 @@ namespace TShockAPI
}
int itemAmount = 0;
int.TryParse(args.Parameters[args.Parameters.Count - 1], out itemAmount);
var items = Tools.GetItemByIdOrName(args.Parameters[0]);
var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
if (items.Count == 0)
{
args.Player.SendMessage("Invalid item type!", Color.Red);
@ -2421,7 +2421,7 @@ namespace TShockAPI
return;
}
int itemAmount = 0;
var items = Tools.GetItemByIdOrName(args.Parameters[0]);
var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
args.Parameters.RemoveAt(0);
string plStr = args.Parameters[0];
args.Parameters.RemoveAt(0);
@ -2442,7 +2442,7 @@ namespace TShockAPI
var item = items[0];
if (item.type >= 1 && item.type < Main.maxItemTypes)
{
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -2525,7 +2525,7 @@ namespace TShockAPI
if (args.Parameters.Count > 0)
{
string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr);
var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -2551,8 +2551,8 @@ namespace TShockAPI
playerToHeal = args.Player;
}
Item heart = Tools.GetItemById(58);
Item star = Tools.GetItemById(184);
Item heart = TShock.Utils.GetItemById(58);
Item star = TShock.Utils.GetItemById(184);
for (int i = 0; i < 20; i++)
playerToHeal.GiveItem(heart.type, heart.name, heart.width, heart.height, heart.maxStack);
for (int i = 0; i < 10; i++)
@ -2579,7 +2579,7 @@ namespace TShockAPI
int time = 60;
if (!int.TryParse(args.Parameters[0], out id))
{
var found = Tools.GetBuffByName(args.Parameters[0]);
var found = TShock.Utils.GetBuffByName(args.Parameters[0]);
if (found.Count == 0)
{
args.Player.SendMessage("Invalid buff name!", Color.Red);
@ -2600,7 +2600,7 @@ namespace TShockAPI
time = 60;
args.Player.SetBuff(id, time * 60);
args.Player.SendMessage(string.Format("You have buffed yourself with {0}({1}) for {2} seconds!",
Tools.GetBuffName(id), Tools.GetBuffDescription(id), (time)), Color.Green);
TShock.Utils.GetBuffName(id), TShock.Utils.GetBuffDescription(id), (time)), Color.Green);
}
else
args.Player.SendMessage("Invalid buff ID!", Color.Red);
@ -2615,7 +2615,7 @@ namespace TShockAPI
}
int id = 0;
int time = 60;
var foundplr = Tools.FindPlayer(args.Parameters[0]);
var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]);
if (foundplr.Count == 0)
{
args.Player.SendMessage("Invalid player!", Color.Red);
@ -2630,7 +2630,7 @@ namespace TShockAPI
{
if (!int.TryParse(args.Parameters[1], out id))
{
var found = Tools.GetBuffByName(args.Parameters[1]);
var found = TShock.Utils.GetBuffByName(args.Parameters[1]);
if (found.Count == 0)
{
args.Player.SendMessage("Invalid buff name!", Color.Red);
@ -2651,9 +2651,9 @@ namespace TShockAPI
time = 60;
foundplr[0].SetBuff(id, time * 60);
args.Player.SendMessage(string.Format("You have buffed {0} with {1}({2}) for {3} seconds!",
foundplr[0].Name, Tools.GetBuffName(id), Tools.GetBuffDescription(id), (time)), Color.Green);
foundplr[0].Name, TShock.Utils.GetBuffName(id), TShock.Utils.GetBuffDescription(id), (time)), Color.Green);
foundplr[0].SendMessage(string.Format("{0} has buffed you with {1}({2}) for {3} seconds!",
args.Player.Name, Tools.GetBuffName(id), Tools.GetBuffDescription(id), (time)), Color.Green);
args.Player.Name, TShock.Utils.GetBuffName(id), TShock.Utils.GetBuffDescription(id), (time)), Color.Green);
}
else
args.Player.SendMessage("Invalid buff ID!", Color.Red);

View file

@ -138,7 +138,7 @@ namespace TShockAPI.DB
if (database.Query("DELETE FROM GroupList WHERE GroupName=@0", name) == 1)
message = "Group " + name + " has been deleted successfully.";
groups.Remove(Tools.GetGroup(name));
groups.Remove(TShock.Utils.GetGroup(name));
return message;
}
@ -149,7 +149,7 @@ namespace TShockAPI.DB
if (!GroupExists(name))
return "Error: Group doesn't exists.";
var group = Tools.GetGroup(name);
var group = TShock.Utils.GetGroup(name);
//Add existing permissions (without duplicating)
permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s)));
@ -167,7 +167,7 @@ namespace TShockAPI.DB
if (!GroupExists(name))
return "Error: Group doesn't exists.";
var group = Tools.GetGroup(name);
var group = TShock.Utils.GetGroup(name);
//Only get permissions that exist in the group.
var newperms = group.permissions.Except( permissions );

View file

@ -39,7 +39,7 @@ namespace TShockAPI.DB
int id = 0;
int.TryParse(line, out id);
database.Query(query, Tools.GetItemById(id).name);
database.Query(query, TShock.Utils.GetItemById(id).name);
}
}
}
@ -70,7 +70,7 @@ namespace TShockAPI.DB
{
try
{
database.Query("INSERT INTO ItemBans (ItemName) VALUES (@0);", Tools.GetItemByName(itemname)[0].name);
database.Query("INSERT INTO ItemBans (ItemName) VALUES (@0);", TShock.Utils.GetItemByName(itemname)[0].name);
if (!ItemIsBanned(itemname))
ItemBans.Add(itemname);
}
@ -86,7 +86,7 @@ namespace TShockAPI.DB
return;
try
{
database.Query("Delete FROM 'ItemBans' WHERE ItemName=@0;", Tools.GetItemByName(itemname)[0].name);
database.Query("Delete FROM 'ItemBans' WHERE ItemName=@0;", TShock.Utils.GetItemByName(itemname)[0].name);
ItemBans.Remove(itemname);
}
catch (Exception ex)

View file

@ -102,7 +102,7 @@ namespace TShockAPI.DB
if (!TShock.Groups.GroupExists(user.Group))
throw new GroupNotExistsException(user.Group);
if (database.Query("INSERT INTO Users (Username, Password, UserGroup, IP) VALUES (@0, @1, @2, @3);", user.Name, Tools.HashPassword(user.Password), user.Group, user.Address) < 1)
if (database.Query("INSERT INTO Users (Username, Password, UserGroup, IP) VALUES (@0, @1, @2, @3);", user.Name, TShock.Utils.HashPassword(user.Password), user.Group, user.Address) < 1)
throw new UserExistsException(user.Name);
}
catch (Exception ex)
@ -148,7 +148,7 @@ namespace TShockAPI.DB
{
try
{
if (database.Query("UPDATE Users SET Password = @0 WHERE Username = @1;", Tools.HashPassword(password), user.Name) == 0)
if (database.Query("UPDATE Users SET Password = @0 WHERE Username = @1;", TShock.Utils.HashPassword(password), user.Name) == 0)
throw new UserNotExistException(user.Name);
}
catch (Exception ex)
@ -210,7 +210,7 @@ namespace TShockAPI.DB
if (reader.Read())
{
string group = reader.Get<string>("UserGroup");
return Tools.GetGroup(group);
return TShock.Utils.GetGroup(group);
}
}
}
@ -218,7 +218,7 @@ namespace TShockAPI.DB
{
Log.ConsoleError("GetGroupForIP SQL returned an error: " + ex);
}
return Tools.GetGroup("default");
return TShock.Utils.GetGroup("default");
}
public Group GetGroupForIPExpensive(string ip)
@ -229,9 +229,9 @@ namespace TShockAPI.DB
{
while (reader.Read())
{
if (Tools.GetIPv4Address(reader.Get<string>("IP")) == ip)
if (TShock.Utils.GetIPv4Address(reader.Get<string>("IP")) == ip)
{
return Tools.GetGroup(reader.Get<string>("UserGroup"));
return TShock.Utils.GetGroup(reader.Get<string>("UserGroup"));
}
}
}
@ -240,7 +240,7 @@ namespace TShockAPI.DB
{
Log.ConsoleError("GetGroupForIP SQL returned an error: " + ex);
}
return Tools.GetGroup("default");
return TShock.Utils.GetGroup("default");
}

View file

@ -91,7 +91,7 @@ namespace TShockAPI
using (var tr = new StreamReader(WhitelistPath))
{
string whitelist = tr.ReadToEnd();
ip = Tools.GetRealIP(ip);
ip = TShock.Utils.GetRealIP(ip);
bool contains = whitelist.Contains(ip);
if (!contains)
{
@ -99,7 +99,7 @@ namespace TShockAPI
{
if (string.IsNullOrWhiteSpace(line))
continue;
contains = Tools.GetIPv4Address(line).Equals(ip);
contains = TShock.Utils.GetIPv4Address(line).Equals(ip);
if (contains)
return true;
}

View file

@ -155,8 +155,8 @@ namespace TShockAPI
args.Player.Disconnect("Using banned item: " + itemname + ", remove it and rejoin");
if (itemname == "KANNIBALE BLADE"
|| itemname == "Super Gel")
return Tools.HandleCheater(args.Player, string.Format(TShock.Config.GriefClientReason, "KANNIBALE"));
if (Tools.GetItemByName(itemname).Count == 0 && !args.Player.Group.HasPermission(Permissions.ignorecheatdetection)
return TShock.Utils.HandleCheater(args.Player, string.Format(TShock.Config.GriefClientReason, "KANNIBALE"));
if (TShock.Utils.GetItemByName(itemname).Count == 0 && !args.Player.Group.HasPermission(Permissions.ignorecheatdetection)
&& TShock.Config.KickCustomItems)
args.Player.Disconnect("Using custom item: " + itemname + ", remove it and region");
}
@ -175,42 +175,42 @@ namespace TShockAPI
if (hair >= Main.maxHair)
{
Tools.ForceKick(args.Player, "Hair crash exploit.");
TShock.Utils.ForceKick(args.Player, "Hair crash exploit.");
return true;
}
if (!Tools.ValidString(name))
if (!TShock.Utils.ValidString(name))
{
Tools.ForceKick(args.Player, "Unprintable character in name");
TShock.Utils.ForceKick(args.Player, "Unprintable character in name");
return true;
}
if (name.Length > 32)
{
Tools.ForceKick(args.Player, "Name exceeded 32 characters.");
TShock.Utils.ForceKick(args.Player, "Name exceeded 32 characters.");
return true;
}
if (name.Trim().Length == 0)
{
Tools.ForceKick(args.Player, "Empty Name.");
TShock.Utils.ForceKick(args.Player, "Empty Name.");
return true;
}
var ban = TShock.Bans.GetBanByName(name);
if (ban != null)
{
Tools.ForceKick(args.Player, string.Format("You are banned: {0}", ban.Reason));
TShock.Utils.ForceKick(args.Player, string.Format("You are banned: {0}", ban.Reason));
return true;
}
if (args.Player.ReceivedInfo)
{
return Tools.HandleGriefer(args.Player, "Sent client info more than once");
return TShock.Utils.HandleGriefer(args.Player, "Sent client info more than once");
}
if (TShock.Config.MediumcoreOnly && difficulty < 1)
{
Tools.ForceKick(args.Player, "Server is set to mediumcore and above characters only!");
TShock.Utils.ForceKick(args.Player, "Server is set to mediumcore and above characters only!");
return true;
}
if (TShock.Config.HardcoreOnly && difficulty < 2)
{
Tools.ForceKick(args.Player, "Server is set to hardcore characters only!");
TShock.Utils.ForceKick(args.Player, "Server is set to hardcore characters only!");
return true;
}
args.Player.Difficulty = difficulty;
@ -330,7 +330,7 @@ namespace TShockAPI
if (tiletype >= ((type == 1) ? Main.maxTileSets : Main.maxWallTypes))
{
Tools.HandleGriefer(args.Player, string.Format(TShock.Config.TileAbuseReason, "Invalid tile type"));
TShock.Utils.HandleGriefer(args.Player, string.Format(TShock.Config.TileAbuseReason, "Invalid tile type"));
return true;
}
if (TShock.Config.RangeChecks && ((Math.Abs(plyX - tileX) > 32) || (Math.Abs(plyY - tileY) > 32)))
@ -339,17 +339,17 @@ namespace TShockAPI
{
Log.Debug(string.Format("TilePlaced(PlyXY:{0}_{1}, TileXY:{2}_{3}, Result:{4}_{5}, Type:{6})",
plyX, plyY, tileX, tileY, Math.Abs(plyX - tileX), Math.Abs(plyY - tileY), tiletype));
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
}
}
if (tiletype == 48 && !args.Player.Group.HasPermission(Permissions.canspike))
{
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);
TShock.Utils.SendLogs(string.Format("{0} tried to place spikes", args.Player.Name), Color.Red);
args.Player.SendTileSquare(x, y);
return true;
}
if (type == 1 && tiletype == 21 && Tools.MaxChests())
if (type == 1 && tiletype == 21 && TShock.Utils.MaxChests())
{
args.Player.SendMessage("Reached world's max chest limit, unable to place more!", Color.Red);
Log.Info("Reached world's chest limit, unable to place more.");
@ -434,12 +434,12 @@ namespace TShockAPI
private static bool HandleSendSection(GetDataHandlerArgs args)
{
return Tools.HandleGriefer(args.Player, TShock.Config.SendSectionAbuseReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.SendSectionAbuseReason);
}
private static bool HandleNpcUpdate(GetDataHandlerArgs args)
{
return Tools.HandleGriefer(args.Player, TShock.Config.NPCSpawnAbuseReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.NPCSpawnAbuseReason);
}
private static bool HandlePlayerUpdate(GetDataHandlerArgs args)
@ -457,12 +457,12 @@ namespace TShockAPI
if (plr != args.Player.Index)
{
return Tools.HandleGriefer(args.Player, TShock.Config.UpdatePlayerAbuseReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.UpdatePlayerAbuseReason);
}
if (item < 0 || item >= args.TPlayer.inventory.Length)
{
Tools.HandleGriefer(args.Player, TShock.Config.UpdatePlayerAbuseReason);
TShock.Utils.HandleGriefer(args.Player, TShock.Config.UpdatePlayerAbuseReason);
return true;
}
@ -483,7 +483,7 @@ namespace TShockAPI
if (ident > Main.maxProjectiles || ident < 0)
{
Tools.HandleGriefer(args.Player, TShock.Config.ExplosiveAbuseReason);
TShock.Utils.HandleGriefer(args.Player, TShock.Config.ExplosiveAbuseReason);
return true;
}
@ -491,7 +491,7 @@ namespace TShockAPI
{
if (velx == 0f && vely == 0f && dmg == 99)
{
Tools.HandleGriefer(args.Player, TShock.Config.ProjectileAbuseReason);
TShock.Utils.HandleGriefer(args.Player, TShock.Config.ProjectileAbuseReason);
return true;
}
else if (velx == 0f || vely == 0f)
@ -511,7 +511,7 @@ namespace TShockAPI
//return true;
}
else
return Tools.HandleExplosivesUser(args.Player, TShock.Config.ExplosiveAbuseReason);
return TShock.Utils.HandleExplosivesUser(args.Player, TShock.Config.ExplosiveAbuseReason);
}
return false;
}
@ -521,7 +521,7 @@ namespace TShockAPI
byte id = args.Data.ReadInt8();
if (id != args.Player.Index)
{
return Tools.HandleGriefer(args.Player, TShock.Config.KillMeAbuseReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.KillMeAbuseReason);
}
args.Player.LastDeath = DateTime.Now;
if (args.Player.Difficulty != 2)
@ -574,14 +574,14 @@ namespace TShockAPI
if (lava && !args.Player.Group.HasPermission(Permissions.canlava))
{
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);
TShock.Utils.SendLogs(string.Format("{0} tried using lava", args.Player.Name), Color.Red);
args.Player.SendTileSquare(x, y);
return true;
}
if (!lava && !args.Player.Group.HasPermission(Permissions.canwater))
{
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);
TShock.Utils.SendLogs(string.Format("{0} tried using water", args.Player.Name), Color.Red);
args.Player.SendTileSquare(x, y);
return true;
}
@ -591,13 +591,13 @@ namespace TShockAPI
Log.Debug(string.Format("{0}(PlyXY:{1}_{2}, TileXY:{3}_{4}, Result:{5}_{6}, Amount:{7})",
lava ? "Lava" : "Water", plyX, plyY, tileX, tileY,
Math.Abs(plyX - tileX), Math.Abs(plyY - tileY), liquid));
return Tools.HandleGriefer(args.Player, TShock.Config.IllogicalLiquidUseReason); ;
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.IllogicalLiquidUseReason); ;
}
if (TShock.Config.RangeChecks && ((Math.Abs(plyX - tileX) > 32) || (Math.Abs(plyY - tileY) > 32)))
{
Log.Debug(string.Format("Liquid(PlyXY:{0}_{1}, TileXY:{2}_{3}, Result:{4}_{5}, Amount:{6})",
plyX, plyY, tileX, tileY, Math.Abs(plyX - tileX), Math.Abs(plyY - tileY), liquid));
return Tools.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.LiquidAbuseReason);
}
if (TShock.Config.SpawnProtection)
@ -623,11 +623,11 @@ namespace TShockAPI
if (tilex < 0 || tilex >= Main.maxTilesX || tiley < 0 || tiley >= Main.maxTilesY)
return false;
if (Main.tile[tilex, tiley].type != 0x15 && (!Tools.MaxChests() && Main.tile[tilex, tiley].type != 0)) //Chest
if (Main.tile[tilex, tiley].type != 0x15 && (!TShock.Utils.MaxChests() && Main.tile[tilex, tiley].type != 0)) //Chest
{
Log.Debug(string.Format("TileKill(TileXY:{0}_{1}, Type:{2})",
tilex, tiley, Main.tile[tilex, tiley].type));
Tools.ForceKick(args.Player, string.Format(TShock.Config.TileKillAbuseReason, Main.tile[tilex, tiley].type));
TShock.Utils.ForceKick(args.Player, string.Format(TShock.Config.TileKillAbuseReason, Main.tile[tilex, tiley].type));
return true;
}
if (!args.Player.Group.HasPermission(Permissions.canbuild))
@ -681,12 +681,12 @@ namespace TShockAPI
{
if (TShock.Config.BanOnMediumcoreDeath)
{
if (!Tools.Ban(args.Player, TShock.Config.MediumcoreBanReason))
Tools.ForceKick(args.Player, "Death results in a ban, but can't ban you");
if (!TShock.Utils.Ban(args.Player, TShock.Config.MediumcoreBanReason))
TShock.Utils.ForceKick(args.Player, "Death results in a ban, but can't ban you");
}
else
{
Tools.ForceKick(args.Player, TShock.Config.MediumcoreKickReason);
TShock.Utils.ForceKick(args.Player, TShock.Config.MediumcoreKickReason);
}
return true;
}
@ -704,7 +704,7 @@ namespace TShockAPI
var y = args.Data.ReadInt32();
if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32)))
{
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
}
return false;
}
@ -716,7 +716,7 @@ namespace TShockAPI
var y = args.Data.ReadInt32();
if (TShock.Config.RangeChecks && ((Math.Abs(args.Player.TileX - x) > 32) || (Math.Abs(args.Player.TileY - y) > 32)))
{
return Tools.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
return TShock.Utils.HandleGriefer(args.Player, TShock.Config.RangeCheckBanReason);
}
return false;
}
@ -728,7 +728,7 @@ namespace TShockAPI
if (args.Player.RequestedSection)
{
Tools.ForceKick(args.Player, "Requested sections more than once.");
TShock.Utils.ForceKick(args.Player, "Requested sections more than once.");
return true;
}
args.Player.RequestedSection = true;

View file

@ -36,5 +36,5 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("3.3.4.1202")]
[assembly: AssemblyFileVersion("3.3.4.1202")]
[assembly: AssemblyVersion("3.3.4.1201")]
[assembly: AssemblyFileVersion("3.3.4.1201")]

View file

@ -204,7 +204,7 @@ namespace TShockAPI
response = "infoResponse\n";
var infostring = string.Format(@"\_TShock_ver\{6}\mapname\{1}\sv_maxclients\{2}\clients\{3}\sv_privateClients\{4}\hconly\{5}\gamename\TERRARIA\protocol\100\sv_hostname\{0}\g_needPass\{7}",
TShock.Config.ServerName, Main.worldName, Main.maxNetPlayers,
Tools.ActivePlayers(), Main.maxNetPlayers - TShock.Config.MaxSlots,
TShock.Utils.ActivePlayers(), Main.maxNetPlayers - TShock.Config.MaxSlots,
TShock.Config.HardcoreOnly ? 1 : 0, TShock.VersionNum,
Netplay.password != "" ? 1 : 0);
if (challenge != "")
@ -223,7 +223,7 @@ namespace TShockAPI
response = "statusResponse\n";
var statusstring = string.Format(@"\_TShock_ver\{6}\mapname\{1}\sv_maxclients\{2}\clients\{3}\sv_privateClients\{4}\hconly\{5}\gamename\TERRARIA\protocol\100\sv_hostname\{0}\g_needPass\{7}",
TShock.Config.ServerName, Main.worldName, Main.maxNetPlayers,
Tools.ActivePlayers(), Main.maxNetPlayers - TShock.Config.MaxSlots,
TShock.Utils.ActivePlayers(), Main.maxNetPlayers - TShock.Config.MaxSlots,
TShock.Config.HardcoreOnly ? 1 : 0, TShock.VersionNum,
Netplay.password != "" ? 1 : 0) + "\n";
if (challenge != "")
@ -251,7 +251,7 @@ namespace TShockAPI
WorldGen.genRand = new Random();
if (text.StartsWith("exit"))
{
Tools.ForceKickAll("Server shutting down!");
TShock.Utils.ForceKickAll("Server shutting down!");
WorldGen.saveWorld(false);
Netplay.disconnect = true;
return "Server shutting down.";

View file

@ -329,7 +329,7 @@ namespace TShockAPI
{
var returnBlock = new Dictionary<string, object>();
var playerParam = parameters["player"];
var found = Tools.FindPlayer(playerParam.ToString());
var found = TShock.Utils.FindPlayer(playerParam.ToString());
if (found.Count == 0)
{
returnBlock.Add("status", "400");
@ -359,7 +359,7 @@ namespace TShockAPI
{
var returnBlock = new Dictionary<string, object>();
var playerParam = parameters["player"];
var found = Tools.FindPlayer(playerParam.ToString());
var found = TShock.Utils.FindPlayer(playerParam.ToString());
var reason = verbs["reason"];
if (found.Count == 0)
{
@ -374,7 +374,7 @@ namespace TShockAPI
else if (found.Count == 1)
{
var player = found[0];
Tools.ForceKick(player, reason == null ? "Kicked via web" : reason.ToString());
TShock.Utils.ForceKick(player, reason == null ? "Kicked via web" : reason.ToString());
returnBlock.Add("status", "200");
returnBlock.Add("response", "Player " + player.Name + " was kicked");
}
@ -384,7 +384,7 @@ namespace TShockAPI
{
var returnBlock = new Dictionary<string, object>();
var playerParam = parameters["player"];
var found = Tools.FindPlayer(playerParam.ToString());
var found = TShock.Utils.FindPlayer(playerParam.ToString());
var reason = verbs["reason"];
if (found.Count == 0)
{
@ -400,7 +400,7 @@ namespace TShockAPI
{
var player = found[0];
TShock.Bans.AddBan(player.IP, player.Name, reason == null ? "Banned via web" : reason.ToString());
Tools.ForceKick(player, reason == null ? "Banned via web" : reason.ToString());
TShock.Utils.ForceKick(player, reason == null ? "Banned via web" : reason.ToString());
returnBlock.Add("status", "200");
returnBlock.Add("response", "Player " + player.Name + " was banned");
}

View file

@ -76,7 +76,7 @@ namespace TShockAPI
{
get
{
return RealPlayer ? Tools.GetRealIP(Netplay.serverSock[Index].tcpClient.Client.RemoteEndPoint.ToString()) : "";
return RealPlayer ? TShock.Utils.GetRealIP(Netplay.serverSock[Index].tcpClient.Client.RemoteEndPoint.ToString()) : "";
}
}
/// <summary>
@ -402,7 +402,7 @@ namespace TShockAPI
{
int spawnTileX;
int spawnTileY;
Tools.GetRandomClearTileWithInRange(startTileX, startTileY, tileXRange, tileYRange, out spawnTileX, out spawnTileY);
TShock.Utils.GetRandomClearTileWithInRange(startTileX, startTileY, tileXRange, tileYRange, out spawnTileX, out spawnTileY);
int npcid = NPC.NewNPC(spawnTileX * 16, spawnTileY * 16, type, 0);
// This is for special slimes
Main.npc[npcid].SetDefaults(name);

View file

@ -67,6 +67,7 @@ namespace TShockAPI
public static MaxMind.GeoIPCountry Geo;
public static SecureRest RestApi;
public static RestManager RestManager;
public static Utils Utils = new Utils();
/// <summary>
/// Called after TShock is initialized. Useful for plugins that needs hooks before tshock but also depend on tshock being loaded.
@ -224,12 +225,12 @@ namespace TShockAPI
return new RestObject("401") { Error = "Invalid username/password combination provided. Please re-submit your query with a correct pair." };
}
if (Tools.HashPassword(password).ToUpper() != userAccount.Password.ToUpper())
if (TShock.Utils.HashPassword(password).ToUpper() != userAccount.Password.ToUpper())
{
return new RestObject("401") { Error = "Invalid username/password combination provided. Please re-submit your query with a correct pair." };
}
if (!Tools.GetGroup(userAccount.Group).HasPermission("api") && userAccount.Group != "superadmin")
if (!TShock.Utils.GetGroup(userAccount.Group).HasPermission("api") && userAccount.Group != "superadmin")
{
return new RestObject("403") { Error = "Although your account was successfully found and identified, your account lacks the permission required to use the API. (api)" };
}
@ -411,7 +412,7 @@ namespace TShockAPI
{
if (player.TileThreshold >= Config.TileThreshold)
{
if (Tools.HandleTntUser(player, "Kill tile abuse detected."))
if (TShock.Utils.HandleTntUser(player, "Kill tile abuse detected."))
{
TSPlayer.Server.RevertKillTile(player.TilesDestroyed);
}
@ -446,9 +447,9 @@ namespace TShockAPI
player.Group = Users.GetGroupForIP(player.IP);
}
if (Tools.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission(Permissions.reservedslot))
if (TShock.Utils.ActivePlayers() + 1 > Config.MaxSlots && !player.Group.HasPermission(Permissions.reservedslot))
{
Tools.ForceKick(player, Config.ServerFullReason);
TShock.Utils.ForceKick(player, Config.ServerFullReason);
handler.Handled = true;
return;
}
@ -456,14 +457,14 @@ namespace TShockAPI
var ban = Bans.GetBanByIp(player.IP);
if (ban != null)
{
Tools.ForceKick(player, string.Format("You are banned: {0}", ban.Reason));
TShock.Utils.ForceKick(player, string.Format("You are banned: {0}", ban.Reason));
handler.Handled = true;
return;
}
if (!FileTools.OnWhitelist(player.IP))
{
Tools.ForceKick(player, "Not on whitelist.");
TShock.Utils.ForceKick(player, "Not on whitelist.");
handler.Handled = true;
return;
}
@ -499,22 +500,22 @@ namespace TShockAPI
return;
}
if (!Tools.ValidString(text))
if (!TShock.Utils.ValidString(text))
{
Tools.Kick(tsplr, "Unprintable character in chat");
TShock.Utils.Kick(tsplr, "Unprintable character in chat");
e.Handled = true;
return;
}
if (msg.whoAmI != ply)
{
e.Handled = Tools.HandleGriefer(tsplr, "Faking Chat");
e.Handled = TShock.Utils.HandleGriefer(tsplr, "Faking Chat");
return;
}
if (tsplr.Group.HasPermission(Permissions.adminchat) && !text.StartsWith("/") && Config.AdminChatEnabled)
{
Tools.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text,
TShock.Utils.Broadcast(Config.AdminChatPrefix + "<" + tsplr.Name + "> " + text,
tsplr.Group.R, tsplr.Group.G,
tsplr.Group.B);
e.Handled = true;
@ -535,7 +536,7 @@ namespace TShockAPI
}
else
{
Tools.Broadcast("{2}<{0}> {1}".SFormat(tsplr.Name, text, Config.ChatDisplayGroup ? "[{0}] ".SFormat(tsplr.Group.Name) : ""),
TShock.Utils.Broadcast("{2}<{0}> {1}".SFormat(tsplr.Name, text, Config.ChatDisplayGroup ? "[{0}] ".SFormat(tsplr.Group.Name) : ""),
tsplr.Group.R, tsplr.Group.G,
tsplr.Group.B);
//Log.Info(string.Format("{0} said: {1}", tsplr.Name, text));
@ -565,7 +566,7 @@ namespace TShockAPI
if (text.StartsWith("exit"))
{
Tools.ForceKickAll("Server shutting down!");
TShock.Utils.ForceKickAll("Server shutting down!");
}
else if (text.StartsWith("playing") || text.StartsWith("/playing"))
{
@ -664,15 +665,15 @@ namespace TShockAPI
var code = Geo.TryGetCountryCode(IPAddress.Parse(player.IP));
player.Country = code == null ? "N/A" : MaxMind.GeoIPCountry.GetCountryNameByCode(code);
Log.Info(string.Format("{0} ({1}) from '{2}' group from '{3}' joined.", player.Name, player.IP, player.Group.Name, player.Country));
Tools.Broadcast(player.Name + " is from the " + player.Country, Color.Yellow);
TShock.Utils.Broadcast(player.Name + " is from the " + player.Country, Color.Yellow);
}
else
Log.Info(string.Format("{0} ({1}) from '{2}' group joined.", player.Name, player.IP, player.Group.Name));
Tools.ShowFileToUser(player, "motd.txt");
TShock.Utils.ShowFileToUser(player, "motd.txt");
if (HackedHealth(player))
{
Tools.HandleCheater(player, "Hacked health.");
TShock.Utils.HandleCheater(player, "Hacked health.");
}
if (Config.AlwaysPvP)
{
@ -780,8 +781,8 @@ namespace TShockAPI
private void OnSaveWorld(bool resettime, HandledEventArgs e)
{
Tools.Broadcast("Saving world. Momentary lag might result from this.", Color.Red);
Thread SaveWorld = new Thread(Tools.SaveWorld);
TShock.Utils.Broadcast("Saving world. Momentary lag might result from this.", Color.Red);
Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start();
e.Handled = true;
}
@ -799,7 +800,7 @@ namespace TShockAPI
}
else
{
Main.invasionSize = 100 + (Config.InvasionMultiplier * Tools.ActivePlayers());
Main.invasionSize = 100 + (Config.InvasionMultiplier * TShock.Utils.ActivePlayers());
}
Main.invasionWarn = 0;
@ -825,22 +826,22 @@ namespace TShockAPI
switch (random)
{
case 0:
Tools.Broadcast(string.Format("You call that a lot? {0} goblins killed!", KillCount));
TShock.Utils.Broadcast(string.Format("You call that a lot? {0} goblins killed!", KillCount));
break;
case 1:
Tools.Broadcast(string.Format("Fatality! {0} goblins killed!", KillCount));
TShock.Utils.Broadcast(string.Format("Fatality! {0} goblins killed!", KillCount));
break;
case 2:
Tools.Broadcast(string.Format("Number of 'noobs' killed to date: {0}", KillCount));
TShock.Utils.Broadcast(string.Format("Number of 'noobs' killed to date: {0}", KillCount));
break;
case 3:
Tools.Broadcast(string.Format("Duke Nukem would be proud. {0} goblins killed.", KillCount));
TShock.Utils.Broadcast(string.Format("Duke Nukem would be proud. {0} goblins killed.", KillCount));
break;
case 4:
Tools.Broadcast(string.Format("You call that a lot? {0} goblins killed!", KillCount));
TShock.Utils.Broadcast(string.Format("You call that a lot? {0} goblins killed!", KillCount));
break;
case 5:
Tools.Broadcast(string.Format("{0} copies of Call of Duty smashed.", KillCount));
TShock.Utils.Broadcast(string.Format("{0} copies of Call of Duty smashed.", KillCount));
break;
}
}
@ -908,7 +909,7 @@ namespace TShockAPI
RconHandler.Password = file.RconPassword;
RconHandler.ListenPort = file.RconPort;
Tools.HashAlgo = file.HashAlgorithm;
TShock.Utils.HashAlgo = file.HashAlgorithm;
}
}
}

View file

@ -128,7 +128,7 @@
<Compile Include="Rest\RestObject.cs" />
<Compile Include="Rest\RestVerbs.cs" />
<Compile Include="Rest\SecureRest.cs" />
<Compile Include="Tools.cs" />
<Compile Include="Utils.cs" />
<Compile Include="TShock.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TSPlayer.cs" />
@ -184,7 +184,7 @@
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties BuildVersion_IncrementBeforeBuild="False" BuildVersion_StartDate="2011/6/17" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_BuildAction="Both" BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" />
<UserProperties BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildAction="Both" BuildVersion_BuildVersioningStyle="None.None.None.MonthAndDayStamp" BuildVersion_StartDate="2011/6/17" BuildVersion_IncrementBeforeBuild="False" />
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

86
TShockAPI/Tools.cs → TShockAPI/Utils.cs Executable file → Normal file
View file

@ -29,9 +29,9 @@ using Terraria;
namespace TShockAPI
{
public class Tools
public class Utils
{
public static Random Random = new Random();
public Random Random = new Random();
//private static List<Group> groups = new List<Group>();
/// <summary>
@ -39,7 +39,7 @@ namespace TShockAPI
/// </summary>
/// <param name="mess">A string IPv4 address in IP:PORT form.</param>
/// <returns>A string IPv4 address.</returns>
public static string GetRealIP(string mess)
public string GetRealIP(string mess)
{
return mess.Split(':')[0];
}
@ -48,7 +48,7 @@ namespace TShockAPI
/// Used for some places where a list of players might be used.
/// </summary>
/// <returns>String of players seperated by commas.</returns>
public static string GetPlayers()
public string GetPlayers()
{
var sb = new StringBuilder();
foreach (TSPlayer player in TShock.Players)
@ -69,7 +69,7 @@ namespace TShockAPI
/// Finds a player and gets IP as string
/// </summary>
/// <param name="msg">Player name</param>
public static string GetPlayerIP(string playername)
public string GetPlayerIP(string playername)
{
foreach (TSPlayer player in TShock.Players)
{
@ -92,7 +92,7 @@ namespace TShockAPI
/// <param name="max">Maximum bounds of the clamp</param>
/// <param name="min">Minimum bounds of the clamp</param>
/// <returns></returns>
public static T Clamp<T>(T value, T max, T min)
public T Clamp<T>(T value, T max, T min)
where T : IComparable<T>
{
T result = value;
@ -106,7 +106,7 @@ namespace TShockAPI
/// <summary>
/// Saves the map data
/// </summary>
public static void SaveWorld()
public void SaveWorld()
{
WorldGen.saveWorld();
Broadcast("World saved.", Color.Yellow);
@ -117,19 +117,19 @@ namespace TShockAPI
/// Broadcasts a message to all players
/// </summary>
/// <param name="msg">string message</param>
public static void Broadcast(string msg)
public void Broadcast(string msg)
{
Broadcast(msg, Color.Green);
}
public static void Broadcast(string msg, byte red, byte green, byte blue)
public void Broadcast(string msg, byte red, byte green, byte blue)
{
TSPlayer.All.SendMessage(msg, red, green, blue);
TSPlayer.Server.SendMessage(msg, red, green, blue);
Log.Info(string.Format("Broadcast: {0}", msg));
}
public static void Broadcast(string msg, Color color)
public void Broadcast(string msg, Color color)
{
Broadcast(msg, color.R, color.G, color.B);
}
@ -139,7 +139,7 @@ namespace TShockAPI
/// </summary>
/// <param name="log"></param>
/// <param name="color"></param>
public static void SendLogs(string log, Color color)
public void SendLogs(string log, Color color)
{
Log.Info(log);
TSPlayer.Server.SendMessage(log, color);
@ -154,7 +154,7 @@ namespace TShockAPI
/// The number of active players on the server.
/// </summary>
/// <returns>int playerCount</returns>
public static int ActivePlayers()
public int ActivePlayers()
{
int num = 0;
foreach (TSPlayer player in TShock.Players)
@ -172,7 +172,7 @@ namespace TShockAPI
/// </summary>
/// <param name="ply"></param>
/// <returns></returns>
public static List<TSPlayer> FindPlayer(string ply)
public List<TSPlayer> FindPlayer(string ply)
{
var found = new List<TSPlayer>();
ply = ply.ToLower();
@ -190,7 +190,7 @@ namespace TShockAPI
return found;
}
public static void GetRandomClearTileWithInRange(int startTileX, int startTileY, int tileXRange, int tileYRange, out int tileX, out int tileY)
public void GetRandomClearTileWithInRange(int startTileX, int startTileY, int tileXRange, int tileYRange, out int tileX, out int tileY)
{
int j = 0;
do
@ -209,17 +209,17 @@ namespace TShockAPI
while (TileValid(tileX, tileY) && !TileClear(tileX, tileY));
}
private static bool TileValid(int tileX, int tileY)
private bool TileValid(int tileX, int tileY)
{
return tileX >= 0 && tileX <= Main.maxTilesX && tileY >= 0 && tileY <= Main.maxTilesY;
}
private static bool TileClear(int tileX, int tileY)
private bool TileClear(int tileX, int tileY)
{
return !Main.tile[tileX, tileY].active;
}
public static List<Item> GetItemByIdOrName(string idOrName)
public List<Item> GetItemByIdOrName(string idOrName)
{
int type = -1;
if (int.TryParse(idOrName, out type))
@ -229,14 +229,14 @@ namespace TShockAPI
return GetItemByName(idOrName);
}
public static Item GetItemById(int id)
public Item GetItemById(int id)
{
Item item = new Item();
item.SetDefaults(id);
return item;
}
public static List<Item> GetItemByName(string name)
public List<Item> GetItemByName(string name)
{
//Method #1 - must be exact match, allows support for different pickaxes/hammers/swords etc
for (int i = 1; i < Main.maxItemTypes; i++)
@ -264,7 +264,7 @@ namespace TShockAPI
return found;
}
public static List<NPC> GetNPCByIdOrName(string idOrName)
public List<NPC> GetNPCByIdOrName(string idOrName)
{
int type = -1;
if (int.TryParse(idOrName, out type))
@ -274,14 +274,14 @@ namespace TShockAPI
return GetNPCByName(idOrName);
}
public static NPC GetNPCById(int id)
public NPC GetNPCById(int id)
{
NPC npc = new NPC();
npc.SetDefaults(id);
return npc;
}
public static List<NPC> GetNPCByName(string name)
public List<NPC> GetNPCByName(string name)
{
//Method #1 - must be exact match, allows support for different coloured slimes
for (int i = 1; i < Main.maxNPCTypes; i++)
@ -305,15 +305,15 @@ namespace TShockAPI
return found;
}
public static string GetBuffName(int id)
public string GetBuffName(int id)
{
return (id > 0 && id < Main.maxBuffs) ? Main.buffName[id] : "null";
}
public static string GetBuffDescription(int id)
public string GetBuffDescription(int id)
{
return (id > 0 && id < Main.maxBuffs) ? Main.buffTip[id] : "null";
}
public static List<int> GetBuffByName(string name)
public List<int> GetBuffByName(string name)
{
for (int i = 1; i < Main.maxBuffs; i++)
{
@ -334,7 +334,7 @@ namespace TShockAPI
/// </summary>
/// <param name="ply">int player</param>
/// <param name="reason">string reason</param>
public static void ForceKickAll(string reason)
public void ForceKickAll(string reason)
{
foreach (TSPlayer player in TShock.Players)
{
@ -350,7 +350,7 @@ namespace TShockAPI
/// </summary>
/// <param name="ply">int player</param>
/// <param name="reason">string reason</param>
public static void ForceKick(TSPlayer player, string reason)
public void ForceKick(TSPlayer player, string reason)
{
if (!player.ConnectionAlive)
return;
@ -363,7 +363,7 @@ namespace TShockAPI
/// </summary>
/// <param name="ply">int player</param>
/// <param name="reason">string reason</param>
public static bool Kick(TSPlayer player, string reason, string adminUserName = "")
public bool Kick(TSPlayer player, string reason, string adminUserName = "")
{
if (!player.ConnectionAlive)
return true;
@ -386,7 +386,7 @@ namespace TShockAPI
/// </summary>
/// <param name="ply">int player</param>
/// <param name="reason">string reason</param>
public static bool Ban(TSPlayer player, string reason, string adminUserName = "")
public bool Ban(TSPlayer player, string reason, string adminUserName = "")
{
if (!player.ConnectionAlive)
return true;
@ -406,27 +406,27 @@ namespace TShockAPI
return false;
}
public static bool HandleCheater(TSPlayer player, string reason)
public bool HandleCheater(TSPlayer player, string reason)
{
return HandleBadPlayer(player, "ignorecheatdetection", TShock.Config.BanCheaters, TShock.Config.KickCheaters, reason);
}
public static bool HandleGriefer(TSPlayer player, string reason)
public bool HandleGriefer(TSPlayer player, string reason)
{
return HandleBadPlayer(player, Permissions.ignoregriefdetection, TShock.Config.BanGriefers, TShock.Config.KickGriefers, reason);
}
public static bool HandleTntUser(TSPlayer player, string reason)
public bool HandleTntUser(TSPlayer player, string reason)
{
return HandleBadPlayer(player, Permissions.ignoregriefdetection, TShock.Config.BanKillTileAbusers, TShock.Config.KickKillTileAbusers, reason);
}
public static bool HandleExplosivesUser(TSPlayer player, string reason)
public bool HandleExplosivesUser(TSPlayer player, string 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 bool HandleBadPlayer(TSPlayer player, string overridePermission, bool ban, bool kick, string reason)
{
if (!player.Group.HasPermission(overridePermission) || !(player.Group.Name == "superadmin"))
{
@ -448,7 +448,7 @@ namespace TShockAPI
/// <param name="ply">int player</param>
/// <param name="file">string filename reletave to savedir</param>
//Todo: Fix this
public static void ShowFileToUser(TSPlayer player, string file)
public void ShowFileToUser(TSPlayer player, string file)
{
string foo = "";
using (var tr = new StreamReader(Path.Combine(TShock.SavePath, file)))
@ -487,7 +487,7 @@ namespace TShockAPI
/// Returns a Group from the name of the group
/// </summary>
/// <param name="ply">string groupName</param>
public static Group GetGroup(string groupName)
public Group GetGroup(string groupName)
{
//first attempt on cached groups
for (int i = 0; i < TShock.Groups.groups.Count; i++)
@ -504,7 +504,7 @@ namespace TShockAPI
/// Returns an IPv4 address from a DNS query
/// </summary>
/// <param name="hostname">string ip</param>
public static string GetIPv4Address(string hostname)
public string GetIPv4Address(string hostname)
{
try
{
@ -519,9 +519,9 @@ namespace TShockAPI
return "";
}
public static string HashAlgo = "md5";
public string HashAlgo = "md5";
public static readonly Dictionary<string, Func<HashAlgorithm>> HashTypes = new Dictionary<string, Func<HashAlgorithm>>
public readonly Dictionary<string, Func<HashAlgorithm>> HashTypes = new Dictionary<string, Func<HashAlgorithm>>
{
{"sha512", () => new SHA512Managed()},
{"sha256", () => new SHA256Managed()},
@ -536,7 +536,7 @@ namespace TShockAPI
/// </summary>
/// <param name="bytes">bytes to hash</param>
/// <returns>string sha256</returns>
public static string HashPassword(byte[] bytes)
public string HashPassword(byte[] bytes)
{
if (bytes == null)
throw new NullReferenceException("bytes");
@ -555,7 +555,7 @@ namespace TShockAPI
/// </summary>
/// <param name="bytes">bytes to hash</param>
/// <returns>string sha256</returns>
public static string HashPassword(string password)
public string HashPassword(string password)
{
if (string.IsNullOrEmpty(password) || password == "non-existant password")
return "non-existant password";
@ -567,7 +567,7 @@ namespace TShockAPI
/// </summary>
/// <param name="str">String to check</param>
/// <returns>True if the string only contains printable characters</returns>
public static bool ValidString(string str)
public bool ValidString(string str)
{
foreach (var c in str)
{
@ -581,7 +581,7 @@ namespace TShockAPI
/// Checks if world has hit the max number of chests
/// </summary>
/// <returns>True if the entire chest array is used</returns>
public static bool MaxChests()
public bool MaxChests()
{
for (int i = 0; i < Main.chest.Length; i++)
{

View file

@ -40,7 +40,7 @@ namespace UnitTests
{
Assert.IsTrue(Groups.AddGroup("test1", "heal") != "");
Assert.IsTrue(Groups.GroupExists("test1"));
Assert.IsTrue(Tools.GetGroup("test1").HasPermission("heal"));
Assert.IsTrue(Utils.GetGroup("test1").HasPermission("heal"));
}
[TestMethod]