Added /auth <token>

This commit is contained in:
Shank 2011-06-05 15:00:11 -06:00
parent 32947a1a1e
commit 3422ade35f
3 changed files with 28 additions and 7 deletions

View file

@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Terraria; using Terraria;
@ -100,10 +101,11 @@ namespace TShockAPI
commands.Add(new Command("protectspawn", "editspawn", new CommandDelegate(ProtectSpawn))); commands.Add(new Command("protectspawn", "editspawn", new CommandDelegate(ProtectSpawn)));
commands.Add(new Command("debug-config", "cfg", new CommandDelegate(DebugConfiguration))); commands.Add(new Command("debug-config", "cfg", new CommandDelegate(DebugConfiguration)));
commands.Add(new Command("playing", "", new CommandDelegate(Playing))); commands.Add(new Command("playing", "", new CommandDelegate(Playing)));
commands.Add(new Command("auth", "", new CommandDelegate(AuthToken)));
//TShock.admincommandList.Add("debug-config", new CommandDelegate(DebugConfiguration)); //TShock.admincommandList.Add("debug-config", new CommandDelegate(DebugConfiguration));
//TShock.admincommandList.Add("playing", new CommandDelegate(Playing)); //TShock.admincommandList.Add("playing", new CommandDelegate(Playing));
//TShock.commandList.Add("help", new CommandDelegate(Help)); //TShock.commandList.Add("help", new CommandDelegate(Help));
//TShock.commandList.Add("playing", new CommandDelegate(Playing)); //TShock.commandList.Add("playing", new CommandDelegate(Playing)););
if (ConfigurationManager.distributationAgent != "terraria-online") if (ConfigurationManager.distributationAgent != "terraria-online")
{ {
commands.Add(new Command("kill", "kill", new CommandDelegate(Kill))); commands.Add(new Command("kill", "kill", new CommandDelegate(Kill)));
@ -314,6 +316,20 @@ namespace TShockAPI
Tools.SendMessage(ply, "Teleported to your spawnpoint."); Tools.SendMessage(ply, "Teleported to your spawnpoint.");
} }
public static void AuthToken(CommandArgs args)
{
if (ConfigurationManager.authToken == 0)
return;
int givenCode = Convert.ToInt32(args.Message.Remove(0, 5));
if (givenCode == ConfigurationManager.authToken)
{
TextWriter tw = new StreamWriter(FileTools.SaveDir + "users.txt", true);
tw.WriteLine(Tools.GetRealIP(Convert.ToString(Netplay.serverSock[args.PlayerID].tcpClient.Client.RemoteEndPoint)) + " superadmin");
Tools.SendMessage(args.PlayerID, "SuperAdmin authenticated. Please re-connect using the same IP.");
ConfigurationManager.authToken = 0;
}
}
public static void TP(CommandArgs args) public static void TP(CommandArgs args)
{ {
int ply = args.PlayerID; int ply = args.PlayerID;

View file

@ -32,6 +32,7 @@ namespace TShockAPI
public static bool spawnProtect = true; public static bool spawnProtect = true;
public static int spawnProtectRadius = 5; public static int spawnProtectRadius = 5;
public static string distributationAgent = "facepunch"; public static string distributationAgent = "facepunch";
public static int authToken = 0;
public enum NPCList : int public enum NPCList : int
{ {
@ -79,10 +80,7 @@ namespace TShockAPI
return; return;
} }
else else
{
FileTools.CreateFile(FileTools.SaveDir + "config.json"); FileTools.CreateFile(FileTools.SaveDir + "config.json");
}
ConfigFile cfg = new ConfigFile(); ConfigFile cfg = new ConfigFile();
cfg.InvasionMultiplier = 50; cfg.InvasionMultiplier = 50;
cfg.DefaultMaximumSpawns = 4; cfg.DefaultMaximumSpawns = 4;

View file

@ -15,9 +15,9 @@ namespace TShockAPI
public static string saveDir = "./tshock/"; public static string saveDir = "./tshock/";
public static Version VersionNum = new Version(1, 7, 0, 0); public static Version VersionNum = new Version(1, 8, 0, 0);
public static string VersionCodename = "Facepunch"; public static string VersionCodename = "Fuck the wiki!";
public static bool shownVersion = false; public static bool shownVersion = false;
@ -111,6 +111,14 @@ namespace TShockAPI
Console.WriteLine(ex.ToString()); Console.WriteLine(ex.ToString());
} }
Console.WriteLine("TShock Version " + Version.Major + "." + Version.Minor + "." + Version.Build + "." + Version.Revision + " (" + VersionCodename + ") now running."); Console.WriteLine("TShock Version " + Version.Major + "." + Version.Minor + "." + Version.Build + "." + Version.Revision + " (" + VersionCodename + ") now running.");
if (!System.IO.File.Exists(FileTools.SaveDir + "auth.lck"))
{
Random r = new Random((int)System.DateTime.Now.ToBinary());
ConfigurationManager.authToken = r.Next(100000, 10000000);
Console.WriteLine("TShock Notice: To become SuperAdmin, join the game and type /auth " + ConfigurationManager.authToken);
Console.WriteLine("This token will only display ONCE.");
FileTools.CreateFile(FileTools.SaveDir + "auth.lck");
}
Log.Initialize(FileTools.SaveDir + "log.txt", LogLevel.All, true); Log.Initialize(FileTools.SaveDir + "log.txt", LogLevel.All, true);
Log.Info("Starting..."); Log.Info("Starting...");
GameHooks.OnPreInitialize += OnPreInit; GameHooks.OnPreInitialize += OnPreInit;
@ -484,7 +492,6 @@ namespace TShockAPI
void OnPreInit() void OnPreInit()
{ {
FileTools.SetupConfig();
} }
void OnPostInit() void OnPostInit()