mirror of
https://github.com/Art-Portal/April.git
synced 2024-11-16 19:47:34 +01:00
76 lines
1.9 KiB
JavaScript
76 lines
1.9 KiB
JavaScript
const fs = require('fs');
|
|
const Sequelize = require('sequelize');
|
|
const { Client, GatewayIntentBits } = require("discord.js");
|
|
const { token, sequelizeCredentials } = require('./config.json');
|
|
const { deploy_commands } = require('./functions.js');
|
|
|
|
const client = new Client({
|
|
intents: [
|
|
GatewayIntentBits.Guilds,
|
|
GatewayIntentBits.GuildMembers,
|
|
GatewayIntentBits.GuildBans,
|
|
GatewayIntentBits.GuildMessages
|
|
]
|
|
});
|
|
|
|
const sequelize = new Sequelize('database', sequelizeCredentials.username, sequelizeCredentials.password, {
|
|
host: 'localhost',
|
|
dialect: 'sqlite',
|
|
logging: false,
|
|
storage: 'database.sqlite',
|
|
});
|
|
const blacklistdb = sequelize.define('blacklist', {
|
|
name: {//id
|
|
type: Sequelize.STRING,
|
|
unique: true,
|
|
},
|
|
username: Sequelize.STRING,
|
|
reason: Sequelize.TEXT,
|
|
timestamp: Sequelize.STRING,
|
|
moderatorid: Sequelize.STRING
|
|
});
|
|
|
|
const modlog = sequelize.define('sanctions', {
|
|
name: Sequelize.STRING,//id
|
|
username: Sequelize.STRING,
|
|
type: Sequelize.STRING,
|
|
reason: Sequelize.TEXT,
|
|
timestamp: Sequelize.STRING,
|
|
moderatorid: Sequelize.STRING
|
|
});
|
|
|
|
const artists = sequelize.define('artists', {
|
|
name: Sequelize.STRING,//id
|
|
emoji: Sequelize.STRING,
|
|
});
|
|
|
|
client.database = {
|
|
sequelize: sequelize,
|
|
modlog: modlog,
|
|
blacklistdb: blacklistdb,
|
|
artists: artists,
|
|
};
|
|
blacklistdb.sync();
|
|
modlog.sync();
|
|
artists.sync();
|
|
|
|
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
|
|
for (const file of eventFiles) {
|
|
const event = require(`./events/${file}`);
|
|
if (event.once) {
|
|
client.once(event.name, (...args) => event.execute(...args, client));
|
|
} else {
|
|
client.on(event.name, (...args) => event.execute(...args, client));
|
|
}
|
|
}
|
|
|
|
deploy_commands(client, true);
|
|
/*
|
|
true will refresh slash commands (SET endpoint)
|
|
false will delete them (SET endpoint with an empty array)
|
|
null will not change slash commands
|
|
*/
|
|
|
|
|
|
client.login(token);
|