mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 20:35:02 +00:00
Add ReactionRoles plugin
This commit is contained in:
parent
92e5282b70
commit
c0614f2470
6 changed files with 271 additions and 1 deletions
59
src/data/GuildReactionRoles.ts
Normal file
59
src/data/GuildReactionRoles.ts
Normal file
|
@ -0,0 +1,59 @@
|
|||
import knex from "../knex";
|
||||
import ReactionRole from "../models/ReactionRole";
|
||||
|
||||
export class GuildReactionRoles {
|
||||
protected guildId: string;
|
||||
|
||||
constructor(guildId) {
|
||||
this.guildId = guildId;
|
||||
}
|
||||
|
||||
async all(): Promise<ReactionRole[]> {
|
||||
const results = await knex("reaction_roles")
|
||||
.where("guild_id", this.guildId)
|
||||
.select();
|
||||
|
||||
return results.map(r => new ReactionRole(r));
|
||||
}
|
||||
|
||||
async getForMessage(messageId: string): Promise<ReactionRole[]> {
|
||||
const results = await knex("reaction_roles")
|
||||
.where("guild_id", this.guildId)
|
||||
.where("message_id", messageId)
|
||||
.select();
|
||||
|
||||
return results.map(r => new ReactionRole(r));
|
||||
}
|
||||
|
||||
async getByMessageAndEmoji(messageId: string, emoji: string): Promise<ReactionRole> {
|
||||
const result = await knex("reaction_roles")
|
||||
.where("guild_id", this.guildId)
|
||||
.where("message_id", messageId)
|
||||
.where("emoji", emoji)
|
||||
.first();
|
||||
|
||||
return result ? new ReactionRole(result) : null;
|
||||
}
|
||||
|
||||
async removeFromMessage(messageId: string, emoji: string = null) {
|
||||
let query = knex("reaction_roles")
|
||||
.where("guild_id", this.guildId)
|
||||
.where("message_id", messageId);
|
||||
|
||||
if (emoji) {
|
||||
query = query.where("emoji", emoji);
|
||||
}
|
||||
|
||||
await query.delete();
|
||||
}
|
||||
|
||||
async add(channelId: string, messageId: string, emoji: string, roleId: string) {
|
||||
await knex("reaction_roles").insert({
|
||||
guild_id: this.guildId,
|
||||
channel_id: channelId,
|
||||
message_id: messageId,
|
||||
emoji,
|
||||
role_id: roleId
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue