Skip to content

Commit 42f8f70

Browse files
committed
Add basic config command, fix join messages
1 parent 16bbc0c commit 42f8f70

File tree

6 files changed

+142
-7
lines changed

6 files changed

+142
-7
lines changed

src/EventHandler.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@ class EventHandler {
6565
try {
6666
let joinmsg = Math.floor(Math.random() * messages.length);
6767
let msg = messages[joinmsg]
68-
msg = msg.replace(/['"]+/g, '`')
69-
msg = msg.replace(/[{'{USER}]+/g, `${member.mention}`);
70-
client.getChannel('1008421501487304844').createMessage(msg)
68+
msg = msg.replace(/['"]+/g, "'")
69+
msg = msg.replace(/{\w[{USER}]+/g, `${member.mention}`);
70+
client.getChannel('761932923217379338').createMessage(msg)
7171
} catch (err) {
7272
console.error(err)
7373
}
+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
const { Command, CommandOptions, CommandPermissions } = require('axoncore');
2+
const { Tatsu } = require('tatsu');
3+
const messages = require('../../../assets/joinmessages.json');
4+
const config = require('../../../../configs/config.json');
5+
const { readFileSync, writeFileSync } = require('fs');
6+
7+
const tatsu = new Tatsu('jjyo4ESeJ0-sxQ9dSRB8zmsB8edoxVuE7');
8+
9+
// const userRegex = /<@([^}]+)>/g;
10+
11+
class Configure extends Command {
12+
/**
13+
* @param {import('axoncore').Module} module
14+
*/
15+
constructor(module) {
16+
super(module);
17+
18+
this.label = 'configure';
19+
this.aliases = ['config'];
20+
21+
this.hasSubcmd = false;
22+
23+
this.info = {
24+
name: 'configure',
25+
description: 'Enable/disable various settings',
26+
usage: 'configure [setting] [true/false]',
27+
};
28+
29+
/**
30+
* @type {CommandOptions}
31+
*/
32+
this.options = new CommandOptions(this, {
33+
argsMin: 0,
34+
cooldown: 1000,
35+
guildOnly: true,
36+
} );
37+
38+
this.permissions = new CommandPermissions(this, {
39+
staff: {
40+
needed: this.axon.staff.admins,
41+
bypass: this.axon.staff.owners,
42+
},
43+
} );
44+
}
45+
46+
async execute({ msg, args }) {
47+
if (!args) {
48+
msg.channel.createMessage({}, { embed: {
49+
title: 'Configuration Settings',
50+
color: this.utils.getColor('blue'),
51+
description: 'joinMessages\ndebugMode (disables Naga for normal users)'
52+
}})
53+
} else {
54+
config.settings[args[0]] = args[1];
55+
switch (config.settings[args[0]]) {
56+
case true:
57+
this.sendSuccess(msg.channel, `Enabled ${args[0]}.`);
58+
break;
59+
case false:
60+
this.sendSuccess(msg.channel, `Disabled ${args[0]}`);
61+
break;
62+
}
63+
console.log(config.settings[args[0]])
64+
}
65+
}
66+
}
67+
68+
module.exports = Configure;

src/modules/Admin/commands/ScrapeLeaderboard.js

+8-2
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,16 @@ class ScrapeLeaderboard extends Command {
9090
leaderboard.push(`${member.username}#${member.discriminator} (${member.id}) - ${newmessage[1]}`)
9191

9292
console.log(`Adding ${newmessage[1]} XP to ${newmessage[0]}`);
93+
let xp = parseInt(newmessage[1]);
9394
try {
94-
await tatsu.addGuildMemberScore(msg.guildID, newmessage[0], parseInt(newmessage[1])); // Adds score to Tatsu
95+
if (xp >= 100000) {
96+
await tatsu.addGuildMemberScore(msg.guildID, member.id, 100000); // Adds score to Tatsu
97+
msg.channel.createMessage(`${member.id} still needs ${xp - 100000} xp added!`)
98+
} else {
99+
await tatsu.addGuildMemberScore(msg.guildID, member.id, xp); // Adds score to Tatsu
100+
}
95101
} catch (err) {
96-
this.sendError(msg.channel, `Error ${err.statusCode}: ${err.message}`);
102+
console.error(`Error ${err.statusCode}: ${err.message}`);
97103
}
98104

99105
// msg.channel.createMessage(`\`${newmessage.toString()}\``);

src/modules/Admin/commands/Tatsu.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ class TatsuTest extends Command {
4444
async execute({msg }) {
4545
msg.channel.createMessage('yuh')
4646
try {
47-
await tatsu.addGuildMemberScore(msg.guildID, msg.author.id, 5); // Adds score to Tatsu
47+
console.log(await tatsu.addGuildMemberScore(msg.guildID, msg.author.id, 5)); // Adds score to Tatsu
4848
} catch (err) {
4949
this.sendError(msg.channel, `Error ${err.statusCode}: ${err.message}`);
5050
}
51+
msg.channel.createMessage('aye');
5152
}
5253
}
5354

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
const { Command, CommandOptions, CommandPermissions } = require('axoncore');
2+
const { Tatsu } = require('tatsu');
3+
const messages = require('../../../assets/joinmessages.json');
4+
const { readFileSync, writeFileSync } = require('fs');
5+
6+
const tatsu = new Tatsu('jjyo4ESeJ0-sxQ9dSRB8zmsB8edoxVuE7');
7+
8+
// const userRegex = /<@([^}]+)>/g;
9+
10+
class TestJoinMessages extends Command {
11+
/**
12+
* @param {import('axoncore').Module} module
13+
*/
14+
constructor(module) {
15+
super(module);
16+
17+
this.label = 'joinmessages';
18+
this.aliases = ['joinmsg'];
19+
20+
this.hasSubcmd = false;
21+
22+
this.info = {
23+
name: 'joinmessages',
24+
description: 'Tests Naga\'s experimental join message feature.',
25+
usage: 'joinmsg',
26+
};
27+
28+
/**
29+
* @type {CommandOptions}
30+
*/
31+
this.options = new CommandOptions(this, {
32+
argsMin: 0,
33+
cooldown: 1000,
34+
guildOnly: true,
35+
} );
36+
37+
this.permissions = new CommandPermissions(this, {
38+
staff: {
39+
needed: this.axon.staff.admins,
40+
bypass: this.axon.staff.owners,
41+
},
42+
} );
43+
}
44+
45+
async execute({ msg, args }) {
46+
try {
47+
let joinmsg = args[0] || Math.floor(Math.random() * messages.length);
48+
let message = messages[joinmsg]
49+
message = message.replace(/['"]+/g, "'")
50+
message = message.replace(/{\w[{USER}]+/g, `<@!${msg.author.id}>`);
51+
msg.channel.createMessage(message)
52+
} catch (err) {
53+
this.sendError(msg.channel, err)
54+
}
55+
}
56+
}
57+
58+
module.exports = TestJoinMessages;

src/modules/Admin/commands/index.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
module.exports = {
22
AutoBanner: require('./AutoBanner'),
33
Build: require('./Build'),
4+
Config: require('./Configure'),
45
EditWiki: require('./EditWiki'),
56
Eval: require('./Eval'),
67
Exec: require('./Exec'),
78
Restart: require('./Restart'),
89
ScrapeLeaderboard: require('./ScrapeLeaderboard'),
910
SetGame: require('./SetGame'),
1011
Staff: require('./Staff'),
11-
TatsuTest: require('./Tatsu')
12+
TatsuTest: require('./Tatsu'),
13+
TestJoinMessages: require('./TestJoinMessages')
1214
};

0 commit comments

Comments
 (0)