当前位置: 首页 > 知识库问答 >
问题:

为什么我的java Minecraft插件不能在服务器上注册?

拓拔浩阔
2023-03-14

好吧,所以我决定学习一些代码的乐趣,并遵循一个简单的你好命令的教程。我使用server.pro来运行服务器来测试我的插件,最初是在JavaSE-15和Spigot 1.16.5中编码的。当我上传jar文件时,它不会显示在服务器上的 /plugins列表中。我可以选择运行服务器的java,并意识到它只升到Java11,所以我用Spigot 1.16.5的JavaSE-11系统库重新编码了它。无论我做什么,它都不会出现在插件列表中,不管我重新加载服务器并运行 /bukkit: reload命令多少次。我不太了解bukkit和spiget是如何交互的,或者我的代码是不是错了。提前感谢!服务器信息更多服务器信息

编辑:我查看了日志,可以推断出我的插件中存在无效内容。yml文件。下面是错误消息。上面说我少了一些冒号,但它们在那里。我就快成功了,请帮帮我!代码:

编辑2:我不认为我像我想象的那样亲密。现在这个错误正在运行。我需要更改版本吗?

主要的java文件:


import org.bukkit.plugin.java.JavaPlugin;

import me.swagmoneyloch.feefee.commands.HelloCommand;

public class Main extends JavaPlugin {

    @Override
    public void onEnable() {
        new HelloCommand(this);
        
    }
}

你好,Java:


import me.swagmoneyloch.feefee.*;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class HelloCommand implements CommandExecutor {
    
    private Main plugin; 
    
    public HelloCommand(Main plugin) {
        this.plugin = plugin;
        plugin.getCommand("hello").setExecutor(this);
    }
    
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!(sender instanceof Player)){
            sender.sendMessage("Only players may execute this command!");
            return true;
        }
        
        Player p = (Player) sender;
        
        if (p.hasPermission("hello.use")) {
            p.sendMessage("Hello!");
            return true;
        } else {
            p.sendMessage("You do not have permission to execute this command.");
        }
        return false;
    }

}

插件。yml:

version: 1.0
author: swagmoneyloch
main: me.swagmoneyloch.feefee.Main
description: Our first minecraft spigot plugin!

commands:
  hello:
    aliases: [hi]
    description: This is the hello command!

共有2个答案

姚烨
2023-03-14

有关编辑2之前的问题,请参阅@BlitzDBS答案。

对于Edit2,您的服务器似乎正在运行Java8(参见https://en.wikipedia.org/wiki/Java_class_file#General_layout)你的插件是为Java15编译的,所以你必须告诉你的IDE(Eclipse/IntelliJ/…)用Java8编译

齐奕
2023-03-14

在你的插件中。yml你需要一个API版本。插件。yml维基:插件。yml插口维基

你似乎对用java制作插件相当陌生。这里有一个教程也适用于1.16。如何制作插口1.15插件pt。1.

再次查看错误后,需要在main和main目录之间留出一个空格。

 类似资料:
  • 所以大约一周前,我决定学习编写minecraft插件,所以我试着按照下面的指南去做: 我把我的测试插件加载到我pc上的Spigot1.12服务器上,我得到了很多错误:

  • 我正在使用Netbeans在我的php服务器上工作。当我尝试上传我的项目时,没有错误,但文件在服务器上保持不变。 示例:我在css中将高度从10%改为7%并上传。没有错误发生,但高度在现场保持不变。 220 ProFTPD 1.3.5服务器(Debian)[::FFFF:###.###.##.#####] 用户####### #######需要331密码 230用户#######登录 I型 200

  • 我一直在尝试打印和HTTP post使用Swift的一个移动应用程序,我可以用javascript和express登录它。js。但当使用Go创建的服务器时,它会给我: 下面你可以看到所有3种语言的代码: 斯威夫特: 在另一个文件的@obj func中调用: 戈朗代码: 可以阅读文章的Javascript服务器: 谢谢你抽出时间

  • 我制作了一个FTP客户端(被动),它无法连接到服务器。我使用的FTP服务器是Filezilla;我只是用它来测试。每次我运行java程序(FTP客户端)时,Filezilla都会断开连接,并在Eclipse中出现以下错误: 这是FTP客户端: 这是我连接的程序: 还尝试编写我的lan ip而不是

  • 我有一个带有的spring boot应用程序。 我还使用并在其中扩展。 当我尝试@AutoWired我拥有的服务时: 原因:org.springframework.beans.factory.noSuchBeanDefinitionException:没有“com.api.core.service.countryService”类型的合格bean可用:应至少有一个合格的自动候选bean。依赖项注释

  • 问题内容: 我正在编写一个脚本,该脚本应该在一堆服务器周围运行,并从其中选择一堆数据,包括本地服务器。选择所需数据的SQL非常复杂,因此我正在编写临时视图,并使用OPENQUERY语句获取数据,因此最终我最终循环了如下语句: 但是,我听说在本地服务器上使用OPENQUERY是一种皱眉。有人能详细说明为什么吗? 问题答案: 尽管查询可能返回多个结果集,但OPENQUERY仅返回第一个结果集。 OPE