# Friend Types

The command type for enabling friends is `friends`

In the command, you can select the subcommand types listed below. The `list` subcommand type is required as the `/friends` command also runs this subtype.

<table><thead><tr><th width="249.33333333333331">Sub Type</th><th>Usage</th><th>Description</th></tr></thead><tbody><tr><td><code>request</code></td><td><code>/[friends] [name] [player]</code></td><td>Used to send a friend request to a player.</td></tr><tr><td><code>accept</code></td><td><code>/[friends] [name]</code></td><td>Displays a inventory of the players that have required to be your friend.</td></tr><tr><td><code>list</code></td><td><code>/[friends] [name]</code></td><td>Displays a inventory with all of your friends in.</td></tr><tr><td><code>online</code></td><td><code>/[friends] [name]</code></td><td>Displays a inventory with all of your online friends in.</td></tr><tr><td><code>settings</code></td><td><code>/[friends] [name]</code></td><td>Displays the friend settings.</td></tr><tr><td><code>unfriend</code></td><td><code>/[friends] [name] [player]</code></td><td>Used to unfriend a player and remove them from your friend list.</td></tr><tr><td><code>message</code></td><td><code>/[friends] [name] [player] [message]</code></td><td>Used to message a friend.</td></tr><tr><td><code>reply</code></td><td><code>/[friends] [name] [message]</code></td><td>Used to reply to the last message.</td></tr></tbody></table>

{% code title="Example" overflow="wrap" %}

