mirror of
https://github.com/toast-ts/Daggerbot-TS.git
synced 2024-11-17 00:10:58 -05:00
Compare commits
No commits in common. "d87f2af46735eefa250b88a38112c590fac15cb2" and "9e0b4d977680895520bd6bfb3619e7c4993af027" have entirely different histories.
d87f2af467
...
9e0b4d9776
3
.gitignore
vendored
3
.gitignore
vendored
@ -9,5 +9,4 @@
|
||||
# Bot stuff
|
||||
dist/
|
||||
src/database/
|
||||
src/*.json
|
||||
src/MPLoopRaw.log
|
||||
src/*.json
|
124
.pnp.cjs
generated
124
.pnp.cjs
generated
@ -37,7 +37,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["axios", "npm:1.4.0"],\
|
||||
["canvas", "npm:2.11.2"],\
|
||||
["discord-player", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:6.6.2"],\
|
||||
["discord.js", "npm:14.13.0"],\
|
||||
["discord.js", "npm:14.13.0-dev.1691971783-188877c50.0"],\
|
||||
["libsodium-wrappers", "npm:0.7.11"],\
|
||||
["moment", "npm:2.29.4"],\
|
||||
["mongoose", "npm:7.4.3"],\
|
||||
@ -98,14 +98,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@discordjs/builders", [\
|
||||
["npm:1.6.5", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-builders-npm-1.6.5-9d05c520ba-9c5c4d483a.zip/node_modules/@discordjs/builders/",\
|
||||
["npm:1.6.4", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-builders-npm-1.6.4-73f25610c1-059ebe77b1.zip/node_modules/@discordjs/builders/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/builders", "npm:1.6.5"],\
|
||||
["@discordjs/formatters", "npm:0.3.2"],\
|
||||
["@discordjs/util", "npm:1.0.1"],\
|
||||
["@discordjs/builders", "npm:1.6.4"],\
|
||||
["@discordjs/formatters", "npm:0.3.1"],\
|
||||
["@discordjs/util", "npm:1.0.0"],\
|
||||
["@sapphire/shapeshift", "npm:3.9.2"],\
|
||||
["discord-api-types", "npm:0.37.50"],\
|
||||
["discord-api-types", "npm:0.37.53"],\
|
||||
["fast-deep-equal", "npm:3.1.3"],\
|
||||
["ts-mixer", "npm:6.0.3"],\
|
||||
["tslib", "npm:2.6.1"]\
|
||||
@ -120,21 +120,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@discordjs/collection", "npm:1.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:1.5.3", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-collection-npm-1.5.3-ea9e0ca74b-fefed19bea.zip/node_modules/@discordjs/collection/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/collection", "npm:1.5.3"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@discordjs/formatters", [\
|
||||
["npm:0.3.2", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-formatters-npm-0.3.2-01b9de30b3-653c88595f.zip/node_modules/@discordjs/formatters/",\
|
||||
["npm:0.3.1", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-formatters-npm-0.3.1-7840a49252-9635568785.zip/node_modules/@discordjs/formatters/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/formatters", "npm:0.3.2"],\
|
||||
["discord-api-types", "npm:0.37.50"]\
|
||||
["@discordjs/formatters", "npm:0.3.1"],\
|
||||
["discord-api-types", "npm:0.37.53"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -169,28 +162,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["@discordjs/rest", [\
|
||||
["npm:2.0.1", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.0.1-0339cfec4f-36e3348929.zip/node_modules/@discordjs/rest/",\
|
||||
["npm:2.0.0", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.0.0-124259cee8-df610f6bce.zip/node_modules/@discordjs/rest/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/rest", "npm:2.0.1"],\
|
||||
["@discordjs/collection", "npm:1.5.3"],\
|
||||
["@discordjs/util", "npm:1.0.1"],\
|
||||
["@discordjs/rest", "npm:2.0.0"],\
|
||||
["@discordjs/collection", "npm:1.5.2"],\
|
||||
["@discordjs/util", "npm:1.0.0"],\
|
||||
["@sapphire/async-queue", "npm:1.5.0"],\
|
||||
["@sapphire/snowflake", "npm:3.5.1"],\
|
||||
["@vladfrangu/async_event_emitter", "npm:2.2.2"],\
|
||||
["discord-api-types", "npm:0.37.50"],\
|
||||
["discord-api-types", "npm:0.37.53"],\
|
||||
["magic-bytes.js", "npm:1.0.15"],\
|
||||
["tslib", "npm:2.6.1"],\
|
||||
["undici", "npm:5.22.1"]\
|
||||
["undici", "npm:5.23.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@discordjs/util", [\
|
||||
["npm:1.0.1", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-util-npm-1.0.1-5845db7f36-b55d5284cd.zip/node_modules/@discordjs/util/",\
|
||||
["npm:1.0.0", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-util-npm-1.0.0-5c10481950-bbd800408c.zip/node_modules/@discordjs/util/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/util", "npm:1.0.1"]\
|
||||
["@discordjs/util", "npm:1.0.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -201,28 +194,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
"packageDependencies": [\
|
||||
["@discordjs/voice", "npm:0.16.0"],\
|
||||
["@types/ws", "npm:8.5.5"],\
|
||||
["discord-api-types", "npm:0.37.54"],\
|
||||
["discord-api-types", "npm:0.37.53"],\
|
||||
["prism-media", "virtual:37f8ab283fb7abcf3fda3c5d430948901f33b8d771da32a273933562670e34608b1daf4394905868d946d64bc91643fb158184deae5131f973a7fcfafbc06afc#npm:1.3.5"],\
|
||||
["tslib", "npm:2.6.1"],\
|
||||
["ws", "virtual:31c533a2eb37dc1746b7d976d500ca13eb00e91bf180b840d65754f8c6e137fa3abf10279db8d10554ceb81785dfffeb6b725d592c9bfa5b4309edf4781c592e#npm:8.13.0"]\
|
||||
["ws", "virtual:9ce84a0604ad02832e33621299f919cd218b24239fb0c46d80371b76a2e2bb3fa8fbeca210d63d15caaa18cb4bd437d3b404ee91d06cb167e4b2efa32b8e514c#npm:8.13.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@discordjs/ws", [\
|
||||
["npm:1.0.1", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-ws-npm-1.0.1-31c533a2eb-d34f176466.zip/node_modules/@discordjs/ws/",\
|
||||
["npm:1.0.0", {\
|
||||
"packageLocation": "./.yarn/cache/@discordjs-ws-npm-1.0.0-9ce84a0604-1917361918.zip/node_modules/@discordjs/ws/",\
|
||||
"packageDependencies": [\
|
||||
["@discordjs/ws", "npm:1.0.1"],\
|
||||
["@discordjs/collection", "npm:1.5.3"],\
|
||||
["@discordjs/rest", "npm:2.0.1"],\
|
||||
["@discordjs/util", "npm:1.0.1"],\
|
||||
["@discordjs/ws", "npm:1.0.0"],\
|
||||
["@discordjs/collection", "npm:1.5.2"],\
|
||||
["@discordjs/rest", "npm:2.0.0"],\
|
||||
["@discordjs/util", "npm:1.0.0"],\
|
||||
["@sapphire/async-queue", "npm:1.5.0"],\
|
||||
["@types/ws", "npm:8.5.5"],\
|
||||
["@vladfrangu/async_event_emitter", "npm:2.2.2"],\
|
||||
["discord-api-types", "npm:0.37.50"],\
|
||||
["discord-api-types", "npm:0.37.53"],\
|
||||
["tslib", "npm:2.6.1"],\
|
||||
["ws", "virtual:31c533a2eb37dc1746b7d976d500ca13eb00e91bf180b840d65754f8c6e137fa3abf10279db8d10554ceb81785dfffeb6b725d592c9bfa5b4309edf4781c592e#npm:8.13.0"]\
|
||||
["ws", "virtual:9ce84a0604ad02832e33621299f919cd218b24239fb0c46d80371b76a2e2bb3fa8fbeca210d63d15caaa18cb4bd437d3b404ee91d06cb167e4b2efa32b8e514c#npm:8.13.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -952,7 +945,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["axios", "npm:1.4.0"],\
|
||||
["canvas", "npm:2.11.2"],\
|
||||
["discord-player", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:6.6.2"],\
|
||||
["discord.js", "npm:14.13.0"],\
|
||||
["discord.js", "npm:14.13.0-dev.1691971783-188877c50.0"],\
|
||||
["libsodium-wrappers", "npm:0.7.11"],\
|
||||
["moment", "npm:2.29.4"],\
|
||||
["mongoose", "npm:7.4.3"],\
|
||||
@ -1055,17 +1048,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["discord-api-types", [\
|
||||
["npm:0.37.50", {\
|
||||
"packageLocation": "./.yarn/cache/discord-api-types-npm-0.37.50-969b9c186e-08dc5145db.zip/node_modules/discord-api-types/",\
|
||||
["npm:0.37.53", {\
|
||||
"packageLocation": "./.yarn/cache/discord-api-types-npm-0.37.53-511d5a32e5-cff6bc976f.zip/node_modules/discord-api-types/",\
|
||||
"packageDependencies": [\
|
||||
["discord-api-types", "npm:0.37.50"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:0.37.54", {\
|
||||
"packageLocation": "./.yarn/cache/discord-api-types-npm-0.37.54-375905cfce-f149961be9.zip/node_modules/discord-api-types/",\
|
||||
"packageDependencies": [\
|
||||
["discord-api-types", "npm:0.37.54"]\
|
||||
["discord-api-types", "npm:0.37.53"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -1090,7 +1076,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
["@types/discord-player__extractor", null],\
|
||||
["@types/discord.js", null],\
|
||||
["@types/youtube-sr", null],\
|
||||
["discord.js", "npm:14.13.0"],\
|
||||
["discord.js", "npm:14.13.0-dev.1691971783-188877c50.0"],\
|
||||
["libsodium-wrappers", "npm:0.7.11"],\
|
||||
["youtube-sr", "npm:4.3.4"]\
|
||||
],\
|
||||
@ -1106,24 +1092,24 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["discord.js", [\
|
||||
["npm:14.13.0", {\
|
||||
"packageLocation": "./.yarn/cache/discord.js-npm-14.13.0-cee9413e4c-c273645ac2.zip/node_modules/discord.js/",\
|
||||
["npm:14.13.0-dev.1691971783-188877c50.0", {\
|
||||
"packageLocation": "./.yarn/cache/discord.js-npm-14.13.0-dev.1691971783-188877c50.0-96206ff672-3e03a228ec.zip/node_modules/discord.js/",\
|
||||
"packageDependencies": [\
|
||||
["discord.js", "npm:14.13.0"],\
|
||||
["@discordjs/builders", "npm:1.6.5"],\
|
||||
["@discordjs/collection", "npm:1.5.3"],\
|
||||
["@discordjs/formatters", "npm:0.3.2"],\
|
||||
["@discordjs/rest", "npm:2.0.1"],\
|
||||
["@discordjs/util", "npm:1.0.1"],\
|
||||
["@discordjs/ws", "npm:1.0.1"],\
|
||||
["discord.js", "npm:14.13.0-dev.1691971783-188877c50.0"],\
|
||||
["@discordjs/builders", "npm:1.6.4"],\
|
||||
["@discordjs/collection", "npm:1.5.2"],\
|
||||
["@discordjs/formatters", "npm:0.3.1"],\
|
||||
["@discordjs/rest", "npm:2.0.0"],\
|
||||
["@discordjs/util", "npm:1.0.0"],\
|
||||
["@discordjs/ws", "npm:1.0.0"],\
|
||||
["@sapphire/snowflake", "npm:3.5.1"],\
|
||||
["@types/ws", "npm:8.5.5"],\
|
||||
["discord-api-types", "npm:0.37.50"],\
|
||||
["discord-api-types", "npm:0.37.53"],\
|
||||
["fast-deep-equal", "npm:3.1.3"],\
|
||||
["lodash.snakecase", "npm:4.1.1"],\
|
||||
["tslib", "npm:2.6.1"],\
|
||||
["undici", "npm:5.22.1"],\
|
||||
["ws", "virtual:31c533a2eb37dc1746b7d976d500ca13eb00e91bf180b840d65754f8c6e137fa3abf10279db8d10554ceb81785dfffeb6b725d592c9bfa5b4309edf4781c592e#npm:8.13.0"]\
|
||||
["undici", "npm:5.23.0"],\
|
||||
["ws", "virtual:9ce84a0604ad02832e33621299f919cd218b24239fb0c46d80371b76a2e2bb3fa8fbeca210d63d15caaa18cb4bd437d3b404ee91d06cb167e4b2efa32b8e514c#npm:8.13.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
@ -2781,14 +2767,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
}]\
|
||||
]],\
|
||||
["undici", [\
|
||||
["npm:5.22.1", {\
|
||||
"packageLocation": "./.yarn/cache/undici-npm-5.22.1-ff9b0b961e-048a3365f6.zip/node_modules/undici/",\
|
||||
"packageDependencies": [\
|
||||
["undici", "npm:5.22.1"],\
|
||||
["busboy", "npm:1.6.0"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:5.23.0", {\
|
||||
"packageLocation": "./.yarn/cache/undici-npm-5.23.0-eb9e1b02e8-906ca4fb1d.zip/node_modules/undici/",\
|
||||
"packageDependencies": [\
|
||||
@ -2949,10 +2927,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:31c533a2eb37dc1746b7d976d500ca13eb00e91bf180b840d65754f8c6e137fa3abf10279db8d10554ceb81785dfffeb6b725d592c9bfa5b4309edf4781c592e#npm:8.13.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/ws-virtual-fbc9218bf1/0/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip/node_modules/ws/",\
|
||||
["virtual:9ce84a0604ad02832e33621299f919cd218b24239fb0c46d80371b76a2e2bb3fa8fbeca210d63d15caaa18cb4bd437d3b404ee91d06cb167e4b2efa32b8e514c#npm:8.13.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/ws-virtual-3a4860311b/0/cache/ws-npm-8.13.0-26ffa3016a-53e991bbf9.zip/node_modules/ws/",\
|
||||
"packageDependencies": [\
|
||||
["ws", "virtual:31c533a2eb37dc1746b7d976d500ca13eb00e91bf180b840d65754f8c6e137fa3abf10279db8d10554ceb81785dfffeb6b725d592c9bfa5b4309edf4781c592e#npm:8.13.0"],\
|
||||
["ws", "virtual:9ce84a0604ad02832e33621299f919cd218b24239fb0c46d80371b76a2e2bb3fa8fbeca210d63d15caaa18cb4bd437d3b404ee91d06cb167e4b2efa32b8e514c#npm:8.13.0"],\
|
||||
["@types/bufferutil", null],\
|
||||
["@types/utf-8-validate", null],\
|
||||
["bufferutil", null],\
|
||||
|
@ -34,7 +34,7 @@
|
||||
"axios": "1.4.0",
|
||||
"canvas": "2.11.2",
|
||||
"discord-player": "6.6.2",
|
||||
"discord.js": "14.13.0",
|
||||
"discord.js": "dev",
|
||||
"libsodium-wrappers": "0.7.11",
|
||||
"moment": "2.29.4",
|
||||
"mongoose": "7.4.3",
|
||||
@ -49,5 +49,8 @@
|
||||
"devDependencies": {
|
||||
"@types/ms": "0.7.31",
|
||||
"@types/node": "20.5.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"discord-api-types": "0.37.53"
|
||||
}
|
||||
}
|
||||
|
@ -3,69 +3,7 @@ import TClient from './client';
|
||||
import {writeFileSync, readFileSync} from 'node:fs';
|
||||
import {FSPlayer, FSData, FSCareerSavegame} from './typings/interfaces';
|
||||
|
||||
export default async(client:TClient, Channel:string, Message:string, ServerName:string)=>{
|
||||
if (!client.config.botSwitches.mpstats) return;
|
||||
|
||||
const msg = await (client.channels.resolve(Channel) as Discord.TextChannel).messages.fetch(Message);
|
||||
const database = await client.MPServer._content.findById(client.config.mainServer.id);
|
||||
const servers = {
|
||||
main: {
|
||||
dss: database.mainServer.ip+'/feed/dedicated-server-stats.json?code='+database.mainServer.code,
|
||||
csg: database.mainServer.ip+'/feed/dedicated-server-savegame.html?code='+database.mainServer.code+'&file=careerSavegame'
|
||||
},
|
||||
second: {
|
||||
dss: database.secondServer.ip+'/feed/dedicated-server-stats.json?code='+database.secondServer.code,
|
||||
csg: database.secondServer.ip+'/feed/dedicated-server-savegame.html?code='+database.secondServer.code+'&file=careerSavegame'
|
||||
}
|
||||
};
|
||||
// Log bot uptime for the sake of debugging.
|
||||
(client.channels.resolve('1091300529696673792') as Discord.TextChannel).send(client.formatTime(client.uptime, 2, {longNames: true, commas: true}));
|
||||
|
||||
const HITALL = async()=>{
|
||||
/* const hitDSS = await Promise.all([
|
||||
client.axios.get(servers.main.dss,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot - HITALL/axios ${client.axios.VERSION}`}}),
|
||||
client.axios.get(servers.second.dss,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot - HITALL/axios ${client.axios.VERSION}`}})
|
||||
]).catch(e=>{throw new Error('hitDSS failed to make a request', {cause: e.cause})}); */
|
||||
const hitCSG = await Promise.all([
|
||||
client.axios.get(servers.main.csg,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot - HITALL/axios ${client.axios.VERSION}`}}),
|
||||
client.axios.get(servers.second.csg,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot - HITALL/axios ${client.axios.VERSION}`}})
|
||||
]).catch(e=>{throw new Error('hitCSG failed to make a request', {cause: e.cause})});
|
||||
try {
|
||||
const APIData = {
|
||||
'Daggerwin': {
|
||||
//dss: hitDSS[0].data as FSData,
|
||||
csg: (client.xjs.xml2js(hitCSG[0].data,{compact:true}) as any).careerSavegame as FSCareerSavegame
|
||||
},
|
||||
'SecondServer': {
|
||||
//dss: hitDSS[1].data as FSData,
|
||||
csg: (client.xjs.xml2js(hitCSG[1].data,{compact:true}) as any).careerSavegame as FSCareerSavegame
|
||||
}
|
||||
} as const;
|
||||
console.log(APIData['Daggerwin'].csg)
|
||||
console.log(APIData['SecondServer'].csg)
|
||||
//console.log((APIData.Daggerwin.dss as FSData).server.name)
|
||||
//console.log((APIData.Daggerwin.csg as FSCareerSavegame).statistics.money)
|
||||
msg.edit({content: [
|
||||
ServerName,
|
||||
(APIData[ServerName].csg as FSCareerSavegame).settings.savegameName._text
|
||||
].join('\n')})
|
||||
} catch(err) {
|
||||
msg.edit({content: err.message})
|
||||
throw new Error('HITALL failed to make a promise request', {cause: err.cause});
|
||||
}
|
||||
}
|
||||
HITALL();
|
||||
|
||||
/* await Promise.all([
|
||||
client.axios.get(servers.main.dss,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot/axios ${client.axios.VERSION}`}}),
|
||||
client.axios.get(servers.main.csg,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot/axios ${client.axios.VERSION}`}}),
|
||||
client.axios.get(servers.second.dss,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot/axios ${client.axios.VERSION}`}}),
|
||||
client.axios.get(servers.second.csg,{timeout:7500,maxContentLength:Infinity,headers:{'User-Agent':`Daggerbot/axios ${client.axios.VERSION}`}})
|
||||
]).then(x=>x.map(x=>x.data)).catch(()=>{throw new Error('[MPLOOP] Failed to make a promise request.')});
|
||||
msg.edit({content: ServerName, embeds: []}) */
|
||||
}
|
||||
|
||||
/* export default async(client:TClient,Channel:string,Message:string,ServerName:string)=>{
|
||||
export default async(client:TClient,Channel:string,Message:string,ServerName:string)=>{
|
||||
if (!client.config.botSwitches.mpstats) return;
|
||||
const noContentImage = 'https://cdn.discordapp.com/attachments/1118960531135541318/1140906691236479036/68efx1.png';
|
||||
const msg = await (client.channels.resolve(Channel) as Discord.TextChannel).messages.fetch(Message);
|
||||
@ -223,4 +161,3 @@ export default async(client:TClient, Channel:string, Message:string, ServerName:
|
||||
client.MPServerCache[ServerName].players = playersOnServer
|
||||
}
|
||||
}
|
||||
*/
|
@ -109,7 +109,7 @@ export default class TClient extends Client {
|
||||
tls: false,
|
||||
family: 4
|
||||
}).then(()=>console.log(this.logTime(), 'Successfully connected to MongoDB')).catch(err=>{console.error(this.logTime(), `Failed to connect to MongoDB\n${err}`); exec('pm2 stop Daggerbot', {windowsHide:true})})
|
||||
this.login(this.tokens.beta);
|
||||
this.login(this.tokens.main);
|
||||
for await (const file of readdirSync('dist/events')){
|
||||
//console.log('EVENTS:', file)
|
||||
const eventFile = await import(`./events/${file}`);
|
||||
|
@ -1,354 +0,0 @@
|
||||
import Discord from 'discord.js';
|
||||
import TClient from '../client.js';
|
||||
import path from 'node:path';
|
||||
import canvas from 'canvas';
|
||||
import {readFileSync} from 'node:fs';
|
||||
|
||||
async function MPdata(client:TClient, interaction:Discord.ChatInputCommandInteraction, embed: Discord.EmbedBuilder, serverSelector: any) {
|
||||
//let serverSelector;
|
||||
if (!await client.MPServer._content.findOne({_id:interaction.guildId})) return interaction.reply('This server isn\'t linked to the bot.');
|
||||
const ServerURL = await client.MPServer._content.findById(interaction.guildId);
|
||||
if (!ServerURL) return interaction.reply(`No FS server found, please notify <@&${client.config.mainServer.roles.mpmanager}> to add it.`);
|
||||
if (!ServerURL.mainServer.ip.match(/http|https/) ?? !ServerURL.secondServer.ip.match(/http|https/)) return interaction.reply(`The server IP for this server is currently invalid, please notify <@&${client.config.mainServer.roles.mpmanager}>`);
|
||||
if (interaction.options.getString('server').includes('mainServer')) {
|
||||
try {
|
||||
serverSelector = await client.axios.get(ServerURL.mainServer.ip+'/feed/dedicated-server-stats.json?code='+ServerURL.mainServer.code, {
|
||||
timeout: 2550,
|
||||
headers: {'User-Agent': `Daggerbot - mp cmd/axios ${client.axios.VERSION}`}
|
||||
})
|
||||
} catch(err) {
|
||||
embed.setTitle('Host did not respond back in time').setColor(client.config.embedColorRed);
|
||||
console.log(client.logTime(), 'DagMP:Main failed to fetch, host didn\'t respond in time.');
|
||||
interaction.reply('Host didn\'t respond back in time.')
|
||||
return serverSelector
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
serverSelector = await client.axios.get(ServerURL.secondServer.ip+'/feed/dedicated-server-stats.json?code='+ServerURL.secondServer.code, {
|
||||
timeout: 2550,
|
||||
headers: {'User-Agent': `Daggerbot - mp cmd/axios ${client.axios.VERSION}`}
|
||||
})
|
||||
} catch(err) {
|
||||
embed.setTitle('Host did not respond back in time').setColor(client.config.embedColorRed);
|
||||
console.log(client.logTime(), 'DagMP:Second failed to fetch, host didn\'t respond in time.');
|
||||
interaction.reply('Host didn\'t respond back in time.')
|
||||
return serverSelector
|
||||
}
|
||||
}
|
||||
console.log(serverSelector)
|
||||
}
|
||||
|
||||
export default {
|
||||
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(()=>setTimeout(()=>interaction.deleteReply(), 6000));
|
||||
return;
|
||||
}
|
||||
({
|
||||
status: async()=>{
|
||||
const embed0 = new client.embed();
|
||||
const FSserver0 = await MPdata(client, interaction, embed0, 'mainServer');
|
||||
if (!FSserver0?.data) return console.log('FSserver0 failed - status');
|
||||
try {
|
||||
if (FSserver0.data.server.name.length > 1){
|
||||
interaction.reply({embeds: [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},
|
||||
{name: 'Players', value: `${FSserver0.data.slots.used} out of ${FSserver0.data.slots.capacity}`, inline: true},
|
||||
{name: 'Current map', value: `${FSserver0?.data.server.mapName.length == 0 ? '\u200b' : FSserver0.data.server.mapName}`, inline: true},
|
||||
{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) interaction.reply('Server is currently offline.')
|
||||
} catch (err){
|
||||
console.log(err)
|
||||
interaction.reply('FSserver0 Error placeholder')
|
||||
};
|
||||
},
|
||||
info: async()=>{
|
||||
const embed2 = new client.embed().setColor(client.config.embedColor)
|
||||
const FSserver2 = await MPdata(client, interaction, embed2, 'secondServer')
|
||||
if (!FSserver2?.data) return console.log('FSserver2 failed - info')
|
||||
const MPURL = await client.MPServer._content.findById(interaction.guildId);
|
||||
if (FSserver2.data.server.name.length == 0) embed2.setFooter({text: 'Server is currently offline.'})
|
||||
interaction.reply({embeds: [embed2.setDescription([
|
||||
`**Server name**: \`${FSserver2?.data.server.name.length === 0 ? '\u200b' : FSserver2?.data.server.name}\``,
|
||||
'**Password:** `mf4700`',
|
||||
'**Crossplay server**',
|
||||
`**Map:** ${FSserver2.data.server.mapName.length == 0 ? 'Null Island' : FSserver2.data.server.mapName}`,
|
||||
`**Mods:** [Click here](${MPURL.mainServer.ip}/mods.html) **|** [Direct Download](${MPURL.mainServer.ip}/all_mods_download?onlyActive=true)`,
|
||||
'**Filters:** [Click here](https://discord.com/channels/468835415093411861/468835769092669461/926581585938120724)',
|
||||
'Please see <#543494084363288637> for additional information.'
|
||||
].join('\n'))]});
|
||||
},
|
||||
url: async()=>{
|
||||
if (client.config.mainServer.id == interaction.guildId) {
|
||||
if (!interaction.member.roles.cache.has(client.config.mainServer.roles.mpmanager) && !interaction.member.roles.cache.has(client.config.mainServer.roles.bottech) && !interaction.member.roles.cache.has(client.config.mainServer.roles.admin)) return client.youNeedRole(interaction, 'mpmanager');
|
||||
}
|
||||
const address = interaction.options.getString('address');
|
||||
if (!address){
|
||||
try {
|
||||
const Url = await client.MPServer._content.findById(interaction.guildId);
|
||||
if (interaction.options.getString('server').includes('mainServer')) {
|
||||
if (Url.mainServer.ip && Url.mainServer.code) return interaction.reply(Url.mainServer.ip+'/feed/dedicated-server-stats.json?code='+Url.mainServer.code)
|
||||
} else {
|
||||
if (Url.secondServer.ip && Url.secondServer.code) return interaction.reply(Url.secondServer.ip+'/feed/dedicated-server-stats.json?code='+Url.secondServer.code)
|
||||
}
|
||||
} catch(err){
|
||||
console.log(`MPDB :: ${err}`);
|
||||
interaction.reply(`\`\`\`${err}\`\`\``)
|
||||
}
|
||||
} else {
|
||||
if (!address.match(/dedicated-server-stats/)) return interaction.reply('The URL does not match `dedicated-server-stats.xml`');
|
||||
const newURL = address.replace('xml','json').split('/feed/dedicated-server-stats.json?code=');
|
||||
try {
|
||||
if (interaction.options.getString('server').includes('mainServer')) {
|
||||
console.log(`MPDB :: Main Server\'s URL for ${interaction.guild.name} has been modified by ${interaction.member.displayName} (${interaction.member.id})`);
|
||||
await client.MPServer._content.create({
|
||||
_id: interaction.guildId, mainServer: { ip: newURL[0], code: newURL[1] }, secondServer: { ip: 'unknown', code: 'unknown' }
|
||||
})
|
||||
.then(()=>interaction.reply('This guild is not found in database, therefore I have created it for you.'))
|
||||
.catch((err:Error)=>interaction.reply(`I ran into a brick wall while creating the server data:\n${err.message}`))
|
||||
} else {
|
||||
console.log(`MPDB :: Second Server\'s URL for ${interaction.guild.name} has been modified by ${interaction.member.displayName} (${interaction.member.id})`)
|
||||
await client.MPServer._content.findOneAndUpdate(
|
||||
{_id: interaction.guildId},{$set: {secondServer: {ip: newURL[0], code: newURL[1]}}}
|
||||
)
|
||||
.then(()=>interaction.reply('URL for second server successfully updated.'))
|
||||
.catch((err:Error)=>interaction.reply(`I got hit by a flying fish while updating the server data:\n${err.message}`))
|
||||
}
|
||||
} catch(err) {
|
||||
if (interaction.options.getString('server').includes('mainServer')) {
|
||||
const affected = await client.MPServer._content.findByIdAndUpdate({_id: interaction.guildId}, {$set: {mainServer:{ip: newURL[0], code: newURL[1]}}})
|
||||
if (affected) return interaction.reply('URL for Main Server successfully updated.')
|
||||
} else {
|
||||
const affected = await client.MPServer._content.findByIdAndUpdate({_id: interaction.guildId}, {$set: {secondServer:{ip: newURL[0], code: newURL[1]}}})
|
||||
if (affected) return interaction.reply('URL for Second Server successfully updated.')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
players: async()=>{
|
||||
const data = JSON.parse(readFileSync(path.join('src/database/MPPlayerData.json'), {encoding: 'utf8'})).slice(client.statsGraph)
|
||||
// handle negative days
|
||||
data.forEach((change: number, i: number) => {
|
||||
if (change < 0) data[i] = data[i - 1] || data[i + 1] || 0;
|
||||
});
|
||||
|
||||
const first_graph_top = 16;
|
||||
const second_graph_top = 16;
|
||||
const textSize = 40;
|
||||
|
||||
const img = canvas.createCanvas(1500, 750);
|
||||
const ctx = img.getContext('2d');
|
||||
|
||||
const graphOrigin = [15, 65];
|
||||
const graphSize = [1300, 630];
|
||||
const nodeWidth = graphSize[0] / (data.length - 1);
|
||||
ctx.fillStyle = '#36393f'; //'#111111';
|
||||
ctx.fillRect(0, 0, img.width, img.height);
|
||||
|
||||
// grey horizontal lines
|
||||
ctx.lineWidth = 5;
|
||||
|
||||
let interval_candidates = [];
|
||||
for (let i = 4; i < 10; i++) {
|
||||
const interval = first_graph_top / i;
|
||||
if (Number.isInteger(interval)) {
|
||||
let intervalString = interval.toString();
|
||||
const reference_number = i * Math.max(intervalString.split('').filter(x => x === '0').length / intervalString.length, 0.3) * (['1', '2', '4', '5', '6', '8'].includes(intervalString[0]) ? 1.5 : 0.67)
|
||||
interval_candidates.push([interval, i, reference_number]);
|
||||
}
|
||||
}
|
||||
const chosen_interval = interval_candidates.sort((a, b) => b[2] - a[2])[0];
|
||||
|
||||
const previousY: Array<number> = [];
|
||||
|
||||
ctx.strokeStyle = '#202225'; //'#555B63';
|
||||
for (let i = 0; i <= chosen_interval[1]; i++) {
|
||||
const y = graphOrigin[1] + graphSize[1] - (i * (chosen_interval[0] / second_graph_top) * graphSize[1]);
|
||||
if (y < graphOrigin[1]) continue;
|
||||
const even = ((i + 1) % 2) === 0;
|
||||
if (even) ctx.strokeStyle = '#2c2f33'; //'#3E4245';
|
||||
ctx.beginPath();
|
||||
ctx.lineTo(graphOrigin[0], y);
|
||||
ctx.lineTo(graphOrigin[0] + graphSize[0], y);
|
||||
ctx.stroke();
|
||||
ctx.closePath();
|
||||
if (even) ctx.strokeStyle = '#202225'; //'#555B63';
|
||||
previousY.push(y, i * chosen_interval[0]);
|
||||
}
|
||||
|
||||
// 30m mark
|
||||
ctx.setLineDash([8, 16]);
|
||||
ctx.beginPath();
|
||||
const lastMonthStart = graphOrigin[0] + (nodeWidth * (data.length - 30));
|
||||
ctx.lineTo(lastMonthStart, graphOrigin[1]);
|
||||
ctx.lineTo(lastMonthStart, graphOrigin[1] + graphSize[1]);
|
||||
ctx.stroke();
|
||||
ctx.closePath();
|
||||
ctx.setLineDash([]);
|
||||
|
||||
// draw points
|
||||
ctx.lineWidth = 5;
|
||||
|
||||
function getYCoordinate(value: number) {
|
||||
return ((1 - (value / second_graph_top)) * graphSize[1]) + graphOrigin[1];
|
||||
}
|
||||
|
||||
function colorAtPlayercount(playercount: number) {
|
||||
if (playercount === first_graph_top) return client.config.embedColorRed as string;
|
||||
else if (playercount > 9) return client.config.embedColorYellow as string;
|
||||
else return client.config.embedColorGreen as string
|
||||
}
|
||||
let lastCoords: Array<number> = [];
|
||||
data.forEach((curPC: number /* current player count */, i: number) => {
|
||||
if (curPC < 0) curPC = 0;
|
||||
const x = i * nodeWidth + graphOrigin[0];
|
||||
const y = getYCoordinate(curPC);
|
||||
const nexPC /* next player count */ = data[i + 1];
|
||||
const prvPC /* previous player count */ = data[i - 1];
|
||||
const curColor = colorAtPlayercount(curPC); // color now
|
||||
const prvColor = colorAtPlayercount(prvPC); // color at last point
|
||||
if (curColor !== prvColor && !isNaN(prvPC) && lastCoords.length > 0) { // gradient should be used when the color between now and last point is not the same
|
||||
// gradient from now to last point
|
||||
const grd = ctx.createLinearGradient(lastCoords[0], lastCoords[1], x, y);
|
||||
grd.addColorStop(0, colorAtPlayercount(prvPC)); // prev color at the beginning
|
||||
grd.addColorStop(1, colorAtPlayercount(curPC)); // cur color at the end
|
||||
// special case: playercount rises or falls rapidly accross all colors (eg. straight from red to green)
|
||||
if (curColor !== client.config.embedColorYellow && prvColor !== client.config.embedColorYellow) {
|
||||
const yellowY = getYCoordinate(10); // y coordinate at which line should be yellow
|
||||
const stop = (yellowY - lastCoords[1]) / (y - lastCoords[1]); // between 0 and 1, where is yellowY between y and nextPointCoords[1] ?
|
||||
grd.addColorStop(stop, client.config.embedColorYellow as string); // add a yellow stop to the gradient
|
||||
}
|
||||
ctx.strokeStyle = grd;
|
||||
} else ctx.strokeStyle = colorAtPlayercount(curPC);
|
||||
ctx.beginPath();
|
||||
if (lastCoords.length > 0) ctx.moveTo(lastCoords[0], lastCoords[1]);
|
||||
// if the line being drawn is horizontal, make it go until it has to go down
|
||||
if (y === lastCoords[1]) {
|
||||
let newX = x;
|
||||
for (let j = i + 1; j <= data.length; j++) {
|
||||
if (data[j] === curPC) newX += nodeWidth; else break;
|
||||
}
|
||||
ctx.lineTo(newX, y);
|
||||
} else ctx.lineTo(x, y);
|
||||
lastCoords = [x, y];
|
||||
ctx.stroke();
|
||||
ctx.closePath();
|
||||
|
||||
if (curPC === prvPC && curPC === nexPC) return; // no ball because no vertical difference to next or prev point
|
||||
else {
|
||||
// ball
|
||||
ctx.fillStyle = colorAtPlayercount(curPC);
|
||||
ctx.beginPath();
|
||||
ctx.arc(x, y, ctx.lineWidth * 1.3, 0, 2 * Math.PI)
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
}
|
||||
});
|
||||
|
||||
// draw text
|
||||
ctx.font = '400 ' + textSize + 'px sans-serif';
|
||||
ctx.fillStyle = 'white';
|
||||
|
||||
// highest value
|
||||
const maxx = graphOrigin[0] + graphSize[0] + textSize / 2;
|
||||
const maxy = previousY[0] + (textSize / 3);
|
||||
ctx.fillText(previousY[1].toLocaleString('en-US'), maxx, maxy);
|
||||
|
||||
// lowest value
|
||||
const lowx = graphOrigin[0] + graphSize[0] + textSize / 2;
|
||||
const lowy = graphOrigin[1] + graphSize[1] + (textSize / 3);
|
||||
ctx.fillText('0 players', lowx, lowy);
|
||||
|
||||
// 30m
|
||||
ctx.fillText('30 mins ago', lastMonthStart, graphOrigin[1] - (textSize / 2));
|
||||
|
||||
// time ->
|
||||
const tx = graphOrigin[0] + (textSize / 2);
|
||||
const ty = graphOrigin[1] + graphSize[1] + (textSize);
|
||||
ctx.fillText('time ->', tx, ty);
|
||||
|
||||
const embed1 = new client.embed();
|
||||
const FSserver1 = await MPdata(client, interaction, embed1, 'mainServer')
|
||||
if (!FSserver1?.data) return console.log('FSserver1 failed - players')
|
||||
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)
|
||||
.setImage('attachment://FSStats.png');
|
||||
FSserver1?.data.slots.players.filter(x=>x.isUsed).forEach(player=>embed1.addFields({name: `${player.name} ${player.isAdmin ? '| admin' : ''}`, value: `Farming for ${client.formatPlayerUptime(player.uptime)}`}))
|
||||
interaction.reply({embeds: [embed1], files: [new client.attachmentBuilder(img.toBuffer(),{name:'FSStats.png'})]})
|
||||
},
|
||||
maintenance: ()=>{
|
||||
if (client.config.mainServer.id == interaction.guildId) {
|
||||
if (!interaction.member.roles.cache.has(client.config.mainServer.roles.mpmanager) && !interaction.member.roles.cache.has(client.config.mainServer.roles.bottech) && !interaction.member.roles.cache.has(client.config.mainServer.roles.admin)) return client.youNeedRole(interaction, 'mpmanager');
|
||||
}
|
||||
const maintenanceMessage = interaction.options.getString('message');
|
||||
const activePlayersChannel = '739084625862852715';
|
||||
const channel = (client.channels.cache.get(activePlayersChannel) as Discord.TextChannel);
|
||||
if (channel.permissionOverwrites.cache.get(interaction.guildId).deny.has('SendMessages')) {
|
||||
channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: true}, {type: 0, reason: `Unlocked by ${interaction.member.displayName}`});
|
||||
channel.send({embeds: [new client.embed().setColor(client.config.embedColor).setAuthor({name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL({size:1024})}).setTitle('🔓 Channel unlocked').setDescription(`**Reason:**\n${maintenanceMessage}`).setTimestamp()]});
|
||||
interaction.reply({content: `<#${activePlayersChannel}> has been unlocked!`, ephemeral: true});
|
||||
} else if (channel.permissionOverwrites.cache.get(interaction.guildId).allow.has('SendMessages')) {
|
||||
channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: false}, {type: 0, reason: `Locked by ${interaction.member.displayName}`});
|
||||
channel.send({embeds: [new client.embed().setColor(client.config.embedColor).setAuthor({name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL({size:1024})}).setTitle('🔒 Channel locked').setDescription(`**Reason:**\n${maintenanceMessage}`).setTimestamp()]});
|
||||
interaction.reply({content: `<#${activePlayersChannel}> has been locked!`, ephemeral: true});
|
||||
}
|
||||
}
|
||||
} as any)[interaction.options.getSubcommand()]();
|
||||
},
|
||||
data: new Discord.SlashCommandBuilder()
|
||||
.setName('mp')
|
||||
.setDescription('Display MP status and other things')
|
||||
.addSubcommand(x=>x
|
||||
.setName('status')
|
||||
.setDescription('Check server status and details')
|
||||
.addStringOption(x=>x
|
||||
.setName('server')
|
||||
.setDescription('Which server to pull info from')
|
||||
.setChoices(
|
||||
{name: 'Main Server', value: 'mainServer'},
|
||||
{name: 'Second Server', value: 'secondServer'})
|
||||
.setRequired(true)))
|
||||
.addSubcommand(x=>x
|
||||
.setName('players')
|
||||
.setDescription('Check who\'s playing on the server')
|
||||
.addStringOption(x=>x
|
||||
.setName('server')
|
||||
.setDescription('Which server to pull the info from')
|
||||
.setChoices(
|
||||
{name: 'Main Server', value: 'mainServer'},
|
||||
{name: 'Second Server', value: 'secondServer'})
|
||||
.setRequired(true)))
|
||||
.addSubcommand(x=>x
|
||||
.setName('info')
|
||||
.setDescription('Provides you with server information such as filters and so on')
|
||||
.addStringOption(x=>x
|
||||
.setName('server')
|
||||
.setDescription('Which server to pull the info from')
|
||||
.setChoices(
|
||||
{name: 'Main Server', value: 'mainServer'},
|
||||
{name: 'Second Server', value: 'secondServer'})
|
||||
.setRequired(true)))
|
||||
.addSubcommand(x=>x
|
||||
.setName('url')
|
||||
.setDescription('View the URL for this server\'s FSMP server or update the URL')
|
||||
.addStringOption(x=>x
|
||||
.setName('server')
|
||||
.setDescription('Which server to view/update the URL')
|
||||
.setChoices(
|
||||
{name: 'Main Server', value: 'mainServer'},
|
||||
{name: 'Second Server', value: 'secondServer'})
|
||||
.setRequired(true))
|
||||
.addStringOption(x=>x
|
||||
.setName('address')
|
||||
.setDescription('Insert a \'dedicated-server-stats\' URL')))
|
||||
.addSubcommand(x=>x
|
||||
.setName('maintenance')
|
||||
.setDescription('Lock/unlock "#mp-active-players" channel when server is unavailable to the public')
|
||||
.addStringOption(x=>x
|
||||
.setName('message')
|
||||
.setDescription('The reason why is the server unavailable for?')
|
||||
.setRequired(true)))
|
||||
}
|
@ -42,7 +42,6 @@ process.on('unhandledRejection', (error: Error)=>DZ(error, 'unhandledRejection')
|
||||
process.on('uncaughtException', (error: Error)=>DZ(error, 'uncaughtException'));
|
||||
process.on('error', (error: Error)=>DZ(error, 'nodeError'));
|
||||
client.on('error', (error: Error)=>DZ(error, 'clientError'));
|
||||
client.on('debug', console.log).on('warn', console.log);
|
||||
|
||||
// Audio Player event handling
|
||||
if (client.config.botSwitches.music){
|
||||
@ -67,11 +66,10 @@ if (client.config.botSwitches.music){
|
||||
}
|
||||
|
||||
// YouTube Upload notification and Daggerwin MP loop
|
||||
setInterval(async()=>{
|
||||
console.log(client.logTime(), 'MPLoop Interval')
|
||||
setInterval(()=>{
|
||||
MPLoop(client, client.config.MPStatsLocation.main.channel, client.config.MPStatsLocation.main.message, 'Daggerwin')
|
||||
MPLoop(client, client.config.MPStatsLocation.second.channel, client.config.MPStatsLocation.second.message, 'SecondServer')
|
||||
}, 30000);
|
||||
}, 60000);
|
||||
setInterval(async()=>{
|
||||
client.YTLoop('UCQ8k8yTDLITldfWYKDs3xFg', 'Daggerwin', '528967918772551702'); // 528967918772551702 = #videos-and-streams
|
||||
client.YTLoop('UCguI73--UraJpso4NizXNzA', 'Machinery Restorer', '767444045520961567') // 767444045520961567 = #machinery-restorer
|
||||
|
123
yarn.lock
123
yarn.lock
@ -44,41 +44,34 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/builders@npm:^1.6.5":
|
||||
version: 1.6.5
|
||||
resolution: "@discordjs/builders@npm:1.6.5"
|
||||
"@discordjs/builders@npm:^1.6.4":
|
||||
version: 1.6.4
|
||||
resolution: "@discordjs/builders@npm:1.6.4"
|
||||
dependencies:
|
||||
"@discordjs/formatters": ^0.3.2
|
||||
"@discordjs/util": ^1.0.1
|
||||
"@discordjs/formatters": ^0.3.1
|
||||
"@discordjs/util": ^1.0.0
|
||||
"@sapphire/shapeshift": ^3.9.2
|
||||
discord-api-types: 0.37.50
|
||||
discord-api-types: ^0.37.50
|
||||
fast-deep-equal: ^3.1.3
|
||||
ts-mixer: ^6.0.3
|
||||
tslib: ^2.6.1
|
||||
checksum: 9c5c4d483a79a7c2f73d661433365f2996ae3bc74f95b70a2a31a26b582b7327d45217a78dfe8e304737661731690ef6e34ade7575f63fe8ab61d70ca53b2279
|
||||
checksum: 059ebe77b1b955daa1c16d62679c338b34e5c8160dcc446719452b05b61fb8d5f6d7fad8dd9cb7ce2d90c2d1014031f6feedd7c71943cddf04a4e83e4fcccfe3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/collection@npm:^1.1.0":
|
||||
"@discordjs/collection@npm:^1.1.0, @discordjs/collection@npm:^1.5.2":
|
||||
version: 1.5.2
|
||||
resolution: "@discordjs/collection@npm:1.5.2"
|
||||
checksum: bf51b951c75c1622f78db4ab48382dc36ef62d264ebf3add07b4a29bef74e84ee1ca65b74e8cf3c9c16eef435dcf05c35465b32642bc7c0bac6872e226d100a7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/collection@npm:^1.5.3":
|
||||
version: 1.5.3
|
||||
resolution: "@discordjs/collection@npm:1.5.3"
|
||||
checksum: fefed19bea0f69053d195f9d9dc8af07ca5d8c9b1064581e0aa14bda2b70e632b93c164d5ef3e4910f5442369612ff4eec8d52a700aec562510c19b223f67023
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/formatters@npm:^0.3.2":
|
||||
version: 0.3.2
|
||||
resolution: "@discordjs/formatters@npm:0.3.2"
|
||||
"@discordjs/formatters@npm:^0.3.1":
|
||||
version: 0.3.1
|
||||
resolution: "@discordjs/formatters@npm:0.3.1"
|
||||
dependencies:
|
||||
discord-api-types: 0.37.50
|
||||
checksum: 653c88595fc6c25c1beedcd88b05a3f1241fef69844cc96e45f2cd34fea9ff07892c7f3b57edb4008ad59f7e62bca1b7b35400c6200b07ed42eef7189672d509
|
||||
discord-api-types: ^0.37.41
|
||||
checksum: 96355687853a203b280484419cd96a79b79b4b98f0469ec15be073862fb340cbd60ca2ea68f3d4684e17ff0e8c5f04ddcc6dd88188808e01fcbe0e3eea052d6d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -111,27 +104,27 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/rest@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "@discordjs/rest@npm:2.0.1"
|
||||
"@discordjs/rest@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "@discordjs/rest@npm:2.0.0"
|
||||
dependencies:
|
||||
"@discordjs/collection": ^1.5.3
|
||||
"@discordjs/util": ^1.0.1
|
||||
"@discordjs/collection": ^1.5.2
|
||||
"@discordjs/util": ^1.0.0
|
||||
"@sapphire/async-queue": ^1.5.0
|
||||
"@sapphire/snowflake": ^3.5.1
|
||||
"@vladfrangu/async_event_emitter": ^2.2.2
|
||||
discord-api-types: 0.37.50
|
||||
discord-api-types: ^0.37.50
|
||||
magic-bytes.js: ^1.0.15
|
||||
tslib: ^2.6.1
|
||||
undici: 5.22.1
|
||||
checksum: 36e33489293956e6356e68d69857c2ea910aa376be8c530d6aa640f5887d119d2c0abb736b427353bbdad92c534917fd38adb3a8529c87bdd010c75017ae6b27
|
||||
undici: ^5.22.1
|
||||
checksum: df610f6bce71d2b72087c8f80caad9073c72017a9b2525ee704f11510d1d39e56b0d3cf2b38a7f5f2e77740bfd6e0221e89f0d2d3bd65f318862fa8c2fd82dda
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/util@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "@discordjs/util@npm:1.0.1"
|
||||
checksum: b55d5284cd8306b0e77a303c41fa99dcc650babaf9ef2f02ea38b1f8ecc7218a7694128714343379dbf6b2a402a0851e00862c0d974ad07b8e980722f5139d73
|
||||
"@discordjs/util@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "@discordjs/util@npm:1.0.0"
|
||||
checksum: bbd800408c9ac20e9f298ea954592d674c92cbf1ec255ae5b07b2d5c444557a8580b3e95359600897db18ffc129eec5cabc37f1ba40ea6df24f2e9666a2dbc54
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -148,20 +141,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@discordjs/ws@npm:^1.0.1":
|
||||
version: 1.0.1
|
||||
resolution: "@discordjs/ws@npm:1.0.1"
|
||||
"@discordjs/ws@npm:^1.0.0":
|
||||
version: 1.0.0
|
||||
resolution: "@discordjs/ws@npm:1.0.0"
|
||||
dependencies:
|
||||
"@discordjs/collection": ^1.5.3
|
||||
"@discordjs/rest": ^2.0.1
|
||||
"@discordjs/util": ^1.0.1
|
||||
"@discordjs/collection": ^1.5.2
|
||||
"@discordjs/rest": ^2.0.0
|
||||
"@discordjs/util": ^1.0.0
|
||||
"@sapphire/async-queue": ^1.5.0
|
||||
"@types/ws": ^8.5.5
|
||||
"@vladfrangu/async_event_emitter": ^2.2.2
|
||||
discord-api-types: 0.37.50
|
||||
discord-api-types: ^0.37.50
|
||||
tslib: ^2.6.1
|
||||
ws: ^8.13.0
|
||||
checksum: d34f17646606dbac82989c3aa3fddd1e2a23da532b96f1fc130a0ddb6735079523f09a70b560b315f3e6634b6336accc48680539e4c62cf34826d79c6304778a
|
||||
checksum: 1917361918ee3e7b03661c577473157e371ff7d5d66f7f220623e79430bfb97017b0108efb87b391f95779829dc1288d0fc8d2837291b233d36a39d07f4e0dea
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -768,7 +761,7 @@ __metadata:
|
||||
axios: 1.4.0
|
||||
canvas: 2.11.2
|
||||
discord-player: 6.6.2
|
||||
discord.js: 14.13.0
|
||||
discord.js: dev
|
||||
libsodium-wrappers: 0.7.11
|
||||
moment: 2.29.4
|
||||
mongoose: 7.4.3
|
||||
@ -845,17 +838,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"discord-api-types@npm:0.37.50":
|
||||
version: 0.37.50
|
||||
resolution: "discord-api-types@npm:0.37.50"
|
||||
checksum: 08dc5145dbefda5f52b479cd42d96ac2b8110300861855e1f92cc8a0a6525a4059e32724cd5237490c286f5afd86797a86823238cd5eee016198560bb36f6d43
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"discord-api-types@npm:^0.37.37":
|
||||
version: 0.37.54
|
||||
resolution: "discord-api-types@npm:0.37.54"
|
||||
checksum: f149961be9129673a0e3764285c8f47da22a30ea3e2466db06ffad44d1823094f7011ffe2d3d89b1b5ddd9940651afc72b3a05f84ce443a59f8480e2578dd1e1
|
||||
"discord-api-types@npm:0.37.53":
|
||||
version: 0.37.53
|
||||
resolution: "discord-api-types@npm:0.37.53"
|
||||
checksum: cff6bc976f01d6c9550e48ab758cb2a2ac9042272174d4384915b830aecc4a5551f9dafe3ec21382214700b4188c766ab318179458e4e09e9df9f45a3f4902ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -876,25 +862,25 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"discord.js@npm:14.13.0":
|
||||
version: 14.13.0
|
||||
resolution: "discord.js@npm:14.13.0"
|
||||
"discord.js@npm:dev":
|
||||
version: 14.13.0-dev.1691971783-188877c50.0
|
||||
resolution: "discord.js@npm:14.13.0-dev.1691971783-188877c50.0"
|
||||
dependencies:
|
||||
"@discordjs/builders": ^1.6.5
|
||||
"@discordjs/collection": ^1.5.3
|
||||
"@discordjs/formatters": ^0.3.2
|
||||
"@discordjs/rest": ^2.0.1
|
||||
"@discordjs/util": ^1.0.1
|
||||
"@discordjs/ws": ^1.0.1
|
||||
"@discordjs/builders": ^1.6.4
|
||||
"@discordjs/collection": ^1.5.2
|
||||
"@discordjs/formatters": ^0.3.1
|
||||
"@discordjs/rest": ^2.0.0
|
||||
"@discordjs/util": ^1.0.0
|
||||
"@discordjs/ws": ^1.0.0
|
||||
"@sapphire/snowflake": ^3.5.1
|
||||
"@types/ws": ^8.5.5
|
||||
discord-api-types: 0.37.50
|
||||
discord-api-types: ^0.37.50
|
||||
fast-deep-equal: ^3.1.3
|
||||
lodash.snakecase: ^4.1.1
|
||||
tslib: ^2.6.1
|
||||
undici: 5.22.1
|
||||
undici: ^5.22.1
|
||||
ws: ^8.13.0
|
||||
checksum: c273645ac2f92a5052914261c40d04f7fbf81f8d2542f7f0ec9b2e5f9006ff7436d7c6254db924a12826b7f3b49cbfdd577807a0a4ed396036e106f39701a167
|
||||
checksum: 3e03a228ec2a87951d2fa92723325806e8a850ff3c8377d2a3ebc064f5bf04fb5bfe06b58e8b02ffd466631e7f61f044db4933af22d29a8a040c1067e89c63bd
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@ -2338,15 +2324,6 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici@npm:5.22.1":
|
||||
version: 5.22.1
|
||||
resolution: "undici@npm:5.22.1"
|
||||
dependencies:
|
||||
busboy: ^1.6.0
|
||||
checksum: 048a3365f622be44fb319316cedfaa241c59cf7f3368ae7667a12323447e1822e8cc3d00f6956c852d1478a6fde1cbbe753f49e05f2fdaed229693e716ebaf35
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"undici@npm:^5.22.1, undici@npm:^5.8.2":
|
||||
version: 5.23.0
|
||||
resolution: "undici@npm:5.23.0"
|
||||
|
Loading…
Reference in New Issue
Block a user