1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-12-27 20:35:38 -05:00

i feel like i made it worse but atleast its good enough.

This commit is contained in:
AnxietyisReal 2022-11-22 09:37:23 +11:00
parent d202156ee6
commit a6e61cccfe
2 changed files with 16 additions and 7 deletions

View File

@ -6,11 +6,12 @@ async function MPdata(client:TClient, interaction:Discord.ChatInputCommandIntera
let FSserver;
MPDB.sync();
const newServerId = interaction.guildId;
if (!await MPDB.findOne({where: {serverId: newServerId}})) return interaction.reply('This server isn\'t linked.')
const ServerURL = await MPDB.findOne({where: { serverId: newServerId }});
if (!ServerURL) return interaction.reply(`No gameserver found, please contact <@&${client.config.mainServer.roles.mpmanager}> to add it.`)
const DBURL = ServerURL.ip
const DBCode = ServerURL.code
const verifyURL = DBURL.match(/http/)
const verifyURL = DBURL.match(/http/)
const completedURL = DBURL + '/feed/dedicated-server-stats.json?code=' + DBCode
if (!verifyURL) return interaction.reply(`Invalid gameserver IP, please contact <@&${client.config.mainServer.roles.mpmanager}> to update it.`)
@ -32,7 +33,7 @@ export default {
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
if (interaction.channelId == '468835769092669461' && !client.isStaff(interaction.member) && ['status', 'players'].includes(interaction.options.getSubcommand())) {
interaction.reply(`Please use <#739084625862852715> for \`/mp status/players\` commands to prevent clutter in this channel.`).then((msg)=>{
setTimeout(()=>{interaction.deleteReply()}, 5000)
setTimeout(()=>{interaction.deleteReply()}, 6000)
});
return;
}
@ -41,6 +42,7 @@ export default {
case 'status':
const embed0 = new client.embed();
const FSserver0 = await MPdata(client, interaction, embed0);
if (!FSserver0.data) return console.log('FSserver0 failed')
if (FSserver0.data.server.name.length > 1) {
embed0.setTitle('Status/Details').setColor(client.config.embedColor).addFields(
{name: 'Server name', value: `${FSserver0?.data.server.name.length == 0 ? '\u200b' : `\`${FSserver0?.data.server.name}\``}`, inline: true},
@ -49,6 +51,14 @@ export default {
{name: 'Version', value: `${FSserver0?.data.server.version.length == 0 ? '\u200b' : FSserver0.data.server.version}`, inline: true},
{name: 'In-game Time', value: `${('0' + Math.floor((FSserver0.data.server.dayTime/3600/1000))).slice(-2)}:${('0' + Math.floor((FSserver0.data.server.dayTime/60/1000)%60)).slice(-2)}`, inline: true}
)
} else if (FSserver0.data.server.name.length == 0) {
embed0.setTitle('Status/Details').setColor(client.config.embedColor).addFields(
{name: 'Server name', value: `\`Official Daggerwin Game Server\``, inline: true},
{name: 'Players', value: '0 out of 0', inline: true},
{name: 'Current map', value: 'Null Island', inline: true},
{name: 'Version', value: '0.0.0.0', inline: true},
{name: 'In-game Time', value: '00:00', inline: true}
)
}
interaction.reply({embeds: [embed0]})
break;
@ -62,9 +72,7 @@ export default {
});
const first_graph_top = 16;
const second_graph_top = 16;
const textSize = 40;
const canvas = require('canvas');
@ -121,7 +129,6 @@ export default {
// draw points
ctx.lineWidth = 5;
function getYCoordinate(value: number) {
return ((1 - (value / second_graph_top)) * graphSize[1]) + graphOrigin[1];
}
@ -210,6 +217,7 @@ export default {
const Image = new client.attachmentBuilder(img.toBuffer(),{name: 'FSStats.png'})
embed1.setImage('attachment://FSStats.png')
const FSserver1 = await MPdata(client, interaction, embed1)
if (!FSserver1.data) return console.log('FSserver1 failed')
embed1.setTitle(FSserver1?.data.server.name.length == 0 ? 'Offline' : FSserver1?.data.server.name)
.setDescription(`${FSserver1?.data.slots.used}/${FSserver1?.data.slots.capacity}`)
.setColor(FSserver1?.data.server.name.length == 0 ? client.config.embedColorRed : client.config.embedColor);
@ -221,6 +229,7 @@ export default {
case 'info':
const embed2 = new client.embed().setColor(client.config.embedColor)
const FSserver2 = await MPdata(client, interaction, embed2)
if (!FSserver2.data) return console.log('FSserver2 failed')
const DBURL = MPDB.findOne({where: {serverId: interaction.guildId}})
embed2.setDescription([
`**Server name**: \`Official Daggerwin Game Server\``,

View File

@ -141,7 +141,7 @@ setInterval(async()=>{
// Event loop for punishments and daily msgs
setInterval(async()=>{
const now = Date.now()
const now = Date.now();
const lrsStart = client.config.LRSstart;
client.punishments._content.filter((x:Punishment)=>x.endTime<= now && !x.expired).forEach(async (punishment:Punishment)=>{
@ -152,7 +152,7 @@ setInterval(async()=>{
const formattedDate = Math.floor((now - lrsStart)/1000/60/60/24);
const dailyMsgs = require('./database/dailyMsgs.json');
if (!dailyMsgs.some(x=>x[0] === formattedDate)){
if (!dailyMsgs.some((x:Array<number>)=>x[0] === formattedDate)){
let total = Object.values<UserLevels>(client.userLevels._content).reduce((a,b)=>a + b.messages, 0); // sum of all users
const yesterday = dailyMsgs.find((x:Array<number>)=>x[0] === formattedDate - 1);
if (total < yesterday){ // messages went down.