Giter Site home page Giter Site logo

4drian3d / authmevelocity Goto Github PK

View Code? Open in Web Editor NEW
57.0 1.0 8.0 877 KB

AuthMeReloaded support for Velocity proxy

Home Page: https://modrinth.com/plugin/authmevelocity

License: GNU General Public License v3.0

Java 100.00%
authme-reloaded velocitypowered velocity-plugin papermc authme minecraft-plugin paper-plugin spigot-plugin authentification minecraft

authmevelocity's Introduction

AuthMeVelocity

WorkFlow Status Version Discord

This plugin adds the support for Velocity to AuthMeReloaded

Requirements

  • Paper or Folia 1.20+
  • Velocity 3.3.0+
  • Java 17+

Features

  • Prevent your players from executing commands or typing in the chat before they are logged in
  • Forces the first server that players enter to be an Auth server
  • Send players to another server when logging in natively (AuthMeReloaded has bugs with this functionality on its own)
  • Prevents players from having to re-login each time they join a server with AuthMe installed
  • Get access to the AuthMe API from Velocity
  • Compatibility with FastLogin (AutoLogin support in the proxy) and MiniPlaceholders (use AuthMeVelocity placeholders in any other plugin and vice versa)

Setup

  1. Download the latest release of the plugin link
  2. Install AuthMeVelocity-Proxy on your Velocity Proxy
  3. Install AuthMeVelocity-Paper on your Paper servers that have AuthMeReloaded installed
  4. Start the Velocity proxy and set up the config.conf with the auth servers.

Plugin API

Check the plugin API here

Javadocs

Configuration

Check the plugin configuration here

Metrics

metrics

authmevelocity's People

Contributors

4drian3d avatar adrian3d04 avatar alexprogrammerde avatar dependabot[bot] avatar quickglare avatar realtriassic avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

authmevelocity's Issues

java.lang.AbstractMethodError on AuthMeVelocity-Paper startup

[08:17:08 ERROR]: [ModernPluginLoadingStrategy] Could not load plugin 'AuthMeVelocity-Paper-4.0.4.jar' in folder 'plugins' java.lang.AbstractMethodError: Receiver class io.github._4drian3d.authmevelocity.paper.AuthMeVelocityBootstrap does not define or inherit an implementation of the resolved method 'abstract void bootstrap(io.papermc.paper.plugin.bootstrap.PluginProviderContext)' of interface io.papermc.paper.plugin.bootstrap.PluginBootstrap. at io.papermc.paper.plugin.storage.BootstrapProviderStorage$1.load(BootstrapProviderStorage.java:40) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paper.plugin.storage.BootstrapProviderStorage$1.load(BootstrapProviderStorage.java:28) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paper.plugin.entrypoint.strategy.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:128) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:35) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:36) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enterBootstrappers(LaunchEntryPointHandler.java:26) ~[paper-1.19.3.jar:git-Paper-420] at net.minecraft.server.Bootstrap.lambda$bootStrap$0(Bootstrap.java:75) ~[?:?] at net.minecraft.core.registries.BuiltInRegistries.bootStrap(BuiltInRegistries.java:319) ~[paper-1.19.3.jar:git-Paper-420] at net.minecraft.server.Bootstrap.bootStrap(Bootstrap.java:73) ~[?:?] at net.minecraft.server.Main.main(Main.java:115) ~[paper-1.19.3.jar:git-Paper-420] at org.bukkit.craftbukkit.Main.main(Main.java:302) ~[paper-1.19.3.jar:git-Paper-420] at io.papermc.paperclip.Paperclip.lambda$main$0(Paperclip.java:42) ~[app:?] at java.lang.Thread.run(Thread.java:833) ~[?:?]

I can provide information but not sure where to start

Plugin does not block commands

Hi there, I tried using this plugin on Velocity 3.1.1, I put the proxy file in the velocity plugins folder and the spigot jar into the lobbys plugin folder.

When Velocity is run I see this error:

java.lang.NoSuchMethodError: 'net.kyori.adventure.text.minimessage.MiniMessage net.kyori.adventure.text.minimessage.MiniMessage.miniMessage()'
	at com.glyart.authmevelocity.proxy.config.ConfigUtils.<clinit>(ConfigUtils.java:11) ~[?:?]
	at com.glyart.authmevelocity.proxy.config.AuthMeConfig.<init>(AuthMeConfig.java:18) ~[?:?]
	at com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin.onProxyInitialization(AuthMeVelocityPlugin.java:49) ~[?:?]
	at com.glyart.authmevelocity.proxy.Lmbda$7.execute(Unknown Source) ~[?:?]
	at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[Velocity.jar:3.1.1]
	at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[Velocity.jar:3.1.1]
	at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[Velocity.jar:3.1.1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

I noticed that the plugin does not block any commands, for example I can still do /server when not logged in. I'm not sure if it's related to that error.

Failed to register events for class io.github._4drian3d.authmevelocity.paper.listeners.AuthMeListener

After updating the plugin to the latest version (4.1) I can't log in to the server. I manage to enter the server and after logging in with authme, trying to execute the commands I get the error message that I am not logged in. This message appears on the authentication server:

[AuthMeVelocity] Failed to register events for class io.github._4drian3d.authmevelocity.paper.listeners.AuthMeListener because fr/xephi/authme/events/RegisterEvent does not exist.

Gradle Migration

Migrate the project to gradle.

The only likely problem is compatibility with Java versions 16 or lower

Does not support Java8

Java8 is not supported, do you need to compile it yourself?
Otherwise, how to use 1.8.8 to start it?

invalid things

if try option (velocity fallback server settings) has been set on Auth, on player kick from a server they will move into Auth, after login they will not move to Lobby servers

read this dev

#65 The issue is you closed a valid ticket, your “developer” skills seem to be shitty

Can't load plugin on paper

[12:22:42 ERROR]: Could not load 'plugins/AuthMeVelocity-Paper-4.1.1.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
        at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:178) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:159) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R2.CraftServer.loadPlugins(CraftServer.java:418) ~[purpur-1.18.2.jar:git-Purpur-1632]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:323) ~[purpur-1.18.2.jar:git-Purpur-1632]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1180) ~[purpur-1.18.2.jar:git-Purpur-1632]
        at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:321) ~[purpur-1.18.2.jar:git-Purpur-1632]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
        ... 7 more

