java - 我如何解决这个错误:控制台无法读取数据
问题描述
我正在编写一个 Minecraft 插件(我的第一个“真实”插件,其他插件是测试的),但我不知道为什么会发生这个错误。
«我不知道这个错误是如何被调用的&因为我来自厄瓜多尔,所以这个帖子的大部分内容都是西班牙语 »
我猜这段代码会产生这个错误:
@Override
public void onEnable() {
getServer().getConsoleSender().sendMessage(ChatColor.GREEN+"Anti-lag enabled);
}
或在plugin.yml
:⬇️
# This plugin is private...
name: Anti-lag
version: 1.16.1.0.1
api-version: 1.16.1
# Added in Stack Overflow: Idk if the API version is correct.
author: me
main: private.private.antilag.anti_lag
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
如果您想阅读所有服务器(控制台)日志,请单击下面的链接。
[17:26:29 ERROR]: Failed to read console input
java.io.IOException: Invalid controller
at java.io.FileInputStream.readBytes(Native Method) ~[?:1.8.0_191]
at java.io.FileInputStream.read(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedInputStream.read1(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedInputStream.read(Unknown Source) ~[?:1.8.0_191]
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[?:1.8.0_191]
at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:1.8.0_191]
at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:1.8.0_191]
at java.io.InputStreamReader.read(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedReader.fill(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_191]
at net.minecrell.terminalconsole.SimpleTerminalConsole.readCommands(SimpleTerminalConsole.java:180) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecrell.terminalconsole.SimpleTerminalConsole.start(SimpleTerminalConsole.java:143) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecraft.server.v1_16_R1.DedicatedServer$1.run(DedicatedServer.java:66) ~[patched_1.16.1.jar:git-Paper-131]
Suppressed: java.io.IOException: Controlador no válido
at java.io.FileInputStream.close0(Native Method) ~[?:1.8.0_191]
at java.io.FileInputStream.access$000(Unknown Source) ~[?:1.8.0_191]
at java.io.FileInputStream$1.close(Unknown Source) ~[?:1.8.0_191]
at java.io.FileDescriptor.closeAll(Unknown Source) ~[?:1.8.0_191]
at java.io.FileInputStream.close(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedInputStream.close(Unknown Source) ~[?:1.8.0_191]
at sun.nio.cs.StreamDecoder.implClose(Unknown Source) ~[?:1.8.0_191]
at sun.nio.cs.StreamDecoder.close(Unknown Source) ~[?:1.8.0_191]
at java.io.InputStreamReader.close(Unknown Source) ~[?:1.8.0_191]
at java.io.BufferedReader.close(Unknown Source) ~[?:1.8.0_191]
at net.minecrell.terminalconsole.SimpleTerminalConsole.readCommands(SimpleTerminalConsole.java:183) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecrell.terminalconsole.SimpleTerminalConsole.start(SimpleTerminalConsole.java:143) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecraft.server.v1_16_R1.DedicatedServer$1.run(DedicatedServer.java:66) ~[patched_1.16.1.jar:git-Paper-131]
谢谢,如果你帮助我,我会留意你的回复。
解决方案
恭喜你的第一个插件!看起来错误确实是由您的 plugin.yml 中的 API 版本引起的:
[17:26:33 ERROR]: Could not load 'plugins\Anti-lag.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.16.1
at org.bukkit.craftbukkit.v1_16_R1.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:290) ~[patched_1.16.1.jar:git-Paper-131]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[patched_1.16.1.jar:git-Paper-131]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:397) ~[patched_1.16.1.jar:git-Paper-131]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:305) ~[patched_1.16.1.jar:git-Paper-131]
at org.bukkit.craftbukkit.v1_16_R1.CraftServer.loadPlugins(CraftServer.java:388) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecraft.server.v1_16_R1.DedicatedServer.init(DedicatedServer.java:208) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:941) ~[patched_1.16.1.jar:git-Paper-131]
at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.1.jar:git-Paper-131]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
将“api-version: 1.16.1”切换为“api-version:1.16”应该可以解决问题。使用 api-version 时,只需要使用主版本号(如 1.13、1.14 等),而不需要使用次版本号(1.13.1、1.14.2 等)。
奇怪的是,“无效控制器”错误似乎是Minecraft 本身的一个错误,但幸运的是,根据 Mojang 的解释,“应该没有任何副作用并且可以忽略”。你什么都没做:)
推荐阅读
- java - 没有这样的算法:提供者 SunPKCS11-CartaoCidadao 的 PKCS11
- ignite - 点燃 JTS WGS84
- java - 如果我的应用程序需要大量连接查询,我应该使用 ORM
- vue.js - 如何在 Vue.js 中隔离组件
- php - 变量在 PHP 中的函数下不起作用,即使变量是全局的
- file - Google Colab:关于 VM 上文件的生命周期
- html - 使用 SQL 将 html 数据读取为 XML
- c# - 在 RadPane 中心显示“消息框”
- delphi - 如何使用 TJvInspector 拾取更改的项目,其中项目是 TStrings?
- python - 如何将 Python 中的多个集合与生成器表达式合并?