Menu forms

Les différents menus forms possibles avec TabulaUI

Il est possible de créer 3 types de menu, chacun ont leurs propres caractéristiques et fonctionnement différemment mais garde tout de même un fonctionnement commun.

Base commune

Structure

#Nom des différentes commandes pour accéder au menu
commands:
  - STRING
  - ...

#Enregistre ou nom la commande et ses aliases en tant que commande avec détection du tab (facultative)
registerCommand: BOOLEAN

#Réponses lors de l'ouverture d'un menu (ensemble d'actions facultatives)
open:
  - ACTION
  - ...
  
#Réponses lorsqu'un joueur java tente d'ouvrir le menu
javaOpen:
  - ACTION
  - ...

#Conditions pour pouvoir ouvrir le menu (facultatif)
conditions:
  #Ensemble de conditions pour pouvoir ouvrir le menu
  list:
    - CONDITION
    - ...

  #Ensemble d'actions si l'ouverture n'est pas possible (conditions non respectés)
  unauthorized:
    - ACTION
    - ...

#Arguments lors de l'ouverture du menu (facultatif)
args:
 - ARGUMENT
 - ...

#Titre simple qui n'a pas de conditions.
title: STRING
#
# OU BIEN
#
#Le titre peut également être appliqué de manière conditionnel
#Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors le texte indiqué est affiché
title:
  -
    condition:
      - CONDITION
      - ...
    text: STRING
  -
    text: STRING

...
ExpressionDescriptionExemple

STRING

Chaîne de caractère

"Bonjour"

BOOLEAN

Valeur pouvant être: true(vraie) ou false (faux)

true

ACTION

Correspond à une action

CONDITION

Correspond à une condition

ARGUMENT

Correspond à un argument


Form: Info

Structure

...

#Spécifier le type du menu
type: "INFO"

#Contenu (description) du menu écrit de manière simple
content: STRING
#
# OU BIEN
#
#Le contenu peut également être écrit sous forme de liste (une ligne correspondant à un retour à la ligne dans le menu)
content:
 - STRING
 - ...
#
# OU BIEN
#
#Le contenu peut aussi être appliqué de manière conditionnel
#Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors le texte indiqué est affiché
content:
  -
    #Conditions pour afficher le contenu
    condition:
      - CONDITION
      - ...
 
    #Le contenu ecrit de manière simple
    text: STRING
    #
    # OU BIEN
    #
    #Le contenu sous forme de liste (une ligne correspond à un retour à la ligne)
    text:
     - STRING
     - ...
  - ...

#Bouton "oui", celui-ci peut être écrit simplement de la manière suivante:
trueButton:
  #Texte du bouton
  text: STRING
  
  #Actions lorsque le bouton est actionné
  response:
    - ACTION
    - ...
  #
  # OU BIEN
  #
  #Actions lorsque le bouton est actionné sous forme conditionnelle
  #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté   
  response:
    -
      #Conditions de la réponse
      condition:
        - CONDITION
        - ...

      #Action à la réponse
      action:
        - ACTION
        - ...
        
    - ...
#
# OU BIEN
#
#Ce bouton peut, comme la partie "content", s'écrire de manière conditionnel
trueButton:
  -
    condition:
      - CONDITION
      - ...
 
    #Texte du bouton
    text: STRING
    
    response:
      - ACTION
      - ...
    #
    # OU BIEN
    #
    #Actions lorsque le bouton est actionné sous forme conditionnelle
    #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté   
    response:
      -
        #Conditions de la réponse
        condition:
          - CONDITION
          - ...
  
        #Action à la réponse
        action:
          - ACTION
          - ...
          
      - ...
  - ...
        
#Bouton "non", celui-ci peut être écrit simplement de la manière suivante:
falseButton:
  #Texte du bouton
  text: STRING
  
  #Actions lorsque le bouton est actionné
  response:
    - ACTION
    - ...
  #
  # OU BIEN
  #
  #Actions lorsque le bouton est actionné sous forme conditionnelle
  #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté   
  response:
    -
      #Conditions de la réponse
      condition:
        - CONDITION
        - ...

      #Action à la réponse
      action:
        - ACTION
        - ...
        
    - ...
#
# OU BIEN
#
#Ce bouton peut, comme la partie "content", s'écrire de manière conditionnel
falseButton:
  -
    condition:
      - CONDITION
      - ...
 
    #Texte du bouton
    text: STRING
    
    response:
      - ACTION
      - ...
    #
    # OU BIEN
    #
    #Actions lorsque le bouton est actionné sous forme conditionnelle
    #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté   
    response:
      -
        #Conditions de la réponse
        condition:
          - CONDITION
          - ...
  
        #Action à la réponse
        action:
          - ACTION
          - ...
          
      - ...
  - ...
ExpressionDescriptionExemple

STRING

Chaîne de caractère

"Bonjour"

CONDITION

Correspond à une condition

ACTION

Correspond à une action

Exemple

commands:
  - rules
  - rule
registerCommand: true
type: INFO
open:
  - "[message] &eYou have opened the rules menu."
  - "[sound] ENTITY_EXPERIENCE_ORB_PICKUP 1 1"

title:
  -
    condition:
      - "[!permission] rules.read"
    text: "&c&lRules &f- &eMust be read"
  -
    text: "&a&lRules"

content:
  -
    condition:
      - "[permission] rules.read"
    text:
      - "&fGood ! You have &ealready read &fthe rules."
      - ""
      - "&f➤ &b&lRules"
      - "&a&l✔ &fYou can't kill other players."
      - "&a&l✔ &fGriefing is not allowed."
      - "&a&l✔ &fYou can't steal from other players."
      - "&a&l✔ &fYou can't use hacks or cheats."
      - "&a&l✔ &fYou can't use offensive language."
      - ""
  -
    text:
      - "&c&oWarning!"
      - "&fYou &cmust read &fthe rules before you can play on the &eserver&f."
      - ""
      - "&f➤ &b&lRules"
      - "&a&l✔ &bYou can't kill other players."
      - "&a&l✔ &bGriefing is not allowed."
      - "&a&l✔ &bYou can't steal from other players."
      - "&a&l✔ &bYou can't use hacks or cheats."
      - "&a&l✔ &bYou can't use offensive language."
      - ""

trueButton:
  text: "&a&lI have read"
  response:
    -
      condition:
        - "[!permission] rules.read"
      action:
        - "[console] lp user %player% permission set rules.read true"

falseButton:
  text: "&c&lClose"

Form: List

Structure

...

#Spécifier le type du menu
type: "LIST"

#Contenu (description) du menu écrit de manière simple
content: STRING
#
# OU BIEN
#
#Le contenu peut également être écrit sous forme de liste (une ligne correspondant à un retour à la ligne dans le menu)
content:
 - STRING
 - ...
#
# OU BIEN
#
#Le contenu peut aussi être appliqué de manière conditionnel
#Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors le texte indiqué est affiché
content:
  -
    #Conditions pour afficher le contenu
    condition:
      - CONDITION
      - ...
 
    #Le contenu ecrit de manière simple
    text: STRING
    #
    # OU BIEN
    #
    #Le contenu sous forme de liste (une ligne correspond à un retour à la ligne)
    text:
     - STRING
     - ...
  - ...

#Ensemble des boutons présent dans le menu
buttons:
  #Nom du bouton
  STRING:
    #Texte du bouton
    text: STRING
    #
    # OU BIEN
    #
    #Texte du bouton sous forme de liste (une ligne correspond à un retour à la ligne)
    text:
     - STRING
     - ...
    
    image: URL | SRC
    
    #Actions lorsque le bouton est actionné
    reponse:
     - ACTION
     - ...
    #
    # OU BIEN
    #
    #Actions lorsque le bouton est actionné sous forme conditionnelle
    #Le première élément ou toutes les conditions sont respectées (ou aucune présence de condition) alors la réponse indiqué est exécuté
    response:
     -
       #Conditions de la réponse
       condition:
        - CONDITION
        - ...
 
       #Action à la réponse
       action:
        - ACTION
        - ...
  
  #Le bouton peut également être sous la forme conditionnelle
  #Le première élément ou toutes les conditions sont respectées (ou aucune présence de condition) alors le bouton indiqué est affiché
  STRING:
    -
      #Texte du bouton
      text: STRING
      #
      # OU BIEN
      #
      #Texte du bouton sous forme de liste (une ligne correspond à un retour à la ligne)
      text:
       - STRING
       - ...
      
      image: URL | SRC
      
      #Actions lorsque le bouton est actionné
      reponse:
       - ACTION
       - ...
      #
      # OU BIEN
      #
      #Actions lorsque le bouton est actionné sous forme conditionnelle
      #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté
      response:
       -
         #Conditions de la réponse
         condition:
          - CONDITION
          - ...
   
         #Action à la réponse
         action:
          - ACTION
          - ...
  
       - ...
 
    - ...
   
  ...
ExpressionDescriptionExemple

STRING

Chaîne de caractère

"Bonjour"

URL

Lien pointant vers une image (téléchargement directe)

https://img.icons8.com/?size=19&id=XfjNd4vkhBBy&format=png

SRC

Chemin dans le pack de ressource de l'image

textures/i/glyph_world_template.png

CONDITION

Correspond à une condition

ACTION

Correspond à une action

Exemple

commands:
  - menu
registerCommand: true
type: LIST

title: "&d&lTeleport to a server"

