mirror of
https://github.com/toast-ts/Daggerbot-TS.git
synced 2024-11-18 04:40:59 -05:00
Compare commits
1 Commits
11d7a8dde9
...
9373424199
Author | SHA1 | Date | |
---|---|---|---|
|
9373424199 |
@ -7,7 +7,7 @@ services:
|
|||||||
- 6379:6379/tcp
|
- 6379:6379/tcp
|
||||||
db:
|
db:
|
||||||
container_name: postgres-master
|
container_name: postgres-master
|
||||||
image: postgres:16.2-alpine3.19
|
image: postgres:16.1-alpine3.19
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432/tcp
|
- 5432:5432/tcp
|
||||||
|
@ -8,7 +8,7 @@ services:
|
|||||||
- 6379:6379/tcp
|
- 6379:6379/tcp
|
||||||
db-slave:
|
db-slave:
|
||||||
container_name: postgres-slave
|
container_name: postgres-slave
|
||||||
image: postgres:16.2-alpine3.19
|
image: postgres:16.1-alpine3.19
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
- 5432:5432/tcp
|
- 5432:5432/tcp
|
||||||
|
@ -9,14 +9,10 @@ import {FSData} from 'src/interfaces';
|
|||||||
import {requestServerData, mpModuleDisabled, refreshTimerSecs, playtimeStat} from '../modules/MPModule.js';
|
import {requestServerData, mpModuleDisabled, refreshTimerSecs, playtimeStat} from '../modules/MPModule.js';
|
||||||
|
|
||||||
async function fetchData(client:TClient, interaction:Discord.ChatInputCommandInteraction, serverName:string):Promise<FSData|Discord.InteractionResponse> {
|
async function fetchData(client:TClient, interaction:Discord.ChatInputCommandInteraction, serverName:string):Promise<FSData|Discord.InteractionResponse> {
|
||||||
try {
|
|
||||||
const db = await client.MPServer.findInCache();
|
const db = await client.MPServer.findInCache();
|
||||||
const data = await requestServerData(client, db.find(x=>x.serverName === serverName));
|
const data = await requestServerData(client, db.find(x=>x.serverName === serverName));
|
||||||
|
if (!data) return interaction.reply('Ran into a '+RanIntoHumor+' while trying to retrieve server data, please try again later.');
|
||||||
return data.dss as FSData;
|
return data.dss as FSData;
|
||||||
} catch {
|
|
||||||
Logger.console('error', 'MPDB', 'Function failed - fetchData');
|
|
||||||
return interaction.reply('Ran into a '+RanIntoHumor()+' while trying to retrieve server data, please try again later.');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const logPrefix = 'MPDB';
|
const logPrefix = 'MPDB';
|
||||||
@ -46,10 +42,8 @@ export default class MP {
|
|||||||
const canvas = await new CanvasBuilder().generateGraph(PDArr.slice(-120), 'players');
|
const canvas = await new CanvasBuilder().generateGraph(PDArr.slice(-120), 'players');
|
||||||
const players:string[] = [];
|
const players:string[] = [];
|
||||||
let embedColor:Discord.ColorResolvable;
|
let embedColor:Discord.ColorResolvable;
|
||||||
|
|
||||||
try {
|
|
||||||
switch (true){
|
switch (true){
|
||||||
case DSS?.slots?.used === DSS?.slots?.capacity:
|
case DSS?.slots?.used === DSS?.slots.capacity:
|
||||||
embedColor = client.config.embedColorRed;
|
embedColor = client.config.embedColorRed;
|
||||||
break;
|
break;
|
||||||
case DSS?.slots?.used > 8:
|
case DSS?.slots?.used > 8:
|
||||||
@ -59,17 +53,16 @@ export default class MP {
|
|||||||
embedColor = client.config.embedColorGreen;
|
embedColor = client.config.embedColorGreen;
|
||||||
}
|
}
|
||||||
for (const player of DSS.slots.players.filter(x=>x.isUsed)) players.push(playtimeStat(player))
|
for (const player of DSS.slots.players.filter(x=>x.isUsed)) players.push(playtimeStat(player))
|
||||||
let attachmentName:string = 'MPModule.jpg';
|
|
||||||
|
|
||||||
|
let attachmentName:string = 'MPModule.jpg';
|
||||||
await interaction.reply({embeds:[new client.embed()
|
await interaction.reply({embeds:[new client.embed()
|
||||||
.setTitle(DSS.server?.name.length > 0 ? DSS.server.name : 'Offline')
|
.setTitle(DSS.server?.name.length > 0 ? DSS.server.name : 'Offline')
|
||||||
.setColor(embedColor)
|
.setColor(embedColor)
|
||||||
.setDescription(DSS?.slots?.used < 1 ? '*Nobody is playing*' : players.join('\n\n'))
|
.setDescription(DSS?.slots?.used < 1 ? '*Nobody is playing*' : players.join('\n\n'))
|
||||||
.setImage(`attachment://${attachmentName}`)
|
.setImage(`attachment://${attachmentName}`)
|
||||||
.setAuthor({name: `${DSS.slots?.used}/${DSS.slots?.capacity}`})
|
.setAuthor({name: `${DSS.slots.used}/${DSS.slots.capacity}`})
|
||||||
.setFooter({text: `Current time: ${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`})
|
.setFooter({text: `Current time: ${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`})
|
||||||
], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]});
|
], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]})
|
||||||
} catch {}
|
|
||||||
},
|
},
|
||||||
details: async()=>{
|
details: async()=>{
|
||||||
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
||||||
@ -78,25 +71,26 @@ export default class MP {
|
|||||||
const server = db.find(x=>x.serverName === choiceSelector);
|
const server = db.find(x=>x.serverName === choiceSelector);
|
||||||
|
|
||||||
const dEmbed = new client.embed().setColor(client.config.embedColor).setAuthor({name: 'Crossplay server'}).setDescription(MessageTool.concatMessage(
|
const dEmbed = new client.embed().setColor(client.config.embedColor).setAuthor({name: 'Crossplay server'}).setDescription(MessageTool.concatMessage(
|
||||||
`**Name:** \`${DSS.server?.name.length > 0 ? DSS.server.name : '\u200b'}\``,
|
`**Name:** \`${DSS?.server.name.length > 0 ? DSS.server.name : '\u200b'}\``,
|
||||||
'**Password:** `mf4700`',
|
'**Password:** `mf4700`',
|
||||||
`**Map:** \`${DSS.server?.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``,
|
`**Map:** \`${DSS.server.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``,
|
||||||
`**Mods:** [Click here](http://${server.ip}/mods.html) **|** [Direct link](http://${server.ip}/all_mods_download?onlyActive=true)`,
|
`**Mods:** [Click here](http://${server.ip}/mods.html) **|** [Direct link](http://${server.ip}/all_mods_download?onlyActive=true)`,
|
||||||
'**Filters:** [Click here](https://discord.com/channels/468835415093411861/468835769092669461/926581585938120724)',
|
'**Filters:** [Click here](https://discord.com/channels/468835415093411861/468835769092669461/926581585938120724)',
|
||||||
`Please see <#${channels.serverInfo}> for more additional information and rules.`
|
`Please see <#${channels.serverInfo}> for more additional information and rules.`
|
||||||
));
|
));
|
||||||
if (DSS.server?.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'});
|
if (DSS.server.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'});
|
||||||
DSS.server ? await interaction.reply({embeds: [dEmbed]}) : null;
|
await interaction.reply({embeds: [dEmbed]})
|
||||||
},
|
},
|
||||||
status: async()=>{
|
status: async()=>{
|
||||||
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
||||||
if (!DSS) return console.log('Endpoint failed - status');
|
if (!DSS) return console.log('Endpoint failed - status');
|
||||||
|
if (DSS.server.name.length > 0) {
|
||||||
DSS.server ? await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields(
|
await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields(
|
||||||
{name: 'Name', value: DSS.server?.name?.length < 1 ? '*`Offline`*' : `\`${DSS?.server?.name}\``},
|
{name: 'Name', value: `\`${DSS?.server.name}\``},
|
||||||
{name: 'Players', value: `${DSS?.slots.used}/${DSS?.slots.capacity}`},
|
{name: 'Players', value: `${DSS.slots.used}/${DSS.slots.capacity}`},
|
||||||
{name: 'Map', value: DSS?.server.mapName}
|
{name: 'Map', value: DSS?.server.mapName}
|
||||||
).setFooter({text: `Version: ${DSS?.server?.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]}) : null
|
).setFooter({text: `Version: ${DSS?.server.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]})
|
||||||
|
} else return interaction.reply('Server is currently offline.')
|
||||||
},
|
},
|
||||||
pallets: async()=>{
|
pallets: async()=>{
|
||||||
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
|
||||||
|
Loading…
Reference in New Issue
Block a user