Testing new tree update detection
This commit is contained in:
parent
5f37a3e5a3
commit
27169afcf0
@ -70,5 +70,8 @@
|
|||||||
"water": "is ready to be watered again!",
|
"water": "is ready to be watered again!",
|
||||||
"fruit": "Fruit is appearing!"
|
"fruit": "Fruit is appearing!"
|
||||||
},
|
},
|
||||||
|
"ids": {
|
||||||
|
"growATree": "972637072991068220"
|
||||||
|
},
|
||||||
"temp": {}
|
"temp": {}
|
||||||
}
|
}
|
5
main.js
5
main.js
@ -86,6 +86,11 @@ client.on('interactionCreate', async interaction => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
client.on('messageUpdate', async message => {
|
||||||
|
await fn.sleep(50);
|
||||||
|
await fn.messages.updateHandler(message);
|
||||||
|
});
|
||||||
|
|
||||||
async function checkRateLimits(hi) {
|
async function checkRateLimits(hi) {
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
|
|
||||||
|
@ -153,6 +153,16 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
return queryParts.join('');
|
return queryParts.join('');
|
||||||
break;
|
break;
|
||||||
|
case "setTreeInfo":
|
||||||
|
queryParts = [
|
||||||
|
`INSERT INTO guild_info (`,
|
||||||
|
`guild_id, tree_name, tree_height`,
|
||||||
|
`) VALUES (`,
|
||||||
|
`${db.escape(this.guildId)}, ${db.escape(this.treeName)}, ${db.escape(this.treeHeight)}`,
|
||||||
|
`) ON DUPLICATE KEY UPDATE tree_name = ${db.escape(this.treeName)}, `,
|
||||||
|
`tree_height = ${db.escape(this.treeHeight)}`
|
||||||
|
];
|
||||||
|
return queryParts.join('');
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -324,7 +324,6 @@ const functions = {
|
|||||||
},
|
},
|
||||||
tree: {
|
tree: {
|
||||||
parse(interaction, guildInfo) {
|
parse(interaction, guildInfo) {
|
||||||
let input;
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (guildInfo == undefined) {
|
if (guildInfo == undefined) {
|
||||||
reject(`The guild entry hasn't been created yet. [${interaction.guildId || interaction.commandGuildId}]`);
|
reject(`The guild entry hasn't been created yet. [${interaction.guildId || interaction.commandGuildId}]`);
|
||||||
@ -337,6 +336,7 @@ const functions = {
|
|||||||
reject("This doesn't appear to be a valid ``/tree`` message.");
|
reject("This doesn't appear to be a valid ``/tree`` message.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let input;
|
||||||
input = m.embeds[0].data.description;
|
input = m.embeds[0].data.description;
|
||||||
let treeName = m.embeds[0].data.title;
|
let treeName = m.embeds[0].data.title;
|
||||||
let lines = input.split('\n');
|
let lines = input.split('\n');
|
||||||
@ -493,12 +493,61 @@ const functions = {
|
|||||||
},
|
},
|
||||||
isTree(message) {
|
isTree(message) {
|
||||||
if (message.embeds.length > 0) {
|
if (message.embeds.length > 0) {
|
||||||
return message.embeds[0].data.description.includes("Your tree is");
|
// Grab the description and title
|
||||||
|
const {description, title} = message.embeds[0].data;
|
||||||
|
// Make sure it's a tree message
|
||||||
|
if (description.includes("Your tree is")) {
|
||||||
|
// Grab the name
|
||||||
|
const treeName = title;
|
||||||
|
// Grab the tree's height
|
||||||
|
const indices = [description.indexOf("Your tree is ") + 13, description.indexOf("ft")];
|
||||||
|
const treeHeightStr = description.slice(indices[0], indices[1]);
|
||||||
|
const treeHeightFloat = parseFloat(treeHeightStr).toFixed(1);
|
||||||
|
|
||||||
|
// Return the info gathered
|
||||||
|
return {
|
||||||
|
treeName: treeName,
|
||||||
|
treeHeight: treeHeightFloat
|
||||||
|
};
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isLeaderboard(message) {
|
isLeaderboard(message) {
|
||||||
if (message.embeds.length > 0) {
|
if (message.embeds.length > 0) {
|
||||||
return message.embeds[0].data.title == "Tallest Trees";
|
return message.embeds[0].data.title == "Tallest Trees";
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async updateHandler(message) {
|
||||||
|
if (message.partial) {
|
||||||
|
message = await message.fetch();
|
||||||
|
}
|
||||||
|
// Make sure the message is from Grow A Tree
|
||||||
|
if (message.author.id != strings.ids.growATree) return;
|
||||||
|
// Check and store the message types
|
||||||
|
const isLeaderboard = this.isLeaderboard(message);
|
||||||
|
const isTree = this.isTree(message);
|
||||||
|
// Check if the message is a leaderboard
|
||||||
|
if (isLeaderboard) {
|
||||||
|
// Need to actually handle this later
|
||||||
|
// console.log("I've seen a leaderboard update.");
|
||||||
|
} else if (isTree) { // Check if the message is a tree
|
||||||
|
// console.log(`I've seen a tree update: ${isTree.treeName}: ${isTree.treeHeight}ft`);
|
||||||
|
let guildInfo;
|
||||||
|
if (message.client.guildInfos.has(message.guildId)) {
|
||||||
|
guildInfo = message.client.guildInfos.get(message.guildId);
|
||||||
|
guildInfo.setName(isTree.treeName)
|
||||||
|
.setHeight(isTree.treeHeight);
|
||||||
|
} else {
|
||||||
|
guildInfo = new GuildInfo().setId(message.guildId)
|
||||||
|
.setName(isTree.treeName)
|
||||||
|
.setHeight(isTree.treeHeight);
|
||||||
|
}
|
||||||
|
const query = guildInfo.queryBuilder("setTreeInfo");
|
||||||
|
await dbfn.setGuildInfo(query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user