diff --git a/backend/src/plugins/Logs/util/log.ts b/backend/src/plugins/Logs/util/log.ts index 5f879aa3..eb350d1d 100644 --- a/backend/src/plugins/Logs/util/log.ts +++ b/backend/src/plugins/Logs/util/log.ts @@ -102,6 +102,7 @@ export async function log( channelId, new MessageBuffer({ timeout: batchTime, + textSeparator: "\n", consume: (part) => { const parse: MessageMentionTypes[] = pluginData.config.get().allow_user_mentions ? ["users"] : []; const promise = diff --git a/backend/src/utils/MessageBuffer.ts b/backend/src/utils/MessageBuffer.ts index e2ae4b64..17022357 100644 --- a/backend/src/utils/MessageBuffer.ts +++ b/backend/src/utils/MessageBuffer.ts @@ -16,6 +16,7 @@ type Chunk = { export interface MessageBufferOpts { consume?: ConsumeFn; timeout?: number; + textSeparator?: string; } const MAX_CHARS_PER_MESSAGE = 2000; @@ -30,6 +31,8 @@ export class MessageBuffer { protected timeoutMs: number | null = null; + protected textSeparator: string = ""; + protected chunk: Chunk | null = null; protected chunkTimeout: Timeout | null = null; @@ -44,6 +47,10 @@ export class MessageBuffer { if (opts.timeout) { this.timeoutMs = opts.timeout; } + + if (opts.textSeparator) { + this.textSeparator = opts.textSeparator; + } } push(content: MessageBufferContent): void { @@ -73,8 +80,11 @@ export class MessageBuffer { this.startNewChunk(contentType); } - if (chunk.content.content == null) chunk.content.content = ""; - chunk.content.content += content.content; + if (chunk.content.content == null || chunk.content.content === "") { + chunk.content.content = content.content; + } else { + chunk.content.content += this.textSeparator + content.content; + } } if (content.embeds) {