CustomGUI Plugin Reference - Historical

Applied By derejrcar: Jun 11, 2018 at 7:51 PM

CustomGUI Plugin Reference
[​IMG]
Plugin Help Reference

THE BASICS
This text will review the basics of CustomGUI. We will be referring to "GUI" often, for those who don't know what a GUI is, it means "Guided User Interface," but for the purposes of this plugin, it is the menu that is opened through one of the various methods such as command, entity, sign, etc. In these menus, all the items will be located inside of a chest like prompt and are interacted with by players. For a player to be able to open and use any GUI they must possess the following permission:

customgui.open

In addition to this permission, which gives the user ability to open a GUI, they must also have the independent permission required for each GUI you have created.

customgui.open.<identifier>
Where "identifier" means the GUI name.

This way of organizing GUIs through a permission-based system allows you to specify which GUI's players can open allowing for specific GUI's (for instance, a ban menu) to be off-limits for players, but allowed for moderators. If, however, you want to allow access to all GUIs you can always use the character " * " in place of "gui identifier" in the specified user's permissions.

_______________________________________
DISPLAY ITEMS:
In your GUI, you may create player factor based items that can be used to display a unique item based on preset variables. You can implement these both in the configuration file for the GUI or the in-game editor that can be accessed using /cg menu.

Listed in this spoiler is the different variables you can set.
OP Item - Shown if the player is an operator.
Permission Item - Shown if the player has the defined permission to access the item.
Balance Item - Shown if the player has a certain economy balance.
EXP Item - Shown if the players has the defined experience amount
Default Item - Shown by default if no other conditions are met or defined.
_______________________________________

PLACEHOLDERS:
A "placeholder" is a piece of text that will change to display a configured variable in a text form.
CustomGUI itself has remarkable placeholders built-in it's powerful API, however, if you are looking for an extensive database of placeholders for displaying other information CustomGUI supports PlaceholderAPI, which allows you to use many different placeholders.

Listed in this spoiler are CustomGUI's built in placeholders.
Code (Text):
Player Placeholders:

%player% - players name
%player_displayname% - players display name
%player_saturation% - players saturation
%player_hunger% - players hunger
%player_health% - players health
%player_x% - players X coordinate
%player_y% - players Y coordinate
%player_z% - players Z coordinate
%player_world% - players world name
%player_level% - players level
%player_exp% - players experience
%vault_balance% - players vault balance
%mysqltoken_balance% - players mysql-token balance

Other Placeholders:

%server_motd% - message of the day
%server_maxplayers% - player maximum limit
%server_playercount% - amount of online players
%closetimer% - remaining time before the GUI closes
%closetimer_seconds% - remaining time before the GUI closes in seconds
_______________________________________

CLICK ITEMS:
Click items are items which when clicked by the player from their hot bar, will open the specified GUI. These click items also perform other actions such as taking the clicked item away after use. Click items are made in the in the configuration file and highly resemble the way a GUI item can be configured.

If you want a player to be able to receive the item when they join the game or when they respawn they must have the click item receive permission:

customgui.<identifier>.receive
"identifier" being the name of the click item.

Also with each click item you must give the player the corresponding permission to allow them to open the click item's GUI and execute commands when clicking it:

customgui.<identifier>.use
"identifier" being the name of the click item.
_______________________________________

ENTITIES:
Within the plugin, you are able to set (not create) entities that will open a GUI. Entities can be set in-game using the creation command. Once added you will be able to right-click to open the corresponding GUI as long as you have the entity permission for the corresponding GUI.

customgui.entity.interact.<identifier>
Where "identifier" means the GUI name.
_______________________________________

SIGNS:
CustomGUI also features a powerful sign system, for which you are able to define signs which when clicked will open a GUI. Signs can be set in-game by using the sign creation command. To allow players to be able to click the sign to open the linked GUI they must have the following permission.

customgui.sign.use.<identifier>
Where "identifier" means the GUI name.
_______________________________________

