mirror of
https://github.com/arthur-pbty/xiao.git
synced 2026-06-23 10:02:05 +02:00
Make avatar edit commands not say to contact me
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
const { ShardingManager } = require('discord.js');
|
const { ShardingManager } = require('discord.js');
|
||||||
const { TOKEN } = process.env;
|
const { TOKEN } = process.env;
|
||||||
const Manager = new ShardingManager('./XiaoBot.js', { token: TOKEN });
|
const Manager = new ShardingManager('./XiaoBot.js', { token: TOKEN });
|
||||||
Manager.spawn(2);
|
Manager.spawn();
|
||||||
|
|||||||
@@ -35,19 +35,23 @@ module.exports = class YearsCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(856, 569);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(856, 569);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.drawImage(avatar, 461, 127, 200, 200);
|
ctx.drawImage(base, 0, 0);
|
||||||
};
|
ctx.drawImage(avatar, 461, 127, 200, 200);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', '3000-years.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', '3000-years.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: '3000-years.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: '3000-years.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -35,20 +35,24 @@ module.exports = class BeautifulCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(500, 532);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(500, 532);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.drawImage(avatar, 341, 35, 117, 135);
|
ctx.drawImage(base, 0, 0);
|
||||||
ctx.drawImage(avatar, 343, 301, 117, 135);
|
ctx.drawImage(avatar, 341, 35, 117, 135);
|
||||||
};
|
ctx.drawImage(avatar, 343, 301, 117, 135);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'beautiful.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'beautiful.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'beautiful.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'beautiful.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -35,23 +35,27 @@ module.exports = class BobRossCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(600, 775);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(600, 775);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.fillStyle = 'white';
|
const generate = () => {
|
||||||
ctx.fillRect(0, 0, 600, 775);
|
ctx.fillStyle = 'white';
|
||||||
ctx.rotate(3 * Math.PI / 180);
|
ctx.fillRect(0, 0, 600, 775);
|
||||||
ctx.drawImage(avatar, 69, 102, 256, 256);
|
ctx.rotate(3 * Math.PI / 180);
|
||||||
ctx.rotate(-3 * Math.PI / 180);
|
ctx.drawImage(avatar, 69, 102, 256, 256);
|
||||||
ctx.drawImage(base, 0, 0);
|
ctx.rotate(-3 * Math.PI / 180);
|
||||||
};
|
ctx.drawImage(base, 0, 0);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'bob-ross.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'bob-ross.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'bob-ross.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'bob-ross.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -38,41 +38,45 @@ module.exports = class CardCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const cardID = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000;
|
try {
|
||||||
let rarity;
|
const cardID = Math.floor(Math.random() * (9999 - 1000 + 1)) + 1000;
|
||||||
if (cardID < 5000) rarity = 'C';
|
let rarity;
|
||||||
else if (cardID < 8000) rarity = 'U';
|
if (cardID < 5000) rarity = 'C';
|
||||||
else rarity = 'R';
|
else if (cardID < 8000) rarity = 'U';
|
||||||
const Image = Canvas.Image;
|
else rarity = 'R';
|
||||||
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Roboto.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
const Image = Canvas.Image;
|
||||||
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'NotoEmoji-Regular.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Roboto.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
||||||
const canvas = new Canvas(390, 544);
|
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'NotoEmoji-Regular.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(390, 544);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.fillStyle = 'white';
|
const generate = () => {
|
||||||
ctx.fillRect(0, 0, 390, 544);
|
ctx.fillStyle = 'white';
|
||||||
ctx.drawImage(avatar, 11, 11, 370, 370);
|
ctx.fillRect(0, 0, 390, 544);
|
||||||
ctx.drawImage(base, 0, 0);
|
ctx.drawImage(avatar, 11, 11, 370, 370);
|
||||||
ctx.font = '18px Roboto';
|
ctx.drawImage(base, 0, 0);
|
||||||
ctx.fillStyle = 'black';
|
ctx.font = '18px Roboto';
|
||||||
ctx.fillText(member.displayName, 30, 62);
|
ctx.fillStyle = 'black';
|
||||||
ctx.fillText('Discord Join Date:', 148, 400);
|
ctx.fillText(member.displayName, 30, 62);
|
||||||
ctx.fillText(moment(member.user.createdTimestamp).format('MMMM Do YYYY'), 148, 420);
|
ctx.fillText('Discord Join Date:', 148, 400);
|
||||||
ctx.fillText('Role:', 148, 457);
|
ctx.fillText(moment(member.user.createdTimestamp).format('MMMM Do YYYY'), 148, 420);
|
||||||
ctx.fillText(member.highestRole.name, 148, 477);
|
ctx.fillText('Role:', 148, 457);
|
||||||
ctx.fillText(rarity, 73, 411);
|
ctx.fillText(member.highestRole.name, 148, 477);
|
||||||
ctx.fillText(cardID, 60, 457);
|
ctx.fillText(rarity, 73, 411);
|
||||||
ctx.fillText(version.split('.')[0], 68, 502);
|
ctx.fillText(cardID, 60, 457);
|
||||||
ctx.font = '14px Roboto';
|
ctx.fillText(version.split('.')[0], 68, 502);
|
||||||
ctx.fillText(member.id, 30, 355);
|
ctx.font = '14px Roboto';
|
||||||
ctx.fillText(`#${member.user.discriminator}`, 313, 355);
|
ctx.fillText(member.id, 30, 355);
|
||||||
};
|
ctx.fillText(`#${member.user.discriminator}`, 313, 355);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'card.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'card.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'card.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'card.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,21 +34,25 @@ module.exports = class ChallengerCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(500, 500);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(500, 500);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.fillStyle = '#ff0028';
|
const generate = () => {
|
||||||
ctx.fillRect(0, 0, 500, 500);
|
ctx.fillStyle = '#ff0028';
|
||||||
ctx.drawImage(avatar, 226, 155, 200, 200);
|
ctx.fillRect(0, 0, 500, 500);
|
||||||
ctx.drawImage(base, 0, 0);
|
ctx.drawImage(avatar, 226, 155, 200, 200);
|
||||||
};
|
ctx.drawImage(base, 0, 0);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'challenger.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'challenger.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'challenger.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'challenger.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,21 +34,25 @@ module.exports = class DexterCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(744, 554);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(744, 554);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.rotate(-11 * Math.PI / 180);
|
ctx.drawImage(base, 0, 0);
|
||||||
ctx.drawImage(avatar, 234, 274, 225, 225);
|
ctx.rotate(-11 * Math.PI / 180);
|
||||||
ctx.rotate(11 * Math.PI / 180);
|
ctx.drawImage(avatar, 234, 274, 225, 225);
|
||||||
};
|
ctx.rotate(11 * Math.PI / 180);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'dexter.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'dexter.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'dexter.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'dexter.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -32,25 +32,29 @@ module.exports = class GreyscaleCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(256, 256);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(256, 256);
|
||||||
const avatar = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(avatar, 0, 0, 256, 256);
|
const generate = () => {
|
||||||
const imgData = ctx.getImageData(0, 0, 256, 256);
|
ctx.drawImage(avatar, 0, 0, 256, 256);
|
||||||
const { data } = imgData;
|
const imgData = ctx.getImageData(0, 0, 256, 256);
|
||||||
for (let i = 0; i < data.length; i += 4) {
|
const { data } = imgData;
|
||||||
const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
|
for (let i = 0; i < data.length; i += 4) {
|
||||||
data[i] = brightness;
|
const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
|
||||||
data[i + 1] = brightness;
|
data[i] = brightness;
|
||||||
data[i + 2] = brightness;
|
data[i + 1] = brightness;
|
||||||
}
|
data[i + 2] = brightness;
|
||||||
ctx.putImageData(imgData, 0, 0);
|
}
|
||||||
};
|
ctx.putImageData(imgData, 0, 0);
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
};
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'greyscale.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'greyscale.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -31,24 +31,28 @@ module.exports = class InvertCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(256, 256);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(256, 256);
|
||||||
const avatar = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(avatar, 0, 0, 256, 256);
|
const generate = () => {
|
||||||
const imgData = ctx.getImageData(0, 0, 256, 256);
|
ctx.drawImage(avatar, 0, 0, 256, 256);
|
||||||
const { data } = imgData;
|
const imgData = ctx.getImageData(0, 0, 256, 256);
|
||||||
for (let i = 0; i < data.length; i += 4) {
|
const { data } = imgData;
|
||||||
data[i] = 255 - data[i];
|
for (let i = 0; i < data.length; i += 4) {
|
||||||
data[i + 1] = 255 - data[i + 1];
|
data[i] = 255 - data[i];
|
||||||
data[i + 2] = 255 - data[i + 2];
|
data[i + 1] = 255 - data[i + 1];
|
||||||
}
|
data[i + 2] = 255 - data[i + 2];
|
||||||
ctx.putImageData(imgData, 0, 0);
|
}
|
||||||
};
|
ctx.putImageData(imgData, 0, 0);
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
};
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'invert.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'invert.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+27
-23
@@ -35,28 +35,32 @@ module.exports = class RIPCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(507, 338);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(507, 338);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.drawImage(avatar, 158, 51, 200, 200);
|
ctx.drawImage(base, 0, 0);
|
||||||
const imgData = ctx.getImageData(158, 51, 200, 200);
|
ctx.drawImage(avatar, 158, 51, 200, 200);
|
||||||
const { data } = imgData;
|
const imgData = ctx.getImageData(158, 51, 200, 200);
|
||||||
for (let i = 0; i < data.length; i += 4) {
|
const { data } = imgData;
|
||||||
const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
|
for (let i = 0; i < data.length; i += 4) {
|
||||||
data[i] = brightness;
|
const brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
|
||||||
data[i + 1] = brightness;
|
data[i] = brightness;
|
||||||
data[i + 2] = brightness;
|
data[i + 1] = brightness;
|
||||||
}
|
data[i + 2] = brightness;
|
||||||
ctx.putImageData(imgData, 158, 51);
|
}
|
||||||
};
|
ctx.putImageData(imgData, 158, 51);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'rip.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'rip.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'rip.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'rip.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,21 +34,25 @@ module.exports = class SimbaCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 256
|
size: 256
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(500, 281);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(500, 281);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.rotate(-24 * Math.PI / 180);
|
ctx.drawImage(base, 0, 0);
|
||||||
ctx.drawImage(avatar, 75, 160, 130, 150);
|
ctx.rotate(-24 * Math.PI / 180);
|
||||||
ctx.rotate(24 * Math.PI / 180);
|
ctx.drawImage(avatar, 75, 160, 130, 150);
|
||||||
};
|
ctx.rotate(24 * Math.PI / 180);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'simba.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'simba.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'simba.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'simba.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,25 +34,29 @@ module.exports = class SteamCardCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 512
|
size: 512
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Roboto.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
const Image = Canvas.Image;
|
||||||
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'NotoEmoji-Regular.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Roboto.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
||||||
const canvas = new Canvas(494, 568);
|
Canvas.registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'NotoEmoji-Regular.ttf'), { family: 'Roboto' }); // eslint-disable-line max-len
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(494, 568);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.fillStyle = 'white';
|
const generate = () => {
|
||||||
ctx.fillRect(0, 0, 494, 568);
|
ctx.fillStyle = 'white';
|
||||||
ctx.drawImage(avatar, 25, 25, 450, 450);
|
ctx.fillRect(0, 0, 494, 568);
|
||||||
ctx.drawImage(base, 0, 0);
|
ctx.drawImage(avatar, 25, 25, 450, 450);
|
||||||
ctx.font = '30px Roboto';
|
ctx.drawImage(base, 0, 0);
|
||||||
ctx.fillText(user.username, 35, 48);
|
ctx.font = '30px Roboto';
|
||||||
};
|
ctx.fillText(user.username, 35, 48);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'steam-card.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'steam-card.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'steam-card.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'steam-card.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,25 +34,29 @@ module.exports = class TriggeredCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 512
|
size: 512
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(320, 371);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(320, 371);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.fillStyle = 'white';
|
const generate = () => {
|
||||||
ctx.fillRect(0, 0, 320, 371);
|
ctx.fillStyle = 'white';
|
||||||
ctx.drawImage(avatar, 0, 0, 320, 320);
|
ctx.fillRect(0, 0, 320, 371);
|
||||||
const imgData = ctx.getImageData(0, 0, 320, 320);
|
ctx.drawImage(avatar, 0, 0, 320, 320);
|
||||||
const { data } = imgData;
|
const imgData = ctx.getImageData(0, 0, 320, 320);
|
||||||
for (let i = 0; i < data.length; i += 4) data[i] = Math.max(255, data[i]);
|
const { data } = imgData;
|
||||||
ctx.putImageData(imgData, 0, 0);
|
for (let i = 0; i < data.length; i += 4) data[i] = Math.max(255, data[i]);
|
||||||
ctx.drawImage(base, 0, 0);
|
ctx.putImageData(imgData, 0, 0);
|
||||||
};
|
ctx.drawImage(base, 0, 0);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'triggered.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'triggered.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'triggered.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'triggered.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,19 +34,23 @@ module.exports = class WantedCommand extends Command {
|
|||||||
format: 'png',
|
format: 'png',
|
||||||
size: 512
|
size: 512
|
||||||
});
|
});
|
||||||
const Image = Canvas.Image;
|
try {
|
||||||
const canvas = new Canvas(741, 1000);
|
const Image = Canvas.Image;
|
||||||
const ctx = canvas.getContext('2d');
|
const canvas = new Canvas(741, 1000);
|
||||||
const base = new Image();
|
const ctx = canvas.getContext('2d');
|
||||||
const avatar = new Image();
|
const base = new Image();
|
||||||
const generate = () => {
|
const avatar = new Image();
|
||||||
ctx.drawImage(base, 0, 0);
|
const generate = () => {
|
||||||
ctx.drawImage(avatar, 150, 360, 430, 430);
|
ctx.drawImage(base, 0, 0);
|
||||||
};
|
ctx.drawImage(avatar, 150, 360, 430, 430);
|
||||||
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'wanted.png'));
|
};
|
||||||
const { body } = await snekfetch.get(avatarURL);
|
base.src = await fs.readFileAsync(path.join(__dirname, '..', '..', 'assets', 'images', 'wanted.png'));
|
||||||
avatar.src = body;
|
const { body } = await snekfetch.get(avatarURL);
|
||||||
generate();
|
avatar.src = body;
|
||||||
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'wanted.png' }] });
|
generate();
|
||||||
|
return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'wanted.png' }] });
|
||||||
|
} catch (err) {
|
||||||
|
return msg.say(`Oh no, the image generation failed: \`${err.message}\`. Try again later!`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ module.exports = class HangmanCommand extends Command {
|
|||||||
else return msg.say(`Too bad... It was ${word}...`);
|
else return msg.say(`Too bad... It was ${word}...`);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
this.playing.delete(msg.guild.id);
|
this.playing.delete(msg.guild.id);
|
||||||
return msg.say(`Oh no, an Error occurred! Try again later! \`${err.name}: ${err.message}\``);
|
return msg.say(`Oh no, an Error occurred: \`${err.message}\`. Try again later!`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xiaobot",
|
"name": "xiaobot",
|
||||||
"version": "26.0.0",
|
"version": "26.0.1",
|
||||||
"description": "Your personal server companion.",
|
"description": "Your personal server companion.",
|
||||||
"main": "Shard.js",
|
"main": "Shard.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user