java - Spigot/Bukkit 帮助 : Block Manipulation

标签 java bukkit

我不知道为什么这不起作用。 我尝试执行它,但是当我输入 /build 时,红石 block 没有放置。

插件.yml

name: SkinStandoff
version: 0.1
main: com.sumeshdesh.skinstandoff.SkinStandoff
commands:
   arena:
    usage: /build

Main.java

public class SkinStandoff extends JavaPlugin implements Listener {

public boolean onCommand(Command cmd, CommandSender sender, String label, String args[]) {
    if (cmd.getName().equalsIgnoreCase("build") && sender instanceof Player) {
        Player player = (Player) sender;
        Location start;
        Block bEnd;
        Location end;

        start = player.getLocation();
        end = start.add(3, -1, 3);
        bEnd = end.getBlock();
        getLogger().info(bEnd.toString());
        bEnd.setType(Material.REDSTONE_BLOCK);
        return true;
    }
    return false;
 }
 }

最佳答案

plugin.yml

在不了解有关您的设置的更多信息的情况下,我可以告诉您您的 plugin.yml 设置不正确。具体来说,是commands 部分。您的 plugin.yml 可能看起来像这样:

name: SkinStandoff
version: 0.1
main: com.sumeshdesh.skinstandoff.SkinStandoff
commands:
    build:
        usage: Type /build to place the block!

之前,在 build: 行所在的位置,您有 arena:。这意味着玩家必须输入 /arena,而不是 /build。而且,除非我错了,否则我认为您希望玩家输入 /build。您可以通过 checking out the Plugin YAML wiki. 阅读有关设置 plugin.yml 的更多信息。

onCommand

应该切换 onCommand 方法的前两个参数。这:

onCommand(Command cmd, CommandSender sender, String label, String args[])

应替换为:

onCommand(CommandSender sender, Command cmd, String label, String[] args)

此外,您没有理由检查是否输入了命令/build。除非您在 plugin.yml 中注册了多个命令,否则您可以确定玩家输入了 /build,否则您的 onCommand方法不会被调用。所以,我的建议是替换这一行:

if (cmd.getName().equalsIgnoreCase("build") && sender instanceof Player) {

用这一行:

if (sender instanceof Player) {

您可以通过 checking out the Plugin Tutorial wiki. 阅读有关 onCommand 方法和 Bukkit 插件的更多信息。

关于java - Spigot/Bukkit 帮助 : Block Manipulation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204943/

相关文章:

java - 如何存储数据结构匹配.proto

java - HashMap在某些情况下显示为空

java - 从 config.yml 写入和获取信息?

java - 何时使用 Jenkins 自动生成安装程序?

java - 修改单个玩家的消息

java - Minecraft Bukkit 1.8 将列表保存到 config.yml 中

java - Bukkit 谈话无法休眠

java - 为什么 Spring UriComponentsBuilder 抛出 java.lang.IllegalArgumentException?

java - 贾斯珀报告 : List object getting merged with other object list while generating report

java - 更改并重新编译 Android 源代码