const fs = require("fs"); const path = require("path"); const Embed = require("../functions/embed") const Uploader = require("revolt-uploader"); module.exports = { config: { name: "gaydar", usage: true, cooldown: 5000, available: true, permissions: [], roles: [], dm: false, aliases: ['gd'] }, run: async (client, message, args, db) => { try { function randomInteger(min, max) { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; } let targetUser; // Check if there's a mentioned user if (message.mentionIds && message.mentionIds.length > 0) { try { const server = await client.servers.fetch(message.server.id); const member = await server.fetchMember(message.mentionIds[0]); if (!member || !member.id || !member.id.user) { throw new Error("Invalid member structure"); } // Fetch the user using the user ID from the member object targetUser = await client.users.fetch(member.id.user); if (!targetUser || !targetUser.username) { throw new Error("Could not fetch user information"); } } catch (fetchError) { console.error("Fetch error details:", fetchError.message); return message.reply({ embeds: [new Embed() .setDescription("Could not find the mentioned user.") .setColor(`#FF0000`)] }, false); } } else { // Use the command author if no user is mentioned targetUser = message.author; } if (!targetUser) { return message.reply({ embeds: [new Embed() .setDescription("Could not determine the target user.") .setColor(`#FF0000`)] }, false); } const amount = randomInteger(1, 100); const imagePath = path.join(__dirname, "../assets/gaydar.jpg"); // Check if file exists if (!fs.existsSync(imagePath)) { return message.reply({ embeds: [new Embed() .setDescription("Error: Required image file not found.") .setColor(`#FF0000`)] }, false); } // Upload the image as an attachment const attachment = await client.Uploader.uploadFile(imagePath, "gaydar.jpg"); // Send the message with the attachment await message.channel.sendMessage({ content: `#### ${targetUser.username} is ${amount}% gay.`, attachments: [attachment] }); } catch (error) { console.log(`${Date(Date.now().toString()).slice(0, 25)}`); console.log("User: " + message.author.username + ` [${message.authorId}] ` + " | Command: gaydar | Args: " + (args?.join(" ") || "NONE")); console.log(error.message); return message.reply({ embeds: [new Embed() .setDescription("An error occurred while processing the command.") .setColor(`#FF0000`)] }, false); } }, };