Skip to content

Commit

Permalink
feat: add eslint and prettier configs
Browse files Browse the repository at this point in the history
  • Loading branch information
z164 committed Jan 29, 2021
1 parent ceace43 commit dc2d169
Show file tree
Hide file tree
Showing 15 changed files with 4,528 additions and 450 deletions.
14 changes: 14 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"env": {
"browser": true,
"commonjs": true
},
"extends": "airbnb-base/legacy",
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
"no-console" : "off",
"no-underscore-dangle": "off"
}
}
7 changes: 7 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"printWidth": 70,
"tabWidth": 4,
"semi": true,
"bracketSpacing": true,
"arrowParens": "avoid"
}
149 changes: 79 additions & 70 deletions bot.js
Original file line number Diff line number Diff line change
@@ -1,88 +1,97 @@
const discord = require('discord.js');
const mongoose = require('mongoose');
"use strict";

const logUtilities = require('./commands/utility/logUtilities')
const discord = require("discord.js");
const mongoose = require("mongoose");

const register = require('./commands/register')
const setNicknames = require('./commands/setNicknames')
const editOwnDotaNickname = require('./commands/editOwnDotaNickname')
const canEditPermissionsSet = require('./commands/canEditPermissionsSet')
const setUsersDotaNickname = require('./commands/setUsersDotaNickname')
const getUsersDotaNickname = require('./commands/getUsersDotaNickname')
const help = require('./commands/help')
const logUtilities = require("./commands/utility/logUtilities");

const interval = require('./commands/utility/interval')
const guildDelete = require('./commands/utility/guildDelete')
const register = require("./commands/register");
const setNicknames = require("./commands/setNicknames");
const editOwnDotaNickname = require("./commands/editOwnDotaNickname");
const canEditPermissionsSet = require("./commands/canEditPermissionsSet");
const setUsersDotaNickname = require("./commands/setUsersDotaNickname");
const getUsersDotaNickname = require("./commands/getUsersDotaNickname");
const help = require("./commands/help");

require('dotenv').config()
const interval = require("./commands/utility/interval");
const guildDelete = require("./commands/utility/guildDelete");

const client = new discord.Client()
client.login(process.env.BOT_TOKEN)
.then(() => {
console.log('Bot logged in')
})
require("dotenv").config();

mongoose.connect(process.env.URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
}, () => {
console.log('MongoDB cluster connection established')
})
const client = new discord.Client();
client.login(process.env.BOT_TOKEN).then(() => {
console.log("Bot logged in");
});

const messageHandle = async (message) => {
mongoose.connect(
process.env.URI,
{
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
},
() => {
console.log("MongoDB cluster connection established");
}
);

const messageHandle = async message => {
if (message.author.bot) {
return;
}
const [prefix, command, ...body] = message.content.split(' ')
const [prefix, command, ...body] = message.content.split(" ");
if (prefix !== process.env.prefix) {
return
return;
}
logUtilities.title('Recieve')
console.log(`${'Command'.property}: ${command}`)
body.join(' ').trim() === '' ? '' : console.log(`${'Body'.property}: ${body.join(' ').trim()}`)
console.log(`${'Location'.property}: ${message.guild.name}`)
console.log(`${'ID'.property}: ${message.guild.id}`)
console.log(`${'Author'.property}: ${message.member.nickname}`)
console.log(`${'ID'.property}: ${message.author.id}`)
console.log(logUtilities.separator)
logUtilities.title("Recieve");
console.log(`${"Command".property}: ${command}`);
console.log(
body.join(" ").trim() === ""
? "No body provided".warning
: `${"Body".property}: ${body.join(" ").trim()}`
);
console.log(`${"Location".property}: ${message.guild.name}`);
console.log(`${"ID".property}: ${message.guild.id}`);
console.log(`${"Author".property}: ${message.member.nickname}`);
console.log(`${"ID".property}: ${message.author.id}`);
console.log(logUtilities.separator);
switch (command) {
case 'register':
register(message, body)
break
case 'update':
setNicknames(client, message.guild.id, message)
break
case 'edit':
editOwnDotaNickname(body, message)
break
case 'help':
help(message.channel)
break
case 'lock':
canEditPermissionsSet(message, false)
break
case 'unlock':
canEditPermissionsSet(message, true)
break
case 'get':
getUsersDotaNickname(message)
break
case 'set':
setUsersDotaNickname(message, body)
break
case "register":
register(message, body);
break;
case "update":
setNicknames(client, message.guild.id, message);
break;
case "edit":
editOwnDotaNickname(body, message);
break;
case "help":
help(message.channel);
break;
case "lock":
canEditPermissionsSet(message, false);
break;
case "unlock":
canEditPermissionsSet(message, true);
break;
case "get":
getUsersDotaNickname(message);
break;
case "set":
setUsersDotaNickname(message, body);
break;
default:
message.channel.send('Unknown command')
break
message.channel.send("Unknown command");
break;
}
}
};

client.on('message', messageHandle)
client.on("message", messageHandle);

client.on('ready', async () => {
setInterval(() => interval(client), 3600000)
})
client.on("ready", async () => {
setInterval(() => interval(client), 3600000);
});

