mirror of
https://github.com/jcreek/denBot.git
synced 2026-07-13 19:03:45 +00:00
Compare commits
23 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 482af77249 | |||
| 67566a6fea | |||
| 628c063c15 | |||
| 6cef805649 | |||
| 4133eae25d | |||
| e752d3ce80 | |||
| 400b34b9e4 | |||
| 7bf9ae00ee | |||
| 4429e02b22 | |||
| 49cd612f51 | |||
| f6af7b4327 | |||
| 01768c5567 | |||
| 9700808773 | |||
| 857ee29e10 | |||
| d37b3f8225 | |||
| 6eb1bf5c8a | |||
| f32441716f | |||
| 2d113f8a8b | |||
| 4bc416ec56 | |||
| e47ff9596b | |||
| 1dc17b49b9 | |||
| 43778d360a | |||
| 4e2c79614b |
+3
-3
@@ -3,10 +3,10 @@
|
|||||||
"deletecommandstoggle": false,
|
"deletecommandstoggle": false,
|
||||||
"maxqueuesize": 4,
|
"maxqueuesize": 4,
|
||||||
"elasticsearch" : {
|
"elasticsearch" : {
|
||||||
"elasticsearch_address" : "http://YOUR-ELASTICSEARCH-ADDRESS-GOES-HERE:9200",
|
"elasticsearch_address" : "http://jcreek.ddns.net:9200",
|
||||||
"elasticsearch_index_pattern" : "[logs-denbot-]YYYY.MM.DD"
|
"elasticsearch_index_pattern" : "[logs-denbot-]YYYY.MM.DD"
|
||||||
},
|
},
|
||||||
"prefix": "!",
|
"prefix": "!",
|
||||||
"token-dev": "YOUR-DEV-TOKEN-GOES-HERE",
|
"token-dev": "Nzc4MDI2MTE1NDkwOTA2MTYz.X7L_SA.bNzC1kQUpBSwEsjp_cDGwR62Soo",
|
||||||
"token": "YOUR-TOKEN-GOES-HERE"
|
"token": "NzcwMDQyMDEzMjY5NDkxNzUy.X5Xzgg.kcr_51g95iUvEcYCfbQvG1Sx8ao"
|
||||||
}
|
}
|
||||||
|
|||||||
-21
@@ -1,21 +0,0 @@
|
|||||||
const { loggers } = require("winston");
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
sendEmbedMessage: function (logger, message, Discord, title, description, colour = '#F4B400') {
|
|
||||||
// For documentation see https://github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/first-bot/using-embeds-in-messages.md
|
|
||||||
try {
|
|
||||||
const embed = new Discord.MessageEmbed()
|
|
||||||
.setTitle(title)
|
|
||||||
.setColor(colour)
|
|
||||||
.setDescription(description)
|
|
||||||
.setFooter('This is a custom bot - if it goes down, tag Scruffy')
|
|
||||||
.setThumbnail('https://cdn.discordapp.com/icons/770039159506337802/a_510706276ebcf77e568900fa708e6c63.png?size=128')
|
|
||||||
.setTimestamp();
|
|
||||||
|
|
||||||
message.channel.send(embed);
|
|
||||||
} catch (error) {
|
|
||||||
logger.error('Failed to send embed message', error);
|
|
||||||
message.channel.send('There was a problem, sorry!');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -2,7 +2,6 @@ const Discord = require('discord.js');
|
|||||||
const winston = require('winston');
|
const winston = require('winston');
|
||||||
const Elasticsearch = require('winston-elasticsearch');
|
const Elasticsearch = require('winston-elasticsearch');
|
||||||
const config = require('./config.json');
|
const config = require('./config.json');
|
||||||
const {sendEmbedMessage} = require('./helpers.js');
|
|
||||||
const client = new Discord.Client();
|
const client = new Discord.Client();
|
||||||
|
|
||||||
const { format } = winston;
|
const { format } = winston;
|
||||||
@@ -114,10 +113,10 @@ function generateRandomCode() {
|
|||||||
function checkQueue(message) {
|
function checkQueue(message) {
|
||||||
if (playerQueue.length === config.maxqueuesize || (playerQueue.length > 0 && playerQueue.length == playerVotes.length)) {
|
if (playerQueue.length === config.maxqueuesize || (playerQueue.length > 0 && playerQueue.length == playerVotes.length)) {
|
||||||
// Queue is full
|
// Queue is full
|
||||||
logger.info('Queue is full');
|
logger.log('info', 'Queue is full');
|
||||||
|
|
||||||
// Post a message to say the queue is complete
|
// Post a message to say the queue is complete
|
||||||
sendEmbedMessage(logger, message, Discord, 'Queue full', `The adventure is beginning - players should check their DMs\n${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`)
|
message.channel.send(`The adventure is beginning - players should check their DMs\n${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`);
|
||||||
|
|
||||||
const randomCode = generateRandomCode();
|
const randomCode = generateRandomCode();
|
||||||
const baseMessage = `@${playerQueue[0].username} is making the lobby. Here is your link code ${randomCode}`;
|
const baseMessage = `@${playerQueue[0].username} is making the lobby. Here is your link code ${randomCode}`;
|
||||||
@@ -132,32 +131,32 @@ function checkQueue(message) {
|
|||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error('Tried to DM users: ', error);
|
logger.error('Tried to DM users: ', error);
|
||||||
sendEmbedMessage(logger, message, Discord, 'An error occurred', `There was an error, please let an admin know!\n${error}`, '#DB4437');
|
message.channel.send(`There was an error, please let an admin know!\n${error}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
makeTempChannel(message, adventureMessage);
|
makeTempChannel(message, adventureMessage);
|
||||||
|
|
||||||
// Clear the queue and votes
|
// Clear the queue and votes
|
||||||
playerQueue = [];
|
playerQueue = [];
|
||||||
logger.info('Emptied queue');
|
logger.log('info', 'Emptied queue');
|
||||||
playerVotes = [];
|
playerVotes = [];
|
||||||
logger.info('Emptied votes');
|
logger.log('info', 'Emptied votes');
|
||||||
pokemonName = '';
|
pokemonName = '';
|
||||||
captainInGameName = '';
|
captainInGameName = '';
|
||||||
logger.info('Emptied pokemon name and captain name');
|
logger.log('info', 'Emptied pokemon name and captain name');
|
||||||
}
|
}
|
||||||
else if (playerQueue.length === 0) {
|
else if (playerQueue.length === 0) {
|
||||||
sendEmbedMessage(logger, message, Discord, 'Queue empty', 'The queue is empty :(');
|
message.channel.send('The queue is empty :(');
|
||||||
pokemonName = '';
|
pokemonName = '';
|
||||||
captainInGameName = '';
|
captainInGameName = '';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Show queue after adding
|
// Show queue after adding
|
||||||
if (pokemonName === '' && captainInGameName === '') {
|
if (pokemonName === '' && captainInGameName === '') {
|
||||||
sendEmbedMessage(logger, message, Discord, generateQueueTitle(), `${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`);
|
message.channel.send(`${generateQueueTitle()}\n${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sendEmbedMessage(logger, message, Discord, generateQueueTitle(), `**Pokemon**: ${pokemonName}\n**Captain's IGN**: ${captainInGameName}\n${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`);
|
message.channel.send(`${generateQueueTitle()}\nPokemon: ${pokemonName}\nCaptain's IGN: ${captainInGameName}\n${playerQueue.map((player, index) => `${index + 1} - ${player.username}`).join('\n')}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -260,8 +259,8 @@ client.on('message', function (message) {
|
|||||||
|
|
||||||
logger.info(`${message.author.username} used command q in ${message.channel.name}`);
|
logger.info(`${message.author.username} used command q in ${message.channel.name}`);
|
||||||
|
|
||||||
logger.info(`${message.author.username} joined the queue.`);
|
logger.log('info', `${message.author.username} joined the queue.`);
|
||||||
sendEmbedMessage(logger, message, Discord, 'Queue in progress', `${message.author.username} joined the queue.`);
|
message.channel.send(`=====\n${message.author.username} joined the queue.`);
|
||||||
|
|
||||||
playerQueue.push(message.author);
|
playerQueue.push(message.author);
|
||||||
|
|
||||||
@@ -307,8 +306,8 @@ client.on('message', function (message) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`${message.author.username} left the queue.`);
|
logger.log('info', `${message.author.username} left the queue.`);
|
||||||
sendEmbedMessage(logger, message, Discord, 'Queue in progress', `${message.author.username} left the queue.`);
|
message.channel.send(`${message.author.username} left the queue.`);
|
||||||
|
|
||||||
checkQueue(message);
|
checkQueue(message);
|
||||||
}
|
}
|
||||||
@@ -342,10 +341,10 @@ client.on('message', function (message) {
|
|||||||
// First player to vote
|
// First player to vote
|
||||||
playerVotes.push(message.author);
|
playerVotes.push(message.author);
|
||||||
|
|
||||||
sendEmbedMessage(logger, message, Discord, 'Voting to start early', `${message.author.username} voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
message.channel.send(`=====\n${message.author.username} voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
||||||
}
|
}
|
||||||
else if (playerVotes.includes(message.author.username)) {
|
else if (playerVotes.includes(message.author.username)) {
|
||||||
sendEmbedMessage(logger, message, Discord, 'Voting to start early', `${message.author.username} has already voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
message.channel.send(`=====\n${message.author.username} has already voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
||||||
}
|
}
|
||||||
else if (playerVotes.length < config.maxqueuesize) {
|
else if (playerVotes.length < config.maxqueuesize) {
|
||||||
// Not the first player to vote
|
// Not the first player to vote
|
||||||
@@ -353,7 +352,7 @@ client.on('message', function (message) {
|
|||||||
|
|
||||||
if (playerVotes.length < playerQueue.length) {
|
if (playerVotes.length < playerQueue.length) {
|
||||||
// Still not all players voted
|
// Still not all players voted
|
||||||
sendEmbedMessage(logger, message, Discord, 'Voting to start early', `${message.author.username} voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
message.channel.send(`=====\n${message.author.username} voted to start the adventure.\nAll other players in the queue must also vote to start the adventure for it to begin without ${config.maxqueuesize} players.`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// All players have voted, we can start the adventure early
|
// All players have voted, we can start the adventure early
|
||||||
@@ -385,32 +384,32 @@ client.on('message', function (message) {
|
|||||||
|
|
||||||
if (playerQueue.length === 0) {
|
if (playerQueue.length === 0) {
|
||||||
message.channel.send(`The queue is already empty...`);
|
message.channel.send(`The queue is already empty...`);
|
||||||
logger.info( `${message.author.username} attempted to clear the queue but it was already empty.`);
|
logger.log('info', `${message.author.username} attempted to clear the queue but it was already empty.`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
playerQueue = [];
|
playerQueue = [];
|
||||||
playerVotes = [];
|
playerVotes = [];
|
||||||
message.channel.send(`The queue has been cleared!`);
|
message.channel.send(`The queue has been cleared!`);
|
||||||
logger.info( `${message.author.username} cleared the queue and the votes.`);
|
logger.log('info', `${message.author.username} cleared the queue and the votes.`);
|
||||||
pokemonName = '';
|
pokemonName = '';
|
||||||
captainInGameName = '';
|
captainInGameName = '';
|
||||||
logger.info('Emptied pokemon name and captain name');
|
logger.log('info', 'Emptied pokemon name and captain name');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove a tagged user from the queue
|
// Remove a tagged user from the queue
|
||||||
if (command === 'ru' && args[0]) {
|
if (command === 'ru' && args[0]) {
|
||||||
|
const user = getUserFromMention(args[0]);
|
||||||
|
|
||||||
// Delete the message with the bot command
|
// Delete the message with the bot command
|
||||||
if (config.deletecommandstoggle) {
|
if (config.deletecommandstoggle) {
|
||||||
message.delete();
|
message.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.info(`${message.author.username} used command ru ${user} in ${message.channel.name}`);
|
logger.info(`${message.author.username} used command ru in ${message.channel.name}`);
|
||||||
|
|
||||||
try {
|
|
||||||
const user = getUserFromMention(args[0]);
|
|
||||||
|
|
||||||
if ((playerQueue.includes(user))) {
|
if ((playerQueue.includes(user))) {
|
||||||
|
|
||||||
// Search for the user
|
// Search for the user
|
||||||
for(var i = 0; i < playerQueue.length; i++){
|
for(var i = 0; i < playerQueue.length; i++){
|
||||||
if ((playerQueue[i].username === user.username)){
|
if ((playerQueue[i].username === user.username)){
|
||||||
@@ -427,17 +426,13 @@ client.on('message', function (message) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message.channel.send(`${user.username} removed from queue.`);
|
message.channel.send(`${user.username} removed from queue.`);
|
||||||
logger.info( `${message.author.username} removed ${user.username} from queue.`);
|
logger.log('info', `${message.author.username} removed ${user.username} from queue.`);
|
||||||
|
|
||||||
checkQueue(message);
|
checkQueue(message);
|
||||||
}
|
}
|
||||||
else if (!(playerQueue.includes(user))) {
|
else if (!(playerQueue.includes(user))) {
|
||||||
message.channel.send(`${user.username} is not in the queue.`);
|
message.channel.send(`${user.username} is not in the queue.`);
|
||||||
logger.info( `${message.author.username} attempted to remove ${user.username} from queue but they weren't in it.`);
|
logger.log('info', `${message.author.username} attempted to remove ${user.username} from queue but they weren't in it.`);
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
logger.error(`Tried to remove user ${args[0]} from queue but got an error: ${error}`);
|
|
||||||
message.channel.send(`Failed to remove ${args[0]} from the queue.`);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,11 +442,11 @@ client.on('message', function (message) {
|
|||||||
// Determine if they can delete the channel (i.e. it's their temporary one) - compare the name
|
// Determine if they can delete the channel (i.e. it's their temporary one) - compare the name
|
||||||
if (message.channel.name === getChannelName(message.author.username)) {
|
if (message.channel.name === getChannelName(message.author.username)) {
|
||||||
deleteChannel(message, message.channel.name)
|
deleteChannel(message, message.channel.name)
|
||||||
logger.info( `${message.author.username} deleted their adventure channel.`);
|
logger.log('info', `${message.author.username} deleted their adventure channel.`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
message.channel.send(`${message.author.username} is not allowed to delete this channel.`);
|
message.channel.send(`${message.author.username} is not allowed to delete this channel.`);
|
||||||
logger.info( `${message.author.username} attempted to delete channel ${message.channel.name} but it's not their adventure channel.`);
|
logger.log('info', `${message.author.username} attempted to delete channel ${message.channel.name} but it's not their adventure channel.`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user