Créer un rôle

Structures

Un rôle est égal à une classe. Si c'est un rôle Loup Garou, il doit étendre de RoleWereWolf, si c'est un rôle Villageois, il doit étendre de RoleImpl et si c'est un rôle Neutre de RoleNeutral.

@Role(key = "your_addon_key.role.role_example.display",
        category = Category.WEREWOLF, attributes = RoleAttribute.VILLAGER)
public class RoleExample extends RoleWereWolf {

    @Override
    public @NotNull String getDescription() {
            return new DescriptionBuilder(this.game,this)
                .setDescription(this.game.translate("werewolf.mon_addon_trop_bien.roles.role_example.description"));
    }
    
    @Override
    public void recoverPower() {
        //Pouvoir lors de la récupération du rôle, hors items et effets de potion
    }
    
    @Override
    public void recoverPotionEffect() {
         //Effet de potion à la récupération du rôle
    }
    
}

La méthode getDescription est utilisé lorsque la description de ce rôle est demandée. DescriptionBuilder est un utilitaire permettant de mettre en forme sa description.

Vous ne devez jamais utiliser le Player de Bukkit dans votre classe rôle. Faites this.getPlayerWW() pour récupérer le joueur qui a ce rôle dans la classe.

La méthode recoverPower est appelée à l'annonce des rôles et concerne tout les pouvoir qu'un rôle peut avoir hors effets de potions. (exemples : coeurs en plus, commande a effectuée avant x minutes, ...)

La méthode recoverPotionEffect est appelée à l'annonce des rôles et concerne tout les effets de potions qu'un rôle peut avoir.

Une classe de rôle implement les Listener de spigot, vous pouvez donc écouter des events dans votre classe.

Ajouter des items pour votre rôle à l'annonce des rôles

Pour enregistrer du stuff dans le dossier ressource du plugin créer un fichier stuffMeetUp.yml et stuffRole.yml Dans vos .yml mettez (par exemple) :

"your_addon_key.role.protector.display":
  '0':
    ==: org.bukkit.inventory.ItemStack
    type: POTION
    damage: 16389
    amount: 3
 '1': etc...

le StuffRole sera chargé par défault et le MeetUp lors de l'appuie sur le bouton MeetUp dans le Menu des stuffs.

Vous pouvez générer ces fichier via le GUI directement, shift-click sur votre rôle puis stuff. Et pour l'enregistrer menu Save, enregistrer. Le stuff sera dans le dossier plugins/WereWolfPlugin/stuffs

Enregistrer un rôle

A l'aide de l'annotation @Role au dessus de la classe de votre rôle

@Role(key = "your_addon_key.role.role_example.display",
        category = Category.WEREWOLF, attributes = RoleAttribute.VILLAGER)

Les rôles enregistré doivent avoir le même package parent que le Main du plugin.

Rôle exemple :

https://github.com/Ph1Lou/addRoleExample

Last updated