Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit 04081d6

Browse files
committed
Add new Vault Bottle Items
1 parent 43871bb commit 04081d6

File tree

1 file changed

+66
-5
lines changed

1 file changed

+66
-5
lines changed

src/main/java/lv/id/bonne/vhdiscord/parser/VaultItemsHandler.java

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import iskallia.vault.gear.data.AttributeGearData;
3636
import iskallia.vault.gear.data.VaultGearData;
3737
import iskallia.vault.gear.item.VaultGearItem;
38+
import iskallia.vault.gear.tooltip.GearTooltip;
3839
import iskallia.vault.gear.trinket.TrinketEffect;
3940
import iskallia.vault.init.*;
4041
import iskallia.vault.item.*;
@@ -57,10 +58,7 @@
5758
import iskallia.vault.item.tool.PaxelItem;
5859
import iskallia.vault.util.MiscUtils;
5960
import net.minecraft.nbt.CompoundTag;
60-
import net.minecraft.network.chat.Component;
61-
import net.minecraft.network.chat.MutableComponent;
62-
import net.minecraft.network.chat.TextComponent;
63-
import net.minecraft.network.chat.TranslatableComponent;
61+
import net.minecraft.network.chat.*;
6462
import net.minecraft.resources.ResourceLocation;
6563
import net.minecraft.world.item.Item;
6664
import net.minecraft.world.item.ItemStack;
@@ -86,7 +84,12 @@ public static String generateVaultHuntersItemTooltips(JsonObject itemJson,
8684
{
8785
StringBuilder builder = new StringBuilder();
8886

89-
if (itemStack.getItem() instanceof VaultGearItem)
87+
if (itemStack.getItem() instanceof BottleItem)
88+
{
89+
VaultItemsHandler.handleBottleTooltip(builder, itemStack);
90+
return builder.toString();
91+
}
92+
else if (itemStack.getItem() instanceof VaultGearItem)
9093
{
9194
VaultItemsHandler.handleGearTooltip(builder, itemStack);
9295
return builder.toString();
@@ -256,6 +259,64 @@ public static void handleGearTooltip(StringBuilder builder, ItemStack itemStack)
256259
}
257260

258261

262+
/**
263+
* This method parses bottle item into discord chat.
264+
* @param builder Embed Builder.
265+
* @param itemStack Bottle Item.
266+
*/
267+
public static void handleBottleTooltip(StringBuilder builder, ItemStack itemStack)
268+
{
269+
BottleItem.getType(itemStack).ifPresent(type -> {
270+
builder.append("Heals ").
271+
append(type.getHealing()).
272+
append(" hitpoints\n");
273+
274+
BottleItem.getRecharge(itemStack).ifPresent(recharge -> {
275+
switch (recharge)
276+
{
277+
case TIME ->
278+
builder.append("Recharges every ").
279+
append(type.getTimeRecharge() / 1200).
280+
append(" minutes").
281+
append("\n");
282+
case MOBS ->
283+
builder.append("Recharges every ").
284+
append(type.getMobRecharge()).
285+
append(" mob kills").
286+
append("\n");
287+
}
288+
});
289+
});
290+
291+
VaultGearData data = VaultGearData.read(itemStack);
292+
293+
List<VaultGearModifier<?>> implicits = data.getModifiers(VaultGearModifier.AffixType.IMPLICIT);
294+
295+
if (!implicits.isEmpty())
296+
{
297+
VaultItemsHandler.addAffixList(builder, data, VaultGearModifier.AffixType.IMPLICIT, itemStack);
298+
builder.append("\n");
299+
}
300+
301+
int maxPrefixes = data.getFirstValue(ModGearAttributes.PREFIXES).orElse(0);
302+
List<VaultGearModifier<?>> prefixes = data.getModifiers(VaultGearModifier.AffixType.PREFIX);
303+
304+
if (maxPrefixes > 0 || !prefixes.isEmpty())
305+
{
306+
VaultItemsHandler.addAffixList(builder, data, VaultGearModifier.AffixType.PREFIX, itemStack);
307+
builder.append("\n");
308+
}
309+
310+
int maxSuffixes = data.getFirstValue(ModGearAttributes.SUFFIXES).orElse(0);
311+
List<VaultGearModifier<?>> suffixes = data.getModifiers(VaultGearModifier.AffixType.SUFFIX);
312+
313+
if (maxSuffixes > 0 || !suffixes.isEmpty())
314+
{
315+
VaultItemsHandler.addAffixList(builder, data, VaultGearModifier.AffixType.SUFFIX, itemStack);
316+
}
317+
}
318+
319+
259320
/**
260321
* This method parses doll tooltip into discord chat.
261322
* @param builder Embed Builder.

0 commit comments

Comments
 (0)