CONVERTER:
The plugin has a feature that allows you to transfer file types between each other. This is a useful feature when trying to keep backups or even to simply move your work. I plan on implementing converters from other menu plugins to make the change to this plugin even more seamless. At the current moment, there are the following converters which only convert menus from CustomGUI.

config->file (For users who are storing their GUIs in the config)
It is recommended that you convert your GUIs to file format.

version1->version2 (For users who used the original plugin)

To use the converter you simply enter the command in-game substituting the conversion type you would like to perform. An example of using the converter would be converting any config GUI data to separate GUI files.

/cg converter config->file
_______________________________________

MATERIALS:
Currently, the plugin only supports material names and does not support number formatted material id's. A list of all valid materials can be found at the following link:
[Click here for valid material names]

Setting an item material in your file is easy and straightforward the format for setting the material in the item section is as follows:

<Material Id>;<Amount>;<Data value>

To set a specific players skin for a player skull the item should be formatted as follows:

SKULL_ITEM;<Amount>;3;<Player name>

You can also set the player name to %player% to display the skull of whoever is viewing the GUI.

When setting potions in 1.9 or later you can add an "effect" section to show a specific type of potion. The format for the effects are <EffectType>;<Amplifier>;<Duration> you can find a list of valid effect types here:
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html

Example:
Code (Text):
          Item: POTION;1;0
          Effect: JUMP;2;1200
_______________________________________

Animated Items:
Animated items are items that you can set which will change their name, material, or even lore every X ticks as defined in your configuration.

** Not recommended below 20 ticks **
AnimationDelay: <time in ticks> (20 ticks = 1 second)

To define animated items they must have some difference between the initial value, all animated and base values cannot be the same. If you are looking for a way to update just the item lore you can use the update placeholders toggle which will use the animation delay period to update.

UpdatePlaceholders: true

So for each animated items, you can specify a value for the material, name, lore, and enchants. These will be the values of the second phase of the animation. Animations are done in a looping sequence so once it displays the animated item after the delay it will revert to the original. Below are the values you can set for the animated item.

Code (Text):

AnimatedItem: <Material Id>;<Amount>;<Data Value>
AnimatedName: 'some string'
AnimatedLore:
- 'some string'
AnimatedEnchants:
- <Enchantment Id>;<Level>
 
_______________________________________

Sounds:
All sound values that are defined throughout the config and GUI settings must use a valid sound to work correctly. A list of valid sounds can be found at the following link:
[Click here for valid sounds names]
_______________________________________

Actions:
Actions are the foundation of what is to be performed when clicking an item, opening a GUI, closing a GUI, or even using a click item. Actions all have their own unique purpose and slightly different formats. Below is a list of all valid actions that can be used throughout the plugin:

[Right-Click] [<action>] - Will only execute the action if the item is right clicked
[Left-Click] [<action>] - Will only execute the action if the item is left clicked'
[Chance=<percentage>] [<action>] - Chance out of 100% that this action will be performed
[Delay=<time>] [<action>] - Delays the action to be performed after the delay period in seconds
[SyncTask][<action>] - Performs the action in sync with the server tick
[PlayerCommand] <command> - Executes the command as a player
[ConsoleCommand] <command> - Executes the command as the console
[OperatorCommand] <command> - Executes the command as an operator
[Broadcast] <message> - Broadcasts the following message to the server
[Message] <message> - Sends the following message to the player
[JSONBroadcast] <message> - Sends the JSON message to the server
[JSONMessage] <message> - Sends the JSON message to the player
[Sound] <sound value> - Plays the sound for the player
[OpenGUI] <gui identifier> - Opens the specified GUI for the player
[CloseGUI] - Closes the GUI the player has open
[GiveClickItem] <clickitem identifier> - Gives the player the specified click item
[TakeClickItem] <clickitem identifier> - Takes the player the specified click item from the players inventory
[SetClickDelay] <gui identifier>;<item type>;<item slot>;<new delay> - Sets the item click delay timer
[VaultGive] <amount> - Adds the amount to the players Vault economy balance
[VaultTake] <amount> - Takes the amount from the players Vault economy balance
[Teleport] <world name>;<x>;<y>;<z> - Teleports the player to the specified coordinates
[Teleport] <world name>;<x>;<y>;<z>;<yaw>;<pitch> - Teleports the player to the specified coordinates
[Bungee] <server> - Sends the player to the specified bungee server

