lucko / commodore

Utility for using Minecraft's 1.13 'brigadier' library in Bukkit plugins.
MIT License
176 stars 15 forks source link

Server not supported on Paper 1.18.2 #24

Closed orvitpng closed 2 years ago

orvitpng commented 2 years ago

I'm running commodore w/ my plugin and it is crying and I can't figure out why. Below is my main class, and below that is my error. This is on paper #272

class Main : JavaPlugin() {
    companion object {
        lateinit var plugin: Main
        lateinit var db: Jedis
    }
    lateinit var commodore: Commodore

    override fun onEnable() {
        saveDefaultConfig()
        db = Jedis(config.getString("address"), config.getInt("port"))
        val auth = config.getString("auth")
        if (auth != null) db.auth(auth)

        commodore = CommodoreProvider.getCommodore(this)
        plugin = this

        enableFeatures()

        super.onEnable()
    }

    private fun enableFeatures() {
        //Punishments()
    }
}

[22:44:33 ERROR]: Error occurred while enabling rats v1.0.0 (Is it up to date?)
ninja.carter.rats.commodore.BrigadierUnsupportedException: Brigadier is not supported by the server.
        at ninja.carter.rats.commodore.CommodoreProvider.getCommodore(CommodoreProvider.java:73) ~[rats-1.0.0-all.jar:?]
        at ninja.carter.rats.Main.onEnable(Main.kt:24) ~[rats-1.0.0-all.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:501) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugin(CraftServer.java:559) ~[paper-1.18.2.jar:git-Paper-272]
        at org.bukkit.craftbukkit.v1_18_R2.CraftServer.enablePlugins(CraftServer.java:473) ~[paper-1.18.2.jar:git-Paper-272]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:664) ~[paper-1.18.2.jar:git-Paper-272]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:431) ~[paper-1.18.2.jar:git-Paper-272]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:316) ~[paper-1.18.2.jar:git-Paper-272]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1163) ~[paper-1.18.2.jar:git-Paper-272]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.18.2.jar:git-Paper-272]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ExceptionInInitializerError
        at ninja.carter.rats.commodore.MinecraftArgumentTypes.<clinit>(MinecraftArgumentTypes.java:80) ~[rats-1.0.0-all.jar:?]
        at ninja.carter.rats.commodore.CommodoreProvider.checkSupported(CommodoreProvider.java:46) ~[rats-1.0.0-all.jar:?]
        at ninja.carter.rats.commodore.CommodoreProvider.<clinit>(CommodoreProvider.java:40) ~[rats-1.0.0-all.jar:?]
        ... 12 more
Caused by: java.lang.NoSuchFieldException
        at java.util.Optional.orElseThrow(Optional.java:403) ~[?:?]
        at ninja.carter.rats.commodore.MinecraftArgumentTypes.<clinit>(MinecraftArgumentTypes.java:77) ~[rats-1.0.0-all.jar:?]
        at ninja.carter.rats.commodore.CommodoreProvider.checkSupported(CommodoreProvider.java:46) ~[rats-1.0.0-all.jar:?]
        at ninja.carter.rats.commodore.CommodoreProvider.<clinit>(CommodoreProvider.java:40) ~[rats-1.0.0-all.jar:?]
        ... 12 more```
orvitpng commented 2 years ago

I noticed my error. I forgot to exclude the Mojang Brigadier API.

orvitpng commented 2 years ago

I guess I was wrong, still getting this issue.

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

plugins {
    id("com.github.johnrengelman.shadow") version "7.1.2"
    kotlin("jvm") version "1.6.20-RC"
}

group = "ninja.carter"
version = "1.0.0"

repositories {
    maven { url = uri("https://papermc.io/repo/repository/maven-public/") }
    maven { url = uri("https://libraries.minecraft.net") }
    mavenCentral()
}
dependencies {
    implementation("redis.clients:jedis:4.2.0")
    implementation("me.lucko:commodore:1.11")

    compileOnly("io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT")
}

tasks.withType<Jar> { destinationDirectory.set(file("$rootDir/test/plugins/")) }
tasks.withType<ShadowJar> {
    dependencies {
        exclude(dependency("com.mojang:brigadier"))
    }
    relocate("me.lucko.commodore", "ninja.carter.rats.commodore")
}

java {
    toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}
class Main : JavaPlugin() {
    companion object {
        lateinit var commodore: Commodore
        lateinit var plugin: Main
    }

    override fun onEnable() {
        if (CommodoreProvider.isSupported()) commodore = CommodoreProvider.getCommodore(this)
        else println("Commodore is not supported.")
        plugin = this

        Cache.init("127.0.0.1", 6379)

        CommandAPI.command {
            name = "test"
            brigadier = {
                literal("hola")
                literal("ez")
                literal {
                    name = "ezpz"
                    literal("hi")
                }
            }
        }

        super.onEnable()
    }
}
orvitpng commented 2 years ago

Again, my dumb mistake. Make sure y'all are on the latest version of commodore!