mirror of
https://github.com/JonnyBro/JaBa.git
synced 2024-11-29 00:24:58 +05:00
145 lines
No EOL
5.1 KiB
JavaScript
145 lines
No EOL
5.1 KiB
JavaScript
const { ChannelType } = require("discord.js");
|
|
const express = require("express"),
|
|
utils = require("../utils"),
|
|
CheckAuth = require("../auth/CheckAuth"),
|
|
router = express.Router();
|
|
|
|
router.get("/:serverID", CheckAuth, async(req, res) => {
|
|
// Check if the user has the permissions to edit this guild
|
|
const guild = req.client.guilds.cache.get(req.params.serverID);
|
|
if (!guild || !req.userInfos.displayedGuilds || !req.userInfos.displayedGuilds.find(g => g.id === req.params.serverID))
|
|
return res.render("404", {
|
|
user: req.userInfos,
|
|
translate: req.translate,
|
|
currentURL: `${req.client.config.dashboard.baseURL}${req.originalUrl}`,
|
|
});
|
|
|
|
// Fetch guild informations
|
|
const guildInfos = await utils.fetchGuild(guild.id, req.client, req.user.guilds);
|
|
const memberData = await req.client.findOrCreateMember({ id: req.userInfos.id, guildId: guild.id });
|
|
|
|
res.render("manager/guild", {
|
|
guild: guildInfos,
|
|
user: req.userInfos,
|
|
memberData: memberData,
|
|
translate: req.translate,
|
|
ChannelType,
|
|
bot: req.client,
|
|
currentURL: `${req.client.config.dashboard.baseURL}${req.originalUrl}`,
|
|
});
|
|
});
|
|
|
|
router.post("/:serverID", CheckAuth, async(req, res) => {
|
|
// Check if the user has the permissions to edit this guild
|
|
const guild = req.client.guilds.cache.get(req.params.serverID);
|
|
if (!guild || !req.userInfos.displayedGuilds || !req.userInfos.displayedGuilds.find(g => g.id === req.params.serverID))
|
|
return res.render("404", {
|
|
user: req.userInfos,
|
|
translate: req.translate,
|
|
currentURL: `${req.client.config.dashboard.baseURL}${req.originalUrl}`,
|
|
});
|
|
|
|
const guildData = await req.client.findOrCreateGuild({ id: guild.id });
|
|
const data = req.body;
|
|
|
|
if (data.language) {
|
|
const language = req.client.languages.find(language => language.nativeName.toLowerCase() === data.language.toLowerCase());
|
|
if (language) guildData.language = language.name;
|
|
if (data.prefix.length >= 1 && data.prefix.length < 2000) guildData.prefix = data.prefix;
|
|
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "welcomeEnable") || Object.prototype.hasOwnProperty.call(data, "welcomeUpdate")) {
|
|
const welcome = {
|
|
enabled: true,
|
|
message: data.message,
|
|
channel: guild.channels.cache.find(ch => "#" + ch.name === data.channel).id,
|
|
withImage: data.withImage === "on",
|
|
};
|
|
guildData.plugins.welcome = welcome;
|
|
guildData.markModified("plugins.welcome");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "welcomeDisable")) {
|
|
const welcome = {
|
|
enabled: false,
|
|
message: null,
|
|
channel: null,
|
|
withImage: null,
|
|
};
|
|
guildData.plugins.welcome = welcome;
|
|
guildData.markModified("plugins.welcome");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "goodbyeEnable") || Object.prototype.hasOwnProperty.call(data, "goodbyeUpdate")) {
|
|
const goodbye = {
|
|
enabled: true,
|
|
message: data.message,
|
|
channel: guild.channels.cache.find(ch => "#" + ch.name === data.channel).id,
|
|
withImage: data.withImage === "on",
|
|
};
|
|
guildData.plugins.goodbye = goodbye;
|
|
guildData.markModified("plugins.goodbye");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "goodbyeDisable")) {
|
|
const goodbye = {
|
|
enabled: false,
|
|
message: null,
|
|
channel: null,
|
|
withImage: null,
|
|
};
|
|
guildData.plugins.goodbye = goodbye;
|
|
guildData.markModified("plugins.goodbye");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "autoroleEnable") || Object.prototype.hasOwnProperty.call(data, "autoroleUpdate")) {
|
|
const autorole = {
|
|
enabled: true,
|
|
role: guild.roles.cache.find(r => "@" + r.name === data.role).id,
|
|
};
|
|
guildData.plugins.autorole = autorole;
|
|
guildData.markModified("plugins.autorole");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "autoroleDisable")) {
|
|
const autorole = {
|
|
enabled: false,
|
|
role: null,
|
|
};
|
|
guildData.plugins.autorole = autorole;
|
|
guildData.markModified("plugins.autorole");
|
|
await guildData.save();
|
|
}
|
|
|
|
if (Object.prototype.hasOwnProperty.call(data, "suggestions")) {
|
|
if (data.suggestions === req.translate("dashboard:NO_CHANNEL")) guildData.plugins.suggestions = false;
|
|
else guildData.plugins.suggestions = guild.channels.cache.find(ch => "#" + ch.name === data.suggestions).id;
|
|
|
|
if (data.modlogs === req.translate("dashboard:NO_CHANNEL")) guildData.plugins.modlogs = false;
|
|
else guildData.plugins.modlogs = guild.channels.cache.find(ch => "#" + ch.name === data.modlogs).id;
|
|
|
|
if (data.reports === req.translate("dashboard:NO_CHANNEL")) guildData.plugins.reports = false;
|
|
else guildData.plugins.reports = guild.channels.cache.find(ch => "#" + ch.name === data.reports).id;
|
|
|
|
if (data.birthdays === req.translate("dashboard:NO_CHANNEL")) guildData.plugins.birthdays = false;
|
|
else guildData.plugins.birthdays = guild.channels.cache.find(ch => "#" + ch.name === data.birthdays).id;
|
|
|
|
if (data.news === req.translate("dashboard:NO_CHANNEL")) guildData.plugins.news = false;
|
|
else guildData.plugins.news = guild.channels.cache.find(ch => "#" + ch.name === data.news).id;
|
|
|
|
guildData.markModified("plugins");
|
|
}
|
|
|
|
await guildData.save();
|
|
|
|
res.redirect(303, `/manage/${guild.id}`);
|
|
});
|
|
|
|
module.exports = router; |