You can also specify arguments in actions which will replace with whatever the player types in chat. You can specify up to a maximum of 3 arguments at the moment by entering the following in the action:

%args1%, %args2%, or %args3%
_______________________________________

Commands:
This plugin has a wide range of commands that can be used to open GUI's, or even perform important functions like reloading the plugin. You can either use /customgui or its alias /cg for all the following commands.

/cg help - Displays the help message - customgui.help
/cg menu
- Opens the GUI functions menu - customgui.menu
/cg open <gui command>
- Opens the specified GUI - customgui.open.<gui name>
/cg open <gui command> <player>
- Opens the GUI for the specified player - customgui.open.others
/cg creategui <gui name>
- Creates a GUI with the specified name - customgui.creategui
/cg edit <gui name>
- Opens the layout editor for the specified GUI - customgui.edit
/cg converter <convert type>
- Opens the layout editor for the specified GUI - customgui.converter
/cg clickitem create <gui name>
- Creates a click item for the specified GUI - customgui.clickitem.create
/cg clickitem delete <click identifier>
- Deletes the specified click item - customgui.clickitem.delete
/cg clickitem give <click identifier> <player>
- Gives the player the specified click item - customgui.clickitem.give
/cg clickitem give <click identifier> <player> (itemslot)
- Sets the players itemslot as the click item - customgui.clickitem.give
/cg clickitem take <click identifier> <player>
- Takes the click item from the players inventory - customgui.clickitem.take
/cg entity create <gui name>
- Adds the entity nearby you as a GUI entity for the specified GUI -customgui.entity.create
/cg entity delete <gui name>
- Removes the GUI entity nearby you from the database - customgui.entity.delete
/cg sign create <gui name>
- Sets the sign you're viewing as a GUI sign for the specified GUI - customgui.sign.create
/cg sign delete
- Removes the GUI sign you're viewing from the database - customgui.sign.delete
/cg setclickdelay <player> <gui name> <item type> <item slot> <new delay>
- Sets the item click delay - customgui.setclickdelay
/cg reload
- Reloads all the plugin files - customgui.reload
_______________________________________

BalanceType:
In the plugin, there is support for multiple economy plugins to make creating things such as shops easier than ever. If you have an economy that is currently not supported and you would like me to add support for it I am more than willing to do so if I can be provided with a copy of the plugin, and it has an API in place. Below are the valid balance type identifiers that can be set for each item in the "BalanceType" section.

Vault Economy - 'vault'
MySQL-Tokens - 'mysql-tokens'
TokenManager - 'token-manager'
_______________________________________

Custom Messages:
While there is a custom messages.yml file where you can change each message you may need a specific one for a certain item or GUI. CustomGUI allows you to define specific custom messages for individual items. Below are examples of custom messages being implemented.

Code (Text):
  StarterArmor:
    ItemSlot: 32
    Permission: kit.permission
    NoItemPermission: '&cYou don''t have access to this kit!'
    PermissionItem:
      Priority: 2
      Permission: essentials.kits.starterarmor
      ClickDelay: 0
      BalanceType: economy
      AnimationDelay: 0
      Item: LEATHER_HELMET;1;0
      Name: '&6Starter Armor'
      Lore:
      - '&7A basic kit that contains all of'
      - '&7the starter armor!'
      - ''
      - '&e&oReceive the kit &f&o[Left-Click]'
      - '&e&oView the kits contents &f&o[Right-Click]'
      Enchants: []
      ClickActions: []
      ClickCost: 50
      CloseOnClick: true
      InsufficientFunds: '&cYou can''t afford this kit!'
      ClickingItemTooFast: '&cYou must wait %time% before using this kit again'
