BungeeFriends 1.2

A simple, all-in-one, Proxy-Side Friends System!

  1. Yellow_
    BungeeFriends
    The simple, all-in-one Friends plugin!
    Heyo! Based on the fact that you've clicked on this resource, I'm presuming you're interested in this plugin, and what it does. Well, read on!

    This plugin works as the all-in-one social system. It has several features that set it above the average friends plugin:

    • An all-in-one friends manager.
    • A blocking system.
    • A comprehensive messaging system.
    • Cross-Bungee messaging support.
    • Fully proxy-side, with minimal configuration required.
    • UUIDs are fully supported.
    The only requirement for this plugin is a BungeeCord server, and a SQL database to store data in.

    The commands are broken down, as follows.


    /msg <PlayerName> <Message> - This is relatively self-explanatory. BungeeFriends handles all messaging on this command, with nothing handled on the Spigot/Bukkit servers.
    • If you're on a different server to the player you're messaging, the message will only go through if you are friends with that player.
    • If you're on the same server as the player you're messaging, but not friends with them, the message will go through (unless either you or them have blocked each other).
    • If you're friends with the player you're messaging, the message will always go through.
    • You cannot send messages to players who you have blocked, and vice versa.
    /friends [arg1] [arg2] - this command is what you will be using to manage your friends lists. This command has several uses, and all these commands support online/offline players (provided they have logged into the server previously, while the plugin was installed).
    • /friends help - Open the help prompt on how to use the friends system.
    • /friends add <Player> - add friends.
    • /friends remove/delete <Player> - delete friends.
    • /friends list - list your friends.
    • /friends goto <Player> - go to your friend's server!
    /blocks [arg1] [arg2] - this command is where you will manage who you have blocked. This command, like the friends command, supports online/offline players, as long as they have logged in at least once before while the plugin was installed.

    If a player is blocked, they cannot send you friend requests or /msg you (regardless of location on the network).
    • /blocks help - Open the blocks help prompt.
    • /blocks list - List all the players you've blocked.
    • /blocks add <Player> - Block the player specified. If you're friends with the said player, this command automatically unfriends them.
    • /blocks remove/delete/unblock <Player> - unblock anyone on your blocks list.
    This plugin supports cross-Bungee communication. Many Minecraft networks will use several Bungee servers, to distribute the player load. All functionality above will work as per normal, regardless of if cross-bungee is enabled or not.

    I have also designed this plugin so that setting up multiple Bungees requires minimal effort. If you wish, the configuration file can be copied and pasted from one server's config to another, with only the communication port changed to suit the server. The players will not receive duplicate messages under any circumstances.

    Note: If you're going to use multiple Bungees, you need to have a spare port opened. Contact your server host to have this done. Also - the servers configured must be exactly the same. When locations are transferred between servers, only the server name is sent. The Bungee servers then search for a sub-server with that name to send the player to. If the servers aren't configured the same on all Bungee instances, you're either going to get errors in the console, or the player won't be moved.

    Using multiple Bungees is not required - this plugin will still work fine without multiple Bungees! As such, multiple Bungees is disabled by default. If you wish to enable it, you need to do so in the configuration file - more info on that below.

    If Cross-Bungee is enabled, every 5 minutes the amount of incoming and outgoing connections will be logged in the console.

    The plugin has a default authentication key, to verify the communications between the other Bungee servers. Counterfeit messages are logged to the console. The authentication key needs to be the same in all Bungee servers as configured in the config, and must be at least 3 characters. This can be left as-is (the default key is over 10 characters), though it's really a good idea to change this.

    This command also has a config file, that needs to be configured before this plugin will work. Each element is described below (the comments do not appear in the actual config file for some reason.):

    Code (Text):
    # This is false by default. The plugin will not run unless this is true.
    enabled: false

    # This is the SQL database credentials.
    sql:
      username: 'username'
      password: 'pw'
      url: 'mysql://url:3306'
      dbname: 'tablename'

    # The port needs to be the other Bungee server's communication port!
    # You only need this if you are using multiple Bungees.
    bungeeinstances:
      - localhost:25565

    # This is the port the plugin will be listening to for communication.
    # This is NOT your main server port, this is a different port. You need to contact your server host to have this port opened.
    # You only need this if you are using multiple Bungees.
    communication_port: 25565

    # usingMultipleBungees must either be true or false, no quotation marks. communication_port and bungeeinstances are only applicable if usingMultipleBungees is true.
    usingMultipleBungees: false

    # The authentication key is only used if multiple bungees is enabled.
    # Custom keys must be at least 3 characters, and need to be the same on all other Bungee instances.
    authenticationkey: no

    This plugin also has some nice (in my opinion, haha) chat styles. Eventually, I'll be adding the ability to customize these. Some screenshots are below.
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Warning: Due to how offline-mode UUIDs are handled by Minecraft in general, switching your server between online and offline mode will result in players having duplicate profiles in the database - your offline-mode UUID is different to your online-mode UUID. If you're going to switch between the two frequently, I don't recommend using this plugin.

    Any questions/errors/issues? Feel free to PM me, or Tweet me (https://twitter.com/TheYellowCreepz). This is my first BungeeCord plugin (I'm familiar with the Bukkit API and JavaFX, and am by no means new to developing in Java).

    This plugin is free, and open-source! This plugin was compiled to support Java 1.7 or above. Once again, this plugin is 100% proxy-side, nothing runs on the server. Eventually, I will be developing a GUI plugin to go alongside this, but it would need to be on the individual sub-servers.
    Fabelz likes this.

Recent Reviews

  1. ZitroTech
    ZitroTech
    1/5,
    Version: 1.2
    Doesn't work for me. I place the friends.jar in my plugins folder then restart the server. When I do /friends help, I got "Unknow commands..."
    1. Yellow_
      Author's Response
      That means you likely haven't configured your SQL database, and/or tried installing it on a Bukkit server. Please check your console/config file for errors, and PM me with more info if possible.
  2. Refornm
    Refornm
    5/5,
    Version: 1.2
    Good Plugin add A GUI And Make All The Messages Editable And Sounds Play When You get a friend request and accepted etc thxs :)
    1. Yellow_
      Author's Response
      Thanks for the positive feedback! GUI/Sound Effects will be added once I make a Bukkit plugin to go alongside the proxy plugin, as BungeeCord doesn't have the ability to send sounds/inventories from the proxy to the client.
  3. mopmop
    mopmop
    4/5,
    Version: 1.2
    Good plugin and add GUI pls .
    1. Yellow_
      Author's Response
      Will be done eventually. The biggest issue with doing that is, I've tried to make this plugin 100% proxy-side for convenience. When I add the GUIs, a Bukkit plugin to run alongside the proxy plugin will be necessary because Bungee doesn't have GUI functionality. Thanks for the positive review!