This is my method to show rewards,
Reward handler:
This is my command to show rewards:
And this is the wall I keep hitting:
Code:
public void showRewards(Player p, Bossraid raid, boolean regular) {
Inventory inv;
RewardList list;
if (regular) {
inv = Bukkit.createInventory(null, 54, ChatColor.RED + "Regular rewards for " + raid.getName());
list = HandlerManager.getRewardHandler().getRewardList(raid.getRegularRewardList());
} else {
inv = Bukkit.createInventory(null, 54, ChatColor.RED + "Epic rewards for " + raid.getName());
list = HandlerManager.getRewardHandler().getRewardList(raid.getEpicRewardList());
}
if (!list.isReady()) {
MessageManager.message(p, ChatColor.RED + "List is not yet finalized.");
} else {
list.getItems().forEach((i, c) -> {
inv.addItem(ItemFactory.createItem(i, "", ChatColor.GREEN + "Chance: " + ChatColor.YELLOW + i + "%"));
});
p.openInventory(inv);
}
}
Code:
public RewardList getRewardList(String name) {
Optional<RewardList> o = rewards.stream().filter(rewardList -> rewardList.getName().equalsIgnoreCase(name)).findAny();
return o.isPresent() ? o.get() : null;
}
This is my command to show rewards:
Code:
if (args[1].equalsIgnoreCase("rewards")) {
if (args[2].equalsIgnoreCase("regular")) {
BossraidManager.getInstance().showRewards(p, raid, true);
return true;
}
if (args[2].equalsIgnoreCase("epic")) {
BossraidManager.getInstance().showRewards(p, raid, false);
return true;
}
MessageManager.message(p, Message.NO_SUCH_LIST.toString());
return true;
}
And this is the wall I keep hitting:
