Merge pull request #174 from ascclemens/process-plugin-chat

Process chat messages from plugins
This commit is contained in:
goaaats 2020-09-19 09:59:57 +02:00 committed by GitHub
commit 834bf6357d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -221,17 +221,17 @@ namespace Dalamud.Game.Internal.Gui {
while (this.chatQueue.Count > 0) {
var chat = this.chatQueue.Dequeue();
var sender = chat.Name ?? "";
var message = chat.MessageBytes ?? new byte[0];
if (this.baseAddress == IntPtr.Zero) {
continue;
}
if (this.baseAddress != IntPtr.Zero)
using (var senderVec = framework.Libc.NewString(Encoding.UTF8.GetBytes(sender)))
using (var messageVec = framework.Libc.NewString(message))
{
Log.Verbose($"String allocated to {messageVec.Address.ToInt64():X}");
this.printMessageHook.Original(this.baseAddress, chat.Type, senderVec.Address,
messageVec.Address, chat.SenderId, chat.Parameters);
}
var senderRaw = Encoding.UTF8.GetBytes(chat.Name ?? "");
using var senderOwned = framework.Libc.NewString(senderRaw);
var messageRaw = chat.MessageBytes ?? new byte[0];
using var messageOwned = framework.Libc.NewString(messageRaw);
this.HandlePrintMessageDetour(this.baseAddress, chat.Type, senderOwned.Address, messageOwned.Address, chat.SenderId, chat.Parameters);
}
}
}