-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
125 lines (121 loc) · 4 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
const fs = require('file-system');
const ncp = require('ncp');
module.exports.start = function start(token, name, color, owner, prefix, f) {
if(!token) throw new TypeError('A token must be provided [NsnsheNSmensjes.hSJenss], start(token, name, color, owner, prefix)');
if(!name) throw new TypeError('A name must be provided [UltraAwesome], start(token, name, color, owner, prefix)');
if(!color || !color.startsWith('#')) throw new TypeError('A hex color must be provided [#fffff], start(token, name, color, owner, prefix)');
if(!owner || !parseInt(owner)) throw new TypeError('Your ID must be provided [312551747027468290], start(token, name, color, owner, prefix)');
if(!prefix) throw new TypeError('A prefix must be provided [l!], start(token, name, color, owner, prefix)');
var pack = `
{
"name": "${name}",
"version": "1.0.0",
"description": "DiscordJSBot",
"license": "MIT",
"repository": "MayorChano/discordjs-template",
"main": "index.js",
"dependencies": {
}
}
`;
var json = `
const config = {
"ownerID": "${owner}",
"admins": [],
"support": [],
"token": "${token}",
"colour": "0x${color.slice(1)}",
"defaultSettings" : {
"prefix": "${prefix}",
},
permLevels: [
{ level: 0,
name: "User",
check: () => true
},
{ level: 2,
name: "Moderator",
check: (message) => {
try {
return (message.member.hasPermission("MANAGE_MESSAGES"));
} catch (e) {
return false;
}
}
},
{ level: 3,
name: "Administrator",
check: (message) => {
try {
return (message.member.hasPermission("ADMINISTRATOR"));
} catch (e) {
return false;
}
}
},
{ level: 4,
name: "Server Owner",
check: (message) => message.channel.type === "text" ? (message.guild.ownerID === message.author.id ? true : false) : false
},
{ level: 8,
name: "Bot Support",
check: (message) => config.support.includes(message.author.id)
},
{ level: 9,
name: "Bot Admin",
check: (message) => config.admins.includes(message.author.id)
},
{ level: 10,
name: "Bot Owner",
check: (message) => message.client.config.ownerID === message.author.id
}
]
};
module.exports = config;`;
if(f) {
fs.writeFile("../config.js", json, function (err) {
if (err) throw err;
});
} else {
fs.writeFile("config.js", json, function (err) {
if (err) throw err;
});
}
if(f) {
fs.writeFile("../package.json", pack, function (err) {
if (err) throw err;
});
} else {
fs.writeFile("package.json", pack, function (err) {
if (err) throw err;
});
}
ncp(__dirname + '/templates/commands/', 'commands/', function (err) {
if (err) {
throw new Error(err);
}
});
ncp(__dirname + '/templates/modules/', 'modules/', function (err) {
if (err) {
throw new Error(err);
}
});
ncp(__dirname + '/templates/events/', 'events/', function (err) {
if (err) {
throw new Error(err);
}
});
ncp(__dirname + '/templates/index.js', 'index.js', function (err) {
if (err) {
throw new Error(err);
}
});
const exec = require("child_process").exec;
console.log('Downloading extra packages needed...')
exec(`npm i --save better-sqlite-pool chalk discord.js enmap express file-system moment moment-duration-format request`, async(error, stdout) => {
console.log(stdout)
if(error) {
console.log(error)
}
})
};