private void OnInitialize(EventArgs args) { string path = Path.Combine(TShock.SavePath, "AccountRecovery.json"); Config = Config.Read(path); if (!File.Exists(path)) { Config.Write(path); } if (TShock.DB.GetSqlType() == SqlType.Sqlite) TShock.DB.Query("CREATE TABLE IF NOT EXISTS Emails (ID INTEGER PRIMARY KEY AUTOINCREMENT REFERENCES Users(ID) ON UPDATE CASCADE ON DELETE CASCADE, Email TEXT)"); else TShock.DB.Query("CREATE TABLE IF NOT EXISTS Emails (ID INTEGER PRIMARY KEY AUTO_INCREMENT REFERENCES Users(ID) ON UPDATE CASCADE ON DELETE CASCADE, Email TEXT)"); /*SqlTableCreator sqlcreator = new SqlTableCreator(TShock.DB, TShock.DB.GetSqlType() == SqlType.Sqlite ? (IQueryBuilder)new SqliteQueryCreator() : new MysqlQueryCreator()); sqlcreator.EnsureTableStructure(new SqlTable("Emails", new SqlColumn("ID", MySqlDbType.Int32) { Primary = true }, new SqlColumn("Email", MySqlDbType.Text) ));*/ #region Commands Action <Command> Add = c => { TShockAPI.Commands.ChatCommands.RemoveAll(c2 => c2.Names.Select(s => s.ToLowerInvariant()).Intersect(c.Names.Select(s => s.ToLowerInvariant())).Any()); TShockAPI.Commands.ChatCommands.Add(c); }; Add(new Command(Permissions.addemail, Commands.EmailUser, "email") { AllowServer = true, HelpText = "Allows a user to change his email or add an email." }); Add(new Command(Permissions.recoveraccount, Commands.RecoverPassword, "recover") { AllowServer = true, HelpText = "Allows a user to request a new password." }); #endregion }
public void OnReload(ReloadEventArgs args) { string path = Path.Combine(TShock.SavePath, "AccountRecovery.json"); Config = Config.Read(path); if (!File.Exists(path)) { Config.Write(path); } args.Player.SendSuccessMessage("[Account Recovery] Reloaded configuration file and data!"); }