mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-13 12:14:16 +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
|
// Call events
|
||||||
var isHandled = false;
|
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)
|
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();
|
var newEdited = parsedMessage.Encode();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue