package be.isach.ultracosmetics.tempchests.reward;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData;
import be.isach.ultracosmetics.UltraCosmetics;
import be.isach.ultracosmetics.UltraCosmeticsData;
import be.isach.ultracosmetics.config.MessageManager;
import be.isach.ultracosmetics.config.TreasureManager;
import be.isach.ultracosmetics.cosmetics.type.GadgetType;
import be.isach.ultracosmetics.player.UltraPlayer;
import be.isach.ultracosmetics.util.MathUtils;
/**
* An ammo reward.
*
* @author RadBuilder
* @since 01-14-2017
*/
public class AmmoReward extends Reward {
private String name;
private ItemStack itemStack;
private List<GadgetType> ammoList;
private UltraPlayer ultraPlayer;
public AmmoReward(UltraPlayer ultraPlayer, UltraCosmetics ultraCosmetics) {
super(ultraPlayer, RewardType.AMMO, ultraCosmetics);
this.ultraPlayer = ultraPlayer;
}
@Override
public void clear() {
ammoList.clear();
}
@Override
public boolean canEarn() {
ammoList = new ArrayList<GadgetType>();
if (UltraCosmeticsData.get().isAmmoEnabled())
for (GadgetType type : GadgetType.values())
if (type.isEnabled()
&& ultraPlayer.getBukkitPlayer().hasPermission(type.getPermission())
&& type.requiresAmmo()
&& type.canBeFound())
ammoList.add(type);
return ammoList.size() > 0;
}
@Override
public void give() {
int i = new Random().nextInt(ammoList.size());
GadgetType g = ammoList.get(i);
int ammo = MathUtils.randomRangeInt(TreasureManager.getRewardFile().getInt("UcRewards.gadget-ammo.min"), TreasureManager.getRewardFile().getInt("UcRewards.gadget-ammo.max"));
name = MessageManager.getMessage("Treasure-Chests-Loot.Ammo").replace("%name%", g.getName()).replace("%ammo%", ammo + "");
ultraPlayer.addAmmo(g.toString().toLowerCase(), ammo);
itemStack = new MaterialData(g.getMaterial(), g.getData()).toItemStack(1);
if (TreasureManager.getRewardFile().getBoolean("UcRewards.gadget-ammo.firework-effect.enabled"))
super.firework(TreasureManager.getRewardFile().getString("UcRewards.gadget-ammo.firework-effect.color"));
if (TreasureManager.getRewardFile().getBoolean("UcRewards.gadget-ammo.chat-message.enabled"))
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', TreasureManager.getRewardFile().getString("UcRewards.gadget-ammo.chat-message.message")).replace("%name%", ultraPlayer.getBukkitPlayer().getName()).replace("%ammo%", ammo + "").replace("%gadget%", g.getName()));
}
@Override
public String getName() {
return name;
}
@Override
public ItemStack getItemStack() {
return itemStack;
}
}