export default function (userid: string, roles?: string[]): number {
  let permissions = 0;

  if (roles?.includes("374851061233614849")) permissions |= 1 << 0; // Administration
  if (!roles) permissions |= 1 << 1;
  if (roles?.includes("593209890949038082")) permissions |= 1 << 2; // Discord Moderator
  if (roles?.includes("391986108763996160")) permissions |= 1 << 3; // Events Team
  if (roles?.includes("607697704419852289")) permissions |= 1 << 4; // Events Team Management
  if (
    [
      "165594923586945025",
      "289372404541554689",
      "320758924850757633",
      "396347223736057866",
      "704247919259156521",
      "891710683371167795",
    ].includes(userid)
  )
    permissions |= 1 << 5;
  if (
    roles?.includes("542750631161626636") ||
    roles?.includes("542750839291248640")
  )
    permissions |= 1 << 6; // Head of Wall Moderation
  if (roles?.includes("684406593214742548")) permissions |= 1 << 7; // Head of Forum Moderation
  if (roles?.includes("784870326990405672")) permissions |= 1 << 8; // Data Team
  if (roles?.includes("298438715380858881")) permissions |= 1 << 9; // Wall Moderator
  if (roles?.includes("681632342346825879")) permissions |= 1 << 10; // Forum Moderator
  if (
    roles?.includes("321710070519955457") ||
    roles?.includes("338102086095077376")
  )
    permissions |= 1 << 11; // Head of Discord Moderation

  return permissions;
}