goat
command
pair
No description
0
views
0
likes
0
installs
raw source
const { createCanvas, loadImage } = require('canvas');
const fs = require('fs');
const path = require("path");
module.exports = {
config: {
name: "pair",
author: 'Nyx x Ariyan',
category: "love"
},
onStart: async function({ api, event, usersData }) {
try {
const senderData = await usersData.get(event.senderID);
const senderName = senderData.name;
const threadData = await api.getThreadInfo(event.threadID);
const users = threadData.userInfo;
const myData = users.find(user => user.id === event.senderID);
if (!myData || !myData.gender) {
return api.sendMessage("❌ Undefined gender, cannot find match.", event.threadID, event.messageID);
}
const myGender = myData.gender;
let matchCandidates = [];
if (myGender === "MALE") {
matchCandidates = users.filter(user => user.gender === "FEMALE" && user.id !== event.senderID);
} else if (myGender === "FEMALE") {
matchCandidates = users.filter(user => user.gender === "MALE" && user.id !== event.senderID);
} else {
return api.sendMessage("❌ Undefined gender, cannot find match.", event.threadID, event.messageID);
}
if (matchCandidates.length === 0) {
return api.sendMessage("😔 No suitable match found in the group.", event.threadID, event.messageID);
}
const selectedMatch = matchCandidates[Math.floor(Math.random() * matchCandidates.length)];
const matchName = selectedMatch.name;
const lovePercentage = Math.floor(Math.random() * 100) + 1;
// Canvas part
const width = 800, height = 400;
const canvas = createCanvas(width, height);
const ctx = canvas.getContext('2d');
const background = await loadImage("https://i.postimg.cc/tRFY2HBm/0602f6fd6933805cf417774fdfab157e.jpg");
const senderAvatar = await loadImage(await usersData.getAvatarUrl(event.senderID));
const matchAvatar = await loadImage(await usersData.getAvatarUrl(selectedMatch.id));
ctx.drawImage(background, 0, 0, width, height);
ctx.drawImage(senderAvatar, 385, 40, 170, 170);
ctx.drawImage(matchAvatar, width - 213, 190, 180, 170);
const outputPath = path.join(__dirname, 'pair_output.png');
const out = fs.createWriteStream(outputPath);
const stream = canvas.createPNGStream();
stream.pipe(out);
out.on('finish', () => {
const message = `🥰𝐒𝐮𝐜𝐜𝐞𝐬𝐬𝐟𝐮𝐥 𝐩𝐚𝐢𝐫𝐢𝐧𝐠\n` +
`• ${senderName}🎀\n` +
`• ${matchName}🎀\n` +
`💌𝐖𝐢𝐬𝐡 𝐲𝐨𝐮 𝐭𝐰𝐨 𝐡𝐮𝐧𝐝𝐫𝐞𝐝 𝐲𝐞𝐚𝐫𝐬 𝐨𝐟 𝐡𝐚𝐩𝐩𝐢𝐧𝐞𝐬𝐬💕\n\n` +
`𝐋𝐨𝐯𝐞 𝐩𝐞𝐫𝐜𝐞𝐧𝐭𝐚𝐠𝐞 ${lovePercentage}%💙`;
api.sendMessage({
body: message,
attachment: fs.createReadStream(outputPath)
}, event.threadID, () => fs.unlinkSync(outputPath), event.messageID);
});
} catch (error) {
console.error(error);
return api.sendMessage("❌ An error occurred: " + error.message, event.threadID, event.messageID);
}
}
};