New water readiness system

This commit is contained in:
Skylar Grant 2023-01-27 20:57:40 -05:00
parent 431b244997
commit 0f83678bfa
3 changed files with 28 additions and 20 deletions

View File

@ -60,7 +60,7 @@ client.on('interactionCreate', async interaction => {
fn.refresh(interaction);
} else if (interaction.isButton() && interaction.component.customId == 'resetping') {
fn.resetPing(interaction);
interaction.reply({ content: "Reset water readiness detection system.", ephemeral: true });
interaction.reply({ content: "Water Readiness Detection System: [ARMED]", ephemeral: true });
}
});

View File

@ -115,8 +115,8 @@ module.exports = {
"treeChannelId": row.tree_channel_id,
"leaderboardMessageId": row.leaderboard_message_id,
"leaderboardChannelId": row.leaderboard_channel_id,
"pingRoleId": row.ping_role_id,
"pingChannelId": row.ping_channel_id,
"reminderMessage": row.ping_role_id,
"reminderChannelId": row.ping_channel_id,
"remindedStatus": row.reminded_status
};
db.end();
@ -329,12 +329,20 @@ module.exports = {
reject("Error fetching the historic 24hr tree height: " + err.message);
return;
}
const hist24hTree = {
let hist24hTree = {};
if (res.length > 0) {
hist24hTree = {
"treeName": res[0].tree_name,
"treeRank": res[0].tree_rank,
"treeHeight": res[0].tree_height,
"hasPin": res[0].has_pin
}
} else {
hist24hTree = {
}
}
db.end();
resolve({ "status": "Successfully fetched historic 24hr tree.", "data": hist24hTree });
});

View File

@ -79,7 +79,7 @@ const functions = {
const embed = new EmbedBuilder()
.setColor(strings.embeds.color)
.setTitle('Water Reminder')
.setDescription(`${content}\n[Your Tree](https://discord.com/channels/${guildInfo.guildId}/${guildInfo.treeChannelId}/${guildInfo.treeMessageId})`)
.setDescription(`${content}\n[Click Here To Go To Your Tree](https://discord.com/channels/${guildInfo.guildId}/${guildInfo.treeChannelId}/${guildInfo.treeMessageId})`)
.setFooter({text: `This message will self-destruct in 60 seconds...`});
const messageContents = { embeds: [embed] };
return messageContents;
@ -208,18 +208,18 @@ const functions = {
for (let i = leaderboard.length - 1; i >= 0; i--) {
const leaderboardEntry = leaderboard[i];
// Setup the status indicator, default to blank, we'll change it later
let statusIndicator = "``[";
if ((leaderboardEntry.treeHeight % 1).toFixed(1) > 0) statusIndicator += "💧|";
let statusIndicator = "";
if ((leaderboardEntry.treeHeight % 1).toFixed(1) > 0) statusIndicator += "``[💧]``";
// Get the data for this tree from 24 hours ago
const get24hTreeResponse = await dbfn.get24hTree(interaction.guildId, leaderboardEntry.treeName);
const dayAgoTree = get24hTreeResponse.data;
const hist24hDifference = (leaderboardEntry.treeHeight - dayAgoTree.treeHeight).toFixed(1);
statusIndicator += `+${hist24hDifference}ft|`
// const get24hTreeResponse = await dbfn.get24hTree(interaction.guildId, leaderboardEntry.treeName);
// const dayAgoTree = get24hTreeResponse.data;
// const hist24hDifference = (leaderboardEntry.treeHeight - dayAgoTree.treeHeight).toFixed(1);
// statusIndicator += `+${hist24hDifference}ft|`
// Get the 24h watering time for this tree
const totalWaterTime = await functions.timeToHeight(dayAgoTree.treeHeight, leaderboardEntry.treeHeight);
statusIndicator += `${totalWaterTime}]\`\``;
// const totalWaterTime = await functions.timeToHeight(dayAgoTree.treeHeight, leaderboardEntry.treeHeight);
// statusIndicator += `${totalWaterTime}]\`\``;
// Determine if this tree is the guild's tree
if (leaderboardEntry.hasPin) {
@ -235,7 +235,7 @@ const functions = {
}
}
// Build a string using the current leaderboard entry and the historic entry from 24 hours ago
comparisonReplyString += `\n${statusIndicator}\n`;
comparisonReplyString += `${statusIndicator}\n`;
// if (process.env.isDev == 'true') comparisonReplyString += `Current Height: ${leaderboardEntry.treeHeight} 24h Ago Height: ${dayAgoTree.treeHeight}\n`;
}
return comparisonReplyString;
@ -398,13 +398,13 @@ const functions = {
const treeMessage = await treeChannel.messages.fetch(treeMessageId);
const readyToWater = treeMessage.embeds[0].description.includes('Ready to be watered');
if (readyToWater) {
console.log("Ready to water");
// console.log("Ready to water");
this.sendReminder(guildInfo, guild);
this.sleep(5000).then(() => {
this.checkReady(client);
});
} else {
console.log("Not ready to water");
// console.log("Not ready to water");
this.sleep(5000).then(() => {
this.checkReady(client);
});