diff --git a/src/execution.ts b/src/execution.ts index 8e4e083..5982a6f 100644 --- a/src/execution.ts +++ b/src/execution.ts @@ -110,6 +110,8 @@ function requestReply( else { if (!request.deferred) return request.reply(Object.assign(message, interactionOptions)); + else if (request.replied) + return request.followUp(Object.assign(message, interactionOptions)); else return request.editReply(Object.assign(message, interactionOptions)); } @@ -277,9 +279,22 @@ async function executeFromQueue(channel: string) { if (message instanceof DiscordApi.Message) message.react("😶").catch(/*it's okay*/); } else { - const response = requestReply(message, {content: answerContent}, {allowedMentions: { repliedUser: false }}); + const answerMessagesContent :string[] = [""]; + for (const i in answerContent.split(/\n\n/)) { + if (answerMessagesContent[answerMessagesContent.length-1].length + i.length < 2000) { + answerMessagesContent[answerMessagesContent.length-1] += "\n\n" + i; + } + else { + answerMessagesContent.push(i); + } + } - response.then(rval => Moderation.checkMessage(rval)); + for (const i in answerMessagesContent) { + const response = requestReply(message, {content: i}, {allowedMentions: { repliedUser: false }}); + + response.then(rval => Moderation.checkMessage(rval)); + await response; + } } } catch (e) { console.error(`Error ocurred while handling chat completion request (${(e as object).constructor.name}):`);