orm and profile first implementation

This commit is contained in:
Stanislaw
2022-04-20 15:20:22 +02:00
parent 4f11342db8
commit f308503816
14 changed files with 597 additions and 265 deletions

View File

@@ -2,20 +2,20 @@ module.exports = {
name: "dodajodznake",
async execute(cl, msg, args) {
const { get } = require("https");
const { createWriteStream, exists } = require("fs");
const { createWriteStream, access } = require("fs");
if (msg.member.permissions.has(0x20)) {
if (msg.attachments.at(0) != null) {
console.log("attachmentadded");
msg.attachments.each((x) => {
if (x.contentType.startsWith("application/json")) {
exists(`src/badges/json/${x.name}`, (e) => {
access(`src/badges/json/${x.name}`, (e) => {
if (!e) {
const file = createWriteStream(`src/badges/json/${x.name}`);
get(x.url, (res) => {
res.pipe(file);
});
} else {
msg.channel.send("nuda");
msg.channel.send("Taka odznaka już istnieje");
}
});
} else if (x.contentType.startsWith("image/")) {
@@ -26,7 +26,7 @@ module.exports = {
res.pipe(file);
});
} else {
msg.channel.send("nuda");
msg.channel.send("Taka odznaka już istnieje");
}
});
}

View File

@@ -1,22 +0,0 @@
module.exports = {
name: "profil",
execute(cl, msg, args, connect) {
const { profil } = require("../functions/postgres");
const { MessageEmbed } = require("discord.js");
async () => {
const user = profil(connect, msg.author.id);
};
console.debug(user);
/*if (user) {
const embed = new MessageEmbed()
.setColor("#F5F5F5")
.setTitle(msg.author.name)
.addFields(
{ name: "Regular field title", value: "Some value here" },
{ name: "Regular field title", value: "Some value here" },
{ name: "Regular field title", value: "Some value here" },
{ name: "Regular field title", value: "Some value here" }
);
}*/
},
};

56
src/cmds/profile.js Normal file
View File

@@ -0,0 +1,56 @@
const { ReactionUserManager } = require("discord.js");
module.exports = {
name: "profile",
async execute(cl, msg, args, connect) {
const { profile } = require("../functions/postgres");
const { roundRect, expThreshold } = require("../functions/tools");
const canvas = require("canvas");
await profile(connect, msg.author.id).then((user) => {
canvas.registerFont("./src/fonts/Lexend-Bold.ttf", {
family: "LexendBold",
});
canvas.registerFont("./src/fonts/Lexend-Thin.ttf", {
family: "LexendThin",
});
const canva = canvas.createCanvas(1024, 256);
let context = canva.getContext("2d");
context.fillStyle = "#484848";
roundRect(context, 0, 0, 1024, 256, 25);
context.fill();
context.font = '48px "LexendBold"';
context.fillStyle = "#FFFFFF";
context.fillText(msg.author.tag, 244, 24 + 48);
context.fillText("Lvl " + user.lvl, 850, 24 + 48);
context.font = '25px "LexendThin"';
context.fillText(user.msg_count + " messages sent", 244, 72 + 25);
context.font = '24px "LexendThin"';
context.fillText(expThreshold(user.lvl + 1) + " exp", 810, 164 + 24);
context.fillText(user.exp + " exp", 250, 164 + 24);
context.fillStyle = "#242424";
roundRect(context, 244, 200, 700, 30, 50);
context.fill();
context.fillStyle = "#61F2EA";
roundRect(
context,
244,
200,
700 *
((user.exp - expThreshold(user.lvl)) / expThreshold(user.lvl + 1)),
30,
50
);
context.fill();
roundRect(context, 34, 34, 188, 188, 100);
canvas
.loadImage(msg.author.avatarURL({ format: "png" }))
.then((image) => {
context.clip();
context.drawImage(image, 34, 34, 188, 188);
msg.reply({
files: [canva.toBuffer()],
});
});
});
},
};