LiltenBot / plugins /fun-tools.js
mrfrank-ofc's picture
Upload 63 files
8d8b0ad verified
raw
history blame
10.2 kB
const axios = require('axios')
const fetch = require('node-fetch');
const {cmd , commands} = require('../command')
// ship command
const toM = (a) => '@' + a.split('@')[0];
cmd({
pattern: "ship",
alias: ["cup", "love"],
desc: "Randomly pairs the command user with another group member.",
react: "❤️",
category: "fun",
filename: __filename,
},
async (conn, mek, m, { from, isGroup, groupMetadata, reply }) => {
try {
// Ensure command is used in a group
if (!isGroup) {
return reply("This command can only be used in groups.");
}
// Get group participants
const participants = groupMetadata.participants.map(p => p.id);
if (participants.length < 2) {
return reply("Not enough members to pair.");
}
// Sender of the command
const sender = m.sender;
// Randomly select another participant
let randomParticipant;
do {
randomParticipant = participants[Math.floor(Math.random() * participants.length)];
} while (randomParticipant === sender);
// Pairing message
const message = `${toM(sender)} ❤️ ${toM(randomParticipant)}\nCongratulations 💖🍻`;
// Send the message with contextInfo
await conn.sendMessage(from, {
text: message,
contextInfo: {
mentionedJid: [sender, randomParticipant], // Mention both users
forwardingScore: 999,
isForwarded: true,
forwardedNewsletterMessageInfo: {
newsletterJid: '120363304325601080@newsletter',
newsletterName: 'SubZero Bot',
serverMessageId: 143,
},
},
});
} catch (e) {
console.error("Error in ship command:", e);
reply("An error occurred while processing the command. Please try again.");
}
});
// Insult
cmd({
pattern: 'insult',
desc: 'Get a random insult',
category: "fun",
react: '🤥',
},
async (Void, citel) => {
try {
let response = await axios.get('https://evilinsult.com/generate_insult.php?lang=en&type=json');
let data = response.data;
if (!data || !data.insult) {
return citel.reply('Unable to retrieve an insult. Please try again later.');
}
let insult = data.insult;
return citel.reply(`*Insult:* ${insult}`);
} catch (error) {
citel.reply(`Error: ${error.message || error}`);
}
});
// joke
cmd({
pattern: "joke",
desc: "😂 Get a random joke",
react: "🤣",
category: "fun",
filename: __filename
},
async (conn, mek, m, { from, q, reply }) => {
try {
const url = 'https://official-joke-api.appspot.com/random_joke'; // API for random jokes
const response = await axios.get(url);
const joke = response.data;
const jokeMessage = `
😂 *Here's a random joke for you!* 😂
*${joke.setup}*
${joke.punchline} 😄
> *© ᴘᴏᴡᴇʀᴇᴅ ʙʏ Jᴀᴡᴀᴅ TᴇᴄʜX*`;
return reply(jokeMessage);
} catch (e) {
console.log(e);
return reply("⚠️ En Error Appears.");
}
});
// fact
cmd({
pattern: "fact",
desc: "🧠 Get a random fun fact",
react: "🧠",
category: "fun",
filename: __filename
},
async (conn, mek, m, { from, q, reply }) => {
try {
const url = 'https://uselessfacts.jsph.pl/random.json?language=en'; // API for random facts
const response = await axios.get(url);
const fact = response.data.text;
const funFact = `
🧠 *SubZero Random Fun Fact* 🧠
${fact}
Isn't that interesting? 😄
`;
return reply(funFact);
} catch (e) {
console.log(e);
return reply("⚠️ An error occurred while fetching a fun fact. Please try again later.");
}
});
// fancy
cmd({
pattern: "fancy",
alias: ['font', "style"],
react: '✍️',
desc: "Convert text into various fonts.",
category: "tools",
filename: __filename
}, async (conn, mek, m, { from, quoted, body, args, q, reply }) => {
try {
if (!q) {
return reply("Please provide text to convert into fonts. Eg .fancy Mr Frank");
}
let response = await axios.get('https://www.dark-yasiya-api.site/other/font?text=' + encodeURIComponent(q));
let data = response.data;
if (!data.status) {
return reply("Error fetching fonts. Please try again later.");
}
let fontResults = data.result.map(font => '*' + font.name + ":*\n" + font.result).join("\n\n");
// Message formatting
let message = `*SUBZERO FANCY FONTS*:\n\n${fontResults}\n\n> *© Gᴇɴᴇʀᴀᴛᴇᴅ Bʏ SᴜʙZᴇʀᴏ*`;
// Sending the message with context info
await conn.sendMessage(
from,
{
text: message,
contextInfo: {
mentionedJid: [m.sender],
forwardingScore: 999,
isForwarded: true,
forwardedNewsletterMessageInfo: {
newsletterJid: '120363304325601080@newsletter',
newsletterName: 'ᴍʀ ғʀᴀɴᴋ ᴏғᴄ',
serverMessageId: 143
}
}
},
{ quoted: mek }
);
} catch (error) {
console.error(error);
reply("An error occurred while fetching fonts.");
}
});
// pick-up line
cmd({
pattern: "pickupline",
alias: ["pickup"],
desc: "Get a random pickup line from the API.",
react: "💬",
category: "fun",
filename: __filename,
},
async (conn, mek, m, { from, reply }) => {
try {
// Fetch pickup line from the API
const res = await fetch('https://api.popcat.xyz/pickuplines');
if (!res.ok) {
throw new Error(`API request failed with status ${res.status}`);
}
const json = await res.json();
// Log the API response (for debugging purposes)
console.log('JSON response:', json);
// Format the pickup line message
const pickupLine = `*Here's a pickup line for you:*\n\n"${json.pickupline}"\n\n> *© Dropped By Mr Frank OFC*`;
// Send the pickup line to the chat
await conn.sendMessage(from, { text: pickupLine }, { quoted: m });
} catch (error) {
console.error("Error in pickupline command:", error);
reply("Sorry, something went wrong while fetching the pickup line. Please try again later.");
}
});
// char
cmd({
pattern: "character",
alias: ["char"],
desc: "Check the character of a mentioned user.",
react: "🔥",
category: "fun",
filename: __filename,
},
async (conn, mek, m, { from, isGroup, text, reply }) => {
try {
// Ensure the command is used in a group
if (!isGroup) {
return reply("This command can only be used in groups.");
}
// Extract the mentioned user
const mentionedUser = m.message.extendedTextMessage?.contextInfo?.mentionedJid?.[0];
if (!mentionedUser) {
return reply("Please mention a user whose character you want to check.");
}
// Define character traits
const userChar = [
"Sigma",
"Generous",
"Grumpy",
"Overconfident",
"Obedient",
"Good",
"Simp",
"Kind",
"Patient",
"Pervert",
"Cool",
"Helpful",
"Brilliant",
"Sexy",
"Hot",
"Gorgeous",
"Cute",
];
// Randomly select a character trait
const userCharacterSelection =
userChar[Math.floor(Math.random() * userChar.length)];
// Message to send
const message = `Character of @${mentionedUser.split("@")[0]} is *${userCharacterSelection}* 🔥⚡`;
// Send the message with mentions
await conn.sendMessage(from, {
text: message,
mentions: [mentionedUser],
}, { quoted: m });
} catch (e) {
console.error("Error in character command:", e);
reply("An error occurred while processing the command. Please try again.");
}
});
// Truth command
cmd({
pattern: "truth",
alias: ["t", "truthquestion"],
react: '❔',
desc: "Get a random truth question.",
category: "fun",
use: '.truth',
filename: __filename
},
async (conn, mek, m, { from, args, reply }) => {
try {
// Inform the user
reply("*🔍 Fetching a truth question...*");
// API URL for truth
const truthApiUrl = `https://api.davidcyriltech.my.id/truth`;
// Fetch truth question from the API
const truthResponse = await axios.get(truthApiUrl);
if (!truthResponse.data || !truthResponse.data.success) {
return reply("❌ Failed to fetch a truth question. Please try again later.");
}
// Extract truth question
const truthQuestion = truthResponse.data.question;
if (truthQuestion) {
reply(`*Truth Question:* ${truthQuestion}`);
}
} catch (e) {
console.error(e);
reply("❌ An error occurred while fetching the truth question.");
}
});
// Dare command
cmd({
pattern: "dare",
alias: ["d", "darequestion"],
react: '🔥',
desc: "Get a random dare question.",
category: "fun",
use: '.dare',
filename: __filename
},
async (conn, mek, m, { from, args, reply }) => {
try {
// Inform the user
reply("*🔥 Fetching a dare question...*");
// API URL for dare
const dareApiUrl = `https://api.davidcyriltech.my.id/dare`;
// Fetch dare question from the API
const dareResponse = await axios.get(dareApiUrl);
if (!dareResponse.data || !dareResponse.data.success) {
return reply("❌ Failed to fetch a dare question. Please try again later.");
}
// Extract dare question
const dareQuestion = dareResponse.data.question;
if (dareQuestion) {
reply(`*Dare:* ${dareQuestion}`);
}
} catch (e) {
console.error(e);
reply("❌ An error occurred while fetching the dare question.");
}
});