AuthMe Reloaded

AuthMe Reloaded

3M Downloads

Error when the plugin kick players out by expiring login time

andris155 opened this issue · 2 comments

commented

Before reporting an issue make sure you are running the latest build of the plugin and checked for duplicate issues!

What behaviour is observed:

Error when the plugin kick players out by expiring login time.

What behaviour is expected:

No error when the plugin kick players out by expiring login time.

Steps/models to reproduce:

The actions that cause the issue

  1. Login server when installed Authme plugin.
  2. Wait and no login.

Plugin list:

Plugins (28): AuthMe, BetterGUI, ChatControl, Citizens, ConditionalCommands, CoreProtect, EasySetSpawn*, FastLogin, HolographicDisplays, HolographicExtension, ImageMaps, ItemJoin, LPC, LuckPerms, NoCheatPlus, PlaceholderAPI, PlayerVedelem, PlugMan, ProtocolLib, SkinsRestorer, StaffChat, SuperTrailsPro*, TAB, Vault, WDLCompanion*, WorldBorder, WorldEdit, WorldGuard

Environment description

Authme - Yatopia (Paper fork) 1.16.4, SQLite.
AuthmeBungee - Waterfall (Bungecord fork)

AuthMe build number:

AuthMeReloaded v5.6.0-SNAPSHOT (build: 2432)

Error Log:

[15:19:14] [Server thread/WARN]: [AuthMe] Task #82962 for AuthMe v5.6.0-SNAPSHOT-b2432 generated an exception
java.lang.NullPointerException: null
	at net.minecraft.server.v1_16_R3.PlayerConnection.disconnect(PlayerConnection.java:323) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at org.bukkit.craftbukkit.v1_16_R3.entity.CraftPlayer.kickPlayer(CraftPlayer.java:467) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at fr.xephi.authme.task.TimeoutTask.run(TimeoutTask.java:31) ~[?:?]
	at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:99) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:468) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.b(MinecraftServer.java:1372) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at net.minecraft.server.v1_16_R3.DedicatedServer.b(DedicatedServer.java:397) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1282) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1013) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:179) ~[patched_1.16.4.jar:git-Yatopia-"a47bfa7"]
	at java.lang.Thread.run(Unknown Source) [?:?]
[15:19:14] [Server thread/INFO]: repa12 lost connection: A belépési időd lejárt, ezért kidobott a szerver! Kérlek, próbáld meg újra!

Configuration:

commented

This is the PlayerConnection.disconnect decompiled source code:

    public void disconnect(String s) {
        if (!this.processedDisconnect) {// 299
            String leaveMessage = EnumChatFormat.YELLOW + this.player.getName() + " left the game.";// 302
            PlayerKickEvent event = new PlayerKickEvent(this.server.getPlayer(this.player), s, leaveMessage);// 304
            if (this.server.getServer().isRunning()) {// 306
                this.server.getPluginManager().callEvent(event);// 307
            }

            if (!event.isCancelled()) {// 310
                s = event.getReason();// 315
                IChatBaseComponent ichatbasecomponent = CraftChatMessage.fromString(s, true)[0];// 316
                this.player.quitReason = QuitReason.KICKED;// 319
                this.networkManager.sendPacket(new PacketPlayOutKickDisconnect(ichatbasecomponent), (future) -> {// 320
                    this.networkManager.close(ichatbasecomponent);// 321
                });// 322
                this.a(ichatbasecomponent, event.getLeaveMessage().equalsIgnoreCase(leaveMessage) ? null : event.getLeaveMessage());// 323
                this.networkManager.stopReading();// 324
                MinecraftServer minecraftserver = this.minecraftServer;// 325
                NetworkManager networkmanager = this.networkManager;// 326
                this.networkManager.getClass();// 328
                minecraftserver.scheduleOnMain(networkmanager::handleDisconnection);// 330
            }
        }
    }// 300 312 331

If line 323 throws a NullPointerException it means that a plugin is changing the kick message to null in the PlayerKickEvent event.
Do you have any plugin attempting to change such messages? Not an AuthMe related issue anyway.

commented

Thanks for helping. Chatcontrol caused this error.