mirror of
https://github.com/EggLinks/DanhengServer-OpenSource.git
synced 2026-01-03 04:36:03 +08:00
Feature:Asynchronous Operation & Formatting Code
- Now the async operation is enabled! - Code formatted by Resharper plugin <3
This commit is contained in:
@@ -3,38 +3,38 @@ using EggLink.DanhengServer.WebServer.Objects;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
public class ComboTokenGranterHandler
|
||||
{
|
||||
public class ComboTokenGranterHandler
|
||||
public JsonResult Handle(int app_id, int channel_id, string data, string device, string sign)
|
||||
{
|
||||
public JsonResult Handle(int app_id, int channel_id, string data, string device, string sign)
|
||||
var tokenData = JsonConvert.DeserializeObject<LoginTokenData>(data);
|
||||
var res = new ComboTokenResJson();
|
||||
if (tokenData == null)
|
||||
{
|
||||
var tokenData = JsonConvert.DeserializeObject<LoginTokenData>(data);
|
||||
ComboTokenResJson res = new ComboTokenResJson();
|
||||
if (tokenData == null)
|
||||
{
|
||||
res.retcode = -202;
|
||||
res.message = "Invalid login data";
|
||||
return new JsonResult(res);
|
||||
}
|
||||
AccountData? account = AccountData.GetAccountByUid(int.Parse(tokenData.uid!));
|
||||
if (account == null)
|
||||
{
|
||||
res.retcode = -201;
|
||||
res.message = "Game account cache information error";
|
||||
return new JsonResult(res);
|
||||
} else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new ComboTokenResJson.LoginData(account.Uid.ToString(), account.GenerateComboToken());
|
||||
}
|
||||
res.retcode = -202;
|
||||
res.message = "Invalid login data";
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
public class LoginTokenData
|
||||
{
|
||||
public string? uid { get; set; }
|
||||
public string? token { get; set; }
|
||||
public bool guest { get; set; }
|
||||
|
||||
var account = AccountData.GetAccountByUid(int.Parse(tokenData.uid!));
|
||||
if (account == null)
|
||||
{
|
||||
res.retcode = -201;
|
||||
res.message = "Game account cache information error";
|
||||
return new JsonResult(res);
|
||||
}
|
||||
|
||||
res.message = "OK";
|
||||
res.data = new ComboTokenResJson.LoginData(account.Uid.ToString(), account.GenerateComboToken());
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
|
||||
public class LoginTokenData
|
||||
{
|
||||
public string? uid { get; set; }
|
||||
public string? token { get; set; }
|
||||
public bool guest { get; set; }
|
||||
}
|
||||
@@ -1,45 +1,45 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
using static EggLink.DanhengServer.WebServer.Handler.FingerprintResJson;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
public class FingerprintHandler
|
||||
{
|
||||
public class FingerprintHandler
|
||||
public JsonResult GetFp(string device_fp)
|
||||
{
|
||||
public JsonResult GetFp(string device_fp)
|
||||
FingerprintResJson res = new();
|
||||
if (device_fp == null)
|
||||
{
|
||||
FingerprintResJson res = new();
|
||||
if (device_fp == null)
|
||||
{
|
||||
res.retcode = -202;
|
||||
res.message = "Error";
|
||||
} else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new FingerprintDataJson(device_fp);
|
||||
}
|
||||
return new JsonResult(res);
|
||||
res.retcode = -202;
|
||||
res.message = "Error";
|
||||
}
|
||||
}
|
||||
|
||||
public class FingerprintResJson
|
||||
{
|
||||
public string? message { get; set; }
|
||||
public int retcode { get; set; }
|
||||
public FingerprintDataJson? data { get; set; }
|
||||
|
||||
public class FingerprintDataJson
|
||||
else
|
||||
{
|
||||
public string device_fp { get; set; }
|
||||
public string message { get; set; }
|
||||
public int code { get; set; }
|
||||
|
||||
public FingerprintDataJson(string fp)
|
||||
{
|
||||
code = 200;
|
||||
message = "OK";
|
||||
device_fp = fp;
|
||||
}
|
||||
res.message = "OK";
|
||||
res.data = new FingerprintDataJson(device_fp);
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
|
||||
public class FingerprintResJson
|
||||
{
|
||||
public string? message { get; set; }
|
||||
public int retcode { get; set; }
|
||||
public FingerprintDataJson? data { get; set; }
|
||||
|
||||
public class FingerprintDataJson
|
||||
{
|
||||
public FingerprintDataJson(string fp)
|
||||
{
|
||||
code = 200;
|
||||
message = "OK";
|
||||
device_fp = fp;
|
||||
}
|
||||
|
||||
public string device_fp { get; set; }
|
||||
public string message { get; set; }
|
||||
public int code { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,38 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using EggLink.DanhengServer.Database.Account;
|
||||
using EggLink.DanhengServer.Database.Account;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using static EggLink.DanhengServer.WebServer.Objects.NewLoginResJson;
|
||||
using EggLink.DanhengServer.WebServer.Objects;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using static EggLink.DanhengServer.WebServer.Objects.NewLoginResJson;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
public class NewUsernameLoginHandler
|
||||
{
|
||||
public class NewUsernameLoginHandler
|
||||
public JsonResult Handle(string account, string password)
|
||||
{
|
||||
public JsonResult Handle(string account, string password)
|
||||
NewLoginResJson res = new();
|
||||
var accountData = AccountData.GetAccountByUserName(account);
|
||||
|
||||
if (accountData == null)
|
||||
{
|
||||
NewLoginResJson res = new();
|
||||
AccountData? accountData = AccountData.GetAccountByUserName(account);
|
||||
|
||||
if (accountData == null)
|
||||
if (ConfigManager.Config.ServerOption.AutoCreateUser)
|
||||
{
|
||||
if (ConfigManager.Config.ServerOption.AutoCreateUser)
|
||||
{
|
||||
AccountHelper.CreateAccount(account, 0);
|
||||
accountData = AccountData.GetAccountByUserName(account);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new JsonResult(new NewLoginResJson { message = "Account not found", retcode = -201 });
|
||||
}
|
||||
AccountHelper.CreateAccount(account, 0);
|
||||
accountData = AccountData.GetAccountByUserName(account);
|
||||
}
|
||||
if (accountData != null)
|
||||
else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(accountData.Uid.ToString(), accountData.Username + "@egglink.me", accountData.GenerateDispatchToken());
|
||||
return new JsonResult(new NewLoginResJson { message = "Account not found", retcode = -201 });
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
|
||||
if (accountData != null)
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(accountData.Uid.ToString(), accountData.Username + "@egglink.me",
|
||||
accountData.GenerateDispatchToken());
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,55 +2,52 @@
|
||||
using EggLink.DanhengServer.Util;
|
||||
using Google.Protobuf;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
internal class QueryGatewayHandler
|
||||
{
|
||||
internal class QueryGatewayHandler
|
||||
public static Logger Logger = new("GatewayServer");
|
||||
public string Data;
|
||||
|
||||
public QueryGatewayHandler()
|
||||
{
|
||||
public static Logger Logger = new("GatewayServer");
|
||||
public string Data;
|
||||
public QueryGatewayHandler()
|
||||
var config = ConfigManager.Config;
|
||||
var urlData = config.DownloadUrl;
|
||||
|
||||
// build gateway proto
|
||||
var gateServer = new GateServer
|
||||
{
|
||||
var config = ConfigManager.Config;
|
||||
var urlData = config.DownloadUrl;
|
||||
RegionName = config.GameServer.GameServerId,
|
||||
Ip = config.GameServer.PublicAddress,
|
||||
Port = config.GameServer.PublicPort,
|
||||
Msg = "Access verification failed. Please check if you have logged in to the correct account and server.",
|
||||
B1 = true,
|
||||
B2 = true,
|
||||
B3 = true,
|
||||
B4 = true,
|
||||
B5 = true
|
||||
};
|
||||
|
||||
// build gateway proto
|
||||
var gateServer = new GateServer()
|
||||
{
|
||||
RegionName = config.GameServer.GameServerId,
|
||||
Ip = config.GameServer.PublicAddress,
|
||||
Port = config.GameServer.PublicPort,
|
||||
Msg = "Access verification failed. Please check if you have logged in to the correct account and server.",
|
||||
B1 = true,
|
||||
B2 = true,
|
||||
B3 = true,
|
||||
B4 = true,
|
||||
B5 = true,
|
||||
};
|
||||
if (urlData.AssetBundleUrl != null && urlData.AssetBundleUrl.Length > 0)
|
||||
gateServer.AssetBundleUrl = urlData.AssetBundleUrl;
|
||||
|
||||
if (urlData.AssetBundleUrl != null && urlData.AssetBundleUrl.Length > 0)
|
||||
{
|
||||
gateServer.AssetBundleUrl = urlData.AssetBundleUrl;
|
||||
}
|
||||
if (urlData.ExResourceUrl != null && urlData.ExResourceUrl.Length > 0)
|
||||
gateServer.ExResourceUrl = urlData.ExResourceUrl;
|
||||
|
||||
if (urlData.ExResourceUrl != null && urlData.ExResourceUrl.Length > 0)
|
||||
{
|
||||
gateServer.ExResourceUrl = urlData.ExResourceUrl;
|
||||
}
|
||||
|
||||
if (urlData.LuaUrl != null && urlData.LuaUrl.Length > 0)
|
||||
{
|
||||
gateServer.LuaUrl = urlData.LuaUrl;
|
||||
gateServer.MdkResVersion = urlData.LuaUrl.Split('/')[^1].Split('_')[1];
|
||||
}
|
||||
|
||||
if (urlData.IfixUrl != null && urlData.IfixUrl.Length > 0)
|
||||
{
|
||||
gateServer.IfixUrl = urlData.IfixUrl;
|
||||
gateServer.IfixVersion = urlData.IfixUrl.Split('/')[^1].Split('_')[1];
|
||||
}
|
||||
Logger.Info("Client request: query_gateway");
|
||||
|
||||
Data = Convert.ToBase64String(gateServer.ToByteArray());
|
||||
if (urlData.LuaUrl != null && urlData.LuaUrl.Length > 0)
|
||||
{
|
||||
gateServer.LuaUrl = urlData.LuaUrl;
|
||||
gateServer.MdkResVersion = urlData.LuaUrl.Split('/')[^1].Split('_')[1];
|
||||
}
|
||||
|
||||
if (urlData.IfixUrl != null && urlData.IfixUrl.Length > 0)
|
||||
{
|
||||
gateServer.IfixUrl = urlData.IfixUrl;
|
||||
gateServer.IfixVersion = urlData.IfixUrl.Split('/')[^1].Split('_')[1];
|
||||
}
|
||||
|
||||
Logger.Info("Client request: query_gateway");
|
||||
|
||||
Data = Convert.ToBase64String(gateServer.ToByteArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,25 +3,25 @@ using EggLink.DanhengServer.WebServer.Objects;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using static EggLink.DanhengServer.WebServer.Objects.LoginResJson;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
public class TokenLoginHandler
|
||||
{
|
||||
public class TokenLoginHandler
|
||||
public JsonResult Handle(string uid, string token)
|
||||
{
|
||||
public JsonResult Handle(string uid, string token)
|
||||
var account = AccountData.GetAccountByUid(int.Parse(uid));
|
||||
var res = new LoginResJson();
|
||||
if (account == null || !account?.DispatchToken?.Equals(token) == true)
|
||||
{
|
||||
AccountData? account = AccountData.GetAccountByUid(int.Parse(uid));
|
||||
var res = new LoginResJson();
|
||||
if (account == null || !account?.DispatchToken?.Equals(token) == true)
|
||||
{
|
||||
res.retcode = -201;
|
||||
res.message = "Game account cache information error";
|
||||
}
|
||||
else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(account!.Uid.ToString(), account.Username + "@egglink.me", token);
|
||||
}
|
||||
return new JsonResult(res);
|
||||
res.retcode = -201;
|
||||
res.message = "Game account cache information error";
|
||||
}
|
||||
else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(account!.Uid.ToString(), account.Username + "@egglink.me", token);
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,37 +1,38 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using EggLink.DanhengServer.Database.Account;
|
||||
using EggLink.DanhengServer.Database.Account;
|
||||
using EggLink.DanhengServer.Util;
|
||||
using static EggLink.DanhengServer.WebServer.Objects.LoginResJson;
|
||||
using EggLink.DanhengServer.WebServer.Objects;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using static EggLink.DanhengServer.WebServer.Objects.LoginResJson;
|
||||
|
||||
namespace EggLink.DanhengServer.WebServer.Handler
|
||||
namespace EggLink.DanhengServer.WebServer.Handler;
|
||||
|
||||
public class UsernameLoginHandler
|
||||
{
|
||||
public class UsernameLoginHandler
|
||||
public JsonResult Handle(string account, string password, bool isCrypto)
|
||||
{
|
||||
public JsonResult Handle(string account, string password, bool isCrypto)
|
||||
LoginResJson res = new();
|
||||
var accountData = AccountData.GetAccountByUserName(account);
|
||||
|
||||
if (accountData == null)
|
||||
{
|
||||
LoginResJson res = new();
|
||||
AccountData? accountData = AccountData.GetAccountByUserName(account);
|
||||
|
||||
if (accountData == null)
|
||||
if (ConfigManager.Config.ServerOption.AutoCreateUser)
|
||||
{
|
||||
if (ConfigManager.Config.ServerOption.AutoCreateUser)
|
||||
{
|
||||
AccountHelper.CreateAccount(account, 0);
|
||||
accountData = AccountData.GetAccountByUserName(account);
|
||||
}
|
||||
else
|
||||
{
|
||||
return new JsonResult(new LoginResJson { message = "Account not found", retcode = -201 });
|
||||
}
|
||||
AccountHelper.CreateAccount(account, 0);
|
||||
accountData = AccountData.GetAccountByUserName(account);
|
||||
}
|
||||
if (accountData != null)
|
||||
else
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(accountData.Uid.ToString(), accountData.Username + "@egglink.me", accountData.GenerateDispatchToken());
|
||||
return new JsonResult(new LoginResJson { message = "Account not found", retcode = -201 });
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
|
||||
if (accountData != null)
|
||||
{
|
||||
res.message = "OK";
|
||||
res.data = new VerifyData(accountData.Uid.ToString(), accountData.Username + "@egglink.me",
|
||||
accountData.GenerateDispatchToken());
|
||||
}
|
||||
|
||||
return new JsonResult(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user