3535import iskallia .vault .gear .data .AttributeGearData ;
3636import iskallia .vault .gear .data .VaultGearData ;
3737import iskallia .vault .gear .item .VaultGearItem ;
38+ import iskallia .vault .gear .tooltip .GearTooltip ;
3839import iskallia .vault .gear .trinket .TrinketEffect ;
3940import iskallia .vault .init .*;
4041import iskallia .vault .item .*;
5758import iskallia .vault .item .tool .PaxelItem ;
5859import iskallia .vault .util .MiscUtils ;
5960import 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 .*;
6462import net .minecraft .resources .ResourceLocation ;
6563import net .minecraft .world .item .Item ;
6664import 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