client.on('guildDelete', async (guild) => {
await guildDelete(guild.id)
})
client.on("guildDelete", async guild => {
await guildDelete(guild.id);
});
83 changes: 54 additions & 29 deletions commands/canEditPermissionsSet.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,62 @@
const User = require('../Database/User')
"use strict";

const logUtilities = require('./utility/logUtilities')
const User = require("../Database/User");

const logUtilities = require("./utility/logUtilities");

const canEditPermissionsSet = async (message, parameter) => {
logUtilities.title('Lock / Unlock')
if (!message.member.hasPermission('ADMINISTRATOR')) {
console.log('Lock / Unlock was invoked by non-administrator user'.error)
console.log(logUtilities.separator)
message.channel.send('You need administrator permissions on server to do this')
return
logUtilities.title("Lock / Unlock");
if (!message.member.hasPermission("ADMINISTRATOR")) {
console.log(
"Lock / Unlock was invoked by non-administrator user"
.error
);
console.log(logUtilities.separator);
message.channel.send(
"You need administrator permissions on server to do this"
);
return;
}
const idToBan = message.mentions.users.first().id
const idToBan = message.mentions.users.first().id;
const usertoBan = await User.findOne({
discordID: idToBan
})
if(usertoBan === null) {
console.log('User that was mentioned is not registered'.error)
console.log(logUtilities.separator)
message.channel.send('User is not registered in system')
return
discordID: idToBan,
});
if (usertoBan === null) {
console.log(
"User that was mentioned is not registered".error
);
console.log(logUtilities.separator);
message.channel.send("User is not registered in system");
return;
}
await User.findOneAndUpdate({
discordID: idToBan
}, {
canEdit: parameter
}, (err, res) => {
if (err) {
console.error(err)
} else {
console.log(`${res.dotaNickname.nicknameStyle} ${parameter ? 'can now edit his nickname' : 'can no longer edit his nickname'}`.log)
message.channel.send(`${res.dotaNickname} ${parameter ? 'can now edit his nickname' : 'can no longer edit his nickname'}`)
await User.findOneAndUpdate(
{
discordID: idToBan,
},
{
canEdit: parameter,
},
(err, res) => {
if (err) {
console.error(err);
} else {
console.log(
`${res.dotaNickname.nicknameStyle} ${
parameter
? "can now edit his nickname"
: "can no longer edit his nickname"
}`.log
);
message.channel.send(
`${res.dotaNickname} ${
parameter
? "can now edit his nickname"
: "can no longer edit his nickname"
}`
);
}
}
})
}
);
};

module.exports = canEditPermissionsSet
module.exports = canEditPermissionsSet;
81 changes: 48 additions & 33 deletions commands/editOwnDotaNickname.js
Original file line number Diff line number Diff line change
@@ -1,44 +1,59 @@
const User = require('../Database/User')
"use strict";

const logUtilities = require('./utility/logUtilities')
const User = require("../Database/User");

const logUtilities = require("./utility/logUtilities");

const editOwnDotaNickname = async (body, message) => {
logUtilities.title('Edit')
const bodyStr = body.join(' ').trim()
if (bodyStr === '') {
console.log('No nickname provided'.error)
console.log(logUtilities.separator)
message.channel.send('No nickname provided')
return
logUtilities.title("Edit");
const bodyStr = body.join(" ").trim();
if (bodyStr === "") {
console.log("No nickname provided".error);
console.log(logUtilities.separator);
message.channel.send("No nickname provided");
return;
}
const currentUser = await User.findOne({
discordID: message.member.user.id
})
discordID: message.member.user.id,
});
if (currentUser === null) {
console.log('User that invoked this command is not registered'.error)
console.log(logUtilities.separator)
message.channel.send('You are not registered')
return
console.log(
"User that invoked this command is not registered".error
);
console.log(logUtilities.separator);
message.channel.send("You are not registered");
return;
}
if (!currentUser.canEdit) {
console.log('User that invoked this command is banned from editing his nickname'.error)
console.log(logUtilities.separator)
message.channel.send('You were banned from editing your nickname')
return
console.log(
"User that invoked this command is banned from editing his nickname"
.error
);
console.log(logUtilities.separator);
message.channel.send(
"You were banned from editing your nickname"
);
return;
}
await User.findOneAndUpdate({
discordID: message.member.user.id
}, {
dotaNickname: bodyStr
}, (err, res) => {
if (err) {
console.error(err)
} else {
console.log('Nickname successfully updated'.log)
console.log(logUtilities.separator)
message.channel.send('Your nickname was updated successfully')
await User.findOneAndUpdate(
{
discordID: message.member.user.id,
},
{
dotaNickname: bodyStr,
},
err => {
if (err) {
console.error(err);
} else {
console.log("Nickname successfully updated".log);
console.log(logUtilities.separator);
message.channel.send(
"Your nickname was updated successfully"
);
}
}
})
}
);
};

module.exports = editOwnDotaNickname
module.exports = editOwnDotaNickname;
Loading

0 comments on commit dc2d169

Please sign in to comment.