├── .gitignore ├── 01-Creating-The-Bot ├── index.js └── package.json ├── 03-Commands ├── command.js ├── index.js └── package.json ├── 04-List-Servers-Delete-Messages-Bot-Status ├── command.js ├── index.js └── package.json ├── 05-Editing-And-Reacting ├── command.js ├── first-message.js ├── index.js └── package.json ├── 06-Private-Messaging ├── command.js ├── first-message.js ├── index.js ├── package.json └── private-message.js ├── 07-Create-Channels ├── command.js ├── first-message.js ├── index.js ├── package.json └── private-message.js ├── 08-Embeds ├── command.js ├── first-message.js ├── index.js ├── package.json └── private-message.js ├── 09-Server-Info-Command ├── command.js ├── first-message.js ├── index.js ├── package.json └── private-message.js ├── 10-Help-Command ├── command.js ├── first-message.js ├── index.js ├── package.json └── private-message.js ├── 11-Roles-from-Reactions ├── command.js ├── first-message.js ├── index.js ├── package.json ├── private-message.js └── role-claim.js ├── 12-Ban-and-Kick ├── command.js ├── first-message.js ├── index.js ├── package.json ├── private-message.js └── role-claim.js ├── 13-Automatic-Polls ├── command.js ├── first-message.js ├── index.js ├── package.json ├── poll.js ├── private-message.js └── role-claim.js ├── 14-Welcome-Message ├── command.js ├── first-message.js ├── index.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js └── welcome.js ├── 15-Member-Count ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js └── welcome.js ├── 16-Temporary-Messages ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js ├── send-message.js └── welcome.js ├── 17-MongoDB-Tutorial ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── mongo.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js ├── send-message.js └── welcome.js ├── 18-Per-Server-Settings ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── mongo.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js ├── schemas │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 19-Per-User-Data ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── package.json ├── poll.js ├── private-message.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 20-Mute-Command ├── command.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 21-Eval-Command ├── command.js ├── eval.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 22-Advanced-Command-Handler ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ └── misc │ │ └── ping.js ├── eval.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 23-Anti-Advertising ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ └── misc │ │ └── ping.js ├── eval.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 24-Invite-Tracker ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── invites.js │ └── misc │ │ └── ping.js ├── eval.js ├── first-message.js ├── index.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 25-Invite-Notification-Channel ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── invites.js │ └── misc │ │ └── ping.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 26-Ticketing-System ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── invites.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 27-Delete-and-Scale-Channels ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── invites.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 28-Economy-System ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ └── balance.js │ ├── invites.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 29-Dynamic-Help-Menu ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ └── balance.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 30-Advanced-Polls ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ └── balance.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 31-Pay-Command ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 32-Leveling-System ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 33-Per-Server-Prefix ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── prefix │ │ └── set-prefix.js │ └── ticket.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 34-Warn-Command ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 35-Bots-Ping ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 36-Remote-MongoDB-Database ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 37-Mod-Logs ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 38-Punishment-Log-Command ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── moderation │ │ └── punishment-logs.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 39-Command-Cooldowns ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── moderation │ │ └── punishment-logs.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 40-Channel-Specific-Commands ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── moderation │ │ └── punishment-logs.js │ ├── prefix │ │ └── set-prefix.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 41-Language-Selector ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── moderation │ │ └── punishment-logs.js │ ├── prefix │ │ └── set-prefix.js │ ├── setlang.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── lang.json ├── language.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 42-Give-Role-Command ├── advanced-polls.js ├── anti-ad.js ├── command.js ├── commands │ ├── add.js │ ├── command-base.js │ ├── delete-channel.js │ ├── economy │ │ ├── add-balance.js │ │ ├── balance.js │ │ └── pay.js │ ├── help.js │ ├── invites.js │ ├── load-commands.js │ ├── misc │ │ └── ping.js │ ├── moderation │ │ └── punishment-logs.js │ ├── prefix │ │ └── set-prefix.js │ ├── roles │ │ ├── give-role.js │ │ ├── has-role.js │ │ └── remove-role.js │ ├── setlang.js │ ├── ticket.js │ └── warn │ │ ├── list-warnings.js │ │ └── warn.js ├── economy.js ├── eval.js ├── first-message.js ├── index.js ├── invite-notifications.js ├── lang.json ├── language.js ├── levels.js ├── member-count.js ├── message-counter.js ├── mod-logs.js ├── mongo.js ├── mute.js ├── package.json ├── poll.js ├── private-message.js ├── redis.js ├── role-claim.js ├── scaling-channels.js ├── schemas │ ├── command-prefix-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js ├── send-message.js └── welcome.js ├── 43-Refactoring ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── message-counter.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 44-Commando-Framework ├── cmds │ ├── misc │ │ └── add.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 45-Commando-Per-Guild-Prefixes ├── cmds │ ├── misc │ │ └── add.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 46-Daily-Rewards-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── misc │ │ └── add.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 47-Giveaway-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ └── add.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 48-Fast-Type ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ └── add.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 49-User-Verification ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── add.js │ │ └── set-verification.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 50-Playing-Audio ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── play-audio.js │ │ └── set-verification.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 51-Bot-Info-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── play-audio.js │ │ └── set-verification.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 52-User-Info-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 53-Calling-APIs ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 54-Updating-Channel-Permissions ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ ├── update-permissions.js │ │ └── user-info.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── permissions.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 55-Creating-One-Database-Connection ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ └── kick.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 56-Mute-Command-with-MongoDB ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ ├── kick.js │ │ └── mute.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 57-Unmute-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 58-Is-Muted-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 59-Role-Size-Counter-Channel ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ └── user-info.js │ └── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 60-Thanks-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── thanks-shcema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 61-Thanks-Leaderboard ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 62-Temporary-Private-Text-Channels ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 63-Slowmode-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 64-Attaching-Images-to-Messages ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 65-Nickname-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 66-Discord-Docs-Command ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 67-Charts ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 68-Among-Us ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ ├── among-us-category.js │ │ ├── among-us.js │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── among-us-category-schema.js │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 69-Covid-Tracker ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ ├── among-us-category.js │ │ ├── among-us.js │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── covid.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── among-us-category-schema.js │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 70-Advanced-Suggestions ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ ├── among-us-category.js │ │ ├── among-us.js │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── covid.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ ├── suggestions │ │ ├── set-suggestion-channel.js │ │ └── suggestion.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── suggestions.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── among-us-category-schema.js │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── suggestions-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 71-Message-Countdowns ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ ├── among-us-category.js │ │ ├── among-us.js │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── covid.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ ├── suggestions │ │ ├── set-suggestion-channel.js │ │ └── suggestion.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── countdown.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── suggestions.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── among-us-category-schema.js │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── suggestions-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 72-Simulate-Joins ├── cmds │ ├── economy │ │ └── daily.js │ ├── games │ │ ├── among-us-category.js │ │ ├── among-us.js │ │ └── fast-type.js │ ├── giveaways │ │ ├── end-giveaway.js │ │ └── start-giveaway.js │ ├── misc │ │ ├── Intro.m4a │ │ ├── add.js │ │ ├── bot-info.js │ │ ├── cat.js │ │ ├── chart-data.json │ │ ├── chart.js │ │ ├── covid.js │ │ ├── docs.js │ │ ├── image.jpg │ │ ├── image.js │ │ ├── nickname.js │ │ ├── play-audio.js │ │ ├── role-size-channel.js │ │ ├── set-verification.js │ │ ├── slow.js │ │ ├── temp-channel.js │ │ └── user-info.js │ ├── moderation │ │ ├── ismuted.js │ │ ├── kick.js │ │ ├── mute.js │ │ └── unmute.js │ ├── suggestions │ │ ├── set-suggestion-channel.js │ │ └── suggestion.js │ ├── testing │ │ ├── simjoin.js │ │ └── simleave.js │ └── thanks │ │ ├── set-leaderboard.js │ │ └── thanks.js ├── commands │ ├── command-base.js │ ├── commands │ │ ├── add.js │ │ ├── delete-channel.js │ │ ├── economy │ │ │ ├── add-balance.js │ │ │ ├── balance.js │ │ │ └── pay.js │ │ ├── help.js │ │ ├── invites.js │ │ ├── misc │ │ │ └── ping.js │ │ ├── moderation │ │ │ └── punishment-logs.js │ │ ├── prefix │ │ │ └── set-prefix.js │ │ ├── roles │ │ │ ├── give-role.js │ │ │ ├── has-role.js │ │ │ └── remove-role.js │ │ ├── setlang.js │ │ ├── ticket.js │ │ └── warn │ │ │ ├── list-warnings.js │ │ │ └── warn.js │ └── load-commands.js ├── features │ ├── features │ │ ├── advanced-polls.js │ │ ├── anti-ad.js │ │ ├── countdown.js │ │ ├── economy.js │ │ ├── invite-notifications.js │ │ ├── join-test.js │ │ ├── levels.js │ │ ├── member-count.js │ │ ├── mod-logs.js │ │ ├── moderation │ │ │ └── mute.js │ │ ├── poll.js │ │ ├── role-claim.js │ │ ├── role-size-channel.js │ │ ├── scaling-channels.js │ │ ├── suggestions.js │ │ ├── temp-channel.js │ │ ├── thanks-leaderboard.js │ │ ├── verification-channels.js │ │ └── welcome.js │ └── load-features.js ├── index.js ├── lang.json ├── package.json ├── schemas │ ├── among-us-category-schema.js │ ├── command-prefix-schema.js │ ├── daily-rewards-schema.js │ ├── language-schema.js │ ├── message-count-schema.js │ ├── mute-schema.js │ ├── profile-schema.js │ ├── punishment-log-schema.js │ ├── role-size-schema.js │ ├── suggestions-schema.js │ ├── temp-channels-schema.js │ ├── thanks-leaderboard-schema.js │ ├── thanks-schema.js │ ├── verification-channels-schema.js │ ├── warn-schema.js │ └── welcome-schema.js └── util │ ├── command.js │ ├── fast-type-words.json │ ├── first-message.js │ ├── language.js │ ├── mongo.js │ ├── private-message.js │ ├── redis.js │ └── send-message.js ├── 74-Canvas-Welcome ├── background.png ├── commands │ ├── setwelcome.js │ └── simjoin.js ├── features │ └── welcome.js ├── index.js ├── models │ └── welcome-schema.js └── package.json ├── 75-Auto-Publish-Crosspost ├── features │ └── auto-publish.js ├── index.js └── package.json ├── 76-Message-Collectors ├── commands │ └── test.js ├── index.js └── package.json ├── 80-Per-Server-Reaction-Roles ├── .gitignore ├── commands │ ├── rr.js │ └── rrmsg.js ├── features │ └── rr.js ├── index.js ├── models │ └── message.js └── package.json ├── 81-Embeds-from-JSON ├── .gitignore ├── commands │ └── embed.js ├── index.js └── package.json ├── 82-Slash-Commands ├── .gitignore ├── 82-Slash-Commands.zip ├── commands │ └── ping.js ├── index.js └── package.json ├── 83-Scheduling-Messages ├── .gitignore ├── 83-Scheduling-Messages.zip ├── commands │ └── schedule.js ├── index.js ├── models │ └── scheduled-schema.js └── package.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | config.json 2 | node_modules 3 | package-lock.json 4 | .env 5 | -------------------------------------------------------------------------------- /01-Creating-The-Bot/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | const config = require('./config.json') 4 | 5 | client.on('ready', () => { 6 | console.log('The client is ready!') 7 | }) 8 | 9 | client.login(config.token) 10 | -------------------------------------------------------------------------------- /01-Creating-The-Bot/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /03-Commands/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /04-List-Servers-Delete-Messages-Bot-Status/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /05-Editing-And-Reacting/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /06-Private-Messaging/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /06-Private-Messaging/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /07-Create-Channels/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /07-Create-Channels/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /08-Embeds/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /08-Embeds/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /09-Server-Info-Command/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /09-Server-Info-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /10-Help-Command/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /10-Help-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /11-Roles-from-Reactions/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const roleClaim = require('./role-claim') 6 | 7 | client.on('ready', () => { 8 | console.log('The client is ready!') 9 | 10 | roleClaim(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /11-Roles-from-Reactions/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /11-Roles-from-Reactions/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /12-Ban-and-Kick/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /12-Ban-and-Kick/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /13-Automatic-Polls/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const poll = require('./poll') 6 | 7 | client.on('ready', () => { 8 | console.log('The client is ready!') 9 | 10 | poll(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /13-Automatic-Polls/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /13-Automatic-Polls/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /14-Welcome-Message/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const welcome = require('./welcome') 6 | 7 | client.on('ready', () => { 8 | console.log('The client is ready!') 9 | 10 | welcome(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /14-Welcome-Message/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /14-Welcome-Message/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /15-Member-Count/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const memberCount = require('./member-count') 6 | 7 | client.on('ready', () => { 8 | console.log('The client is ready!') 9 | 10 | memberCount(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /15-Member-Count/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /15-Member-Count/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /16-Temporary-Messages/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "1-Creating-The-Bot", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "discord.js": "^12.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /16-Temporary-Messages/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /16-Temporary-Messages/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /17-MongoDB-Tutorial/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /17-MongoDB-Tutorial/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /17-MongoDB-Tutorial/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /18-Per-Server-Settings/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const welcome = require('./welcome') 6 | 7 | client.on('ready', async () => { 8 | console.log('The client is ready!') 9 | 10 | welcome(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /18-Per-Server-Settings/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /18-Per-Server-Settings/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /18-Per-Server-Settings/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /18-Per-Server-Settings/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /19-Per-User-Data/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const messageCount = require('./message-counter') 6 | 7 | client.on('ready', async () => { 8 | console.log('The client is ready!') 9 | 10 | messageCount(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /19-Per-User-Data/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /19-Per-User-Data/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /19-Per-User-Data/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /19-Per-User-Data/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /20-Mute-Command/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const mute = require('./mute') 6 | 7 | client.on('ready', async () => { 8 | console.log('The client is ready!') 9 | 10 | mute(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /20-Mute-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /20-Mute-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /20-Mute-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /20-Mute-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /21-Eval-Command/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | 6 | client.on('ready', async () => { 7 | console.log('The client is ready!') 8 | }) 9 | 10 | client.login(config.token) 11 | -------------------------------------------------------------------------------- /21-Eval-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /21-Eval-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /21-Eval-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /21-Eval-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /22-Advanced-Command-Handler/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /22-Advanced-Command-Handler/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /22-Advanced-Command-Handler/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /22-Advanced-Command-Handler/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /22-Advanced-Command-Handler/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /23-Anti-Advertising/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /23-Anti-Advertising/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /23-Anti-Advertising/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /23-Anti-Advertising/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /23-Anti-Advertising/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /24-Invite-Tracker/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /24-Invite-Tracker/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /24-Invite-Tracker/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /24-Invite-Tracker/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /24-Invite-Tracker/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /25-Invite-Notification-Channel/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /25-Invite-Notification-Channel/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /25-Invite-Notification-Channel/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /25-Invite-Notification-Channel/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /25-Invite-Notification-Channel/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /26-Ticketing-System/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /26-Ticketing-System/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /26-Ticketing-System/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /26-Ticketing-System/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /26-Ticketing-System/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | callback: (message, arguments, text) => { 7 | message.channel.delete() 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /27-Delete-and-Scale-Channels/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /28-Economy-System/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | callback: (message, arguments, text) => { 7 | message.channel.delete() 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /28-Economy-System/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | callback: (message, arguments, text) => { 6 | message.reply('Pong!') 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /28-Economy-System/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /28-Economy-System/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /28-Economy-System/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /28-Economy-System/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const loadCommands = require('./commands/load-commands') 6 | 7 | client.on('ready', async () => { 8 | console.log('The client is ready!') 9 | 10 | loadCommands(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /29-Dynamic-Help-Menu/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /30-Advanced-Polls/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /30-Advanced-Polls/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /30-Advanced-Polls/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /30-Advanced-Polls/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /30-Advanced-Polls/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /30-Advanced-Polls/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /31-Pay-Command/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /31-Pay-Command/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /31-Pay-Command/index.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js') 2 | const client = new Discord.Client() 3 | 4 | const config = require('./config.json') 5 | const loadCommands = require('./commands/load-commands') 6 | 7 | client.on('ready', async () => { 8 | console.log('The client is ready!') 9 | 10 | loadCommands(client) 11 | }) 12 | 13 | client.login(config.token) 14 | -------------------------------------------------------------------------------- /31-Pay-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /31-Pay-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /31-Pay-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /31-Pay-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /32-Leveling-System/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /32-Leveling-System/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /32-Leveling-System/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /32-Leveling-System/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /32-Leveling-System/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /32-Leveling-System/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /33-Per-Server-Prefix/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /34-Warn-Command/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /34-Warn-Command/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | minArgs: 0, 4 | maxArgs: 0, 5 | description: 'Replies with pong', 6 | callback: (message, arguments, text) => { 7 | message.reply('Pong!') 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /34-Warn-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /34-Warn-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /34-Warn-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /34-Warn-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /34-Warn-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /35-Bots-Ping/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /35-Bots-Ping/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | callback: (message, arguments, text, client) => { 4 | message.reply('Calculating ping...').then((resultMessage) => { 5 | const ping = resultMessage.createdTimestamp - message.createdTimestamp 6 | 7 | resultMessage.edit(`Bot latency: ${ping}, API Latency: ${client.ws.ping}`) 8 | }) 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /35-Bots-Ping/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /35-Bots-Ping/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /35-Bots-Ping/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /35-Bots-Ping/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /35-Bots-Ping/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /36-Remote-MongoDB-Database/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /36-Remote-MongoDB-Database/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /36-Remote-MongoDB-Database/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /36-Remote-MongoDB-Database/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /37-Mod-Logs/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /37-Mod-Logs/commands/misc/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: 'ping', 3 | callback: (message, arguments, text, client) => { 4 | message.reply('Calculating ping...').then((resultMessage) => { 5 | const ping = resultMessage.createdTimestamp - message.createdTimestamp 6 | 7 | resultMessage.edit(`Bot latency: ${ping}, API Latency: ${client.ws.ping}`) 8 | }) 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /37-Mod-Logs/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /37-Mod-Logs/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /37-Mod-Logs/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /37-Mod-Logs/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /37-Mod-Logs/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /38-Punishment-Log-Command/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /38-Punishment-Log-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /38-Punishment-Log-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /38-Punishment-Log-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /38-Punishment-Log-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /39-Command-Cooldowns/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /40-Channel-Specific-Commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /40-Channel-Specific-Commands/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /40-Channel-Specific-Commands/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /40-Channel-Specific-Commands/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /40-Channel-Specific-Commands/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /41-Language-Selector/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /41-Language-Selector/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /41-Language-Selector/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /41-Language-Selector/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /41-Language-Selector/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /41-Language-Selector/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /41-Language-Selector/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /41-Language-Selector/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /42-Give-Role-Command/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /42-Give-Role-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /42-Give-Role-Command/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('./config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /42-Give-Role-Command/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /42-Give-Role-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /42-Give-Role-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /42-Give-Role-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /42-Give-Role-Command/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /43-Refactoring/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /43-Refactoring/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /43-Refactoring/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /43-Refactoring/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /43-Refactoring/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /43-Refactoring/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /43-Refactoring/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /43-Refactoring/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /44-Commando-Framework/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /44-Commando-Framework/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /44-Commando-Framework/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /44-Commando-Framework/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /44-Commando-Framework/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /44-Commando-Framework/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /44-Commando-Framework/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /44-Commando-Framework/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /45-Commando-Per-Guild-Prefixes/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /46-Daily-Rewards-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /47-Giveaway-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /47-Giveaway-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /47-Giveaway-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /47-Giveaway-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /47-Giveaway-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /47-Giveaway-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /47-Giveaway-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /47-Giveaway-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /48-Fast-Type/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /48-Fast-Type/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /48-Fast-Type/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /48-Fast-Type/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /48-Fast-Type/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /48-Fast-Type/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /48-Fast-Type/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /48-Fast-Type/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /48-Fast-Type/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /49-User-Verification/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /49-User-Verification/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /49-User-Verification/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /49-User-Verification/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /49-User-Verification/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /49-User-Verification/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /49-User-Verification/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /49-User-Verification/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /49-User-Verification/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /50-Playing-Audio/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/50-Playing-Audio/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /50-Playing-Audio/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /50-Playing-Audio/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /50-Playing-Audio/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /50-Playing-Audio/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /50-Playing-Audio/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /50-Playing-Audio/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /50-Playing-Audio/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /50-Playing-Audio/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /50-Playing-Audio/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/51-Bot-Info-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /51-Bot-Info-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /51-Bot-Info-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /52-User-Info-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/52-User-Info-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /52-User-Info-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /52-User-Info-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /52-User-Info-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /52-User-Info-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /52-User-Info-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /52-User-Info-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /52-User-Info-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /52-User-Info-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /52-User-Info-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /53-Calling-APIs/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/53-Calling-APIs/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /53-Calling-APIs/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /53-Calling-APIs/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /53-Calling-APIs/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /53-Calling-APIs/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /53-Calling-APIs/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /53-Calling-APIs/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /53-Calling-APIs/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | }) 9 | return mongoose 10 | } 11 | -------------------------------------------------------------------------------- /53-Calling-APIs/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /53-Calling-APIs/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/54-Updating-Channel-Permissions/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | await mongoose.connect(mongoPath, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | useFindAndModify: false, 9 | }) 10 | return mongoose 11 | } 12 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /54-Updating-Channel-Permissions/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/55-Creating-One-Database-Connection/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /55-Creating-One-Database-Connection/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/56-Mute-Command-with-MongoDB/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /56-Mute-Command-with-MongoDB/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /57-Unmute-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/57-Unmute-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /57-Unmute-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /57-Unmute-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /57-Unmute-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /57-Unmute-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /57-Unmute-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /57-Unmute-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /57-Unmute-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /57-Unmute-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /57-Unmute-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/58-Is-Muted-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /58-Is-Muted-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /58-Is-Muted-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/59-Role-Size-Counter-Channel/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /59-Role-Size-Counter-Channel/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /60-Thanks-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/60-Thanks-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /60-Thanks-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /60-Thanks-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /60-Thanks-Command/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /60-Thanks-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /60-Thanks-Command/schemas/role-size-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const roleSizeSchema = mongoose.Schema({ 9 | guildId: reqString, 10 | channelId: reqString, 11 | roleId: reqString, 12 | text: reqString, 13 | }) 14 | 15 | module.exports = mongoose.model('role-size-channels', roleSizeSchema) 16 | -------------------------------------------------------------------------------- /60-Thanks-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /60-Thanks-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /60-Thanks-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /60-Thanks-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /60-Thanks-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/61-Thanks-Leaderboard/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /61-Thanks-Leaderboard/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/62-Temporary-Private-Text-Channels/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /62-Temporary-Private-Text-Channels/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /63-Slowmode-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/63-Slowmode-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /63-Slowmode-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /63-Slowmode-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /63-Slowmode-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /63-Slowmode-Command/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /63-Slowmode-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /63-Slowmode-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /63-Slowmode-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /63-Slowmode-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /63-Slowmode-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/64-Attaching-Images-to-Messages/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/64-Attaching-Images-to-Messages/cmds/misc/image.jpg -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /64-Attaching-Images-to-Messages/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /65-Nickname-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/65-Nickname-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /65-Nickname-Command/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/65-Nickname-Command/cmds/misc/image.jpg -------------------------------------------------------------------------------- /65-Nickname-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /65-Nickname-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /65-Nickname-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /65-Nickname-Command/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /65-Nickname-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /65-Nickname-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /65-Nickname-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /65-Nickname-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /65-Nickname-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/66-Discord-Docs-Command/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /66-Discord-Docs-Command/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/66-Discord-Docs-Command/cmds/misc/image.jpg -------------------------------------------------------------------------------- /66-Discord-Docs-Command/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /66-Discord-Docs-Command/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /67-Charts/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/67-Charts/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /67-Charts/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/67-Charts/cmds/misc/image.jpg -------------------------------------------------------------------------------- /67-Charts/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /67-Charts/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /67-Charts/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /67-Charts/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /67-Charts/schemas/role-size-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const roleSizeSchema = mongoose.Schema({ 9 | guildId: reqString, 10 | channelId: reqString, 11 | roleId: reqString, 12 | text: reqString, 13 | }) 14 | 15 | module.exports = mongoose.model('role-size-channels', roleSizeSchema) 16 | -------------------------------------------------------------------------------- /67-Charts/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /67-Charts/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /67-Charts/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /67-Charts/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /67-Charts/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /67-Charts/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /68-Among-Us/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/68-Among-Us/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /68-Among-Us/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/68-Among-Us/cmds/misc/image.jpg -------------------------------------------------------------------------------- /68-Among-Us/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /68-Among-Us/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/among-us-category-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const amongUsCategorySchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | categoryId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('among-us-categories', amongUsCategorySchema) 15 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/role-size-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const roleSizeSchema = mongoose.Schema({ 9 | guildId: reqString, 10 | channelId: reqString, 11 | roleId: reqString, 12 | text: reqString, 13 | }) 14 | 15 | module.exports = mongoose.model('role-size-channels', roleSizeSchema) 16 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /68-Among-Us/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /68-Among-Us/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /68-Among-Us/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /68-Among-Us/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /68-Among-Us/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /69-Covid-Tracker/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/69-Covid-Tracker/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /69-Covid-Tracker/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/69-Covid-Tracker/cmds/misc/image.jpg -------------------------------------------------------------------------------- /69-Covid-Tracker/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /69-Covid-Tracker/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /69-Covid-Tracker/schemas/among-us-category-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const amongUsCategorySchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | categoryId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('among-us-categories', amongUsCategorySchema) 15 | -------------------------------------------------------------------------------- /69-Covid-Tracker/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /69-Covid-Tracker/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /69-Covid-Tracker/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /69-Covid-Tracker/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /69-Covid-Tracker/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /69-Covid-Tracker/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /69-Covid-Tracker/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /69-Covid-Tracker/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/70-Advanced-Suggestions/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /70-Advanced-Suggestions/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/70-Advanced-Suggestions/cmds/misc/image.jpg -------------------------------------------------------------------------------- /70-Advanced-Suggestions/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/schemas/among-us-category-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const amongUsCategorySchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | categoryId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('among-us-categories', amongUsCategorySchema) 15 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/schemas/suggestions-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const suggestionSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('suggestions-tutorial', suggestionSchema) 15 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /70-Advanced-Suggestions/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /71-Message-Countdowns/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/71-Message-Countdowns/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /71-Message-Countdowns/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/71-Message-Countdowns/cmds/misc/image.jpg -------------------------------------------------------------------------------- /71-Message-Countdowns/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /71-Message-Countdowns/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /71-Message-Countdowns/schemas/among-us-category-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const amongUsCategorySchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | categoryId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('among-us-categories', amongUsCategorySchema) 15 | -------------------------------------------------------------------------------- /71-Message-Countdowns/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /71-Message-Countdowns/schemas/suggestions-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const suggestionSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('suggestions-tutorial', suggestionSchema) 15 | -------------------------------------------------------------------------------- /71-Message-Countdowns/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /71-Message-Countdowns/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /71-Message-Countdowns/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /71-Message-Countdowns/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /71-Message-Countdowns/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /72-Simulate-Joins/cmds/misc/Intro.m4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/72-Simulate-Joins/cmds/misc/Intro.m4a -------------------------------------------------------------------------------- /72-Simulate-Joins/cmds/misc/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/72-Simulate-Joins/cmds/misc/image.jpg -------------------------------------------------------------------------------- /72-Simulate-Joins/commands/commands/delete-channel.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | commands: ['deletechannel', 'delchannel'], 3 | maxArgs: 0, 4 | permissionError: 'You must be an admin to use this command.', 5 | permissions: 'ADMINISTRATOR', 6 | description: 'Deletes the current channel.', 7 | callback: (message, arguments, text) => { 8 | message.channel.delete() 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /72-Simulate-Joins/features/features/join-test.js: -------------------------------------------------------------------------------- 1 | module.exports = (client) => { 2 | client.on('guildMemberAdd', (member) => { 3 | console.log(`${member.id} has joined the server`) 4 | }) 5 | 6 | client.on('guildMemberLeave', (member) => { 7 | console.log(`${member.id} has left the server`) 8 | }) 9 | } 10 | -------------------------------------------------------------------------------- /72-Simulate-Joins/lang.json: -------------------------------------------------------------------------------- 1 | { 2 | "languages": ["english", "spanish"], 3 | "translations": { 4 | "THE_SUM_IS": { 5 | "english": "The sum is", 6 | "spanish": "La suma es" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/among-us-category-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const amongUsCategorySchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | categoryId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('among-us-categories', amongUsCategorySchema) 15 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/command-prefix-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const commandPrefixSchema = mongoose.Schema({ 4 | // Guild ID 5 | _id: { 6 | type: String, 7 | required: true, 8 | }, 9 | 10 | prefix: { 11 | type: String, 12 | required: true, 13 | }, 14 | }) 15 | 16 | module.exports = mongoose.model('guild-prefixes', commandPrefixSchema) 17 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/language-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const languageSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | language: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('languages', languageSchema) 15 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/suggestions-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const suggestionSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('suggestions-tutorial', suggestionSchema) 15 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/thanks-leaderboard-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const thanksLeaderboardSchema = mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('thanks-leaderboards', thanksLeaderboardSchema) 15 | -------------------------------------------------------------------------------- /72-Simulate-Joins/schemas/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = mongoose.Schema({ 9 | _id: reqString, 10 | channelId: reqString, 11 | text: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-channels', welcomeSchema) 15 | -------------------------------------------------------------------------------- /72-Simulate-Joins/util/fast-type-words.json: -------------------------------------------------------------------------------- 1 | { 2 | "words": [ 3 | "car", 4 | "bat", 5 | "volleyball", 6 | "bridge", 7 | "educate", 8 | "enchanting", 9 | "live", 10 | "agree" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /72-Simulate-Joins/util/mongo.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { mongoPath } = require('@root/config.json') 3 | 4 | module.exports = async () => { 5 | mongoose.connect(mongoPath, { 6 | keepAlive: true, 7 | useNewUrlParser: true, 8 | useUnifiedTopology: true, 9 | useFindAndModify: false, 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /72-Simulate-Joins/util/private-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (client, triggerText, replyText) => { 2 | client.on('message', (message) => { 3 | if ( 4 | message.channel.type === 'dm' && 5 | message.content.toLowerCase() === triggerText.toLowerCase() 6 | ) { 7 | message.author.send(replyText) 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /72-Simulate-Joins/util/send-message.js: -------------------------------------------------------------------------------- 1 | module.exports = (channel, text, duration = -1) => { 2 | channel.send(text).then((message) => { 3 | if (duration === -1) { 4 | return 5 | } 6 | 7 | setTimeout(() => { 8 | message.delete() 9 | }, 1000 * duration) 10 | }) 11 | } 12 | -------------------------------------------------------------------------------- /74-Canvas-Welcome/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/74-Canvas-Welcome/background.png -------------------------------------------------------------------------------- /74-Canvas-Welcome/commands/simjoin.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | requiredPermissions: ['ADMINISTRATOR'], 3 | callback: (message, args, text, client) => { 4 | client.emit('guildMemberAdd', message.member) 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /74-Canvas-Welcome/models/welcome-schema.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | 3 | const reqString = { 4 | type: String, 5 | required: true, 6 | } 7 | 8 | const welcomeSchema = new mongoose.Schema({ 9 | // Guild ID 10 | _id: reqString, 11 | channelId: reqString, 12 | }) 13 | 14 | module.exports = mongoose.model('welcome-canvas-tutorial', welcomeSchema) 15 | -------------------------------------------------------------------------------- /75-Auto-Publish-Crosspost/features/auto-publish.js: -------------------------------------------------------------------------------- 1 | module.exports = (client) => { 2 | client.on('message', (message) => { 3 | const { channel } = message 4 | 5 | if (channel.type === 'news') { 6 | message.crosspost() 7 | console.log('published news message') 8 | } 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /75-Auto-Publish-Crosspost/index.js: -------------------------------------------------------------------------------- 1 | const DiscordJS = require('discord.js') 2 | const WOKCommands = require('wokcommands') 3 | require('dotenv').config() 4 | 5 | const client = new DiscordJS.Client() 6 | 7 | client.on('ready', () => { 8 | console.log('The bot is ready') 9 | 10 | new WOKCommands(client, 'commands', 'features') 11 | }) 12 | 13 | client.login(process.env.TOKEN) 14 | -------------------------------------------------------------------------------- /76-Message-Collectors/index.js: -------------------------------------------------------------------------------- 1 | const DiscordJS = require('discord.js') 2 | const WOKCommands = require('wokcommands') 3 | require('dotenv').config() 4 | 5 | const client = new DiscordJS.Client() 6 | 7 | client.on('ready', () => { 8 | console.log('Ready') 9 | 10 | new WOKCommands(client) 11 | }) 12 | 13 | client.login(process.env.TOKEN) 14 | -------------------------------------------------------------------------------- /80-Per-Server-Reaction-Roles/.gitignore: -------------------------------------------------------------------------------- 1 | .env -------------------------------------------------------------------------------- /81-Embeds-from-JSON/.gitignore: -------------------------------------------------------------------------------- 1 | .env -------------------------------------------------------------------------------- /82-Slash-Commands/.gitignore: -------------------------------------------------------------------------------- 1 | .env -------------------------------------------------------------------------------- /82-Slash-Commands/82-Slash-Commands.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/82-Slash-Commands/82-Slash-Commands.zip -------------------------------------------------------------------------------- /83-Scheduling-Messages/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules -------------------------------------------------------------------------------- /83-Scheduling-Messages/83-Scheduling-Messages.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexzanderFlores/Worn-Off-Keys-Discord-Js/baa1d9e19f0424a191565eff8ba17ec7b0b72e6d/83-Scheduling-Messages/83-Scheduling-Messages.zip --------------------------------------------------------------------------------