【问题标题】:Custom Plugin Wont Show Up In Minecraft?自定义插件不会出现在 Minecraft 中?
【发布时间】:2020-08-06 19:13:08
【问题描述】:

我正在制作一个小原型插件,每分钟都可以强化小怪,但该插件没有出现在服务器上。

插件导出为 jar 文件并放入服务器的 plugins 文件夹中。

非常感谢所有帮助。谢谢!

我的 3 个脚本在这里:

主脚本:

package csw.lvlupmobs.plugin;

import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitScheduler;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

    private static Main instance;

    public static Main getInstance() {


        return instance;
    }


    @Override
    public boolean onCommand(CommandSender sender,
                             Command command,
                             String label,
                             String[] args) {
        if (command.getName().equalsIgnoreCase("initiatelevelup")) {
            sender.sendMessage("Mobs will now strengthen every minute!");
            Listeners.doLevels = true;
            levelup();
            return true;
        }
        return false;
    }

    public void levelup() {

        BukkitScheduler scheduler = Bukkit.getServer().getScheduler();

        scheduler.scheduleSyncDelayedTask(this, new Runnable() {
            @Override
            public void run() {
                Listeners.moblvl++;
                Bukkit.broadcastMessage("All mobs have leveled up! New mobs will now spawn at level " 
+ Listeners.moblvl + ".");
            }
        }, 1200);

    }

    @Override
    public void onEnable() {

        instance = this;

        getServer().getPluginManager().registerEvents(new Listeners(), this);

    }
    @Override
    public void onDisable() {

        instance = null;
    }
}

听众:

package csw.lvlupmobs.plugin;

import org.bukkit.potion.*;
import org.bukkit.attribute.Attribute;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent;


public class Listeners implements Listener{



    static int moblvl = 0;
    static boolean doLevels = false;


    @EventHandler
    public void event(CreatureSpawnEvent event) {

        if(doLevels == false) { return; }

        // Creeper. Its explosion radius and knock back resistance increases with mob level
        if(event.getEntityType() == EntityType.CREEPER) {

            Creeper creeper = (Creeper) event.getEntity();

            creeper.setExplosionRadius((int)(3 * moblvl * 0.2));
            creeper.getAttribute(Attribute.GENERIC_KNOCKBACK_RESISTANCE).setBaseValue(0.05 * moblvl);
        }  
        else 

        // Zombie. Its follow range, health, damage, and reinforcement spawn chance increases with mob level
        if(event.getEntityType() == EntityType.ZOMBIE) {

            Zombie zombie = (Zombie) event.getEntity();

            zombie.getAttribute(Attribute.GENERIC_FOLLOW_RANGE).setBaseValue(45 * moblvl * 0.2);
            zombie.getAttribute(Attribute.ZOMBIE_SPAWN_REINFORCEMENTS).setBaseValue(0.02 * moblvl);
            zombie.getAttribute(Attribute.GENERIC_ATTACK_DAMAGE).setBaseValue(0.6 * moblvl);
            zombie.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20 * 0.2 * moblvl);
            zombie.setHealth(20 * 0.2 * moblvl);
        }  
        else 

        // Skeleton. Its movement speed and armor increases with mob level
        if(event.getEntityType() == EntityType.SKELETON) {

            Skeleton skeleton = (Skeleton) event.getEntity();

            skeleton.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(0.25 * moblvl * 0.1);
            skeleton.getAttribute(Attribute.GENERIC_ARMOR).setBaseValue(0.75 * moblvl);
        } 
        else 

        // Spider. Its movement speed, damage and jump height increases with mob level
        if(event.getEntityType() == EntityType.SPIDER) {

            Spider spider = (Spider) event.getEntity();

            spider.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED).setBaseValue(0.3 * moblvl * 0.2);
            spider.getAttribute(Attribute.GENERIC_ATTACK_DAMAGE).setBaseValue(0.34 * moblvl * 2);
            spider.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, 99999, (int)(moblvl * 0.34)));
        }
    }
}

plugin.yml:

main: csw.lvlupmobs.plugin.Main
name: mobs that level-up
version: 1.0
author: Austin Powers
description: Every minute, all of the mobs increase in strength
commands:
    initiatelevelup:
       description: Enables mobs to level-up
       usage: /initiatelevelup

【问题讨论】:

    标签: java eclipse plugins minecraft bukkit


    【解决方案1】:

    你的名字中有一个空格...... 不要在你的 plugin.yml 中使用空格字母。

    但我认为你可以在“作者”中使用它

    【讨论】:

    • 对不起,我的意思是作者的名字
    【解决方案2】:

    我把它加载到我的服务器上,问题出在你的 plugin.yml 中。首先用法:没有意义该命令的使用从描述中应该是显而易见的。其次,plugin.yml 中的间距错误,并且您在不允许的地方使用了 [tab],您必须手动正确地对其进行间距。我建议制作一个 plugin.yml 模板,这样您就可以将其复制并粘贴到您的项目中并填写您需要的内容。

    固定plugin.yml:

    csw.lvlupmobs.plugin.Main
    name: mobs that level-up
    version: 1.0
    author: Austin Powers
    description: Every minute, all of the mobs increase in strength
    commands:
      initiatelevelup:
        description: Enables mobs to level-up

    【讨论】:

    • 注意:在spigotmc.org/forums/spigot-plugin-development.52发布插口问题
    • 'csw.lvlupmobs.plugin.Main' 之前是否需要有'main:'?否则它将无法正常工作。此外,该插件仍然没有显示在服务器上。
    • 编辑:没关系,我找到了解决方案!原来我不能在名字 lel 中有空格
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多