NRF SDK 0.9

Référence

ModServices

Déclarer un outil ou une action disponible lorsqu’un autre mod est chargé.

Contexte d’utilisation

ModulePackageSource SDK
Kotlin/Nativenimbykotlin/src/nimby/ModServices.kt

API publique du SDK 0.9.0-alpha.2. Chaque entrée donne la signature Kotlin et son contrat : sens de la valeur, conditions d’utilisation et effets à connaître. Choisissez les imports du module indiqué ci-dessus.

Imports de cette page
import nimby.SignalAction
import nimby.SignalActionRequest
import nimby.GameMod
import nimby.ToolMod
import nimby.ToolModBuilder
import nimby.toolMod

SignalAction

nimby · class
data class SignalAction(val id: String, val label: String, val whenMod: String, val service: String)

Bouton facultatif d’un signal, relié à un service de mod outil. Le fournisseur absent masque le bouton sans supprimer le signal ni changer ses règles.

SignalAction.id

nimby · val
val id: String

Identifiant stable de l’action, unique parmi les actions du modèle. Transmis au service lors du clic.

SignalAction.label

nimby · val
val label: String

Texte du bouton dans le panneau de signal ; accepte tr et reste distinct de id.

SignalAction.whenMod

nimby · val
val whenMod: String

Identifiant technique du mod fournisseur. Sert à la disponibilité du bouton, sans imposer son installation.

SignalAction.service

nimby · val
val service: String

Identifiant exact du service déclaré par le fournisseur avec service(...). Il ne s’agit pas d’un nom de fonction Kotlin.

SignalActionRequest

nimby · class
data class SignalActionRequest(
    val sequence: Long, val signalId: Long, val action: String, val service: String,
    val worldId: String, val generation: Long,
    val panelToken: Long = 0, val originAction: String = action,
    
    val value: Int? = null,
)

Événement fourni au service après une action sur un signal. Conservez ses informations de session et de panneau pour répondre ; un clic ne valide pas à lui seul un plan de construction.

SignalActionRequest.sequence

nimby · val
val sequence: Long

Numéro de l’événement reçu. Utilisez la requête fournie pour rattacher votre réponse à cette action, sans fabriquer une nouvelle séquence.

SignalActionRequest.signalId

nimby · val
val signalId: Long

Signal source sélectionné. Il peut être supprimé ou modifié ensuite ; revalidez avant une mutation.

SignalActionRequest.action

nimby · val
val action: String

Identifiant du bouton ou du champ modifié dans le panneau. Le service doit sélectionner explicitement le traitement correspondant.

SignalActionRequest.service

nimby · val
val service: String

Service destinataire déclaré par le mod outil. Les événements suivants du même panneau reviennent à ce service.

SignalActionRequest.worldId

nimby · val
val worldId: String

Identité de la partie ayant produit l’événement. Une requête d’un autre monde ne peut pas présenter ou confirmer le plan courant.

SignalActionRequest.generation

nimby · val
val generation: Long

Génération de session à comparer avec le contexte actuel. Invalidez plan et aperçu lors d’un changement.

SignalActionRequest.panelToken

nimby · val
val panelToken: Long = 0

Identité opaque du panneau d’origine. Transmettez la requête reçue aux méthodes de présentation plutôt que de reconstruire ce jeton.

SignalActionRequest.originAction

nimby · val
val originAction: String = action

Action initiale qui a ouvert le panneau, conservée lorsque action devient un bouton ou un champ de ce panneau.

SignalActionRequest.value

nimby · val
val value: Int? = null

Nouvel entier validé d’un champ numérique ; null pour un bouton. Une saisie vide ou invalide n’est pas remplacée par zéro.

GameMod

nimby · class
abstract class GameMod

Base commune des mods de signalisation et d’outils. createMod renvoie une implémentation déclarée par le DSL ; un outil n’a pas besoin de modèle de signal.

GameMod.id

nimby · val
abstract val id: String

Identifiant stable du mod, utilisé par whenMod pour joindre ses services. Réutilisez modInfo.id plutôt qu’un libellé traduit.

GameMod.title

nimby · val
abstract val title: String

Titre déclaré du mod, utilisé pour regrouper ses préférences et raccourcis dans Options → NRF Hub. Vient de modInfo.title avec la surcharge modInfo ; metadata(name=...) ne remplace pas ce titre. L’identité reste id.

GameMod.metadata

nimby · val
open val metadata: ModMetadata?

Informations de présentation déclarées avec metadata ; null si aucune n’est fournie. Ne décrit pas les règles de l’outil.

GameMod.options

nimby · val
open val options: List<ModOption<*>>

Options explicites du mod, vides par défaut. Gardez leurs objets pour lire value. La limite de 64 inclut les raccourcis des fenêtres ajoutés automatiquement par le SDK.

GameMod.windows

nimby · val
open val windows: List<ToolWindow>

Fenêtres déclarées par le mod. Liste vide si aucune ; leur création n’exige pas de signal sélectionné.

GameMod.onWindowEvent

nimby · fun
open fun onWindowEvent(request: ToolWindowEvent, context: ToolContext): Unit

Traite un événement de fenêtre avec un contexte valable uniquement pendant cet appel. Le DSL dirige l’événement vers le handler de request.window.

GameMod.services

nimby · val
open val services: List<String>

Identifiants des services enregistrés par le mod. Les actions externes doivent utiliser exactement ces identifiants.

GameMod.onSignalAction

nimby · fun
open fun onSignalAction(request: SignalActionRequest, context: ToolContext): Unit

Traite une action de signal dans le service destinataire. Gardez le callback court, validez la session et ne conservez pas ToolContext après le retour.

