首页 > 解决方案 > 我的自定义 java 插件没有出现在插件中

问题描述

我制作的自定义插件在eclipse中没有错误,当我导出它时它没有出现在Spigot中?

主文件

package me.intelligamez.damageone;

import org.bukkit.plugin.java.JavaPlugin;

import me.intelligamez.damageone.listeners.DamageListener;
import me.intelligamez.damageone.listeners.HealthListener;

public class Main extends JavaPlugin {
    
    @Override 
    public void onEnable() {
        
        new DamageListener(this);
        new HealthListener(this);
    }

}

听众 1

package me.intelligamez.damageone.listeners;

import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;

import me.intelligamez.damageone.Main;

public class DamageListener implements Listener {

    private Main plugin;
    
    public DamageListener(Main plugin) {
        this.plugin = plugin;
        
        Bukkit.getPluginManager().registerEvents(this,plugin);
    }
    
    @EventHandler
    public void onDamage(EntityDamageEvent dmg) {
        Entity e = dmg.getEntity();
        if(e instanceof Player) {
        Player p = (Player) e;
        double initialh = p.getHealth();
        double taken = dmg.getFinalDamage();
        double pop = taken*1.25;
        p.setHealth(pop+initialh);
        }
    }
}

听众 2(几乎相同)

package me.intelligamez.damageone.listeners;

import org.bukkit.Bukkit;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityRegainHealthEvent;

import me.intelligamez.damageone.Main;

public class HealthListener implements Listener {

    private Main plugin;
    
    public HealthListener(Main plugin) {
        this.plugin = plugin;
        
        Bukkit.getPluginManager().registerEvents(this,plugin);
    }
    
    @EventHandler
    public void onDamage(EntityRegainHealthEvent hlth) {
        Entity e = hlth.getEntity();
        if(e instanceof Player) {
        Player p = (Player) e;
        double afterh = p.getHealth();
        double gain = hlth.getAmount();
        double pop = gain*1.25;
        p.setHealth(afterh-pop);
        }
    }
}

插件.yml

main: me.intelligamez.damageone.Main
name: damageone
version: 1.0
author: intelligamez
description: Srsly who reads this you already know !

我做的一切对吗?很多人说 plugin.yml 不需要空格,但它没有解决问题版本:Minecraft 1.16.3 服务器:Spigot IDE:Eclipse

标签: javapluginsminecraft

解决方案


您需要在 Plugin.yml 中添加 SpigotAPI 的版本

main: me.intelligamez.damageone.Main
name: damageone
version: 1.0
api-version: 1.16 //(this is for your API version)
author: intelligamez
description: Your description

此外,api 版本不能是特定的(使用 1.13、1.16、...不要使用 1.13.1 或 1.16.2)


推荐阅读