java - 将代码拆分为不同的类 [Bukkit/Spigot]

标签 java bukkit

所以我创建了这个小插件,我想知道如何将代码从 onCommand 内部移动到另一个类并在 onCommand 内部调用/执行该类。 请帮忙。谢谢

public class SkinStandoff extends JavaPlugin {
Block bEnd;
Location End;
Block ZeroBlock;
Location Zero;
Location ZeroEnd;

@Override
public void onEnable(){
}

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

        start = player.getLocation();
        End = start.add(3, -1, 3);
        Zero = getEnd().add(1,0,0);

        bEnd = End.getBlock();
        bEnd.setType(Material.REDSTONE_BLOCK);
        do {
            Zero= Zero.add(1,0,0);
            ZeroBlock = Zero.getBlock();
            ZeroBlock.setType(Material.REDSTONE_BLOCK);
            Count++;
        } while (Count != 10);
        return true;
    }
    return false;
}

public Location getEnd(){
    return End;
}
public Location getZeroEnd(Location ZeroEnd){
    ZeroEnd = this.Zero.add(10,0,0);
    return ZeroEnd;
}
}

最佳答案

您可以创建新的类命令,并且将有:

public class Commands implements CommandExecutor {

    private MainClass plugin;

    public Commands(MainClass core) {
        this.plugin = core;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
your commands here
return true;
}
}

在你的 MainClass 中你必须设置 CommandExecutor:

getCommand("command").setExecutor(new Commands(this));

关于java - 将代码拆分为不同的类 [Bukkit/Spigot],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39434215/

相关文章:

java - 插件 MC 的无限循环 java/java 事件

java - 检查数千个矩形是否相交

Java Stream 与 Flux fromIterable

java - 使用 xstream 自定义 java 集合的序列化

Java实时图形绘图

java - 查看库存而不进行编辑

java - 雷击事件处理

Java:如何在运行时将数据库中的属性添加到 ResourceBundle?

java - 有没有办法将可序列化的对象读/写到 RandomAccessFile?

java - Bukkit - 获取枚举为何不起作用的解释