# Référence de l’intégration Skript

Avec Verité et Skript tous deux installés, Verité enregistre automatiquement un addon Skript et sa syntaxe devient disponible sans configuration. Chaque élément délègue à la même surface publique `teacommontea.api` documentée dans la [Référence de l’API développeur](page:developers/api), de sorte qu’un script voit exactement ce que le plugin applique.

Cette page liste chaque condition, effet, expression, événement et valeur d’événement enregistrés, regroupés par type, avec le motif réellement enregistré pour chacun. Les parties facultatives apparaissent entre `[crochets]` et les choix entre `(a|b)`, conformément à la grammaire de motifs propre à Skript. Un `-` en tête d’un type (par exemple `%-player%`) marque cet argument comme facultatif.

Deux sujets ont des guides dédiés qui montrent ces éléments dans un gestionnaire de chat fonctionnel :

- Filtrer le contenu du chat : [Intégration d’un chat personnalisé](page:developers/wiring).
- Appliquer les sourdines, le mode lent et le gel : [Application de la modération personnalisée](page:developers/moderation-enforcement).

## Conditions

### Réduit au silence, banni, invisible, en captcha

Ce sont des conditions de propriété de joueur, elles prennent donc en charge la grammaire standard `is` / `is not` de Skript et les cibles au pluriel.

```vb
%players% (is|are) muted
%players% (is|are) banned by verite
%players% (is|are) vanished in verite
%players% (is|are) in a captcha
```

| Racine du motif | Signification | Soutenu par |
| --- | --- | --- |
| `muted` | Le joueur a une sourdine Verité active. Lecture pure, n’envoie rien. | `VeriteModeration.isMuted` |
| `banned by verite` | Le joueur a un bannissement Verité actif. | `VeriteModeration.isBanned` |
| `vanished in verite` | Le joueur est invisible via l’invisibilité du personnel. | `VeriteVanish.isVanished` |
| `in a captcha` | Le joueur est en train de résoudre un captcha. | `VeriteCaptcha.isActive` |

```vb
on chat:
    if player is in a captcha:
        cancel event
```

### Gel du chat et mode lent

```vb
chat is frozen [for %-player%]
%player% is rate limited
%player% is on slowmode
```

`is rate limited` et `is on slowmode` sont deux formulations de la même vérification de mode lent. Les trois correspondent aux barrières de modération et envoient un avis au joueur en effet de bord, alors utilisez-les dans un gestionnaire de chat où vous comptez arrêter le message, et non simplement pour lire l’état. `chat is frozen` correspond à `VeriteModeration.chatMuteGate` ; les formulations de mode lent correspondent à `VeriteModeration.slowmodeGate`.

```vb
on chat:
    if chat is frozen for player:
        cancel event
    else if player is on slowmode:
        cancel event
```

### Texte bloqué par le filtre

```vb
%string% (was|is|are) blocked [for %-player%]
%string% (wasn't|was not|isn't|is not|aren't|are not) blocked [for %-player%]
```

Sans joueur, il s’agit d’une classification pure qui n’enregistre rien, sûre pour analyser des panneaux, des titres de livres ou des renommages d’enclume. Avec `for %player%`, il enregistre aussi le signalement contre ce joueur, à l’image du filtrage de chat en direct. Ceci indique seulement si le texte est bloqué ; utilisez l’expression de résultat de filtre ci-dessous pour distinguer les grossièretés de l’automutilation ou de l’abus. Soutenu par `VeriteFilter`. Voir [Intégration d’un chat personnalisé](page:developers/wiring).

### Sanction émise ou retirée

Utilisable à l’intérieur de l’événement `verite punishment` pour distinguer une émission d’un retrait.

```vb
[the] verite punishment was removed
[the] verite punishment was (not removed|issued)
```

Lit l’indicateur de retrait de l’événement en cours. En dehors de l’événement, il vaut toujours faux.

## Effets

### Émettre une sanction

