Skip to content

Commit 49c7a9c

Browse files
committed
Update Main from Canary
1 parent 7d1bde3 commit 49c7a9c

34 files changed

+978
-2268
lines changed

.jshintrc

Lines changed: 0 additions & 3 deletions
This file was deleted.

bot.js

Lines changed: 51 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,19 @@ process
4848
console.error(err, 'Uncaught Exception caught');
4949
});
5050

51-
const { Client, Intents, Constants } = require('discord.js');
52-
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, Intents.FLAGS.DIRECT_MESSAGES], partials: ["CHANNEL"] });
53-
const { token, botPerms, devGuildId } = require('./config.json');
51+
const { Client, GatewayIntentBits, PermissionsBitField, Partials } = require('discord.js');
52+
const client = new Client({
53+
intents: [
54+
GatewayIntentBits.Guilds,
55+
GatewayIntentBits.GuildMessages,
56+
GatewayIntentBits.GuildEmojisAndStickers,
57+
GatewayIntentBits.DirectMessages
58+
],
59+
partials: [
60+
Partials.Channel
61+
]
62+
});
63+
const { token, devGuildId, clearCommandList } = require('./config.json');
5464

5565
var { activityResetTimeout_SECONDS } = require('./config.json');
5666
activityResetTimeout_SECONDS *= 1000;
@@ -97,7 +107,9 @@ const __ = (string, lang, options = undefined) => {
97107

98108
// Setup bot ready callback
99109
client.once('ready', async () => {
100-
console.log(gradient.rainbow(`[+] Logged in as ${client.user.tag}! \( ̄▽ ̄)/`)); // Console log for verbosity
110+
if(!clearCommandList == true){
111+
console.log(gradient.rainbow(`[+] Logged in as ${client.user.tag}! \( ̄▽ ̄)/`)); // Console log for verbosity
112+
}
101113
client.user.setActivity(
102114
"chat for suicide.", {
103115
type: 'LISTENING'
@@ -114,11 +126,25 @@ client.once('ready', async () => {
114126
// Get dev guild ID for slash commands, comment to use global slash commands
115127
const devGuild = client.guilds.cache.get(devGuildId);
116128
if (typeof devGuild == "undefined") {
117-
client.application.commands.set(commands);
118-
console.log(gradient.rainbow("[+] Set global commands"));
129+
if(clearCommandList == true) {
130+
await client.application.commands.set([]);
131+
await devGuild.commands.set([]);
132+
console.log(gradient.rainbow("[+] Cleared commands (helps remove old commands or duplicates)"));
133+
console.log("\x1B[31mPlease set \"clearCommandList\" in config.json to false to run the bot normally!\x1b[37m");
134+
} else {
135+
await client.application.commands.set(commands);
136+
console.log(gradient.rainbow("[+] Set global commands"));
137+
}
119138
} else {
120-
devGuild.commands.set(commands);
121-
console.log(gradient.rainbow("[+] Set guild commands"));
139+
if(clearCommandList == true) {
140+
await client.application.commands.set([]);
141+
await devGuild.commands.set([]);
142+
console.log(gradient.rainbow("[+] Cleared commands (helps remove old commands or duplicates)"));
143+
console.log("\x1B[31mPlease set \"clearCommandList\" in config.json to false to run the bot normally!\x1b[37m");
144+
} else {
145+
await devGuild.commands.set(commands);
146+
console.log(gradient.rainbow("[+] Set guild/local commands"));
147+
}
122148
}
123149
});
124150

@@ -128,7 +154,7 @@ client.once('ready', async () => {
128154
client.on('messageCreate', async message => {
129155
lastMessage = message;
130156

131-
if (message.author.bot || message.channel.type === 'DM' || !message.channel.permissionsFor(client.user).has(botPerms)) return; // Verify permissions of user who sent message before continuing.
157+
if (message.author.bot || message.channel.type === 'DM' || !message.channel.permissionsFor(client.user).has(PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.EmbedLinks, PermissionsBitField.Flags.ReadMessageHistory)) return; // Verify permissions of user who sent message before continuing.
132158

133159
let lang = "en";
134160
const server_language = lang_db.get(`lang_${message.guild.id}`);
@@ -137,7 +163,7 @@ client.on('messageCreate', async message => {
137163
let LCM = message.content.toLowerCase(); //Lower case message text
138164

139165
// Mention bot will activate alert message without triggers
140-
if (message.mentions.users.first() === client.user)
166+
if (message.mentions.users.first() === client.user && message.reference == null)
141167
return require('./events/bot-mentioned')(message, lang, LCM);
142168

143169
//Check to see if you muted the bot (User side only)
@@ -152,7 +178,7 @@ client.on('messageCreate', async message => {
152178

153179

154180
/**
155-
* Slash Commands && Buttons
181+
* Slash Commands
156182
*/
157183
client.on("interactionCreate", async (interaction) => {
158184
//Slash Commands
@@ -162,71 +188,40 @@ client.on("interactionCreate", async (interaction) => {
162188
if (typeof server_language === 'string') lang = server_language;
163189

164190
const { commandName, options } = interaction;
165-
switch (commandName) {
166-
case "dm":
167-
return require('./commands/dm').default(interaction, lang);
168-
case "ping":
169-
return require('./commands/ping').default(interaction, lang);
170-
case "status":
171-
return require('./commands/status').default(interaction, lang);
172-
case "dmmute":
173-
return require("./commands/dmmute").default(interaction, lang);
174-
case "invite":
175-
return require("./commands/invite").default(interaction, lang);
176-
case "info":
177-
return require("./commands/info").default(interaction, lang);
178-
case "help":
179-
return require("./commands/help").default(interaction, lang);
180-
case "language":
181-
return require("./commands/set").default(interaction, lang);
182-
case "languages":
183-
return require("./commands/lang").default(interaction, lang);
184-
case "mute":
185-
return require("./commands/mute").default(interaction, lang);
186-
case "blacklist":
187-
return require("./commands/blacklist").default(interaction, lang);
188-
case "tos":
189-
return require("./commands/tos").default(interaction, lang);
190-
case "privacy":
191-
return require("./commands/privacy").default(interaction, lang);
192-
}
193-
} else if (interaction.isButton()) {
194-
//Buttons
191+
return require(`./commands/${commandName}`).default(interaction, lang);
192+
}
193+
194+
//Buttons
195+
if (interaction.isButton()) {
195196
if (interaction.customId.includes('button2')) {
196197
user_mutes_db.set(`dmmute_${interaction.user.id}`, true);
197198
await interaction.reply({ content: "👍" });
198199
}
199200
}
200-
201-
202-
203-
//Buttons
204-
205201
});
206202

207203
client.login(token); //Client login
208204

209205
module.exports = {
210-
client: client,
211-
user_mutes_db: user_mutes_db,
212-
blacklist_db: blacklist_db,
213-
triggers_db: triggers_db,
214-
channel_mutes_db: channel_mutes_db,
215-
lang_db: lang_db,
216-
__: __
206+
client: client,
207+
user_mutes_db: user_mutes_db,
208+
blacklist_db: blacklist_db,
209+
triggers_db: triggers_db,
210+
channel_mutes_db: channel_mutes_db,
211+
lang_db: lang_db,
212+
__: __
217213
};
218214

219215
/* JOIN US on our Discord: https://discord.gg/YHvfUqVgWS.
220216
221217
Bot developers:
222218
223219
Bobrobot1#1408
224-
CactusKing101#2624
225-
Killerjet101#7638
220+
CatusKing#2624
221+
Jet#2471
226222
pengu#1111
227223
HAHALOSAH#4627
228224
Parotay | Luke#3210
229-
CPlusPatch#9373
230225
231226
Message from developers:
232227

commands/blacklist.js

Lines changed: 47 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,81 @@
1-
const { Constants } = require('discord.js');
2-
31
module.exports = {
42
command: {
53
name: "blacklist",
64
description: "Blacklist settings",
75
options: [
86
{
9-
name: "add",
10-
description: "Add a word to ignore",
11-
type: Constants.ApplicationCommandOptionTypes.SUB_COMMAND,
12-
options: [
7+
name: 'input',
8+
description: 'Options for the blacklist feature',
9+
type: 3,
10+
required: true,
11+
choices: [
1312
{
14-
name: "word",
15-
description: "Word to ignore",
16-
required: true,
17-
type: Constants.ApplicationCommandOptionTypes.STRING
18-
}
19-
]
20-
},
21-
{
22-
name: "remove",
23-
description: "Remove a word to ignore",
24-
type: Constants.ApplicationCommandOptionTypes.SUB_COMMAND,
25-
options: [
13+
name: 'list',
14+
value: 'list',
15+
},
2616
{
27-
name: "word",
28-
description: "Word to ignore",
29-
required: true,
30-
type: Constants.ApplicationCommandOptionTypes.STRING
31-
}
32-
]
17+
name: 'add',
18+
value: 'add',
19+
},
20+
{
21+
name: 'remove',
22+
value: 'remove',
23+
},
24+
],
3325
},
3426
{
35-
name: "list",
36-
description: "See what words are a nono",
37-
type: Constants.ApplicationCommandOptionTypes.SUB_COMMAND,
38-
options: []
39-
}
27+
name: 'word',
28+
description: 'the chosen word to add or remove',
29+
type: 3,
30+
required: false,
31+
},
4032
]
4133
},
4234

4335
default: async (interaction, lang) => {
4436
const { blacklist_db: db, __ } = require('../bot.js');
45-
const { options } = interaction;
4637

4738
if (!interaction.member.permissions.has("ADMINISTRATOR")) {
48-
return interaction.reply({ content: __('Only admins can use this', lang), ephemeral: true });
39+
return interaction.reply({ content: __('onlyadmin', lang), ephemeral: true });
4940
} //Checks to see if you have admin perms
5041

51-
let word = options.getString("word");
42+
const input = interaction.options.getString('input')
43+
const word = interaction.options.getString('word')
5244
const blacklist = db.get(`blacklist_${interaction.guild.id}`);
5345

54-
switch (options.getSubcommand()) {
55-
case "add": {
56-
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
57-
if (blacklist.some(v => word.includes(v))) return interaction.reply({ content: __("This word is already in the blacklist", lang), ephemeral: true });
58-
blacklist.push(word);
59-
db.set(`blacklist_${interaction.guild.id}`, blacklist);
46+
if (input === 'list') {
47+
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
48+
const list = blacklist.join('\n') || "empty";
6049

61-
return interaction.reply({ content: __("Word `{{word}}` has been added to the blacklist", lang, { word: word }), ephemeral: true });
50+
return interaction.reply({ content: __("currentblacklist", lang, { list: list }), ephemeral: true });
51+
}
52+
if (input === 'add') {
53+
if (!word) {
54+
return interaction.reply({ content: __("errorblacklist", lang), ephemeral: true })
6255
}
63-
case "remove": {
64-
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
65-
if (!blacklist.some(v => word.includes(v))) return interaction.reply({ content: __("This word is not in the blacklist", lang), ephemeral: true });
66-
blacklist.splice(blacklist.indexOf(word), 1);
67-
db.set(`blacklist_${interaction.guild.id}`, blacklist);
56+
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
57+
if (blacklist.some(v => word.includes(v))) return interaction.reply({ content: __("alrinblacklist", lang), ephemeral: true });
58+
blacklist.push(word);
59+
db.set(`blacklist_${interaction.guild.id}`, blacklist);
6860

69-
return interaction.reply({ content: __("Word `{{word}}` has been removed from the blacklist", lang, { word: word }), ephemeral: true });
61+
return interaction.reply({ content: __("blacklistadd", lang, { word: word }), ephemeral: true });
62+
}
63+
if (input === 'remove') {
64+
if (!word) {
65+
return interaction.reply({ content: __("errorblacklist", lang), ephemeral: true })
7066
}
71-
case "list": {
72-
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
73-
const list = blacklist.join('\n') || "empty";
67+
if (db.get(`blacklist_${interaction.guild.id}`) == null) db.set(`blacklist_${interaction.guild.id}`, []);
68+
if (!blacklist.some(v => word.includes(v))) return interaction.reply({ content: __("notinblacklist", lang), ephemeral: true });
69+
blacklist.splice(blacklist.indexOf(word), 1);
70+
db.set(`blacklist_${interaction.guild.id}`, blacklist);
7471

75-
return interaction.reply({ content: __("The current blacklist consists of the words:\n```\n{{list}}```", lang, { list: list }), ephemeral: true });
76-
}
72+
return interaction.reply({ content: __("blacklistremove", lang, { word: word }), ephemeral: true });
7773
}
7874
},
7975

8076
checkIfIgnored: (message) => {
8177
const { blacklist_db: db } = require('../bot.js');
82-
78+
8379
if (db.get(`blacklist_${message.guild.id}`) == null) db.set(`blacklist_${message.guild.id}`, []);
8480
let blacklist = db.get(`blacklist_${message.guild.id}`);
8581
if (blacklist.some(v => message.content.includes(v))) return true;

0 commit comments

Comments
 (0)