124 lines
5.0 KiB
JavaScript
124 lines
5.0 KiB
JavaScript
const GuildInfo = class {
|
|
constructor() {
|
|
this.guildId = "";
|
|
this.treeName = "";
|
|
this.treeHeight = 0;
|
|
this.treeMessageId = "";
|
|
this.treeChannelId = "";
|
|
this.leaderboardMessageId = "";
|
|
this.leaderboardChannelId = "";
|
|
this.waterMessage = "";
|
|
this.fruitMessage = "";
|
|
this.reminderChannelId = "";
|
|
this.watchChannelId = "";
|
|
}
|
|
|
|
setId(id) {
|
|
this.guildId = id;
|
|
return this;
|
|
}
|
|
setName(name) {
|
|
this.treeName = name;
|
|
return this;
|
|
}
|
|
setHeight(height) {
|
|
this.treeHeight = height;
|
|
return this;
|
|
}
|
|
setTreeMessage(messageId, channelId) {
|
|
this.treeMessageId = messageId;
|
|
this.treeChannelId = channelId;
|
|
return this;
|
|
}
|
|
setLeaderboardMessage(messageId, channelId) {
|
|
this.leaderboardMessageId = messageId;
|
|
this.leaderboardChannelId = channelId;
|
|
return this;
|
|
}
|
|
setReminders(waterMessage, fruitMessage, reminderChannelId, watchChannelId) {
|
|
this.waterMessage = waterMessage;
|
|
this.fruitMessage = fruitMessage;
|
|
this.reminderChannelId = reminderChannelId;
|
|
this.watchChannelId = watchChannelId;
|
|
return this;
|
|
}
|
|
queryBuilder(query) {
|
|
let queryParts = [];
|
|
switch (query) {
|
|
case "setAll":
|
|
queryParts = [
|
|
`INSERT INTO guild_info `,
|
|
`(guild_id, `,
|
|
`tree_name, `,
|
|
`tree_height, `,
|
|
`tree_message_id, `,
|
|
`tree_channel_id, `,
|
|
`leaderboard_message_id, `,
|
|
`leaderboard_channel_id, `,
|
|
`water_message, `,
|
|
`fruit_message, `,
|
|
`reminder_channel_id, `,
|
|
`watch_channel_id) `,
|
|
`VALUES (${db.escape(this.guildId)}, `,
|
|
`${db.escape(this.treeName)}, `,
|
|
`${db.escape(this.treeHeight)}, `,
|
|
`${db.escape(this.treeMessageId)}, `,
|
|
`${db.escape(this.treeChannelId)}, `,
|
|
`${db.escape(this.leaderboardMessageId)}, `,
|
|
`${db.escape(this.leaderboardChannelId)}, `,
|
|
`${db.escape(this.waterMessage)}, `,
|
|
`${db.escape(this.fruitMessage)}, `,
|
|
`${db.escape(this.reminderChannelId)}, `,
|
|
`${db.escape(this.watchChannelId)}) `,
|
|
`ON DUPLICATE KEY UPDATE tree_name = ${db.escape(this.treeName)}, `,
|
|
`tree_height = ${db.escape(this.treeHeight)}, `,
|
|
`tree_message_id = ${db.escape(this.treeMessageId)}, `,
|
|
`tree_channel_id = ${db.escape(this.treeChannelId)}, `,
|
|
`leaderboard_message_id = ${db.escape(this.leaderboardMessageId)}, `,
|
|
`leaderboard_channel_id = ${db.escape(this.leaderboardChannelId)}, `,
|
|
`water_message = ${db.escape(this.waterMessage)}, `,
|
|
`fruit_message = ${db.escape(this.fruitMessage)}, `,
|
|
`reminder_channel_id = ${db.escape(this.reminderChannelId)}, `,
|
|
`watch_channel_id = ${db.escape(this.watchChannelId)})`
|
|
];
|
|
return queryParts.join();
|
|
break;
|
|
case "setReminders":
|
|
queryParts = [
|
|
`UPDATE guildInfo SET water_message = ${db.escape(this.waterMessage)}, `,
|
|
`fruit_message = ${db.escape(this.fruitMessage)}, `,
|
|
`reminder_channel_id = ${db.escape(this.reminderChannelId)}, `,
|
|
`watch_channel_id = ${db.escape(this.watchChannelId)} `,
|
|
`WHERE guild_id = ${db.escape(this.guildId)}`
|
|
];
|
|
return queryParts.join();
|
|
break;
|
|
case "setTreeMessage":
|
|
queryParts = [
|
|
`UPDATE guildInfo SET tree_message_id = ${db.escape(this.treeMessageId)}, `,
|
|
`tree_channel_id = ${db.escape(this.treeChannelId)}, `,
|
|
`WHERE guild_id = ${db.escape(this.guildId)}`
|
|
];
|
|
return queryParts.join();
|
|
break;
|
|
case "setLeaderboardMessage":
|
|
queryParts = [
|
|
`UPDATE guildInfo SET leaderboard_message_id = ${db.escape(this.leaderboardMessageId)}, `,
|
|
`leaderboard_channel_id = ${db.escape(this.leaderboardChannelId)}, `,
|
|
`WHERE guild_id = ${db.escape(this.guildId)}`
|
|
];
|
|
return queryParts.join();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
new GuildInfo()
|
|
.setId(row.guild_id)
|
|
.setName(row.tree_name)
|
|
.setHeight(row.tree_height)
|
|
.setTreeMessage(row.tree_message_id, row.tree_channel_id)
|
|
.setLeaderboardMessage(row.leaderboard_message_id, row.leaderboard_channel_id)
|
|
.setReminders(row.water_message, row.fruit_message, row.reminder_channel_id); |