mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
fix: catch some discord bot errors
This commit is contained in:
parent
f92a37fbf9
commit
64f07a8c02
3 changed files with 31 additions and 17 deletions
|
|
@ -75,7 +75,7 @@ namespace Dalamud.Injector {
|
||||||
|
|
||||||
Thread.Sleep(1000);
|
Thread.Sleep(1000);
|
||||||
|
|
||||||
#if DEBUG
|
#if NO
|
||||||
// Inject exception handler
|
// Inject exception handler
|
||||||
NativeInject(process);
|
NativeInject(process);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -188,27 +188,35 @@ namespace Dalamud.DiscordBot {
|
||||||
string senderName;
|
string senderName;
|
||||||
string senderWorld;
|
string senderWorld;
|
||||||
|
|
||||||
if (playerLink == null) {
|
if (this.dalamud.ClientState.LocalPlayer != null) {
|
||||||
// chat messages from the local player do not include a player link, and are just the raw name
|
if (playerLink == null)
|
||||||
// but we should still track other instances to know if this is ever an issue otherwise
|
|
||||||
|
|
||||||
// Special case 2 - When the local player talks in party/alliance, the name comes through as raw text,
|
|
||||||
// but prefixed by their position number in the party (which for local player may always be 1)
|
|
||||||
if (sender.TextValue.EndsWith(this.dalamud.ClientState.LocalPlayer.Name))
|
|
||||||
{
|
{
|
||||||
senderName = this.dalamud.ClientState.LocalPlayer.Name;
|
// chat messages from the local player do not include a player link, and are just the raw name
|
||||||
|
// but we should still track other instances to know if this is ever an issue otherwise
|
||||||
|
|
||||||
|
// Special case 2 - When the local player talks in party/alliance, the name comes through as raw text,
|
||||||
|
// but prefixed by their position number in the party (which for local player may always be 1)
|
||||||
|
if (sender.TextValue.EndsWith(this.dalamud.ClientState.LocalPlayer.Name))
|
||||||
|
{
|
||||||
|
senderName = this.dalamud.ClientState.LocalPlayer.Name;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Log.Error("playerLink was null. Sender: {0}", BitConverter.ToString(sender.Encode()));
|
||||||
|
|
||||||
|
senderName = wasOutgoingTell ? this.dalamud.ClientState.LocalPlayer.Name : sender.TextValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
senderWorld = this.dalamud.ClientState.LocalPlayer.HomeWorld.GameData.Name;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Log.Error("playerLink was null. Sender: {0}", BitConverter.ToString(sender.Encode()));
|
senderName = wasOutgoingTell ? this.dalamud.ClientState.LocalPlayer.Name : playerLink.PlayerName;
|
||||||
|
senderWorld = playerLink.World.Name;
|
||||||
senderName = wasOutgoingTell ? this.dalamud.ClientState.LocalPlayer.Name : sender.TextValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
senderWorld = this.dalamud.ClientState.LocalPlayer.HomeWorld.GameData.Name;
|
|
||||||
} else {
|
} else {
|
||||||
senderName = wasOutgoingTell ? this.dalamud.ClientState.LocalPlayer.Name : playerLink.PlayerName;
|
senderName = string.Empty;
|
||||||
senderWorld = playerLink.World.Name;
|
senderWorld = string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
var rawMessage = message.TextValue;
|
var rawMessage = message.TextValue;
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,13 @@ namespace Dalamud.Game {
|
||||||
|
|
||||||
var messageCopy = message;
|
var messageCopy = message;
|
||||||
var senderCopy = sender;
|
var senderCopy = sender;
|
||||||
Task.Run(() => this.dalamud.BotManager.ProcessChatMessage(type, messageCopy, senderCopy));
|
Task.Run(async () => {
|
||||||
|
try {
|
||||||
|
await this.dalamud.BotManager.ProcessChatMessage(type, messageCopy, senderCopy);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
Log.Error(ex, "Could not process discord bot message.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Handle all of this with SeString some day
|
// Handle all of this with SeString some day
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue