mirror of
https://github.com/jcreek/denBot.git
synced 2026-07-13 19:03:45 +00:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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,
|
||||
"maxqueuesize": 4,
|
||||
"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"
|
||||
},
|
||||
"prefix": "!",
|
||||
"token-dev": "YOUR-DEV-TOKEN-GOES-HERE",
|
||||
"token": "YOUR-TOKEN-GOES-HERE"
|
||||
"token-dev": "Nzc4MDI2MTE1NDkwOTA2MTYz.X7L_SA.bNzC1kQUpBSwEsjp_cDGwR62Soo",
|
||||
"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 Elasticsearch = require('winston-elasticsearch');
|
||||
const config = require('./config.json');
|
||||
const {sendEmbedMessage} = require('./helpers.js');
|
||||
const client = new Discord.Client();
|
||||
|
||||
const { format } = winston;
|
||||
@@ -114,10 +113,10 @@ function generateRandomCode() {
|
||||
function checkQueue(message) {
|
||||
if (playerQueue.length === config.maxqueuesize || (playerQueue.length > 0 && playerQueue.length == playerVotes.length)) {
|
||||
// Queue is full
|
||||
logger.info('Queue is full');
|
||||
logger.log('info', 'Queue is full');
|
||||
|
||||
// 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 baseMessage = `@${playerQueue[0].username} is making the lobby. Here is your link code ${randomCode}`;
|
||||
@@ -132,32 +131,32 @@ function checkQueue(message) {
|
||||
});
|
||||
} catch (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);
|
||||
|
||||
// Clear the queue and votes
|
||||
playerQueue = [];
|
||||
logger.info('Emptied queue');
|
||||
logger.log('info', 'Emptied queue');
|
||||
playerVotes = [];
|
||||
logger.info('Emptied votes');
|
||||
logger.log('info', 'Emptied votes');
|
||||
pokemonName = '';
|
||||
captainInGameName = '';
|
||||
logger.info('Emptied pokemon name and captain name');
|
||||
logger.log('info', 'Emptied pokemon name and captain name');
|
||||
}
|
||||
else if (playerQueue.length === 0) {
|
||||
sendEmbedMessage(logger, message, Discord, 'Queue empty', 'The queue is empty :(');
|
||||
message.channel.send('The queue is empty :(');
|
||||
pokemonName = '';
|
||||
captainInGameName = '';
|
||||
}
|
||||
else {
|
||||
// Show queue after adding
|
||||
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 {
|
||||
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} joined the queue.`);
|
||||
sendEmbedMessage(logger, message, Discord, 'Queue in progress', `${message.author.username} joined the queue.`);
|
||||
logger.log('info', `${message.author.username} joined the queue.`);
|
||||
message.channel.send(`=====\n${message.author.username} joined the queue.`);
|
||||
|
||||
playerQueue.push(message.author);
|
||||
|
||||
@@ -307,8 +306,8 @@ client.on('message', function (message) {
|
||||
}
|
||||
}
|
||||
|
||||
logger.info(`${message.author.username} left the queue.`);
|
||||
sendEmbedMessage(logger, message, Discord, 'Queue in progress', `${message.author.username} left the queue.`);
|
||||
logger.log('info', `${message.author.username} left the queue.`);
|
||||
message.channel.send(`${message.author.username} left the queue.`);
|
||||
|
||||
checkQueue(message);
|
||||
}
|
||||
@@ -342,10 +341,10 @@ client.on('message', function (message) {
|
||||
// First player to vote
|
||||
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)) {
|
||||
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) {
|
||||
// Not the first player to vote
|
||||
@@ -353,7 +352,7 @@ client.on('message', function (message) {
|
||||
|
||||
if (playerVotes.length < playerQueue.length) {
|
||||
// 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 {
|
||||
// All players have voted, we can start the adventure early
|
||||
@@ -385,59 +384,52 @@ client.on('message', function (message) {
|
||||
|
||||
if (playerQueue.length === 0) {
|
||||
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 {
|
||||
playerQueue = [];
|
||||
playerVotes = [];
|
||||
message.channel.send(`The queue has been cleared!`);
|
||||
logger.info( `${message.author.username} cleared the queue and the votes.`);
|
||||
pokemonName = '';
|
||||
captainInGameName = '';
|
||||
logger.info('Emptied pokemon name and captain name');
|
||||
logger.log('info', `${message.author.username} cleared the queue and the votes.`);
|
||||
}
|
||||
}
|
||||
|
||||
// Remove a tagged user from the queue
|
||||
if (command === 'ru' && args[0]) {
|
||||
const user = getUserFromMention(args[0]);
|
||||
|
||||
// Delete the message with the bot command
|
||||
if (config.deletecommandstoggle) {
|
||||
message.delete();
|
||||
}
|
||||
if (config.deletecommandstoggle) {
|
||||
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
|
||||
for(var i = 0; i < playerQueue.length; i++){
|
||||
if ((playerQueue[i].username === user.username)){
|
||||
playerQueue.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
for( var i = 0; i < playerVotes.length; i++){
|
||||
if ( playerVotes[i].username === user.username) {
|
||||
playerVotes.splice(i, 1);
|
||||
// Search for the user
|
||||
for(var i = 0; i < playerQueue.length; i++){
|
||||
if ((playerQueue[i].username === user.username)){
|
||||
playerQueue.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
message.channel.send(`${user.username} removed from queue.`);
|
||||
logger.info( `${message.author.username} removed ${user.username} from queue.`);
|
||||
for( var i = 0; i < playerVotes.length; i++){
|
||||
if ( playerVotes[i].username === user.username) {
|
||||
playerVotes.splice(i, 1);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
|
||||
checkQueue(message);
|
||||
}
|
||||
else if (!(playerQueue.includes(user))) {
|
||||
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.`);
|
||||
}
|
||||
} 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.`);
|
||||
message.channel.send(`${user.username} removed from queue.`);
|
||||
logger.log('info', `${message.author.username} removed ${user.username} from queue.`);
|
||||
|
||||
checkQueue(message);
|
||||
}
|
||||
else if (!(playerQueue.includes(user))) {
|
||||
message.channel.send(`${user.username} is not in the queue.`);
|
||||
logger.log('info', `${message.author.username} attempted to remove ${user.username} from queue but they weren't in it.`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -447,11 +439,11 @@ client.on('message', function (message) {
|
||||
// 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)) {
|
||||
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 {
|
||||
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