_______________________________________

Configuration Files:

Code (Text):
# ======================================================
#
# CustomGUI Version: 2.0.8
# Created by: JC_Plays_MC
# Link: http://bit.ly/customgui
#
# ======================================================
#
# This is the CustomGUI configuration file where all general settings
# and other plugin toggles will be found. If you have any questions feel free
# to ask me preferably by PM on spigot. Also if you have any feature suggestions
# or anything like that i'm always open to new ideas.
#
# Thank you for supporting this project!
#
# ======================================================
#
# Settings Configuration
#
# This setting toggles wether or not to use individual file based GUI's or to keep
# them all stored in the config. Set as any value other than 'file' to store GUI's
# in this configuration file.
# GUIFormat: file
#
# This sets a global value (in seconds) of how long before a player is allowed to click on
# another item within any of the GUI's. Set to 0 to have no delay
# PlayerClickDelay: 0
#
# Set as true or false this determines whether or not the GUI should be closed if a player
# clicks again before the player click delay has expired.
# CloseWithinDelay: true
#
# If set to true this will allow click items to override any item in the players hotbar if
# an item slot is provided. If set as false it will not override items.
# OverrideClickItems: false
#
# ======================================================
#
# Registered GUI's Format
#
# The registered GUI section is where you toggle most settings for the general framework of each
# GUI. Here you will set click items, commands and other various aspects related to each GUI. Every
# single GUI must be listed below otherwise it will not be accessible by any means in-game. When creating
# any GUI's in-game this section will automatically be created.
#
# RegisteredGUI:
#   <GUI Identifier>:
#     Enabled: <true/false>
#     OpenDelay: <time in seconds>
#     Worlds:
#     - <world name>
#     Commands:
#     - <open command without the slash>
#     SignLocations:
#     - <registered sign location>
#     EntityLocations:
#     - <registered sign location>
#     ClickItems:
#       <Click Item Identifier>:
#
# Registered GUI's Index:
#
# <GUI Identifier> | The unique identifier for each GUI, they must all be different
# Enabled: <true/false> | The toggle to enable and disable the GUI in-game. true = enabled | false = disabled
# OpenDelay: <time in seconds> | The time in seconds before a player can open the same GUI again
# Worlds: - <world name> | A list of worlds the GUI can be opened in, if empty any world is allowed
# Commands: - <open command> | A list of the valid commands that can be used to open the GUI
# SignLocations: - <sign location> | All signs created in-game will be set under the defined GUI
# EntityLocations: - <entity location> | All entities created in-game will be set under the defined GUI
# ClickItems: <Click Item Identifier> | Visit the plugin page for more info on click items
#
# ======================================================
#
# GUI Format:
#
# This is a description of how to format the GUI's from within the config if you choose not to do
# so in-game. All file based GUI's are also formatted in the same way. If you want a full detailed
# explanation of how to create a GUI be sure to check out the plugin page.
#
# GUIList:
#   <GUI Identifier>:
#     Size: <gui size>
#     Name: <chest name>
#     CloseAfter: <time in seconds>
#     OpenActions:
#     - <action>
#     CloseActions:
#     - <action>
#     Items:
#       <Item Id>:
#         ItemSlot: <display slot>
#         Permission: <item permission>
#         NoPermissionSound: <sound value>
#         <Item Type>:
#           Priority: <1-5>
#           ClickDelay: <time in seconds>
#           BalanceType: <economy type>
#           AnimationDelay: <time in ticks>
#           Item: <material;amount;data>
#           Name: <item name>
#           Lore:
#           - <lore line>
#           Enchants:
#           - <enchant;level>
#           HideEnchants: <true/false>
#           HideAttributes: <true/false>
#           HidePotionEffects: <true/false>
#           ShowDelay: <true/false>
#           ClickActions:
#           - <click action>
#           ClickCost: <value>
#           RequiredItem: <material;amount;data>
#           RequiredItemName: <item name>
#           RequiredItemLore:
#           - <lore line>
#           TakeRequiredItem: <true/false>
#           CloseOnClick: <true/false>
#
# GUI Format Index:
#
# <GUI Identifier> | The unqiue identifier for each GUI, they must all be different
# Size: <gui size> | The amount of slots you would like the GUI to have (9, 18, 27, 36, 45, 54)
# Name: <chest name> | The chest name you would like to display for the GUI. Supports (most) placeholders
# CloseAfter: <time in seconds> | The amount of time the player can view the GUI before it will close
# OpenActions: - <action> | The actions to perform upon a player opening the GUI
# CloseActions: - <action> | The actions to perform upon a player closing the GUI
# Items: | The section that stores all of your item identifiers
# <Item Id>: | The unqiue identifier for each item in the GUI, they must all be different
# ItemSlot: <display slot> | The slot you would like the item to display in (0-53)
# Permission: <item permission> | The permission required to click the item in the GUI
# NoPermissionSound: <sound value> | The sound to be played if the player doesn't have permission
# <Item Type> | The item type specific item to display in the GUI. More info can be found on the plugin page.
# Priority: <1-5> | The priority of the item type that will be determined first. 1 = highest, 5 = lowest
# ClickDelay: <time in seconds> | The time in seconds before the player can click this item again
# BalanceType: <economy type> | The economy type used for the clickcost and balance item
# AnimationDelay: <time in ticks> | The time in ticks before updating between the animated and regular item
# Item: <material;amount;data> | The item material and amount to be displayed in the GUI
# Name: <item name> | The name that the item in the GUI will have displayed
# Lore: - <lore line> | The lore that the item will have displayed in the GUI
# Enchants: - <enchant;level> | The enchantments that the item in the GUI will have
# HideEnchants: <true/false> | This toggle will determine whether or not to hide enchants to give a 'glow' effect
# HideAttributes: <true/false> | This toggle will determining whether or not to hide item attributes
# HidePotionEffects: <true/false> | This toggle will determining whether or not to hide item potion effects
# ShowDelay: <true/false> | If true it will display an extra lore line with the remaining click delay time
# ClickActions: - <click action> | The actions to perform upon a player clicking the item
# ClickCost: - <value> | The required amount of currency to use the item.
# RequiredItem: <material;amount;data> | The item the player must have in their inventory to click item
# RequiredItemName: <item name> | The name of the item the player must have in their inventory to click item
# RequiredItemLore: - <lore line> | The lore of the item the player must have in their inventory to click item
# TakeRequiredItem: <true/false> | Whether or not you want to take the required item on item click
# CloseOnClick: <true/false> | Whether or not you want the GUI to close on item click
#
# ======================================================
#
# Valid Actions:
#
# ** Please note that all actions are case-sensitive **
#
# [Right-Click] [<action>] - Will only execute the action if the item is right clicked
# [Left-Click] [<action>] - Will only execute the action if the item is left clicked
# [Delay=<time>] [<action>] - Delays the action to be performed after the delay period in seconds
# [PlayerCommand] <command> - Executes the command as a player
# [ConsoleCommand] <command> - Executes the command as the console
# [Broadcast] <message> - Broadcasts the following message to the server
# [Message] <message> - Sends the following message to the player
# [Sound] <sound value> - Plays the sound for the player
# [OpenGUI] <gui identifier> - Opens the specified GUI for the player
# [CloseGUI] <value not required> - Closes the GUI the player has open
# [GiveClickItem] <clickitem identifier> - Gives the player the specified click item
# [TakeClickItem] <clickitem identifier> - Removes the click item from the players inventory
# [Teleport] <world name;x;y;z> - Teleports the player to the specified coordinates
# [Bungee] <server> - Sends the player to the specified bungee server
#
# ======================================================

