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)) if (worldpath != null && !Directory.Exists(worldpath))
Directory.CreateDirectory(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..."); Console.WriteLine("Backing up world...");
Thread SaveWorld = new Thread(Tools.SaveWorld); Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start(); SaveWorld.Start();
while (SaveWorld.ThreadState == ThreadState.Running) while (SaveWorld.ThreadState == ThreadState.Running)

View file

@ -209,13 +209,13 @@ namespace TShockAPI
if (!cmd.CanRun(player)) 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); player.SendMessage("You do not have access to that command.", Color.Red);
} }
else else
{ {
if (cmd.DoLog) 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); cmd.Run(cmdText, player, args);
} }
return true; return true;
@ -311,7 +311,7 @@ namespace TShockAPI
if (args.Player.LoginAttempts > TShock.Config.MaximumLoginAttempts && (TShock.Config.MaximumLoginAttempts != -1)) 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."); 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) if (args.Parameters.Count != 2)
@ -322,7 +322,7 @@ namespace TShockAPI
} }
try try
{ {
string encrPass = Tools.HashPassword(args.Parameters[1]); string encrPass = TShock.Utils.HashPassword(args.Parameters[1]);
var user = TShock.Users.GetUserByName(args.Parameters[0]); var user = TShock.Users.GetUserByName(args.Parameters[0]);
if (user == null) if (user == null)
{ {
@ -330,7 +330,7 @@ namespace TShockAPI
} }
else if (user.Password.ToUpper() == encrPass.ToUpper()) 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.UserAccountName = args.Parameters[0];
args.Player.UserID = TShock.Users.GetUserID(args.Player.UserAccountName); args.Player.UserID = TShock.Users.GetUserID(args.Player.UserAccountName);
args.Player.IsLoggedIn = true; args.Player.IsLoggedIn = true;
@ -359,7 +359,7 @@ namespace TShockAPI
if (args.Player.IsLoggedIn && args.Parameters.Count == 2) if (args.Player.IsLoggedIn && args.Parameters.Count == 2)
{ {
var user = TShock.Users.GetUserByName(args.Player.UserAccountName); 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()) if (user.Password.ToUpper() == encrPass.ToUpper())
{ {
args.Player.SendMessage("You changed your password!", Color.Green); args.Player.SendMessage("You changed your password!", Color.Green);
@ -600,7 +600,7 @@ namespace TShockAPI
return; return;
} }
var players = Tools.FindPlayer(args.Parameters[0]); var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count > 1) if (players.Count > 1)
{ {
args.Player.SendMessage("More than one player matched your query.", Color.Red); args.Player.SendMessage("More than one player matched your query.", Color.Red);
@ -630,7 +630,7 @@ namespace TShockAPI
} }
string plStr = args.Parameters[0]; string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -642,7 +642,7 @@ namespace TShockAPI
else else
{ {
string reason = args.Parameters.Count > 1 ? String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1)) : "Misbehaviour."; 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); args.Player.SendMessage("You can't kick another admin!", Color.Red);
} }
@ -663,7 +663,7 @@ namespace TShockAPI
} }
string plStr = args.Parameters[0]; string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -675,7 +675,7 @@ namespace TShockAPI
else else
{ {
string reason = args.Parameters.Count > 1 ? String.Join(" ", args.Parameters.GetRange(1, args.Parameters.Count - 1)) : "Misbehaviour."; 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); args.Player.SendMessage("You can't ban another admin!", Color.Red);
} }
@ -856,20 +856,20 @@ namespace TShockAPI
message += " " + args.Parameters[i]; message += " " + args.Parameters[i];
} }
Tools.Broadcast("(Server Broadcast)" + message, Color.Red); TShock.Utils.Broadcast("(Server Broadcast)" + message, Color.Red);
return; return;
} }
private static void Off(CommandArgs args) private static void Off(CommandArgs args)
{ {
Tools.ForceKickAll("Server shutting down!"); TShock.Utils.ForceKickAll("Server shutting down!");
WorldGen.saveWorld(); WorldGen.saveWorld();
Netplay.disconnect = true; Netplay.disconnect = true;
} }
private static void OffNoSave(CommandArgs args) private static void OffNoSave(CommandArgs args)
{ {
Tools.ForceKickAll("Server shutting down!"); TShock.Utils.ForceKickAll("Server shutting down!");
Netplay.disconnect = true; Netplay.disconnect = true;
} }
@ -906,7 +906,7 @@ namespace TShockAPI
Process.Start(new ProcessStartInfo("UpdateTShock.exe")); Process.Start(new ProcessStartInfo("UpdateTShock.exe"));
Tools.ForceKickAll("Server shutting down for update!"); TShock.Utils.ForceKickAll("Server shutting down for update!");
WorldGen.saveWorld(); WorldGen.saveWorld();
Netplay.disconnect = true; Netplay.disconnect = true;
} }
@ -940,19 +940,19 @@ namespace TShockAPI
private static void Bloodmoon(CommandArgs args) private static void Bloodmoon(CommandArgs args)
{ {
TSPlayer.Server.SetBloodMoon(true); 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) private static void Invade(CommandArgs args)
{ {
if (Main.invasionSize <= 0) 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(); TShock.StartInvasion();
} }
else 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; Main.invasionSize = 0;
} }
} }
@ -971,9 +971,9 @@ namespace TShockAPI
return; return;
} }
amount = Math.Min(amount, Main.maxNPCs); 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); 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) private static void Eye(CommandArgs args)
@ -990,10 +990,10 @@ namespace TShockAPI
return; return;
} }
amount = Math.Min(amount, Main.maxNPCs); 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.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(eye.type, eye.name, amount, args.Player.TileX, args.Player.TileY); 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) private static void King(CommandArgs args)
@ -1010,9 +1010,9 @@ namespace TShockAPI
return; return;
} }
amount = Math.Min(amount, Main.maxNPCs); 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); 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) private static void Skeletron(CommandArgs args)
@ -1029,10 +1029,10 @@ namespace TShockAPI
return; return;
} }
amount = Math.Min(amount, Main.maxNPCs); 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.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(skeletron.type, skeletron.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 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) private static void Hardcore(CommandArgs args)
@ -1049,16 +1049,16 @@ namespace TShockAPI
return; return;
} }
amount = Math.Min(amount, Main.maxNPCs / 4); amount = Math.Min(amount, Main.maxNPCs / 4);
NPC eater = Tools.GetNPCById(13); NPC eater = TShock.Utils.GetNPCById(13);
NPC eye = Tools.GetNPCById(4); NPC eye = TShock.Utils.GetNPCById(4);
NPC king = Tools.GetNPCById(50); NPC king = TShock.Utils.GetNPCById(50);
NPC skeletron = Tools.GetNPCById(35); NPC skeletron = TShock.Utils.GetNPCById(35);
TSPlayer.Server.SetTime(false, 0.0); TSPlayer.Server.SetTime(false, 0.0);
TSPlayer.Server.SpawnNPC(eater.type, eater.name, amount, args.Player.TileX, args.Player.TileY); 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(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(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); 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) private static void SpawnMob(CommandArgs args)
@ -1082,7 +1082,7 @@ namespace TShockAPI
amount = Math.Min(amount, Main.maxNPCs); 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) if (npcs.Count == 0)
{ {
args.Player.SendMessage("Invalid mob type!", Color.Red); args.Player.SendMessage("Invalid mob type!", Color.Red);
@ -1097,7 +1097,7 @@ namespace TShockAPI
if (npc.type >= 1 && npc.type < Main.maxNPCTypes) if (npc.type >= 1 && npc.type < Main.maxNPCTypes)
{ {
TSPlayer.Server.SpawnNPC(npc.type, npc.name, amount, args.Player.TileX, args.Player.TileY, 50, 20); 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 else
args.Player.SendMessage("Invalid mob type!", Color.Red); args.Player.SendMessage("Invalid mob type!", Color.Red);
@ -1147,7 +1147,7 @@ namespace TShockAPI
} }
string plStr = String.Join(" ", args.Parameters); string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
else if (players.Count > 1) else if (players.Count > 1)
@ -1190,7 +1190,7 @@ namespace TShockAPI
return; return;
} }
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -1219,7 +1219,7 @@ namespace TShockAPI
return; return;
} }
var foundplr = Tools.FindPlayer(args.Parameters[0]); var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]);
if (foundplr.Count == 0) if (foundplr.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -1458,7 +1458,7 @@ namespace TShockAPI
{ {
if (args.Parameters.Count > 0) if (args.Parameters.Count > 0)
{ {
var items = Tools.GetItemByIdOrName(args.Parameters[0]); var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
if (items.Count == 0) if (items.Count == 0)
{ {
args.Player.SendMessage("Invalid item type!", Color.Red); args.Player.SendMessage("Invalid item type!", Color.Red);
@ -1491,7 +1491,7 @@ namespace TShockAPI
{ {
if (args.Parameters.Count > 0) if (args.Parameters.Count > 0)
{ {
var items = Tools.GetItemByIdOrName(args.Parameters[0]); var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
if (items.Count == 0) if (items.Count == 0)
{ {
args.Player.SendMessage("Invalid item type!", Color.Red); args.Player.SendMessage("Invalid item type!", Color.Red);
@ -1529,8 +1529,8 @@ namespace TShockAPI
Main.spawnTileX = args.Player.TileX + 1; Main.spawnTileX = args.Player.TileX + 1;
Main.spawnTileY = args.Player.TileY + 3; Main.spawnTileY = args.Player.TileY + 3;
Tools.Broadcast("Server map saving, potential lag spike"); TShock.Utils.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(Tools.SaveWorld); Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start(); SaveWorld.Start();
} }
@ -1577,8 +1577,8 @@ namespace TShockAPI
private static void Save(CommandArgs args) private static void Save(CommandArgs args)
{ {
Tools.Broadcast("Server map saving, potential lag spike"); TShock.Utils.Broadcast("Server map saving, potential lag spike");
Thread SaveWorld = new Thread(Tools.SaveWorld); Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start(); SaveWorld.Start();
} }
@ -1591,7 +1591,7 @@ namespace TShockAPI
return; return;
} }
Liquid.StartPanic(); 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); int.TryParse(args.Parameters[0], out amount);
NPC.defaultMaxSpawns = amount; NPC.defaultMaxSpawns = amount;
TShock.Config.DefaultMaximumSpawns = 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) private static void SpawnRate(CommandArgs args)
@ -1622,7 +1622,7 @@ namespace TShockAPI
int.TryParse(args.Parameters[0], out amount); int.TryParse(args.Parameters[0], out amount);
NPC.defaultSpawnRate = amount; NPC.defaultSpawnRate = amount;
TShock.Config.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 #endregion Server Config Commands
@ -1641,23 +1641,23 @@ namespace TShockAPI
{ {
case "day": case "day":
TSPlayer.Server.SetTime(true, 150.0); 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; break;
case "night": case "night":
TSPlayer.Server.SetTime(false, 0.0); 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; break;
case "dusk": case "dusk":
TSPlayer.Server.SetTime(false, 0.0); 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; break;
case "noon": case "noon":
TSPlayer.Server.SetTime(true, 27000.0); 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; break;
case "midnight": case "midnight":
TSPlayer.Server.SetTime(false, 16200.0); 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; break;
default: default:
args.Player.SendMessage("Invalid syntax! Proper syntax: /time <day/night/dusk/noon/midnight>", Color.Red); 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]; string plStr = args.Parameters[0];
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -1698,10 +1698,10 @@ namespace TShockAPI
} }
if (!args.Player.Group.HasPermission(Permissions.kill)) if (!args.Player.Group.HasPermission(Permissions.kill))
{ {
damage = Tools.Clamp(damage, 15, 0); damage = TShock.Utils.Clamp(damage, 15, 0);
} }
plr.DamagePlayer(damage); 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)); args.Player.Name, plr.Name, damage));
Log.Info(args.Player.Name + " slapped " + plr.Name + " with " + damage + " damage."); Log.Info(args.Player.Name + " slapped " + plr.Name + " with " + damage + " damage.");
} }
@ -1714,13 +1714,13 @@ namespace TShockAPI
private static void ToggleAntiBuild(CommandArgs args) private static void ToggleAntiBuild(CommandArgs args)
{ {
TShock.Config.DisableBuild = (TShock.Config.DisableBuild == false); 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) private static void ProtectSpawn(CommandArgs args)
{ {
TShock.Config.SpawnProtection = (TShock.Config.SpawnProtection == false); 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) private static void DebugRegions(CommandArgs args)
@ -2122,7 +2122,7 @@ namespace TShockAPI
private static void Playing(CommandArgs args) 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) private static void AuthToken(CommandArgs args)
@ -2139,7 +2139,7 @@ namespace TShockAPI
try try
{ {
TShock.Users.AddUser(new User(args.Player.IP, "", "", "superadmin")); 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("This IP address is now superadmin. Please perform the following command:");
args.Player.SendMessage("/user add <username>:<password> superadmin"); args.Player.SendMessage("/user add <username>:<password> superadmin");
args.Player.SendMessage("Creates: <username> with the password <password> as part of the superadmin group."); 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); args.Player.SendMessage("Invalid syntax! Proper syntax: /me <text>", Color.Red);
return; 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) private static void PartyChat(CommandArgs args)
@ -2230,12 +2230,12 @@ namespace TShockAPI
private static void Motd(CommandArgs args) 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) 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) private static void Whisper(CommandArgs args)
@ -2246,7 +2246,7 @@ namespace TShockAPI
return; return;
} }
var players = Tools.FindPlayer(args.Parameters[0]); var players = TShock.Utils.FindPlayer(args.Parameters[0]);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -2288,7 +2288,7 @@ namespace TShockAPI
int annoy = 5; int annoy = 5;
int.TryParse(args.Parameters[1], out annoy); 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) if (players.Count == 0)
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
else if (players.Count > 1) else if (players.Count > 1)
@ -2314,7 +2314,7 @@ namespace TShockAPI
} }
string plStr = String.Join(" ", args.Parameters); string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -2353,7 +2353,7 @@ namespace TShockAPI
killcount++; killcount++;
} }
} }
Tools.Broadcast(string.Format("Killed {0} NPCs.", killcount)); TShock.Utils.Broadcast(string.Format("Killed {0} NPCs.", killcount));
} }
private static void Item(CommandArgs args) private static void Item(CommandArgs args)
@ -2370,7 +2370,7 @@ namespace TShockAPI
} }
int itemAmount = 0; int itemAmount = 0;
int.TryParse(args.Parameters[args.Parameters.Count - 1], out itemAmount); 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) if (items.Count == 0)
{ {
args.Player.SendMessage("Invalid item type!", Color.Red); args.Player.SendMessage("Invalid item type!", Color.Red);
@ -2421,7 +2421,7 @@ namespace TShockAPI
return; return;
} }
int itemAmount = 0; int itemAmount = 0;
var items = Tools.GetItemByIdOrName(args.Parameters[0]); var items = TShock.Utils.GetItemByIdOrName(args.Parameters[0]);
args.Parameters.RemoveAt(0); args.Parameters.RemoveAt(0);
string plStr = args.Parameters[0]; string plStr = args.Parameters[0];
args.Parameters.RemoveAt(0); args.Parameters.RemoveAt(0);
@ -2442,7 +2442,7 @@ namespace TShockAPI
var item = items[0]; var item = items[0];
if (item.type >= 1 && item.type < Main.maxItemTypes) if (item.type >= 1 && item.type < Main.maxItemTypes)
{ {
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -2525,7 +2525,7 @@ namespace TShockAPI
if (args.Parameters.Count > 0) if (args.Parameters.Count > 0)
{ {
string plStr = String.Join(" ", args.Parameters); string plStr = String.Join(" ", args.Parameters);
var players = Tools.FindPlayer(plStr); var players = TShock.Utils.FindPlayer(plStr);
if (players.Count == 0) if (players.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -2551,8 +2551,8 @@ namespace TShockAPI
playerToHeal = args.Player; playerToHeal = args.Player;
} }
Item heart = Tools.GetItemById(58); Item heart = TShock.Utils.GetItemById(58);
Item star = Tools.GetItemById(184); Item star = TShock.Utils.GetItemById(184);
for (int i = 0; i < 20; i++) for (int i = 0; i < 20; i++)
playerToHeal.GiveItem(heart.type, heart.name, heart.width, heart.height, heart.maxStack); playerToHeal.GiveItem(heart.type, heart.name, heart.width, heart.height, heart.maxStack);
for (int i = 0; i < 10; i++) for (int i = 0; i < 10; i++)
@ -2579,7 +2579,7 @@ namespace TShockAPI
int time = 60; int time = 60;
if (!int.TryParse(args.Parameters[0], out id)) 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) if (found.Count == 0)
{ {
args.Player.SendMessage("Invalid buff name!", Color.Red); args.Player.SendMessage("Invalid buff name!", Color.Red);
@ -2600,7 +2600,7 @@ namespace TShockAPI
time = 60; time = 60;
args.Player.SetBuff(id, time * 60); args.Player.SetBuff(id, time * 60);
args.Player.SendMessage(string.Format("You have buffed yourself with {0}({1}) for {2} seconds!", 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 else
args.Player.SendMessage("Invalid buff ID!", Color.Red); args.Player.SendMessage("Invalid buff ID!", Color.Red);
@ -2615,7 +2615,7 @@ namespace TShockAPI
} }
int id = 0; int id = 0;
int time = 60; int time = 60;
var foundplr = Tools.FindPlayer(args.Parameters[0]); var foundplr = TShock.Utils.FindPlayer(args.Parameters[0]);
if (foundplr.Count == 0) if (foundplr.Count == 0)
{ {
args.Player.SendMessage("Invalid player!", Color.Red); args.Player.SendMessage("Invalid player!", Color.Red);
@ -2630,7 +2630,7 @@ namespace TShockAPI
{ {
if (!int.TryParse(args.Parameters[1], out id)) 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) if (found.Count == 0)
{ {
args.Player.SendMessage("Invalid buff name!", Color.Red); args.Player.SendMessage("Invalid buff name!", Color.Red);
@ -2651,9 +2651,9 @@ namespace TShockAPI
time = 60; time = 60;
foundplr[0].SetBuff(id, time * 60); foundplr[0].SetBuff(id, time * 60);
args.Player.SendMessage(string.Format("You have buffed {0} with {1}({2}) for {3} seconds!", 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!", 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 else
args.Player.SendMessage("Invalid buff ID!", Color.Red); 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) if (database.Query("DELETE FROM GroupList WHERE GroupName=@0", name) == 1)
message = "Group " + name + " has been deleted successfully."; message = "Group " + name + " has been deleted successfully.";
groups.Remove(Tools.GetGroup(name)); groups.Remove(TShock.Utils.GetGroup(name));
return message; return message;
} }
@ -149,7 +149,7 @@ namespace TShockAPI.DB
if (!GroupExists(name)) if (!GroupExists(name))
return "Error: Group doesn't exists."; return "Error: Group doesn't exists.";
var group = Tools.GetGroup(name); var group = TShock.Utils.GetGroup(name);
//Add existing permissions (without duplicating) //Add existing permissions (without duplicating)
permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s))); permissions.AddRange(group.permissions.Where(s => !permissions.Contains(s)));
@ -167,7 +167,7 @@ namespace TShockAPI.DB
if (!GroupExists(name)) if (!GroupExists(name))
return "Error: Group doesn't exists."; 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. //Only get permissions that exist in the group.
var newperms = group.permissions.Except( permissions ); var newperms = group.permissions.Except( permissions );

View file

@ -39,7 +39,7 @@ namespace TShockAPI.DB
int id = 0; int id = 0;
int.TryParse(line, out id); 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 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)) if (!ItemIsBanned(itemname))
ItemBans.Add(itemname); ItemBans.Add(itemname);
} }
@ -86,7 +86,7 @@ namespace TShockAPI.DB
return; return;
try 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); ItemBans.Remove(itemname);
} }
catch (Exception ex) catch (Exception ex)

