mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
Add OnChatMessageHandled and OnChatMessageUnhandled events
This commit is contained in:
parent
3f41c20a12
commit
ace2533f05
1 changed files with 20 additions and 1 deletions
|
|
@ -19,6 +19,8 @@ namespace Dalamud.Game.Internal.Gui {
|
|||
public delegate void OnMessageDelegate(XivChatType type, uint senderId, ref SeString sender, ref SeString message, ref bool isHandled);
|
||||
public delegate void OnMessageRawDelegate(XivChatType type, uint senderId, ref StdString sender, ref StdString message, ref bool isHandled);
|
||||
public delegate void OnCheckMessageHandledDelegate(XivChatType type, uint senderId, ref SeString sender, ref SeString message, ref bool isHandled);
|
||||
public delegate void OnMessageHandledDelegate(XivChatType type, uint senderId, SeString sender, SeString message);
|
||||
public delegate void OnMessageUnhandledDelegate(XivChatType type, uint senderId, SeString sender, SeString message);
|
||||
|
||||
/// <summary>
|
||||
/// Event that allows you to stop messages from appearing in chat by setting the isHandled parameter to true.
|
||||
|
|
@ -30,6 +32,16 @@ namespace Dalamud.Game.Internal.Gui {
|
|||
/// </summary>
|
||||
public event OnMessageDelegate OnChatMessage;
|
||||
|
||||
/// <summary>
|
||||
/// Event that will be fired when a chat message is handled by Dalamud or a Plugin.
|
||||
/// </summary>
|
||||
public event OnMessageHandledDelegate OnChatMessageHandled;
|
||||
|
||||
/// <summary>
|
||||
/// Event that will be fired when a chat message is not handled by Dalamud or a Plugin.
|
||||
/// </summary>
|
||||
public event OnMessageUnhandledDelegate OnChatMessageUnhandled;
|
||||
|
||||
/// <summary>
|
||||
/// Event that will be fired when a chat message is sent by the game, containing raw, unparsed data.
|
||||
/// </summary>
|
||||
|
|
@ -167,8 +179,15 @@ namespace Dalamud.Game.Internal.Gui {
|
|||
}
|
||||
|
||||
// Print the original chat if it's handled.
|
||||
if (!isHandled)
|
||||
if (isHandled)
|
||||
{
|
||||
OnChatMessageHandled?.Invoke(chattype, senderid, parsedSender, parsedMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
retVal = this.printMessageHook.Original(manager, chattype, pSenderName, messagePtr, senderid, parameter);
|
||||
OnChatMessageUnhandled?.Invoke(chattype, senderid, parsedSender, parsedMessage);
|
||||
}
|
||||
|
||||
if (this.baseAddress == IntPtr.Zero)
|
||||
this.baseAddress = manager;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue