blob: 7c3c634a0b84ff1c3a118f957b450ba897111589 (
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
|
package de.hysky.skyblocker.skyblock.crimson.kuudra;
import java.util.function.Supplier;
import de.hysky.skyblocker.config.SkyblockerConfig;
import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.config.configs.CrimsonIsleConfig;
import de.hysky.skyblocker.skyblock.crimson.kuudra.Kuudra.KuudraPhase;
import de.hysky.skyblocker.utils.ItemUtils;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
import de.hysky.skyblocker.utils.render.title.Title;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.BowItem;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
public class ArrowPoisonWarning {
private static final Supplier<CrimsonIsleConfig.Kuudra> CONFIG = () -> SkyblockerConfigManager.get().crimsonIsle.kuudra;
private static final int THREE_SECONDS = 20 * 3;
private static final Title NONE_TITLE = new Title(Text.translatable("skyblocker.crimson.kuudra.noArrowPoison").formatted(Formatting.GREEN));
private static final Title LOW_TITLE = new Title(Text.translatable("skyblocker.crimson.kuudra.lowArrowPoison").formatted(Formatting.GREEN));
public static void tryWarn(int newSlot) {
//Exclude skyblock menu
if (Utils.isInKuudra() && CONFIG.get().noArrowPoisonWarning && Kuudra.phase == KuudraPhase.DPS && newSlot != 8) {
MinecraftClient client = MinecraftClient.getInstance();
PlayerInventory inventory = client.player.getInventory();
ItemStack heldItem = inventory.getStack(newSlot);
if (heldItem.getItem() instanceof BowItem) {
boolean hasToxicArrowPoison = false;
int arrowPoisonAmount = 0;
for (int i = 0; i < inventory.size(); ++i) {
ItemStack stack = inventory.getStack(i);
String itemId = ItemUtils.getItemId(stack);
if (itemId.equals("TOXIC_ARROW_POISON")) {
hasToxicArrowPoison = true;
arrowPoisonAmount += stack.getCount();
}
}
if (!hasToxicArrowPoison) {
RenderHelper.displayInTitleContainerAndPlaySound(NONE_TITLE, THREE_SECONDS);
} else if (arrowPoisonAmount < CONFIG.get().arrowPoisonThreshold) {
RenderHelper.displayInTitleContainerAndPlaySound(LOW_TITLE, THREE_SECONDS);
}
}
}
}
}
|