package Ġme . moe . vision alerts . services Ċ Ċ import Ġcom . gitlab . k ord lib . core . entity . Member Ċ import Ġkotlinx . coroutines . flow . toList Ċ import Ġme . j ake j mat t son . discord kt . api . annotations . Service Ċ import Ġme . moe . vision alerts . dat acl asses . Configuration Ċ Ċ enum Ġclass ĠPermission Ġ{ ĊĠĠĠ ĠBOT _ OWNER , ĊĠĠĠ ĠGU ILD _ OWNER , ĊĠĠĠ ĠST AFF , ĊĠĠĠ ĠE VERY ONE Ċ } Ċ Ċ val ĠDEFAULT _ REQUIRED _ PERMISSION Ġ= ĠPermission . STA FF Ċ Ċ @ Service Ċ class ĠPermissions Service ( private Ġval Ġconfiguration : ĠConfiguration ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġhas Clear ance ( member : ĠMember , Ġrequired Permission Level : ĠPermission ) Ġ= Ġmember . get Permission Level (). ordinal Ġ<= Ġrequired Permission Level . ordinal ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun ĠMember . get Permission Level () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Bot Owner () Ġ-> ĠPermission . BOT _ OWNER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Guild Owner () Ġ-> ĠPermission . GU ILD _ OWNER ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Staff () Ġ-> ĠPermission . STA FF ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠPermission . E VERY ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠMember . is Bot Owner () Ġ= Ġid . longValue Ġ== Ġconfiguration . owner Id ĊĠĠĠ Ġprivate Ġsuspend Ġfun ĠMember . is Guild Owner () Ġ= Ġis Owner () ĊĠĠĠ Ġprivate Ġsuspend Ġfun ĠMember . is Staff (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġconfiguration [ guild Id . longValue ] Ġ?: Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroles . toList (). any Ġ{ Ġit . id . longValue Ġ== Ġconfig . staff Role Ġ} ĊĠĠĠ Ġ} Ċ }