arcadia-admin-panel-1.4.0
Curse Maven Snippet
What's new
## [1.4.0] - 2026-10-06 (latest)
The interface release. The chest screens are gone: every panel screen is now a dashboard in the
Arcadia theme, with a navigation column listing every screen by theme, readable cards, titled
sections, a column of actions and details, and a Go to palette. Every staff role gets the tools of its rank without a node list, a tick profiler finds
what lags the server, and the release closes the compatibility gaps found by a full audit against
PlayerSync, ArcadiaBridge (both the 0.5.x line in production and 1.0) and AzLink.
### Added
- **Dashboard screens instead of chests.** Every panel screen opens as a full window in the Arcadia
copper theme. Each entry is a card with its icon, its name and the first line of its description,
in as many columns as the window allows, and the list scrolls instead of stopping at forty-five
cells. Section titles split each screen into named groups (quick actions, homes, recent teleports,
time, weather, game rules, dimensions...). The control strip of the old chest becomes a column of
actions on the right, and the back and page buttons move to the header, with the page number.
- **Navigation column.** Every screen the viewer may open is listed on the left, grouped by theme
(Players, Moderation, Server, Staff, Arcadia), with the current one highlighted; one click goes
anywhere without walking back through menus. The header reads where you are ("Moderation ›
Bans", "Players › Player: Steve"). On a narrow window the column shrinks to icons.
- **Tidier screens.** Buttons that only led to another screen are gone from Staff Tools and the
player list now that the column does that job, so each screen keeps what acts on it. Staff Tools
splits into server actions and your own switches; the Arcadia screen has one section per mod.
Every card says what it is at a glance: an arrow opens another screen, a switch shows an on/off
state, red marks a sanction or something that affects every player, and plain values are not
clickable. Each screen has a short help text, shown when nothing is hovered, and a player card
says whether the player is online or when they were last seen.
- **Details pane.** Hovering any card or button shows its whole description on the right, wrapped,
with a large icon: no more reading lore from a floating tooltip. When nothing is hovered the pane
shows the screen's summary (the player's sheet header, the server status, the performance
summary, the editor's state).
- **Search on every screen.** A search box filters the cards of the current page as you type. On
the player list it searches every player on the server when you press Enter, without leaving the
screen; the chat prompt is still there for older clients.
- **Keyboard shortcuts.** Arrows or Page Up / Page Down turn pages, Backspace goes back, Ctrl+F or
`/` focuses the search, Up / Down / Home / End scroll, Escape closes.
- **Inventory editor frame.** The inventory editor keeps real slots with drag and drop, but inside
the same frame: row names beside the grid, frame cells drawn as empty space, the tabs and the save
button in the actions column, and the admin's own inventory, which plays no part in an edit, hidden.
- **Tick profiler.** Finds what costs tick time, in the spirit of Observable, from the
Performance screen or `/arcadia_adminpanel profiler`: tick time per mod, per entity and block
entity type, per single object, per chunk and per dimension. A mod opens its types, a type opens
every object of that type, and an object or a chunk is one click from a teleport. A session lasts
20 s and measures every tick, or 60 s in light mode (one tick in four) for a busy server. Outside a
session the two probes cost one flag read per ticked object; during one, two clock reads and a map
lookup, with nothing allocated per tick. The results are grouped off the server thread and stay
available to the staff until the next run. Two buttons on top of the profiler start a session.
A 3D overlay, off by default and per staff member (profiler screen or
`/arcadia_adminpanel profiler overlay`), outlines every block entity and entity measured near you
and shows what it cost per tick, through walls. Colours are judged against the 50 ms budget of a
tick, the same in the lists and in the world: red from 0.5 ms for one object, orange from
0.15 ms, yellow from 50 µs. Red is seen from 256 blocks away, with labels that grow with
distance, orange from 96, green only up close. A living entity is followed as it moves. Only what
lies around the player is sent, and the server refreshes it when they move on.
- **Inventory editor, clearer.** Empty armour and off-hand slots show the vanilla silhouette of what
goes there, the hotbar slots carry their number, each group (bag, hotbar, worn, every Curios or
Accessories slot type) has its own band with its name beside it, and an empty slot names itself on
hover. The label cells that looked like items are gone.
- **Saved profiles.** The last 50 sessions are kept in `config/arcadia/arcadiaadminpanel/profiler/`
(compressed, around a megabyte for a large base) and listed in the profiler. Opening one makes
it the profile that staff member reads, lists and 3D overlay included, for them alone: an admin
can examine a lag spike a moderator profiled hours earlier, on site. Saving and loading run on
the profiler's own thread, never on the server thread, and the newest profile is back after a
restart.
- **Staff spectator mode.** A switch in Quick actions, or `/arcadia_adminpanel spectator`, puts a
staff member in spectator mode and back without giving them `/gamemode`: in vanilla, spectator
comes with creative. Switching back restores the previous game mode at the exact place spectator
started, so it cannot be used to travel or to enter a base. The return also happens on logout,
on server stop and after a crash. Node `arcadia.adminpanel.spectatormode`, helper by default.
- **Give items.** A browser of every item of the game and its mods, with the search players know
from JEI: `@mod`, `#tag` and words, filtered on the server only when the query changes. Names and
tooltips show in the viewer's language. Left-click gives one, right-click a stack, to yourself or
to the player whose tools you opened it from. Operator-only items are listed to operators only.
- **Summon mobs.** The same browser for every creature of the game and its mods; one or five appear
a few blocks in front of you or of the chosen player, as with `/summon`. Node
`arcadia.adminpanel.summon`, admin by default.
- **Whitelist.** Switch it on and off, add a player by name (resolved without ever blocking the
server thread on a Mojang lookup), remove one with two clicks; it is the vanilla whitelist, saved
at once. Node `arcadia.adminpanel.whitelist`, admin by default.
- **Announcements.** Write a message and an optional subtitle once, choose chat, title, action bar,
a ten-second boss bar and a sound, preview it on yourself, send it to everybody. `&` colour codes
work and the last ten announcements can be sent again.
- **Server status.** Tick rate, peak tick, players, memory, uptime, entities and chunks, refreshed
every two seconds while the screen is open. Distances can be tuned from it; with **ServerCore**
installed its dynamic settings (mob cap, chunk tick, simulation and view distance) are shown and
tuned instead, with whether its automatic tuning is on and its target tick.
- **World screens for the server's mods**, each shown only when its mod is installed and working
without it otherwise:
- **Waystones**: every waystone of the server, and for a player the ones they discovered; a click
goes there, a right-click makes them discover or forget one.
- **Warps** (FTB Essentials): go to a warp at once, create one where you stand, delete one.
- **Holograms** (Elite Holograms): every hologram with its lines; go there, create one, rewrite,
add or remove lines, move it above you or delete it.
- **FTB Chunks claim bypass**: a switch in Quick actions, for those with
`arcadia.adminpanel.chunkbypass`, without giving them `/ftbchunks admin`.
- **Whitelist and operators shared between servers.** With the Arcadia Lib database shared by
several servers, adding or removing a player on the whitelist, or making someone operator (with
their level) or taking it away, on one server applies to the others within seconds, whether it
was done from the panel or with `/whitelist`, `/op` and `/deop`. Removals are remembered, so a
server that was off while somebody lost operator does not give it back when it starts. All SQL
runs off the server thread. Config: `accessSyncWhitelist`, `accessSyncOps` (both on),
`accessSyncGroup` (servers of the same group share their lists; give an event server its own),
`accessSyncIntervalSeconds` (10). ArcadiaBridge does not sync either list.
- **LuckPerms knows every node.** All the panel's nodes are now declared to NeoForge at start-up
with a readable name, so LuckPerms completes them in commands and lists them in its web editor.
- **Staff access by role.** Every tool now has a default staff role (helper, moderator or admin,
listed in the README). A helper, moderator or admin of Arcadia Lib gets the tools of their role
without any node list; a LuckPerms node set to `true` or `false` still decides first, so an admin
can take one tool away from a group. Defaults can be changed per node with `staffRoleOverrides`,
or switched off with `staffRoleAccess`.
- **My Access.** A Staff Tools screen and `/arcadia_adminpanel access [player]` list every tool
with its default role and, for the viewer, whether it is granted and why (operator, node, role,
denied, role too low).
- **Go to (Ctrl+K).** A filterable list of every panel screen the viewer may open, from any panel
screen. The server checks access again before opening anything.
- **List view.** A button next to the search box switches the cards between a grid and a single
column, kept for the session.
- **Contextual footer.** When the hovered entry says what a click does, the footer shows it.
Click hints no longer take the card's second line, which now shows the entry's state.
- **Team Arcadia mods.** With any of Arcadia Games, Auction House, Guard, Lootbox, Pets, Prestige,
Spawn, Patch Create or Tweaks installed, Player Tools gains an Arcadia screen (games points and
rank, auction listings with a take-down, Guard zone and whitelists, lootbox openings, pet,
prestige points and grade, spawn dimension with send-to-spawn) and Staff Tools a server screen
(installed mods, start and stop a minigame, open or close the auction house, reload Guard and
Lootbox, and one button per mod that opens its own screen: Auction House, Guard zones, Lootbox
hub, Spawn lobby, Patch Create panel, Tweaks settings, Games leaderboard, Prestige statistics,
a player's pet history). Each mod is reached by reflection and read from memory only; every member used was
checked against the versions running in production and the latest ones. Two new nodes:
`arcadia.adminpanel.arcadia` (helper) to look, `arcadia.adminpanel.arcadia.manage` (moderator) to
act.
### Fixed
- **The cursor jumped to the middle of the window.** Going from one panel screen to another
closed the first one for a frame, which grabbed the mouse and released it at the centre. A
panel screen now stays open until the next one replaces it.
- **PlayerSync: the restore window was not detected.** The panel waited for PlayerSync's
`player_synced` tag, but that tag is saved in the player file, so a returning player already had
it during the whole restore. A queued backup restore could be applied and then overwritten (and
lost), and a backup or a death snapshot could record the stale file inventory. The panel now reads
PlayerSync's own completion set; without it, it assumes a one-minute window after login.
- **PlayerSync: more writes wait for the restore.** Clearing an inventory and restoring a death
snapshot are refused while PlayerSync is still loading the player, a death in that window no
longer records a snapshot, and a clear asks PlayerSync to save right away.
- **ArcadiaBridge: typed reasons and refused lines reached Discord.** Some bridge versions relay
chat events even after another mod cancelled them, so a ban reason, a note, a search or the
message of a muted player was posted in the Discord channel. With the 1.4.0 client, the answer to
a panel prompt is sent as a command and never becomes a chat message, and a muted player (or
anyone while chat is locked) has the line refused on their side, with the reason and the time
left. The server keeps enforcing everything as before.
- **ArcadiaBridge 0.5.x was not recognised.** The integration only knew the 1.0 API. The 0.5.x line
running in production is now supported too: bans, temp-bans, mutes, warns, unbans and unmutes are
mirrored to it, and its sanctions are read from a cache refreshed in the background, because its
reads query the database on the calling thread. The panel keeps its own copy of every sanction
with this generation. `/arcadia_adminpanel bridge` says which generation was found.
- **ArcadiaBridge 1.0: an unban from Discord left the player banned.** A ban routed through the
bridge was also written to the vanilla ban list, which the bridge's unban does not touch. With the
1.0 bridge the ban now lives in the bridge only, and the local copy is written only if the bridge
reports that it failed to store it.
- **ArcadiaBridge: one error disabled the integration until reboot.** A failed call now pauses the
integration for a minute instead.
- **AzLink showed vanished staff on the website.** AzLink posts the online list to the Azuriom site
every minute, straight from the server's player list, so it listed whoever was hiding. Vanished
players are now left out of that list. Website purchases are not affected.
- **Remote bans could let a player in.** A refusal issued while the connection is negotiated is not
always honoured on NeoForge 1.21.1. The same check now runs again as the first thing at login.
- **The login queue could slow PlayerSync down.** With PlayerSync installed the longest wait is
capped at 45 seconds, under the 60 seconds its connection cache lasts.
- **Staff chat swallowed the answer to a prompt.** With staff-chat mode on, the reason typed after
a ban button went to staff chat. A waiting prompt now takes the line first.
- **Every moderator could run the admin-only commands.** The command gate accepted any holder of
`arcadia.staff.mod` for every subcommand, reload, set jail and login queue included. Each command
now checks its own tool.
- **Without LuckPerms, every player counted as staff.** Arcadia Lib's lenient check answers yes to
every node while no permission backend is bound, so the staff feed (sanctions, watchlist alerts)
reached every player and the chat lock exempted everyone. The panel now reads staff roles strictly:
without a backend, only operators are staff.
- **Mute needed two permissions.** The mute button and command also demanded the moderator grade
on top of the mute node, so a helper granted the node could not use it.
- **Performance sampling allocated a string per entity.** Chunk buckets are now keyed by number and
the hottest chunks are kept with a bounded heap instead of sorting every chunk.
- **Muted players could still win Arcadia Games.** Games reads chat answers before any mute
applies. A muted or jailed player now leaves the running minigame and cannot join one.
- **Other mods could carry a jailed player out.** Jail and freeze cancel a pending Arcadia Spawn
teleport, and a jailed player is put back in jail after the respawn and first-login teleports.
- **Vanish was given away by pets and prestige particles.** Vanishing puts the Arcadia Pets
companion away and hides the Prestige particle effect, which comes back on reappearing.
- **Phantom death snapshots.** The snapshot now runs after every other handler and skips deaths
another mod cancelled (Games' arena, Guard's invincible zones).
### Changed
- **Every panel title carries the panel marker.** The player list, player sheet, warn list and
team screens used fixed titles matched in both languages; they now use the same invisible marker
as the rest. A 1.4.0 client still recognises the old titles on an older server.
- **Optional mixin configuration.** The AzLink fix is the mod's first mixin. It targets AzLink
only, by name, and applies nothing when AzLink is not installed.
### Ajouts
- **Des tableaux de bord au lieu des coffres.** Chaque écran du panel s'ouvre en pleine fenêtre
dans le thème cuivre d'Arcadia. Chaque entrée est une carte avec son icône, son nom et la première
ligne de sa description, sur autant de colonnes que la fenêtre le permet, et la liste défile au
lieu de s'arrêter à quarante-cinq cases. Des titres de section découpent chaque écran en groupes
nommés (actions rapides, homes, téléportations récentes, heure, météo, règles du jeu,
dimensions...). La bande de contrôle de l'ancien coffre devient une colonne d'actions à droite,
et les boutons retour et page passent dans l'en-tête, avec le numéro de page.
- **Colonne de navigation.** Tous les écrans que vous pouvez ouvrir sont listés à gauche, rangés
par thème (Joueurs, Modération, Serveur, Staff, Arcadia), l'écran courant en surbrillance ; un
clic mène partout sans repasser par les menus. L'en-tête dit où vous êtes (« Modération › Bans »,
« Joueurs › Player: Steve »). Sur une fenêtre étroite, la colonne se réduit aux icônes.
- **Des écrans mieux rangés.** Les boutons qui ne servaient qu'à ouvrir un autre écran quittent les
Outils staff et la liste des joueurs, puisque la colonne s'en charge : chaque écran garde ce qui
agit sur lui. Les Outils staff se séparent en actions serveur et en interrupteurs personnels ;
l'écran Arcadia a une section par mod. Chaque carte se lit d'un coup d'oeil : une flèche ouvre un
autre écran, un interrupteur montre son état, le rouge marque une sanction ou ce qui touche tous
les joueurs, et les simples valeurs ne sont pas cliquables. Chaque écran a un court texte d'aide,
affiché quand rien n'est survolé, et la carte d'un joueur dit s'il est en ligne ou depuis quand
il ne l'est plus.
- **Panneau de détails.** Survoler une carte ou un bouton affiche toute sa description à droite,
avec une grande icône : plus besoin de lire une infobulle flottante. Quand rien n'est survolé, le
panneau montre le résumé de l'écran (l'en-tête de la fiche joueur, l'état du serveur, le résumé
des performances, l'état de l'éditeur).
- **Recherche sur chaque écran.** Une barre de recherche filtre les cartes de la page en cours au
fil de la frappe. Sur la liste des joueurs, Entrée cherche parmi tous les joueurs du serveur sans
quitter l'écran ; l'invite dans le chat reste disponible pour les anciens clients.
- **Raccourcis clavier.** Flèches ou Page préc. / Page suiv. pour changer de page, Retour arrière
pour revenir, Ctrl+F ou `/` pour la recherche, Haut / Bas / Début / Fin pour défiler, Échap pour
fermer.
- **Cadre de l'éditeur d'inventaire.** L'éditeur garde de vrais emplacements avec glisser-déposer,
mais dans le même cadre : le nom des lignes à côté de la grille, les cases de cadre dessinées en
vide, les onglets et le bouton de sauvegarde dans la colonne d'actions, et l'inventaire de l'admin,
qui ne sert à rien pendant une édition, masqué.
- **Profileur de ticks.** Trouve ce qui coûte du temps de tick, dans l'esprit d'Observable,
depuis l'écran Performances ou `/arcadia_adminpanel profiler` : temps de tick par mod, par type
d'entité et de bloc-entité, par objet, par chunk et par dimension. Un mod ouvre ses types, un type
ouvre tous ses objets, et un objet ou un chunk est à un clic d'une téléportation. Une session dure
20 s et mesure chaque tick, ou 60 s en mode léger (un tick sur quatre) pour un serveur chargé. Hors
session, les deux sondes coûtent une lecture de drapeau par objet tické ; pendant une session, deux
lectures d'horloge et une recherche dans une table, sans allocation par tick. Les résultats sont
regroupés hors du thread serveur et restent disponibles pour le staff jusqu'au passage suivant.
Deux boutons en haut du profileur lancent une session. Un affichage 3D, désactivé par défaut et
propre à chaque membre du staff (écran du profileur ou `/arcadia_adminpanel profiler overlay`),
encadre chaque bloc-entité et chaque entité mesurés autour de vous et affiche leur coût par tick,
à travers les murs. Les couleurs sont jugées par rapport au budget de 50 ms d'un tick, les mêmes
dans les listes et dans le monde : rouge dès 0,5 ms pour un objet, orange dès 0,15 ms, jaune dès
50 µs. Le rouge se voit à 256 blocs, avec des étiquettes qui grossissent avec la distance, l'orange
à 96, le vert seulement de près. Une entité vivante est suivie quand elle bouge. Seul ce qui
entoure le joueur est envoyé, et le serveur le renouvelle quand il se déplace.
- **Éditeur d'inventaire plus clair.** Les cases d'armure et de seconde main vides montrent la
silhouette vanilla de ce qui va dedans, les cases de la barre rapide portent leur numéro, chaque
groupe (sac, barre rapide, équipement, chaque type d'emplacement Curios ou Accessories) a sa bande
avec son nom à côté, et une case vide dit ce qu'elle est au survol. Les cases-étiquettes qui
ressemblaient à des objets ont disparu.
- **Profils enregistrés.** Les 50 dernières sessions sont gardées dans
`config/arcadia/arcadiaadminpanel/profiler/` (compressées, environ un mégaoctet pour une grosse
base) et listées dans le profileur. En ouvrir une en fait le profil que ce membre du staff lit,
listes et affichage 3D compris, pour lui seul : un admin peut examiner sur place un lag qu'un
modérateur a profilé des heures plus tôt. L'enregistrement et la lecture tournent sur le thread du
profileur, jamais sur le thread serveur, et le dernier profil revient après un redémarrage.
- **Mode spectateur du staff.** Un interrupteur dans Actions rapides, ou
`/arcadia_adminpanel spectator`, passe un membre du staff en spectateur et l'en sort sans lui
donner `/gamemode` : en vanilla, le spectateur vient avec le créatif. Au retour, il retrouve son
mode de jeu précédent à l'endroit exact où il est passé spectateur : impossible de s'en servir
pour voyager ou entrer dans une base. Le retour a aussi lieu à la déconnexion, à l'arrêt du
serveur et après un crash. Node `arcadia.adminpanel.spectatormode`, helper par défaut.
- **Donner des objets.** Un catalogue de tous les objets du jeu et des mods, avec la recherche
connue de JEI : `@mod`, `#tag` et des mots, filtrée sur le serveur seulement quand la recherche
change. Noms et infobulles s'affichent dans la langue de chacun. Clic gauche donne un objet, clic
droit une pile, à vous ou au joueur depuis lequel vous l'avez ouvert. Les objets réservés aux
opérateurs ne sont listés qu'aux opérateurs.
- **Faire apparaître des mobs.** Le même catalogue pour toutes les créatures du jeu et des mods ; une
ou cinq apparaissent quelques blocs devant vous ou devant le joueur choisi, comme avec `/summon`.
Node `arcadia.adminpanel.summon`, admin par défaut.
- **Whitelist.** L'activer ou la couper, ajouter un joueur par pseudo (résolu sans jamais bloquer
le thread serveur sur une requête Mojang), en retirer un en deux clics ; c'est la whitelist
vanilla, enregistrée tout de suite. Node `arcadia.adminpanel.whitelist`, admin par défaut.
- **Annonces.** Écrivez un message et un sous-titre facultatif, choisissez chat, titre, barre
d'action, barre de boss de dix secondes et son, essayez-la sur vous, envoyez-la à tous. Les codes
couleur `&` marchent et les dix dernières annonces peuvent être renvoyées.
- **État du serveur.** TPS, pic de tick, joueurs, mémoire, durée en ligne, entités et chunks,
rafraîchis toutes les deux secondes tant que l'écran est ouvert. Les distances se règlent depuis
l'écran ; avec **ServerCore**, ce sont ses réglages dynamiques (limite de mobs, distance de tick,
de simulation et de vue) qui sont affichés et réglés, avec l'état de son réglage automatique et
son tick visé.
- **Écrans Monde pour les mods du serveur**, chacun affiché seulement quand son mod est installé,
le panel fonctionnant sans lui sinon :
- **Waystones** : toutes les waystones du serveur, et pour un joueur celles qu'il a découvertes ;
un clic y mène, un clic droit lui en fait découvrir ou oublier une.
- **Warps** (FTB Essentials) : aller à un warp immédiatement, en créer un là où vous êtes, en
supprimer un.
- **Hologrammes** (Elite Holograms) : tous les hologrammes avec leurs lignes ; s'y rendre, en
créer, réécrire, ajouter ou retirer des lignes, le déplacer au-dessus de vous ou le supprimer.
- **Contournement des claims FTB Chunks** : un interrupteur dans Actions rapides, pour ceux qui ont
`arcadia.adminpanel.chunkbypass`, sans leur donner `/ftbchunks admin`.
- **Whitelist et opérateurs partagés entre serveurs.** Avec la base Arcadia Lib partagée par
plusieurs serveurs, ajouter ou retirer un joueur de la whitelist, ou rendre quelqu'un opérateur
(avec son niveau) ou le lui retirer, sur un serveur s'applique aux autres en quelques secondes,
que ce soit fait depuis le panel ou avec `/whitelist`, `/op` et `/deop`. Les retraits sont
mémorisés : un serveur éteint pendant qu'un joueur perdait l'opérateur ne le lui rend pas au
démarrage. Tout le SQL tourne hors du thread serveur. Config : `accessSyncWhitelist`,
`accessSyncOps` (actifs), `accessSyncGroup` (les serveurs d'un même groupe partagent leurs listes ;
donnez son propre groupe à un serveur d'event), `accessSyncIntervalSeconds` (10). ArcadiaBridge ne
synchronise aucune des deux listes.
- **LuckPerms connaît tous les nodes.** Tous les nodes du panel sont maintenant déclarés à NeoForge
au démarrage avec un nom lisible : LuckPerms les complète dans ses commandes et les liste dans son
éditeur web.
- **Accès du staff par rôle.** Chaque outil a maintenant un rôle staff par défaut (helper,
modérateur ou admin, listés dans le README). Un helper, modérateur ou admin d'Arcadia Lib a les
outils de son rôle sans liste de nodes ; un node LuckPerms à `true` ou `false` décide toujours en
premier, un admin peut donc retirer un outil à un groupe. Les défauts se changent par node avec
`staffRoleOverrides`, ou se coupent avec `staffRoleAccess`.
- **Mes accès.** Un écran des Outils staff et `/arcadia_adminpanel access [joueur]` listent chaque
outil avec son rôle par défaut et, pour le lecteur, s'il est accordé et pourquoi (opérateur, node,
rôle, refusé, rôle insuffisant).
- **Aller à (Ctrl+K).** La liste filtrable de tous les écrans du panel que le lecteur peut ouvrir,
depuis n'importe quel écran. Le serveur revérifie l'accès avant d'ouvrir quoi que ce soit.
- **Vue liste.** Un bouton à côté de la recherche passe les cartes d'une grille à une seule
colonne, gardé pour la session.
- **Pied de page contextuel.** Quand l'élément survolé dit ce que fait un clic, le pied de page
l'affiche. Les indications de clic ne prennent plus la deuxième ligne de la carte, qui montre
maintenant l'état de l'entrée.
- **Mods Team Arcadia.** Avec Arcadia Games, Hôtel des ventes, Guard, Lootbox, Pets, Prestige,
Spawn, Patch Create ou Tweaks installé, les Outils joueur gagnent un écran Arcadia (points et
classement des jeux, annonces de vente avec retrait, zone et autorisations Guard, lootbox
ouvertes, familier, points et grade de prestige, dimension du spawn avec envoi au spawn) et les
Outils staff un écran serveur (mods installés, lancement et arrêt d'un mini-jeu, ouverture ou
fermeture de l'hôtel des ventes, rechargement de Guard et Lootbox, et un bouton par mod qui ouvre
son propre écran : hôtel des ventes, zones Guard, hub des lootbox, lobby du spawn, panneau Patch
Create, réglages Tweaks, classement des jeux, statistiques Prestige, historique des familiers
d'un joueur). Chaque mod est joint par
réflexion et lu en mémoire uniquement ; chaque membre utilisé a été vérifié contre les versions
en production et les plus récentes. Deux nouveaux nodes : `arcadia.adminpanel.arcadia` (helper)
pour consulter, `arcadia.adminpanel.arcadia.manage` (modérateur) pour agir.
### Correctifs
- **Le curseur sautait au milieu de la fenêtre.** Passer d'un écran du panel à un autre fermait
le premier pendant une image, ce qui capturait la souris puis la relâchait au centre. Un écran du
panel reste maintenant ouvert jusqu'à ce que le suivant le remplace.
- **PlayerSync : la fenêtre de restauration n'était pas détectée.** Le panel attendait le tag
`player_synced` de PlayerSync, mais ce tag est sauvegardé dans le fichier du joueur : un joueur qui
revient l'avait déjà pendant toute la restauration. Une restauration de sauvegarde en attente
pouvait être appliquée puis écrasée (donc perdue), et une sauvegarde ou un instantané de mort
pouvait enregistrer l'inventaire périmé du fichier. Le panel lit maintenant l'ensemble de
complétion de PlayerSync ; à défaut, il suppose une fenêtre d'une minute après la connexion.
- **PlayerSync : plus d'écritures attendent la restauration.** Vider un inventaire et restaurer un
instantané de mort sont refusés tant que PlayerSync charge encore le joueur, une mort pendant
cette fenêtre n'enregistre plus d'instantané, et un vidage demande à PlayerSync de sauvegarder
aussitôt.
- **ArcadiaBridge : les raisons saisies et les lignes refusées arrivaient sur Discord.** Certaines
versions du bridge relaient les messages du chat même après leur annulation par un autre mod : une
raison de ban, une note, une recherche ou le message d'un joueur muet était publié dans le salon
Discord. Avec le client 1.4.0, la réponse à une question du panel part en commande et ne devient
jamais un message de chat, et un joueur muet (ou tout le monde quand le chat est verrouillé) voit
sa ligne refusée de son côté, avec la raison et le temps restant. Le serveur continue de tout
appliquer comme avant.
- **ArcadiaBridge 0.5.x n'était pas reconnu.** L'intégration ne connaissait que l'API 1.0. La
branche 0.5.x utilisée en production est maintenant prise en charge aussi : bans, bans temporaires,
mutes, avertissements, débans et démutes lui sont transmis, et ses sanctions sont lues depuis un
cache rafraîchi en arrière-plan, car ses lectures interrogent la base sur le thread appelant. Le
panel garde sa propre copie de chaque sanction avec cette génération.
`/arcadia_adminpanel bridge` indique la génération détectée.
- **ArcadiaBridge 1.0 : un déban depuis Discord laissait le joueur banni.** Un ban transmis au
bridge était aussi écrit dans la liste de bans vanilla, que le déban du bridge ne touche pas. Avec
le bridge 1.0, le ban vit maintenant dans le bridge seul, et la copie locale n'est écrite que si le
bridge signale qu'il n'a pas pu l'enregistrer.
- **ArcadiaBridge : une erreur désactivait l'intégration jusqu'au redémarrage.** Un appel en échec
met maintenant l'intégration en pause pendant une minute.
- **AzLink affichait le staff invisible sur le site.** AzLink envoie la liste des joueurs en ligne
au site Azuriom chaque minute, directement depuis la liste du serveur, et listait donc qui se
cachait. Les joueurs en vanish sont maintenant retirés de cette liste. Les achats sur le site ne
sont pas affectés.
- **Un ban distant pouvait laisser entrer un joueur.** Un refus émis pendant la négociation de la
connexion n'est pas toujours appliqué sur NeoForge 1.21.1. La même vérification est refaite en
tout premier à la connexion.
- **La file de connexion pouvait ralentir PlayerSync.** Avec PlayerSync installé, l'attente
maximale est plafonnée à 45 secondes, sous les 60 secondes de son cache de connexion.
- **Le staff chat avalait la réponse à une question.** Avec le mode staff chat actif, la raison
saisie après un bouton de ban partait dans le staff chat. Une question en attente prend désormais
la ligne en premier.
- **Tout modérateur pouvait lancer les commandes réservées aux admins.** Le filtre des commandes
acceptait tout détenteur de `arcadia.staff.mod` pour chaque sous-commande, reload, placement de
la prison et file de connexion compris. Chaque commande vérifie maintenant son propre outil.
- **Sans LuckPerms, tous les joueurs comptaient comme staff.** La vérification souple d'Arcadia Lib
répond oui à tout node tant qu'aucun backend de permissions n'est lié : le fil staff (sanctions,
alertes de surveillance) arrivait à tous les joueurs et le verrouillage du chat exemptait tout le
monde. Le panel lit maintenant les rôles staff strictement : sans backend, seuls les opérateurs
sont staff.
- **Le mute demandait deux permissions.** Le bouton et la commande de mute exigeaient aussi le grade
modérateur en plus du node, un helper qui avait le node ne pouvait donc pas s'en servir.
- **L'échantillonnage des performances allouait une chaîne par entité.** Les compteurs par chunk
sont maintenant indexés par nombre et les chunks les plus chargés sont gardés dans un tas borné au
lieu de trier tous les chunks.
- **Un joueur muet pouvait gagner à Arcadia Games.** Games lit les réponses du chat avant tout
mute. Un joueur muet ou emprisonné quitte maintenant le mini-jeu en cours et ne peut pas en
rejoindre.
- **D'autres mods pouvaient sortir un joueur de prison.** La prison et le gel annulent une
téléportation Arcadia Spawn en attente, et un joueur emprisonné est remis en prison après les
téléportations de respawn et de première connexion.
- **L'invisibilité était trahie par les familiers et les particules.** Passer invisible range le
familier Arcadia Pets et cache l'effet de particules Prestige, qui revient à la réapparition.
- **Instantanés de mort fantômes.** L'instantané passe maintenant après tous les autres
gestionnaires et ignore les morts annulées par un autre mod (arène de Games, zones invincibles
de Guard).
### Modifications
- **Chaque titre du panel porte le marqueur du panel.** La liste des joueurs, la fiche joueur, la
liste des avertissements et les écrans d'équipes utilisaient des titres fixes reconnus dans les
deux langues ; ils utilisent maintenant le même marqueur invisible que les autres. Un client 1.4.0
reconnaît encore les anciens titres sur un serveur plus ancien.
- **Configuration mixin optionnelle.** Le correctif AzLink est le premier mixin du mod. Il ne vise
qu'AzLink, par son nom, et n'applique rien quand AzLink n'est pas installé.
This mod has no additional files

