package be.isach.ultracosmetics.tempchests.reward; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; import be.isach.ultracosmetics.UltraCosmetics; import be.isach.ultracosmetics.config.TreasureManager; import be.isach.ultracosmetics.player.UltraPlayer; /** * A permission reward. * * @author RadBuilder * @since 01-16-2017 */ public class PermissionReward extends Reward { private int chance; private boolean chatMessage; private String message; private boolean permDisable; private String disablePerm; private boolean firework; private String fireworkColor; private List<String> rewardCommands; private boolean sound; private String soundEffect; private String name; private UltraPlayer ultraPlayer; public PermissionReward(String key, UltraPlayer player, UltraCosmetics ultraCosmetics) { super(player, RewardType.PERMISSION, ultraCosmetics); this.name = key; this.ultraPlayer = player; key = "CustomRewards." + key; chance = f().getInt(key + ".chance"); chatMessage = f().getBoolean(key + ".chat-message.enabled"); message = f().getString(key + ".chat-message.message"); permDisable = f().getBoolean(key + ".disable-if-permission.enabled"); disablePerm = f().getString(key + ".disable-if-permission.permission"); firework = f().getBoolean(key + ".firework-effect.enabled"); fireworkColor = f().getString(key + ".firework-effect.color"); rewardCommands = f().getStringList(key + ".reward-commands"); sound = f().getBoolean(key + ".sound.enabled"); soundEffect = f().getString(key + ".sound.sound-effect"); } public int getChance() { return chance; } public boolean displayChatMessage() { return chatMessage; } public String getChatMessage() { return message; } public boolean disableWithPerm() { return permDisable; } public String getDisablePerm() { return disablePerm; } public boolean launchFirework() { return firework; } public String getFireworkColor() { return fireworkColor; } public List<String> rewardCommands() { return rewardCommands; } public boolean makeSound() { return sound; } public String getSound() { return soundEffect; } private YamlConfiguration f() { return TreasureManager.getRewardFile(); } @Override public void clear() { } @Override public boolean canEarn() { if(permDisable) return !ultraPlayer.getBukkitPlayer().hasPermission(disablePerm); return true; } @Override public void give() { for(String rewardCommand : rewardCommands) { Bukkit.dispatchCommand(Bukkit.getConsoleSender(), rewardCommand.replace("{player-name}", ultraPlayer.getBukkitPlayer().getName()).replace("{player-uuid}", "" + ultraPlayer.getBukkitPlayer().getUniqueId())); } } @Override public String getName() { return name; } @Override public ItemStack getItemStack() { return new ItemStack(Material.NETHER_STAR); } }