mirror of
https://github.com/ION606/selmerBot.git
synced 2026-05-15 05:36:54 +00:00
Added more moderation commands and upgraded the 'audio' command
This commit is contained in:
+39
-10
@@ -1,48 +1,77 @@
|
||||
const { modHelp } = require('../admin/moderation.js');
|
||||
|
||||
module.exports ={
|
||||
name: "help",
|
||||
description: "Gets help for all of Selmer Bot's commands",
|
||||
execute(message, args, Discord, Client, bot) {
|
||||
|
||||
const groups = new Map([['SBspec', ['arrow', 'extracredit', 'profile', 'quotes']], ['adminCommands', [ 'setup', 'lock', 'unlock', 'serverLock' ]]]);
|
||||
|
||||
if (args[0] == 'econ') {
|
||||
let temp = "***Selmer Bot Commands (Econ):***\n";
|
||||
temp += bot.commands.get('econ').econHelp();
|
||||
temp += `\n\n(remember to use _'${bot.prefix}'_ before the command!)`;
|
||||
return message.channel.send(temp);
|
||||
|
||||
}
|
||||
else if (args[0] == 'game') {
|
||||
let temp = "***Selmer Bot Commands (Games):***\n";
|
||||
temp += bot.commands.get('game').allGames.join(", ");
|
||||
temp += `\n\n(remember to use _'${bot.prefix}game'_ before the command!)`;
|
||||
return message.channel.send(temp);
|
||||
|
||||
}
|
||||
else if (args[0] == 'admin') {
|
||||
let temp = `__**Selmer Bot Admin Commands**__\n`
|
||||
Array.from(groups.get('adminCommands')).forEach(commName => {
|
||||
let comm = bot.commands.get(commName);
|
||||
temp += `${comm.name.toLowerCase()} - _${comm.description}_\n`;
|
||||
});
|
||||
|
||||
temp += `__**Selmer Bot Moderation Commands**__\n`
|
||||
temp += modHelp();
|
||||
|
||||
//Uses a different format, only the server owner can use it
|
||||
temp += '\n_setup_ - ***SERVER OWNER ONLY*** - use _!setup help_\n';
|
||||
temp += `\n\n(remember to use _'${bot.prefix}'_ before the command!)`;
|
||||
|
||||
return message.channel.send(temp);
|
||||
}
|
||||
|
||||
let temp = "***Selmer Bot Commands:***\n";
|
||||
|
||||
bot.commands.sort((a, b) => {if (a.name && b.name) { return a.name[0] < b.name[0]} else {return false;} });
|
||||
|
||||
bot.commands.forEach((comm) => {
|
||||
const noPostList = Array.from(groups.values()).flat();
|
||||
const sList = groups.get('SBspec');
|
||||
|
||||
bot.commands.forEach((comm) => {
|
||||
if (comm.name != 'verify') {
|
||||
if (comm.name == 'econ') {
|
||||
temp += `econ - use _!help econ_\n`;
|
||||
temp += `**econ** - use _!help econ_\n`;
|
||||
}
|
||||
else if (comm.name == 'game') {
|
||||
temp += `game - use _!help game_\n`;
|
||||
} /* else if (comm.name == 'setup') {
|
||||
temp += `setup - use _!setup_\n`;
|
||||
}*/
|
||||
temp += `**games** - use _!help game_\n`;
|
||||
}
|
||||
else {
|
||||
if (comm.name && comm.description) {
|
||||
if (comm.name && comm.description && !noPostList.includes(comm.name)) {
|
||||
temp += `${comm.name.toLowerCase()} - _${comm.description}_\n`;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//Uses a different format, only the server owner can use it
|
||||
temp += '_setup_ - ***SERVER OWNER ONLY*** - use _!setup help_\n';
|
||||
|
||||
temp += '**admin/moderation commands** - use !help admin\n';
|
||||
|
||||
//Selmer Specific
|
||||
temp += '\n__**Selmer\'s \\*Special\\* Commands**__\n'
|
||||
sList.forEach((commName) => {
|
||||
const comm = bot.commands.get(commName);
|
||||
temp += `${comm.name.toLowerCase()} - _${comm.description}_\n`;
|
||||
})
|
||||
|
||||
temp += `\n_(remember to use '${bot.prefix}' before the command!)_`;
|
||||
|
||||
message.channel.send(temp);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,311 @@
|
||||
// https://ponly.com/200-pick-up-lines/
|
||||
|
||||
const cheesy = [
|
||||
'If I said you had a good body would you hold it against me?',
|
||||
'Do you believe in love at first sight, or should I walk past again?',
|
||||
'Are you a magician? Because you just cast a spell on me.',
|
||||
'You’re so sweet you must be made out of chocolate.',
|
||||
'Did you hurt yourself when you fell from Heaven?',
|
||||
'Are you a cat? Because you look purrrfect!',
|
||||
'Are you tired? Because you’ve been running through my mind all day.',
|
||||
'Hold out hand: “Hey I’m going for a walk. Will you hold this for me?”',
|
||||
'I’m not a photographer, but I can picture me and you together.”',
|
||||
'Are you a cake, “Because I want a piece of that.”',
|
||||
'Are you a bank loan? Well, you’ve certainly got my interest. ',
|
||||
'If you were a triangle, you’d be acute one!',
|
||||
'Your hand looks heavy, let me hold it for you.',
|
||||
'I think you are suffering from a lack of Vitamin Me.',
|
||||
'On a scale of 1 to 10, you’re a 9 and I’m the 1 you lack.',
|
||||
'Do you like Harry Potter? Because I adumbledore you.',
|
||||
'Was your dad a boxer? Because damn, you’re a knockout!',
|
||||
'Your lips look lonely. Would they like to meet mine?',
|
||||
'I was wondering if you had an extra heart. Mine was just stolen.',
|
||||
'Your phone has GPS, right? Because I’m totally going to get lost in those *insert color* eyes.',
|
||||
'Would you grab my arm, so I can tell my friends I’ve been touched by an angel?',
|
||||
'Can I have your picture so I can show Santa what I want for Christmas?',
|
||||
'Your body is 65% water and I’m thirsty.',
|
||||
'Excuse me, do you have a band-aid? Cause I scraped my knee falling for you.',
|
||||
'Do I know you? Cause you look a lot like my next girlfriend/boyfriend.',
|
||||
'Do you know what my shirt is made of? Boyfriend/girlfriend material?',
|
||||
'They say Disneyland is the happiest place on earth. Well apparently, no one has ever been standing next to you.',
|
||||
'You look cold. Want to use me as a blanket?',
|
||||
'Are you an alien? Because you just abducted my heart.',
|
||||
'Did your license get suspended for driving all these guys crazy?',
|
||||
'For some reason, I was feeling a little off today. But when you came along, you definitely turned me on.',
|
||||
'Can I borrow your phone? I need to call God and tell him I’ve found his missing angel.',
|
||||
'Hey, you’re pretty and I’m cute. Together we’d be Pretty Cute.',
|
||||
'Can I follow you home? Cause my parents always told me to follow my dreams.',
|
||||
'What’s a smart, attractive man like myself doing without your phone number?',
|
||||
'I seem to have lost my phone number. Can I have yours?',
|
||||
'I’m lost. Can you give me directions to your heart?',
|
||||
'I would say God bless you, but it looks like he already did.',
|
||||
'Are you a parking ticket? Cause you’ve got fine written all over you.',
|
||||
'Is your name Google? Because you got everything I am searching for.',
|
||||
'Are you sure you’re not tired? You’ve been running through my mind all day.',
|
||||
'Did I tell you I’m writing a book? It’s a phone book and it’s missing your number.',
|
||||
'Is there an airport nearby or is it my heart taking off?',
|
||||
'Life without you would be like a broken pencil… pointless.',
|
||||
'Are you from Tennessee? Because you’re the only ten I see!',
|
||||
'I must be in a museum because you truly are a work of art.',
|
||||
'I’m not stalking you, I’m doing research!',
|
||||
'If I could rearrange the alphabet, I’d put U and I together.',
|
||||
'I’m no mathematician, but I’m pretty good with numbers. Tell you what, give me yours and watch what I can do with it.',
|
||||
'Aside from being sexy, what do you do for a living?'
|
||||
];
|
||||
|
||||
const funny = [
|
||||
'Are you wi-fi? Cause I’m totally feeling a connection.',
|
||||
'If I had a nickel for every time I saw someone as beautiful as you, I’d have five cents.',
|
||||
'I’d like to take you to the movies, but they don’t let you bring in your own snacks.',
|
||||
'Are you Australian? Because you meet all of my koalafications.',
|
||||
'Know what’s on the menu? Me-N-U.',
|
||||
'Your middle name must be Gillette. Because you’re the best a man can get!',
|
||||
'You look so familiar. Didn’t we take a class together? I could’ve sworn we had chemistry.',
|
||||
'You and I are like nachos with jalapeños. I’m super cheesy, you’re super hot, and we belong together.',
|
||||
'Knock-knock. (Who’s there?) When where? (When where who?) Tomorrow night, my house, you.',
|
||||
'Do you like Star Wars? Cause Yoda only one for me.',
|
||||
'Go ahead, feel my shirt. It’s made of boyfriend material!',
|
||||
'If you were a Transformer you’d be Optimus Fine!',
|
||||
'Do you believe in love at first sight, or should I walk past you again?',
|
||||
'I’m learning about important dates in history. Wanna be one of them?',
|
||||
'I seem to have lost my phone number. Can I have yours?',
|
||||
'Are you a parking ticket? Cause you’ve got fine written all over you!',
|
||||
'Did you invent the airplane? Because you seem just Wright for me!',
|
||||
'I was wondering if you had an extra heart…because mine was just stolen.',
|
||||
'Are you Siri? Because you autocomplete me!',
|
||||
'I hope you know CPR, because you are taking my breath away!',
|
||||
'If I had four quarters to give to the four prettiest women in the world, you would have a dollar!',
|
||||
'Let me guess, your middle name is Gillette, right? Because you’re the best a man can get!',
|
||||
'Your eyes are bluer than the Atlantic Ocean, and I don’t mind being lost at sea.',
|
||||
'If you were a burger at McDonald’s, you’d be the McGorgeous.',
|
||||
'Are you a camera? Because every time I look at you, I smile.',
|
||||
'Is there an airport nearby, or was that just my heart taking off?',
|
||||
'Are you a loan? ‘Cause you’ve got my interest!',
|
||||
'I’m in the mood for pizza. A pizza you, that is!',
|
||||
'Are you a 45-degree angle? Because you’re a-cutie!',
|
||||
'You’re so sweet, you could put Hershey’s out of business!',
|
||||
'I’m good at algebra; I can replace your X and you wouldn’t need to figure out Y.',
|
||||
'I’m really glad I just bought life insurance, because when I saw you, my heart stopped.',
|
||||
'If I had to rate you from 1 to 10, I’d give you a 9, because I’m the 1 you’re missing.',
|
||||
'You must be jelly, cause jam don’t shake like that.',
|
||||
'You must be a bank loan, cause you’ve got my interest.',
|
||||
'I’ve got 1-ply, I’ve got 2-ply, but all I really want is your re-ply.',
|
||||
'If nothing lasts forever, will you be my nothing?',
|
||||
'If you were a phaser on Star Trek, you’d be set to stun!',
|
||||
'Is your name Google? Because you have everything I’ve been searching for.',
|
||||
'Have you been covered in bees recently? I just assumed, because you look sweeter than honey.',
|
||||
'There must be something wrong with my eyes. I can’t take them off you.',
|
||||
'Are you from Tennessee? Because you’re the only Ten I See.',
|
||||
'You must be a campfire. Because you’re super hot and I want s’more.',
|
||||
'My buddies bet me that I wouldn’t be able to start a conversation with the most beautiful person here. How should we spend their money?',
|
||||
'Well, here I am. What are your other two wishes?',
|
||||
'Remember me? Oh, that’s right, I’ve only met you in my dreams.',
|
||||
'You must be made of cheese. Because you’re looking Gouda tonight!',
|
||||
'I’m glad I remembered to bring my library card. ‘Cause I am totally checking you out!',
|
||||
'If you were a vegetable, you would be a cute-cumber!',
|
||||
'I’m no mathematician, but I’m pretty good with numbers. Tell you what, give me yours and watch what I can do with it.'
|
||||
];
|
||||
|
||||
const smooth = [
|
||||
'Girl are those space pants? Because your butt is out of this world!',
|
||||
'I think you’re suffering from a lack of vitamin me.',
|
||||
'Kiss me if I’m wrong, but dinosaurs still exist, right?',
|
||||
'Excuse me, is your name Earl Grey? Because you look like a hot-tea!',
|
||||
'Can I borrow a kiss? I swear I’ll give it back!',
|
||||
'If you were a vegetable you’d be a cute cumber.',
|
||||
'Is summer over? Because I’m about to “fall” for you!',
|
||||
'There’s a massive clothes sale in my bedroom – everything is 100% off',
|
||||
'I lost my number…can I have yours?',
|
||||
'Are you a baker? ‘Cause those buns look TASTY.',
|
||||
'I’m not a hoarder but I really want to keep you forever.',
|
||||
'Is your name google? Because you’re everything I’ve been searching for.',
|
||||
'Are you an onion cos I want to remove your layers.',
|
||||
'Even if there wasn’t gravity on earth, I’d still fall for you.',
|
||||
'I’m glad I brought my library card because I’m checking you out.',
|
||||
'You don’t need keys to drive me crazy.',
|
||||
'Do you know what my shirt is made of? Girlfriend material?',
|
||||
'Do you smoke pot? Because weed be cute together.',
|
||||
'Are those mirrors in your pants? Because I can see myself in them!',
|
||||
'I was wondering if you had an extra heart? Mine was just stolen.',
|
||||
'Are those space pants? Because your butt looks out of this world.',
|
||||
'Is your name Chapstick? Because you’re da-balm.',
|
||||
'Do you have a map? Because I’m getting lost in your eyes.',
|
||||
'Do you have a bandaid? Cause I hurt my knee falling for you!',
|
||||
'Are you my phone charger? Because without you, I’d die.',
|
||||
'Like a broken pencil, life without you is pointless.',
|
||||
'We’re not socks. But I think we’d make a great pair.',
|
||||
'This may be cheesy, but I think you’re grate.',
|
||||
'Did it hurt? When you fell from heaven.',
|
||||
'I wish I could select all of your clothes and press delete.',
|
||||
'If you were a booger I’d pick you first ',
|
||||
'Did you sit in sugar? Because you have a sweet ass.',
|
||||
'We’re you born a mermaid, because you were a mermaid for me.',
|
||||
'Your hand looks heavy; can I hold it for you?',
|
||||
'Is your name honey? Cuz I’d love to drizzle you on my bland day.',
|
||||
'Of all the beautiful curves on your body, your smile is my favorite.',
|
||||
'I’m finding it really hard to breathe. U just keep on taking my breath away.',
|
||||
'Have you got the time… I’ve got the time if you’ve got the place!',
|
||||
'Are you glitter because you add sparkle to my life?',
|
||||
'Are you sitting on the F5 key? ‘Cause your ass is refreshing!',
|
||||
'Let’s commit the perfect crime- I’ll steal your heart, you steal mine.',
|
||||
'Do you wanna grab a coffee because I like you a latte?',
|
||||
'Hello! I guess you are looking for Mr. Right. Well, that’s me!',
|
||||
'My mom said she found a beautiful and intelligent girl for me. Is that you?',
|
||||
'How does it feel to be so gorgeous?',
|
||||
'What does it feel like to be the most beautiful girl in the room?',
|
||||
'If you were a transformer, you’d be Optimus Fine.',
|
||||
' Do you know what’s on today’s menu? It’s Me ‘n’ U.',
|
||||
'Are you a doctor? Because my heart beats faster when I see you.',
|
||||
'Are you Australian? Because you meet all of my koalafications.'
|
||||
]
|
||||
|
||||
|
||||
const best = [
|
||||
'Let me tie your shoes, cause I don’t want you falling for anyone else.',
|
||||
' Are you an omelette? Because you’re making me egg-cited!',
|
||||
'Did you sit in a pile of sugar? Cause you have a pretty sweet butt.',
|
||||
'Do you have a pencil? Cause I want to erase your past and write our future.',
|
||||
'Are you my Appendix? Because I have a funny feeling in my stomach that makes me feel like I should take you out.',
|
||||
'Are you a florist? Cause ever since I met you, my life has been Rosey.',
|
||||
'I wanna live in your socks so I can be with you every step of the way.',
|
||||
'If God made anything more beautiful than you, I’m sure he’d keep it for himself.',
|
||||
'Do you have a map? I’m getting lost in your eyes.',
|
||||
'I don’t have a library card, but do you mind if I check you out?',
|
||||
'Are you an orphanage? Cause I wanna give you kids.',
|
||||
'Do you have a sunburn, or are you always this hot?',
|
||||
'I was feeling a little off today, but you definitely turned me on.',
|
||||
'Are you a fruit, because Honeydew you know how fine you look right now?',
|
||||
'Do you live in a corn field, cause I’m stalking you.',
|
||||
'Sorry, but you owe me a drink. [Why?] Because when I looked at you, I dropped mine.',
|
||||
'Excuse me, is your name Earl Grey? Because you look like a hot-tea!',
|
||||
'I’m not a hoarder but I really want to keep you forever.',
|
||||
'Do you have a Band-Aid? Because I just scraped my knee falling for you.',
|
||||
'Are you a parking ticket? ‘Cause you’ve got fine written all over you.',
|
||||
'Are you mexican? Because you’re my juan and only!',
|
||||
'Do you drink Pepsi? Because you’re so-da-licious!',
|
||||
'Do I know you? Cause you look exactly like my next girlfriend.',
|
||||
'I’m no organ donor but I’d be happy to give you my heart.',
|
||||
'I seem to have lost my phone number. Can I have yours?',
|
||||
'Is your nickname Chapstick? Because you’re da balm!',
|
||||
'I’m not staring at your b00bs. I’m staring at your heart.',
|
||||
'Can I take your picture to prove to all my friends that angels do exist?',
|
||||
'I’ll give up my morning cereal to spoon you instead.',
|
||||
'Do you want to see a picture of a beautiful person? (hold up a mirror)',
|
||||
'I’m not drunk, I’m just intoxicated by YOU.',
|
||||
'I was blinded by your beauty… I’m going to need your name and number for insurance purposes.',
|
||||
'Is there an airport nearby or is that just my heart taking off?',
|
||||
'There must be a lightswitch on my forehead because everytime I see you, you turn me on!',
|
||||
'Hi, I’m writing a term paper on the finer things in life, and I was wondering if I could interview you?',
|
||||
'Have you been to the doctor lately? Cause I think you’re lacking some Vitamin Me.',
|
||||
'Can I follow you home? Cause my parents always told me to follow my dreams.',
|
||||
'You look so familiar… didn’t we take a class together? I could’ve sworn we had chemistry.',
|
||||
'Hi, I’m Mr. Right. Someone said you were looking for me?',
|
||||
'Do you like Nintendo? Because Wii would look good together.',
|
||||
'If you were a flower you’d be a damnnn-delion',
|
||||
'If you were ground coffee, you’d be Espresso cause you’re so fine.',
|
||||
'If I had a star for every time you brightened my day, I’d have a galaxy in my hand.',
|
||||
'Damn, if being sexy was a crime, you’d be guilty as charged!',
|
||||
'I was wondering if you had an extra heart? Mine seems to have been stolen',
|
||||
'Do you smoke pot? Because weed be cute together.',
|
||||
'I thought happiness started with an H. Why does mine start with U?',
|
||||
'Are you a campfire? Cause you are hot and I want s’more.',
|
||||
'If you were a tropical fruit, you’d be a Fine-apple!',
|
||||
'Are you a banana? Because I find you a-peeling'
|
||||
]
|
||||
|
||||
const anime = [
|
||||
'Hey darling, I must be in Infinite Tsukuyomi, cause you’re like a dream come true. (Naruto)',
|
||||
'Do you have a pen? So I can write your virginity in my death note. (Death Note)',
|
||||
'Our love is over 9000. Know what I am Saiyan? (Dragon Ball)',
|
||||
'Do you believe in fate? How about you stay the night? (Fate)',
|
||||
'Are you a trap card? Because I’ve Fallen for you. (Yu-Gi-Oh)',
|
||||
'Baby, you can call me Luffy, because I’ll bend anyway you want me to. (One Piece)',
|
||||
'I don’t need 99 souls. All I need is yours. (Soul Eater)',
|
||||
'Did you like Ghostory? How about making our story? (Ghostory)',
|
||||
'You’re hotter than the Amaterasu. (Naruto)',
|
||||
'I know a mystery even Detective Conan can’t solve: The mystery of how you got so damn beautiful! (Case Closed)',
|
||||
'Girl have you mastered the Rasengan? Because every time your hand touches me you make me dizzy. (Naruto)',
|
||||
'Zoro has the three sword style. But I’m really good with my one sword. (One Piece)',
|
||||
'You must be better than Kuuhaku. Because when I first saw you, you already won my heart. (No Game No Life)',
|
||||
'If I just had a Geass, I’d command you to be mine. (Code Geass)',
|
||||
'Call me All Might cause I’m just looking to Texas Smash. (My Hero Academia)',
|
||||
'Something is rising and it isn’t the shield hero. (The Rising of the Shield Hero)',
|
||||
'I wish I was a demon because I really want you to slay me tonight. (Demon Slayer)',
|
||||
'Are you a Wing Spiker? Cause you make my pulse spike too! (Haikyuu)',
|
||||
'Are you a part of the phantom thieves? Because you just stole my heart. (Persona 5)',
|
||||
'Is your name Erza? Cause my cheeks go Scarlet when I think of you. (Fairy Tale)',
|
||||
'Do you have the Byakugaan, because it feels like you can see right through my Heart. (Naruto)',
|
||||
'Is your name Levi? Because I love you GAJEEL-ION times more than Jet and Droy. (Fairy Tale)',
|
||||
'Jeagar on the streets, Titan in the bed. (Attack on Titan )',
|
||||
'You’re the hospital bed for my Deku. (My Hero Academia)',
|
||||
'I was just checking you out from across the room with my Sharingan. (Naruto)',
|
||||
'Are you Chisaki? Because I wanna Detroit smash you. (My Hero Academia)',
|
||||
'Are you Nezuko? Because I want to be in your box. (Demon Slayer)',
|
||||
'Just say yes and I’ll give you more than seven eurekas. (Eureka Seven)',
|
||||
'You remind me of Menma. Because even when I can’t see you, I still feel you inside my heart. (Anohana)',
|
||||
'Are you Gaara? Because love is written all over your face. (Naruto)',
|
||||
'Are you Karasuno’s Captain? Because you’re my number one. (Haikyuu)',
|
||||
'Orochimaru: Be my vessel, I want to be inside you. (Naruto)',
|
||||
'Are you Kikyo? Because I think you shot an arrow through my heart. (Inuyasha)',
|
||||
'Are you from dragon ball, because I wanna blow my Picciload in you. (Dragon Ball)',
|
||||
'Are you Makise Kurisu? Because I will travel world lines to be with you. (Steins;Gate)',
|
||||
'Is your name Cana? Um, Cana call you mine? (Fairy Tail Guild)',
|
||||
'Let’s have a future diary. A diary of the future of you and me. (Future Diary)',
|
||||
'You’re so sexy and that’s a deadly sin! (The Seven Deadly Sins)',
|
||||
'Don’t need to be a phantom thief to steal your heart.',
|
||||
'Show me your Bankai, big boy. (Bleach)',
|
||||
'Did Buu attack you? Because you’re as sweet as candy. (Dragon Ball)',
|
||||
'Lelouch Vi Britannia commands you to give me your number. (Code Geass)',
|
||||
'Are you a tuner monster? Because you’re powering up my Syncro. (Yu-Gi-Oh!)',
|
||||
'Damn girl, Are you Kira Yoshikage? Cause you blow me away. (JoJo’s Bizarre Adventure)',
|
||||
'I’d trade an arm and a leg to get a piece of your philosopher’s stone. (Fullmetal Alchemist)',
|
||||
'Are you a pokemon? Because I wanna Peak-at-you? (Pokemon)',
|
||||
'Roses are red, Light is dead, will you be the butter to my bread? (Death Note)',
|
||||
'Hey Girl, you Bulma mind. (Dragon Ball)',
|
||||
'Are you Saitama? Because you got me down in one move. (One-Punch Man)',
|
||||
'Hey! Are you the railgun? Because I can feel a spark. (A Certain Scientific Railgun)',
|
||||
'Are you a loli? Because you’re worth going to jail for. (A lolicon)',
|
||||
'Are you from Howl’s Moving Castle? Because you take my spirit away. (Howl’s Moving Castle)',
|
||||
'I can be the Aizawa to your sleeping bag. (My Hero Academia)',
|
||||
'Equivalent exchange. I’ll give you half of my life, so give me half of yours! (Fullmetal Alchemist)',
|
||||
'Even if it means risking my existence, I’ll cross different world lines just to find you. (Steins;Gate)',
|
||||
'Can I touch your Pikacheeks? (Pokemon)',
|
||||
'Better wear my sunglasses because you Meiko my day so bright. (Prison School)',
|
||||
'Are you Hiro? Because I want you to be my darling. (Darling in the Franxx)',
|
||||
'Are you a death note? Because you make my heart stop. (Death Note)',
|
||||
'I’ll love you longer than all the One Piece episodes. (One Piece)'
|
||||
]
|
||||
|
||||
|
||||
module.exports = {
|
||||
name: 'pickupline',
|
||||
description: 'Get a pickup line from our selection of 200 lines!',
|
||||
execute(message, args, Discord, Client, bot) {
|
||||
const nameList = new Map([['cheesy', cheesy], ['funny', funny], ['smooth', smooth], ['best', best], ['anime', anime]]);
|
||||
|
||||
if (args[0] == 'sources') {
|
||||
message.reply("The normal lines are from https://ponly.com/200-pick-up-lines/\nThe anime lines are from https://thoughtcatalog.com/january-nelson/2021/06/anime-pick-up-lines/")
|
||||
.then((msg) => { msg.suppressEmbeds(true); })
|
||||
return;
|
||||
}
|
||||
|
||||
if (args.length < 1 || (!nameList.get(args[0]) && args[0] != 'random')) { return message.reply("Please use the following format !pickupline <'cheesy', 'funny', 'smooth', 'best', 'anime', 'random', 'sources'>"); }
|
||||
|
||||
var key;
|
||||
if (args[0] == 'random') {
|
||||
let keyInd = Math.floor(Math.random() * nameList.size);
|
||||
key = Array.from(nameList.keys())[keyInd];
|
||||
} else {
|
||||
key = args[0];
|
||||
}
|
||||
|
||||
|
||||
const arr = nameList.get(key);
|
||||
keyInd = Math.floor(Math.random() * arr.length);
|
||||
try {
|
||||
message.reply(arr[keyInd]);
|
||||
} catch {
|
||||
message.channel.send(arr[keyInd]);
|
||||
}
|
||||
}
|
||||
}
|
||||
+379
-84
@@ -1,73 +1,380 @@
|
||||
const pathToFfmpeg = require('ffmpeg-static');
|
||||
// const { joinVoiceChannel, createAudioResource } = require('@discordjs/voice');
|
||||
const { VoiceConnectionStatus, AudioPlayerStatus, createAudioPlayer, StreamType, joinVoiceChannel, createAudioResource, getVoiceConnection } = require('@discordjs/voice');
|
||||
const { MessageActionRow, MessageButton, MessageSelectMenu } = require('discord.js');
|
||||
const { MessageActionRow, MessageButton, MessageEmbed, MessageSelectMenu, Message } = require('discord.js');
|
||||
const play = require('play-dl');
|
||||
|
||||
// Leave here to be initialized at the program's start
|
||||
const player = createAudioPlayer();
|
||||
|
||||
// Note: Unsure of what this does , but may be related to the play-dl lib (my notes are inconsistent)
|
||||
// play.authorization();
|
||||
|
||||
function pause_start_stop(interaction, bot) {
|
||||
const command = interaction.customId.toLowerCase();
|
||||
var em = interaction.message.embeds[0];
|
||||
var rows = [new MessageActionRow()];
|
||||
|
||||
if (command == "pause") {
|
||||
rows[0].addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('UNPAUSE')
|
||||
.setLabel('▶️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
em.description = 'IS NOW PAUSED';
|
||||
player.pause();
|
||||
|
||||
} else if (command == "unpause") {
|
||||
rows[0].addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('PAUSE')
|
||||
.setLabel('⏸️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
em.description = 'IS NOW PLAYING';
|
||||
|
||||
player.unpause();
|
||||
} else if (command == "stop") {
|
||||
function playStopEmbed(bot, interaction, yt_info, stopped, message = null) {
|
||||
if (stopped) {
|
||||
var em = interaction.message.embeds[0];
|
||||
rows = [];
|
||||
em.description = new String;
|
||||
em.description = 'IS NOW STOPPED';
|
||||
|
||||
const connection = getVoiceConnection(interaction.guild.id);
|
||||
|
||||
interaction.update({embeds: [em], components: rows});
|
||||
} else {
|
||||
const author = {
|
||||
name: "Selmer Bot",
|
||||
url: "",
|
||||
iconURL: bot.user.displayAvatarURL()
|
||||
}
|
||||
|
||||
const newEmbed = new MessageEmbed()
|
||||
.setColor('#0F00F0')
|
||||
.setTitle(`${yt_info.video_details.title}`)
|
||||
.setAuthor(author)
|
||||
.setDescription('IS NOW PLAYING')
|
||||
.setURL(yt_info.video_details.url)
|
||||
.setThumbnail(yt_info.video_details.thumbnails[0].url);
|
||||
|
||||
const row = new MessageActionRow()
|
||||
.addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('PAUSE')
|
||||
.setLabel('⏸️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('SKIP')
|
||||
.setLabel('⏭️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
|
||||
if (message) {
|
||||
const m = message.reply({ embeds: [newEmbed], components: [row] });
|
||||
m.then((msg) => {
|
||||
const data = bot.audioData.get(message.guild.id);
|
||||
data[2] = msg.id;
|
||||
bot.audioData.set(message.guild.id, data);
|
||||
})
|
||||
} else {
|
||||
interaction.update({embeds: [newEmbed], components: [row]});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function pause_start_stop(interaction, bot, message = null, command = null) {
|
||||
try {
|
||||
var player, em;
|
||||
|
||||
if (interaction) {
|
||||
player = bot.audioData.get(interaction.guildId)[0];
|
||||
command = interaction.customId.toLowerCase();
|
||||
em = interaction.message.embeds[0];
|
||||
} else {
|
||||
player = bot.audioData.get(message.guild.id)[0];
|
||||
em = message.embeds[0];
|
||||
}
|
||||
|
||||
var rows = [new MessageActionRow()];
|
||||
|
||||
if (command == "pause") {
|
||||
rows[0].addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('RESUME')
|
||||
.setLabel('▶️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('SKIP')
|
||||
.setLabel('⏭️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
em.description = 'IS NOW PAUSED';
|
||||
player.pause();
|
||||
|
||||
} else if (command == "resume") {
|
||||
rows[0].addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('PAUSE')
|
||||
.setLabel('⏸️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('SKIP')
|
||||
.setLabel('⏭️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
em.description = 'IS NOW PLAYING';
|
||||
|
||||
player.unpause();
|
||||
} else if (command == "stop") {
|
||||
playStopEmbed(bot, interaction, null, true);
|
||||
|
||||
const connection = getVoiceConnection(interaction.guild.id);
|
||||
|
||||
player.stop();
|
||||
|
||||
//Remove everything from queue
|
||||
bot.audioData.delete(interaction.guildId);
|
||||
|
||||
if (connection) { connection.destroy(); }
|
||||
return;
|
||||
}
|
||||
|
||||
if (interaction) { interaction.update({embeds: [em], components: rows}); }
|
||||
else {
|
||||
const data = bot.audioData.get(message.guild.id);
|
||||
|
||||
// var msg = message.channel.messages.cache.get(data[2]);
|
||||
const newEmbed = message.embeds[0];
|
||||
newEmbed.description = "Has been deferred";
|
||||
message.edit({ embeds: [ newEmbed ], components: []});
|
||||
|
||||
const m = message.reply({embeds: [em], components: rows});
|
||||
m.then((msg) => {
|
||||
const data = bot.audioData.get(message.guild.id);
|
||||
data[2] = msg.id;
|
||||
bot.audioData.set(message.guild.id, data);
|
||||
})
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
rows = [];
|
||||
em.description = new String('IS NOW STOPPED');
|
||||
interaction.update({embeds: [em], components: rows});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function playNext(interaction, bot, message = null) {
|
||||
// https://discordjs.guide/voice/audio-player.html#taking-action-within-the-error-handler
|
||||
|
||||
//Setup data[1] = {info: yt_info, resource: resource}
|
||||
var guildId;
|
||||
if (message) { guildId = message.guild.id; }
|
||||
else { interaction.guildId; }
|
||||
|
||||
let data = bot.audioData.get(guildId);
|
||||
const player = data[0];
|
||||
|
||||
//Check if the queue is empty
|
||||
if (!data[1][0]) {
|
||||
player.stop();
|
||||
if (connection) { connection.destroy(); }
|
||||
bot.audioData.delete(guildId);
|
||||
if (message) { return true; }
|
||||
else { playStopEmbed(bot, interaction, null, true); }
|
||||
}
|
||||
|
||||
|
||||
const resource = data[1][0].resource;
|
||||
const yt_info = data[1][0].yt_info;
|
||||
player.stop();
|
||||
|
||||
//Play the thing
|
||||
player.play(resource);
|
||||
|
||||
//remove the song from queue
|
||||
delete data[1][0];
|
||||
data[1] = data[1].filter(n => n);
|
||||
|
||||
bot.audioData.set(guildId, data);
|
||||
|
||||
//Add the embed
|
||||
var msg = message;
|
||||
if (!message) {
|
||||
msg = interaction.message;
|
||||
interaction.update({ embeds: [ new MessageEmbed(interaction.message.embeds[0]).setDescription("IS NOW STOPPED") ], components: []});
|
||||
}
|
||||
|
||||
interaction.update({embeds: [em], components: rows})
|
||||
playStopEmbed(bot, interaction, yt_info, false, msg);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function fromMessage(bot, command, msg) {
|
||||
//Setup data[1] = {info: yt_info, resource: resource}
|
||||
const guildId = msg.guild.id;
|
||||
let data = bot.audioData.get(guildId);
|
||||
if (!data) { return msg.reply("No music is currently playing!"); }
|
||||
|
||||
const player = data[0];
|
||||
const message = msg.channel.messages.cache.get(data[2]);
|
||||
// console.log(message);
|
||||
|
||||
var em = message.embeds[0];
|
||||
var rows;
|
||||
|
||||
if (command == 'stop') {
|
||||
em = message.embeds[0];
|
||||
rows = [];
|
||||
em.description = new String;
|
||||
em.description = 'IS NOW STOPPED';
|
||||
|
||||
player.stop();
|
||||
const connection = getVoiceConnection(guildId);
|
||||
if (connection) { connection.destroy(); }
|
||||
|
||||
bot.audioData.delete(guildId);
|
||||
msg.reply("Audio stopped!");
|
||||
|
||||
} else if (command == 'skip') {
|
||||
if (playNext(null, bot, message)) {
|
||||
rows = [];
|
||||
em = message.embeds[0];
|
||||
em.description = new String;
|
||||
em.description = 'IS NOW STOPPED';
|
||||
|
||||
msg.reply("Audio stopped!");
|
||||
}
|
||||
} else if (command == 'pause' || command == 'resume') {
|
||||
pause_start_stop(null, bot, message, command);
|
||||
}
|
||||
|
||||
|
||||
message.edit({embeds: [em], components: rows});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function showQueue(bot, message, interaction = null, page = 0) {
|
||||
const guild = message.guild.id;
|
||||
const data = bot.audioData.get(guild);
|
||||
if (!data) { return message.reply("The audio queue is empty!"); }
|
||||
|
||||
const rawQueue = data[1];
|
||||
if (!rawQueue || rawQueue.length <= 0) { return message.reply("The audio queue is empty!"); }
|
||||
|
||||
const songList = [];
|
||||
var fiveSongs = '';
|
||||
let i = 0;
|
||||
|
||||
rawQueue.forEach(function (rawSong) {
|
||||
const songDetails = rawSong.yt_info.video_details;
|
||||
fiveSongs += `${i + 1}. ${songDetails.title}\n`;
|
||||
|
||||
i++;
|
||||
|
||||
//Split the songs into pages of 10
|
||||
if (i % 10 == 0) { songList.push(fiveSongs); fiveSongs = ''; }
|
||||
});
|
||||
|
||||
if (page >= songList.length) { page = songList.length - 1 }
|
||||
if (page < 0) { page = 0; } //LEAVE AS TWO IF's AS THE LENGTH MIGHT BE 0
|
||||
|
||||
if (songList.length == 0) { songList.push(fiveSongs); }
|
||||
|
||||
//Create the embed
|
||||
const author = {
|
||||
name: "Selmer Bot",
|
||||
url: "",
|
||||
iconURL: bot.user.displayAvatarURL()
|
||||
}
|
||||
|
||||
const newEmbed = new MessageEmbed()
|
||||
.setTitle("SONG QUEUE")
|
||||
.setAuthor(author)
|
||||
.setDescription(songList[page])
|
||||
.setFooter({ text: `Page ${page + 1}` })
|
||||
|
||||
const row = new MessageActionRow()
|
||||
.addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId(`audioQueue|${page - 1}`)
|
||||
.setLabel('⬅️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId(`audioQueue|${page + 1}`)
|
||||
.setLabel('➡️')
|
||||
.setStyle('SECONDARY'),
|
||||
|
||||
)
|
||||
|
||||
if (interaction) {
|
||||
interaction.update({embeds: [newEmbed], components: [row]});
|
||||
} else {
|
||||
message.reply({ embeds: [newEmbed], components: [row] });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function removeFromQueue(bot, message, posStr) {
|
||||
const guildId = message.guild.id;
|
||||
let data = bot.audioData.get(guildId);
|
||||
if (!data) { return message.reply("The audio queue is empty!"); }
|
||||
|
||||
const rawQueue = data[1];
|
||||
if (!rawQueue || rawQueue.length <= 0) { return message.reply("The audio queue is empty!"); }
|
||||
else if (isNaN(posStr) || Number(posStr) > rawQueue.length) { return message.reply("Please specify a number within queue bounds!"); }
|
||||
|
||||
const pos = Number(posStr) - 1;
|
||||
const details = rawQueue[pos].yt_info.video_details;
|
||||
|
||||
delete data[1][pos];
|
||||
data[1] = data[1].filter(n => n);
|
||||
|
||||
bot.audioData.set(guildId, data);
|
||||
|
||||
const newEmbed = new MessageEmbed()
|
||||
.setColor('#0F00F0')
|
||||
.setTitle(`${details.title}`)
|
||||
.setAuthor({ name: "Selmer Bot", url: "", iconURL: bot.user.displayAvatarURL() })
|
||||
.setDescription( `has been removed from position ${pos + 1} in queue!`)
|
||||
.setThumbnail(details.thumbnails[0].url);
|
||||
|
||||
message.reply({ embeds: [newEmbed] });
|
||||
}
|
||||
|
||||
|
||||
|
||||
function shuffleQueue(bot, message) {
|
||||
const guildId = message.guild.id;
|
||||
let data = bot.audioData.get(guildId);
|
||||
if (!data) { return message.reply("The audio queue is empty!"); }
|
||||
|
||||
let rawQueue = data[1];
|
||||
if (!rawQueue || rawQueue.length <= 0) { return message.reply("The audio queue is empty!"); }
|
||||
|
||||
//Shuffle the queue
|
||||
rawQueue = rawQueue.sort(() => Math.random()-0.5);
|
||||
|
||||
data[1] = rawQueue;
|
||||
|
||||
bot.audioData.set(guildId, data);
|
||||
|
||||
message.reply("The queue has been shuffled!\nThe new queue is:");
|
||||
showQueue(bot, message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports = {
|
||||
name: "audio",
|
||||
description: 'Play a song from YouTube, add free!',
|
||||
async execute(message, args, Discord, Client, bot, interaction = null) {
|
||||
// message.channel.send("This command has not been set up yet\nSorry!");
|
||||
// return;
|
||||
const commandList = ['stop', 'skip', 'pause', 'resume'];
|
||||
|
||||
if (args.length < 1) {
|
||||
message.reply("Please use the following format _!audio [song name or URL]_");
|
||||
message.reply("Please use the following format _!audio [song name or URL]_ **or** _!audio queue_");
|
||||
return;
|
||||
} else if (args[0] == 'queue') {
|
||||
return showQueue(bot, message);
|
||||
} else if (commandList.indexOf(args[0]) != -1) {
|
||||
return fromMessage(bot, args[0], message);
|
||||
} else if (args[0] == 'remove') {
|
||||
if (args.length < 2) { return message.reply("Please specify a position in queue!"); }
|
||||
return removeFromQueue(bot, message, args[1]);
|
||||
} else if (args[0] == 'shuffle') {
|
||||
return shuffleQueue(bot, message);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -89,7 +396,7 @@ module.exports = {
|
||||
guildId: channel.guild.id,
|
||||
adapterCreator: channel.guild.voiceAdapterCreator,
|
||||
});
|
||||
|
||||
|
||||
connection.on(VoiceConnectionStatus.Ready, () => {
|
||||
// console.log('Connected to the voice channel!');
|
||||
});
|
||||
@@ -116,48 +423,36 @@ module.exports = {
|
||||
yt_info = await play.video_info(yt_info[0].url);
|
||||
}
|
||||
|
||||
const author = {
|
||||
name: "Selmer Bot",
|
||||
url: "",
|
||||
iconURL: bot.user.displayAvatarURL()
|
||||
}
|
||||
|
||||
const newEmbed = new Discord.MessageEmbed()
|
||||
.setColor(' #0F00F0')
|
||||
.setTitle(`${yt_info.video_details.title}`)
|
||||
.setAuthor(author)
|
||||
.setDescription('IS NOW PLAYING')
|
||||
.setURL(yt_info.video_details.url)
|
||||
.setThumbnail(yt_info.video_details.thumbnails[0].url);
|
||||
|
||||
const row = new MessageActionRow()
|
||||
.addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId('PAUSE')
|
||||
.setLabel('⏸️')
|
||||
.setStyle('SECONDARY'),
|
||||
new MessageButton()
|
||||
.setCustomId('STOP')
|
||||
.setLabel('⏹️')
|
||||
.setStyle('SECONDARY')
|
||||
);
|
||||
|
||||
|
||||
let resource = createAudioResource(stream.stream, {
|
||||
inputType: stream.type
|
||||
})
|
||||
|
||||
connection.subscribe(player);
|
||||
|
||||
let audio = "em.mp3";
|
||||
// let audio = "em.mp3";
|
||||
// let resource = createAudioResource(join(__dirname, audio));
|
||||
player.play(resource);
|
||||
|
||||
player.on(AudioPlayerStatus.Playing, () => {
|
||||
// console.log('The audio player has started playing!');
|
||||
});
|
||||
|
||||
message.reply({ embeds: [newEmbed], components: [row] });
|
||||
const data = bot.audioData.get(channel.guild.id);
|
||||
|
||||
}, pause_start_stop
|
||||
if (data && data[1]) {
|
||||
//[player, [queue Array]]
|
||||
data[1].push({yt_info: yt_info, resource: resource});
|
||||
bot.audioData.set(channel.guild.id, data);
|
||||
message.reply(`_"${yt_info.video_details.title}" added to queue!_`);
|
||||
} else {
|
||||
const player = createAudioPlayer();
|
||||
connection.subscribe(player);
|
||||
|
||||
bot.audioData.set(channel.guild.id, [player, new Array(), null]);
|
||||
player.play(resource);
|
||||
|
||||
|
||||
player.on(AudioPlayerStatus.Playing, () => {
|
||||
//Check maybe?
|
||||
});
|
||||
|
||||
playStopEmbed(bot, interaction, yt_info, false, message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}, pause_start_stop, playNext, showQueue
|
||||
}
|
||||
Reference in New Issue
Block a user