Search code examples
javakotlingradleminecraftbukkit

On my Minecraftserver my Plugin doesn't load


My Minecraft Plugin doesn't load

I tried reinstalling Java rebuilding the jar and tried to remake the code I used java 11 in IntelliJ Idea and I used Minecraft 1.15.2 on MacOS 10.15.7 and I coded in Kotlin

Error Message:

org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:80) ~[spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) [spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at org.bukkit.craftbukkit.v1_15_R1.CraftServer.loadPlugins(CraftServer.java:353) [spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:210) [spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:784) [spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.InstantiationException
    at jdk.internal.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]
    at java.lang.Class.newInstance(Class.java:584) ~[?:?]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot-1.15.2.jar:git-Spigot-a99063f-be6aaf0]
    ... 7 more

My Main Class the only Class that the Project have (it is in Kotlin):

package main

import org.bukkit.Bukkit
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Entity
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerJoinEvent
import org.bukkit.inventory.PlayerInventory
import org.bukkit.plugin.PluginManager

import org.bukkit.plugin.java.JavaPlugin


public abstract class Loader : JavaPlugin(), Listener, CommandExecutor{




    override fun onEnable() {
        Bukkit.broadcastMessage("Aura Plugin test by Woody1474747")
    }

    override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
        if(sender is Player){
            when(command.name){
                "aura" -> {
                    val plinv:PlayerInventory = sender.getInventory()

                    val item1 = plinv.getItem(0)
                    val item8 = plinv.getItem(8)
                    sender.sendMessage(item1.toString())

                }
            }
        }
        return true
    }
}

My plugin.yml

name: auraplugtest
version: 1.0.0
description: fsaf
main: main.Loader

commands:
  aura:
    usage: /<command>

My build.gradle:

    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
    id 'com.github.johnrengelman.shadow' version '2.0.4'
}

group 'org.example'
version '1-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

repositories {
    maven {
        url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'

        content {
            includeGroup 'org.bukkit'
            includeGroup 'org.spigotmc'
        }
    }
    maven {
        url = 'https://oss.sonatype.org/content/repositories/snapshots'
    }
}

dependencies {
    compileOnly 'org.bukkit:bukkit:1.14.4-R0.1-SNAPSHOT'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

sourceCompatibility = 1.8
targetCompatibility = 1.8


compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}


Solution

  • The answer is simple, your class cannot be abstract! Fixed code:

    // removed abstract keyword
    public class Loader : JavaPlugin(), Listener, CommandExecutor {
     // ...
    }