[Bug] Can't enter the server

When I updated the plugin it can't connect to the server all the time. It keeps writing: "Joining world" and then in the console: "read timed out"

AUTOMATIC LOGIN WHEN TRANSFERRING TO THE LOBBY

Hello

when I connect from one server to the lobby where AuthmeReloaded is, I have to log in

If a function could be added to automatically log in the player when switching to the lobby

How can I make other servers log in at the same time?

I switched from BungeeCord to Velocity. I installed the corresponding plug-in on the server and proxy server Velocity according to the tutorial, but I still have a problem that has not been solved: automatically log in to other sub-servers, or synchronise the login status. The configuration file in authmebungee is "autoLogin"

The following are my authmevelocity settings and Velocity's server settings

0FADFE59-E24F-403F-ACE6-CB86FDCD199E
D99CF7CC-483C-4451-89E4-163793B0DB51

Feature Request: TO_LAST_CONNECTED option for send-on-login

A similar feature request for something like this is still open on the AuthMeBungee repository, I have made a very basic implementation of this as seen here, except it's functionality is limited to only Bungeecord & AuthMeBungee.

I believe since AuthMeVelocity is fairly actively maintained unlike AuthMeBungee, this simple functionality could be built straight into the plugin instead of having a seperate plugin for it, but, unfortunately I am too unfamiliar with this code base and Velocity as a whole to implement this myself.

It isn't exactly difficult to implement as evident by my implementation on Bungeecord, whilst being basic, it is completely functional, the player's last server is written to a yml file on server switch and when the player leaves the server and then once the player logs back onto the server, they are returned back to the server defined in the yml file.

Update Modrinth license descriptor

The license on Modrinth is currently noted as GPL-3.0-only, but I suspect you intend GPL-3.0-or-later per the copyright headers in the source code.

Illegal protocol state

Greetings.
I was testing if the plugin was preventing players from executing commands (like /server) or sending messages and, while they can't do it, they get kicked.
The kick message is "A proxy plugin caused an illegal protocol state. Contact your network administrator.".
I have the last version of your -spigot plugin on the auth server and a version of the -proxy plugin I've just compiled from your source only having changed what I said on my message in Velocity 3.1.2 - 167 Build Bug - #46 (otherwise players won't be able to exit the auth server).

I'm using velocity-3.1.2-SNAPSHOT-172 and paper-1.19.2-125.jar.

If you need any extra information, please feel free to ask, and congratulations for this incredible plugin, if it didn't exist I'd still using other proxies rather than velocity!

plugin failed to pass event LoginEvent to AuthMeVelocity in 1.8.8

[16:48:24 ERROR]: Could not pass event LoginEvent to AuthMeVelocity v1.4.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[paper.jar:]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:74) ~[paper.jar:]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[paper.jar:]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:517) ~[paper.jar:]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:502) ~[paper.jar:]
at fr.xephi.authme.service.BukkitService.callEvent(BukkitService.java:250) ~[?:?]
at fr.xephi.authme.process.login.ProcessSyncPlayerLogin.processPlayerLogin(ProcessSyncPlayerLogin.java:102) ~[?:?]
at fr.xephi.authme.process.SyncProcessManager.lambda$processSyncPlayerLogin$3(SyncProcessManager.java:52) ~[?:?]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59) [paper.jar:]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:352) [paper.jar:]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:771) [paper.jar:]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:378) [paper.jar:]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:701) [paper.jar:]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:604) [paper.jar:]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.IllegalAccessError: class com.glyart.authmevelocity.spigot.events.PreSendLoginEvent tried to access method 'void org.bukkit.event.player.PlayerEvent.(org.bukkit.entity.Player, boolean)' (com.glyart.authmevelocity.spigot.events.PreSendLoginEvent is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @1486cb28; org.bukkit.event.player.PlayerEvent is in unnamed module of loader 'app')
at com.glyart.authmevelocity.spigot.events.PreSendLoginEvent.(PreSendLoginEvent.java:15) ~[?:?]
at com.glyart.authmevelocity.spigot.listeners.AuthMeListener.onLogin(AuthMeListener.java:26) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:300) ~[paper.jar:]
... 14 more

BUG? Support with FastLogin no longer works for me

Description: For some reason, when I log in with the fastlogin premium, and execute commands or messages in chat, velocity blocks them. Instead, if I log in with the cracked one, and log in normally, it makes me execute the commands. What could it be due to? I do not understand.

Velocity version: velocity-3.3.0-SNAPSHOT
Paper version: pufferfish-1.20.4
AuthMeVelocity version on both velocity and paper: 4.1.1
FastLogin version: 1.12-SNAPSHOT-a65a5f3

Ability to require permission for send-on-login

A new toggle could be added under send-on-login in the configuration called require-permission just like in AuthMeVelocity Last Server Addon. The permission node could be authmevelocity.send-on-login or whatever else you decide on.

This would be useful for servers that require players to complete a test before being sent away from the login server.

[Bug]Kicks players off the server for timeout

It kick players off the server for timeout, in such a way that it looks like packets do not reach the player, but as from the player as he sent a command, wrote to the chat, then in the server console it shows that he actually wrote something and sent a command, but packets do not reach him by throwing the player off for timeout. Without the AuthmeVelocity-proxy plugin, the server normally works and this does not happen.
There are no errors in the console, but as I tested it after removing this plugin no more so kick players (including me)

Plugin can't recognize that the player has authenticated, so players can't move servers by external sources/e.g another plugin

If the server to be redirected is in the list of authlobbies, it connects fine, however chatting etc. does not work because the player has not authenticated.

Attempting to connect to the server manually will show you that the server is running(With the disconnect message you need to connect through velocity.)

Configuration Files & Debug Info