View file

@ -102,7 +102,7 @@ namespace TShockAPI.DB
if (!TShock.Groups.GroupExists(user.Group)) if (!TShock.Groups.GroupExists(user.Group))
throw new GroupNotExistsException(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); throw new UserExistsException(user.Name);
} }
catch (Exception ex) catch (Exception ex)
@ -148,7 +148,7 @@ namespace TShockAPI.DB
{ {
try 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); throw new UserNotExistException(user.Name);
} }
catch (Exception ex) catch (Exception ex)
@ -210,7 +210,7 @@ namespace TShockAPI.DB
if (reader.Read()) if (reader.Read())
{ {
string group = reader.Get<string>("UserGroup"); 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); Log.ConsoleError("GetGroupForIP SQL returned an error: " + ex);
} }
return Tools.GetGroup("default"); return TShock.Utils.GetGroup("default");
} }
public Group GetGroupForIPExpensive(string ip) public Group GetGroupForIPExpensive(string ip)
@ -229,9 +229,9 @@ namespace TShockAPI.DB
{ {
while (reader.Read()) 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); 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)) using (var tr = new StreamReader(WhitelistPath))
{ {
string whitelist = tr.ReadToEnd(); string whitelist = tr.ReadToEnd();
ip = Tools.GetRealIP(ip); ip = TShock.Utils.GetRealIP(ip);
bool contains = whitelist.Contains(ip); bool contains = whitelist.Contains(ip);
if (!contains) if (!contains)
{ {
@ -99,7 +99,7 @@ namespace TShockAPI
{ {
if (string.IsNullOrWhiteSpace(line)) if (string.IsNullOrWhiteSpace(line))
continue; continue;
contains = Tools.GetIPv4Address(line).Equals(ip); contains = TShock.Utils.GetIPv4Address(line).Equals(ip);
if (contains) if (contains)
return true; return true;
} }

View file

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

View file

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

View file

@ -204,7 +204,7 @@ namespace TShockAPI
response = "infoResponse\n"; 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}", 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, 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, TShock.Config.HardcoreOnly ? 1 : 0, TShock.VersionNum,
Netplay.password != "" ? 1 : 0); Netplay.password != "" ? 1 : 0);
if (challenge != "") if (challenge != "")
@ -223,7 +223,7 @@ namespace TShockAPI
response = "statusResponse\n"; 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}", 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, 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, TShock.Config.HardcoreOnly ? 1 : 0, TShock.VersionNum,
Netplay.password != "" ? 1 : 0) + "\n"; Netplay.password != "" ? 1 : 0) + "\n";
if (challenge != "") if (challenge != "")
@ -251,7 +251,7 @@ namespace TShockAPI
WorldGen.genRand = new Random(); WorldGen.genRand = new Random();
if (text.StartsWith("exit")) if (text.StartsWith("exit"))
{ {
Tools.ForceKickAll("Server shutting down!"); TShock.Utils.ForceKickAll("Server shutting down!");
WorldGen.saveWorld(false); WorldGen.saveWorld(false);
Netplay.disconnect = true; Netplay.disconnect = true;
return "Server shutting down."; return "Server shutting down.";

View file

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

View file

@ -76,7 +76,7 @@ namespace TShockAPI
{ {
get 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> /// <summary>
@ -402,7 +402,7 @@ namespace TShockAPI
{ {
int spawnTileX; int spawnTileX;
int spawnTileY; 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); int npcid = NPC.NewNPC(spawnTileX * 16, spawnTileY * 16, type, 0);
// This is for special slimes // This is for special slimes
Main.npc[npcid].SetDefaults(name); Main.npc[npcid].SetDefaults(name);

View file

@ -67,6 +67,7 @@ namespace TShockAPI
public static MaxMind.GeoIPCountry Geo; public static MaxMind.GeoIPCountry Geo;
public static SecureRest RestApi; public static SecureRest RestApi;
public static RestManager RestManager; public static RestManager RestManager;
public static Utils Utils = new Utils();
/// <summary> /// <summary>
/// Called after TShock is initialized. Useful for plugins that needs hooks before tshock but also depend on tshock being loaded. /// 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." }; 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." }; 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)" }; 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 (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); TSPlayer.Server.RevertKillTile(player.TilesDestroyed);
} }
@ -446,9 +447,9 @@ namespace TShockAPI
player.Group = Users.GetGroupForIP(player.IP); 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; handler.Handled = true;
return; return;
} }
@ -456,14 +457,14 @@ namespace TShockAPI
var ban = Bans.GetBanByIp(player.IP); var ban = Bans.GetBanByIp(player.IP);
if (ban != null) 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; handler.Handled = true;
return; return;
} }
if (!FileTools.OnWhitelist(player.IP)) if (!FileTools.OnWhitelist(player.IP))
{ {
Tools.ForceKick(player, "Not on whitelist."); TShock.Utils.ForceKick(player, "Not on whitelist.");
handler.Handled = true; handler.Handled = true;
return; return;
} }
@ -499,22 +500,22 @@ namespace TShockAPI
return; 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; e.Handled = true;
return; return;
} }
if (msg.whoAmI != ply) if (msg.whoAmI != ply)
{ {
e.Handled = Tools.HandleGriefer(tsplr, "Faking Chat"); e.Handled = TShock.Utils.HandleGriefer(tsplr, "Faking Chat");
return; return;
} }
if (tsplr.Group.HasPermission(Permissions.adminchat) && !text.StartsWith("/") && Config.AdminChatEnabled) 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.R, tsplr.Group.G,
tsplr.Group.B); tsplr.Group.B);
e.Handled = true; e.Handled = true;
@ -535,7 +536,7 @@ namespace TShockAPI
} }
else 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.R, tsplr.Group.G,
tsplr.Group.B); tsplr.Group.B);
//Log.Info(string.Format("{0} said: {1}", tsplr.Name, text)); //Log.Info(string.Format("{0} said: {1}", tsplr.Name, text));
@ -565,7 +566,7 @@ namespace TShockAPI
if (text.StartsWith("exit")) if (text.StartsWith("exit"))
{ {
Tools.ForceKickAll("Server shutting down!"); TShock.Utils.ForceKickAll("Server shutting down!");
} }
else if (text.StartsWith("playing") || text.StartsWith("/playing")) else if (text.StartsWith("playing") || text.StartsWith("/playing"))
{ {
@ -664,15 +665,15 @@ namespace TShockAPI
var code = Geo.TryGetCountryCode(IPAddress.Parse(player.IP)); var code = Geo.TryGetCountryCode(IPAddress.Parse(player.IP));
player.Country = code == null ? "N/A" : MaxMind.GeoIPCountry.GetCountryNameByCode(code); 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)); 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 else
Log.Info(string.Format("{0} ({1}) from '{2}' group joined.", player.Name, player.IP, player.Group.Name)); 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)) if (HackedHealth(player))
{ {
Tools.HandleCheater(player, "Hacked health."); TShock.Utils.HandleCheater(player, "Hacked health.");
} }
if (Config.AlwaysPvP) if (Config.AlwaysPvP)
{ {
@ -780,8 +781,8 @@ namespace TShockAPI
private void OnSaveWorld(bool resettime, HandledEventArgs e) private void OnSaveWorld(bool resettime, HandledEventArgs e)
{ {
Tools.Broadcast("Saving world. Momentary lag might result from this.", Color.Red); TShock.Utils.Broadcast("Saving world. Momentary lag might result from this.", Color.Red);
Thread SaveWorld = new Thread(Tools.SaveWorld); Thread SaveWorld = new Thread(TShock.Utils.SaveWorld);
SaveWorld.Start(); SaveWorld.Start();
e.Handled = true; e.Handled = true;
} }
@ -799,7 +800,7 @@ namespace TShockAPI
} }
else else
{ {
Main.invasionSize = 100 + (Config.InvasionMultiplier * Tools.ActivePlayers()); Main.invasionSize = 100 + (Config.InvasionMultiplier * TShock.Utils.ActivePlayers());
} }
Main.invasionWarn = 0; Main.invasionWarn = 0;
@ -825,22 +826,22 @@ namespace TShockAPI
switch (random) switch (random)
{ {
case 0: 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; break;
case 1: case 1:
Tools.Broadcast(string.Format("Fatality! {0} goblins killed!", KillCount)); TShock.Utils.Broadcast(string.Format("Fatality! {0} goblins killed!", KillCount));
break; break;
case 2: 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; break;
case 3: 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; break;
case 4: 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; break;
case 5: 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; break;
} }
} }
@ -908,7 +909,7 @@ namespace TShockAPI
RconHandler.Password = file.RconPassword; RconHandler.Password = file.RconPassword;
RconHandler.ListenPort = file.RconPort; 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\RestObject.cs" />
<Compile Include="Rest\RestVerbs.cs" /> <Compile Include="Rest\RestVerbs.cs" />
<Compile Include="Rest\SecureRest.cs" /> <Compile Include="Rest\SecureRest.cs" />
<Compile Include="Tools.cs" /> <Compile Include="Utils.cs" />
<Compile Include="TShock.cs" /> <Compile Include="TShock.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TSPlayer.cs" /> <Compile Include="TSPlayer.cs" />
@ -184,7 +184,7 @@
</PropertyGroup> </PropertyGroup>
<ProjectExtensions> <ProjectExtensions>
<VisualStudio> <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> </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.

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

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