```yaml
friends:
  type: "friends"
  enabled: true
  name: "friends"

  proxy_join: "&8[&a+&8] &7Your friend &a<player> &7joined {server_formatted}"
  proxy_leave: "&8[&c-&8] &7Your friend &c<player> &7left the network"
  server_change: "&8[&e=&8] &7Your friend &e<player> &7switched to {server_formatted}"

  list:
    name: "list"
    enabled: true
    # Lets you see other players friend lists.
    permission_see_any: "leaf.friends.see"
    not_found: "{error_colour}Player could not be found."
    error: "{error_colour}Error occurred when opening inventory."
    # %name% : Formatted name.
    # %date% : Date they started being friends
    # %last_mail% : The last mail that was sent.
    # %mail_status% : If the mail was read or not.
    player:
      skull: "%name%"
      name: "&6&l%name%"
      lore:
        - "&7Friends since %date%"
    no_player:
      material: LIGHT_GRAY_STAINED_GLASS_PANE
    # The inventory displaying the friend list.
    inventory:
      size: GENERIC_9X6
      title: "&8&lFriends List"
      content:
        "top,bottom":
          material: LIME_STAINED_GLASS_PANE
        "row1,row2,row3,row4":
          function:
            type: "player"
        "45":
          function:
            type: "last_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lLast Page"
          lore:
            - "&7Click to go back a page"
        "53":
          function:
            type: "next_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lNext Page"
          lore:
            - "&7Click to go to the next page"

  online:
    name: "online"
    enabled: true
    # Lets you see other players friend lists.
    permission_see_any: "leaf.friends.see"
    not_found: "{error_colour}Player could not be found."
    error: "{error_colour}Error occurred when opening inventory."
    # %name% : Formatted name.
    # %date% : Date they started being friends
    # %last_mail% : The last mail that was sent.
    # %mail_status% : If the mail was read or not.
    player:
      skull: "%name%"
      name: "&6&l%name%"
      lore:
        - "&7Friends since %date%"
    no_player:
      material: LIGHT_GRAY_STAINED_GLASS_PANE
    # The inventory displaying the friend list.
    inventory:
      size: GENERIC_9X6
      title: "&8&lFriends List"
      content:
        "top,bottom":
          material: LIME_STAINED_GLASS_PANE
        "row1,row2,row3,row4":
          function:
            type: "player"
        "45":
          function:
            type: "last_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lLast Page"
          lore:
            - "&7Click to go back a page"
        "53":
          function:
            type: "next_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lNext Page"
          lore:
            - "&7Click to go to the next page"


  request:
    name: "request"
    enabled: true
    not_found: "{error_colour}Player has never played on this server."
    requests_off: "{error_colour}This player has there friend requests off."
    self: "{error_colour}You can not be friends with your self."
    # Placeholders will parse in terms of the other player.
    sent: "{message} You have sent a friend request to &f<player>"
    # Placeholders will parse in terms of the player that sent the request.
    from: "{message} You have received a friend request from &f<player>. &aTo accept run the command &e/friends accept"

  accept:
    name: "accept"
    enabled: true
    error: "{error_colour}Error occurred when opening inventory."
    requests_off: "{error_colour}This player has there friend requests off."
    already_requested: "{error_colour}You have already requested to be friends with this player."
    # Placeholders will parse in terms of the player that sent the request.
    # Message is sent to the friend accepter.
    from: "{message} You are now friends with &f<player>"
    # Placeholders will parse in terms of the player that accepted the friend request.
    # Message is sent to the requester.
    sent: "{message} You are now friends with &f<player>"
    # %name% : Formatted name of the player that is requesting.
    player:
      skull: "%name%"
      name: "&6&l%name%"
      lore:
        - "&7Click to open request options."
    no_player:
      material: LIGHT_GRAY_STAINED_GLASS_PANE
    # The inventory displaying the friend requests list.
    inventory:
      size: GENERIC_9X6
      title: "&8&lFriend Requests"
      content:
        "top,bottom":
          material: LIME_STAINED_GLASS_PANE
        "row1,row2,row3,row4":
          function:
            type: "player"
        "45":
          function:
            type: "last_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lLast Page"
          lore:
            - "&7Click to go back a page"
        "53":
          function:
            type: "next_page"
            always_show: false
          material: YELLOW_STAINED_GLASS_PANE
          name: "&a&lNext Page"
          lore:
            - "&7Click to go to the next page"
    options:
      size: GENERIC_9X3
      title: "&8&lFriend Request"
      content:
        "0-2,9-11,18-20":
          function:
            type: "deny"
          material: RED_STAINED_GLASS_PANE
          name: "&c&lDeny"
          lore:
            - "&7Anonymously remove this player"
            - "&7from your requests."
        "6-8,15-17,24-26":
          function:
            type: "accept"
          material: LIME_STAINED_GLASS_PANE
          name: "&a&lAccept"
          lore:
            - "Click to &aaccept &7friend request."

  settings:
    name: "settings"
    enabled: true
    error: "{error_colour}Error occurred when opening inventory."
    inventory:
      size: GENERIC_9X3
      title: "&8&lFriend Requests"
      content:
        "row0,row2":
          material: GRAY_STAINED_GLASS_PANE
        "10":
          function:
            type: "toggleProxyJoin"
            # When true what should the item be overridden with
            true:
              material: LIME_STAINED_GLASS_PANE
          # Default item
          material: RED_STAINED_GLASS_PANE
          name: "&6&lToggle Join Messages"
          lore:
            - "&7Click to toggle join messages"
            - "&6Currently &f%toggleProxyJoin%"
        "11":
          function:
            type: "toggleProxyLeave"
            # When true what should the item be overridden with
            true:
              material: LIME_STAINED_GLASS_PANE
          # Default item
          material: RED_STAINED_GLASS_PANE
          name: "&6&lToggle Leave Messages"
          lore:
            - "&7Click to toggle leave messages"
            - "&6Currently &f%toggleProxyLeave%"
        "12":
          function:
            type: "toggleServerChange"
            # When true what should the item be overridden with
            true:
              material: LIME_STAINED_GLASS_PANE
          # Default item
          material: RED_STAINED_GLASS_PANE
          name: "&6&lToggle Server Change Messages"
          lore:
            - "&7Click to toggle server change messages"
            - "&6Currently &f%toggleServerChange%"
        "15":
          function:
            type: "toggleMail"
            # When true what should the item be overridden with
            true:
              material: LIME_STAINED_GLASS_PANE
          # Default item
          material: RED_STAINED_GLASS_PANE
          name: "&6&lToggle Mail"
          lore:
            - "&7Click to toggle mail"
            - "&6Currently &f%toggleMail%"
        "16":
          function:
            type: "toggleRequests"
            # When true what should the item be overridden with
            true:
              material: LIME_STAINED_GLASS_PANE
          # Default item
          material: RED_STAINED_GLASS_PANE
          name: "&6&lToggle Friend Requests"
          lore:
            - "&7Click to toggle friend requests"
            - "&6Currently &f%toggleRequests%"

  unfriend:
    name: "unfriend"
    enabled: true
    not_found: "{error_colour}Invalid player name."
    # Placeholders will register in terms of the friend.
    message: "{message} You are no longer friends with <player>"

  message:
    enable: true
    name: "msg"
    not_found: "{error_colour}Player is not online."
    not_friend: "{error_colour}You are not friends with this player."
    message_self: "{error_colour}You cannot message yourself."
    ignoring: "{error_colour}You have ignored this player."
    recipient_ignoring: "{error_colour}This player has ignored you."
    toggled: "{error_colour}You have your messages toggled."
    recipient_toggled: "{error_colour}This player has there messages toggled."
    # Placeholders will parse in terms of the other player.
    to: "&f✉ &7&ome -> &f&o<player> &7&o: &f&o%message%"
    from: "&f✉ &f&o<player> -> &7&ome &7&o: &f&o%message%"
    # Spy is where other players can see messages.
    spy_format: "&8&o%from% -> %to% : %message%"

  reply:
    type: "reply"
    enable: true
    name: "r"
    not_found: "{error_colour}You have no conversation to reply to."
    not_friend: "{error_colour}You are not friends with this player."
    ignoring: "{error_colour}This player is ignoring you."
    toggled: "{error_colour}You have your messages toggled."
    recipient_toggled: "{error_colour}This player has there messages toggled."
    # Placeholders will parse in terms of the other player.
    to: "&f✉ &7&ome -> &f&o<player> &7&o<server> &7&o: &f&o%message%"
    from: "&f✉ &f&o<player> &7&o<server> -> &7&ome &7&o: &f&o%message%"
    # Spy is where other players can see messages.
    spy_format: "&8&o%from% -> %to% : %message%"
```

{% endcode %}