GameMod.onTick

nimby · fun
open fun onTick(context: ToolContext): Unit

Callback périodique pour avancer un travail borné, renouveler une présentation ou suivre un ticket. Il ne garantit pas une fréquence exacte ; retournez sans attendre.

GameMod.onStop

nimby · fun
open fun onStop(): Unit

Libère l’état local et les ressources lors d’un arrêt normal du mod. Aucun ToolContext n’est fourni ; ne comptez pas sur ce callback après un arrêt brutal.

ToolMod

nimby · class
class ToolMod : GameMod

Mod outil construit par toolMod. Ses services et fenêtres reçoivent des événements sans définir d’aspect ni de consigne de signalisation ; constructeur réservé au SDK.

ToolMod.id

nimby · val
override val id: String

Identifiant stable du mod, utilisé par whenMod pour joindre ses services. Réutilisez modInfo.id plutôt qu’un libellé traduit.

ToolMod.title

nimby · val
override val title: String

Titre déclaré du mod, utilisé pour regrouper ses préférences et raccourcis dans Options → NRF Hub. Vient de modInfo.title avec la surcharge modInfo ; metadata(name=...) ne remplace pas ce titre. L’identité reste id.

ToolMod.metadata

nimby · val
override val metadata: ModMetadata?

Informations de présentation déclarées avec metadata ; null si aucune n’est fournie. Ne décrit pas les règles de l’outil.

ToolMod.windows

nimby · val
override val windows: List<ToolWindow>

Fenêtres déclarées par le mod. Liste vide si aucune ; leur création n’exige pas de signal sélectionné.

ToolMod.options

nimby · val
override val options: List<ModOption<*>>

Options explicites du mod, vides par défaut. Gardez leurs objets pour lire value. La limite de 64 inclut les raccourcis des fenêtres ajoutés automatiquement par le SDK.

ToolMod.services

nimby · val
override val services: List<String>

Identifiants des services enregistrés par le mod. Les actions externes doivent utiliser exactement ces identifiants.

ToolMod.onSignalAction

nimby · fun
override fun onSignalAction(request: SignalActionRequest, context: ToolContext): Unit

Traite une action de signal dans le service destinataire. Gardez le callback court, validez la session et ne conservez pas ToolContext après le retour.

ToolMod.onTick

nimby · fun
override fun onTick(context: ToolContext): Unit

Callback périodique pour avancer un travail borné, renouveler une présentation ou suivre un ticket. Il ne garantit pas une fréquence exacte ; retournez sans attendre.

ToolMod.onStop

nimby · fun
override fun onStop(): Unit

Libère l’état local et les ressources lors d’un arrêt normal du mod. Aucun ToolContext n’est fourni ; ne comptez pas sur ce callback après un arrêt brutal.

ToolMod.onWindowEvent

nimby · fun
override fun onWindowEvent(request: ToolWindowEvent, context: ToolContext): Unit

Traite un événement de fenêtre avec un contexte valable uniquement pendant cet appel. Le DSL dirige l’événement vers le handler de request.window.

ToolModBuilder

nimby · class
class ToolModBuilder

Configuration reçue dans toolMod : services, fenêtres, métadonnées et callbacks de cycle de vie. Le SDK crée ce builder ; ne l’instanciez pas directement.

ToolModBuilder.options

nimby · fun
fun options(vararg values: ModOption<*>): Unit

Enregistre une ou plusieurs préférences globales ; plusieurs appels ajoutent des options. Refuse les identifiants dupliqués et plus de 64 options, raccourcis de fenêtres compris. Conservez les objets déclarés pour lire leur value.

ToolModBuilder.window

nimby · fun
fun window(id: String, title: String, shortcut: String = "F8", handler: ToolContext.(ToolWindowEvent) -> Unit): Unit

Enregistre une fenêtre autonome et son handler, jusqu’à 8 identifiants distincts. Le SDK crée son option de raccourci, modifiable par le joueur : F8 par défaut, vide pour désactiver. Format : Ctrl+, Alt+, Shift+ facultatifs dans cet ordre puis A–Z, 0–9, F1–F24 ou une touche nommée du guide. Les raccourcis non vides du mod doivent être distincts. showWindow fournit le contenu.

ToolModBuilder.metadata

nimby · fun
fun metadata(author: String, description: String, name: String? = null): Unit

Déclare auteur, description et nom optionnel pour les listes et fiches de mods du jeu. name et description acceptent tr. Ne remplace ni le titre du groupe dans Options → NRF Hub, ni les titres de fenêtres ; l’identité vient de mod.json.

ToolModBuilder.service

nimby · fun
fun service(id: String, handler: ToolContext.(SignalActionRequest) -> Unit): Unit

Enregistre un service avec identifiant unique, jusqu’à 32 par mod. Les callbacks d’un mod sont sérialisés ; un handler bloquant retarde les autres tâches de ce même mod.

ToolModBuilder.onTick

nimby · fun
fun onTick(block: ToolContext.() -> Unit): Unit

Déclare le travail périodique de l’outil. Traitez seulement les tâches en attente et rendez la main ; évitez lecture complète du réseau et attente à chaque tick.

ToolModBuilder.onStop

nimby · fun
fun onStop(block: () -> Unit): Unit

Déclare le nettoyage local à l’arrêt normal. Ne conserve ni n’utilise un contexte d’un callback précédent.

toolMod

nimby · fun
fun toolMod(id: String, title: String, block: ToolModBuilder.() -> Unit): ToolMod

Construit un outil avec identité explicite et au moins un service ou une fenêtre. Dans un projet Gradle, préférez toolMod(modInfo) pour utiliser l’identité générée.