Custom GUI

Since 2.1.0 version, it's possible to use FrameOpenEvent and FrameTag. To change the GUI we will cancel the event passively and then call our own inventory.

One of the way of using FrameOpenEvent is call frame from the event declaration:

my_gui:
    type: world
    events:
        on frame clanlist open:
        - determine passively cancelled
        - inventory open d:my_inventory_script

List of all available frames is here.

Another idea is get a class name by JavaReflectedObjectTag:

my_gui:
    type: world
    events:
        on frame open:
        - define frame <context.frame.reflected_internal_object.simple_class_name>
        - if <[frame]> == "MainFrame":
            - determine passively cancelled
            - inventory open d:my_inventory_script

You have the right to choose the method that you like best.

Example

MyGUI.dsc
my_gui:
    type: world
    events:
        on frame open:
            - define frame <context.frame.reflected_internal_object.simple_class_name>
            - if <[frame]> == "MainFrame":
                - determine passively cancelled
                - inventory open d:my_inventory_script

my_inventory_gui_world:
    type: world
    events:
        after player clicks big_button_item in my_inventory_script:
        - narrate "<&[base]>Wow! You pressed the button!"
        after player clicks my_inv_gui_cancel_item in my_inventory_script:
        - inventory close

my_inventory_script:
    type: inventory
    inventory: chest
    title: <&9><bold>My Inventory GUI Sample
    gui: true
    slots:
    - [] [] [] [] [] [] [] [] []
    - [] [] [] [] [big_button_item] [] [] [] []
    - [] [] [] [] [] [] [] [] [my_inv_gui_cancel_item]

big_button_item:
    type: item
    material: beacon
    display name: <&2>Clan info
    lore:
    - <&7>Clan: <&c><player.clan.color_tag>
    - <&7>Your Rank: <clanplayer[player.uuid].rank_display_name>

my_inv_gui_cancel_item:
    type: item
    material: barrier
    display name: <&c>Cancel
    lore:
    - <&7>Click here to not press the button.

You can read denizen guide about creation GUI here.

Last updated