- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个应该卡住实体的插件。我已经完成了大部分,但现在我对烟花真的很困惑。我已经有了一个函数,可以在每个时间点将所有“移动”实体传送回其位置。
Bukkit.getScheduler().runTaskTimer(instance, () -> {
for (Entity e : entities) {
//teleporting and setting velocity
if (e instanceof Firework) {
Firework f = (Firework) e;
//TODO how can I make it NOT disappear after one or two seconds
}
}
});
现在烟花的问题是,它们在触发某种生命周期并爆炸后会自动被移除。如果实体被卡住,我只是不希望出现这种情况。
我已经尝试过f.setTicksLived(1);
但遗憾的是这根本不会改变任何东西。 (我真的不认为这个函数按照它应该的方式工作)
我的下一个方法是改变烟花的威力。
FireworkMeta fm = f.getFireworkMeta();
fm.setPower(127);
f.setFireworkMeta(fm);
但是由于 127 是 .setPower()
允许的最大数字,烟花仍然会在一两分钟后消失。
我真的希望烟花能够无限期地可见。它根本不应该消失,并且每隔 10 秒发射一次新的烟花也不是一个选择,因为它总是会播放我根本不想要的发射声音。
最佳答案
根据 Minecraft 的实体数据部分 Firework Rocket页面,Firework Rockets 拥有以下 NBT 数据(除其他外):
整数Life
是火箭飞行的滴答数。
整数 LifeTime
是 Life
必须大于或等于才会爆炸的刻度数。
据我所知,这些值都不能使用 Firework
进行修改实体或FireworkMeta
Bukkit 提供的类(class)。
但是,通过直接修改 Firework Rocket 实体的 NBT 数据,我们可以更改这些值:
net.minecraft.server.v1_5_R1.Entity mcFireworkEntity = ((CraftEntity) bukkitFireworkEntity).getHandle();
NBTTagCompound tag = new NBTTagCompound();
mcFireworkEntity.c(tag); // gets the firework to dump nbt data into our 'tag' object
// set the entity life flag to 1.
tag.setInt("Life", 1);
// you can optionally also set the `LifeTime` value to the maximum setting as well
// tag.setInt("LifeTime", 2147483647)
// write the tag back into the entity. This needs to happen every game tick
// because minecraft will increase this value by 1 every tick
((EntityLiving)mcFireworkEntity).a(tag); //
NBTTagCompound
是反编译的minecraft服务器的一部分repository由 bukkit 提供(不确定是否默认,可能需要您进行一些修改)。
关于java - 龙头无限烟火,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55921514/
当我在游戏中使用命令/heal 时,它会在游戏聊天中返回/heal。我根本不明白为什么会发生这种情况。这是我的代码(全部在一个类中): public boolean onCommand(Command
我正在开发一个大型龙头插件,其菜单由库存制成,在这个库存中,我为玩家添加了像羊毛一样的选择。 我使用以下行创建我的 ItemStack: ItemStack i = new ItemStack(Mat
我正在尝试制作一个 minecraft 服务器有一段时间了,我在停止脚本方面遇到了一点问题。我的启动脚本(我想在其中提及,以防万一)如下所示: #!/bin/sh screen -S server
我目前正在为我的服务器网络编写自己的 GUI 商店,并且面临两个奇怪的问题。 第一个问题是,每当我想要获得 2 个项目 ID 为 161 和两个不同元 ID(0 和 1)的叶子时,我只会返回元 ID
我是一名优秀的程序员,十分优秀!