```vb
verite ban %player% [for %-timespan%] [(with reason|for) %-string%] [by %-player%] [silent:silently]
verite mute %player% [for %-timespan%] [(with reason|for) %-string%] [by %-player%] [silent:silently]
verite kick %player% [(with reason|for) %-string%] [by %-player%] [silent:silently]
verite warn %player% [(with reason|for) %-string%] [by %-player%] [silent:silently]
```

Un intervalle de temps rend un bannissement ou une sourdine temporaire ; l’omettre le rend permanent. Le kick et le warn ne prennent pas d’intervalle de temps. `by %player%` définit l’exécuteur ; omis, la sanction est émise en tant que console. Le `silently` final active l’indicateur silencieux afin que la sanction ne soit pas diffusée. La cible doit être un joueur en ligne, puisque l’effet en résout l’uuid et le nom. Soutenu par `VeriteModeration.ban` / `mute` / `kick` / `warn`.

```vb
verite ban player for 7 days with reason "spam" by {_staff} silently
verite warn player for "first offence"
```

### Lever une sanction

```vb
verite unban %player% [(with reason|for) %-string%] [by %-player%]
verite unmute %player% [(with reason|for) %-string%] [by %-player%]
verite unwarn %player% [(with reason|for) %-string%] [by %-player%]
```

`by %player%` enregistre qui l’a levée ; omis, c’est enregistré en tant que console. La cible doit être en ligne. Soutenu par `VeriteModeration.unban` / `unmute` / `unwarn`.

### Analyser un texte et enregistrer le signalement

```vb
check %string% for %player%
```

Fait passer un message par le filtre et enregistre tout signalement contre le joueur, exactement comme le fait le filtrage de chat en direct, sans renvoyer le verdict. C’est le compagnon « lance et oublie » de la condition « blocked » et de l’expression de résultat de filtre. Soutenu par `VeriteFilter.check`.

### Émettre un captcha

```vb
challenge %player% with [a] captcha [(with reason|for|from) %-string%]
challenge %player% with [a] detailed captcha [(with reason|for|from) %-string%]
```

Démarre immédiatement un captcha standard ou détaillé, étiqueté avec une source facultative enregistrant la raison de son ouverture. L’étiquette prend une valeur générique par défaut lorsqu’elle est omise. Soutenu par `VeriteCaptcha.challengeStandard` / `challengeDetailed`.

### Verrouillage du serveur

```vb
begin message lockdown [(with reason|for) %-string%]
end message lockdown
```

Scelle le serveur derrière un verrouillage avec une raison facultative, ou le lève. La raison prend une étiquette générique par défaut. Soutenu par `VeriteLockdown.begin` / `end`. Voir [Application de la modération personnalisée](page:developers/moderation-enforcement).

## Expressions

### Résultat de filtre d’un message

```vb
filter [the] result of %string% [for %-player%]
```

Renvoie la classification du filtre sous forme de chaîne en minuscules : `clean`, `block`, `profanity`, `self_harm` ou `abuse`. C’est la seule syntaxe de filtre qui préserve la distinction entre un contenu bloqué ordinaire et un locuteur qui pourrait être en crise ou victime, alors dirigez `self_harm` et `abuse` vers une réponse d’accompagnement plutôt que vers une sanction. Sans joueur, elle n’enregistre rien ; avec `for %player%`, elle enregistre aussi le signalement. Soutenu par `VeriteFilter.check` et `FilterResult`.

```vb
set {_result} to filter the result of {_msg} for player
if {_result} is "self_harm" or {_result} is "abuse":
    # handle with care, do not punish
    stop
if {_result} is not "clean":
    send block message to player
    stop
```

### Message de blocage du filtre

```vb
block message
```

Renvoie le message configuré affiché lorsqu’un message de chat est bloqué. Soutenu par `VeriteFilter.blockMessage`.

### Nombre de signalements du filtre

```vb
[get] message flags (for|of) %player%
```

Renvoie combien de fois le filtre a signalé un joueur. Renvoie 0 pour un joueur sans dossier. Soutenu par `VeriteFilter.count`.

### Détails d’un bannissement ou d’une sourdine actifs

```vb
[get] [verite] ban status of %player% [reason:with reason]
[get] [verite] mute status of %player% [reason:with reason]
```

