Merge branch 'general-devel' of github.com:TShock/TShock into general-devel
Conflicts: TShockAPI/GetDataHandlers.cs
This commit is contained in:
commit
e6c6768bcd
4 changed files with 55 additions and 23 deletions
|
|
@ -338,23 +338,34 @@ namespace TShockAPI
|
|||
TShock.Utils.Kick(args.Player, "Too many invalid login attempts.");
|
||||
}
|
||||
|
||||
if (args.Parameters.Count != 2)
|
||||
{
|
||||
args.Player.SendMessage("Syntax: /login [username] [password]");
|
||||
args.Player.SendMessage("If you forgot your password, there is no way to recover it.");
|
||||
return;
|
||||
}
|
||||
var user = TShock.Users.GetUserByName(args.Player.Name);
|
||||
string encrPass = "";
|
||||
|
||||
if (args.Parameters.Count == 1)
|
||||
{
|
||||
user = TShock.Users.GetUserByName(args.Player.Name);
|
||||
encrPass = TShock.Utils.HashPassword(args.Parameters[0]);
|
||||
}
|
||||
else if (args.Parameters.Count == 2 && TShock.Config.AllowLoginAnyUsername)
|
||||
{
|
||||
user = TShock.Users.GetUserByName(args.Parameters[0]);
|
||||
encrPass = TShock.Utils.HashPassword(args.Parameters[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Syntax: /login [password]");
|
||||
args.Player.SendMessage("If you forgot your password, there is no way to recover it.");
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
string encrPass = TShock.Utils.HashPassword(args.Parameters[1]);
|
||||
var user = TShock.Users.GetUserByName(args.Parameters[0]);
|
||||
if (user == null)
|
||||
{
|
||||
args.Player.SendMessage("User by that name does not exist");
|
||||
}
|
||||
else if (user.Password.ToUpper() == encrPass.ToUpper())
|
||||
{
|
||||
args.Player.PlayerData = TShock.InventoryDB.GetPlayerData(args.Player, TShock.Users.GetUserID(args.Parameters[0]));
|
||||
args.Player.PlayerData = TShock.InventoryDB.GetPlayerData(args.Player, TShock.Users.GetUserID(user.Name));
|
||||
|
||||
if (TShock.Config.ServerSideInventory)
|
||||
{
|
||||
|
|
@ -377,7 +388,7 @@ namespace TShockAPI
|
|||
args.Player.IgnoreActionsForDisabledArmor = "none";
|
||||
|
||||
args.Player.Group = TShock.Utils.GetGroup(user.Group);
|
||||
args.Player.UserAccountName = args.Parameters[0];
|
||||
args.Player.UserAccountName = user.Name;
|
||||
args.Player.UserID = TShock.Users.GetUserID(args.Player.UserAccountName);
|
||||
args.Player.IsLoggedIn = true;
|
||||
args.Player.IgnoreActionsForInventory = "none";
|
||||
|
|
@ -385,13 +396,13 @@ namespace TShockAPI
|
|||
args.Player.PlayerData.CopyInventory(args.Player);
|
||||
TShock.InventoryDB.InsertPlayerData(args.Player);
|
||||
|
||||
args.Player.SendMessage("Authenticated as " + args.Parameters[0] + " successfully.", Color.LimeGreen);
|
||||
Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + args.Parameters[0]);
|
||||
args.Player.SendMessage("Authenticated as " + user.Name + " successfully.", Color.LimeGreen);
|
||||
Log.ConsoleInfo(args.Player.Name + " authenticated successfully as user: " + user.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Player.SendMessage("Incorrect password", Color.LimeGreen);
|
||||
Log.Warn(args.Player.IP + " failed to authenticate as user: " + args.Parameters[0]);
|
||||
Log.Warn(args.Player.IP + " failed to authenticate as user: " + user.Name);
|
||||
args.Player.LoginAttempts++;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,6 +195,9 @@ namespace TShockAPI
|
|||
|
||||
[Description("Allows users to register any username with /register")] public bool AllowRegisterAnyUsername;
|
||||
|
||||
[Description("Allows users to login with any username with /login")]
|
||||
public bool AllowLoginAnyUsername;
|
||||
|
||||
public static ConfigFile Read(string path)
|
||||
{
|
||||
if (!File.Exists(path))
|
||||
|
|
|
|||
|
|
@ -53,13 +53,13 @@ namespace TShockAPI
|
|||
#region Events
|
||||
public class TileEditEventArgs : HandledEventArgs
|
||||
{
|
||||
public float X { get; set; }
|
||||
public float Y { get; set; }
|
||||
public float Type { get; set; }
|
||||
public float EditType { get; set; }
|
||||
public int X { get; set; }
|
||||
public int Y { get; set; }
|
||||
public int Type { get; set; }
|
||||
public byte EditType { get; set; }
|
||||
}
|
||||
public static HandlerList<TileEditEventArgs> TileEdit;
|
||||
public static bool OnTileEdit(float x, float y, float type, float editType)
|
||||
public static bool OnTileEdit(int x, int y, int type, byte editType)
|
||||
{
|
||||
if (TileEdit == null)
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -25,13 +25,13 @@ namespace TShockAPI
|
|||
Rest.Register(new RestCommand("/users/read/{user}/info", UserInfo) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/users/destroy/{user}", UserDestroy) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/users/update/{user}", UserUpdate) {RequiresToken = true});
|
||||
|
||||
Rest.Register(new RestCommand("/users/activelist", UserList) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/bans/create", BanCreate) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/bans/read/{user}/info", BanInfo) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/bans/destroy/{user}", BanDestroy) {RequiresToken = true});
|
||||
|
||||
|
||||
Rest.Register(new RestCommand("/lists/players", UserList) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/lists/players", PlayerList) {RequiresToken = true});
|
||||
|
||||
Rest.Register(new RestCommand("/world/read", WorldRead) {RequiresToken = true});
|
||||
Rest.Register(new RestCommand("/world/meteor", WorldMeteor) {RequiresToken = true});
|
||||
|
|
@ -74,10 +74,19 @@ namespace TShockAPI
|
|||
|
||||
private object UserList(RestVerbs verbs, IParameterCollection parameters)
|
||||
{
|
||||
var activeplayers = Main.player.Where(p => p != null && p.active).ToList();
|
||||
string currentPlayers = string.Join(", ", activeplayers.Select(p => p.name));
|
||||
var ret = new RestObject("200");
|
||||
ret["players"] = currentPlayers;
|
||||
string playerlist = "";
|
||||
foreach (var TSPlayer in TShock.Players)
|
||||
{
|
||||
if (playerlist == "")
|
||||
{
|
||||
playerlist += TSPlayer.UserAccountName;
|
||||
} else
|
||||
{
|
||||
playerlist += ", " + TSPlayer.UserAccountName;
|
||||
}
|
||||
}
|
||||
ret["activeuesrs"] = playerlist;
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -329,6 +338,15 @@ namespace TShockAPI
|
|||
|
||||
#region RestPlayerMethods
|
||||
|
||||
private object PlayerList(RestVerbs verbs, IParameterCollection parameters)
|
||||
{
|
||||
var activeplayers = Main.player.Where(p => p != null && p.active).ToList();
|
||||
string currentPlayers = string.Join(", ", activeplayers.Select(p => p.name));
|
||||
var ret = new RestObject("200");
|
||||
ret["players"] = currentPlayers;
|
||||
return ret;
|
||||
}
|
||||
|
||||
private object PlayerRead(RestVerbs verbs, IParameterCollection parameters)
|
||||
{
|
||||
var returnBlock = new Dictionary<string, object>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue