Skip to content

Commit 26b5202

Browse files
authored
Merge pull request #25 from BrayanbotDev/dev
Dev -> Main
2 parents 7eebf67 + 9199aac commit 26b5202

File tree

8 files changed

+837
-145
lines changed

8 files changed

+837
-145
lines changed

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,14 @@ yarn.lock
2020
# Extra Files
2121
disposal
2222
config.yml
23+
config.json
2324
Addons/
2425
Addon_Configs/
26+
EvoTickets/
2527
*.db
2628
*.sqlite
2729
*.bak
28-
config.json
30+
31+
# Github
32+
.github/
33+
README.md

Modules/Database.js

Lines changed: 26 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,42 @@
11
const sqlite = require("better-sqlite3"),
2-
chalk = require("chalk"),
3-
fs = require("fs"),
4-
{ client, config, lang, commands } = require("../index.js");
2+
chalk = require("chalk"), fs = require("fs"),
3+
{ client, config, lang } = require("../index.js");
54

65
module.exports = {
76
/**
87
*
98
* @param {String} fileName
109
* @returns {sqlite}
1110
*/
12-
getDatabase: async (fileName = config.Settings.Storage) => {
13-
return new Promise(async (resolve, reject) => {
14-
try {
15-
if (!fs.existsSync("Database/")) await fs.mkdirSync("Database");
16-
const db = new sqlite(`Database/${fileName}` || "database.db");
17-
resolve(db);
18-
} catch (e) {
19-
reject(e);
20-
}
21-
});
22-
},
11+
getDatabase: async (fileName = config.Settings.Storage) => new Promise(async (resolve, reject) => {
12+
try {
13+
if (!fs.existsSync("Database/")) await fs.mkdirSync("Database");
14+
const db = new sqlite(`Database/${fileName}` || "database.db");
15+
resolve(db);
16+
} catch (e) {
17+
reject(e);
18+
}
19+
}),
2320
/**
2421
*
2522
* @param {sqlite} db
2623
* @param {String} tableName
2724
* @param {String} values
2825
*/
29-
createTable: async (db, tableName, values) => {
30-
return new Promise(async (resolve, reject) => {
31-
const Utils = require("./Utils.js");
32-
if (!db || !tableName || !values) {
33-
Utils.logWarning(
34-
`Not enough parameters passed in createTable function.`
35-
);
36-
} else if (db && tableName && values) {
37-
try {
38-
db.prepare(
39-
`CREATE TABLE IF NOT EXISTS ${tableName} (${values})`
40-
).run();
41-
Utils.logInfo(
42-
`${chalk.bold(tableName)} Table Ready. (${chalk.bold(
43-
db.name.replace("Database/", "")
44-
)})`
45-
);
46-
} catch (err) {
47-
Utils.logWarning(
48-
`An error occured while setting up database. (${tableName})`
49-
);
50-
reject(err);
51-
}
26+
createTable: async (db, tableName, values) => new Promise(async (resolve, reject) => {
27+
const Utils = require("./Utils.js");
28+
if (!db) db = await module.exports.getDatabase();
29+
if (!tableName || !values) {
30+
Utils.logWarning(`Not enough parameters passed in createTable function.`);
31+
} else if (db && tableName && values) {
32+
try {
33+
db.prepare(`CREATE TABLE IF NOT EXISTS ${tableName} (${values})`).run();
34+
if (config.Settings.DevMode)
35+
Utils.logInfo(`${chalk.bold(tableName)} Table Ready. (${chalk.bold(db.name.replace("Database/", ""))})`);
36+
} catch (err) {
37+
Utils.logWarning(`An error occured while setting up database. (${tableName})`);
38+
reject(err);
5239
}
53-
});
54-
},
40+
}
41+
})
5542
};

Modules/Handlers/AddonHandler.js

Lines changed: 43 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,31 @@ const fs = require("fs"),
22
YAML = require("yaml"),
33
chalk = require("chalk"),
44
Utils = require("../Utils"),
5-
{ SlashCommandBuilder } = require("@discordjs/builders"),
65
{ client, config, lang, commands } = require("../../index");
76

87
module.exports = {
98
getConfig: (name, config, extension = "yml") => {
10-
if (
11-
fs.existsSync("./Addon_Configs") &&
12-
fs.existsSync(`./Addon_Configs/${name}/${config}.${extension}`)
13-
) {
14-
return YAML.parse(
15-
fs.readFileSync(
16-
`./Addon_Configs/${name}/${config}.${extension}`,
17-
"utf-8"
18-
)
19-
);
9+
if (fs.existsSync("./Addon_Configs") && fs.existsSync(`./Addon_Configs/${name}/${config}.${extension}`)) {
10+
return YAML.parse(fs.readFileSync(`./Addon_Configs/${name}/${config}.${extension}`, "utf-8"));
2011
} else {
2112
return false;
2213
}
2314
},
24-
getYAMLConfig: (name, config) => {
25-
if (
26-
fs.existsSync("./Addon_Configs") &&
27-
fs.existsSync(`./Addon_Configs/${name}/${config}.yml`)
28-
) {
29-
return YAML.parse(
30-
fs.readFileSync(
31-
`./Addon_Configs/${name}/${config}.yml`,
32-
"utf-8"
33-
)
34-
);
35-
} else {
36-
return false;
15+
getConfigs: (name, extension = "yml") => {
16+
let configs = {}
17+
18+
if (fs.existsSync("./Addon_Configs") && fs.existsSync(`./Addon_Configs/${name}/`)) {
19+
let allFiles = fs.readdirSync(`./Addon_Configs/${name}/`)
20+
let filtredFiles = allFiles.filter((f) => f.split(".").pop() == extension)
21+
if (filtredFiles && filtredFiles[0]) {
22+
filtredFiles.forEach(x => {
23+
if (fs.readFileSync(`./Addon_Configs/${name}/${x}`, { encoding: "utf-8" }))
24+
configs[x.replace(`.${extension}`, "").toLowerCase()] =
25+
YAML.parse(fs.readFileSync(`./Addon_Configs/${name}/${x}`, "utf-8"))
26+
})
27+
}
3728
}
29+
return configs;
3830
},
3931
init: async () => {
4032
if (fs.existsSync("./Addons")) {
@@ -76,7 +68,7 @@ module.exports = {
7668
if (
7769
addon._customConfigs &&
7870
typeof addon._customConfigs ==
79-
"object"
71+
"object"
8072
) {
8173
if (
8274
!fs.existsSync(
@@ -113,7 +105,7 @@ module.exports = {
113105
chalk
114106
.hex("#007bff")
115107
.bold("[INFO] ") +
116-
addon._log
108+
addon._log
117109
);
118110
} else if (
119111
addon._log &&
@@ -123,22 +115,21 @@ module.exports = {
123115
`${chalk
124116
.hex(
125117
addon._author.color ||
126-
"#007bff"
118+
"#007bff"
127119
)
128120
.bold(
129-
`[${
130-
addon._author
131-
? addon._author
132-
: "[INFO]"
121+
`[${addon._author
122+
? addon._author
123+
: "[INFO]"
133124
}]`
134125
)} ${chalk.bold(
135-
addon._name
136-
? addon._name
137-
: file.replace(
138-
".js",
139-
""
140-
)
141-
)} addon loaded`
126+
addon._name
127+
? addon._name
128+
: file.replace(
129+
".js",
130+
""
131+
)
132+
)} addon loaded`
142133
);
143134
} else if (
144135
addon._log &&
@@ -148,30 +139,28 @@ module.exports = {
148139
`${chalk
149140
.hex(
150141
addon._author.color ||
151-
"#007bff"
142+
"#007bff"
152143
)
153144
.bold(
154145
`[${addon._author.name}]`
155146
)} ${chalk.bold(
156-
addon._name
157-
? addon._name
158-
: file.replace(
159-
".js",
160-
""
161-
)
162-
)} addon loaded`
147+
addon._name
148+
? addon._name
149+
: file.replace(
150+
".js",
151+
""
152+
)
153+
)} addon loaded`
163154
);
164155
}
165156
} else {
166157
Utils.logWarning(
167-
`Unable to execute ${
168-
addon._name
169-
? addon._name
170-
: file.replace(".js", "")
171-
} addon ${
172-
addon._author
173-
? `by ${addon._author}`
174-
: ""
158+
`Unable to execute ${addon._name
159+
? addon._name
160+
: file.replace(".js", "")
161+
} addon ${addon._author
162+
? `by ${addon._author}`
163+
: ""
175164
}`
176165
);
177166
}

Modules/Utils/setupMessage.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
const Discord = require("discord.js"),
1+
const Discord = require("discord.js"), chalk = require("chalk"),
22
{ MessageActionRow, MessageButton, MessageSelectMenu } = Discord,
3-
Utils = require("../Utils"),
43
{ config, lang, commands, client } = require("../../index");
54

65
const rowStructure = [
@@ -69,6 +68,10 @@ const rowStructure = [
6968
* @returns
7069
*/
7170
module.exports = (settings, ephemeral = false, components = null) => {
71+
const Utils = require("../Utils");
72+
if (!settings || !settings.configPath)
73+
return Utils.logWarning(`[Utils] [setupMessage] Invalid ${chalk.bold("configPath")}. Got undefined`)
74+
7275
let Variables = [
7376
{ searchFor: /{branding}/g, replaceWith: config.Embeds.Branding },
7477
], Embeds, Content, Components, Ephemeral = false;
@@ -149,7 +152,7 @@ module.exports = (settings, ephemeral = false, components = null) => {
149152
let data = {
150153
name: field.Name || field.name,
151154
value: field.Value || field.value,
152-
inline: field.Inline || field.inline,
155+
inline: !!field.Inline || !!field.inline,
153156
};
154157

155158
if (Variables && typeof Variables === "object") {
@@ -298,7 +301,6 @@ module.exports = (settings, ephemeral = false, components = null) => {
298301
} else {
299302
let button = new MessageButton()
300303
.setStyle("LINK").setURL(Link);
301-
302304
if (Label) button.setLabel(Label);
303305
if (Emoji) button.setEmoji(Emoji);
304306
if (Disabled) button.setDisabled(true);
@@ -333,7 +335,6 @@ module.exports = (settings, ephemeral = false, components = null) => {
333335
}
334336
break;
335337
}
336-
337338
case 'selectmenu': {
338339
if (!CustomID) {
339340
Utils.logError(`[Utils] [setupMessage] CustomID is required for SelectMenu to work.`);
@@ -363,6 +364,13 @@ module.exports = (settings, ephemeral = false, components = null) => {
363364

364365
rows[i].addComponents([menu]);
365366
}
367+
368+
break;
369+
}
370+
371+
default: {
372+
Utils.logError(`[Utils] [setupMessage] Invalid Component Type`);
373+
break;
366374
}
367375
}
368376
})

index.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,23 @@ const installModules = async () => {
5050
};
5151

5252
installModules().then(() => {
53-
try {
54-
require.resolve("console-stamp");
55-
} catch (e) {
56-
if (require("fs").existsSync("node_modules")) {
57-
console.log(
58-
`\x1b[34m[Module Installer]`,
59-
`\x1b[37mModules installed, please restart the bot.`
60-
);
61-
process.exit(0);
62-
} else {
63-
console.log(
64-
`\x1b[34m[Module Installer]`,
65-
`\x1b[37mModules are not installed.`
66-
);
67-
process.exit(0);
53+
if (!process.argv.includes("--no-install")) {
54+
try {
55+
require.resolve("console-stamp");
56+
} catch (e) {
57+
if (require("fs").existsSync("node_modules")) {
58+
console.log(
59+
`\x1b[34m[Module Installer]`,
60+
`\x1b[37mModules installed, please restart the bot.`
61+
);
62+
process.exit(0);
63+
} else {
64+
console.log(
65+
`\x1b[34m[Module Installer]`,
66+
`\x1b[37mModules are not installed.`
67+
);
68+
process.exit(0);
69+
}
6870
}
6971
}
7072
require("console-stamp")(console, { format: ":date(HH:MM:ss).bold.grey" });
@@ -80,10 +82,10 @@ installModules().then(() => {
8082
module.exports["client"] = client;
8183
["config.yml", "commands.yml", "lang.yml"].forEach(
8284
(x) =>
83-
(module.exports[x.replace(".yml", "")] = YAML.parse(
84-
fs.readFileSync(x, "utf-8"),
85-
{ prettyErrors: true }
86-
))
85+
(module.exports[x.replace(".yml", "")] = YAML.parse(
86+
fs.readFileSync(x, "utf-8"),
87+
{ prettyErrors: true }
88+
))
8789
);
8890
["config", "lang", "commands"].forEach(
8991
(x) => (client[x] = module.exports[x])

0 commit comments

Comments
 (0)