diff --git a/TShockAPI/Commands.cs b/TShockAPI/Commands.cs
index c4d0ee13..36a7f1c9 100755
--- a/TShockAPI/Commands.cs
+++ b/TShockAPI/Commands.cs
@@ -204,6 +204,7 @@ namespace TShockAPI
ChatCommands.Add(new Command("spawnrate", "cfg", SpawnRate));
ChatCommands.Add(new Command("time", "cfg", Time));
ChatCommands.Add(new Command("slap", "pvpfun", Slap));
+ ChatCommands.Add(new Command("antibuild", "editspawn", ToggleAntiBuild));
ChatCommands.Add(new Command("protectspawn", "editspawn", ProtectSpawn));
ChatCommands.Add(new Command("help", "", Help));
ChatCommands.Add(new Command("playing", "", Playing));
@@ -213,7 +214,6 @@ namespace TShockAPI
ChatCommands.Add(new Command("me", "", ThirdPerson));
ChatCommands.Add(new Command("p", "", PartyChat));
ChatCommands.Add(new Command("rules", "", Rules));
- ChatCommands.Add(new Command("antibuild", "editspawn", ToggleAntiBuild));
if (ConfigurationManager.DistributationAgent != "terraria-online")
{
ChatCommands.Add(new Command("kill", "kill", Kill));
@@ -229,7 +229,7 @@ namespace TShockAPI
public static void Rules(CommandArgs args)
{
- Tools.ShowFileToUser(args.PlayerID, "rules.txt");
+ Tools.ShowFileToUser(args.Player, "rules.txt");
}
public static void ToggleAntiBuild(CommandArgs args)
diff --git a/TShockAPI/FileTools.cs b/TShockAPI/FileTools.cs
index 0727d4fb..3a41efb0 100644
--- a/TShockAPI/FileTools.cs
+++ b/TShockAPI/FileTools.cs
@@ -35,6 +35,7 @@ namespace TShockAPI
{
File.Create(file).Close();
}
+
public static void CreateIfNot(string file, string data = "")
{
if (!File.Exists(file))
diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs
index 46676fa2..ca021787 100755
--- a/TShockAPI/TShock.cs
+++ b/TShockAPI/TShock.cs
@@ -228,6 +228,31 @@ namespace TShockAPI
}
e.Handled = true;
}
+ if (text.StartsWith("exit"))
+ {
+ for (int player = 0; player < Main.maxPlayers; player++)
+ {
+ if (Main.player[player].active)
+ {
+ Tools.ForceKick(player, "Server shutting down!");
+ }
+ }
+ }
+ if (text.StartsWith("playing"))
+ {
+ int count = 0;
+ for (int i = 0; i < Main.maxPlayers; i++)
+ {
+ if (Main.player[i].active)
+ {
+ count++;
+ Console.WriteLine(string.Format("{0} ({1}) [{2}]", Main.player[i].name,
+ Netplay.serverSock[i].tcpClient.Client.RemoteEndPoint, Players[i].Group.Name));
+ }
+ }
+ Console.WriteLine(string.Format("{0} players connected.", count));
+ e.Handled = true;
+ }
}
public override void DeInitialize()
@@ -608,9 +633,10 @@ namespace TShockAPI
if (Main.netMode != 2)
return;
- Log.Info(string.Format("{0} ({1}) from '{2}' group joined.", Players[who].Name, Tools.GetPlayerIP(who), Players[who].Group.Name));
+ TSPlayer player = Players[who];
+ Log.Info(string.Format("{0} ({1}) from '{2}' group joined.", player.Name, Tools.GetPlayerIP(who), player.Group.Name));
- Tools.ShowMOTD(who);
+ Tools.ShowFileToUser(player, "motd.txt");
if (HackedHealth(who))
{
Tools.HandleCheater(who, "Hacked health.");
@@ -642,7 +668,7 @@ namespace TShockAPI
if (tsplr.Group.HasPermission("adminchat") && !text.StartsWith("/"))
{
- Tools.Broadcast(ConfigurationManager.AdminChatPrefix + "<" + Main.player[ply].name + "> " + text, (byte)ConfigurationManager.AdminChatRGB[0], (byte)ConfigurationManager.AdminChatRGB[1], (byte)ConfigurationManager.AdminChatRGB[2]);
+ Tools.Broadcast(ConfigurationManager.AdminChatPrefix + "<" + tsplr.Name + "> " + text, (byte)ConfigurationManager.AdminChatRGB[0], (byte)ConfigurationManager.AdminChatRGB[1], (byte)ConfigurationManager.AdminChatRGB[2]);
e.Handled = true;
return;
}
diff --git a/TShockAPI/Tools.cs b/TShockAPI/Tools.cs
index 81039087..461d8560 100755
--- a/TShockAPI/Tools.cs
+++ b/TShockAPI/Tools.cs
@@ -291,18 +291,14 @@ namespace TShockAPI
}
return false;
}
- [Obsolete("Use ShowFileToUser(int ply, string file) instead.")]
- public static void ShowMOTD(int ply)
- {
- ShowFileToUser(ply, "motd.txt");
- }
+
///
/// Shows a file to the user.
///
/// int player
/// string filename reletave to savedir
//Todo: Fix this
- public static void ShowFileToUser(int ply, string file)
+ public static void ShowFileToUser(TSPlayer player, string file)
{
string foo = "";
TextReader tr = new StreamReader(Path.Combine(TShock.SavePath, file));
@@ -321,7 +317,7 @@ namespace TShockAPI
{
try
{
- TShock.Players[ply].SendMessage(foo, (byte)Convert.ToInt32(pCc[0]), (byte)Convert.ToInt32(pCc[1]), (byte)Convert.ToInt32(pCc[2]));
+ player.SendMessage(foo, (byte)Convert.ToInt32(pCc[0]), (byte)Convert.ToInt32(pCc[1]), (byte)Convert.ToInt32(pCc[2]));
continue;
}
catch (Exception e)
@@ -330,7 +326,7 @@ namespace TShockAPI
}
}
}
- TShock.Players[ply].SendMessage(foo);
+ player.SendMessage(foo);
}
tr.Close();
}