advanced {
    # Enable debug mode
    debug=true
    # Attempts to get a valid server in SendMode Random
    random-attempts=5
}
# List of login/registration servers
auth-servers=[
    auth
]
commands {
    # Sets the commands that users who have not yet logged in can execute
    allowed-commands=[
        login,
        register,
        l,
        reg,
    ]
    # Sets the message to send in case a non-logged-in player executes an unauthorized command
    # To deactivate the message, leave it empty
    blocked-message="<red>You cannot execute commands if you are not logged in yet"
}
ensure-auth-server {
    # Ensure that the first server to which players connect is an auth server
    ensure-auth-server=false
    # Selection Mode of the player's initial server
    # TO_FIRST | Send to the first valid server configured
    # TO_EMPTIEST_SERVER | Send to the server with the lowest number of players
    # RANDOM | Send to a random server
    send-mode=RANDOM
}
send-on-login {
    # Selection Mode of the server to which the player will be sent
    # TO_FIRST | Send to the first valid server configured
    # TO_EMPTIEST_SERVER | Send to the server with the lowest number of players
    # RANDOM | Send to a random server
    send-mode=RANDOM
    # Send logged in players to another server?
    send-on-login=false
    # List of servers to send
    # One of these servers will be chosen at random
    teleport-servers=[
        lobby1,
        lobby2
    ]
}
    # What type of database do you want to use?
    # Valid values: SQLITE, MYSQL, POSTGRESQL
    backend: SQLITE
    # Enable the database caching system, should be disabled on bungeecord environments
    # or when a website integration is being used.
    caching: true
    # Database host address
    mySQLHost: 127.0.0.1
    # Database port
    mySQLPort: '3306'
    # Connect to MySQL database over SSL
    mySQLUseSSL: true
    # Verification of server's certificate.
    # We would not recommend to set this option to false.
    # Set this option to false at your own risk if and only if you know what you're doing
    mySQLCheckServerCertificate: true
    # Username to connect to the MySQL database
    mySQLUsername: authme
    # Password to connect to the MySQL database
    mySQLPassword: '12345'
    # Driver Name of the MySQL database
    mySQLDriverClassName: com.mysql.cj.jdbc.Driver
    # Database Name, use with converters or as SQLITE database name
    mySQLDatabase: authme
    # Table of the database
    mySQLTablename: authme
    # Column of IDs to sort data
    mySQLColumnId: id
    # Column for storing or checking players nickname
    mySQLColumnName: username
    # Column for storing or checking players RealName
    mySQLRealName: realname
    # Column for storing players passwords
    mySQLColumnPassword: password
    # Column for storing players passwords salts
    mySQLColumnSalt: ''
    # Column for storing players emails
    mySQLColumnEmail: email
    # Column for storing if a player is logged in or not
    mySQLColumnLogged: isLogged
    # Column for storing if a player has a valid session or not
    mySQLColumnHasSession: hasSession
    # Column for storing a player's TOTP key (for two-factor authentication)
    mySQLtotpKey: totp
    # Column for storing the player's last IP
    mySQLColumnIp: ip
    # Column for storing players lastlogins
    mySQLColumnLastLogin: lastlogin
    # Column storing the registration date
    mySQLColumnRegisterDate: regdate
    # Column for storing the IP address at the time of registration
    mySQLColumnRegisterIp: regip
    # Column for storing player LastLocation - X
    mySQLlastlocX: x
    # Column for storing player LastLocation - Y
    mySQLlastlocY: y
    # Column for storing player LastLocation - Z
    mySQLlastlocZ: z
    # Column for storing player LastLocation - World Name
    mySQLlastlocWorld: world
    # Column for storing player LastLocation - Yaw
    mySQLlastlocYaw: yaw
    # Column for storing player LastLocation - Pitch
    mySQLlastlocPitch: pitch
    # Column for storing players uuids (optional)
    mySQLPlayerUUID: ''
    # Overrides the size of the DB Connection Pool, default = 10
    poolSize: 10
    # The maximum lifetime of a connection in the pool, default = 1800 seconds
    # You should set this at least 30 seconds less than mysql server wait_timeout
    maxLifetime: 1800
ExternalBoardOptions:
    # Column for storing players groups
    mySQLColumnGroup: ''
    # -1 means disabled. If you want that only activated players
    # can log into your server, you can set here the group number
    # of unactivated users, needed for some forum/CMS support
    nonActivedUserGroup: -1
    # Other MySQL columns where we need to put the username (case-sensitive)
    mySQLOtherUsernameColumns: []
    # How much log2 rounds needed in BCrypt (do not change if you do not know what it does)
    bCryptLog2Round: 10
    # phpBB table prefix defined during the phpBB installation process
    phpbbTablePrefix: phpbb_
    # phpBB activated group ID; 2 is the default registered group defined by phpBB
    phpbbActivatedGroupId: 2
    # IP Board table prefix defined during the IP Board installation process
    IPBTablePrefix: ipb_
    # IP Board default group ID; 3 is the default registered group defined by IP Board
    IPBActivatedGroupId: 3
    # Xenforo table prefix defined during the Xenforo installation process
    XFTablePrefix: xf_
    # XenForo default group ID; 2 is the default registered group defined by Xenforo
    XFActivatedGroupId: 2
    # Wordpress prefix defined during WordPress installation
    wordpressTablePrefix: wp_
