如何改变实体的速度?

oewdyzsn  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(390)

如何更改实体的速度 Minecraft 使用插件?我最近才开始 plugins 为了 Minecraft ,所以如果您能帮助我,我将非常感激 spigot )

pdkcd3nj

pdkcd3nj1#

你可以通过

CommandSender sender;
Player player = (Player) sender;
player.setWalkSpeed(2);

public void setWalkSpeed(double speed) {
    CommandSender sender;
    Player player = (Player) sender;
    if (speed > 10) {
        double b = speed - 10;
        speed -= b;
    }
    if (speed < 0) {
        speed -= speed;
    }
    double a = speed / 10;
    float value = (float) a;
    player.setWalkSpeed(value);
}

然后在命令中调用setwalkspeed()方法。

eqzww0vc

eqzww0vc2#

这个论坛帖子可以解决你的问题。一个家伙问了和你一样的问题,并给出了一些代码片段来帮助你。

private static final UUID movementSpeedUID = UUID.fromString("206a89dc-ae78-4c4d-b42c-3b31db3f5a7c");

    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
    public void onEntityDamage(EntityDamageByEntityEvent event) {
        LivingEntity entity = (LivingEntity) event.getEntity();

        if (!(event.getDamager() instanceof Arrow)) return;
        Arrow arrow = (Arrow) event.getDamager();
        if (arrow.getShooter() instanceof Player) {
            EntityInsentient nmsEntity = (EntityInsentient) ((CraftLivingEntity) entity).getHandle();
            AttributeInstance attributes = nmsEntity.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);

            AttributeModifier modifier = new AttributeModifier(movementSpeedUID, "movement speed multiplier", 1.0d, 1);

            attributes.b(modifier);
        }
    }

我希望我能帮上更多的忙,但我还没有学会java。我希望,很快。我的书架上有一本教java的书,但我就是没有时间。

相关问题