Files
PolyphiaGame/Scripts/Singleton/MistoxNet.cs
T

59 lines
2.4 KiB
C#

using Godot;
using Newtonsoft.Json;
using System.Net.Http;
using System.Net.Http.Json;
using System.Threading.Tasks;
public partial class MistoxNet : Node{
Options _Options;
Reference _Reference;
public override void _Ready() {
_Options = GetNode<Options>( "/root/Options" );
_Reference = GetNode<Reference>("/root/Reference");
_Reference.MistoxNet = this;
}
public async Task<(bool, Account)> TrySession( string UserName, string Password ) {
using( System.Net.Http.HttpClient client = new System.Net.Http.HttpClient() ) {
HttpResponseMessage response = await client.PostAsJsonAsync( "https://mistox.com/api/account/session", new Account { UserName = UserName, PasswordHash = Password } );
string result = await response.Content.ReadAsStringAsync();
Account User = JsonConvert.DeserializeObject<Account>(result);
if( User != null && string.IsNullOrEmpty( User.Error ) ) {
return (true, User);
}
return (false, User);
}
}
public async Task<(bool, Account)> TryLogin( string UserName, string Password ) {
using( System.Net.Http.HttpClient client = new System.Net.Http.HttpClient() ) {
HttpResponseMessage response = await client.PostAsJsonAsync( "https://mistox.com/api/account/login", new Account { UserName = UserName, PasswordHash = Password } );
string result = await response.Content.ReadAsStringAsync();
Account User = JsonConvert.DeserializeObject<Account>(result);
if( User != null && string.IsNullOrEmpty( User.Error ) ) {
return (true, User);
}
return (false, User);
}
}
}
public class Account {
public int ID { get; set; } // PK
public string UserName { get; set; } = "";
public string Email { get; set; } = "";
public bool EmailVerified { get; set; } = false;
public string PasswordHash { get; set; } = "";
public string Error { get; set; } = "";
}
public class ProjectMistData {
public int AccountID { get; set; } // PK
public int Credits { get; set; }
public int OddballTimer { get; set; }
public string SessionToken { get; set; } = "";
public int SessionID { get; set; }
public int Kills { get; set; }
public int Deaths { get; set; }
}