settings:
    sessions:
        # Do you want to enable the session feature?
        # If enabled, when a player authenticates successfully,
        # his IP and his nickname is saved.
        # The next time the player joins the server, if his IP
        # is the same as last time and the timeout hasn't
        # expired, he will not need to authenticate.
        enabled: false
        # After how many minutes should a session expire?
        # A player's session ends after the timeout or if his IP has changed
        timeout: 10
    # Message language, available languages:
    # https://github.com/AuthMe/AuthMeReloaded/blob/master/docs/translations.md
    messagesLanguage: en
    # Forces authme to hook into Vault instead of a specific permission handler system.
    forceVaultHook: false
    # Log level: INFO, FINE, DEBUG. Use INFO for general messages,
    # FINE for some additional detailed ones (like password failed),
    # and DEBUG for debugging
    logLevel: FINE
    # By default we schedule async tasks when talking to the database. If you want
    # typical communication with the database to happen synchronously, set this to false
    useAsyncTasks: true
    # The name of the server, used in some placeholders.
    serverName: Your Minecraft Server
    restrictions:
        # Can not authenticated players chat?
        # Keep in mind that this feature also blocks all commands not
        # listed in the list below.
        allowChat: false
        # Hide the chat log from players who are not authenticated?
        hideChat: false
        # Allowed commands for unauthenticated players
        allowCommands: 
        - /login
        - /log
        - /l
        - /register
        - /reg
        - /email
        - /captcha
        - /2fa
        - /totp
        # Max number of allowed registrations per IP
        # The value 0 means an unlimited number of registrations!
        maxRegPerIp: 1
        # Minimum allowed username length
        minNicknameLength: 3
        # Maximum allowed username length
        maxNicknameLength: 16
        # When this setting is enabled, online players can't be kicked out
        # due to "Logged in from another Location"
        # This setting will prevent potential security exploits.
        ForceSingleSession: true
        ForceSpawnLocOnJoin:
            # If enabled, every player that spawn in one of the world listed in
            # "ForceSpawnLocOnJoin.worlds" will be teleported to the spawnpoint after successful
            # authentication. The quit location of the player will be overwritten.
            # This is different from "teleportUnAuthedToSpawn" that teleport player
            # to the spawnpoint on join.
            enabled: false
            # WorldNames where we need to force the spawn location
            # Case-sensitive!
            worlds: 
            - world
            - world_nether
            - world_the_end
        # This option will save the quit location of the players.
        SaveQuitLocation: false
        # To activate the restricted user feature you need
        # to enable this option and configure the AllowedRestrictedUser field.
        AllowRestrictedUser: false
        # The restricted user feature will kick players listed below
        # if they don't match the defined IP address. Names are case-insensitive.
        # You can use * as wildcard (127.0.0.*), or regex with a "regex:" prefix regex:127\.0\.0\..*
        # Example:
        #     AllowedRestrictedUser:
        #     - playername;127.0.0.1
        #     - playername;regex:127\.0\.0\..*
        AllowedRestrictedUser: []
        # Ban unknown IPs trying to log in with a restricted username?
        banUnsafedIP: false
        # Should unregistered players be kicked immediately?
        kickNonRegistered: false
        # Should players be kicked on wrong password?
        kickOnWrongPassword: true
        # Should not logged in players be teleported to the spawn?
        # After the authentication they will be teleported back to
        # their normal position.
        teleportUnAuthedToSpawn: false
        # Can unregistered players walk around?
        allowMovement: false
        # After how many seconds should players who fail to login or register
        # be kicked? Set to 0 to disable.
        timeout: 30
        # Regex pattern of allowed characters in the player name.
        allowedNicknameCharacters: '[a-zA-Z0-9_]*'
        # How far can unregistered players walk?
        # Set to 0 for unlimited radius
        allowedMovementRadius: 100
        # Should we protect the player inventory before logging in? Requires ProtocolLib.
        ProtectInventoryBeforeLogIn: true
        # Should we deny the tabcomplete feature before logging in? Requires ProtocolLib.
        DenyTabCompleteBeforeLogin: false
        # Should we display all other accounts from a player when he joins?
        # permission: /authme.admin.accounts
        displayOtherAccounts: true
        # Spawn priority; values: authme, essentials, cmi, multiverse, default
        spawnPriority: authme,essentials,cmi,multiverse,default
        # Maximum Login authorized by IP
        maxLoginPerIp: 0
        # Maximum Join authorized by IP
        maxJoinPerIp: 0
        # AuthMe will NEVER teleport players if set to true!
        noTeleport: false
        # Regex syntax for allowed chars in passwords. The default [!-~] allows all visible ASCII
        # characters, which is what we recommend. See also http://asciitable.com
        # You can test your regex with https://regex101.com
        allowedPasswordCharacters: '[!-~]*'
    GameMode:
        # Force survival gamemode when player joins?
        ForceSurvivalMode: false
    unrestrictions:
        # Below you can list all account names that AuthMe will ignore
        # for registration or login. Configure it at your own risk!!
        # This option adds compatibility with BuildCraft and some other mods.
        # It is case-insensitive! Example:
        # UnrestrictedName:
        # - 'npcPlayer'
        # - 'npcPlayer2'
        UnrestrictedName: []
        # Below you can list all inventories names that AuthMe will ignore
        # for registration or login. Configure it at your own risk!!
        # This option adds compatibility with some mods.
        # It is case-insensitive! Example:
        # UnrestrictedInventories:
        # - 'myCustomInventory1'
        # - 'myCustomInventory2'
        UnrestrictedInventories: []
    security:
        # Minimum length of password
        minPasswordLength: 5
        # Maximum length of password
        passwordMaxLength: 30
        # Possible values: SHA256, BCRYPT, BCRYPT2Y, PBKDF2, SALTEDSHA512,
        # MYBB, IPB3, PHPBB, PHPFUSION, SMF, XENFORO, XAUTH, JOOMLA, WBB3, WBB4, MD5VB,
        # PBKDF2DJANGO, WORDPRESS, ROYALAUTH, ARGON2, CUSTOM (for developers only). See full list at
        # https://github.com/AuthMe/AuthMeReloaded/blob/master/docs/hash_algorithms.md
        # If you use ARGON2, check that you have the argon2 c library on your system
        passwordHash: SHA256
        # If a password check fails, AuthMe will also try to check with the following hash methods.
        # Use this setting when you change from one hash method to another.
        # AuthMe will update the password to the new hash. Example:
        # legacyHashes:
        # - 'SHA1'
        legacyHashes: []
        # Salt length for the SALTED2MD5 MD5(MD5(password)+salt)
        doubleMD5SaltLength: 8
        # Number of rounds to use if passwordHash is set to PBKDF2. Default is 10000
        pbkdf2Rounds: 10000
        # Prevent unsafe passwords from being used; put them in lowercase!
        # You should always set 'help' as unsafePassword due to possible conflicts.
        # unsafePasswords:
        # - '123456'
        # - 'password'
        # - 'help'
        unsafePasswords: 
        - '123456'
        - password
        - qwerty
        - '12345'
        - '54321'
        - '123456789'
        - help
    registration:
        # Enable registration on the server?
        enabled: true
        # Send every X seconds a message to a player to
        # remind him that he has to login/register
        messageInterval: 5
        # Only registered and logged in players can play.
        # See restrictions for exceptions
        force: true
        # Type of registration: PASSWORD or EMAIL
        # PASSWORD = account is registered with a password supplied by the user;
        # EMAIL = password is generated and sent to the email provided by the user.
        # More info at https://github.com/AuthMe/AuthMeReloaded/wiki/Registration
        type: PASSWORD
        # Second argument the /register command should take: NONE = no 2nd argument
        # CONFIRMATION = must repeat first argument (pass or email)
        # EMAIL_OPTIONAL = for password register: 2nd argument can be empty or have email address
        # EMAIL_MANDATORY = for password register: 2nd argument MUST be an email address
        secondArg: CONFIRMATION
        # Do we force kick a player after a successful registration?
        # Do not use with login feature below
        forceKickAfterRegister: false
        # Does AuthMe need to enforce a /login after a successful registration?
        forceLoginAfterRegister: false
    # Enable to display the welcome message (welcome.txt) after a login
    # You can use colors in this welcome.txt + some replaced strings:
    # {PLAYER}: player name, {ONLINE}: display number of online players,
    # {MAXPLAYERS}: display server slots, {IP}: player ip, {LOGINS}: number of players logged,
    # {WORLD}: player current world, {SERVER}: server name
    # {VERSION}: get current bukkit version, {COUNTRY}: player country
    useWelcomeMessage: true
    # Broadcast the welcome message to the server or only to the player?
    # set true for server or false for player
    broadcastWelcomeMessage: false
    # Should we delay the join message and display it once the player has logged in?
    delayJoinMessage: false
    # The custom join message that will be sent after a successful login,
    # keep empty to use the original one.
    # Available variables:
    # {PLAYERNAME}: the player name (no colors)
    # {DISPLAYNAME}: the player display name (with colors)
    # {DISPLAYNAMENOCOLOR}: the player display name (without colors)
    customJoinMessage: ''
    # Should we remove the leave messages of unlogged users?
    removeUnloggedLeaveMessage: false
    # Should we remove join messages altogether?
    removeJoinMessage: false
    # Should we remove leave messages altogether?
    removeLeaveMessage: false
    # Do we need to add potion effect Blinding before login/register?
    applyBlindEffect: false
    # Do we need to prevent people to login with another case?
    # If Xephi is registered, then Xephi can login, but not XEPHI/xephi/XePhI
    preventOtherCase: true
