Skip to content

Commit c00b7f5

Browse files
committed
修正对任意版本的放行, 修了一下无法检查更新时会崩溃的问题, 添加新增版本号
1 parent c760d54 commit c00b7f5

File tree

7 files changed

+20
-16
lines changed

7 files changed

+20
-16
lines changed

MultiSEngine/Core/Adapter/BaseAdapter.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public BaseAdapter(ClientData client, Socket connection)
2525
public int ErrorCount { get; protected set; } = 0;
2626
protected bool ShouldStop { get; set; } = false;
2727
public int VersionNum => Client?.Player?.VersionNum ?? -1;
28-
public virtual PacketSerializer InternalClientSerializer => VersionNum == -1 ? Net.DefaultClientSerializer : Net.ClientSerializer[VersionNum];
29-
public virtual PacketSerializer InternalServerSerializer => VersionNum == -1 ? Net.DefaultServerSerializer : Net.ServerSerializer[VersionNum];
28+
public virtual PacketSerializer InternalClientSerializer => Net.ClientSerializer.TryGetValue(VersionNum, out var result) ? result : Net.DefaultClientSerializer;
29+
public virtual PacketSerializer InternalServerSerializer => Net.ServerSerializer.TryGetValue(VersionNum, out var result) ? result : Net.DefaultServerSerializer;
3030
public ClientData Client { get; protected set; }
3131
public Socket Connection { get; internal set; }
3232
protected BinaryReader NetReader { get; set; }

MultiSEngine/Core/Net.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public class Net
1616
public static Socket SocketServer { get; internal set; }
1717
public static readonly Dictionary<int, PacketSerializer> ClientSerializer = new();
1818
public static readonly Dictionary<int, PacketSerializer> ServerSerializer = new();
19-
public static PacketSerializer DefaultClientSerializer => ClientSerializer[Config.Instance.ServerVersion > Data.Versions.Last() ? Modules.Data.Versions.Last() : Config.Instance.ServerVersion];
20-
public static PacketSerializer DefaultServerSerializer => ServerSerializer[Config.Instance.ServerVersion > Data.Versions.Last() ? Modules.Data.Versions.Last() : Config.Instance.ServerVersion];
19+
public static PacketSerializer DefaultClientSerializer => ClientSerializer[Config.Instance.ServerVersion > Data.Versions.Last() ? Data.Versions.Last() : Config.Instance.ServerVersion];
20+
public static PacketSerializer DefaultServerSerializer => ServerSerializer[Config.Instance.ServerVersion > Data.Versions.Last() ? Data.Versions.Last() : Config.Instance.ServerVersion];
2121
[AutoInit(postMsg: "Opened socket server successfully.")]
2222
public static void Init()
2323
{

MultiSEngine/Modules/ClientHelper.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public static void ReadVersion(this ClientData client, string version)
226226
client.Player.VersionNum = version.StartsWith("Terraria") && int.TryParse(version[8..], out var v)
227227
? v
228228
: Config.Instance.DefaultServerInternal.VersionNum;
229-
Logs.Info($"Version of {client.Name} is {Data.Convert(client.Player.VersionNum)}.");
229+
Logs.Info($"Version of {client.Name} is {Data.Convert(client.Player.VersionNum)}<{client.Player.VersionNum}>.");
230230
}
231231
public static bool HandleCommand(this ClientData client, string cmd)
232232
{

MultiSEngine/Modules/Cmds/ConsoleCommand.cs

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ internal class ConsoleCommand : Core.Command.CmdBase
1111
public override bool ServerCommand => true;
1212
public override bool Execute(ClientData client, string cmdName, string[] parma)
1313
{
14+
if (string.IsNullOrEmpty(cmdName))
15+
return true;
1416
var internalCommand = Data.Commands.FirstOrDefault(c => c.Name == "mse");
1517
switch (cmdName)
1618
{
@@ -20,6 +22,7 @@ public override bool Execute(ClientData client, string cmdName, string[] parma)
2022
break;
2123
case "ol":
2224
case "online":
25+
case "playing":
2326
Logs.Info($"{Data.Clients.Count} Player(s) Online:{Environment.NewLine}{string.Join(", ", from c in Data.Clients let text = $"{c.Name} <{c.Server?.Name ?? "FakeWorld"}>" select text)}", false);
2427
break;
2528
case "stop":

MultiSEngine/Modules/Data.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ public static string Convert(int version)
3535
"Terraria242" => "v1.4.3",
3636
"Terraria243" => "v1.4.3.1",
3737
"Terraria244" => "v1.4.3.2",
38+
"Terraria245" => "v1.4.3.3",
39+
"Terraria246" => "v1.4.3.4",
40+
"Terraria247" => "v1.4.3.5",
41+
"Terraria248" => "v1.4.3.6",
3842
_ => "Unknown",
3943
};
4044
}
41-
public static readonly int[] Versions = { 230, 233, 234, 235, 236, 237, 238, 242, 243, 244 };
45+
public static readonly int[] Versions = { 230, 233, 234, 235, 236, 237, 238, 242, 243, 244, 245, 246, 247, 248 };
4246
[AutoInit(order: 0)]
4347
public static void Init()
4448
{

MultiSEngine/Modules/Updater.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static void Init()
2626
Interval = 1000 * 60 * 5,
2727
AutoReset = true
2828
};
29-
private static async void CheckUpdate(object sender, ElapsedEventArgs e)
29+
internal static async void CheckUpdate(object sender, ElapsedEventArgs e)
3030
{
3131
try
3232
{

MultiSEngine/Program.cs

+6-9
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,14 @@ static void Main(string[] args)
2424
private static void ShowLogo()
2525
{
2626
Console.WriteLine(@"
27-
__ ___ ____ _ _____ ______ _
28-
/ |/ /_ __/ / /_(_) ___// ____/___ ____ _(_)___ ___
29-
/ /|_/ / / / / / __/ /\__ \/ __/ / __ \/ __ `/ / __ \/ _ \
30-
/ / / / /_/ / / /_/ /___/ / /___/ / / / /_/ / / / / / __/
31-
/_/ /_/\__,_/_/\__/_//____/_____/_/ /_/\__, /_/_/ /_/\___/
27+
__ ___ ____ _ _____ ______ _
28+
/ |/ /_ __/ / /_(_) ___// ____/___ ____ _(_)___ ___
29+
/ /|_/ / / / / / __/ /\__ \/ __/ / __ \/ __ `/ / __ \/ _ \
30+
/ / / / /_/ / / /_/ /___/ / /___/ / / / /_/ / / / / / __/
31+
/_/ /_/\__,_/_/\__/_//____/_____/_/ /_/\__, /_/_/ /_/\___/
3232
/____/
3333
");
34-
var version = Assembly.GetExecutingAssembly().GetName().Version;
35-
var newest = Updater.GetNewestVersion().Result;
36-
Console.WriteLine($" - Version {version}, Latest Version {(newest > version ? newest : version)}");
37-
Console.WriteLine();
34+
Updater.CheckUpdate(null, null);
3835
}
3936
private static void AutoInit()
4037
{

0 commit comments

Comments
 (0)