MultiLogin | Multi Yggdrasil authentication support!

MultiLogin

Multilogin is a plugin that allows the server to support the coexistence of multiple Yggdrasil

It can be said that at present, it is the only one that can support this in velocity.

:exclamation: This plugin is still in early development :exclamation:

Please report any bugs you encounter.
Any contributions or suggestions would be appreciated.

Features

  • Multi Yggdrasil coexistence
  • It can control the UUID of the player in the game
  • White list system supporting Yggdrasil group management
  • Prevent an account with the same name from appearing on the server
  • Prevent preemptive registration of ID in the server
  • Account security protection mechanism
  • Support Velocity Bungee Bukkit and Fabric

Start

  1. Download the latest version in release and drop it into the plugins folder.
  2. Configure.
  3. Enjoy!

Configuration file example

Do not copy and paste directly. Please configure your configuration file against this example

    # Yggdrasil authentication server name. 
    # One represents a Yggdrasil authentication server.
    # You can copy it to create multiple Yggdrasil authentication servers
    demo:

      #Enable the authentication server.
      #Closing it will deny all players who use the Yggdrasil account to verify their login to the game.
      enable: true

      # The nickname of the authentication server is used as the display of the Yggdrasil account authentication server
      name: 'demo yggdrasil service'

      # Yggdrasil validates the basic property settings of the server.
      body:

        # Yggdrasil authentication server server hasjoin part authentication request link settings.
        # The variable {0} represents username
        # The variable {1} represents serverId
        # The variable {2} represents the content set by the passIpContent node
        url: "https://example.com/yggdrasil/session/hasJoined?username={0}&serverId={1}{2}"

        # Verify account identity by post request
        # In most cases, the Yggdrasil authentication server uses the get request method to verify the user data.
        # If you do not understand the current Yggdrasil verification process, do not modify it.
        # This configuration node is valid only when the servertype node value is 'CUSTOM'.
        postMode: false

        # Whether the user IP information is transferred in the hasjoin phase.
        # If you do not understand the current Yggdrasil verification process, do not modify it.
        passIp: true

        # Set the URL node {2} variable content.
        # Where the variable {0} is the obtained IP information.
        # This node is valid only if the passip configuration node is true.
        passIpContent: "ip={0}"

        # Set the request content of post.
        # This node is valid only if the value of the postmode configuration node is true.
        # The variable {0} in the get request represents username and the variable {1} represents serverid.
        # The content does not contain IP information, please do not add additional parameters.
        postContent: '{"username":"{0}", "serverId":"{1}"}'

      # When a player passes the verification in the verification server set in this node for the first time, the UUID in the game will be generated according to the rules filled in this node.
      # Currently only the following values are supported:
      #  DEFAULT - use Yggdrasil to verify the UUID provided by the server.
      #  OFFLINE - automatically generate offline UUIDs (offline UUID).
      #  RANDOM - random UUID.
      # Please set and modify this node carefully.
      # To avoid triggering some mechanisms on the paper, it is strongly recommended that this value be DEFAULT.
      convUuid: DEFAULT

      # When the player logs in successfully for the first time, if the UUID generated by the configuration node "convuuid" already exists, it will be automatically corrected to a random UUID to avoid data confusion.
      # Try to keep this value true unless you know what the consequences are (although the probability is small).
      convRepeat: true

      # If the user name does not match the regular expression, the login request will be rejected.
      nameAllowedRegular: '^[0-9a-zA-Z_]{2,10}$'

      # Whether to set a separate whitelist for the current authentication server.
      # When the global whitelist configuration node is true, this configuration node is invalid.
      whitelist: true

      # Whether players with the same Redirect UUID in the server refuse to log in,
      # If it is false, the player in the game will be kicked out and the player in verification will log in successfully (original mechanism),
      # If true, the current login request will be rejected.
      refuseRepeatedLogin: false

      # Number of validation error retries
      authRetry: 1

Commands and permissions

Commands Permissions Function
/whitelist add multilogin.whitelist Add to whitelist
/whitelist remove multilogin.whitelist Remove the white list of
/multilogin reload multilogin.multilogin.reload Reload configuration file
/multilogin query name multilogin.multilogin.query Query the data of player name
/multilogin query redirectuuid multilogin.multilogin.query Query the data of redirectuuid
/multilogin query onlineuuid multilogin.multilogin.query Query the data of onlineuuid
multilogin.update Receive new version notifications

Post authorization:

image.png

The source language is Chinese, this post uses google translation, please remind me if there is any error, thank you!