GroupOptions:
    # Enables switching a player to defined permission groups before they log in.
    # See below for a detailed explanation.
    enablePermissionCheck: false
    # This is a very important option: if a registered player joins the server
    # AuthMe will switch him to unLoggedInGroup. This should prevent all major exploits.
    # You can set up your permission plugin with this special group to have no permissions,
    # or only permission to chat (or permission to send private messages etc.).
    # The better way is to set up this group with few permissions, so if a player
    # tries to exploit an account they can do only what you've defined for the group.
    # After login, the player will be moved to his correct permissions group!
    # Please note that the group name is case-sensitive, so 'admin' is different from 'Admin'
    # Otherwise your group will be wiped and the player will join in the default group []!
    # Example: registeredPlayerGroup: 'NotLogged'
    registeredPlayerGroup: ''
    # Similar to above, unregistered players can be set to the following
    # permissions group
    unregisteredPlayerGroup: ''
Email:
    # Email SMTP server host
    mailSMTP: smtp.gmail.com
    # Email SMTP server port
    mailPort: 465
    # Only affects port 25: enable TLS/STARTTLS?
    useTls: true
    # Email account which sends the mails
    mailAccount: ''
    # Email account password
    mailPassword: ''
    # Email address, fill when mailAccount is not the email address of the account
    mailAddress: ''
    # Custom sender name, replacing the mailAccount name in the email
    mailSenderName: ''
    # Recovery password length
    RecoveryPasswordLength: 8
    # Mail Subject
    mailSubject: Your new AuthMe password
    # Like maxRegPerIP but with email
    maxRegPerEmail: 1
    # Recall players to add an email?
    recallPlayers: false
    # Delay in minute for the recall scheduler
    delayRecall: 5
    # Blacklist these domains for emails
    emailBlacklisted: 
    - 10minutemail.com
    # Whitelist ONLY these domains for emails
    emailWhitelisted: []
    # Send the new password drawn in an image?
    generateImage: false
    # The OAuth2 token
    emailOauth2Token: ''
Hooks:
    # Do we need to hook with multiverse for spawn checking?
    multiverse: true
    # Do we need to hook with BungeeCord?
    bungeecord: true
    # Send player to this BungeeCord server after register/login
    sendPlayerTo: ''
    # Do we need to disable Essentials SocialSpy on join?
    disableSocialSpy: false
    # Do we need to force /motd Essentials command on join?
    useEssentialsMotd: false
