import {Channel} from "eris"; import {injectable} from "inversify"; import ChannelBuffer from "./ChannelBuffer"; @injectable() export default class MessageBuffer { private readonly _buffers: Array> = []; public AddItem(channel: Channel, message: string): void { if (!this._buffers[channel.id]) { this._buffers[channel.id] = new ChannelBuffer( channel, async (channel, messages) => { let builder: string = ""; for (let message of messages) { if (builder.length + message.length > 2000) { await channel.createMessage(builder); builder = ""; } builder += `${message}\n`; } await channel.createMessage(builder); }, ); } this._buffers[channel.id].addItem(message); } };