Sans `with reason`, l’expression renvoie le temps restant en millisecondes, ou `-1` pour une sanction permanente. Avec `with reason`, elle renvoie le texte de la raison de la sanction. Ne renvoie rien lorsqu’il n’y a aucune sanction active de ce type. Soutenu par `VeriteModeration.activeBan` / `activeMute`.

```vb
set {_left} to verite ban status of player
set {_why} to verite ban status of player with reason
```

### Champs d’une valeur de sanction

```vb
[get] punishment type of %veritepunishment%
[get] punishment reason of %veritepunishment%
[get] punishment target uuid of %veritepunishment%
[get] punishment target ip of %veritepunishment%
[get] punishment executor name of %veritepunishment%
[get] punishment removed by name of %veritepunishment%
[get] punishment removal reason of %veritepunishment%
[get] punishment length of %veritepunishment%
```

Lit un champ d’une valeur de sanction Verité, surtout utile à l’intérieur de l’événement `verite punishment`. `type` est le type de sanction en minuscules (`ban`, `mute`, `warning`, `kick`). `target uuid` est l’uuid du joueur affecté sous forme de chaîne, ou rien pour une sanction portée sur une ip. `length` est la durée totale en millisecondes, ou `-1` pour une sanction permanente. Soutenu par les accesseurs publics de `Punishment`.

### État d’invisibilité

Une propriété booléenne modifiable.

```vb
[the] vanish state of %players%
%players%'s vanish state
```

La lecture renvoie si le joueur est invisible. Régler sur `true` le rend invisible, `false` le rend de nouveau visible. Seul le mode de modification par affectation est pris en charge. Soutenu par `VeriteVanish.isVanished` / `vanish` / `unvanish`.

```vb
set vanish state of player to true
```

### Recherches de nom et d’uuid connus

```vb
[get] [verite] name of %player%
[get] [verite] uuid of %string%
```

`name of` renvoie le dernier nom d’utilisateur connu que Verité a enregistré pour un joueur. `uuid of` résout un nom d’utilisateur en l’uuid que Verité a enregistré en dernier pour lui (sous forme de chaîne), ce qui fonctionne pour les noms hors ligne ou jamais connectés dans l’annuaire de Verité. Les deux ne renvoient rien lorsqu’ils sont inconnus. Soutenu par `VeritePlayerData.nameOf` / `uuidByName`.

### Pays GeoIP

```vb
[get] country of %string%
```

Renvoie le nom du pays que Verité résout pour une chaîne d’ip, ou rien lorsque l’ip ne peut pas être résolue, que la base de données est indisponible, ou que l’adresse est privée. Soutenu par `VeriteGeoIp.country`.

### Temps élégant

```vb
[get] fancy time of %number%
```

Formate un décompte en millisecondes en une durée lisible par un humain, dans le style propre à Verité, correspondant à la formulation que le plugin utilise pour les durées de sanction et les temps restants. Soutenu par `VeriteFormat.fancyTime`.

## Événement

Verité enregistre un événement Bukkit afin que les scripts puissent réagir aux sanctions.

```vb
on verite punishment:
```

L’événement se déclenche lorsqu’une sanction est émise et lorsqu’une est levée, graciée ou expirée. Utilisez la condition `verite punishment was removed` / `was issued` pour distinguer les deux, et les expressions de champs de sanction pour lire l’enregistrement.

```vb
on verite punishment:
    if the verite punishment was issued:
        broadcast "%punishment executor name of event-punishment% punished someone"
```

### Valeurs d’événement

À l’intérieur de l’événement `verite punishment`, la sanction est exposée comme valeur d’événement.

| Valeur d’événement | Type | Signification |
| --- | --- | --- |
| `event-punishment` | Verite Punishment | La sanction qui a été émise ou levée. |

Le type `Verite Punishment` est enregistré sous le motif `(verite ?)?punishments?`, de sorte que `punishment` et `verite punishment` le nomment tous deux. Lisez ses champs avec les expressions de champs de sanction ci-dessus.
