mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-14 12:44:16 +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 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 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 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>
|
/// <summary>
|
||||||
/// Event that allows you to stop messages from appearing in chat by setting the isHandled parameter to true.
|
/// 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>
|
/// </summary>
|
||||||
public event OnMessageDelegate OnChatMessage;
|
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>
|
/// <summary>
|
||||||
/// Event that will be fired when a chat message is sent by the game, containing raw, unparsed data.
|
/// Event that will be fired when a chat message is sent by the game, containing raw, unparsed data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -167,8 +179,15 @@ namespace Dalamud.Game.Internal.Gui {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print the original chat if it's handled.
|
// 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);
|
retVal = this.printMessageHook.Original(manager, chattype, pSenderName, messagePtr, senderid, parameter);
|
||||||
|
OnChatMessageUnhandled?.Invoke(chattype, senderid, parsedSender, parsedMessage);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.baseAddress == IntPtr.Zero)
|
if (this.baseAddress == IntPtr.Zero)
|
||||||
this.baseAddress = manager;
|
this.baseAddress = manager;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue