我想用命令创建一个 。
我写了这个:
@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 sed.");
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 PacketPlayOutNamedEntityS(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
我的目标是创建 并能够单击它们。
我假设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()方法,所以你不能调用它。
如果你能提供一个链接到教程我可以编辑 / 修改这个答案,以更好地适应这种情况。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(49条)