WIP: handle update of user, determine changed roles and hand over to JF
This commit is contained in:
parent
b17d0144df
commit
4ff8c83cdf
@ -1,12 +1,39 @@
|
|||||||
import { GuildMember } from "discord.js"
|
import { Collection, GuildMember } from "discord.js"
|
||||||
|
import { filterRolesFromMemberUpdate } from "../helper/roleFilter"
|
||||||
|
import { ChangedRoles, PermissionLevel } from "../interfaces"
|
||||||
|
import ar from "date-fns/locale/ar"
|
||||||
|
import { jellyfinHandler } from "../.."
|
||||||
|
|
||||||
export const name = 'guildMemberUpdate'
|
export const name = 'guildMemberUpdate'
|
||||||
export async function execute(oldMember: GuildMember, newMember: GuildMember) {
|
export async function execute(oldMember: GuildMember, newMember: GuildMember) {
|
||||||
try {
|
try {
|
||||||
console.log(`User ${oldMember.displayName} has been updated`)
|
|
||||||
console.log(`OldRoles: ${JSON.stringify(oldMember.roles.cache.map(x => x.name))}`)
|
const changedRoles: ChangedRoles = filterRolesFromMemberUpdate(oldMember, newMember)
|
||||||
console.log(`NewRoles: ${JSON.stringify(newMember.roles.cache.map(x => x.name))}`)
|
const triggerRoleIds: Collection<string, PermissionLevel> = getGuildSpecificTriggerRoleId(oldMember.guild.id)
|
||||||
|
|
||||||
|
triggerRoleIds.forEach((level, key) => {
|
||||||
|
const addedRoleMatches = changedRoles.addedRoles.find(aRole => aRole.id === key)
|
||||||
|
if (addedRoleMatches) {
|
||||||
|
jellyfinHandler.upsertUser(newMember, level)
|
||||||
|
}
|
||||||
|
const removedRoleMatches = changedRoles.removedRoles.find(rRole => rRole.id === key)
|
||||||
|
if (removedRoleMatches) {
|
||||||
|
jellyfinHandler.removeUser(newMember)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getGuildSpecificTriggerRoleId(id: string): Collection<string, PermissionLevel> {
|
||||||
|
const outVal = new Collection<string, PermissionLevel>()
|
||||||
|
outVal.set('1096819983889215659', "VIEWER")
|
||||||
|
outVal.set('1097990848613986526', "ADMIN")
|
||||||
|
return outVal
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user