Плавное замедление Runnable в плагине Майнкрафт

Я пишу плагин для игры Майнкрафт на казино рулетку. Рулетка должна крутиться в течение указанных секунд. По мере истечения времени рулетка должна постепенно замедляться, пока совсем не остановится. Я написал небольшую логику, но она работает не так как надо (рулетка не замедляется). Как это можно сделать?

private static void startRoulette(Player player) {
        if (isSpinning.getOrDefault(player, false)) return;

        final Inventory inventory = activeRoulettes.get(player);
        final int totalDuration = Main.getInstance().getConfig().getInt("settings.roulette.time") * 40;

        isSpinning.put(player, true);

        new BukkitRunnable() {
            int elapsedTicks = 0;
            int delay = 2;

            @Override
            public void run() {
                if (!isSpinning.getOrDefault(player, false)) {
                    this.cancel();
                    return;
                }

                for (int i = 0; i < 5; i++) {
                    inventory.setItem(i, getRandomMultiplierItem());
                }

                elapsedTicks += delay;
                float progress = (float) elapsedTicks / totalDuration;

                delay = 2 + (int) (10 * progress);

                if (elapsedTicks >= totalDuration) {
                    stopRoulette(player, inventory);
                    this.cancel();
                }
            }
        }.runTaskTimer(Main.getInstance(), 0L, 2L);
    }

Ответы (0 шт):