Last active
September 20, 2023 16:32
-
-
Save dooderstem/c10835cca9a21d0f7652635d05bb7202 to your computer and use it in GitHub Desktop.
Revisions
-
dooderstem revised this gist
Sep 20, 2023 . 1 changed file with 164 additions and 164 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,7 +6,7 @@ const { GatewayIntentBits, Partials, ActivityType, } = require('discord.js'); const client = new Client({ partials: [Partials.Message, Partials.Channel, Partials.Reaction], intents: [ @@ -18,31 +18,31 @@ const client = new Client({ GatewayIntentBits.GuildPresences, ], }); const ud = require('urban-dictionary'); const mysql = require('mysql'); const request = require('request'); const fs = require('fs'); const http = require('http'); const https = require('https'); const math = require('mathjs'); const unixTime = Math.floor(Date.now() / 1000); // Create a connection to the mysql database function mysqlConnect() { var mysqlParams = mysql.createConnection({ host: '127.0.0.1', user: 'ur user here', password: 'ur password here', database: 'ur db here', }); return mysqlParams; } const objMysq = mysqlConnect(); // Functions needed for commands. // Removes first word. function rmF(str) { const indexOfSpace = str.indexOf(' '); if (indexOfSpace === -1) { return ''; } return str.substring(indexOfSpace + 1); } @@ -53,38 +53,38 @@ function sleep(time, callback) { callback(); } const { SlashCommandBuilder, Routes } = require('discord.js'); const { REST } = require('@discordjs/rest'); const commands = [ new SlashCommandBuilder() .setName('i') .setDescription('Searches Google Images') .addStringOption((option) => option .setName('search') .setDescription('enter search term') .setRequired(true) ), new SlashCommandBuilder() .setName('r') .setDescription('Performs your last /i search again'), ].map((command) => command.toJSON()); const rest = new REST({ version: '10' }).setToken('ur token here'); rest .put( Routes.applicationGuildCommands( 'ur server shit here ig', 'ur server shit here ig' ), { body: commands } ) .then(() => console.log('Successfully registered application commands.')) .catch(console.error); client.on('interactionCreate', async (interaction) => { if (!interaction.isChatInputCommand()) return; const { commandName } = interaction; @@ -94,15 +94,15 @@ client.on("interactionCreate", async (interaction) => { const member = await interaction.guild.members.fetch(senderID); //remember you still need async var membersStatus = member.presence?.status; if (membersStatus === null || membersStatus === undefined) { var membersStatus = 'offline'; } // Determine if this chat is allowed to use the bot. var sql = 'SELECT * FROM discord WHERE discord_id = ?'; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > '0') { // Grab information about sender from the database. const myTeleID = rows[0].discord_id; const myBanned = rows[0].banned; @@ -111,11 +111,11 @@ client.on("interactionCreate", async (interaction) => { const myLastI = rows[0].last_search; // Check whether or not the sender is banned from using JustaBot. if (commandName === 'i') { if (myBanned === 'yes') { //interaction.reply("im confused. it seems ur offline <:pepesmile:961516075135160330>"); } else { var searchQuery = interaction.options.getString('search'); //await interaction.reply('use -i for now <:pepeGrin:1001962955820245152>'); let query = "UPDATE discord SET last_search='" + @@ -125,29 +125,29 @@ client.on("interactionCreate", async (interaction) => { "'"; objMysq.query(query, (err, rows) => {}); var r = request.get( 'seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api' + searchQuery, function (err, res, body) { interaction.reply(body); } ); } } if (commandName === 'r') { if (myBanned === 'yes') { //interaction.reply("im confused. it seems ur offline <:pepesmile:961516075135160330>"); } else { var searchQuery = interaction.options.getString('search'); //await interaction.reply('use -i for now <:pepeGrin:1001962955820245152>'); var sql = 'SELECT * FROM discord WHERE discord_id = ?'; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > '0') { const myLastI = rows[0].last_search; var r = request.get( 'seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api' + myLastI, function (err, res, body) { interaction.reply(body); @@ -162,168 +162,168 @@ client.on("interactionCreate", async (interaction) => { })(); }); client.on('ready', () => { console.log(`Logged in as ${client.user.tag}!`); client.user.setPresence({ activities: [{ name: `you. GET OFF INVIS`, type: ActivityType.Watching }], status: 'online', }); }); // Add role if reaction is added. client.on('messageReactionAdd', async (reaction, user) => { if (reaction.message.partial) await reaction.message.fetch(); // Verify member if they react to the message in #rules. if (reaction.message.id === '1007001408958103562') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('961462248281362453'); } // 18+ Role. if (reaction.message.id === '1027217198445502494') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('975932941291114547'); } // #95a9df Role. if (reaction.message.id === '1022701182071885904') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1007010851003322379'); } // #518efa Role. if (reaction.message.id === '1022702263858376754') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1017995357734584392'); } // #0da2a2 Role. if (reaction.message.id === '1022702315922276382') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1018714201218367559'); } // #deb887 Role. if (reaction.message.id === '1022702368518852638') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1020092393288110153'); } // #078b00 Role. if (reaction.message.id === '1022703032074518649') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1022696313453809674'); } // #00e1ff Role. if (reaction.message.id === '1022703064114802728') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1022696509344579615'); } // #a725ff Role. if (reaction.message.id === '1022703421993791619') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1022696608481157120'); } // #ff6f6f Role. if (reaction.message.id === '1022703953466622062') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1022703622515064923'); } // #ee15c3 Role. if (reaction.message.id === '1027215978867736646') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1023316979064508610'); } // #ccc105 Role. if (reaction.message.id === '1027216081988878436') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1023317213287043204'); } // #ffc128 Role. if (reaction.message.id === '1027216165229039668') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1023317358128930887'); } // #6ceb00 Role. if (reaction.message.id === '1027216226495234099') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1023317500512968834'); } // #25ffc1 Role. if (reaction.message.id === '1027216287899857077') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add('1027215369468915712'); } }); // Remove role if reaction is removed. client.on('messageReactionRemove', async (reaction, user) => { if (reaction.message.partial) await reaction.message.fetch(); // 18+ Role. if (reaction.message.id === '1027217198445502494') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('975932941291114547'); } // #95a9df Role. if (reaction.message.id === '1022701182071885904') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1007010851003322379'); } // #518efa Role. if (reaction.message.id === '1022702263858376754') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1017995357734584392'); } // #0da2a2 Role. if (reaction.message.id === '1022702315922276382') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1018714201218367559'); } // #deb887 Role. if (reaction.message.id === '1022702368518852638') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1020092393288110153'); } // #078b00 Role. if (reaction.message.id === '1022703032074518649') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1022696313453809674'); } // #00e1ff Role. if (reaction.message.id === '1022703064114802728') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1022696509344579615'); } // #a725ff Role. if (reaction.message.id === '1022703421993791619') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1022696608481157120'); } // #ff6f6f Role. if (reaction.message.id === '1022703953466622062') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1022703622515064923'); } // #ee15c3 Role. if (reaction.message.id === '1027215978867736646') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1023316979064508610'); } // #ccc105 Role. if (reaction.message.id === '1027216081988878436') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1023317213287043204'); } // #ffc128 Role. if (reaction.message.id === '1027216165229039668') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1023317358128930887'); } // #6ceb00 Role. if (reaction.message.id === '1027216226495234099') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1023317500512968834'); } // #25ffc1 Role. if (reaction.message.id === '1027216287899857077') { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove('1027215369468915712'); } }); client.on('messageCreate', (msg) => { //console.log(msg); const chatmsg = msg.content; var senderID = msg.author.id; @@ -332,7 +332,7 @@ client.on("messageCreate", (msg) => { const member = await msg.guild.members.fetch(senderID); //remember you still need async var membersStatus = member.presence?.status; if (membersStatus === null || membersStatus === undefined) { var membersStatus = 'offline'; } //console.log(membersStatus); //if(membersStatus === 'offline') { @@ -346,30 +346,30 @@ client.on("messageCreate", (msg) => { // } //console.log(membersStatus); const senderName = '<@' + senderID + '>'; const senderUsername = msg.author.username; const senderQuery = rmF(chatmsg); // tiktok 'command' (detects a tiktok url and uploads the video from it) if ( chatmsg.startsWith('https://vm.tiktok.com/') === true || chatmsg.startsWith('https://www.tiktok.com/') === true ) { msg.delete(); request( { uri: 'seledity inc secret url delete this if u cant figure out how to make your own web server with tiktok video grabbing sht' + chatmsg, }, function (error, response, body) { (async function () { await new Promise((resolve) => request(body) .pipe(fs.createWriteStream('tiktok.mp4')) .on('finish', function () { msg.channel.send({ content: senderName + ' sent a tiktok :)', files: ['./tiktok.mp4'], }); }) ); @@ -412,16 +412,16 @@ client.on("messageCreate", (msg) => { // }); /// } // if a command was detected, by a message starting with "-", this is called const commandCheck = chatmsg.startsWith('-'); if (commandCheck === true) { console.log('cmd'); // Determine if this chat is allowed to use the bot. var sql = 'SELECT * FROM discord WHERE discord_id = ?'; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > '0') { // Grab information about sender from the database. const myTeleID = rows[0].discord_id; const myBanned = rows[0].banned; @@ -430,19 +430,19 @@ client.on("messageCreate", (msg) => { const myLastI = rows[0].last_search; const invis_crackdown = rows[0].invis_crackdown; // Check whether or not the sender is banned from using JustaBot. if (myBanned === 'yes') { msg.react('❌'); } // If they aren't banned, listen to and respond to 'dash' commands. else { // Listen for command: -purge (deletes X msgs) if (chatmsg.startsWith('-purge') === true && aaDmin === 'true') { if (senderQuery === '') { msg.react('🤨'); } else { if (Number.isInteger(+senderQuery)) { if (senderQuery >= 100 || senderQuery <= 0) { msg.react('🤨'); } else { var senderQueer = +senderQuery + 1; var senderQueer = senderQueer.toString(); @@ -456,21 +456,21 @@ client.on("messageCreate", (msg) => { } } else { //not a num msg.react('🤨'); } } } // joey cmd if (chatmsg.startsWith('-joey') === true) { msg.channel.send({ content: senderName + ', fuuuuuUTTTUREE', files: ['./joey.mp4'], }); } // Listen for command: -ud (searches Urban Dictionary) if (chatmsg.startsWith('-ud') === true) { // If sender forgot to include a search query, let them know. if (senderQuery === '') { var botResponse = senderName + ", you also have to include what you'd like to search for on Urban Dictionary."; @@ -481,7 +481,7 @@ client.on("messageCreate", (msg) => { .then((results) => { var word = results[0].word; var def = results[0].definition; var botResponse = '**' + word + '**' + ': ' + def; msg.reply(botResponse); // If there was an error, describe it below. }) @@ -496,42 +496,42 @@ client.on("messageCreate", (msg) => { } } // Listen for command: -calc (does math n sht) if (chatmsg.startsWith('-calc') === true) { if (senderQuery !== '') { const re = /\d+(\+|\-|\*|\/)\d+/; if (re.test(senderQuery) === true) { var doMath = math.evaluate(senderQuery); var doMath = senderQuery + ' = ' + doMath; msg.reply(doMath + '\n' + senderName); } else { msg.react('🤨'); msg.react('👎'); } } else { msg.react('🤨'); } } // Listen for command: -i, -R34, -gif, -r (searches Google Images through Google Custom Search API) if ( chatmsg.startsWith('-i') === true || chatmsg.startsWith('-R34') === true || chatmsg.startsWith('-gif') === true || chatmsg.startsWith('-r') === true ) { if (senderQuery === '' && chatmsg.startsWith('-r') === false) { var botResponse = senderName + ", you also have to include what you'd like to search for on Google Images."; msg.reply(botResponse); } else { var searchQuery = senderQuery; if (chatmsg.startsWith('-R34') === true) { var searchQuery = senderQuery + ' rule 34'; } if (chatmsg.startsWith('-gif') === true) { var searchQuery = senderQuery + ' gif'; } if (chatmsg.startsWith('-r') === true) { var searchQuery = myLastI; } let query = @@ -542,11 +542,11 @@ client.on("messageCreate", (msg) => { "'"; objMysq.query(query, (err, rows) => {}); var r = request.get( 'seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api' + searchQuery, function (err, res, body) { if (err !== null || body === 'failed' || body === 'quota') { if (body === 'quota') { var botResponse = senderName + ', the daily quota for Google Images was exceeded. I saved "' + @@ -560,15 +560,15 @@ client.on("messageCreate", (msg) => { '" on Google Images. I will make one more search attempt for you.'; // vv Attempt to search for the image again, if it failed. vv var retryI = request.get( 'seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api' + searchQuery, function (err, res, body) { if ( err !== null || body === 'failed' || body === 'quota' ) { if (body === 'quota') { var botResponse = senderName + ', the daily quota for Google Images was exceeded. I saved "' + @@ -611,23 +611,23 @@ client.on("messageCreate", (msg) => { } } // ai if (chatmsg.startsWith('-ai') === true) { if (aiEnabled === 'no') { msg.react('❌'); } else { const got = require('got'); const question = senderQuery; (async () => { const url = 'https://api.openai.com/v1/engines/davinci/completions'; const prompt = `${question}`; const params = { prompt: prompt, max_tokens: 150, temperature: 0.7, frequency_penalty: 1, presence_penalty: 0.4, stop: '\nHuman', }; const headers = { Authorization: `Bearer ${process.env.OPENAI_SECRET_KEY}`, @@ -638,7 +638,7 @@ client.on("messageCreate", (msg) => { .post(url, { json: params, headers: headers }) .json(); output = `${prompt}${response.choices[0].text}`; msg.reply(senderName + '\n\n' + output + '...'); } catch (err) { console.log(err); } @@ -651,17 +651,17 @@ client.on("messageCreate", (msg) => { var insdata = { discord_id: senderID, username: senderUsername, last_search: 'undefined', }; objMysq.query( 'INSERT INTO discord SET ?', insdata, function (err, result) {} ); msg.react('🤨'); } }); } })(); // erase this }); client.login('ur discord key sht'); -
dooderstem revised this gist
Jul 11, 2023 . No changes.There are no files selected for viewing
-
dooderstem revised this gist
Jul 10, 2023 . 2 changed files with 1 addition and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,8 +16,6 @@ client.on("message", commandHandler); client.login(process.env.BOT_TOKEN); ``` ```js // src/commands/ping.js module.exports = async (msg) => { This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,5 @@ ```js // ./app.js const discord = require("discord.js"); const config = require("./config.json"); const fs = require("node:fs"); -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 21 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -105,4 +105,24 @@ const read = (client) => { }; module.exports = read; ``` ```js // commands/uptime/uptime.js function uptime(client) { let days = Math.floor(client.uptime / 86400000); let hrs = Math.floor(client.uptime / 3600000) % 24; let minutes = Math.floor(client.uptime / 60000) % 60; let seconds = Math.floor(client.uptime / 1000) % 60; return `__Uptime:__\n${days}d ${hrs}h ${minutes}m ${seconds}s`; } const obj = { name: "Uptime", category: "Utility", description: "Uptime", run: async (client, message, args) => { message.channel.send(uptime(client)); }, }; module.exports = obj; ``` -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 108 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,108 @@ ```js const discord = require("discord.js"); const config = require("./config.json"); const fs = require("node:fs"); const path = require("node:path"); require("dotenv").config(); const intents = [ discord.GatewayIntentBits.Guilds, discord.GatewayIntentBits.GuildMessages, discord.GatewayIntentBits.MessageContent, ]; const client = new discord.Client({ disableEveryone: false, intents, }); const $PREFIX = config.default_prefix; client.commands = new discord.Collection(); ["command"].forEach((handler) => { require(`./handlers/${handler}`)(client); }); // on client ready client.once(discord.Events.ClientReady, (c) => { console.log(`${c.user.tag} is Online!`); client.user.setPresence({ activities: [ { name: "with DISCORD.JS", type: discord.ActivityType.Playing, }, ], status: "dnd", }); }); client.on("messageCreate", async (message) => { if (message.author.bot) return; if (!message.content.startsWith($PREFIX)) return; // array of everything in the message but the prefix const argsArr = message.content .toLowerCase() .slice($PREFIX.length) .trim() .split(/ +/g); // the command (coming right after the prefix) const cmd = argsArr.shift().toLowerCase(); if (cmd.length === 0) return; let command = client.commands.get(cmd); if (command) { command.run(client, message, argsArr); console.log(command); } if (!command) console.log("Command Not Found"); // bot mentioned const prefixMention = new RegExp(`^<@!?${client.user.id}>( |)$`); if (message.content.match(prefixMention)) { console.log(`${client.user.tag} was mentioned`); message.reply(`My prefix is \`${config.default_prefix}\``); } }); client.login(process.env.TOKEN); ``` ```js // handlers/command.js const fs = require("node:fs"); const path = require("node:path"); const ascii = require("ascii-table"); const commands = path.join(__dirname, "../commands"); let table = new ascii(`${commands}`); table.setHeading("Command", "Category", "Description", "Load status"); const read = (client) => { fs.readdirSync(commands).forEach((dir) => { const commandsContainer = `${commands}/${dir}/`; const commandsArray = fs .readdirSync(commandsContainer) .filter((file) => file.endsWith(".js")); for (const file of commandsArray) { const pull = require(`${commandsContainer}/${file}`); const { name, category, description, run } = pull; if (name) cmdName = name.toString().toLowerCase(); else cmdName = ""; if (cmdName && category && description && run) { client.commands.set(cmdName, pull); table.addRow(cmdName, category, description, "✅"); } else { table.addRow(cmdName); continue; } } }); console.log(table.toString()); }; module.exports = read; ``` -
dooderstem revised this gist
Jul 10, 2023 . No changes.There are no files selected for viewing
-
dooderstem revised this gist
Jul 10, 2023 . No changes.There are no files selected for viewing
-
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 77 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -47,3 +47,80 @@ module.exports = async (msg, { args, functions }) => { } }; ``` ```js // src/commands/whoami.js const discord = require("discord.js"); module.exports = async (msg, { args }) => { let member; if (args.length === 0) { member = msg.member; } else { const allMembers = (await msg.guild.members.fetch()) .array() .filter((member) => { try { return ( member.user.username.toLowerCase() === args.join(" ").toLowerCase() || member.nickname.toLowerCase() === args.join(" ").toLowerCase() ); } catch (err) { return false; } }); if (allMembers.length == 0) { return msg.channel.send("❌ User not Found"); } member = ( await msg.guild.members.fetch({ query: args.join(" ") }) ).array()[0]; } const joined = Intl.DateTimeFormat("en-US").format(member.joinedAt); const created = Intl.DateTimeFormat("en-US").format(member.user.createdAt); const avatar = member.user.displayAvatarURL(); const roles = async () => Promise.all( member._roles .filter((r) => r.id !== msg.guild.id) .map(async (r) => await msg.guild.roles.fetch(r)) ) || "none"; var userRoles = await roles(); if (userRoles.length == 0) { userRoles = ["This user has no roles."]; } const inline = true; const embed = new discord.MessageEmbed("") .setFooter(member.displayName, avatar) .setThumbnail(avatar) .setColor( member.displayHexColor === "#000000" ? "#FFFFFF" : member.displayHexColor ) .addField("status", member.displayName + " is " + member.presence.status) .addFields( { name: "Display Name", value: member.displayName, inline }, { name: "Joined at", value: joined, inline }, { name: "Roles", value: userRoles, inline }, { name: "Bot", value: member.user.bot ? "This user is a bot, Beep Boop" : "This user is not a bot", inline, }, { name: "account created", value: created, inline } ) .setAuthor(member.displayName, avatar); msg.channel.send(embed); }; ``` -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,6 +17,7 @@ client.login(process.env.BOT_TOKEN); ``` ## Command files ```js // src/commands/ping.js module.exports = async (msg) => { -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -16,6 +16,7 @@ client.on("message", commandHandler); client.login(process.env.BOT_TOKEN); ``` ## Command files ```js // src/commands/ping.js module.exports = async (msg) => { -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -25,6 +25,7 @@ module.exports = async (msg) => { ``` ```js // src/commands/help.js const { stripIndents } = require("common-tags"); module.exports = async (msg, { args, functions }) => { -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 21 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -23,3 +23,24 @@ module.exports = async (msg) => { console.log("Ping Pong! (sent)"); }; ``` ```js const { stripIndents } = require("common-tags"); module.exports = async (msg, { args, functions }) => { if (args.length === 0) { let commands = stripIndents`The Available commands are: ${"`" + Object.keys(functions).join("`, `") + "`"} tip: type ${"`!help <command>`"} for help that command`; msg.channel.send(commands); } else { const helptext = functions[args[0]]; if (helptext) { msg.channel.send(helptext.helptext); } else { msg.channel.send("command not found"); } } }; ``` -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 14 additions and 11 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,22 +1,25 @@ ```js // src/index.js const Discord = require("discord.js"); require("dotenv").config(); const commandHandler = require("./commands"); const client = new Discord.Client(); client.once("ready", () => { console.log("🤖 Beep beep! I am ready!"); }); client.on("message", commandHandler); client.login(process.env.BOT_TOKEN); ``` ```js // src/commands/ping.js module.exports = async (msg) => { await msg.channel.send("pong"); console.log("Ping Pong! (sent)"); }; ``` -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 22 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1 +1,22 @@ ```js src/index.js const Discord = require('discord.js'); require('dotenv').config(); const commandHandler = require('./commands'); const client = new Discord.Client(); client.once('ready', () => { console.log('🤖 Beep beep! I am ready!'); }); client.on('message', commandHandler); client.login(process.env.BOT_TOKEN); ``` ```js src/commands/ping.js module.exports = async (msg) => { await msg.channel.send('pong'); console.log('Ping Pong! (sent)'); }; -
dooderstem revised this gist
Jul 10, 2023 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1 @@ -
dooderstem renamed this gist
Jul 10, 2023 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
dooderstem revised this gist
Dec 13, 2022 . 1 changed file with 667 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1 +1,667 @@ // Package things needed for the bot & commands. //const Discord = require('discord.js'); //const client = new Discord.Client({partials: ['MESSAGE', 'CHANNEL', 'REACTION'], intents: [ Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS, Discord.Intents.FLAGS.GUILD_MEMBERS ]}); const { Client, GatewayIntentBits, Partials, ActivityType, } = require("discord.js"); const client = new Client({ partials: [Partials.Message, Partials.Channel, Partials.Reaction], intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMessageReactions, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildPresences, ], }); const ud = require("urban-dictionary"); const mysql = require("mysql"); const request = require("request"); const fs = require("fs"); const http = require("http"); const https = require("https"); const math = require("mathjs"); const unixTime = Math.floor(Date.now() / 1000); // Create a connection to the mysql database function mysqlConnect() { var mysqlParams = mysql.createConnection({ host: "127.0.0.1", user: "ur user here", password: "ur password here", database: "ur db here", }); return mysqlParams; } const objMysq = mysqlConnect(); // Functions needed for commands. // Removes first word. function rmF(str) { const indexOfSpace = str.indexOf(" "); if (indexOfSpace === -1) { return ""; } return str.substring(indexOfSpace + 1); } // Sleep function, when you want the command to pause for a bit. function sleep(time, callback) { var stop = new Date().getTime(); while (new Date().getTime() < stop + time) {} callback(); } const { SlashCommandBuilder, Routes } = require("discord.js"); const { REST } = require("@discordjs/rest"); const commands = [ new SlashCommandBuilder() .setName("i") .setDescription("Searches Google Images") .addStringOption((option) => option .setName("search") .setDescription("enter search term") .setRequired(true) ), new SlashCommandBuilder() .setName("r") .setDescription("Performs your last /i search again"), ].map((command) => command.toJSON()); const rest = new REST({ version: "10" }).setToken("ur token here"); rest .put( Routes.applicationGuildCommands( "ur server shit here ig", "ur server shit here ig" ), { body: commands } ) .then(() => console.log("Successfully registered application commands.")) .catch(console.error); client.on("interactionCreate", async (interaction) => { if (!interaction.isChatInputCommand()) return; const { commandName } = interaction; var senderID = interaction.user.id; (async () => { //await needs async const member = await interaction.guild.members.fetch(senderID); //remember you still need async var membersStatus = member.presence?.status; if (membersStatus === null || membersStatus === undefined) { var membersStatus = "offline"; } // Determine if this chat is allowed to use the bot. var sql = "SELECT * FROM discord WHERE discord_id = ?"; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > "0") { // Grab information about sender from the database. const myTeleID = rows[0].discord_id; const myBanned = rows[0].banned; const aiEnabled = rows[0].ai_enabled; const aaDmin = rows[0].ai_admin; const myLastI = rows[0].last_search; // Check whether or not the sender is banned from using JustaBot. if (commandName === "i") { if (myBanned === "yes") { //interaction.reply("im confused. it seems ur offline <:pepesmile:961516075135160330>"); } else { var searchQuery = interaction.options.getString("search"); //await interaction.reply('use -i for now <:pepeGrin:1001962955820245152>'); let query = "UPDATE discord SET last_search='" + searchQuery + "' WHERE discord_id='" + senderID + "'"; objMysq.query(query, (err, rows) => {}); var r = request.get( "seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api" + searchQuery, function (err, res, body) { interaction.reply(body); } ); } } if (commandName === "r") { if (myBanned === "yes") { //interaction.reply("im confused. it seems ur offline <:pepesmile:961516075135160330>"); } else { var searchQuery = interaction.options.getString("search"); //await interaction.reply('use -i for now <:pepeGrin:1001962955820245152>'); var sql = "SELECT * FROM discord WHERE discord_id = ?"; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > "0") { const myLastI = rows[0].last_search; var r = request.get( "seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api" + myLastI, function (err, res, body) { interaction.reply(body); } ); } }); } } } }); })(); }); client.on("ready", () => { console.log(`Logged in as ${client.user.tag}!`); client.user.setPresence({ activities: [{ name: `you. GET OFF INVIS`, type: ActivityType.Watching }], status: "online", }); }); // Add role if reaction is added. client.on("messageReactionAdd", async (reaction, user) => { if (reaction.message.partial) await reaction.message.fetch(); // Verify member if they react to the message in #rules. if (reaction.message.id === "1007001408958103562") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("961462248281362453"); } // 18+ Role. if (reaction.message.id === "1027217198445502494") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("975932941291114547"); } // #95a9df Role. if (reaction.message.id === "1022701182071885904") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1007010851003322379"); } // #518efa Role. if (reaction.message.id === "1022702263858376754") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1017995357734584392"); } // #0da2a2 Role. if (reaction.message.id === "1022702315922276382") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1018714201218367559"); } // #deb887 Role. if (reaction.message.id === "1022702368518852638") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1020092393288110153"); } // #078b00 Role. if (reaction.message.id === "1022703032074518649") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1022696313453809674"); } // #00e1ff Role. if (reaction.message.id === "1022703064114802728") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1022696509344579615"); } // #a725ff Role. if (reaction.message.id === "1022703421993791619") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1022696608481157120"); } // #ff6f6f Role. if (reaction.message.id === "1022703953466622062") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1022703622515064923"); } // #ee15c3 Role. if (reaction.message.id === "1027215978867736646") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1023316979064508610"); } // #ccc105 Role. if (reaction.message.id === "1027216081988878436") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1023317213287043204"); } // #ffc128 Role. if (reaction.message.id === "1027216165229039668") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1023317358128930887"); } // #6ceb00 Role. if (reaction.message.id === "1027216226495234099") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1023317500512968834"); } // #25ffc1 Role. if (reaction.message.id === "1027216287899857077") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.add("1027215369468915712"); } }); // Remove role if reaction is removed. client.on("messageReactionRemove", async (reaction, user) => { if (reaction.message.partial) await reaction.message.fetch(); // 18+ Role. if (reaction.message.id === "1027217198445502494") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("975932941291114547"); } // #95a9df Role. if (reaction.message.id === "1022701182071885904") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1007010851003322379"); } // #518efa Role. if (reaction.message.id === "1022702263858376754") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1017995357734584392"); } // #0da2a2 Role. if (reaction.message.id === "1022702315922276382") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1018714201218367559"); } // #deb887 Role. if (reaction.message.id === "1022702368518852638") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1020092393288110153"); } // #078b00 Role. if (reaction.message.id === "1022703032074518649") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1022696313453809674"); } // #00e1ff Role. if (reaction.message.id === "1022703064114802728") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1022696509344579615"); } // #a725ff Role. if (reaction.message.id === "1022703421993791619") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1022696608481157120"); } // #ff6f6f Role. if (reaction.message.id === "1022703953466622062") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1022703622515064923"); } // #ee15c3 Role. if (reaction.message.id === "1027215978867736646") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1023316979064508610"); } // #ccc105 Role. if (reaction.message.id === "1027216081988878436") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1023317213287043204"); } // #ffc128 Role. if (reaction.message.id === "1027216165229039668") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1023317358128930887"); } // #6ceb00 Role. if (reaction.message.id === "1027216226495234099") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1023317500512968834"); } // #25ffc1 Role. if (reaction.message.id === "1027216287899857077") { const member = await reaction.message.guild.members.fetch(user.id); member.roles.remove("1027215369468915712"); } }); client.on("messageCreate", (msg) => { //console.log(msg); const chatmsg = msg.content; var senderID = msg.author.id; (async () => { //await needs async const member = await msg.guild.members.fetch(senderID); //remember you still need async var membersStatus = member.presence?.status; if (membersStatus === null || membersStatus === undefined) { var membersStatus = "offline"; } //console.log(membersStatus); //if(membersStatus === 'offline') { // console.log(membersStatus); // msg.react('<:getoffinvis:1011041876096323714>'); // msg.react('❌'); // msg.react('💩'); // member.timeout(1 * 60 * 1000, 'chatting while invis') // .then() // .catch(); // } //console.log(membersStatus); const senderName = "<@" + senderID + ">"; const senderUsername = msg.author.username; const senderQuery = rmF(chatmsg); // tiktok 'command' (detects a tiktok url and uploads the video from it) if ( chatmsg.startsWith("https://vm.tiktok.com/") === true || chatmsg.startsWith("https://www.tiktok.com/") === true ) { msg.delete(); request( { uri: "seledity inc secret url delete this if u cant figure out how to make your own web server with tiktok video grabbing sht" + chatmsg, }, function (error, response, body) { (async function () { await new Promise((resolve) => request(body) .pipe(fs.createWriteStream("tiktok.mp4")) .on("finish", function () { msg.channel.send({ content: senderName + " sent a tiktok :)", files: ["./tiktok.mp4"], }); }) ); })(); } ); } // ifunny 'command' (detects a ifunny url and uploads the video from it) // if(chatmsg.startsWith('https://ifunny.co/video/') === true) { // msg.delete(); // request({uri: "http://192.168.8.141/ifunny/?u=" + chatmsg}, // function(error, response, body) { // (async function(){ // await new Promise(resolve => // request(body) // .pipe(fs.createWriteStream('ifunny.h264')) // .on('finish', async function () { // console.log('ok now next'); // console.log('....'); // const ffmpegPath = require('@ffmpeg-installer/ffmpeg').path; // const ffmpeg = require('fluent-ffmpeg'); // ffmpeg.setFfmpegPath(ffmpegPath); // var inFilename = "ifunny.h264"; // var outFilename = "ifunny.mp4"; // await new Promise(resolve => // ffmpeg(inFilename) // .outputOptions('-r 24') // this will copy the data instead or reencode it // .save(outFilename) // .on('end', function () { // console.log('ok'); // msg.channel.send({ // content: senderName + " sent an ifunny video :)", /// files: [ // "./ifunny.mp4" // ] // }); // })); // })); // })() // }); /// } // if a command was detected, by a message starting with "-", this is called const commandCheck = chatmsg.startsWith("-"); if (commandCheck === true) { console.log("cmd"); // Determine if this chat is allowed to use the bot. var sql = "SELECT * FROM discord WHERE discord_id = ?"; objMysq.query(sql, [senderID], function (err, rows, fields) { if (err) throw err; var preventError = rows.length; var errorCheck = preventError.toString(); if (errorCheck > "0") { // Grab information about sender from the database. const myTeleID = rows[0].discord_id; const myBanned = rows[0].banned; const aiEnabled = rows[0].ai_enabled; const aaDmin = rows[0].ai_admin; const myLastI = rows[0].last_search; const invis_crackdown = rows[0].invis_crackdown; // Check whether or not the sender is banned from using JustaBot. if (myBanned === "yes") { msg.react("❌"); } // If they aren't banned, listen to and respond to 'dash' commands. else { // Listen for command: -purge (deletes X msgs) if (chatmsg.startsWith("-purge") === true && aaDmin === "true") { if (senderQuery === "") { msg.react("🤨"); } else { if (Number.isInteger(+senderQuery)) { if (senderQuery >= 100 || senderQuery <= 0) { msg.react("🤨"); } else { var senderQueer = +senderQuery + 1; var senderQueer = senderQueer.toString(); async function clear() { const fetched = await msg.channel.messages.fetch({ limit: senderQueer, }); msg.channel.bulkDelete(fetched); } clear(); } } else { //not a num msg.react("🤨"); } } } // joey cmd if (chatmsg.startsWith("-joey") === true) { msg.channel.send({ content: senderName + ", fuuuuuUTTTUREE", files: ["./joey.mp4"], }); } // Listen for command: -ud (searches Urban Dictionary) if (chatmsg.startsWith("-ud") === true) { // If sender forgot to include a search query, let them know. if (senderQuery === "") { var botResponse = senderName + ", you also have to include what you'd like to search for on Urban Dictionary."; msg.reply(botResponse); } else { // Search the query on UD. ud.define(senderQuery) .then((results) => { var word = results[0].word; var def = results[0].definition; var botResponse = "**" + word + "**" + ": " + def; msg.reply(botResponse); // If there was an error, describe it below. }) .catch((error) => { var botResponse = senderName + ', I could not find anything for "' + senderQuery + '" on Urban Dictionary.'; msg.reply(botResponse); }); } } // Listen for command: -calc (does math n sht) if (chatmsg.startsWith("-calc") === true) { if (senderQuery !== "") { const re = /\d+(\+|\-|\*|\/)\d+/; if (re.test(senderQuery) === true) { var doMath = math.evaluate(senderQuery); var doMath = senderQuery + " = " + doMath; msg.reply(doMath + "\n" + senderName); } else { msg.react("🤨"); msg.react("👎"); } } else { msg.react("🤨"); } } // Listen for command: -i, -R34, -gif, -r (searches Google Images through Google Custom Search API) if ( chatmsg.startsWith("-i") === true || chatmsg.startsWith("-R34") === true || chatmsg.startsWith("-gif") === true || chatmsg.startsWith("-r") === true ) { if (senderQuery === "" && chatmsg.startsWith("-r") === false) { var botResponse = senderName + ", you also have to include what you'd like to search for on Google Images."; msg.reply(botResponse); } else { var searchQuery = senderQuery; if (chatmsg.startsWith("-R34") === true) { var searchQuery = senderQuery + " rule 34"; } if (chatmsg.startsWith("-gif") === true) { var searchQuery = senderQuery + " gif"; } if (chatmsg.startsWith("-r") === true) { var searchQuery = myLastI; } let query = "UPDATE discord SET last_search='" + searchQuery + "' WHERE discord_id='" + senderID + "'"; objMysq.query(query, (err, rows) => {}); var r = request.get( "seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api" + searchQuery, function (err, res, body) { if (err !== null || body === "failed" || body === "quota") { if (body === "quota") { var botResponse = senderName + ', the daily quota for Google Images was exceeded. I saved "' + searchQuery + '" as your last search. Type "-r" later to try again.'; } else { var botResponse = senderName + ', an error occured while searching for "' + searchQuery + '" on Google Images. I will make one more search attempt for you.'; // vv Attempt to search for the image again, if it failed. vv var retryI = request.get( "seledity inc secret url delete this if u cant figure out how to make your own web server with google custom search api" + searchQuery, function (err, res, body) { if ( err !== null || body === "failed" || body === "quota" ) { if (body === "quota") { var botResponse = senderName + ', the daily quota for Google Images was exceeded. I saved "' + searchQuery + '" as your last search. Type "-r" later to try again.'; } else { var botResponse = senderName + ', searching for "' + searchQuery + '" on Google Images failed again. Type "-r" to retry your search.'; } msg.reply(botResponse); } else { var optionalPhotoRetry = { caption: '"' + searchQuery + '" ' + senderName, }; var embed = { image: { url: body.toString(), }, }; msg.reply(body); } } ); // ^^ Attempt to search for the image again, if it failed. ^^ } msg.reply(botResponse); } else { var embed = { image: { url: body.toString(), }, }; msg.reply(body); } } ); } } // ai if (chatmsg.startsWith("-ai") === true) { if (aiEnabled === "no") { msg.react("❌"); } else { const got = require("got"); const question = senderQuery; (async () => { const url = "https://api.openai.com/v1/engines/davinci/completions"; const prompt = `${question}`; const params = { prompt: prompt, max_tokens: 150, temperature: 0.7, frequency_penalty: 1, presence_penalty: 0.4, stop: "\nHuman", }; const headers = { Authorization: `Bearer ${process.env.OPENAI_SECRET_KEY}`, }; try { const response = await got .post(url, { json: params, headers: headers }) .json(); output = `${prompt}${response.choices[0].text}`; msg.reply(senderName + "\n\n" + output + "..."); } catch (err) { console.log(err); } })(); } } // ai } } else { var insdata = { discord_id: senderID, username: senderUsername, last_search: "undefined", }; objMysq.query( "INSERT INTO discord SET ?", insdata, function (err, result) {} ); msg.react("🤨"); } }); } })(); // erase this }); client.login("ur discord key sht"); -
dooderstem created this gist
Dec 13, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1 @@