minecraft
Auditeurs d'événement à Forge
Recherche…
Création d'un écouteur d'événement dans Forge
La création d'un écouteur d'événement dans Forge est très similaire à la création d'un écouteur dans Bukket.
Créer la classe d'écoute nécessite beaucoup moins. Il n'y a pas d'interface à mettre en œuvre ou d'autres importations.
public class ListenerClass { } //perfectly valid event listener class
L'enregistrer nécessite de passer l'instance au bus d'événements Forge:
MinecraftForge.EVENT_BUS.register(new ListenerClass());
Il existe deux bus d’événements différents en fonction de l’événement. Par exemple, les événements de génération de minerai sont déclenchés sur ORE_GEN_BUS
. Vous pouvez appeler cet enregistrement depuis n'importe où, mais il est conseillé de l'appeler à partir de votre classe principale (avec l'annotation @Mod) ou d'une classe proxy (certains événements sont uniquement côté client et un gestionnaire d'événements côté client doit être appelé uniquement). à partir du proxy client, sinon le serveur dédié tombera en panne!)
Pour écouter un événement donné dans votre classe d'écouteur, vous devez créer une méthode avec l'annotation @SubscribeEvent sur la méthode. Le type d'événement est spécifié par le Type dans le seul argument de la méthode. La méthode peut être nommée comme vous le souhaitez.
Notez que certains types d'événement sont des sous-types (qui doivent être référencés par leur type englobant, par exemple CropGrowEvent.Pre
) et que certains événements peuvent avoir une phase lorsqu'elle est déclenchée à plusieurs endroits (comme tous les TickEvent
qui sont déclenchés avant et après tout code vanille). En tant que modérateur, vous devez toujours vérifier ces deux éléments et ne lancer votre code que lorsque cela est nécessaire.
public class ListenerClass {
@SubscribeEvent
public void onPlayerLogin(PlayerLoggedInEvent event) {
event.player.addChatMessage(new TextComponentString("Welcome to the server!"));
}
}
Comme les mods de Forge interagissent directement avec les composants internes de Minecraft, le modder a beaucoup de pouvoir pour affecter les choses, mais de la même manière, le code doit suivre le framework vanilla: il n'y a pas de raccourci pour envoyer des messages. ITextComponents manuellement, mais la possibilité de manipuler ces objets (comme appliquer une mise en forme de couleur) est beaucoup plus facile. Par exemple:
TextComponentString txt = new TextComponentString(
TextFormatting.LIGHT_PURPLE + "Welcome to the server!");
txt.appendSibling(new TextComponentString(
TextFormatting.AQUA + "Server has been online for " + x + " days"));
event.player.addChatMessage(txt);
Ce qui donne le résultat suivant: