Minecraft插件 |创建不工作

我想用命令创建一个 NPC。

我想用命令创建一个 。

我写了这个:

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (sender instanceof Player) {
        Player p = (Player) sender;
        if (command.getName().equalsIgnoreCase("npc")) {
            if (args.length < 1) {
                sender.sendMessage("§cSyntax: /npc create [name]");
                return true;
            }
            if (args[0].equalsIgnoreCase("create")) {
                if (args.length < 2) {
                    sender.sendMessage("§cSyntax: /npc create [name]");
                    return true;
                }
                sender.sendMessage("§4[§2Quests§4] §f spawned.");
                MinecraftServer ms = (MinecraftServer) Bukkit.getServer();
                WorldServer ws = (WorldServer) p.getWorld();
                GameProfile gp = new GameProfile(UUID.randomUUID(), "NAME");
                EntityPlayer npc = new EntityPlayer(ms, ws, gp, new PlayerInteractManager(ws));
                Player npcPlayer = npc.getBukkitEntity().getPlayer();
                npcPlayer.setPlayerListName("");
                npc.setLocation(p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ(), p.getLocation().getYaw(), p.getLocation().getPitch());
                PlayerConnection connection = ((CraftPlayer)p).getHandle().playerConnection;
                connection.sendPacket(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, npc));
                connection.sendPacket(new PacketPlayOutNamedEntitySpawn(npc));
                return true;
            }
            if (args[0].equalsIgnoreCase("delete")) {
                sender.sendMessage("§cSyntax: /npc delete");
                return true;
            }
        }
    }
    return false;
}

但它给了我一个错误在这里:

MinecraftServer ms = (MinecraftServer) Bukkit.getServer();

它说,我不能将服务器转换为 MinecraftServer。我的教程显示它是这样的,它为他工作。

他的代码是:

MinecraftServer ms = (MinecraftServer) Bukkit.getServer().getServer();

但是这个双 getServer()不再可用。

EDIT1:我已经使用了插口 1.14.4 库。

我知道本教程是旧的,但我没有找到其他东西来生成 。https://www..com/watch?v=gsvFOJWECGE

我的目标是创建 并能够单击它们。

1

我假设this是 Bukkit.getServer()的源代码,this是 MinecraftServer 的源代码。

从中可以看出,getServer () 是 Bukkit 中的一个静态方法,它返回一个实现Server intece的类。

但是从第二个来源我们可以看到 MinecraftServer 实现了 ICommandListener,Runnable 和 IMojangStatistics

由于 MinecraftServer 没有实现 Bukkit.getServer () 实现的 Server 接口,因此编译器无法将此调用的返回值强制转换为 MinecraftServer。

至于为什么 double getServer 不可用-如果我们看看 Bukkit.getServer()返回的Server intece,我们可以看到它不包含 getServer()方法,所以你不能调用它。

如果你能提供一个链接到教程我可以编辑 / 修改这个答案,以更好地适应这种情况。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(550)
合并两个表并计算金额(货币换算)(exchange rate tables)
上一篇
Excel Floor函数
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(22条)