我目前正在为Spigot 1.8.8开发一个Minecraft OITC插件!~全部用Kotlin和IntelliJ编写
在开始使用ItemDrops的简单EventHandler时,我遇到了一个问题:一个月一个月一个月一个月一个月
一段时间后,我发现我的代码可能没问题:
我的主要课程:
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!")
}
}
我的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
}
}
我做了一些研究,发现在构建Kotlin运行时时时有一个异常。我的项目是用maven构建的,下面是我的依赖项:
<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>
由于版本较旧,我在1.8.8中使用了一个本地的spigot依赖。另外,我也尝试手动添加Kotlin运行时,但版本太旧了:Kotlin: API version 1.2 is no longer supported; please, use version 1.3 or greater.
我不知道该怎么办。有人能帮我解决这个问题吗?
1条答案
按热度按时间2admgd591#
我找到了解决办法
好吧,问题是:我想我只是忘了更新控制哪个dependency被构建到jar中的Artifact。所以信息在pom.xml中,但没有应用到实际的构建中。
因此,对于每个像我一样遇到问题的人来说,搜索解决方案并始终记住更新项目结构中的Artifact。
我的依赖项现在看起来像这样:
我认为
kotlin-runtime
不是真正的问题。只要按照Tenfour04的建议将kotlin-stdlib-jdk8
更改为kotlin-stdlib
即可。