diff --git a/public/assets/images/media/1782918343388-1l2ffb.png b/public/assets/images/media/1782918343388-1l2ffb.png deleted file mode 100644 index 585c0831..00000000 Binary files a/public/assets/images/media/1782918343388-1l2ffb.png and /dev/null differ diff --git a/public/assets/images/media/1782918356934-ka3e9z.png b/public/assets/images/media/1782918356934-ka3e9z.png deleted file mode 100644 index a9ca5294..00000000 Binary files a/public/assets/images/media/1782918356934-ka3e9z.png and /dev/null differ diff --git a/public/assets/images/media/1782918498476-6wuch2.gif b/public/assets/images/media/1782918498476-6wuch2.gif deleted file mode 100644 index 4222eb4b..00000000 Binary files a/public/assets/images/media/1782918498476-6wuch2.gif and /dev/null differ diff --git a/public/assets/images/media/1783005975459-n09cry.png b/public/assets/images/media/1783005975459-n09cry.png new file mode 100644 index 00000000..ee6f63f6 Binary files /dev/null and b/public/assets/images/media/1783005975459-n09cry.png differ diff --git a/public/assets/images/media/1783005975752-jw2pl4.png b/public/assets/images/media/1783005975752-jw2pl4.png new file mode 100644 index 00000000..8beb9692 Binary files /dev/null and b/public/assets/images/media/1783005975752-jw2pl4.png differ diff --git a/public/assets/images/media/1783005975846-vojrxo.png b/public/assets/images/media/1783005975846-vojrxo.png new file mode 100644 index 00000000..55e4104f Binary files /dev/null and b/public/assets/images/media/1783005975846-vojrxo.png differ diff --git a/public/assets/images/media/1783005975989-79zz1o.png b/public/assets/images/media/1783005975989-79zz1o.png new file mode 100644 index 00000000..98350357 Binary files /dev/null and b/public/assets/images/media/1783005975989-79zz1o.png differ diff --git a/public/assets/images/media/1783005976088-c7mpxa.png b/public/assets/images/media/1783005976088-c7mpxa.png new file mode 100644 index 00000000..a20edd57 Binary files /dev/null and b/public/assets/images/media/1783005976088-c7mpxa.png differ diff --git a/public/assets/images/media/1783005976216-30uoee.png b/public/assets/images/media/1783005976216-30uoee.png new file mode 100644 index 00000000..0128131c Binary files /dev/null and b/public/assets/images/media/1783005976216-30uoee.png differ diff --git a/src/app/admin/badges/page.tsx b/src/app/admin/badges/page.tsx index f19d099d..2ed5c22f 100644 --- a/src/app/admin/badges/page.tsx +++ b/src/app/admin/badges/page.tsx @@ -1,6 +1,7 @@ import { giveBadge } from "@/actions/admin-badges"; import { uploadBadge } from "@/actions/admin-badge-upload"; import { prisma } from "@/lib/prisma"; +import { Award } from "lucide-react"; export const dynamic = "force-dynamic"; @@ -25,34 +26,34 @@ export default async function AdminBadges({ return (
-
-

Badges

-

- Website badge catalogue (website_badges). Granting fires the emulator - givebadge RCON command and records the badge in users_badges. -

+
+
+ +
+
+

Badges

+

Website badge catalogue.

+
+
- {uploaded ? ( -

- Uploaded Badge image{" "} - {uploaded}.gif saved. -

- ) : null} - {error ? ( -

- Error {error} -

- ) : null} -
+ {uploaded && ( +
+ Uploaded Badge image {uploaded}.gif saved. +
+ )} + {error && ( +
+ Error: {error} +
+ )}
-

Upload badge image

-

- Saves a .gif badge image to the emulator badge directory - (BADGE_UPLOAD_DIR). The file is stored as <code>.gif. +

Upload badge image

+

+ Saves a .gif badge image to the emulator badge directory.

-
-
+ +
-

Give badge to user

- -
+

Give badge to user

+ +
@@ -97,11 +98,11 @@ export default async function AdminBadges({
-

Catalogue ({badges.length})

+

Catalogue ({badges.length})

{badges.length === 0 ? ( -

No badges in the catalogue.

+
No badges in the catalogue.
) : ( -
+
@@ -118,11 +119,11 @@ export default async function AdminBadges({ {b.badgeKey} - + + + {activity.map((a) => ( + + + + + + + ))} + +
{b.badgeName}{b.badgeDescription}{b.badgeDescription} -
-

Update word filter

-

+ +

Update word filter

+

Reload the chat word filter from the database.

-
-

Update navigator

-

+ +

Update navigator

+

Reload navigator categories and room listings.

+
+ +

Disconnect / Kick

+

Force disconnect a user.

+
+ + + +
-
-

Alert user

-

Send a popup alert to a user.

- - - + +

Alert user

+

Send a popup alert to a user.

+
+ + + +
-
-

Forward to room

-

Teleport user to a room ID.

- - - + +

Forward to room

+

Teleport user to a room ID.

+
+ + + +
-
-
-

Give credits

-

Add credits to a user.

- - - +
+ +

Give credits

+

Add credits to a user.

+
+ + + +
-
-

Give duckets

-

Add duckets to a user.

- - - + +

Give duckets

+

Add duckets to a user.

+
+ + + +
-
-

Give diamonds

-

Add diamonds to a user.

- - - + +

Give diamonds

+

Add diamonds to a user.

+
+ + + +
-
-
-

Give badge

-

Give a badge code (e.g. HOF1).

- - - +
+ +

Give badge

+

Give a badge code (e.g. HOF1).

+
+ + + +
-
-

Set motto

-

Change user's motto (max 127 chars).

- - - + +

Set motto

+

Change user's motto (max 127 chars).

+
+ + + +
-
-

Set rank

-

Change user rank (0–10).

- - - + +

Set rank

+

Change user rank (0–10).

+
+ + + +
-
-
-

Execute command

-

Run a chat command as the user.

- - - +
+ +

Execute command

+

Run a chat command as the user.

+
+ + + +
-
-

Send gift

-

Send a furniture item as gift.

- - - - + +

Send gift

+

Send a furniture item as gift.

+
+ + + + +
{/* ── Staff activity ─────────────────────────────────────── */}
-

Recent staff activity

+

Recent staff activity

{activity.length === 0 ? ( -

No staff activity logged yet.

+
No staff activity logged yet.
) : ( - - - - - - - - - - - {activity.map((a) => ( - - - - - +
+
WhenStaffActionDescription
- {fromDate(a.createdAt)} - {nameById.get(Number(a.userId)) ?? `#${a.userId}`} - {a.action} - {a.description}
+ + + + + + - ))} - -
WhenStaffActionDescription
+
+ {fromDate(a.createdAt)} + {nameById.get(Number(a.userId)) ?? `#${a.userId}`} + {a.action} + {a.description}
+
)}
{/* ── Emulator errors ────────────────────────────────────── */}
-

Recent emulator errors

+

Recent emulator errors

{errors.length === 0 ? ( -

No emulator errors logged.

+
No emulator errors logged.
) : ( -
+
@@ -398,24 +427,15 @@ export default async function CommandoCentrum() { const trace = decodeStacktrace(e.stacktrace); return ( - - diff --git a/src/app/admin/email-templates/page.tsx b/src/app/admin/email-templates/page.tsx index 85ae75a6..8146c29c 100644 --- a/src/app/admin/email-templates/page.tsx +++ b/src/app/admin/email-templates/page.tsx @@ -17,37 +17,36 @@ export default async function AdminEmailTemplates() { return (
-

Email Templates

-

- Transactional email bodies. Use {"{{ placeholders }}"} in the body and list - the available ones in the variables field (comma-separated). -

+
+
+ ✉️ +
+
+

Email Templates

+

+ Transactional email bodies. Use {"{{ placeholders }}"} in the body and list + the available ones in the variables field (comma-separated). +

+
+
-

New template

-
- +

New template

+
+ - -
+ {formatTimestamp(e.timestamp)} {e.type} + {e.version} -
+                        
                           {trace || "(empty)"}