Merge branch 'general-devel' of https://github.com/NyxStudios/TShock into general-devel
This commit is contained in:
commit
0ae32f80d3
4 changed files with 90 additions and 60 deletions
|
|
@ -910,29 +910,37 @@ namespace TShockAPI
|
||||||
{
|
{
|
||||||
var user = new User();
|
var user = new User();
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count == 4)
|
if (args.Parameters.Count == 4)
|
||||||
{
|
{
|
||||||
user.Name = args.Parameters[1];
|
user.Name = args.Parameters[1];
|
||||||
user.Password = args.Parameters[2];
|
user.Password = args.Parameters[2];
|
||||||
user.Group = args.Parameters[3];
|
user.Group = args.Parameters[3];
|
||||||
|
|
||||||
args.Player.SendSuccessMessage("Account " + user.Name + " has been added to group " + user.Group + "!");
|
try
|
||||||
|
{
|
||||||
TShock.Users.AddUser(user);
|
TShock.Users.AddUser(user);
|
||||||
TShock.CharacterDB.SeedInitialData(TShock.Users.GetUser(user));
|
TShock.CharacterDB.SeedInitialData(TShock.Users.GetUser(user));
|
||||||
|
args.Player.SendSuccessMessage("Account " + user.Name + " has been added to group " + user.Group + "!");
|
||||||
Log.ConsoleInfo(args.Player.Name + " added Account " + user.Name + " to group " + user.Group);
|
Log.ConsoleInfo(args.Player.Name + " added Account " + user.Name + " to group " + user.Group);
|
||||||
}
|
}
|
||||||
|
catch (GroupNotExistsException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Group " + user.Group + " does not exist!");
|
||||||
|
}
|
||||||
|
catch (UserExistsException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("User " + user.Name + " already exists!");
|
||||||
|
}
|
||||||
|
catch (UserManagerException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("User " + user.Name + " could not be added, check console for details.");
|
||||||
|
Log.ConsoleError(e.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid syntax. Try /user help.");
|
args.Player.SendErrorMessage("Invalid syntax. Try /user help.");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (UserManagerException ex)
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage(ex.Message);
|
|
||||||
Log.ConsoleError(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// User deletion requires a username
|
// User deletion requires a username
|
||||||
else if (subcmd == "del" && args.Parameters.Count == 2)
|
else if (subcmd == "del" && args.Parameters.Count == 2)
|
||||||
|
|
@ -946,36 +954,45 @@ namespace TShockAPI
|
||||||
args.Player.SendSuccessMessage("Account removed successfully.");
|
args.Player.SendSuccessMessage("Account removed successfully.");
|
||||||
Log.ConsoleInfo(args.Player.Name + " successfully deleted account: " + args.Parameters[1] + ".");
|
Log.ConsoleInfo(args.Player.Name + " successfully deleted account: " + args.Parameters[1] + ".");
|
||||||
}
|
}
|
||||||
|
catch (UserNotExistException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("The user " + user.Name + " does not exist! Deleted nobody!");
|
||||||
|
}
|
||||||
catch (UserManagerException ex)
|
catch (UserManagerException ex)
|
||||||
{
|
{
|
||||||
args.Player.SendMessage(ex.Message, Color.Red);
|
args.Player.SendMessage(ex.Message, Color.Red);
|
||||||
Log.ConsoleError(ex.ToString());
|
Log.ConsoleError(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Password changing requires a username, and a new password to set
|
// Password changing requires a username, and a new password to set
|
||||||
else if (subcmd == "password")
|
else if (subcmd == "password")
|
||||||
{
|
{
|
||||||
var user = new User();
|
var user = new User();
|
||||||
user.Name = args.Parameters[1];
|
user.Name = args.Parameters[1];
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count == 3)
|
if (args.Parameters.Count == 3)
|
||||||
{
|
{
|
||||||
args.Player.SendSuccessMessage("Password change succeeded for " + user.Name + ".");
|
try
|
||||||
|
{
|
||||||
TShock.Users.SetUserPassword(user, args.Parameters[2]);
|
TShock.Users.SetUserPassword(user, args.Parameters[2]);
|
||||||
Log.ConsoleInfo(args.Player.Name + " changed the password of account " + user.Name);
|
Log.ConsoleInfo(args.Player.Name + " changed the password of account " + user.Name);
|
||||||
|
args.Player.SendSuccessMessage("Password change succeeded for " + user.Name + ".");
|
||||||
|
}
|
||||||
|
catch (UserNotExistException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("User " + user.Name + " does not exist!");
|
||||||
|
}
|
||||||
|
catch (UserManagerException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("Password change for " + user.Name + " failed! Check console!");
|
||||||
|
Log.ConsoleError(e.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid user password syntax. Try /user help.");
|
args.Player.SendErrorMessage("Invalid user password syntax. Try /user help.");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (UserManagerException ex)
|
|
||||||
{
|
|
||||||
args.Player.SendErrorMessage(ex.Message);
|
|
||||||
Log.ConsoleError(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Group changing requires a username or IP address, and a new group to set
|
// Group changing requires a username or IP address, and a new group to set
|
||||||
else if (subcmd == "group")
|
else if (subcmd == "group")
|
||||||
|
|
@ -983,25 +1000,33 @@ namespace TShockAPI
|
||||||
var user = new User();
|
var user = new User();
|
||||||
user.Name = args.Parameters[1];
|
user.Name = args.Parameters[1];
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (args.Parameters.Count == 3)
|
if (args.Parameters.Count == 3)
|
||||||
{
|
{
|
||||||
args.Player.SendSuccessMessage("Account " + user.Name + " has been changed to group " + args.Parameters[2] + "!");
|
try
|
||||||
|
{
|
||||||
TShock.Users.SetUserGroup(user, args.Parameters[2]);
|
TShock.Users.SetUserGroup(user, args.Parameters[2]);
|
||||||
Log.ConsoleInfo(args.Player.Name + " changed account " + user.Name + " to group " + args.Parameters[2] + ".");
|
Log.ConsoleInfo(args.Player.Name + " changed account " + user.Name + " to group " + args.Parameters[2] + ".");
|
||||||
|
args.Player.SendSuccessMessage("Account " + user.Name + " has been changed to group " + args.Parameters[2] + "!");
|
||||||
|
}
|
||||||
|
catch (GroupNotExistsException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("That group does not exist!");
|
||||||
|
}
|
||||||
|
catch (UserNotExistException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("User " + user.Name + " does not exist!");
|
||||||
|
}
|
||||||
|
catch (UserManagerException e)
|
||||||
|
{
|
||||||
|
args.Player.SendErrorMessage("User " + user.Name + " could not be added. Check console for details.");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args.Player.SendErrorMessage("Invalid user group syntax. Try /user help.");
|
args.Player.SendErrorMessage("Invalid user group syntax. Try /user help.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (UserManagerException ex)
|
|
||||||
{
|
|
||||||
args.Player.SendMessage(ex.Message, Color.Green);
|
|
||||||
Log.ConsoleError(ex.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (subcmd == "help")
|
else if (subcmd == "help")
|
||||||
{
|
{
|
||||||
args.Player.SendInfoMessage("Use command help:");
|
args.Player.SendInfoMessage("Use command help:");
|
||||||
|
|
|
||||||
|
|
@ -47,11 +47,8 @@ namespace TShockAPI.DB
|
||||||
db.GetSqlType() == SqlType.Sqlite
|
db.GetSqlType() == SqlType.Sqlite
|
||||||
? (IQueryBuilder) new SqliteQueryCreator()
|
? (IQueryBuilder) new SqliteQueryCreator()
|
||||||
: new MysqlQueryCreator());
|
: new MysqlQueryCreator());
|
||||||
creator.EnsureExists(table);
|
if (creator.EnsureExists(table))
|
||||||
|
{
|
||||||
// Load Permissions from the DB
|
|
||||||
LoadPermisions();
|
|
||||||
|
|
||||||
// Add default groups if they don't exist
|
// Add default groups if they don't exist
|
||||||
AddDefaultGroup("guest", "",
|
AddDefaultGroup("guest", "",
|
||||||
string.Join(",", Permissions.canbuild, Permissions.canregister, Permissions.canlogin, Permissions.canpartychat,
|
string.Join(",", Permissions.canbuild, Permissions.canregister, Permissions.canlogin, Permissions.canpartychat,
|
||||||
|
|
@ -74,6 +71,10 @@ namespace TShockAPI.DB
|
||||||
Permissions.heal, Permissions.immunetoban, Permissions.usebanneditem));
|
Permissions.heal, Permissions.immunetoban, Permissions.usebanneditem));
|
||||||
|
|
||||||
AddDefaultGroup("vip", "default", string.Join(",", Permissions.reservedslot));
|
AddDefaultGroup("vip", "default", string.Join(",", Permissions.reservedslot));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load Permissions from the DB
|
||||||
|
LoadPermisions();
|
||||||
|
|
||||||
Group.DefaultGroup = GetGroupByName(TShock.Config.DefaultGuestGroupName);
|
Group.DefaultGroup = GetGroupByName(TShock.Config.DefaultGuestGroupName);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,8 @@ namespace TShockAPI.DB
|
||||||
creator = provider;
|
creator = provider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void EnsureExists(SqlTable table)
|
// Returns true if the table was created; false if it was not.
|
||||||
|
public bool EnsureExists(SqlTable table)
|
||||||
{
|
{
|
||||||
var columns = GetColumns(table);
|
var columns = GetColumns(table);
|
||||||
if (columns.Count > 0)
|
if (columns.Count > 0)
|
||||||
|
|
@ -66,7 +67,9 @@ namespace TShockAPI.DB
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
database.Query(creator.CreateTable(table));
|
database.Query(creator.CreateTable(table));
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<string> GetColumns(SqlTable table)
|
public List<string> GetColumns(SqlTable table)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ namespace TShockAPI
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Check once every X minutes.
|
/// Check once every X minutes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int CheckXMinutes = 30;
|
private int CheckXMinutes = 30;
|
||||||
|
|
||||||
public UpdateManager()
|
public UpdateManager()
|
||||||
{
|
{
|
||||||
|
|
@ -44,11 +44,12 @@ namespace TShockAPI
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
UpdateCheck(state);
|
UpdateCheck(state);
|
||||||
|
CheckXMinutes = 30;
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
//swallow the exception
|
// Skip this run and check more frequently...
|
||||||
return;
|
CheckXMinutes = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread.Sleep(CheckXMinutes * 60 * 1000);
|
Thread.Sleep(CheckXMinutes * 60 * 1000);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue