Change reporting online count periodically to setting bot presence information
This commit is contained in:
parent
bb6b3eb8a1
commit
625bbf1e6f
|
@ -2,12 +2,11 @@ const config = {
|
||||||
GUILD_THUMBNAIL: 'https://www.circlecraft.info/images/circlecraft_discord.png',
|
GUILD_THUMBNAIL: 'https://www.circlecraft.info/images/circlecraft_discord.png',
|
||||||
BOT_TOKEN: 'YOUR_BOT_TOKEN_GOES_HERE',
|
BOT_TOKEN: 'YOUR_BOT_TOKEN_GOES_HERE',
|
||||||
CHANNELS_ALLOW: ['123456789012345678', '123456789012345678'],
|
CHANNELS_ALLOW: ['123456789012345678', '123456789012345678'],
|
||||||
REPORT_CHANNEL: '1309262211654619188',
|
|
||||||
MOD_ROLE: '123456789012345678',
|
MOD_ROLE: '123456789012345678',
|
||||||
STAFF_ROLE: '123456789012345678',
|
STAFF_ROLE: '123456789012345678',
|
||||||
RESTART_ROLE: '123456789012345678'
|
RESTART_ROLE: '123456789012345678'
|
||||||
ALLOW_RESTART: false,
|
ALLOW_RESTART: false,
|
||||||
REPORT_INTERVAL: 0
|
PRESENCE_INTERVAL: 5
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = config;
|
module.exports = config;
|
||||||
|
|
53
index.js
53
index.js
|
@ -17,10 +17,11 @@ const client = new Client({
|
||||||
|
|
||||||
client.on('ready', () => {
|
client.on('ready', () => {
|
||||||
console.log(`Logged in as ${client.user.tag}!`);
|
console.log(`Logged in as ${client.user.tag}!`);
|
||||||
var interval = Config.REPORT_INTERVAL * 60 * 1000;
|
var interval = Config.PRESENCE_INTERVAL * 60 * 1000;
|
||||||
if ( interval != 0 ) {
|
if ( interval != 0 ) {
|
||||||
|
getOnlineReport();
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
doOnlineReport(channel);
|
getOnlineReport();
|
||||||
}, interval);
|
}, interval);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -30,28 +31,7 @@ process.on('SIGINT', function() {
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
function sendOnline(online, channel) {
|
function getOnlineReport(channel = null) {
|
||||||
let playerCount = 0;
|
|
||||||
let embed = new EmbedBuilder()
|
|
||||||
.setColor(0x44ff44)
|
|
||||||
.setThumbnail(Config.GUILD_THUMBNAIL);
|
|
||||||
for ( const s in online ) {
|
|
||||||
if ( !online[s].tested ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ( online[s].players.length > 0 ) {
|
|
||||||
playerCount += online[s].players.length;
|
|
||||||
embed.addFields({name: "**"+online[s].name+"**", value: online[s].players.join(', '), inline: false});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
embed.setTitle("**Players Currently Online:** " + playerCount);
|
|
||||||
channel.send({embeds: [embed]});
|
|
||||||
}
|
|
||||||
|
|
||||||
async function doOnlineReport(channel = null) {
|
|
||||||
if ( channel === null ) {
|
|
||||||
const channel = await client.channels.fetch(Config.REPORT_CHANNEL);
|
|
||||||
}
|
|
||||||
let online = [];
|
let online = [];
|
||||||
Servers.forEach(function (server) {
|
Servers.forEach(function (server) {
|
||||||
if ( server.active ) {
|
if ( server.active ) {
|
||||||
|
@ -68,7 +48,7 @@ async function doOnlineReport(channel = null) {
|
||||||
online[server.slug].tested = true;
|
online[server.slug].tested = true;
|
||||||
online[server.slug].online = true;
|
online[server.slug].online = true;
|
||||||
online[server.slug].players = response.players;
|
online[server.slug].players = response.players;
|
||||||
sendOnline(online, channel);
|
//sendOnline(online, channel);
|
||||||
})
|
})
|
||||||
.then(() => { q.close(); })
|
.then(() => { q.close(); })
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
|
@ -76,18 +56,35 @@ async function doOnlineReport(channel = null) {
|
||||||
//console.log("slug: " + server.slug);
|
//console.log("slug: " + server.slug);
|
||||||
//console.log(online);
|
//console.log(online);
|
||||||
online[server.slug].tested = true;
|
online[server.slug].tested = true;
|
||||||
sendOnline(online, channel);
|
//sendOnline(online, channel);
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
let playerCount = 0;
|
||||||
|
let embed = new EmbedBuilder()
|
||||||
|
.setColor(0x44ff44)
|
||||||
|
.setThumbnail(Config.GUILD_THUMBNAIL);
|
||||||
|
for ( const s in online ) {
|
||||||
|
if ( !online[s].tested ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if ( online[s].players.length > 0 ) {
|
||||||
|
playerCount += online[s].players.length;
|
||||||
|
embed.addFields({name: "**"+online[s].name+"**", value: online[s].players.join(', '), inline: false});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
embed.setTitle("**Players Currently Online:** " + playerCount);
|
||||||
|
if ( channel !== null ) channel.send({embeds: [embed]});
|
||||||
|
if ( Config.PRESENCE_INTERVAL != 0 ) {
|
||||||
|
client.user.setPresence({ activities: [{ name: "Online: " + playerCount }], status: 'idle' });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
client.on('messageCreate', (msg) => {
|
client.on('messageCreate', (msg) => {
|
||||||
if ( msg.author.id === client.user.id ) return;
|
if ( msg.author.id === client.user.id ) return;
|
||||||
if ( msg.content.startsWith(">>paddle") ) {
|
if ( msg.content.startsWith(">>paddle") ) {
|
||||||
console.log("Trying to paddle");
|
|
||||||
if ( msg.member.roles.cache.has(Config.MOD_ROLE) || msg.member.roles.cache.has(Config.STAFF_ROLE) ) {
|
if ( msg.member.roles.cache.has(Config.MOD_ROLE) || msg.member.roles.cache.has(Config.STAFF_ROLE) ) {
|
||||||
let response = "";
|
let response = "";
|
||||||
msg.mentions.users.forEach(function (user) {
|
msg.mentions.users.forEach(function (user) {
|
||||||
|
@ -111,7 +108,7 @@ client.on('messageCreate', (msg) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( msg.content == ">>online" && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
|
if ( msg.content == ">>online" && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
|
||||||
doOnlineReport(msg.channel);
|
getOnlineReport(msg.channel);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( msg.content == ">>server" && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
|
if ( msg.content == ">>server" && Config.CHANNELS_ALLOW.includes(msg.channel.id) ) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user