Bedrock Player Managment for Floodgate (Geyser) 1.3

Execute commands when a player joins depending on their client version (bedrock/java/all)..

  1. ofunny
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    Contributors:
    ofunny
    Languages Supported:
    english
    ofunnys BedrockPlayerManager

    This plugin is an extension for the awesome GeyserMC. Geyser allows basically Bedrock players to join any Minecraft Java server. BedrockPlayerManager dependents on the Floodgate API what is part of GeyserMC

    With this plugin you can execute custom commands when your players join your server network depending on the client of the player. You can issue commands independently for Java, Bedrock or all players.

    The permission plugins Luckperms and Vault are also supported, if a Bedrock / Java player joins the server, a special Bedrock permission group will be added / removed depending on the client of the player.

    Test server
    See this plugin in action on our Minecraft server.
    Just connect to play.ofunny.world

    Java or Bedrock client.
    (More infos on ofunny.world or via Discord)
    (If you have problems connecting to my server or find bugs, please report it on Discord discord.ofunny.world so I could fix it asap – thank you!)

    Features
    • Works with Geyser/Floodgate single server installations.
    • Works with Geyser/Floodgate Bungee/Waterfall networks
    • Works with Geyser standalone setup
    • Support custom join commands for Java, Bedrock or all players.
    • Support for Luckperms and Vault to add a custom permission group for Bedrock players.
    Added with the last update.
    1. Backward compatibility has been implemented for Minecraft servers 1.8.8, 1.9.x, 1.10.x, 1.11.x, 1.12.x, 1.13.x, 1.14.x and 1.15.x. (Geyser depends on VivaVersion for any server pre 1.16, don't forget to install it as well or BE clients can not connect).
    2. Complete Vault support has been added to the permission module, so all permission plugins can be used that are supported by the Vault API. For example: Permissions 3, bPermissions, PEX, GroupManager, PermissionsBukkit, zPermission, SimplyPerms, Privileges, DroxPerms, xPerms – for more information, visit the Vault resource page.
    3. Vault permissions can be applied per world or globally.
    4. Command execution (upon joining) for all players can now be performed in solo mode. Floodgate is a soft dependency now. If 'commands.java.enabled', 'commands.bedrock.enabled' and 'permissions.enabled' have been deactivated with 'false', commands can be executed for all players without Floodgate.
    Usecase eamples
    • Add custom pre- or suffixes to Bedrock or Java players. For example via Luckperms prefix.
    • Bypass anti cheat checks for Bedrock players. Most anti cheat plugins allow bypassing checks via permissions.
    • Allow or deny features, commands, game types or worlds based on the client type.
    • Give items on start or move Bedrock players to another spawn.
    • You can do litterly anything by using custom commands or assigning permissions based on the client type of a player.
    Howto
    1. Download the plugin and put it into the plugin directory of your Spigot or Paper server.

    2. If you use a Bungee/Waterfall network make sure to install the plugin on each spigot/paper server of your network (but not on the proxy itself).

    3. If you run a single server follow the instruction how to install Floodgate for a single server here.

    4. If you run a Bungee/Waterfall network you have to install Floodgate on your proxy server and also on each connected server, because we need the Floodgate API to detect Bedrock players. In this case follow the Floodgate instruction here.

      (In case of a proxy network it is obligatory to set the proxy version of Floodgate to "send-floodgate-data: true" and to copy the key files from Floodgate on your proxy to each Floodgate instance on all of your servers, or it will not work!)

    5. After you installed the BedrockPlayerManager and Floodgate properly you can fire up the server to generate the configuration. By default all BedrockPlayerManager modules are disabled.

    6. The command module will work directly as long as Floodgate is available or even without Floodgate, if you just wanna use the same join commands for all of your players (unrelated to their client type).

    7. If you wanna use the permission module, make sure that Luckperms or Vault (depending on your config selection) is also installed on every server that you want to use with my plugin.
    Luckperms/Vault
    By enabling the permission module you can automatically assign a group for Bedrock players on join. The group will be automatically removed for Java players. No other group assignments get touched. So already existing parent groups stay the same and no permission or rank system will get corrupted.

    If you want to overwrite permission in Luckperms with the assigned Bedrock group or if you want to display a pre- or suffix, just set the groups weight higher than the weight of any other permission group on your server. Look at the link for more information about Luckperms group weight.

    First join after server start
    Each module will be only initialized when necessary. This means that the command and permission module will be initialized once (if enabled) when the first player joins the server after starting. With Luckperms in particular, this can lead to a one-time "lag spike" warning via the Essentials plugin.
    This is nothing to worry about. It has no impact on ongoing operations.

    Additional support
    [​IMG]
    Discord: https://discord.ofunny.world in the channel #bedrockplayermanager

    Config example
    Code (YAML):
    ### ofunnys BedrockPlayerManager for Floodgate ###

    # This plugin is listening on the PlayerJoinEvent what gets triggered when a player joins a server.
    # Basic commands can normally be applied directly without delay. Some commands (like Teleport)
    # have to be processed after the player finally joined, therefore I give you the option to delay the execution
    # in server ticks. If 0 delay cause proplems with some commands you can set it to 1 or 2 ticks for example.
    execution_delay
    : 1
    #
    # Command modul.
    commands
    :
       java
    :
         # If true -> the following commands will be executed when a java player joins.
          enabled
    : true
          # Execute commands as server/console.
          # The placeholder {player} will be replaced with the joining players name.
          #
          # One command per line or {} if empty
          # Example:
          # - say hi {player}
          # - say How are you today?
          # - give {player} dirt 1
          server
    :
           - give {player} dirt 1
           - say take it {player}
          # Execute commands as the joining player.
          # The placeholder {player} will be replaced with the joining players name.
          player
    :
           - say I'm a Java player
           - say {player}
          #
       bedrock
    :
         # If true -> the following commands will be executed when a bedrock player joins.
          enabled
    : true
          # Execute commands as server/console.
          # The placeholder {player} will be replaced with the joining players name.
          #
          # One command per line or {} if empty
          # Example:
          # - say hi {player}
          # - say How are you today?
          # - give {player} dirt 1
          server
    :
           - give {player} dirt 1
           - say take it {player}
          # Execute commands as the joining player.
          # The placeholder {player} will be replaced with the joining players name.
          player
    :
           - say I'm a Bedrock player
           - say {player}
          #
       all
    :
         # If true -> the following commands will be executed for all player joins unrelated to the client
          enabled
    : false
          # Execute commands as server/console.
          # The placeholder {player} will be replaced with the joining players name.
          #
          # One command per line or {} if empty
          # Example:
          # - say hi {player}
          # - say How are you today?
          # - give {player} dirt 1
          server
    : {}
          # Execute commands as the joining player.
          # The placeholder {player} will be replaced with the joining players name.
          player
    : {}
          #
    # Permission modul.
    permissions
    :
      # If true, the following permission group will be added / removed depending on the client version (Bedrock / Java) when a player joins / leaves.
       enabled
    : true
       # Supported permission plugins.
       # Choose:
       # plugin: "luckperms" if you use Luckperms or
       # plugin: "vault" for Vault compatible permission plugins like Permissions 3, bPermissions, PEX, GroupManager,
       #                                                              PermissionsBukkit, zPermission, SimplyPerms, Privileges, DroxPerms, xPerms
       # You can use the command function for any unsupported permission plugin and apply perms/groups via command.
       plugin
    : "luckperms"
       #
       # Vault specific settings
       # Leave the following option set to "false" if your permission plugin supports global groups (recommended if available).
       # Check carefully that your plugin really supports global groups and use them if available.
       # >> In case of 'plugin: Luckperms' this option has no affect, it will always use global groups. <<
       vault
    :
         # If your permission plugin supports per world permission groups only, activate "per_world_permissions" by setting it to true.
          per_world_permissions
    : false
          # You can define a list of worlds in which the groups will be apllied or leave it empty for all worlds on your server.
          # WARNING: the following 'bedrock_group_name' must exist as permission group for each defined world otherwise
          # you might get an error each time the plugin trys to set or remove this group. So create it in your permission plugin first!
          worlds
    : {}
          #
       # The permission group to add for bedrock users or to remove for java users.
       # If a user joins via Floodgate, the group gets applied otherwise removed (if previously inherited by the joining / leaving user).
       # Make sure to add the group in Luckperms first. I check if the group exist before it will be applied!
       bedrock_group_name
    : "bedrock_user"
       #
    # Activate advanced debug messages.
    debug
    : false
    #
    # Do not touch the following lines!
    version
    : 1

    POSSIBLE BUGS

    This is a new plugin. If you find any bugs please report them on https://github.com/ofunny/BedrockPlayerManager/issues or visit the Discord link above.

    Please do not post any bug reports or question into the review section.

    Thanks

    yours
    ofunny

Recent Reviews

  1. Midnitefu
    Midnitefu
    4/5,
    Version: 1.3
    Seems to be working really well i just wanted to know, do i need Geyser installed already on the server so i need both or is it i can use one or the other
  2. Ethman
    Ethman
    5/5,
    Version: 1.3
    works perfectly as intended the reason I downloaded was bc I needed to
    do /offhand in geyser for a plugin to work great plugin.
    1. ofunny
      Author's Response
      Thank you very much, I really appreciate that my first review is a 5 star rating. :)