feat: badges
This commit is contained in:
parent
9d6e607ab5
commit
638452eb0b
|
@ -1,4 +1,4 @@
|
|||
import { Role } from '@/utils/permissions';
|
||||
import { TeamRole } from '@/utils/permissions';
|
||||
import mysql, { Pool, QueryResult } from 'mysql2/promise';
|
||||
|
||||
import crypto from 'node:crypto';
|
||||
|
@ -46,7 +46,7 @@ interface TeamMember {
|
|||
banner: string;
|
||||
accent_color: number;
|
||||
permissions: number;
|
||||
role: Role;
|
||||
role: TeamRole;
|
||||
}
|
||||
|
||||
class Database {
|
||||
|
@ -191,7 +191,7 @@ class Database {
|
|||
banner: row.banner,
|
||||
accent_color: row.accent_color,
|
||||
permissions: row.permissions,
|
||||
role: (row.role as Role),
|
||||
role: (row.role as TeamRole),
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import Database from '@/lib/Database';
|
|||
import Image from 'next/image';
|
||||
import Link from 'next/link';
|
||||
|
||||
import { Role } from '@/utils/permissions';
|
||||
import { TeamRole } from '@/utils/badges';
|
||||
|
||||
import styles from '@/styles/About.module.scss';
|
||||
import { Globe } from 'lucide-react';
|
||||
|
@ -47,8 +47,8 @@ export default function About({ teamMembers }: { teamMembers: any[] }) {
|
|||
|
||||
<h3>{member.global_name}</h3>
|
||||
|
||||
{member.role === Role.Owner && <label>Owner</label>}
|
||||
{member.role === Role.Admin && <label>Admin</label>}
|
||||
{member.role === TeamRole.Owner && <label>Owner</label>}
|
||||
{member.role === TeamRole.Admin && <label>Admin</label>}
|
||||
</div>
|
||||
</Card>
|
||||
))}
|
||||
|
|
24
utils/badges.ts
Normal file
24
utils/badges.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
export enum TeamRole {
|
||||
Owner = 'owner',
|
||||
Admin = 'admin',
|
||||
Moderator = 'mod'
|
||||
}
|
||||
|
||||
export enum Badge {
|
||||
Old = 1 << 0, // CRSS OG
|
||||
Supporter = 1 << 1, // "Donator"
|
||||
}
|
||||
|
||||
export function getBadges(badges: number): Badge[] {
|
||||
const result: Badge[] = [];
|
||||
|
||||
if ((badges & Badge.Old) === Badge.Old) {
|
||||
result.push(Badge.Old);
|
||||
}
|
||||
|
||||
if ((badges & Badge.Supporter) === Badge.Supporter) {
|
||||
result.push(Badge.Supporter);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
|
@ -4,11 +4,6 @@ export enum Permission {
|
|||
ServerPlayer = 1 << 2
|
||||
}
|
||||
|
||||
export enum Role {
|
||||
Owner = 'owner',
|
||||
Admin = 'admin',
|
||||
}
|
||||
|
||||
export function hasPermission(permissions: number, permission: Permission): boolean {
|
||||
return (permissions & permission) === permission;
|
||||
}
|
Loading…
Reference in a new issue