gpt4 book ai didi

minecraft - 是否可以使用 Bukkit for Minecraft 来定义一种新的生物?

转载 作者:行者123 更新时间:2023-12-01 07:11:02 26 4
gpt4 key购买 nike

我想写一个 Minecraft 模组来增加一种新型的生物。那可能吗?我看到,在 Bukkit, EntityType is a predefined enum ,这让我相信可能没有办法添加新类型的实体。我希望那是错误的。

最佳答案

是的你可以!

我会引导你到 Bukkit 论坛上的一些教程。具体来说:

  • Creating a Meteor Entity
  • Modifying the Behavior of a Mob or Entity

  • 免责声明:第一个是我写的。

    你不能仅仅通过 Bukkit 真正添加一个全新的暴徒。你必须使用 Spout 来赋予它不同的皮肤。但是,如果您只是想要一个暴民,并且满足于共享另一个实体的皮肤,那么它可以完成。

    这个想法是通过 Java 的 Reflection API 注入(inject) EntityType 值。 .它看起来像这样:
    public static void load() {
    try {

    Method a = EntityTypes.class.getDeclaredMethod("a", Class.class, String.class, int.class);
    a.setAccessible(true);
    a.invoke(a, YourEntityClass.class, "Your identifier, can be anything", id_map);

    } catch (Exception e) {
    //Insert handling code here
    }
    }

    我认为上面的内容相当简单。我们获得私有(private)方法的句柄,将其设为公开,并调用其注册方法。 id_map包含要将您的实体映射到的实体 ID。 12是一个火球。映射可以在 EntityType.class 中找到.请注意,这些 id 不应与它们的 packet designations 混淆。 .两者完全不同。

    最后,您实际上需要生成实体。 MC 将继续生成默认实体,因为我们尚未将其从 map 中移除。但这只是调用 net.minecraft.server.spawnEntity(your_entity, SpawnReason.CUSTOM) 的问题.

    如果您需要皮肤,我建议您查看 Spout插入。它确实需要运行 Spout 客户端才能加入这样的服务器,但此时的可能性实际上是无限的。

    关于minecraft - 是否可以使用 Bukkit for Minecraft 来定义一种新的生物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306728/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com