Add custom categories - AlonsoAliaga/BetterHeads GitHub Wiki

Add custom categories

:warning: This guide is for BetterHeads 2.0-BETA and newer. To add custom categories follow the next format:

Categories: #This the main category, don't modify
  alphabet: #Category identifier. Must be LOWERCASE and unique
    Name: Alphabet #Name without format, can have capital letters. (No colors)
    Permission: betterheads.category.alphabet #Permission required for it. You can set it to "none"
    Permission-message: '&cYou don''t have access to this category!' #Message if player doesn't have permission.
    Slot: 11 #Slot for the category in gui menu. Make sure they don't repeat, set to -1 to disable (Not recommended)
    Icons:
      Locked: #Data for locked icon
        Texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDZiYTYzMzQ0ZjQ5ZGQxYzRmNTQ4OGU5MjZiZjNkOWUyYjI5OTE2YTZjNTBkNjEwYmI0MGE1MjczZGM4YzgyIn19fQ== #Texture for the head
        Displayname: '&4&lUnknown category' #Displayname for the item
        Lore: #Lore for the item. You can set here if it requires a rank or not.
        - '&7You haven''t unlocked'
        - '&7this category.'
        - ''
        - '&cRequires &a[VIP]&c rank.'
        - '&cPurchase at &balonsoaliaga.com/plugins&c.'
      Unlocked: #Data for unlocked icon
        Texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGFkNDQ4OTkxMjAxNmYwZjkyOTVmMWYzYTc4MGY2NDFjOGE3MmVkYTExMDMyNjQzZjdkYmQ2MTljMTAxMDczYSJ9fX0= #Texture for the head
        Displayname: '&b&lAlphabet' #Displayname for the item
        Lore: #Lore for the item. You can set here if it required a rank or not.
        - '&7{AMOUNT} heads!' #You can use {AMOUNT} placeholder to be replaced for heads amount.
        - ''
        - '&cExlusive for &a[VIP]&c rank.'

When adding new head remember that:

Category identifier

Must be a string, UNIQUE and must be in LOWERCASE, can include letters, numbers and dashes only.
Example: my-custom-heads, team-heads, i-made-this-heads, variety, etc..

Name

Don't use color codes here. This is plain text, can have upper case for styling.

Permission

Permission to access to the category. Set to "none" to not require permission.

Permission-message

Message if player doesn't have the permission for the category.

Slot

Slot must be unique for the category. Set to -1 to disable category (NOT RECOMMENDED)

Icons

Since BetterHeads 2.0-BETA you can select custom locked and unlocked icons for each category.
This icons will always be custom texture heads. You can select the texture, displayname and lore for it.
You can use {AMOUNT} placeholder to be replaced for heads amount in that category.

Texture

This lines are textures url encoded. To learn how to get them from your premium player read this.

This is an example for a custom category in which I'll add my own head as icon.

Categories:
  #Rest of the other categories
  staff-heads:
    Name: Staff heads
    Permission: betterheads.category.staff-heads
    Permission-message: '&cYou need &a[VIP]&c rank to access Staff team heads!'
    Slot: 40
    Icons:
      Locked:
        Texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDZiYTYzMzQ0ZjQ5ZGQxYzRmNTQ4OGU5MjZiZjNkOWUyYjI5OTE2YTZjNTBkNjEwYmI0MGE1MjczZGM4YzgyIn19fQ==
        Displayname: '&4&lUnknown category'
        Lore:
        - '&7You haven''t unlocked'
        - '&7this category yet.'
        - ''
        - '&cRequires &5&lENDER&c rank.'
        - '&cPurchase at &balonsoaliaga.com/plugins&c.'
      Unlocked:
        Texture: eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODkxZDE1YzFiNzQxMDU5N2EzNDZjMWZmMjljMDk3NmY5OTZkMjRiMTJjOGI5Y2ZlZDFjYjBkMDVmNzMyMjk1OSJ9fX0=
        Displayname: '&d&lStaff heads'
        Lore:
        - '&7Category with our heads'
        - '&7of our Staff team!'
        - ''
        - '&7{AMOUNT} heads!'

How to add heads to this category?

Once it's created, use the category idenfifier you created (for this example it's staff-team)
and set Category option when adding custom heads. Follow this tutorial to add custom heads!

The final result will look like this:
Locked category
Unlocked category

:warning: Make sure identifier is lower case and unique, only include letters, numbers and dashes.

:warning: Remember that you must include at least ONE head in heads.yml file for this category otherwise won't be displayed.