GUIFormat: config
PlayerClickDelay: 1
CloseWithinDelay: false
OverrideClickItems: false
RegisteredGUI:
  Example:
    Enabled: true
    OpenDelay: 3
    Worlds: []
    Commands:
    - example
    SignLocations: []
    ClickItems:
      ExampleItem:
        ClickType: both
        Name: '&aCustomGUI &f| &bClick Item Example'
        Item: BOOK;1;0
        Lore:
        - '&7Hello %player%!'
        - '&7Click to open the example GUI!'
        Enchants: []
        ClickActions:
        - '[Message] &aThis is a click item action message!'
        BlockMovement: true
        BlockDrop: true
        GiveOnJoin: true
        GiveOnRespawn: true
        GiveItemSlot: 100
        TakeOnClick: false
    EntityLocations:
    - VILLAGER;Prison;-5;61;-6
GUIList:
  Example:
    Size: 27
    Name: '&8Example GUI Name'
    CloseAfter: 30
    Items:
      ExampleItem1:
        ItemSlot: 11
        Permission: item1.permission
        NoPermissionSound: ANVIL_LAND
        DefaultItem:
          Priority: 5
          ClickDelay: 76283682
          BalanceType: vault
          AnimationDelay: 19
          Item: DIAMOND_BLOCK;1;0
          Name: '&b&l* &bWelcome to the plugin! &b&l*'
          Lore:
          - '&8&m----------------------------'
          - '&7Start off by creating a GUI!'
          - '&7&l> &a/cg creategui <gui name>'
          - '&8&m----------------------------'
          - '&CThe GUI will close in: %closetimer%'
          Enchants:
          - DURABILITY;1
          AnimatedItem: EMERALD_BLOCK;1;0
          AnimatedName: '&a&l* &aWelcome to the plugin! &a&l*'
          AnimatedLore:
          - '&8&m----------------------------'
          - '&7Start off by creating a GUI!'
          - '&8&l> &a/cg creategui <gui name>'
          - '&8&m----------------------------'
          - '&CThe GUI will close in: %closetimer%'
          HideEnchants: true
          ShowDelay: true
          ClickActions:
          - '[Message] &aYou clicked the example item!'
          - '[Message] &aTeleporting in: 3'
          - '[Delay=1][Message] &aTeleporting in: 2'
          - '[Delay=2][Message] &aTeleporting in: 1'
          - '[Delay=3][Message] &aTeleporting...'
          - '[Delay=3][Teleport] %player_world%;%player_x%;160;%player_z%'
          - '[CloseGUI]'
          ClickCost: 0
          CloseOnClick: false
      ExampleItem2:
        ItemSlot: 15
        Permission: item2.permission
        NoPermissionSound: ANVIL_LAND
        DefaultItem:
          Priority: 5
          ClickDelay: 10
          BalanceType: vault
          AnimationDelay: 19
          Item: DIAMOND_BLOCK;1;0
          Name: '&b&l* &bWelcome to the plugin! &b&l*'
          Lore:
          - '&8&m----------------------------'
          - '&7You can edit almost every GUI aspect in-game!'
          - '&7&l> &a/cg menu'
          - '&8&m----------------------------'
          - '&CThe GUI will close in: %closetimer%'
          Enchants:
          - DURABILITY;1
          AnimatedItem: EMERALD_BLOCK;1;0
          AnimatedName: '&a&l* &aWelcome to the plugin! &a&l*'
          AnimatedLore:
          - '&8&m----------------------------'
          - '&7You can edit almost every GUI aspect in-game!'
          - '&8&l> &a/cg menu'
          - '&8&m----------------------------'
          - '&CThe GUI will close in: %closetimer%'
          HideEnchants: true
          ShowDelay: true
          ClickActions:
          - '[PlayerCommand] cg menu'
          ClickCost: 0
          CloseOnClick: true
      AuthorItem:
        ItemSlot: 13
        DefaultItem:
          Priority: 5
          BalanceType: vault
          Item: SKULL_ITEM;1;3;JC_Plays_MC
          Name: '&7-=[ &b&lCustomGUI &7]=-'
          Lore:
          - '&8&m----------------------------'
          - '&7Created by: JC_Plays_MC'
          - '&a[Click] for the plugin page link'
          - '&8&m----------------------------'
          Enchants: []
          ClickActions:
          - '[Message] &8&m----------------------------'
          - '[Message] &bCustomGUI Plugin Page:'
          - '[Message] &7http://bit.ly/customgui'
          - '[Message] &8&m----------------------------'
          ClickCost: 0
          CloseOnClick: true
 