Protection:
    # Enable some servers protection (country based login, antibot)
    enableProtection: false
    # Apply the protection also to registered usernames
    enableProtectionRegistered: true
    geoIpDatabase:
        # The MaxMind clientId used to download the GeoIp database,
        # get one at https://www.maxmind.com/en/accounts/current/license-key
        # The EssentialsX project has a very useful tutorial on how to generate
        # the license key: https://essentialsx.cf/wiki/GeoIP.html
        clientId: ''
        # The MaxMind licenseKey used to download the GeoIp database.
        licenseKey: ''
    # Countries allowed to join the server and register. For country codes, see
    # https://dev.maxmind.com/geoip/legacy/codes/iso3166/
    # Use "LOCALHOST" for local addresses.
    # PLEASE USE QUOTES!
    countries: 
    - US
    - GB
    - LOCALHOST
    # Countries not allowed to join the server and register
    # PLEASE USE QUOTES!
    countriesBlacklist: 
    - A1
    # Do we need to enable automatic antibot system?
    enableAntiBot: true
    # The interval in seconds
    antiBotInterval: 5
    # Max number of players allowed to login in the interval
    # before the AntiBot system is enabled automatically
    antiBotSensibility: 10
    # Duration in minutes of the antibot automatic system
    antiBotDuration: 10
    # Delay in seconds before the antibot activation
    antiBotDelay: 60
    quickCommands:
        # Kicks the player that issued a command before the defined time after the join process
        denyCommandsBeforeMilliseconds: 1000
Purge:
    # If enabled, AuthMe automatically purges old, unused accounts
    useAutoPurge: false
    # Number of days after which an account should be purged
    daysBeforeRemovePlayer: 60
    # Do we need to remove the player.dat file during purge process?
    removePlayerDat: false
    # Do we need to remove the Essentials/userdata/player.yml file during purge process?
    removeEssentialsFile: false
    # World in which the players.dat are stored
    defaultWorld: world
    # Remove LimitedCreative/inventories/player.yml, player_creative.yml files during purge?
    removeLimitedCreativesInventories: false
    # Do we need to remove the AntiXRayData/PlayerData/player file during purge process?
    removeAntiXRayFile: false
    # Do we need to remove permissions?
    removePermissions: false
Security:
    SQLProblem:
        # Stop the server if we can't contact the sql database
        # Take care with this, if you set this to false,
        # AuthMe will automatically disable and the server won't be protected!
        stopServer: true
    console:
        # Copy AuthMe log output in a separate file as well?
        logConsole: true
    captcha:
        # Enable captcha when a player uses wrong password too many times
        useCaptcha: false
        # Max allowed tries before a captcha is required
        maxLoginTry: 5
        # Captcha length
        captchaLength: 5
        # Minutes after which login attempts count is reset for a player
        captchaCountReset: 60
        # Require captcha before a player may register?
        requireForRegistration: false
    tempban:
        # Tempban a user's IP address if they enter the wrong password too many times
        enableTempban: false
        # How many times a user can attempt to login before their IP being tempbanned
        maxLoginTries: 10
        # The length of time a IP address will be tempbanned in minutes
        # Default: 480 minutes, or 8 hours
        tempbanLength: 480
        # How many minutes before resetting the count for failed logins by IP and username
        # Default: 480 minutes (8 hours)
        minutesBeforeCounterReset: 480
        # The command to execute instead of using the internal ban system, empty if disabled.
        # Available placeholders: %player%, %ip%
        customCommand: ''
    recoveryCode:
        # Number of characters a recovery code should have (0 to disable)
        length: 8
        # How many hours is a recovery code valid for?
        validForHours: 4
        # Max number of tries to enter recovery code
        maxTries: 3
        # How long a player has after password recovery to change their password
        # without logging in. This is in minutes.
        # Default: 2 minutes
        passwordChangeTimeout: 2
    emailRecovery:
        # Seconds a user has to wait for before a password recovery mail may be sent again
        # This prevents an attacker from abusing AuthMe's email feature.
        cooldown: 60
    privacy:
        # The mail shown using /email show will be partially hidden
        # E.g. (if enabled)
        #  original email: [email protected]
        #  hidden email: my.***@***mple.com
        enableEmailMasking: false
        # Minutes after which a verification code will expire
        verificationCodeExpiration: 10
# Before a user logs in, various properties are temporarily removed from the player,
# such as OP status, ability to fly, and walk/fly speed.
# Once the user is logged in, we add back the properties we previously saved.
# In this section, you may define how these properties should be handled.
# Read more at https://github.com/AuthMe/AuthMeReloaded/wiki/Limbo-players
limbo:
    persistence:
        # Besides storing the data in memory, you can define if/how the data should be persisted
        # on disk. This is useful in case of a server crash, so next time the server starts we can
        # properly restore things like OP status, ability to fly, and walk/fly speed.
        # DISABLED: no disk storage,
        # INDIVIDUAL_FILES: each player data in its own file,
        # DISTRIBUTED_FILES: distributes players into different files based on their UUID, see below
        type: INDIVIDUAL_FILES
        # This setting only affects DISTRIBUTED_FILES persistence. The distributed file
        # persistence attempts to reduce the number of files by distributing players into various
        # buckets based on their UUID. This setting defines into how many files the players should
        # be distributed. Possible values: ONE, FOUR, EIGHT, SIXTEEN, THIRTY_TWO, SIXTY_FOUR,
        # ONE_TWENTY for 128, TWO_FIFTY for 256.
        # For example, if you expect 100 non-logged in players, setting to SIXTEEN will average
        # 6.25 players per file (100 / 16).
        # Note: if you change this setting all data will be migrated. If you have a lot of data,
        # change this setting only on server restart, not with /authme reload.
        distributionSize: SIXTEEN
    # Whether the player is allowed to fly: RESTORE, ENABLE, DISABLE, NOTHING.
    # RESTORE sets back the old property from the player. NOTHING will prevent AuthMe
    # from modifying the 'allow flight' property on the player.
    restoreAllowFlight: RESTORE
    # Restore fly speed: RESTORE, DEFAULT, MAX_RESTORE, RESTORE_NO_ZERO.
    # RESTORE: restore the speed the player had;
    # DEFAULT: always set to default speed;
    # MAX_RESTORE: take the maximum of the player's current speed and the previous one
    # RESTORE_NO_ZERO: Like 'restore' but sets speed to default if the player's speed was 0
    restoreFlySpeed: RESTORE_NO_ZERO
    # Restore walk speed: RESTORE, DEFAULT, MAX_RESTORE, RESTORE_NO_ZERO.
    # See above for a description of the values.
    restoreWalkSpeed: RESTORE_NO_ZERO
