Minecraft 插件帮助 (Spigot)

0 java eclipse plugins minecraft

需要有关 Minecraft spigot 插件的帮助。

这是布局(或者构建路径,如果你想这样称呼它)

这是主文件(main.java)的代码

package com.angosa;

import org.bukkit.plugin.java.JavaPlugin;

import com.angosa.listener.Listeners;



public class Main extends JavaPlugin {
    @Override

    public void onEnable() {
        getServer().getPluginManager().registerEvents(new Listeners(), this);
        
    }
}
Run Code Online (Sandbox Code Playgroud)

这是listeners.java的代码(位于listener包中)

package com.angosa.listener;
import org.bukkit.entity.Creeper;

import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;

public class Listeners implements Listener {
    @EventHandler
    public void creatureSpawn(CreatureSpawnEvent event) {
        if(event.getEntityType() == EntityType.CREEPER) {
            
            Creeper creeper = (Creeper) event.getEntity();
            
            creeper.setPowered(true);
            creeper.setHealth(100);
            creeper.setExplosionRadius(200);
            
            
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后这是 yml 文件

main: com.angosa.Main
name: OPCreeper
version: 1.0
author: Claim
Run Code Online (Sandbox Code Playgroud)

另外,如果版本错误,以下是我将其上传到服务器时的样子。

[18:06:11 ERROR]: Could not load 'plugins/OPCreeper.jar' in folder 'plugins'
Run Code Online (Sandbox Code Playgroud)

org.bukkit.plugin.InvalidDescriptionException:org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:170)〜[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]处的plugin.yml无效org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:144) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] 在 org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServer.java :383)〜[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]在net.minecraft.server.v1_16_R3.DedicatedServer.init(DedicatedServer.java:185)〜[spigot-1.16.4.jar: git-Spigot-37d799b-3eb7236] 在 net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:808) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] 在 net.minecraft。 server.v1_16_R3.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236] 在 java.lang.Thread.run(Thread.java:832) [? :?] 导致:org.yaml.snakeyaml.scanner.ScannerException:扫描下一个标记时发现无法启动任何标记的字符“\t(TAB)”。(请勿使用 \t(TAB) 进行缩进)在“reader”第 7 行第 1 列中:

^

at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:419) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:227) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:148) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:235) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:95) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:119) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:150) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:472) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.yaml.snakeyaml.Yaml.load(Yaml.java:411) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.plugin.PluginDescriptionFile.<init>(PluginDescriptionFile.java:252) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:165) ~[spigot-1.16.4.jar:git-Spigot-37d799b-3eb7236]
... 6 more
Run Code Online (Sandbox Code Playgroud)

Ney*_*com 5

我在第一行控制台中看到了问题:

org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
Run Code Online (Sandbox Code Playgroud)

最后你可以看到:

 (Do not use \t(TAB) for indentation)
Run Code Online (Sandbox Code Playgroud)

在我看来,你只需要:

  1. 清除你的plugin.yml文件并再次正确填写(不使用TAB键)
  2. 将你的plugin.yml文件放入你的src文件夹中
  3. 导出前保存*

*对我来说,plugin.yml 文件中的“主要”值看起来是:

main: com.angosa.Main.OPCreeper
Run Code Online (Sandbox Code Playgroud)

但当您在此线程中发送时,正确的值是:

com.angosa.Main
Run Code Online (Sandbox Code Playgroud)

所以不要忘记在导出插件之前保存,我完全不确定,但这可能是问题所在。*

为了向您展示,有一个我正在使用的插件示例:

https://i.stack.imgur.com/55JVe.png:包资源管理器和plugin.yml https://i.stack.imgur.com/TiWpN.png:主类

(本例中 OrbeDisplay.java = Main.java)

如果此后不起作用,我将寻找另一个解决方案,所以请随时通知我。

抱歉我的英语不好,我来自法国,刚刚开始学习。