Search in sources :

Example 1 with Reward

use of com.winthier.skills.Reward in project Skills by StarTux.

the class BukkitCommandSkills method checkItem.

void checkItem(Player player) {
    ItemStack item = player.getItemInHand();
    final String prefix = BukkitUtil.format("&r[&2Creeper Overlord&r] ");
    if (item == null || item.getType() == Material.AIR) {
        BukkitUtil.msg(player, prefix + "&cThere is no item in your hand");
        return;
    }
    Reward reward = ((BukkitSkillSacrifice) getSkills().skillByType(BukkitSkillType.SACRIFICE)).fullRewardForItem(item);
    double money = (double) reward.getMoney() * (double) item.getAmount();
    BukkitUtil.msg(player, prefix + "Sacrificing the %d item%s in your hand will grant you &a%s&r.", item.getAmount(), item.getAmount() == 1 ? "" : "s", BukkitSkillsPlugin.getInstance().getEconomy().format(money));
}
Also used : Reward(com.winthier.skills.Reward) ItemStack(org.bukkit.inventory.ItemStack)

Example 2 with Reward

use of com.winthier.skills.Reward in project Skills by StarTux.

the class BukkitSkillHarvest method onBlockFromTo.

@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onBlockFromTo(BlockFromToEvent event) {
    // In addition to block breaks, the Harvest Skill also
    // rewards crops broken by water.
    Block source = event.getBlock();
    if (source.getType() != Material.WATER && source.getType() != Material.STATIONARY_WATER)
        return;
    Block block = event.getToBlock();
    Reward reward = rewardForBlockNamed(block, "water");
    if (reward == null)
        return;
    Player player = getNearestPlayer(block.getLocation(), RADIUS);
    if (player == null)
        return;
    if (!allowPlayer(player))
        return;
    giveReward(player, reward);
}
Also used : Player(org.bukkit.entity.Player) Block(org.bukkit.block.Block) Reward(com.winthier.skills.Reward) EventHandler(org.bukkit.event.EventHandler)

Example 3 with Reward

use of com.winthier.skills.Reward in project Skills by StarTux.

the class BukkitSkillSacrifice method rewardsForItem.

List<Reward> rewardsForItem(ItemStack item) {
    List<Reward> result = new ArrayList<>();
    if (item == null)
        return result;
    addReward(result, rewardForItem(item));
    for (Map.Entry<Enchantment, Integer> entry : item.getEnchantments().entrySet()) {
        addReward(result, rewardForEnchantment(entry.getKey(), entry.getValue()));
    }
    if (item.hasItemMeta()) {
        ItemMeta meta = item.getItemMeta();
        if (meta instanceof EnchantmentStorageMeta) {
            for (Map.Entry<Enchantment, Integer> entry : ((EnchantmentStorageMeta) meta).getStoredEnchants().entrySet()) {
                addReward(result, rewardForEnchantment(entry.getKey(), entry.getValue()));
            }
        }
        if (meta instanceof SpawnEggMeta) {
            SpawnEggMeta spawnEggMeta = (SpawnEggMeta) meta;
            if (spawnEggMeta.getSpawnedType() != null) {
                addReward(result, rewardForEntityType(spawnEggMeta.getSpawnedType()));
            }
        }
    }
    return result;
}
Also used : EnchantmentStorageMeta(org.bukkit.inventory.meta.EnchantmentStorageMeta) SpawnEggMeta(org.bukkit.inventory.meta.SpawnEggMeta) ArrayList(java.util.ArrayList) CustomReward(com.winthier.skills.CustomReward) Reward(com.winthier.skills.Reward) Enchantment(org.bukkit.enchantments.Enchantment) HashMap(java.util.HashMap) Map(java.util.Map) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Example 4 with Reward

use of com.winthier.skills.Reward in project Skills by StarTux.

the class BukkitSkill method giveReward.

final void giveReward(@NonNull Player player, Reward reward, double factor) {
    int level = getSkills().getScore().getSkillLevel(player.getUniqueId(), this);
    double bonusFactor = getSkillType() == BukkitSkillType.SACRIFICE ? 1.0 : 1.0 + (double) (level / 10) / 100.0;
    if (reward == null)
        return;
    double skillPoints = reward.getSkillPoints() * factor;
    double money = reward.getMoney() * factor * bonusFactor;
    double exp = reward.getExp() * factor;
    if (skillPoints < 0.01 && money < 0.01 && exp < 0.01)
        return;
    if (getSkills().hasDebugMode(player)) {
        BukkitReward br = BukkitReward.of(reward);
        BukkitUtil.msg(player, "[sk] &e%s &8%s &e%s %s&8:&e%s &8\"&e%s&8\" &6%.2f&8sp &6%.2f&8mo &6%.2f&8xp", getShorthand(), Strings.camelCase(br.key.getTarget().name()), Strings.camelCase(br.key.typeAsPrettyString()), br.key.typeAsString(), br.key.dataAsString(), br.key.nameAsString(), skillPoints, money, exp);
    }
    giveSkillPoints(player, skillPoints);
    giveMoney(player, money);
    giveExp(player, exp);
    Reward outcome = new CustomReward((float) skillPoints, (float) money, (float) exp);
    BukkitPlayer.of(player).onReward(player, this, outcome);
    getSkills().getScore().logReward(reward, player.getUniqueId(), outcome);
    Bukkit.getServer().getPluginManager().callEvent(new SkillsRewardEvent(player, this, outcome));
}
Also used : SkillsRewardEvent(com.winthier.skills.bukkit.event.SkillsRewardEvent) CustomReward(com.winthier.skills.CustomReward) CustomReward(com.winthier.skills.CustomReward) Reward(com.winthier.skills.Reward)

Example 5 with Reward

use of com.winthier.skills.Reward in project Skills by StarTux.

the class BukkitSkillEat method onPlayerItemConsume.

@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerItemConsume(PlayerItemConsumeEvent event) {
    if (!allowPlayer(event.getPlayer()))
        return;
    Player player = event.getPlayer();
    if (player.hasPotionEffect(PotionEffectType.HUNGER))
        return;
    Reward reward = rewardForItem(event.getItem());
    if (reward == null)
        return;
    final int foodLevel = player.getFoodLevel();
    final float saturation = player.getSaturation();
    new BukkitRunnable() {

        @Override
        public void run() {
            onDidEat(player, reward, foodLevel, saturation);
        }
    }.runTask(getPlugin());
}
Also used : Player(org.bukkit.entity.Player) BukkitRunnable(org.bukkit.scheduler.BukkitRunnable) Reward(com.winthier.skills.Reward) EventHandler(org.bukkit.event.EventHandler)

Aggregations

Reward (com.winthier.skills.Reward)7 CustomReward (com.winthier.skills.CustomReward)4 Player (org.bukkit.entity.Player)3 EventHandler (org.bukkit.event.EventHandler)2 SkillsRewardEvent (com.winthier.skills.bukkit.event.SkillsRewardEvent)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 UUID (java.util.UUID)1 Block (org.bukkit.block.Block)1 Enchantment (org.bukkit.enchantments.Enchantment)1 ItemStack (org.bukkit.inventory.ItemStack)1 EnchantmentStorageMeta (org.bukkit.inventory.meta.EnchantmentStorageMeta)1 ItemMeta (org.bukkit.inventory.meta.ItemMeta)1 SpawnEggMeta (org.bukkit.inventory.meta.SpawnEggMeta)1 BukkitRunnable (org.bukkit.scheduler.BukkitRunnable)1