1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00
This commit is contained in:
TheBusyBiscuit 2020-04-30 20:51:17 +02:00
parent 2b9d109d16
commit 8cb5579a12
4 changed files with 12 additions and 5 deletions

View File

@ -24,6 +24,7 @@
#### Fixes
* Fixed #1824
* Fixed #1833
## Release Candidate 11 (25 Apr 2020)

View File

@ -29,9 +29,9 @@ public class MagicianTalisman extends Talisman {
addItemSetting(enchantments.toArray(new ItemSetting[0]));
}
public TalismanEnchantment getRandomEnchantment() {
List<TalismanEnchantment> enabled = enchantments.stream().filter(TalismanEnchantment::getValue).collect(Collectors.toList());
return enabled.get(ThreadLocalRandom.current().nextInt(enabled.size()));
public TalismanEnchantment getRandomEnchantment(ItemStack item) {
List<TalismanEnchantment> enabled = enchantments.stream().filter(e -> e.getEnchantment().canEnchantItem(item)).filter(TalismanEnchantment::getValue).collect(Collectors.toList());
return enabled.isEmpty() ? null : enabled.get(ThreadLocalRandom.current().nextInt(enabled.size()));
}
/**

View File

@ -185,8 +185,10 @@ public class TalismanListener implements Listener {
if (Talisman.checkFor(e, SlimefunItems.TALISMAN_MAGICIAN)) {
MagicianTalisman talisman = (MagicianTalisman) SlimefunItems.TALISMAN_MAGICIAN.getItem();
TalismanEnchantment enchantment = talisman.getRandomEnchantment();
e.getEnchantsToAdd().put(enchantment.getEnchantment(), enchantment.getLevel());
TalismanEnchantment enchantment = talisman.getRandomEnchantment(e.getItem());
if (enchantment != null) {
e.getEnchantsToAdd().put(enchantment.getEnchantment(), enchantment.getLevel());
}
}
if (!e.getEnchantsToAdd().containsKey(Enchantment.SILK_TOUCH) && Enchantment.LOOT_BONUS_BLOCKS.canEnchantItem(e.getItem()) && Talisman.checkFor(e, SlimefunItems.TALISMAN_WIZARD)) {

View File

@ -641,6 +641,10 @@ public class BlockStorage {
}
public BlockMenu loadInventory(Location l, BlockMenuPreset preset) {
if (preset == null) {
return null;
}
BlockMenu menu = new BlockMenu(preset, l);
inventories.put(l, menu);
return menu;