Paste #68068: Untitled Paste

Date: 2020/04/25 13:50:28 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# Ceci est le menu de confirmation des actions, que l'on peut appeller via
# - run menuConfirmationAction def:nomScriptAccepter|TexteAccepter|definitionToPass|nomScriptRefuser instantly

# en définissant au préalable avec "- define" (obligatoire) :
# nomScriptAccepter --> Nom du script à lancer si le joueur clic sur confirmer (note le <player> est passé automatiquement)
# texteAccepter --> Texte qui sera affiché dans l'icone "accepter", les lignes et les couleurs sont déjà géré
# definitionToPass --> Définition que l'on a besoin de passer, peut être carambar/yolo. Si pas besoin de ceci, mettre quand même quelque chose comme "yolo" ou autre.
# nomScriptRefuser --> Nom du script à lancer quand le joueur refuse l'action.

# Note: le script qui se lance avec le nomScriptAccepter doit avoir un argument definitions: (car on utilise definitionToPass)
#       le script de confirmation ne gère pas le inventory close
#       le <player> est passé du début à la fin sans besoin de le définir

#Exemple de script:
# Script_to_Run:
#     type: task
#     debug: false
#     script:
#         - define nomScriptAccepter finalScriptAccepter
#         - define nomScriptRefuser finalScriptRefuser
#         - define texteAccepter "Salut comment va tu je suis la en temps que test afin de tester les choses"
#         - define definitionToPass yolo
#         - inject menuConfirmationAction

menuConfirmationAction:
    type: task
    debug: false
    definitions: nomScriptAccepter|texteAccepter|definitionToPass|nomScriptRefuser
    script:

        - define validerId 04049c90-d3e9-4621-9caf-0000aaa21774
        - define validerTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDMxMmNhNDYzMmRlZjVmZmFmMmViMGQ5ZDdjYzdiNTVhNTBjNGUzOTIwZDkwMzcyYWFiMTQwNzgxZjVkZmJjNCJ9fX0=
        - define validerDisplay <&2>Accepter
        - define validerTexteAccepter <&a><[texteAccepter]>
        - define validerLore <[validerTexteAccepter].split_lines_by_width[180].lines_to_colored_list.insert[<&sp>].at[1]>
        - define validerHead player_head[nbt=nomScriptAccepter/<[nomScriptAccepter]>|definitionToPass/<[definitionToPass]>;display_name=<[validerDisplay]>;lore=<[validerLore]>;skull_skin=<[validerId]>|<[validerTag]>]

        - define refuserId 04049c90-d3e9-4621-9caf-00000aaa9382
        - define refuserTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmViNTg4YjIxYTZmOThhZDFmZjRlMDg1YzU1MmRjYjA1MGVmYzljYWI0MjdmNDYwNDhmMThmYzgwMzQ3NWY3In19fQ==
        - define refuserDisplay <&4>Refuser
        - define refuserLore "|<&c>Cliquez ici pour refuser"
        - define refuserHead player_head[nbt=nomScriptRefuser/<[nomScriptRefuser]>;display_name=<[refuserDisplay]>;lore=<[refuserLore]>;skull_skin=<[refuserId]>|<[refuserTag]>]

        - define listItem scriptGlassPaneGray|scriptGlassPaneLime|<[validerHead]>|scriptGlassPaneLime|scriptGlassPaneGray|scriptGlassPaneRed|<[refuserHead]>|scriptGlassPaneRed|scriptGlassPaneGray

        - define inventaire <inventory[menuConfirmationInventoryScript]>
        - inventory set o:<[listItem]> d:<[inventaire]>
        - inventory open d:<[inventaire]>
        - wait 1
        - inventory update

menuConfirmationActionEventHandler:
    type: world
    debug: false
    events:
        on player clicks in menuConfirmationInventoryScript:
            # On va prendre le titre
            - determine passively cancelled

            - choose <context.raw_slot>:
                # Accepter
                - case 3:
                    - define nomScriptAccepter <context.item.nbt[nomScriptAccepter]>
                    - define definitionToPass <context.item.nbt[definitionToPass]>
                    - run <[nomScriptAccepter]> def:<[definitionToPass]> instantly

                # Refuser
                - case 7:
                    - define nomScriptRefuser <context.item.nbt[nomScriptRefuser]>
                    - run <[nomScriptRefuser]> instantly

        on player drags in menuConfirmationInventoryScript:
            - determine cancelled

menuConfirmationInventoryScript:
    type: inventory
    inventory: CHEST
    debug: false
    title: "            <&8>Confirmation"
    size: 9

# Exemple de script de fin :

# finalScriptAccepter:
#     type: task
#     debug: false
#     definitions: definitionToPass
#     script:
#         - inventory close
#         - narrate Accepter
#         - announce <[definitionToPass]>

# finalScriptRefuser:
#     type: task
#     debug: false
#     script:
#         - inventory close
#         - narrate Refuser