premature chat command + hardcoded stage for chat on any state

This commit is contained in:
rfi 2023-11-19 22:16:36 +07:00
parent 897a457584
commit 6976803f97
2 changed files with 42 additions and 1 deletions

View File

@ -132,7 +132,7 @@ namespace AscNet.GameServer.Handlers
BaseEquipLoginData = new(),
FubenData = new()
{
StageData = session.stage.Stages.ToDictionary(x => x.Key, x => x.Value),
StageData = session.stage.Stages,
FubenBaseData = new()
},
FubenMainLineData = new(),
@ -147,6 +147,26 @@ namespace AscNet.GameServer.Handlers
#if DEBUG
notifyLogin.PlayerData.GuideData = GuideGroupTableReader.Instance.All.Select(x => (long)x.Id).ToList();
StageDatum stageForChat = new()
{
StageId = 10030201,
StarsMark = 7,
Passed = true,
PassTimesToday = 0,
PassTimesTotal = 1,
BuyCount = 0,
Score = 0,
LastPassTime = DateTimeOffset.Now.ToUnixTimeSeconds(),
RefreshTime = DateTimeOffset.Now.ToUnixTimeSeconds(),
CreateTime = DateTimeOffset.Now.ToUnixTimeSeconds(),
BestRecordTime = 0,
LastRecordTime = 0,
BestCardIds = new List<long> { 1021001 },
LastCardIds = new List<long> { 1021001 }
};
if (!notifyLogin.FubenData.StageData.ContainsKey(stageForChat.StageId))
notifyLogin.FubenData.StageData = notifyLogin.FubenData.StageData.Append(new(stageForChat.StageId, stageForChat)).ToDictionary(x => x.Key, x => x.Value);
#endif
NotifyCharacterDataList notifyCharacterData = new();

View File

@ -1,4 +1,5 @@
using AscNet.Common.MsgPack;
using AscNet.GameServer.Commands;
using AscNet.Table.share.chat;
using MessagePack;
@ -152,6 +153,26 @@ internal class ChatModule
request.ChatData.Icon = (int)session.player.PlayerData.CurrHeadPortraitId;
request.ChatData.NickName = session.player.PlayerData.Name;
if (request.ChatData.Content is not null && request.ChatData.Content.StartsWith('/'))
{
var cmdStrings = request.ChatData.Content.Split(" ");
try
{
Command? cmd = CommandFactory.CreateCommand(cmdStrings.First().Split('/').Last(), session, cmdStrings[1..]);
if (cmd is null)
{
// Invalid command
}
cmd?.Execute();
}
catch (Exception)
{
// Failed to execute command
}
}
NotifyWorldChat notifyWorldChat = new();
notifyWorldChat.ChatMessages.Add(request.ChatData);