|
|
|
@ -1,30 +0,0 @@
|
|
|
|
# Messages administrateur
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dans Cmdr (F2), les commandes suivent les permissions existantes du projet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
|
|
announce "Hello World!"
|
|
|
|
|
|
|
|
ann "Server event starts soon."
|
|
|
|
|
|
|
|
pm me "First line\nSecond line"
|
|
|
|
|
|
|
|
pm Infu "A message using a shortened local username."
|
|
|
|
|
|
|
|
pm all "A message for players in this server."
|
|
|
|
|
|
|
|
pm others "A message for everyone here except me."
|
|
|
|
|
|
|
|
pm ?2 "A message for two random local players."
|
|
|
|
|
|
|
|
pm @FullUsername "A message for a player in any live server."
|
|
|
|
|
|
|
|
pm #123456789 "A message addressed by UserId."
|
|
|
|
|
|
|
|
pm @FirstUsername,SecondUsername "A message for multiple recipients."
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les commandes sont insensibles à la casse. `m` et `ann` sont des alias de `announce`. Les sélecteurs Cmdr (`.`, `*`, `**`, `?`, `?N`, `me`, `all`, `others`, `random`, noms abrégés et listes) concernent les joueurs du serveur courant. Les préfixes `@` et `#` permettent de cibler par nom complet ou UserId dans les autres serveurs de la même expérience. Les joueurs hors ligne ne reçoivent rien.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Le texte est limité à 400 octets, PM à 20 destinataires et les envois sont espacés de 3 secondes par administrateur. Chaque carte reste 10 secondes, avec une file limitée à 8 messages en attente. La carte est centrée horizontalement en haut, avec une marge de 24 pixels sous la zone réservée à l'interface Roblox. Le fond s'ajuste au texte, avec une largeur maximale de 560 pixels, une limite adaptée au viewport et un défilement pour les messages longs. Les vrais retours à la ligne et `\n` sont pris en charge ; les balises RichText saisies sont affichées comme du texte.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Architecture et références
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Cmdr `@rbxts/cmdr` 1.12.1 fournit les commandes, les sélecteurs et les unions préfixées : [commandes et shorthand](https://eryn.io/Cmdr/docs/commands/). Les types et le parseur installés ont été vérifiés localement.
|
|
|
|
|
|
|
|
- Flamework Networking 1.3.2 fournit l'événement serveur → client typé, via `createServer` et `createClient`, conformément aux déclarations installées : [documentation](https://flamework.fireboltofdeath.dev/docs/additional-modules/networking/introduction/).
|
|
|
|
|
|
|
|
- [MessagingService](https://create.roblox.com/docs/reference/engine/classes/MessagingService) fournit la diffusion interserveurs sur un topic versionné. Ce choix permet de contrôler les échecs, la reconnexion et la déduplication, sans utiliser la file globale de `@rbxts/net` 3.0.10. Aucun paquet ajouté.
|
|
|
|
|
|
|
|
- [TextService](https://create.roblox.com/docs/reference/engine/classes/TextService) filtre le texte avant toute diffusion. Le résultat utilise [GetNonChatStringForBroadcastAsync](https://create.roblox.com/docs/reference/engine/classes/TextFilterResult) et PM contrôle les permissions avec `TextChatService.CanUsersChatAsync`.
|
|
|
|
|
|
|
|
- React et ReactRoblox 17.3.13-ts.1 rendent la carte ; `TextService.GetTextSize` mesure le texte pour ajuster ses dimensions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Les messages interserveurs sont éphémères, sans garantie de livraison ou de présence du destinataire. L'échec de publication est signalé dans Cmdr, même si le message a pu être livré localement. Une expérience non publiée fonctionne uniquement localement ; la diffusion réelle doit être vérifiée avec deux serveurs d'une expérience publiée et les accès aux services Roblox disponibles.
|
|
|
|
|