@@ -612,33 +612,37 @@ private static List<EnchantmentInstance> getEnchantmentList(Registry<Enchantment
612
612
613
613
// Same as above method, except does not assume the seed has been cracked. If it
614
614
// hasn't returns the clue given by the server
615
+ @ Nullable
615
616
public static List <EnchantmentInstance > getEnchantmentsInTable (int slot ) {
616
617
LocalPlayer player = Minecraft .getInstance ().player ;
617
618
assert player != null ;
618
619
Registry <Enchantment > enchantmentRegistry = player .registryAccess ().lookupOrThrow (Registries .ENCHANTMENT );
619
620
620
621
CrackState crackState = Configs .enchCrackState ;
621
- EnchantmentMenu enchContainer = (EnchantmentMenu ) player .containerMenu ;
622
+
623
+ if (!(player .containerMenu instanceof EnchantmentMenu enchMenu )) {
624
+ return null ;
625
+ }
622
626
623
627
if (crackState != CrackState .CRACKED ) {
624
- if (enchContainer .enchantClue [slot ] == -1 ) {
628
+ if (enchMenu .enchantClue [slot ] == -1 ) {
625
629
// if we haven't cracked it, and there's no clue, then we can't give any
626
630
// information about the enchantment
627
631
return null ;
628
632
} else {
629
633
// return a list containing the clue
630
- Holder <Enchantment > enchantment = enchantmentRegistry .asHolderIdMap ().byId (enchContainer .enchantClue [slot ]);
634
+ Holder <Enchantment > enchantment = enchantmentRegistry .asHolderIdMap ().byId (enchMenu .enchantClue [slot ]);
631
635
if (enchantment == null ) {
632
636
return null ;
633
637
}
634
- return new ArrayList <>(Collections .singletonList (new EnchantmentInstance (enchantment , enchContainer .levelClue [slot ])));
638
+ return new ArrayList <>(Collections .singletonList (new EnchantmentInstance (enchantment , enchMenu .levelClue [slot ])));
635
639
}
636
640
} else {
637
641
// return the enchantments using our cracked seed
638
642
RandomSource rand = RandomSource .create ();
639
643
int xpSeed = possibleXPSeeds .iterator ().next ();
640
- ItemStack enchantingStack = enchContainer .getSlot (0 ).getItem ();
641
- int enchantLevels = enchContainer .costs [slot ];
644
+ ItemStack enchantingStack = enchMenu .getSlot (0 ).getItem ();
645
+ int enchantLevels = enchMenu .costs [slot ];
642
646
return getEnchantmentList (enchantmentRegistry , rand , xpSeed , enchantingStack , slot , enchantLevels , MultiVersionCompat .INSTANCE .getProtocolVersion ());
643
647
}
644
648
}
0 commit comments