Code (Text):
# CustomGUI Messages Version: 2.0.8
#
# These are the messages used throughout the plugin and you can
# edit them as you please. You can also leave messages empty if you dont
# want anything to be sent to the player.

PluginHelp1:
- '&8&m------------------------------'
- '&bCustomGUI Help:    &7Page [1/2]'
- '&a- /cg help &f- Displays this help message'
- '&a- /cg menu &f- Opens the GUI functions menu'
- '&a- /cg open <gui command> &f- Opens the specified GUI'
- '&a- /cg open <gui command> (player) &f- Opens the GUI for the player'
- '&a- /cg creategui <gui name> &f- Creates a GUI with the sepcified name'
- '&a- /cg edit <gui name> &f- Opens the layout editor for the GUI'
- '&a- /cg converter <convert type> &f- Copies GUI data to another format'
- '&a- /cg entity create <gui name> &f- Creates a NPC for the GUI'
- '&a- /cg entity delete <gui name> &f- Deletes a NPC for the GUI'
- '&8&m------------------------------'
- '&bTo view the next page /customgui help 2'
- '&8&m------------------------------'
PluginHelp2:
- '&8&m------------------------------'
- '&bCustomGUI Help:    &7Page [2/2]'
- '&a- /cg clickitem create <gui name> &f- Creates a clickitem for the specified GUI'
- '&a- /cg clickitem delete <click id> &f- Deletes the sepcified click item'
- '&a- /cg clickitem give <click id> <player> &f- Gives the player the specified click
  item'
