我使用的是eclipse(请记住,我是个初学者),我做了一个bukkit插件,但它不能工作--当它被放到我的Minecraft服务器的插件文件夹中时,它没有改变任何东西,而且自定义命令也不能工作。我已经安装了正确版本的bukkit。有人知道是什么问题吗?
Pastebin - https:/pastebin.comPbhLFic2PbhLFic2
package customcommands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class customcommands extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("This plugin is now on and fuctioning");
}
@Override
public void onDisable() {
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("hello") && sender instanceof Player) {
Player player = (Player) sender;
player.sendMessage("Hello, " + player.getName() + "!");
}
return false;
}
public boolean onCommand1(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("discord") && sender instanceof Player) {
Player player = (Player) sender;
player.sendMessage("§c§lDiscord §8§l- §e Want to connect with us? §e§dhttps://discord.gg/T9fhEDh");
}
return false;
}
public boolean onCommand2(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("website") && sender instanceof Player) {
Player player = (Player) sender;
player.sendMessage("§c§lShop §8§l- §e Want to visit the server website? §e§dhttps://noname-mc.enjin.com/");
return true;
}
return false;
}
}
你所提供的片段存在多个问题。我强烈建议你阅读一些教程,专门针对这个问题,可以阅读一下这个。水龙头维基帖对于Bukkit和Spigot来说,这个过程是一样的。
你的命令无法工作是因为你没有注册CommandExecutor,你需要对以下内容进行修改 customcommands
:
public class customcommands extends JavaPlugin implements CommandExecutor {
@Override
public void onEnable() {
getLogger().info("This plugin is now on and functioning");
this.getCommand("hello").setExecutor(this);
}
但你有多个 onCommand
方法,CommandExecutors并不是这样工作的,你需要为每个新的 /
命令,你需要将其放置在其他类中并进行注册。
你还将返回 false
这将提示CommandExecutor将命令的默认用法返回给玩家,就像您的 plugin.yml
如果命令成功,你应该返回 true
.
我建议你在深入了解Bukkit API之前先尝试一下Java教程,否则你会很吃力。