aboutsummaryrefslogtreecommitdiff
path: root/fabric/src/main/java/de/hype/bbsentials/fabric/DebugThread.java
blob: 92274a33864fddc7ecd2a5dfa03dc35011d986df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package de.hype.bbsentials.fabric;

import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.entity.player.PlayerEntity;

import java.util.ArrayList;
import java.util.List;

public class DebugThread implements de.hype.bbsentials.common.client.DebugThread {
    boolean doTest = false;

    public static List<Object> store = new ArrayList<>();
    @Override
    public void loop() {
        if (doTest) {
            doTest = false;
            test();
        }
    }

    public void onNumpadCode() {

    }

    public void doOnce() {
        doTest = true;
    }

    @Override
    public List<String> test() {
        return List.of("");
    }

    public List<PlayerEntity> getAllPlayers() {
        List<PlayerEntity> players = new ArrayList<>();

        // Iterate through all players and check their distance from the source player
        for (PlayerEntity player : MinecraftClient.getInstance().player.getEntityWorld().getPlayers()) {
            if (!player.getDisplayName().getString().startsWith("!")) {
                players.add(player);
            }
        }

        return players;
    }

    public List<PlayerEntity> getPlayersInRadius(ClientPlayerEntity referencePlayer, List<PlayerEntity> players, double radius) {
        List<PlayerEntity> nearbyPlayers = new ArrayList<>();

        // Iterate through all players and check their distance from the source player
        for (PlayerEntity player : players) {
            if (player != referencePlayer && player.squaredDistanceTo(referencePlayer) <= radius * radius) {
                nearbyPlayers.add(player);
            }
        }

        return nearbyPlayers;
    }

    public List<PlayerEntity> getNonBingoPlayers(List<PlayerEntity> players) {
        List<PlayerEntity> nonBingoPlayers = new ArrayList<>();

        // Iterate through all players and check their distance from the source player
        for (PlayerEntity player : players) {
            if (player.getCustomName().getString().contains("Ⓑ")) {
                nonBingoPlayers.add(player);
            }
        }
        return nonBingoPlayers;
    }

    public List<String> getSplashLeechingPlayers() {
        List<PlayerEntity> players = getAllPlayers();
        players.remove(MinecraftClient.getInstance().player);
        return getPlayersInRadius(MinecraftClient.getInstance().player, getNonBingoPlayers(players), 5).stream().map((playerEntity -> playerEntity.getDisplayName().getString())).toList();
    }
}