Permissions

Toutes les permissions VoxelBench sont réservées aux OP par défaut, sauf voxelbench.lang. Utilisez un plugin de permissions (LuckPerms, PermissionsEx, etc.) pour accorder l'accès aux joueurs non-OP.

Comment les permissions sont vérifiées

  • voxelbench.use est requise pour toute commande /bench. Sans elle, rien d'autre ne fonctionne, pas même /bench lang.
  • La plupart des commandes exigent en plus leur propre permission, listée plus bas. Chaque test a aussi son propre nœud (voir Permissions de tests).
  • L'autocomplétion ne propose que les commandes, sous-commandes et tests que vous avez le droit d'exécuter.
  • Les boutons des interfaces exécutent les commandes correspondantes : ils sont donc vérifiés de la même façon. Certains écrans vérifient aussi une permission à leur ouverture (voir Écrans de l'interface).
  • Les opérateurs, et les joueurs qui ont *, possèdent toutes les permissions.
  • L'agent d'auto-bench envoie /vbautobot, qui ne vérifie aucune permission : le code à usage unique validé par voxelbench.com fait office d'autorisation. Son autre forme, /bench autobot, exige toujours voxelbench.use, comme toute commande /bench, et rien de plus.

Nœuds de permission

PermissionDéfautDonne accès à
voxelbench.useOP/bench ; seule, aux commandes marquées « voxelbench.use uniquement »
voxelbench.startOP/bench start ; aussi /bench custom
voxelbench.start.forceOPL'option force de /bench start, /bench stresslimit et /bench custom run (ignorer le cooldown), et le bouton Force start de l'écran de vérifications préalables
voxelbench.stopOP/bench stop et /bench cancel
voxelbench.guiOP/bench gui
voxelbench.settingsOPL'écran des réglages de l'interface, qui modifie benchmark-mode et le niveau d'anonymisation dans config.yml
voxelbench.infoOP/bench info
voxelbench.reportsOP/bench reports
voxelbench.stresslimitOP/bench stresslimit, et le lancement d'un profil de stress limit avec /bench custom run
voxelbench.tierOP/bench tier
voxelbench.reloadOP/bench reload et /bench custom reload
voxelbench.linkOP/bench link et /bench link force
voxelbench.verifyOP/bench verify
voxelbench.worldOP/bench world, /bench zones tp et /bench zones clean (qui ne retire d'entités que dans les mondes voxelbench_*)
voxelbench.customOP/bench custom
voxelbench.profileOP/bench profile (profileur expérimental) : captures, tampon circulaire, profils enregistrés, et les écrans Profileur et Rapports → Profils du menu. Les profils nomment les classes de tous vos plugins
voxelbench.profile.uploadOP/bench profile upload : envoyer un profil enregistré au compte voxelbench.com du serveur, tout de suite ou après un aperçu et une confirmation. Exigé en plus de voxelbench.profile, qui ne l'accorde pas
voxelbench.profile.shareOP/bench profile share / unshare : publier une copie nettoyée d'un profil enregistré derrière un lien public non listé (sans compte, 7 jours), tout de suite ou après un aperçu et une confirmation, et supprimer ce lien. Exigé en plus de voxelbench.profile ; ni lui ni voxelbench.profile.upload ne l'accordent
voxelbench.memoryOP/bench memory (inspection mémoire expérimentale) : résumés du tas, qui forcent un GC complet (un bref gel du serveur) et nomment les classes de tous les plugins installés ; lister, réafficher et supprimer les résumés du tas et les analyses de vidages ; et les écrans Mémoire et Rapports → Mémoire du menu
voxelbench.memory.dumpOP/bench memory dump : écrire un vidage complet du tas, après un aperçu et une confirmation. Il fige tout le serveur et le fichier contient tout ce qui est en mémoire (jetons, mots de passe, données des joueurs). Aussi /bench memory analyze (lancer ou annuler l'analyse d'un vidage, dans un processus Java séparé qui peut prendre des gigaoctets de mémoire ; le bouton du menu aussi) : l'analyse lit ce même fichier. Exigé en plus de voxelbench.memory, qui ne l'accorde pas, et accordé par aucun autre nœud
voxelbench.memory.uploadOP/bench memory upload : envoyer un résumé du tas ou une analyse de vidage enregistré au compte voxelbench.com du serveur (jamais un vidage du tas), tout de suite ou après un aperçu et une confirmation ; aussi le verbe upload après summary, analyze et dump … analyze. Exigé en plus de voxelbench.memory, qui ne l'accorde pas, et accordé par aucun autre nœud
voxelbench.memory.shareOP/bench memory share / unshare : publier une copie nettoyée d'un résumé ou d'une analyse enregistré derrière un lien public non listé (sans compte, 7 jours), et supprimer ce lien ; aussi le verbe share après summary, analyze et dump … analyze. Exigé en plus de voxelbench.memory ; ni lui ni voxelbench.memory.upload ne l'accordent
voxelbench.langTous/bench lang (nécessite toujours voxelbench.use)
voxelbench.testOPTous les tests intégrés ; inclut .test.hardware, .test.gameplay et .test.singlecore
voxelbench.monitorOPTout /bench monitor ; inclut .monitor.bars et .monitor.web
voxelbench.monitor.barsOPMonitoring par boss bars
voxelbench.monitor.webOPTableau de bord web, mode push, monitoring distant vers voxelbench.com, authentification du tableau de bord, whitelist IP et HTTPS
voxelbench.adminOPNotifications de mise à jour en jeu (voir update-check dans Configuration)

Permissions des commandes

Chaque commande exige voxelbench.use, plus :

CommandePermission supplémentaire
/bench help, version, status, tps, mspt, pingAucune (voxelbench.use uniquement)
/bench zones (liste)Aucune (voxelbench.use uniquement)
/bench zones tp, /bench zones cleanvoxelbench.world
/bench startvoxelbench.start ; l'option force nécessite aussi voxelbench.start.force
/bench stop, /bench cancelvoxelbench.stop, y compris pour arrêter un test que vous avez lancé vous-même
/bench guivoxelbench.gui
/bench infovoxelbench.info
/bench reportsvoxelbench.reports
/bench stresslimitvoxelbench.stresslimit ; force nécessite aussi voxelbench.start.force
/bench tiervoxelbench.tier
/bench reloadvoxelbench.reload
/bench link, /bench link forcevoxelbench.link
/bench verifyvoxelbench.verify
/bench worldvoxelbench.world
/bench customvoxelbench.custom ou voxelbench.start ; /bench custom reload nécessite aussi voxelbench.reload, et /bench custom run d'un profil de stress limit nécessite aussi voxelbench.stresslimit
/bench langvoxelbench.lang
/bench profile (toutes ses autres sous-commandes)voxelbench.profile
/bench profile uploadvoxelbench.profile et voxelbench.profile.upload
/bench profile share, /bench profile unsharevoxelbench.profile et voxelbench.profile.share
/bench memory (toute autre sous-commande)voxelbench.memory
/bench memory dump (et dump list, dump delete, dump … analyze)voxelbench.memory et voxelbench.memory.dump
/bench memory analyze [<vidage>] [mode], analyze cancelvoxelbench.memory et voxelbench.memory.dump
/bench memory analyze list, show, deletevoxelbench.memory
/bench memory upload (alias send), et le verbe upload après summary, analyze ou dump … analyzevoxelbench.memory et voxelbench.memory.upload (plus voxelbench.memory.dump pour analyze et dump)
/bench memory share, /bench memory unshare, et le verbe share après summary, analyze ou dump … analyzevoxelbench.memory et voxelbench.memory.share (plus voxelbench.memory.dump pour analyze et dump)
/bench monitorVoir Permissions de monitoring
/bench test (liste)Aucune (voxelbench.use uniquement)
/bench test <id>Le nœud de ce test, voir Permissions de tests

Sans voxelbench.world, /bench zones liste toujours les zones, mais masque les liens de téléportation et les lignes d'aide de tp et clean. La ligne de clean n'apparaît que lorsque les zones se trouvent dans un monde voxelbench_*, les seuls où clean retire quelque chose.

Sans voxelbench.stresslimit, les profils de stress limit ne sont pas proposés : l'autocomplétion de /bench custom run, l'écran des profils personnalisés et la liste des profils disponibles affichée après un nom inconnu les laissent de côté. /bench custom list et info montrent toujours tous les profils.

Permissions de monitoring

Détenir une seule des permissions voxelbench.monitor, voxelbench.monitor.bars ou voxelbench.monitor.web ouvre l'espace de monitoring ; chaque partie exige ensuite son propre nœud :

CommandeNécessite l'une de
/bench monitor, monitor status, monitor gui, monitor helpvoxelbench.monitor, voxelbench.monitor.bars, voxelbench.monitor.web
/bench monitor bars ...voxelbench.monitor.bars
/bench monitor web ..., push ..., remote ..., auth ..., whitelist ..., https ...voxelbench.monitor.web
/bench monitor reloadvoxelbench.monitor
  • /bench monitor sans argument ouvre l'écran des boss bars pour les joueurs qui ont voxelbench.monitor.bars ; pour les autres, il affiche l'état.
  • voxelbench.monitor.web couvre tout ce qui expose les métriques hors du jeu : le serveur HTTP, le mode push, les clés d'API, la whitelist IP et les certificats.
  • voxelbench.monitor accorde les deux nœuds enfants, et c'est le seul nœud qui permet /bench monitor reload, car cette commande recharge toute la configuration du plugin.

Écrans de l'interface

Ces écrans vérifient une permission à leur ouverture, quel que soit le chemin pour y arriver :

ÉcranNécessite
Menu principal (/bench gui)voxelbench.gui
Réglagesvoxelbench.settings (ses deux boutons qui écrivent config.yml la revérifient)
Informations serveurvoxelbench.info
Monitoring par boss barsvoxelbench.monitor.bars
Menu du monitoring, état du monitoringN'importe quel nœud de monitoring
Serveur web, mode push, monitoring distant, authentification, HTTPS, whitelist IPvoxelbench.monitor.web
Rapports (menu, listes, détails, comparaison)voxelbench.reports
Stress Limitvoxelbench.stresslimit
Profils personnalisésvoxelbench.custom ou voxelbench.start ; l'écran ne liste les profils de stress limit qu'avec voxelbench.stresslimit

Les boutons qui lancent un benchmark, un test ou une autre action exécutent la commande correspondante : les permissions des commandes ci-dessus s'appliquent donc aussi.

Permissions de tests

Chaque test est protégé par son propre nœud. Ce nœud appartient au test lui-même : l'identifiant canonique et l'alias court d'un test demandent donc la même permission (par exemple /bench test lightingUpdate et /bench test lighting vérifient tous deux voxelbench.test.lighting). /bench test seul et /bench test list ne demandent aucun nœud supplémentaire, et un identifiant inconnu affiche seulement une erreur.

Les nœuds de catégorie regroupent les tests comme le catalogue des tests :

PermissionInclut
voxelbench.testTous les tests intégrés (les trois nœuds ci-dessous)
voxelbench.test.hardwareLes tests matériels
voxelbench.test.gameplayLes tests gameplay
voxelbench.test.singlecoreLes tests CPU single-core

Tests matériels

PermissionTest
voxelbench.test.diskdisk
voxelbench.test.networknetwork
voxelbench.test.memorymemory
voxelbench.test.multicoremultiCore

Tests CPU single-core

PermissionTest
voxelbench.test.singlecorebenchmarksingleCoreBenchmark
voxelbench.test.singlecoremaxsingleCoreMax

Tests gameplay

PermissionTest
voxelbench.test.chunkloadingchunkLoading
voxelbench.test.mobspawnmobSpawn
voxelbench.test.hopperhopper
voxelbench.test.explosionexplosion
voxelbench.test.lightinglightingUpdate (alias lighting)
voxelbench.test.worldsaveworldSave
voxelbench.test.redstoneredstone
voxelbench.test.blockphysicsblockPhysics
voxelbench.test.chunktickingchunkTicking
voxelbench.test.collisionentityCollision (alias collision)
voxelbench.test.tileentitytickingTileEntity (alias tileentity)
voxelbench.test.mobaimobAI
voxelbench.test.mobpathfindingmobPathfinding
voxelbench.test.villagervillagerTrading (alias villager)
voxelbench.test.bonemealgrowthboneMealGrowth
voxelbench.test.liquidphysicsliquidPhysics
voxelbench.test.combatsimulationcombatSimulation
voxelbench.test.projectilestormprojectileStorm
voxelbench.test.entitycrammingentityCramming
voxelbench.test.playerworldloadplayerWorldLoad

Tests d'extension

Un test ajouté par un autre plugin exige la permission déclarée par son auteur, s'il en a déclaré une. Un test déclaré sans permission ne demande que voxelbench.use.

Ces nœuds protègent /bench test et les boutons de test de l'interface. Une suite entière est autorisée par un seul nœud, et non test par test : /bench start exécute le benchmark standard sous voxelbench.start, et les tests d'un profil personnalisé s'exécutent sous voxelbench.custom (ou voxelbench.start), plus voxelbench.stresslimit pour un profil de stress limit. Un joueur qui peut lancer un profil lance tous les tests qu'il contient.

Permissions Dynmap

Ces permissions contrôlent qui peut voir les couches VoxelBench sur l'interface web de Dynmap.

PermissionDescription
voxelbench.dynmapToutes les couches Dynmap
voxelbench.dynmap.viewDéclarée, mais utilisée par aucune couche dans l'exemple de markers.yml des Intégrations ; voxelbench.dynmap couvre toutes les couches
voxelbench.dynmap.heatmapHeatmap de densité d'entités
voxelbench.dynmap.alertsMarqueurs d'alerte de performance
voxelbench.dynmap.testzonesZones de test actives

Note : les permissions Dynmap nécessitent une configuration supplémentaire dans plugins/dynmap/markers.yml. Voir Intégrations - Dynmap pour les détails.

Mise à jour depuis la 1.8.1 ou antérieure

Jusqu'à VoxelBench 1.8.1, la plupart de ces permissions étaient déclarées mais pas vérifiées. Elles sont désormais appliquées. Les opérateurs et les joueurs qui ont * ne sont pas concernés ; pour les autres :

  • Nœuds des commandes. voxelbench.use suffisait pour /bench start, stop, gui, info, reports, stresslimit, reload et monitor. Un groupe qui n'avait reçu que voxelbench.use perd l'accès à ces commandes : accordez-lui les nœuds dont il a besoin, par exemple voxelbench.start et voxelbench.stop.
  • Nouveaux nœuds. /bench link exige désormais voxelbench.link, /bench zones tp et zones clean exigent voxelbench.world, et l'écran des réglages exige voxelbench.settings.
  • Tests. Chaque test vérifie maintenant son nœud, y compris ceux qui se lançaient avec voxelbench.use seule (lightingUpdate, entityCollision, tickingTileEntity, villagerTrading sous leur identifiant canonique, ainsi que projectileStorm, entityCramming, playerWorldLoad, singleCoreBenchmark et singleCoreMax).
  • Tests déplacés. mobPathfinding, redstone et blockPhysics passent de voxelbench.test.singlecore à voxelbench.test.gameplay, leur catégorie. Un groupe à qui voxelbench.test.singlecore avait été accordée pour les lancer a désormais besoin de voxelbench.test.gameplay ou des nœuds individuels ; voxelbench.test.singlecore couvre maintenant singleCoreBenchmark et singleCoreMax.

Exemples LuckPerms

Donner un accès complet à un groupe admin

/lp group admin permission set voxelbench.* true

Autoriser un groupe à lancer des tests mais pas des benchmarks complets

/lp group moderator permission set voxelbench.use true
/lp group moderator permission set voxelbench.test true
/lp group moderator permission set voxelbench.stop true
/lp group moderator permission set voxelbench.gui true
/lp group moderator permission set voxelbench.info true

Laisser un groupe de staff gérer le tableau de bord web

/lp group staff permission set voxelbench.use true
/lp group staff permission set voxelbench.monitor.web true

Permettre à tous les joueurs de vérifier le TPS

/lp group default permission set voxelbench.use true

Cela donne accès aux commandes qui ne demandent rien d'autre que voxelbench.use : /bench tps, mspt, status, version, help, ping, la liste des zones et la liste des tests.