support Minelmatrix

 

Works with versions: 1.7 - 1.17.x

Plugin UltimateFriends (for BungeeCord) is great for your bungee network. Players can easily manage their friend list, without any unnecessary commands! You can control this plugin using buttons in the chat.
You can browse your friend list, configure options, send messages to your friends or connect to server, where your friend is connected.
Simply awesome!

Features

  • Clickable messages and buttons in chat
  • Add/remove your friend with a few clicks
  • Connect to server where your friend is
  • Send messages to your friends, even if they are on another server
  • Broadcast messages to all friends
  • Every player can set his options:
    • Show/hide messages, if player connect to server
    • Show/hide messages, if player disconnect from server
    • Show/hide messages, if player change server
    • Allow/deny new requests for friendship
    • Allow/deny private messages
    • Show/hide friends broadcasts
  • Customisable messages in config
  • Display last seen info
  • Customisable commands and aliases
  • Custom chat plugins support
  • Data can be stored in file or in MySQL database
  • Disable plugin on specific servers
  • Add custom buttons below friend list
  • Regex chat filter
  • UUID or player names lookup!
  • MultiLobby compatibility
  • PlayerBalancer compatibility
  • RedisBungee support

Pictures

Spoiler: Pictures
(note: pictures are from version 1.3, but design didn't change)
Adding a new friend
435de688288dd42379d138d6d0f9b2b6.gif
Accepting friendship
5723253a307c85b72c588cab864bde1a.gif
Friend list
a206de25eb6f86cedd66105a66f000ca.gif
Private messages
a9c3d174ffd2322affd66e5f83bd3256.gif
477ef7ee73348c4a1e659b15b60ae84a.gif
Options
f5511809359de4ea89e00e2645d23e39.gif
Removing friend
49acf37f6560d8805093fa217afd59b1.gif
Customisable messages
3f1d3f9b84d15b38431ab294f9d33d62.png
98aa3d4d5c742dbcbe2b2a0a21d85ca8.png
Connecting to the server
37e40f68798fb94cc5d0f367f35f48ff.gif
Broadcasts
55ae136d555319e27cb8e7500033b5ac.gif
6c31f33af2e38f6447a9a66cc2c58e93.png

Player list pages (new in 2.5)
0WvO8Ee.png
MoWGKem.png

customized design:
Rg8Ub9U.png
6wQV9HM.png


Last seen (new in 2.7)
BHfgWQN.png


Config

Spoiler: Default config.yml
 

# select storage system and set params
# "mysql" or "sqlite"
storage:
  module: "sqlite"

  mysql:
    hostName: "localhost"
    database: "gtfriends"
    user: "root"
    password: ""
    port: 3306

    # set to true if you have database connectivity problems
    autoReconnect: false
    ignoreSsl: false

  sqlite:
    file: "sql-storage.db"

# coolDown is between clicks or between commands (in milliseconds)
# (recommended: 1000-2000)
# cmd is main command and it will be suggested in chat
# usePermission - true => you must have "ultimatefriends.cmd" permission to use any command
commands:
  coolDown: 1500
  cmd: "f"
  usePermission: false
  aliases:
    - "fr"
    - "friend"
    - "friends"
  reply:
    enable: false
    cmd: "r"

  # register /msg shortcut for /f msg
  msgCmd: false

  override:
    # set this, if you want to use different chat plugin
    # /f msg will be redirected to this command
    #msg: "msg $player $msg"


# define default options setting for new players
options:
  default:
    show_msg_join: true
    show_msg_left: true
    show_msg_switch: true
    allow_requests: true
    allow_private_msg: true
    show_broadcast: true


friendList:

  sort: "online" #"none" - no sorting, "alpha" - sort alphabetically, "online" - online at the bottom (recommended)

  #friend list pages
  perPage: -1 #-1 = disable pages

  # (recommended: max 100)
  maxFriends: 24 #default value - if player is not in any group

  groups:
    vip:
      permission: "friends.vip"
      maxFriends: 30
    donator:
      permission: "friends.donator"
      maxFriends: 40

language:
  # enter full file name in /lang folder
  file: "lang_en_GB.yml"

  # date format for last seen info
  # visit https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
  # for table with all available patterns
  dateFormat: "dd.MM. HH:mm"

# select communication module
# if you want to use redis then the RedisBungee plugin must be installed
# http://www.spigotmc.org/resources/redisbungee.211/
# "bungee" or "redis"
communication:
  module: "bungee"

# Select if you want to use player names or player uuids
# If you're running offline server (not premium), use player names
# "name" or "uuid"
playerLookup:
  type: "name"

# You can disable connection to these servers
# (you won't be able to switch servers with connect button
# in friend list and other players won't be able to connect
# to these servers with that button)
#
# You can disable connection from specific servers too.
# (connect button will not work on these servers)
#
# You can also disable whole plugin on any of your servers
# (recommended for Auth/login servers)
#
# just enter same server name as is it in bungee config
disable:
  connection:
    - "serverr92"
    - "serverr93"
  connectionFrom:
    - "serverr94"
  plugin:
    - "serverr91"

#regex msg/bmsg filter
chat:
  filterLog:
    enabled: false
    timeFormat: "yyyy-MM-dd HH:mm:ss"
    #you can use: "$time", "$filter", "$player" and "$msg" variables
    format: "[$time] - $filter: $player ($msg)"
  filters:
    #antiyolo:
    #  #if the message contains this regex, it will be blocked - '(?i)' = case insensitive check
    #  regex: '(?i)(yolo)'
    #  #but if the message contains this ignore regex, it won't be blocked
    #  ignore: '(?i)((don''t)|(do not))([\s\d])(yolo)'
    #  #run command, if the message is blocked - "$player" is replaced by player name, "$msg" is replaced by message
    #  runCmd: "kick $player AntiYOLO: $msg"
    #
    #anticolor:
    #  regex: "&[0-9a-fk-or]"
    #  ignore: ""
    #  runCmd: ""
    #something-else:
    #  regex: ""
    #  ignore: ""
    #  runCmd: ""
    #another-filter:
    # ...

# Custom buttons
# If you want to add custom button bellow friend list, you can do it here
# Format
#   format;button_text;hover_text;TEXT/CMD/SUGGEST/URL;msg/command_to_run/command_to_suggest/web_page_to_open
# You must specify button format like in the lang files (there have to be '$') (there are some reasons for this formatting style)
# If you don't want to show hover text, just insert space between semicolon "..button_text; ;type.."
customButtons:
  #- " &9[{&b}$&9];Cmds;&aClick to show commands;TEXT;- /f\n- /f msg <playerName> <msg>\n- /f bmsg <msg>\n- /f options\n- /f add <playerName>\n- /f remove <playerName>\n- /f connect <playerName>"
  - " &8[{&7}$&8];About;&a&lUltimateFriends by\n&e&lM1nef4n\n&7Click to open page;URL;http://www.spigotmc.org/resources/ultimate-friends.3964/"
  #- "\n&a[{&c&l}$&a];KILL ME;&cClick to kill yourself;CMD;/kill"
  #- " &e[{&a}$&e];Report;&aClick and write hacker's name;SUGGEST;/report "
  #- " $;Lobby; ;CMD;/lobby"

# bungee_server_name;display_name
# Display name will be used in messages
serverAliases:
  - "serverr91;Survival Games"
  - "serverr92;Lobby"


# Social Spy will be automatically enabled for players listed here
socialSpy:
  default:
    - "Insert-Player-Name-Here"

# You can change redis communication channels, if you want or
# change table names in DB and more...
# Simply do not touch this until I tell you
core:
  ver: 2
  gtApiPass: ""
  lang:
    reset: false
  redisBungee:
    msgSplit: ";"
    channels:
      fReq: "ultimateFriends_friendRequest"
      fRem: "ultimateFriends_friendRemove"
      msg: "ultimateFriends_message"
      bMsg: "ultimateFriends_broadcast"
  allowUuidInOfflineMode: false
  db:
    uuidNotUnique: false

 


Permissions

  • ultimatefriends.cmd - optional (see here)
  • ultimatefriends.spy - for /f spy (enable/disable social spy)
  • ultimatefriends.autospy - for auto-enabled-spy on player join
  • ultimatefriends.reload - for /f reload (won't reload core, storage, communication module, player lookup and command)
  • ultimatefriends.filter.bypass - for bypassing chat filter


Installation

  1. Drop the UltimateFriends.jar into the /plugins folder
  2. Start and stop the bungee (plugin will generate config.yml for you)
  3. Configure the plugin in config.yml
  4. Start the bungee and enjoy the plugin clear.png


Translations

  • Please contact me if you want to help with translations, you will be mentioned here as a contributor


Notes

  • Plugin will create 2 tables in database (you can change table names in config.yml)
    • friend_list
    • options
  • Using UUID system on non-premium (offline) server is not good idea, because players' uuids can change.