From 81daf4fccfa142c54cbf17d2ef571afb61d76663 Mon Sep 17 00:00:00 2001 From: Severin Sprenger <sevisprengger@gmail.com> Date: Wed, 25 May 2022 07:50:17 +0200 Subject: [PATCH 1/3] Started to work on crafting command --- nodejs/src/commands/crafing.ts | 67 ++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 nodejs/src/commands/crafing.ts diff --git a/nodejs/src/commands/crafing.ts b/nodejs/src/commands/crafing.ts new file mode 100644 index 0000000..7635efa --- /dev/null +++ b/nodejs/src/commands/crafing.ts @@ -0,0 +1,67 @@ +import { Message, MessageEmbed, ReplyMessageOptions } from 'discord.js' +import fetch from 'node-fetch' + +//* Tested BakxY 10.03.2022 on version 1.3 + +export default { + callback: async (ctx: Message, APEX_TOKEN: string, ...args: string[]) => { + var res = await fetch('https://api.mozambiquehe.re/crafting?auth=' + APEX_TOKEN) + + if(res.status == 400) + { + ctx.reply({ + content: 'Try again in a few minutes', + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + + if(res.status == 403) + { + ctx.reply({ + content: 'Bot owner fucked up with the keys', + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + + if(res.status == 405) + { + ctx.reply({ + content: 'API error', + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + + if(res.status == 429) + { + ctx.reply({ + content: 'Reached your rate limit, try again in a few minutes', + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + + if(res.status == 500) + { + ctx.reply({ + content: 'API brok, internal error', + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + + if(res.status == 200) + { + var json = await res.json() + } + + + } +} \ No newline at end of file -- GitLab From 9593df6efd3b65be542a167f3c412dda49f1b7db Mon Sep 17 00:00:00 2001 From: Severin Sprenger <sevisprengger@gmail.com> Date: Fri, 27 May 2022 21:21:11 +0200 Subject: [PATCH 2/3] Worked on time calculation --- .../commands/{crafing.ts => apex/crafting.ts} | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) rename nodejs/src/commands/{crafing.ts => apex/crafting.ts} (50%) diff --git a/nodejs/src/commands/crafing.ts b/nodejs/src/commands/apex/crafting.ts similarity index 50% rename from nodejs/src/commands/crafing.ts rename to nodejs/src/commands/apex/crafting.ts index 7635efa..90b4cfb 100644 --- a/nodejs/src/commands/crafing.ts +++ b/nodejs/src/commands/apex/crafting.ts @@ -1,4 +1,5 @@ import { Message, MessageEmbed, ReplyMessageOptions } from 'discord.js' +import { parse } from 'dotenv'; import fetch from 'node-fetch' //* Tested BakxY 10.03.2022 on version 1.3 @@ -60,6 +61,44 @@ export default { if(res.status == 200) { var json = await res.json() + + var embedVar = new MessageEmbed() + .setColor(0xEF2AEF) + .setTitle(json[0]['bundleType'].charAt(0).toUpperCase() + json[0]['bundleType'].slice(1) + ' item ' + 'no. 1') + .setThumbnail(json[0]['bundleContent'][0]['itemType']['asset']) + .setFooter({text : 'Data from apexlegendsstatus.com'}) + .setTimestamp() + + embedVar.addField('Name: ', json[0]['bundleContent'][0]['itemType']['rarity'].replace('_', ' ') + ' ' + json[0]['bundleContent'][0]['itemType']['name'].replace('_', ' '), true) + embedVar.addField('Cost: ', json[0]['bundleContent'][0]['cost'].toString(), true) + + var timeUntilEnd = new Date(json[0]['end']) + var unixStartTime = new Date() + var timeDiffrence = timeUntilEnd.getTime() - unixStartTime.getTime() / 1000 - 10600 + + console.log((json[0]['end'] - json[0]['start'])/60/60) + + console.log(timeUntilEnd.getTime()) + console.log(unixStartTime.getTime() / 1000) + console.log(timeDiffrence) + + var timeLeft = '' + + if(timeDiffrence / 60 / 60 != 0) + { + timeLeft = (timeDiffrence / 60 / 60).toFixed() + ' h' + timeDiffrence -= parseInt((timeDiffrence / 60 / 60).toFixed()) * 60 * 60 + console.log(timeDiffrence) + } + + embedVar.addField('Until: ', timeLeft, true) + + ctx.reply({ + embeds: [embedVar], + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); } -- GitLab From c8572c9dbde4e79d3a168dd2b0c1d9b1d02bd1a9 Mon Sep 17 00:00:00 2001 From: Severin Sprenger <sevisprengger@gmail.com> Date: Sat, 28 May 2022 13:23:59 +0200 Subject: [PATCH 3/3] Finished crafing command --- nodejs/src/commands/apex/crafting.ts | 81 ++++++++++++++++------------ 1 file changed, 48 insertions(+), 33 deletions(-) diff --git a/nodejs/src/commands/apex/crafting.ts b/nodejs/src/commands/apex/crafting.ts index 90b4cfb..60dbaf1 100644 --- a/nodejs/src/commands/apex/crafting.ts +++ b/nodejs/src/commands/apex/crafting.ts @@ -2,7 +2,7 @@ import { Message, MessageEmbed, ReplyMessageOptions } from 'discord.js' import { parse } from 'dotenv'; import fetch from 'node-fetch' -//* Tested BakxY 10.03.2022 on version 1.3 +//* Tested BakxY 28.05.2022 on version 1.16 export default { callback: async (ctx: Message, APEX_TOKEN: string, ...args: string[]) => { @@ -62,43 +62,58 @@ export default { { var json = await res.json() - var embedVar = new MessageEmbed() + for(var y = 0; y < 2; y++) + { + for(var i = 0; i < 2; i++) + { + var embedVar = new MessageEmbed() .setColor(0xEF2AEF) - .setTitle(json[0]['bundleType'].charAt(0).toUpperCase() + json[0]['bundleType'].slice(1) + ' item ' + 'no. 1') - .setThumbnail(json[0]['bundleContent'][0]['itemType']['asset']) + .setTitle(json[y]['bundleType'].charAt(0).toUpperCase() + json[y]['bundleType'].slice(1) + ' item ' + 'no. ' + (i + 1)) + .setThumbnail(json[y]['bundleContent'][i]['itemType']['asset']) .setFooter({text : 'Data from apexlegendsstatus.com'}) .setTimestamp() - embedVar.addField('Name: ', json[0]['bundleContent'][0]['itemType']['rarity'].replace('_', ' ') + ' ' + json[0]['bundleContent'][0]['itemType']['name'].replace('_', ' '), true) - embedVar.addField('Cost: ', json[0]['bundleContent'][0]['cost'].toString(), true) - - var timeUntilEnd = new Date(json[0]['end']) - var unixStartTime = new Date() - var timeDiffrence = timeUntilEnd.getTime() - unixStartTime.getTime() / 1000 - 10600 - - console.log((json[0]['end'] - json[0]['start'])/60/60) - - console.log(timeUntilEnd.getTime()) - console.log(unixStartTime.getTime() / 1000) - console.log(timeDiffrence) - - var timeLeft = '' - - if(timeDiffrence / 60 / 60 != 0) - { - timeLeft = (timeDiffrence / 60 / 60).toFixed() + ' h' - timeDiffrence -= parseInt((timeDiffrence / 60 / 60).toFixed()) * 60 * 60 - console.log(timeDiffrence) - } - - embedVar.addField('Until: ', timeLeft, true) - - ctx.reply({ - embeds: [embedVar], - allowedMentions:{ - repliedUser: false + embedVar.addField('Name: ', json[y]['bundleContent'][i]['itemType']['name'].replaceAll('_', ' ').charAt(0).toUpperCase() + json[y]['bundleContent'][i]['itemType']['name'].replaceAll('_', ' ').slice(1), true) + embedVar.addField('Cost: ', json[y]['bundleContent'][i]['cost'].toString(), true) + + var timeUntilEnd = new Date(json[y]['end'] * 1000) + var unixStartTime = new Date() + + var timeLeft = '' + + if(7 - unixStartTime.getDay() - timeUntilEnd.getDay() > 0) + { + timeLeft += 7 - timeUntilEnd.getDay() - unixStartTime.getDay() + ' days ' + } + if(timeUntilEnd.getHours() - unixStartTime.getHours() - 3 > 0) + { + timeLeft += (timeUntilEnd.getHours() - unixStartTime.getHours() - 3) + ' hours ' + } + if(unixStartTime.getMinutes() - timeUntilEnd.getMinutes() > 0) + { + timeLeft += 60 - (unixStartTime.getMinutes() - timeUntilEnd.getMinutes()) + ' min ' + } + + embedVar.addField('Until: ', timeLeft, true) + + if(y == 0 && i == 0) + { + ctx.reply({ + embeds: [embedVar], + allowedMentions:{ + repliedUser: false + } + } as ReplyMessageOptions); + } + else + { + ctx.channel.send({ + embeds: [embedVar], + } as ReplyMessageOptions); + } + } - } as ReplyMessageOptions); + } } -- GitLab