- '&a- /cg clickitem give <click id> <player> (itemslot) &f- Sets the players itemslot
  as a click item'
- '&a- /cg clickitem take <click id> <player> &f- Takes the click item from the players
  inventory'
- '&a- /cg sign create <gui name> &f- Sets the sign as a GUI sign'
- '&a- /cg sign delete &f- Removes the GUI sign from the database'
- '&a- /cg reload &f- Reloads all of the plugin files'
- '&8&m------------------------------'
- '&bTo view the previous page /customgui help'
- '&8&m------------------------------'
IncorrectFormat: '&cPlease enter /customgui help for a list of valid commands'
NoCommandPermission: '&cYou do not have permission to use this command'
NoItemPermission: '&cYou do not have permission to use this item'
NoGUIPermission: '&cYou do not have permission to open this GUI'
InvalidPage: '&cThat page does not exist'
PlayerNotOnline: '&cThe player %target_player% is not online'
FileTypeDisabled: '&cThat file type is currently disabled'
GUIDisabled: '&cThis GUI is currently disabled'
DisallowedWorld: '&cYou cannot open the GUI in your current world'
InvalidGUI: '&cThe GUI you have specified does not exist'
SpecifyGUI: '&cYou must specify a GUI'
SpecifyPlayer: '&cYou must specify a player'
SpecifyClickId: '&cYou must specify a click id'
InvalidClickItem: '&cThe click item %click_id% does not exist'
ClickItemAlreadyExists: '&cThe click item you tried to create already exists'
DoesntHaveClickItem: '&c%target_player% doesn''t have the click item %click_id% in
  their inventory'
AddedClickItem: '&aThe click item has successfully been added'
RemovedClickItem: '&aThe click item %click_id% has successfully been removed'
RecievedClickItem: '&a%target_player% has received the click item %click_id%'
TookClickItem: '&aYou took the click item %click_id% from %target_player%''s inventory'
SlotContainsItem: '&cThe slot specified already has an item in it'
InvalidItemSlot: '&cThe slot value must be between 0-8'
ChatResponseCancelled: '&cThe chat response has been cancelled'
ChatResponseTimeout: '&cThe chat response has timed out'
ItemNamePrompt: '&aEnter the new item name in chat &7- Enter ''[Cancel]'' to cancel
  the response'