BackupSystem:
    # General configuration for backups: if false, no backups are possible
    ActivateBackup: false
    # Create backup at every start of server
    OnServerStart: false
    # Create backup at every stop of server
    OnServerStop: true
    # Windows only: MySQL installation path
    MysqlWindowsPath: C:\Program Files\MySQL\MySQL Server 5.1\
# Converter settings: see https://github.com/AuthMe/AuthMeReloaded/wiki/Converters
Converter:
    Rakamak:
        # Rakamak file name
        fileName: users.rak
        # Rakamak use IP?
        useIP: false
        # Rakamak IP file name
        ipFileName: UsersIp.rak
    CrazyLogin:
        # CrazyLogin database file name
        fileName: accounts.db
    loginSecurity:
        # LoginSecurity: convert from SQLite; if false we use MySQL
        useSqlite: true
        mySql:
            # LoginSecurity MySQL: database host
            host: ''
            # LoginSecurity MySQL: database name
            database: ''
            # LoginSecurity MySQL: database user
            user: ''
            # LoginSecurity MySQL: password for database user
            password: ''
auth = "193.35.***.**:1"
lobby = "193.35.***.**:2"
verify = "193.35.***.**:3"
limbo = "193.35.***.**:65535"


# In what order we should try servers when a player logs in or is kicked from a server.
try = [
    "auth"
]

`send-on-login` to send people to the server via the domain name that they used to join

currently, send-on-login only has 3 modes:

  • TO_FIRST
  • TO_EMPTIEST_SERVER
  • RANDOM

I suggest adding a 4th mode, that is VIA_DOMAIN_NAME to send players to the server depending on which domain name they used to connect to the Velocity proxy, e.g.:

  • Player A connects to the Velocity proxy via the following domain name: survival-1.mc.abc.xyz and gets sent to the auth-1 server for authorization. Upon successful authorization, they will be sent to the survival-1 server as defined by forced-hosts in Velocity config or AuthMeVelocity's separate config file.

  • Player B connects to the Velocity proxy via the following domain name: creative-1.mc.abc.xyz and gets sent to the auth-1 server for authorization. Upon successful authorization, they will be sent to the creative-1 server as defined by forced-hosts in Velocity config or AuthMeVelocity's separate config file.

  • Player C connects to the Velocity proxy via the following domain name: lobby.mc.abc.xyz and gets sent to the auth-1 server for authorization. Upon successful authorization, they will be sent to the lobby server as defined by forced-hosts in Velocity config or AuthMeVelocity's separate config file.

  • Player D connects directly to the Velocity proxy by the IP address and gets sent to the auth-1 server for authorization. Upon successful authorization, they will be sent to the default server, e.g. lobby, or the last server that they played on previously (this could be done via LuckPerm's meta fields, also perhaps adding a command like /remember would be great to let people toggle this behavior).

cant load on papaer 1.8.8

error
08:34:12] [Server thread/ERROR]: Could not load 'plugins\AuthMeVelocity-Paper-4.1.1 (1).jar' in folder 'plugins' org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:152) ~[patched_1.8.8.jar:git-PaperSpigot-445] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:136) ~[patched_1.8.8.jar:git-PaperSpigot-445] at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:293) ~[patched_1.8.8.jar:git-PaperSpigot-445] at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) ~[patched_1.8.8.jar:git-PaperSpigot-445] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) ~[patched_1.8.8.jar:git-PaperSpigot-445] at java.lang.Thread.run(Thread.java:1570) [?:?] Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml ... 6 more

Inconsistent package name in API dependency

I noticed that your GitHub username seems changed, which led to an inconsistency in the package name of the library's dependency. The current package name in the Maven repository is "io.github.4drian3d", but the actual jar file still contains the package name as "io.github._4drian3d".

Dependency information in wiki also wrong: https://github.com/4drian3d/AuthMeVelocity/wiki/Plugin-API

This inconsistency is causing issues when trying to use the library in my project, as the IDE cannot properly resolve the package names.

BUG - Players dont take damage after switching servers

Servers version:

  • Paper 1.20.1-196

AuthMeVelocity version:

  • both paper and velocity - 4.1.0 (4.0.4 too)

Authme version:

  • Fork you mentioned on github page
  • any other version i tried

SETUP:

  • All servers are auth servers

Problem scenario:
When running all servers as auth servers, switching between them logs in players correctly.
But when they switch server A to server B, they stop taking damage. PVP, PVE, but fall damage sometimes works.
Please help us out.

Couldn't pass ProxyInitializeEvent to authmevelocity

Plugin not working

[19:43:53] [Velocity Async Event Executor - #0/ERROR]: Couldn't pass ProxyInitializeEvent to authmevelocity
java.lang.NoSuchMethodError: 'net.kyori.adventure.text.minimessage.MiniMessage net.kyori.adventure.text.minimessage.MiniMessage.miniMessage()'
	at com.glyart.authmevelocity.proxy.config.ConfigUtils.<clinit>(ConfigUtils.java:9) ~[?:?]
	at com.glyart.authmevelocity.proxy.config.AuthMeConfig.<init>(AuthMeConfig.java:18) ~[?:?]
	at com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin.onProxyInitialization(AuthMeVelocityPlugin.java:49) ~[?:?]
	at com.glyart.authmevelocity.proxy.Lmbda$3.execute(Unknown Source) ~[?:?]
	at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[server.jar:3.1.1]
	at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[server.jar:3.1.1]
	at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[server.jar:3.1.1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Could not load 'plugins\AuthMeVelocity.jar' in folder 'plugins' - Paper

[01:40:44] [Server thread/ERROR]: Could not load 'plugins\AuthMeVelocity.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Cannot find main class `me.adrianed.authmevelocity.paper.AuthMeVelocityPaper'
	at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:75) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:153) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:414) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:322) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at org.bukkit.craftbukkit.v1_17_R1.CraftServer.loadPlugins(CraftServer.java:419) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:291) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1222) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:321) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: me.adrianed.authmevelocity.paper.AuthMeVelocityPaper
	at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:153) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:105) ~[patched_1.17.1.jar:git-Pufferfish-22]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:467) ~[?:?]
	at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:73) ~[patched_1.17.1.jar:git-Pufferfish-22]
	... 8 more

