nageyqma·git
HTTPS https://git.nageyqma.icu/nageyqma/blade-addons-next.git SSH git@git.nageyqma.icu:nageyqma/blade-addons-next.git

HTTPS 链接可直接 git clone;推送代码请使用 SSH。

1.9 KB · 56 行raw
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
package blade.addon.features.dungeon.f7;

import blade.addon.utils.Misc;
import blade.addon.utils.config.values.Floor7;
import blade.addon.utils.dungeon.DungeonClass;
import blade.addon.utils.dungeon.Phase;
import blade.addon.utils.events.Events;
import blade.addon.utils.times.PersonalBests;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.network.chat.Component;

public class PredevTimer {

    private static long bossEnterTime = 0;
    private static boolean at3rdDev = false;
    private static boolean shouldTrack = false;

    public static void init() {

        Events.ON_PHASE_CHANGE.register(() -> {
            if (Phase.inP1()) {
                bossEnterTime = System.currentTimeMillis();
                at3rdDev = false;
                shouldTrack = true;
            } else if (Phase.inP3()) {
                shouldTrack = false;
            }
            return false;
        });

        Events.ON_LOCATION_CHANGE.register(newLocation -> shouldTrack = false);

        ClientTickEvents.END_CLIENT_TICK.register(client -> {
            if (!shouldTrack || at3rdDev || (!Floor7.predevForAll && !DungeonClass.isClass(DungeonClass.HEALER))) return;
            LocalPlayer player = client.player;
            if (player == null) return;
            if (Misc.getDistance(player.getX(), player.getZ(), 1, 77) <= 3) {
                at3rdDev = true;
            }
        });

        Events.ON_LEAP.register(message -> {
            if (at3rdDev && shouldTrack && (DungeonClass.isClass(DungeonClass.HEALER) || Floor7.predevForAll)) {
                PersonalBests.predevTime.testNewTime(Component.literal("§aPredev completed in "), bossEnterTime);
                at3rdDev = false;
                shouldTrack = false;
            }
            return false;
        });

    }


}