From 02c266919e819cccfef89162eb5856699c114370 Mon Sep 17 00:00:00 2001 From: kieranrobson Date: Tue, 10 May 2022 01:17:25 +0100 Subject: [PATCH] Initial Setup --- .gitignore | 1 + commands/fun/8ball.js | 33 ++++++++++ commands/general/suggestions.js | 55 +++++++++++++++++ commands/info/help.js | 103 ++++++++++++++++++++++++++++++++ commands/info/ping.js | 31 ++++++++++ events/guildMemberAdd.js | 15 +++++ events/messageCreate.js | 21 +++++++ events/ready.js | 17 ++++++ handler/index.js | 27 +++++++++ index.js | 19 ++++++ 10 files changed, 322 insertions(+) create mode 100644 .gitignore create mode 100644 commands/fun/8ball.js create mode 100644 commands/general/suggestions.js create mode 100644 commands/info/help.js create mode 100644 commands/info/ping.js create mode 100644 events/guildMemberAdd.js create mode 100644 events/messageCreate.js create mode 100644 events/ready.js create mode 100644 handler/index.js create mode 100644 index.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0cffcb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +config.json \ No newline at end of file diff --git a/commands/fun/8ball.js b/commands/fun/8ball.js new file mode 100644 index 0000000..cda20b6 --- /dev/null +++ b/commands/fun/8ball.js @@ -0,0 +1,33 @@ +const { Message, Client, MessageEmbed } = require("discord.js"); + +module.exports = { + name: "8ball", + aliases: ['8b'], + /** + * + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + const Responses = [ + "Yes", + "No", + "Maybe", + "It is likely", + "It is unlikely" + ]; + + let messageArgs = args.join(' '); + if (!messageArgs[1]) return message.reply('Please specify a topic.'); + + const embed = new MessageEmbed() + .setColor('ORANGE') + .setFooter(`Called By: ${message.author.tag}`) + .setTimestamp() + .setTitle("8Ball") + .addField(`${messageArgs}`,`${Responses[Math.floor(Math.random() * Responses.length)]}`) + + message.channel.send({ embeds: [embed] }) + }, +}; diff --git a/commands/general/suggestions.js b/commands/general/suggestions.js new file mode 100644 index 0000000..3d84fc4 --- /dev/null +++ b/commands/general/suggestions.js @@ -0,0 +1,55 @@ +const { Message, Client, MessageEmbed } = require("discord.js"); +const discord = require('discord.js') + +module.exports = { + name: "suggestion", + aliases: ['suggest'], + /** + * + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + if(message.guild && message.guild.id === '744586833135927366') + { + + const suggestChannel = client.channels.cache.get('858348481412726794') + let messageArgs = args.join(' '); + const threadAuthor = message.member.displayName; + const embed = new discord.MessageEmbed() + .setColor('ORANGE') + .setFooter(`Called By: ${message.author.tag}`) + .setTimestamp() + .setAuthor(message.author.tag, message.author.displayAvatarURL({ dynamic: true })) + .setDescription(messageArgs); + + suggestChannel.send({ embeds: [embed] }).then((msg) =>{ + msg.react('<:upvote:881547644672024607>'); + msg.react('<:downvote:881547582650851330>'); + msg.startThread({ + name: `${threadAuthor} - ${messageArgs}`, + autoArchiveDuration: 60, + type: 'GUILD_PUBLIC_THREAD' + }); + + message.delete(); + message.channel.send('Your suggestion has been sent to: <#858348481412726794>') + }).catch((err)=>{ + throw err; + }); + } + else + { + message.reply("That is not available within this server") + } + + + + + } +} + + + + diff --git a/commands/info/help.js b/commands/info/help.js new file mode 100644 index 0000000..a9872d7 --- /dev/null +++ b/commands/info/help.js @@ -0,0 +1,103 @@ +const discord = require("discord.js"); + +module.exports = { + name: "help", + aliases: [''], + /** + * + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + + if(!args[0]){ + const embed = new discord.MessageEmbed() + .setTitle("Clarence Help") + .setDescription("You can use `-help ` to get additional commands within a specfic category") + .setColor('ORANGE') + + .addField('❓`-help`','This Command', true) + .addField('🎉`-help admin`','Displays Admin Commands!', true) + .addField('`-help general`', 'Displays General Commands', true) + .addField('ℹ`-help info`', 'Displays Information Commands', true) + .addField('🎉`-help fun`','Fun Commands!', true) + .addField('🔫`-help siege`', 'Displays Siege Commands', true) + message.channel.send({ embeds: [embed] }); + } + + if(args[0] === 'admin'){ + const embed = new discord.MessageEmbed() + .setTitle("Admin Commands") + .setColor('ORANGE') + + .addField('-ban','Bans a user from the server') + .addField('-clear', 'Clears x ammount of messages') + .addField('-kick', 'Kicks a user from the server') + .addField('-mute', 'Mutes a user') + message.channel.send({ embeds: [embed] }); + } + + if(args[0] === 'fun'){ + const embed = new discord.MessageEmbed() + .setTitle("Fun Commands") + .setColor('ORANGE') + + .addField('-8ball', 'Answer your darkest questions') + .addField('-bonk','Go to horny jail!') + .addField('-cookie','Give a cookie to someone') + .addField('-icarly', 'The lyrics of the greatest song ever') + .addField('-mega', 'A mega pint?') + .addField('-bong', 'Hit up some friends and hit a bong') + + + //.addField('-ah', 'ah') + //.addField('-image', 'Search Google Images For An Image') + //.addField('-flip', 'Flip a coin') + + message.channel.send({ embeds: [embed] }); + } + + + if(args[0] === 'siege'){ + const embed = new discord.MessageEmbed() + .setTitle("Siege Commands") + .setColor('ORANGE') + + .addField('-limb', 'Displays limb damage per operator') + .addField('-muzzle','Displays muzzle attachments For all weapons') + .addField('-buy','A link to buy siege for cheap') + message.channel.send({ embeds: [embed] }); + } + + + if(args[0] === 'general'){ + const embed = new discord.MessageEmbed() + .setTitle("General Comamnds") + .setColor('ORANGE') + + .addField('-addemoji', 'Adds emoji to the server') + .addField('-jumbo', 'Enalrges an emoji') + .addField('-avatar', 'Gets a users avatar') + .addField('-translate', 'Translates messages to english') + + message.channel.send({ embeds: [embed] }); + } + + if(args[0] === 'info'){ + const embed = new discord.MessageEmbed() + .setTitle("Information Commands") + .setColor('ORANGE') + + .addField('-ping','Displays the ping') + .addField('-channelinfo', 'Dispalys information about a certain channel') + .addField('-userinfo', 'Dispalys information about a certain user') + + message.channel.send({ embeds: [embed] }); + } + + } +} + + + diff --git a/commands/info/ping.js b/commands/info/ping.js new file mode 100644 index 0000000..8ca77e5 --- /dev/null +++ b/commands/info/ping.js @@ -0,0 +1,31 @@ +const { Message, Client, MessageEmbed } = require("discord.js"); + +module.exports = { + name: "ping", + aliases: ['p'], + /** + * + * @param {Client} client + * @param {Message} message + * @param {String[]} args + */ + run: async (client, message, args) => { + let days = Math.floor(client.uptime / 86400000); + let hours = Math.floor(client.uptime / 3600000) % 24; + let minutes = Math.floor(client.uptime / 60000) % 60; + let seconds = Math.floor(client.uptime / 1000) % 60; + + + const embed = new MessageEmbed() + .setColor('ORANGE') + .setFooter(`Called By: ${message.author.tag}`) + .setTimestamp() + .setTitle("Ping") + .setDescription(`${client.ws.ping} ping to host`) + .addField('Uptime', ` ${days}days ${hours}hrs ${minutes}min ${seconds}sec`, true) + + message.channel.send({ embeds: [embed] }) + + + }, +}; diff --git a/events/guildMemberAdd.js b/events/guildMemberAdd.js new file mode 100644 index 0000000..526031e --- /dev/null +++ b/events/guildMemberAdd.js @@ -0,0 +1,15 @@ +const { Permissions } = require('discord.js'); +const client = require("../index"); +const discord = require('discord.js'); + + +client.on('guildMemberAdd', async guildmember =>{ + const guild = client.guilds.cache.get('427865794467069962'); + + if(guild == guildmember.guild.id ) + { + welcomechannel.send(`<:hi:858281121611513897> Welcome! **${guildmember.user}** has just joined the server! Grab some roles from: `); + + } + +}) \ No newline at end of file diff --git a/events/messageCreate.js b/events/messageCreate.js new file mode 100644 index 0000000..5a17665 --- /dev/null +++ b/events/messageCreate.js @@ -0,0 +1,21 @@ +const client = require("../index"); +const config = require("../config.json"); + +client.on("messageCreate", async (message) => { + if ( + message.author.bot || + !message.guild || + !message.content.toLowerCase().startsWith(config.prefix) + ) + return; + + const [cmd, ...args] = message.content + .slice(config.prefix.length) + .trim() + .split(/ +/g); + + const command = client.commands.get(cmd.toLowerCase()) || client.commands.find(c => c.aliases?.includes(cmd.toLowerCase())); + + if (!command) return; + await command.run(client, message, args); +}); \ No newline at end of file diff --git a/events/ready.js b/events/ready.js new file mode 100644 index 0000000..e5949cd --- /dev/null +++ b/events/ready.js @@ -0,0 +1,17 @@ +const client = require("../index"); + + +client.on('ready', () => { + console.log('HullCSS is online') + client.user.setActivity(`-help`, {type:"WATCHING"}) + + + + const guild = client.guilds.cache.get('744586833135927366'); + setInterval(() =>{ + const memberCount = guild.members.cache.filter(m => !m.user.bot).size; + const channel = guild.channels.cache.get('857995452052799538'); + channel.setName(`Humans: ${memberCount.toLocaleString()}`); + }, 600000); + + }) diff --git a/handler/index.js b/handler/index.js new file mode 100644 index 0000000..aee0451 --- /dev/null +++ b/handler/index.js @@ -0,0 +1,27 @@ +const { glob } = require("glob"); +const { promisify } = require("util"); +const { Client } = require("discord.js"); +const globPromise = promisify(glob); + +/** + * @param {Client} client + */ +module.exports = async (client) => { + // Commands + const commandFiles = await globPromise(`${process.cwd()}/commands/**/*.js`); + commandFiles.map((value) => { + const file = require(value); + const splitted = value.split("/"); + const directory = splitted[splitted.length - 2]; + + if (file.name) { + const properties = { directory, ...file }; + client.commands.set(file.name, properties); + } + }); + + // Events + const eventFiles = await globPromise(`${process.cwd()}/events/*.js`); + eventFiles.map((value) => require(value)); + +}; diff --git a/index.js b/index.js new file mode 100644 index 0000000..67733f0 --- /dev/null +++ b/index.js @@ -0,0 +1,19 @@ +const config = require("./config.json"); +const { Client, Collection } = require("discord.js"); + + + +const client = new Client({ + intents: 32767, +}); +module.exports = client; + +// Global Variables +client.commands = new Collection(); +client.slashCommands = new Collection(); +//client.config = require("./config.json"); + +// Initializing the project +require("./handler")(client); + +client.login(config.token); \ No newline at end of file