Skip to content

Commit

Permalink
优化配置文件
Browse files Browse the repository at this point in the history
  • Loading branch information
Qianyiovo committed Mar 14, 2023
1 parent cba6829 commit fd69bc3
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 13 deletions.
7 changes: 7 additions & 0 deletions PrismBotTShockAdapter/Models/Config.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace PrismBotTShockAdapter.Models;

public class Config
{
public string Host = "127.0.0.1";
public int Port = 8081;
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
namespace PrismBotTShockAdapter.Models;

public class ElegantWhitelistConfig
public class ElegantWhitelist
{
public string AccountFrozenMessage = "你的账号已被冻结,请联系服务器管理员";
public string ConnectionErrorMessage = "无法连接到白名单服务器,请联系服务器管理员";
public string Host = "127.0.0.1";
public string NotInWhitelistMessage = "你还没有添加白名单,请在群内发送“添加白名单 <角色昵称>”来添加白名单";
public int Port = 8081;
}
36 changes: 26 additions & 10 deletions PrismBotTShockAdapter/PrismBotTShockAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,32 @@ public PrismBotTShockAdapter(Main game) : base(game)

public override string Name => "PrismBotTShockAdapter";

public override Version Version => new("1.0.2");
public override Version Version => new("1.0.3");

public override void Initialize()
{
if (!File.Exists(Path.Combine(Environment.CurrentDirectory, "tshock", "ElegantWhitelistTShockAdapter.json")))
var prismBotDirectory = Path.Combine(AppContext.BaseDirectory, "tshock", "PrismBot");
if (!Directory.Exists(prismBotDirectory))
{
Directory.CreateDirectory(prismBotDirectory);
}

var configPath = Path.Combine(AppContext.BaseDirectory, "tshock", "PrismBot", "config.json");
if (!File.Exists(configPath))
{
File.WriteAllText(
configPath,
JsonConvert.SerializeObject(new Config()));
TShock.Log.ConsoleWarn("未找到配置文件(tshock/PrismBot/config.json),已自动生成");
}

var elegantWhitelistPath = Path.Combine(AppContext.BaseDirectory, "tshock", "PrismBot", "elegantWhitelist.json");
if (!File.Exists(elegantWhitelistPath))
{
File.WriteAllText(
Path.Combine(Environment.CurrentDirectory, "tshock", "ElegantWhitelistTShockAdapter.json"),
JsonConvert.SerializeObject(new ElegantWhitelistConfig()));
TShock.Log.ConsoleWarn("未找到配置文件(ElegantWhitelistTShockAdapter.json),已自动生成");
elegantWhitelistPath,
JsonConvert.SerializeObject(new ElegantWhitelist()));
TShock.Log.ConsoleWarn("未找到配置文件(tshock/PrismBot/elegantWhitelist.json),已自动生成");
}

ServerApi.Hooks.ServerJoin.Register(this, OnJoin);
Expand All @@ -38,8 +54,8 @@ private async void OnJoin(JoinEventArgs args)
{
var player = TShock.Players[args.Who];
using var httpClient = new HttpClient();
var config = JsonConvert.DeserializeObject<ElegantWhitelistConfig>(File.ReadAllText(Path.Combine(Environment.CurrentDirectory,
"tshock", "ElegantWhitelistTShockAdapter.json")));
var elegantWhitelistConfig = JsonConvert.DeserializeObject<ElegantWhitelist>(File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "tshock", "PrismBot", "elegantWhitelist.json")));
var config = JsonConvert.DeserializeObject<Config>(File.ReadAllText(Path.Combine(AppContext.BaseDirectory, "tshock", "PrismBot", "config.json")));
HttpResponseMessage response;
try
{
Expand All @@ -49,13 +65,13 @@ private async void OnJoin(JoinEventArgs args)
}
catch (HttpRequestException)
{
player.Disconnect(config.ConnectionErrorMessage);
player.Disconnect(elegantWhitelistConfig.ConnectionErrorMessage);
return;
}

var result =
JsonConvert.DeserializeObject<ElegantWhitelistCheckResponse>(await response.Content.ReadAsStringAsync());
if (!result.Data.IsRegistered) player.Disconnect(config.NotInWhitelistMessage);
if (result.Data.IsFreeze) player.Disconnect(config.AccountFrozenMessage);
if (!result.Data.IsRegistered) player.Disconnect(elegantWhitelistConfig.NotInWhitelistMessage);
if (result.Data.IsFreeze) player.Disconnect(elegantWhitelistConfig.AccountFrozenMessage);
}
}

0 comments on commit fd69bc3

Please sign in to comment.