/* eslint-disable max-len */ const convert = require('color-convert'); // eslint-disable-next-line require-jsdoc function inject(bot) { /** * draw which is totallynotskidded from ybot * @param {buffer} data data buffer * @param {*} info idk bout this * @param {object} prefix prefix in the output compoenent */ function draw(data, info, prefix = {}) { const pixels = []; // Data Buffer -> RGB Array for (let i = 0; i < data.length; i += info.channels) { pixels.push([ data[i + 0], data[i + 1], data[i + 2], ]); } const rows = []; // RGB Array -> Rows Array for (let i = 0; i < pixels.length; i += info.width) { const row = pixels.slice(i, i + info.width); rows.push(row); } const messages = []; for (const row of rows) { const message = [{...prefix, text: ''}]; for (const rgb of row) { message.push({ text: '⎮', color: `#${convert.rgb.hex(rgb)}`, }); } messages.push(message); } for (const message of messages) bot.tellraw('@a', message); } bot.draw = draw; } module.exports = {inject};