Improve Illegal text wrapping

This commit is contained in:
Dragon Fire
2020-11-04 13:10:18 -05:00
parent f77adabb35
commit 041adb0590
3 changed files with 21 additions and 5 deletions
+17 -3
View File
@@ -1,10 +1,13 @@
const Command = require('../../structures/Command');
const { createCanvas, loadImage, registerFont } = require('canvas');
const { drawText } = require('node-canvas-text');
const GIFEncoder = require('gifencoder');
const opentype = require('opentype.js');
const path = require('path');
const { streamToArray } = require('../../util/Util');
const frames = require('../../assets/json/illegal');
registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Impact.ttf'), { family: 'Impact' });
const impactFont = opentype.loadSync(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Impact.ttf'));
module.exports = class IllegalCommand extends Command {
constructor(client) {
@@ -13,7 +16,7 @@ module.exports = class IllegalCommand extends Command {
aliases: ['is-now-illegal', 'trump'],
group: 'edit-meme',
memberName: 'illegal',
description: 'Makes President Trump make your text illegal.',
description: 'Makes Donald Trump make your text illegal.',
throttling: {
usages: 1,
duration: 30
@@ -76,8 +79,19 @@ module.exports = class IllegalCommand extends Command {
}
ctx.textBaseline = 'top';
ctx.font = '20px Impact';
const maxLen = frame.corners[1][0] - frame.corners[0][0];
ctx.fillText(`${text}\n${verb} NOW\nILLEGAL`, frame.corners[0][0], frame.corners[0][1], maxLen);
const rect = {
x: frame.corners[0][0],
y: frame.corners[1][0],
width: frame.corners[0][0],
height: frame.corners[0][1]
};
drawText(ctx, `${text}\n${verb} NOW\nILLEGAL`, impactFont, rect, {
minSize: 5,
maxSize: 20,
hAlign: 'center',
wAlign: 'center',
textPadding: 5
});
encoder.addFrame(ctx);
}
encoder.finish();