chomens-bot-js/plugins/draw.js

48 lines
947 B
JavaScript
Raw Normal View History

2022-10-15 08:53:48 -04:00
/* eslint-disable max-len */
const convert = require('color-convert');
function inject(bot) {
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);
2022-10-15 08:53:48 -04:00
}
bot.draw = draw;
}
module.exports = {inject};