写一个Fabric loader模组中的Java mixin类,判断玩家是否穿有“摔落保护”附魔的靴子,如果是,那么在玩家摔落时,保留摔落伤害但不显示摔落的粒子效果?
时间: 2023-03-27 12:01:26 浏览: 52
您好,关于您的问题,我可以回答。在Fabric loader模组中的Java mixin类中,可以使用以下代码来判断玩家是否穿有“摔落保护”附魔的靴子:
```
MixinPlayerEntityAccessor accessor = (MixinPlayerEntityAccessor) player;
if (accessor.getEnchantmentLevel(Enchantments.FEATHER_FALLING) > ) {
// 玩家穿有“摔落保护”附魔的靴子
}
```
如果玩家穿有“摔落保护”附魔的靴子,可以使用以下代码来保留摔落伤害但不显示摔落的粒子效果:
```
if (accessor.getEnchantmentLevel(Enchantments.FEATHER_FALLING) > ) {
// 玩家穿有“摔落保护”附魔的靴子
if (distance > 3.F) {
float damageMultiplier = (distance - 3.F) / 2.F;
int damage = MathHelper.ceil(damageMultiplier * damageMultiplier * 1.5F);
if (!player.world.isClient && damage > ) {
player.damage(DamageSource.FALL, damage);
}
}
} else {
// 玩家没有穿有“摔落保护”附魔的靴子
player.handleFallDamage(distance, 1.F, DamageSource.FALL);
}
```
希望能够帮到您。