error on console at startup

Can anyone help me why, i get this error on the latest build with latest velocity as well? This wasn't happening with the old config. I also updated the config file to match the old one.

[14:46:30] [Velocity Async Event Executor - #0/INFO]: fastlogin - Starting... [14:46:30] [Velocity Async Event Executor - #0/INFO]: fastlogin - Start completed. [14:46:30] [Velocity Async Event Executor - #0/ERROR]: Couldn't pass ProxyInitializeEvent to authmevelocity java.lang.ClassCastException: class com.glyart.authmevelocity.proxy.config.AuthMeConfig$$Lambda$449/0x0000000801071220 cannot be cast to class com.glyart.authmevelocity.proxy.config.AuthMeConfig$ServerOnLogin (com.glyart.authmevelocity.proxy.config.AuthMeConfig$$Lambda$449/0x0000000801071220 and com.glyart.authmevelocity.proxy.config.AuthMeConfig$ServerOnLogin are in unnamed module of loader com.velocitypowered.proxy.plugin.PluginClassLoader @6e1d4137) at com.glyart.authmevelocity.proxy.config.AuthMeConfig.<init>(AuthMeConfig.java:18) ~[?:?] at com.glyart.authmevelocity.proxy.AuthMeVelocityPlugin.onProxyInitialization(AuthMeVelocityPlugin.java:49) ~[?:?] at com.glyart.authmevelocity.proxy.Lmbda$3.execute(Unknown Source) ~[?:?] at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:47) ~[server.jar:3.1.2-SNAPSHOT (git-94e8b0df-b121)] at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[server.jar:3.1.2-SNAPSHOT (git-94e8b0df-b121)] at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[server.jar:3.1.2-SNAPSHOT (git-94e8b0df-b121)] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:833) [?:?] [14:46:30] [Velocity Async Event Executor - #0/INFO]: Loaded token for website: default

Not compatible with latest version of Velocity 3.3.0-b329+

Opening the issue there, same as SignedVelocity : 4drian3d/SignedVelocity#70

Issue since changes made on Velocity proxy build 329.

[14:12:11 ERROR]: Couldn't pass ProxyInitializeEvent to authmevelocity
java.lang.NoClassDefFoundError: com/velocitypowered/proxy/protocol/packet/TabCompleteResponse
at java.lang.Class.getDeclaredMethods0(Native Method) ~[?:?]
at java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[?:?]
at java.lang.Class.getDeclaredMethods(Class.java:2504) ~[?:?]
at com.google.inject.internal.DeclaredMembers.getDeclaredMethods(DeclaredMembers.java:48) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.spi.InjectionPoint.getDeclaredMethods(InjectionPoint.java:816) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:735) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:431) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:177) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:686) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:629) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:615) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:990) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:902) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:302) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:225) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1140) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1169) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1134) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at io.github._4drian3d.authmevelocity.velocity.AuthMeVelocityPlugin.onProxyInitialization(AuthMeVelocityPlugin.java:161) ~[?:?]
at io.github._4drian3d.authmevelocity.velocity.Lmbda$7.execute(Unknown Source) ~[?:?]
at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:597) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:478) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.ClassNotFoundException: com.velocitypowered.proxy.protocol.packet.TabCompleteResponse
at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass0(PluginClassLoader.java:87) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at com.velocitypowered.proxy.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:64) ~[velocity.jar:3.3.0-SNAPSHOT (git-0993ce2f-b330)]
at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
... 27 more
[14:12:11 INFO] [signedvelocity]: Starting SignedVelocity

Thanks <3

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/gradle.yml
  • actions/checkout v4
  • actions/setup-java v4
  • nick-invision/retry v3
  • actions/upload-artifact v4
gradle
gradle.properties
settings.gradle.kts
build.gradle.kts
api/paper/build.gradle.kts
api/velocity/build.gradle.kts
build-logic/settings.gradle.kts
build-logic/build.gradle.kts
build-logic/src/main/kotlin/authmevelocity.publishing.gradle.kts
build-logic/src/main/kotlin/authmevelocity.spotless.gradle.kts
common/build.gradle.kts
  • org.junit:junit-bom 5.10.1
gradle/libs.versions.toml
  • net.kyori:adventure-api 4.15.0
  • io.papermc.paper:paper-api 1.20.4-R0.1-SNAPSHOT
  • com.velocitypowered:velocity-api 3.3.0-SNAPSHOT
  • com.velocitypowered:velocity-proxy 3.3.0-SNAPSHOT
  • fr.xephi:authme 5.6.0-SNAPSHOT
  • net.byteflux:libby-core 1.3.0
  • net.byteflux:libby-bukkit 1.3.0
  • net.byteflux:libby-paper 1.3.0
  • net.byteflux:libby-velocity 1.3.0
  • io.github.miniplaceholders:miniplaceholders-api 2.2.3
  • io.github.4drian3d:vpacketevents-api 1.1.0
  • net.luckperms:api 5.4
  • com.github.games647:fastlogin.velocity 1.12-SNAPSHOT
  • org.bstats:bstats-velocity 3.0.2
  • org.spongepowered:configurate-hocon 4.1.2
  • net.kyori:indra-common 3.1.3
  • net.kyori:indra-licenser-spotless 3.1.3
  • com.github.johnrengelman:shadow 8.1.1
  • org.assertj:assertj-core 3.25.3
  • net.minecrell.plugin-yml.bukkit 0.6.0
  • com.github.johnrengelman.shadow 8.1.1
  • net.kyori.blossom 2.1.0
  • net.kyori.indra.publishing 3.1.3
  • xyz.jpenilla.run-velocity 2.2.3
  • xyz.jpenilla.run-paper 2.2.3
  • org.jetbrains.gradle.plugin.idea-ext 1.1.7
paper/build.gradle.kts
velocity/build.gradle.kts
  • org.junit:junit-bom 5.10.1
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.6

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.