content:
  - "Welcome to the &bserver&f! You can choose the &bgame mode &fyou want to play!"
  - ""
  - "&f➤ Don't forget to &bjoin our networks&f:"
  - " &a&l✔ &b&owww.myserver.com"
  - " &a&l✔ &9&odiscord.gg/myser"
  - ""

buttons:
  survival:
    text:
      - "&c&lSMP &f- &e&lSurvival"
    image: "https://oyster.ignimgs.com/mediawiki/apis.ign.com/minecraft/5/5a/Ender_Dragon.png"
    response:
      - "[send] survival"
  skyBlock:
    text:
      - "&2&lSky&a&lBlock"
    image: "https://static.wikia.nocookie.net/minecraft_gamepedia/images/a/a4/Grass_Block_%28item%29_BE5.png/revision/latest?cb=20200901112517"
    response:
      - "[send] skyblock"
  prison:
    text:
      - "&c&lPrison"
    image: "https://static.wikia.nocookie.net/minecraft_gamepedia/images/e/e7/Diamond_Pickaxe_JE3_BE3.png/revision/latest/scale-to-width/360?cb=20200226193952"
    response:
      - "[send] prison"
  close:
    text: "&c&lClose"

Form: Custom

Structure

...

#Spécifier le type du menu
type: "CUSTOM"

#Ensemble des éléments présent dans le menu,
elements:
  #Nom de l'élément
  STRING:
    #Type de l'élément
    type: ENUM
    
    ...(Element properties)
    
    #Actions lorsque le bouton est actionné
    reponse:
     - ACTION
     - ...
    #
    # OU BIEN
    #
    #Actions lorsque le bouton est actionné sous forme conditionnelle (en plus de la manière "simple")
    #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté
    response:
      -
        condition:
         - CONDITION
         - ...
        action:
         - ACTION
         - ...
  
  #L'élément peut également être sous la forme conditionnelle
  #Le première élément ou toutes les conditions sont respectées (ou aucune présence de condition) alors l'élément indiqué est affiché
  STRING:
    -
     #Type de l'élément
     type: ENUM
     
     #Texte affiché
     text: STRING
     #
     # OU BIEN
     #
     #Le texte peut également être écrit sous forme de liste (une ligne correspondant à un retour à la ligne dans le menu)
     text:
      - STRING
      - ...
     
     ...(Element properties)
     
     #Actions lorsque le bouton est actionné
     reponse:
      - ACTION
      - ...
     #
     # OU BIEN
     #
     #Actions lorsque le bouton est actionné sous forme conditionnelle (en plus de la manière "simple")
     #Le première élément ou toutes les conditions sont respectés (ou aucune présence de condition) alors la réponse indiqué est exécuté
     response:
       -
         condition:
          - CONDITION
          - ...
         action:
          - ACTION
          - ...
    - ...
         
  ...
ExpressionDescriptionExemple

ENUM

Enumération des différents type d'élément:

LABEL, TOGGLE, INPUT, SLIDER, STEP_SLIDER, DROPDOWN

LABEL

STRING

Chaîne de caractère

"Bonjour"

CONDITION

Correspond à une condition

ACTION

Correspond à une action

Propriétés

Description: Permet d'affiché un texte informatif

ExpressionDescriptionExemple

STRING

Chaîne de caractère

"Bonjour"

BOOLEAN

Valeur true ou false

true

INTEGER

Nombre entier

5

Exemple

commands:
  - settings
type: CUSTOM
open:
  - "[sound] ENTITY_EXPERIENCE_ORB_PICKUP 1 1"

conditions:
  list:
    - "[permission] settings.edit"
  unauthorized:
    - "[message] &cYou are not allowed to edit settings!"

title: "&b&lSettings editor"

elements:
  content:
    type: LABEL
    text:
      - "&rYou are editing your &bsettings &fwith a full customization."
      - ""
      - "&f➤ Propose new settings on our discord: &9&odiscord.gg/myserver"
      - ""
  notifications:
    type: TOGGLE
    text: "&bNotifications"
    toggled: true
    response:
      - "[console] setsettings %player% notifications %result%"
      - "[message] &fYou have switch &9'Notifications' &fto &a%result%&f."
  scoreboard:
    type: TOGGLE
    text: "&bScorebard"
    toggled: true
    response:
      - "[console] setsettings %player% scoreboard %result%"
      - "[message] &fYou have switch &9'Scorebard' &fto &a%result%&f."
  dm:
    type: DROPDOWN
    text: "&bAccess to PM"
    options: ["Everyone", "Friends only", "Staff", "Nobody"]
    defaultOption: 0
    response:
      - "[console] setsettings %player% access_pm %result%"
      - "[message] &fYou have switch &9'Access to PM' &fto &a%result%&f."

Dernière mise à jour