Added a feature to replay buffered messages while chat is offline (up to a limit of the 10 latest by default) and changed the sent message tracking to pass-by-reference instead of exclusively using GUIDs. The GUIDs still exist for scenarios where you can't pass a reference to the object around.

This commit is contained in:
barelyprofessional
2024-09-15 23:00:26 +08:00
parent 37f161663b
commit 04e73c8d5f
4 changed files with 51 additions and 14 deletions

View File

@@ -25,14 +25,15 @@ public class EditTestCommand : ICommand
var i = 0;
var delay = 1000;
var reference = botInstance.SendChatMessage($"{msg} {i}", true);
while (botInstance.GetSentMessageStatus(reference).Status == SentMessageTrackerStatus.WaitingForResponse)
while (reference.Status == SentMessageTrackerStatus.WaitingForResponse)
{
await Task.Delay(100, ctx);
}
var status = botInstance.GetSentMessageStatus(reference);
if (status.Status == SentMessageTrackerStatus.NotSending || status.Status == SentMessageTrackerStatus.Unknown ||
status.ChatMessageId == null)
if (reference.Status == SentMessageTrackerStatus.NotSending ||
reference.Status == SentMessageTrackerStatus.Unknown ||
reference.Status == SentMessageTrackerStatus.ChatDisconnected ||
reference.ChatMessageId == null)
{
logger.Error("Either message refused to send due to bot settings or something fucked up getting the message ID");
return;
@@ -41,13 +42,13 @@ public class EditTestCommand : ICommand
{
i++;
await Task.Delay(delay, ctx);
botInstance.KfClient.EditMessage(status.ChatMessageId!.Value, $"{msg} {i}");
botInstance.KfClient.EditMessage(reference.ChatMessageId!.Value, $"{msg} {i}");
}
await Task.Delay(delay, ctx);
botInstance.KfClient.EditMessage(status.ChatMessageId!.Value, "This message will self destruct in 1 second");
botInstance.KfClient.EditMessage(reference.ChatMessageId!.Value, "This message will self destruct in 1 second");
await Task.Delay(delay, ctx);
botInstance.KfClient.DeleteMessage(status.ChatMessageId!.Value);
botInstance.KfClient.DeleteMessage(reference.ChatMessageId!.Value);
}
}