Elytrium / LimboFilter

Powerful bot filtering solution for Minecraft proxies. Built with LimboAPI.
https://elytrium.net/
GNU Affero General Public License v3.0
142 stars 42 forks source link

[BUG] Startup error after updating Velocity from `3.3.0-b390` to `3.3.0-b399`: #98

Closed NDruce closed 3 months ago

NDruce commented 3 months ago

Describe the bug Startup error after updating Velocity from 3.3.0-b390 to 3.3.0-b399:

[19:29:24 ERROR]: Couldn't pass ProxyInitializeEvent to limbofilter 1.1.17
net.elytrium.commons.utils.reflection.ReflectionException: An unexpected internal error was caught during the reflection operations.
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacketFactory.encodeId(PreparedPacketFactory.java:188) ~[?:?]
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacketFactory.encodeSingle(PreparedPacketFactory.java:243) ~[?:?]
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacketFactory.encodeSingle(PreparedPacketFactory.java:224) ~[?:?]
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacket.prepare(PreparedPacket.java:136) ~[?:?]
        at net.elytrium.limboapi.injection.packet.PreparedPacketImpl.prepare(PreparedPacketImpl.java:89) ~[?:?]
        at net.elytrium.limboapi.injection.packet.PreparedPacketImpl.prepare(PreparedPacketImpl.java:26) ~[?:?]
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacket.prepare(PreparedPacket.java:75) ~[?:?]
        at net.elytrium.limboapi.injection.packet.PreparedPacketImpl.prepare(PreparedPacketImpl.java:49) ~[?:?]
        at net.elytrium.limboapi.injection.packet.PreparedPacketImpl.prepare(PreparedPacketImpl.java:26) ~[?:?]
        at net.elytrium.limbofilter.cache.CachedPackets.createCaptchaAttemptsPacket(CachedPackets.java:175) ~[?:?]
        at net.elytrium.limbofilter.cache.CachedPackets.createPackets(CachedPackets.java:71) ~[?:?]
        at net.elytrium.limbofilter.LimboFilter.reload(LimboFilter.java:307) ~[?:?]
        at net.elytrium.limbofilter.LimboFilter.onProxyInitialization(LimboFilter.java:140) ~[?:?]
        at net.elytrium.limbofilter.Lmbda$15.execute(Unknown Source) ~[?:?]
        at com.velocitypowered.proxy.event.UntargetedEventHandler$VoidHandler.lambda$buildHandler$0(UntargetedEventHandler.java:56) ~[velocity-3.3.0-SNAPSHOT-399.jar:3.3.0-SNAPSHOT (git-e60e2063-b399)]
        at com.velocitypowered.proxy.event.VelocityEventManager.fire(VelocityEventManager.java:598) ~[velocity-3.3.0-SNAPSHOT-399.jar:3.3.0-SNAPSHOT (git-e60e2063-b399)]
        at com.velocitypowered.proxy.event.VelocityEventManager.lambda$fire$5(VelocityEventManager.java:479) ~[velocity-3.3.0-SNAPSHOT-399.jar:3.3.0-SNAPSHOT (git-e60e2063-b399)]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "it.unimi.dsi.fastutil.objects.Object2IntMap.containsKey(Object)" because "ids" is null
        at net.elytrium.limboapi.server.item.SimpleItemComponentManager.getId(SimpleItemComponentManager.java:150) ~[?:?]
        at net.elytrium.limboapi.server.item.SimpleItemComponentMap.write(SimpleItemComponentMap.java:75) ~[?:?]
        at net.elytrium.limboapi.protocol.packets.s2c.SetSlotPacket.encodeModern(SetSlotPacket.java:84) ~[?:?]
        at net.elytrium.limboapi.protocol.packets.s2c.SetSlotPacket.encode(SetSlotPacket.java:65) ~[?:?]
        at net.elytrium.limboapi.thirdparty.fastprepare.PreparedPacketFactory.encodeId(PreparedPacketFactory.java:186) ~[?:?]
        ... 19 more

Server Info (please complete the following information): All Limbo plugins are latest versions (in dump below):

{
  "versionInfo": {
    "name": "Velocity",
    "vendor": "Velocity Contributors",
    "version": "3.3.0-SNAPSHOT (git-e60e2063-b399)"
  },
  "platform": {
    "operatingSystemType": "Windows Server 2008 R2",
    "operatingSystemVersion": "6.1",
    "operatingSystemArchitecture": "amd64",
    "javaVersion": "21.0.3",
    "javaVendor": "BellSoft",
    "listener": {
      "listenerType": "NIO",
      "compression": "Java",
      "encryption": "Java"
    }
  },
  "config": {
    "bind": "10.10.10.9:25565",
    "motd": "\u003cred\u003eMine\u003c/red\u003e\u003cgreen\u003e.by\u003c/green\u003e",
    "showMaxPlayers": 75000,
    "onlineMode": false,
    "preventClientProxyConnections": false,
    "playerInfoForwardingMode": "BUNGEEGUARD",
    "announceForge": false,
    "onlineModeKickExistingPlayers": true,
    "pingPassthrough": "DISABLED",
    "advanced": {
      "compressionThreshold": 256,
      "compressionLevel": -1,
      "loginRatelimit": 3000,
      "connectionTimeout": 10000,
      "readTimeout": 30000,
      "proxyProtocol": false,
      "tcpFastOpen": false,
      "bungeePluginMessageChannel": true,
      "showPingRequests": false,
      "failoverOnUnexpectedServerDisconnect": true,
      "announceProxyCommands": true,
      "logCommandExecutions": false,
      "logPlayerConnections": true,
      "acceptTransfers": false
    },
    "query": {
      "queryEnabled": false,
      "queryPort": 25565,
      "queryMap": "Velocity",
      "showPlugins": false
    },
    "enablePlayerAddressLogging": true,
    "forceKeyAuthentication": true,
    "servers": {
      "Bingo": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45682
      },
      "Tests": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45679
      },
      "SkyWars": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45684
      },
      "Fallback": {
        "currentPlayers": 0,
        "host": "127.0.0.1",
        "port": 0
      },
      "SkyPvP": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45683
      },
      "Hub": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45680
      },
      "SurvivalEx": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45685
      },
      "MineZ": {
        "currentPlayers": 0,
        "host": "10.10.10.9",
        "port": 45678
      }
    },
    "connectOrder": [
      "Hub"
    ],
    "forcedHosts": {
      "hub.localhost": [
        "Hub"
      ]
    }
  },
  "plugins": [
    {
      "id": "cmiv",
      "name": "CMIV",
      "version": "1.0.1.2",
      "authors": [
        "Zrips"
      ],
      "description": "CMI Velocity"
    },
    {
      "id": "fastmotd",
      "name": "FastMOTD",
      "version": "1.0.6",
      "authors": [
        "Elytrium (https://elytrium.net/)"
      ],
      "description": "MOTD plugin that uses FastPrepareAPI.",
      "url": "https://elytrium.net/"
    },
    {
      "id": "filecleaner",
      "name": "FileCleaner",
      "version": "v2.0.0",
      "authors": [
        "JasonHorkles"
      ],
      "description": "Clean your old files!",
      "url": "https://github.com/SilverstoneMC/FileCleaner"
    },
    {
      "id": "floodgate",
      "name": "floodgate",
      "version": "2.2.3-SNAPSHOT (b109-49bd564)",
      "authors": [
        "GeyserMC"
      ],
      "description": "Allows Bedrock players to join Java edition servers while keeping the server in online mode",
      "url": "https://geysermc.org"
    },
    {
      "id": "geyser",
      "name": "Geyser-Velocity",
      "version": "2.4.0-SNAPSHOT (git-master-deb25d7)",
      "authors": [
        "GeyserMC"
      ],
      "url": "https://geysermc.org"
    },
    {
      "id": "limboapi",
      "name": "LimboAPI",
      "version": "1.1.23",
      "authors": [
        "Elytrium (https://elytrium.net/)"
      ],
      "description": "Velocity plugin for making virtual servers.",
      "url": "https://elytrium.net/"
    },
    {
      "id": "limboauth",
      "name": "LimboAuth",
      "version": "1.1.14-SNAPSHOT (git-9d76e7f)",
      "authors": [
        "Elytrium (https://elytrium.net/)"
      ],
      "url": "https://elytrium.net/",
      "dependencies": [
        "limboapi",
        "floodgate"
      ]
    },
    {
      "id": "limbofilter",
      "name": "LimboFilter",
      "version": "1.1.17",
      "authors": [
        "Elytrium (https://elytrium.net/)"
      ],
      "url": "https://elytrium.net/",
      "dependencies": [
        "limboapi"
      ]
    },
    {
      "id": "luckperms",
      "name": "LuckPerms",
      "version": "5.4.124",
      "authors": [
        "Luck"
      ],
      "description": "A permissions plugin",
      "url": "https://luckperms.net"
    },
    {
      "id": "skinsrestorer",
      "name": "SkinsRestorer",
      "version": "15.0.11",
      "authors": [
        "knat",
        "AlexProgrammerDE",
        "Blackfire62",
        "McLive"
      ],
      "description": "Ability to restore/change skins on servers!",
      "url": "https://skinsrestorer.net",
      "dependencies": [
        "floodgate"
      ]
    },
    {
      "id": "slashhub",
      "name": "SlashHub",
      "version": "1.5.3",
      "authors": [
        "skygamez"
      ],
      "description": "A Velocity port for SlashHub"
    },
    {
      "id": "spark",
      "name": "spark",
      "version": "1.10.64",
      "authors": [
        "Luck"
      ],
      "description": "spark is a performance profiling plugin/mod for Minecraft clients, servers and proxies."
    }
  ]
}
UserNugget commented 3 months ago

This is LimboAPI issue that was already fixed in the dev-builds.