From 5482146da4c0db1ddab84ddc65f55a75d4251344 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:04:23 +0200 Subject: Member Function addRole --- src/util/Member.ts | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index 2be9686e..2a5bab72 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -4,10 +4,13 @@ import { GuildDeleteEvent, GuildMemberAddEvent, GuildMemberRemoveEvent, + GuildMemberUpdateEvent, GuildModel, MemberModel, + RoleModel, UserModel, } from "@fosscord/server-util"; +import { response } from "express"; import { HTTPError } from "lambert-server"; import Config from "./Config"; import { emitEvent } from "./Event"; @@ -107,13 +110,36 @@ export async function removeMember(user_id: string, guild_id: string) { }, user_id: user_id, } as GuildDeleteEvent), - emitEvent({ - event: "GUILD_MEMBER_REMOVE", - data: { - guild_id: guild_id, - user: user, - }, - guild_id: guild_id, - } as GuildMemberRemoveEvent), ]); } + +export async function addRole(user_id: string, guild_id: string, role_id: string) { + const user = await getPublicUser(user_id); + + const guild = await GuildModel.findOne({ id: guild_id }).exec(); + if (!guild) throw new HTTPError("Guild not found", 404); + + const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec(); + if (!role) throw new HTTPError("role not found", 404); + + var memberObj = await MemberModel.findOneAndUpdate({ + id: user_id, + guild_id: guild_id, + }, { $push: { roles: role_id } }).exec(); + + if(!memberObj) throw new Error("Internal server error"); + + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id: guild_id, + user: user, + roles: memberObj.roles + + }, + user_id: user_id, + } as GuildMemberUpdateEvent); + +} + + -- cgit 1.5.1 From 9870db2841097c4538a32002d6d0377aa4cb25f9 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:04:48 +0200 Subject: Update Member.ts --- src/util/Member.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index 2a5bab72..fa1d3a27 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -142,4 +142,33 @@ export async function addRole(user_id: string, guild_id: string, role_id: string } +export async function removeRole(user_id: string, guild_id: string, role_id: string) { + const user = await getPublicUser(user_id); + + const guild = await GuildModel.findOne({ id: guild_id }).exec(); + if (!guild) throw new HTTPError("Guild not found", 404); + + const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec(); + if (!role) throw new HTTPError("role not found", 404); + + var memberObj = await MemberModel.findOneAndUpdate({ + id: user_id, + guild_id: guild_id, + }, { $pull: { roles: role_id } }).exec(); + + if(!memberObj) throw new Error("Internal server error"); + + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id: guild_id, + user: user, + roles: memberObj.roles + + }, + user_id: user_id, + } as GuildMemberUpdateEvent); + +} + -- cgit 1.5.1 From 08e38f005ee2e2fee5491ce5831ee16aa03fca53 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:06:13 +0200 Subject: Update Member.ts --- src/util/Member.ts | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index fa1d3a27..c900a49b 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -110,6 +110,14 @@ export async function removeMember(user_id: string, guild_id: string) { }, user_id: user_id, } as GuildDeleteEvent), + emitEvent({ + event: "GUILD_MEMBER_REMOVE", + data: { + guild_id: guild_id, + user: user, + }, + guild_id: guild_id, + } as GuildMemberRemoveEvent), ]); } -- cgit 1.5.1 From ffb3adbacd0882b09bb206d34bf24dcb28bb2a2b Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:07:45 +0200 Subject: Update Member.ts --- src/util/Member.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index c900a49b..15520a21 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -137,7 +137,7 @@ export async function addRole(user_id: string, guild_id: string, role_id: string if(!memberObj) throw new Error("Internal server error"); - emitEvent({ + await emitEvent({ event: "GUILD_MEMBER_UPDATE", data: { guild_id: guild_id, @@ -166,7 +166,7 @@ export async function removeRole(user_id: string, guild_id: string, role_id: str if(!memberObj) throw new Error("Internal server error"); - emitEvent({ + await emitEvent({ event: "GUILD_MEMBER_UPDATE", data: { guild_id: guild_id, -- cgit 1.5.1 From f5bcde72c6d846e892421eddf933ff3711538296 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:09:59 +0200 Subject: Update Member.ts --- src/util/Member.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index 15520a21..bf48f993 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -124,9 +124,6 @@ export async function removeMember(user_id: string, guild_id: string) { export async function addRole(user_id: string, guild_id: string, role_id: string) { const user = await getPublicUser(user_id); - const guild = await GuildModel.findOne({ id: guild_id }).exec(); - if (!guild) throw new HTTPError("Guild not found", 404); - const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec(); if (!role) throw new HTTPError("role not found", 404); @@ -135,7 +132,7 @@ export async function addRole(user_id: string, guild_id: string, role_id: string guild_id: guild_id, }, { $push: { roles: role_id } }).exec(); - if(!memberObj) throw new Error("Internal server error"); + if(!memberObj) throw new HTTPError("Member not found", 404); await emitEvent({ event: "GUILD_MEMBER_UPDATE", @@ -153,9 +150,6 @@ export async function addRole(user_id: string, guild_id: string, role_id: string export async function removeRole(user_id: string, guild_id: string, role_id: string) { const user = await getPublicUser(user_id); - const guild = await GuildModel.findOne({ id: guild_id }).exec(); - if (!guild) throw new HTTPError("Guild not found", 404); - const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec(); if (!role) throw new HTTPError("role not found", 404); @@ -164,7 +158,7 @@ export async function removeRole(user_id: string, guild_id: string, role_id: str guild_id: guild_id, }, { $pull: { roles: role_id } }).exec(); - if(!memberObj) throw new Error("Internal server error"); + if(!memberObj) throw new HTTPError("Member not found", 404); await emitEvent({ event: "GUILD_MEMBER_UPDATE", -- cgit 1.5.1 From f15e339611dd2884d19f377d7cebe6bc4a7e2973 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:10:30 +0200 Subject: Update Member.ts --- src/util/Member.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index bf48f993..fca3de95 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -132,7 +132,7 @@ export async function addRole(user_id: string, guild_id: string, role_id: string guild_id: guild_id, }, { $push: { roles: role_id } }).exec(); - if(!memberObj) throw new HTTPError("Member not found", 404); + if(!memberObj) throw new HTTPError("Member not found", 404); await emitEvent({ event: "GUILD_MEMBER_UPDATE", @@ -142,7 +142,7 @@ export async function addRole(user_id: string, guild_id: string, role_id: string roles: memberObj.roles }, - user_id: user_id, + guild_id: guild_id, } as GuildMemberUpdateEvent); } @@ -168,7 +168,7 @@ export async function removeRole(user_id: string, guild_id: string, role_id: str roles: memberObj.roles }, - user_id: user_id, + guild_id: guild_id, } as GuildMemberUpdateEvent); } -- cgit 1.5.1 From 94c1f9f74b86849c162496259278f3d1fc875418 Mon Sep 17 00:00:00 2001 From: Intevel ツ <59223342+Intevel@users.noreply.github.com> Date: Sat, 8 May 2021 13:49:22 +0200 Subject: Update Member.ts --- src/util/Member.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/util/Member.ts') diff --git a/src/util/Member.ts b/src/util/Member.ts index fca3de95..1a66b60e 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -173,4 +173,27 @@ export async function removeRole(user_id: string, guild_id: string, role_id: str } +export async function changeNickname(user_id: string, guild_id: string, nickname: string) { + const user = await getPublicUser(user_id); + + var memberObj = await MemberModel.findOneAndUpdate({ + id: user_id, + guild_id: guild_id, + }, { nick: nickname } ).exec(); + + if(!memberObj) throw new HTTPError("Member not found", 404); + + await emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id: guild_id, + user: user, + nick: nickname + + }, + guild_id: guild_id, + } as GuildMemberUpdateEvent); + +} + -- cgit 1.5.1