You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发PaperMC Minecraft插件时遭遇未解析引用color错误

解决PaperMC插件中Kotlin的「未解析引用color」错误

你的错误根源是代码里的链式调用逻辑错了:sender.sendMessage(Component.text("You jumped")).color(...) 这行里,sendMessage()的返回值是布尔值(表示消息是否发送成功),而不是你构建的Component对象,所以编译器找不到color()方法。

正确的做法是先构建好带颜色的Component,再把它传给sendMessage(),或者直接在Component.text()之后链式调用color():

修正后的完整代码:

import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.TextColor
import org.bukkit.util.Vector

class jumpCommand : CommandExecutor {
    override fun onCommand(sender: CommandSender, command: Command, p2: String, p3: Array<out String>?): Boolean {
        if (sender is Player) {
            if (sender.isOp) {
                // 先构建带颜色的Component,再传入sendMessage
                val successMsg = Component.text("You jumped").color(TextColor.color(0, 255, 75))
                sender.sendMessage(successMsg)
                sender.velocity = sender.velocity.add(Vector(5.0, 10.0, 5.0))
            } else {
                // 也可以直接链式调用后传入sendMessage
                sender.sendMessage(Component.text("some message").color(TextColor.color(255, 0, 0)))
            }
        }
        return false
    }
}

额外说明:Kyori Adventure的API设计是通过链式调用修改Component的属性(比如颜色、样式),这些调用必须直接作用在Component对象上,而不是sendMessage的返回值。另外注意你的onCommand最后返回false,这会让Minecraft显示该命令的默认用法提示,如果不需要的话可以改成return true。

内容的提问来源于stack exchange,提问作者Angkan Dey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:47:22