mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix(ChatGui): use invocation lists and handle errors
This commit is contained in:
parent
5871cf8d8c
commit
45b11114e1
1 changed files with 27 additions and 2 deletions
|
|
@ -328,11 +328,36 @@ namespace Dalamud.Game.Gui
|
|||
|
||||
// Call events
|
||||
var isHandled = false;
|
||||
this.CheckMessageHandled?.Invoke(chattype, senderid, ref parsedSender, ref parsedMessage, ref isHandled);
|
||||
|
||||
var invocationList = this.CheckMessageHandled.GetInvocationList();
|
||||
foreach (var @delegate in invocationList)
|
||||
{
|
||||
try
|
||||
{
|
||||
var messageHandledDelegate = @delegate as OnCheckMessageHandledDelegate;
|
||||
messageHandledDelegate!.Invoke(chattype, senderid, ref parsedSender, ref parsedMessage, ref isHandled);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e, "Could not invoke registered OnCheckMessageHandledDelegate for {Name}", @delegate.Method.Name);
|
||||
}
|
||||
}
|
||||
|
||||
if (!isHandled)
|
||||
{
|
||||
this.ChatMessage?.Invoke(chattype, senderid, ref parsedSender, ref parsedMessage, ref isHandled);
|
||||
invocationList = this.ChatMessage.GetInvocationList();
|
||||
foreach (var @delegate in invocationList)
|
||||
{
|
||||
try
|
||||
{
|
||||
var messageHandledDelegate = @delegate as OnMessageDelegate;
|
||||
messageHandledDelegate!.Invoke(chattype, senderid, ref parsedSender, ref parsedMessage, ref isHandled);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error(e, "Could not invoke registered OnMessageDelegate for {Name}", @delegate.Method.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var newEdited = parsedMessage.Encode();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue