I'm currently working on a Minecraft OITC plugin for Spigot 1.8.8! ~All written in Kotlin with IntelliJ
While starting off with a simple EventHandler for ItemDrops, I ran into an Issue:
Could not pass event PlayerDropItemEvent to RarityOITC v1.0-SNAPSHOT
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
After some time i figured that my code is probably fine:
My Main Class:
package me.ysheiny.rarityoitc
import me.ysheiny.rarityoitc.handlers.PlayerHandler
import org.bukkit.plugin.java.JavaPlugin
class RarityOITC : JavaPlugin() {
val prefix = "[&bRarity&dOITC&f]"
override fun onEnable() {
// Plugin startup logic
logger.info("Plugin Enabled!")
PlayerHandler(this)
}
override fun onDisable() {
// Plugin shutdown logic
logger.info("Plugin Disabled!")
}
}
My PlayerHandler:
package me.ysheiny.rarityoitc.handlers
import me.ysheiny.rarityoitc.RarityOITC
import org.bukkit.Bukkit
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerDropItemEvent
class PlayerHandler(plugin: RarityOITC?) : Listener {
init {
Bukkit.getPluginManager().registerEvents(this, plugin)
}
@EventHandler
fun onPlayerDropItem(event: PlayerDropItemEvent)
{
event.isCancelled = true
}
}
I did some research and found there is an exception building the Kotlin Runtime. My project is build with maven in these are my dependencies:
<dependencies>
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/spigot-1.8.8.jar</systemPath>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-runtime</artifactId>
<version>1.2.71</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/kotlin-runtime-1.2.71.jar</systemPath>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-test</artifactId>
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
Because of the old version I'm using a local spigot dependency for 1.8.8.
Otherwise I have been trying to add the Kotlin runtime by hand too, but the version was to old:
Kotlin: API version 1.2 is no longer supported; please, use version 1.3 or greater.
I have no idea what to do. Can someone help me fix this problem?