Basic syncshell chat impl with game hooks

This commit is contained in:
Loporrit
2024-11-24 22:21:41 +00:00
parent 7075c43a49
commit c2723fd005
25 changed files with 610 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
using Dalamud.Interface.ImGuiNotification;
using MareSynchronos.API.Data.Enum;
using MareSynchronos.API.Dto;
using MareSynchronos.API.Dto.Chat;
using MareSynchronos.API.Dto.Group;
using MareSynchronos.API.Dto.User;
using MareSynchronos.Services.Mediator;
@@ -25,6 +26,13 @@ public partial class ApiController
return Task.CompletedTask;
}
public Task Client_GroupChatMsg(GroupChatMsgDto groupChatMsgDto)
{
Logger.LogDebug("Client_GroupChatMsg: {msg}", groupChatMsgDto.Message);
Mediator.Publish(new GroupChatMsgMessage(groupChatMsgDto.Group, groupChatMsgDto.Message));
return Task.CompletedTask;
}
public Task Client_GroupPairChangePermissions(GroupPairUserPermissionDto dto)
{
Logger.LogTrace("Client_GroupPairChangePermissions: {dto}", dto);
@@ -120,6 +128,13 @@ public partial class ApiController
return Task.CompletedTask;
}
public Task Client_UserChatMsg(UserChatMsgDto chatMsgDto)
{
Logger.LogDebug("Client_UserChatMsg: {msg}", chatMsgDto.Message);
Mediator.Publish(new UserChatMsgMessage(chatMsgDto.Message));
return Task.CompletedTask;
}
public Task Client_UserReceiveCharacterData(OnlineUserCharaDataDto dataDto)
{
Logger.LogTrace("Client_UserReceiveCharacterData: {user}", dataDto.User);
@@ -188,6 +203,12 @@ public partial class ApiController
_mareHub!.On(nameof(Client_GroupChangePermissions), act);
}
public void OnGroupChatMsg(Action<GroupChatMsgDto> act)
{
if (_initialized) return;
_mareHub!.On(nameof(Client_GroupChatMsg), act);
}
public void OnGroupPairChangePermissions(Action<GroupPairUserPermissionDto> act)
{
if (_initialized) return;
@@ -248,6 +269,12 @@ public partial class ApiController
_mareHub!.On(nameof(Client_UserAddClientPair), act);
}
public void OnUserChatMsg(Action<UserChatMsgDto> act)
{
if (_initialized) return;
_mareHub!.On(nameof(Client_UserChatMsg), act);
}
public void OnUserReceiveCharacterData(Action<OnlineUserCharaDataDto> act)
{
if (_initialized) return;