ItemLorePrompt: '&aEnter the new lore line in chat &7- Enter ''[Cancel]'' to cancel
  the response'
ItemEnchantPrompt: '&aEnter the new enchantment in chat &7- Format: <Enchantment>;<Level>'
ItemActionPrompt: '&aEnter the new action in chat &7- Enter ''[Cancel]'' to cancel
  the response'
ItemPermissionPrompt: '&aEnter the new view permission in chat &7- Enter ''[Cancel]''
  to cancel the response'
ItemNameUpdated: '&aThe item name has been updated'
ItemLoreUpdated: '&aThe item lore has been updated'
ItemEnchantUpdated: '&aThe item enchantments have been updated'
ItemActionUpdated: '&aThe item click actions have been updated'
ItemPermissionUpdated: '&aThe view item permission has been updated'
EnchantLevelError: '&cThe enchantment level must be at least 1'
InvalidEnchantment: '&cThe enchantment specified is not valid enchantment'
GUILayoutSaved: '&aThe GUI layout has been saved'
GUICreated: '&aThe GUI has been created'
GUIAlreadyExists: '&cA GUI with that identifier already exists'
SignAlreadyExists: '&cThe sign you are looking at is already in the database'
SignAdded: '&aThe sign has been added to the database'
SignRemoved: '&aThe sign has been removed from the database'
NotAValidSign: '&cYou are not looking at a GUI sign'
NotLookingAtSign: '&cYou are not looking at a sign'
ClickingTooFast: '&cYou must wait %time% before clicking another item'
ClickingItemTooFast: '&cYou must wait %time% before clicking this item again'
OpenTooFast: '&cYou must wait %time% before opening this GUI again'
InsufficientFunds: '&cYou only have %player_balance%. You need %cost% to use this
  item'
MustBeHoldingItem: '&cYou must be holding an item in your hand'
MustHaveCustomName: '&cThe item in your hand must have a custom name'
MissingRequiredItem: '&cYou need to have %amount% %item% to use this item'
NoNearbyEntities: '&cThere are no entities close enough to you'
TooManyEntities: '&cThere are too many entities around you'
EntityAlreadyExists: '&cThis entity is already registered in the database'
EntityNotRegistered: '&cThis entity is not in the database'
NoEntitiesRegistered: '&cThere are no entities for this GUI'
EntityAdded: '&aThe entity has been added to the database'
EntityDeleted: '&aThe entity has been deleted from to the database'
SuccessfullyConverted: '&aThe file conversion has completed!'
 

Code (Text):
Size: 9
Name: A GUI
CloseAfter: 0
Items:
  <ItemId>:
    ItemSlot: 0
    Permission: <Item Permission>
    NoPermissionSound: ITEM_PICKUP
    DefaultItem:
      Priority: 5
      ClickDelay: 0
      BalanceType: vault
      AnimationDelay: 0
      Item: STONE;1;0
      Name: '&b<Item Name>'
      Lore:
      - '&7<Item Lore>'
      Enchants:
      - DURABILITY;1
      AnimatedItem: ''
      AnimatedName: ''
      AnimatedLore: []
      AnimatedEnchants: []
      HideEnchants: true
      HideAttributes: false
      HidePotionEffects: false
      ShowDelay: false
      ClickActions:
      - '[PlayerCommand] spawn'
      - '[Message] You clicked the item!'
      ClickCost: 0
      RequiredItem: ''
      RequiredItemName: ''
      RequiredItemLore: []
      TakeRequiredItem: false
      CloseOnClick: true
 

Contributors: JC_Plays_MC (Creator of CustomGUI) derejrcar (Self proclaimed expert on CustomGUI)