velocity - 如何在 Spigot 中逐渐应用速度?

标签 velocity minecraft bukkit

我正在使用player.setVelocity(player.getLocation().getDirection().multiply(Main.instance.getConfig().getDouble("velocity_multiplier")).setY(Main.instance.getConfig().getInt("Y_axis")));设置玩家的速度。它允许通过配置进行高配置的运动,但问题是当你将其设置得太高时,Spigot 会阻止它。我不想启用:

server.properties: allow_flight.

那么我该如何避免这种情况呢?我只是为了测试而将乘数提高到 30,它会开始让你移动、出现故障,然后把你拉回来。它还表示,即使速度较小,玩家在控制台中移动也太快。我正在考虑让它逐渐应用速度。当你跳跃时,它会应用起始速度,并且随着你的移动,它会变得更高(Y_axis)和更远(velocity_multiplier),但我不知道该怎么做。

最佳答案

您可以在应用速度之前仅为玩家启用,并在延迟任务中禁用它

public void blabla(Player player){
   player.setAllowFlight(true);
        player.setVelocity(player.getLocation().getDirection().multiply(Main.instance.getConfig().getDouble("velocity_multiplier")).setY(Main.instance.getConfig().getInt("Y_axis")));
        new BukkitRunnable() {

            @Override
            public void run() {
                player.setAllowFlight(false);

            }
        }.runTaskLater(this, 20 * 5);
}

在代码中我使用了20 * 5来禁用5秒后的飞行,你可以将其更改为你想要的。

关于velocity - 如何在 Spigot 中逐渐应用速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35214761/

相关文章:

java - 重写子类中的方法

java - 在 Velocity 模板中传递 Java 函数

css - 在 confluence 4.0 中使用 css 样式化速度标记

java - 速度串函数

java - 检查我的世界服务器是否启用了白名单

java - 反编译MCP错误(版本9.30)返回 'Decompile Failed'

java - 如何设置 block 数据值?

java - Spigot/Bukkit - 获取箱子库存 - Java

java - 如何检查一个玩家是否右键单击了另一个玩家

java - 如何使用 Spring Boot 正确配置 Velocity?