mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-01 21:36:34 +00:00
Added Over Compensation Enchanting Effect
This commit is contained in:
@@ -2,29 +2,7 @@ package com.willfp.ecoskills.effects;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
||||
import com.willfp.ecoskills.effects.effects.EffectAcceleratedEscape;
|
||||
import com.willfp.ecoskills.effects.effects.EffectBountifulHarvest;
|
||||
import com.willfp.ecoskills.effects.effects.EffectBravery;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDynamicMining;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEndangering;
|
||||
import com.willfp.ecoskills.effects.effects.EffectInfernalResistance;
|
||||
import com.willfp.ecoskills.effects.effects.EffectCraftsmanship;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDazzle;
|
||||
import com.willfp.ecoskills.effects.effects.EffectDodging;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEfficientBrewing;
|
||||
import com.willfp.ecoskills.effects.effects.EffectEyeOfTheDepths;
|
||||
import com.willfp.ecoskills.effects.effects.EffectGoldenYield;
|
||||
import com.willfp.ecoskills.effects.effects.EffectMysticResilience;
|
||||
import com.willfp.ecoskills.effects.effects.EffectPotionmaster;
|
||||
import com.willfp.ecoskills.effects.effects.EffectReimbursement;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSatiation;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSeamlessMovement;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSecondChance;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSerratedStrikes;
|
||||
import com.willfp.ecoskills.effects.effects.EffectShamanism;
|
||||
import com.willfp.ecoskills.effects.effects.EffectSpelunking;
|
||||
import com.willfp.ecoskills.effects.effects.EffectStrongImpact;
|
||||
import com.willfp.ecoskills.effects.effects.EffectVersatileTools;
|
||||
import com.willfp.ecoskills.effects.effects.*;
|
||||
import org.bukkit.NamespacedKey;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -63,6 +41,7 @@ public class Effects {
|
||||
public static final Effect SPELUNKING = new EffectSpelunking();
|
||||
public static final Effect DYNAMIC_MINING = new EffectDynamicMining();
|
||||
public static final Effect REIMBURSEMENT = new EffectReimbursement();
|
||||
public static final Effect OVER_COMPENSATION = new EffectOverCompensation();
|
||||
|
||||
@ApiStatus.Internal
|
||||
public static void registerNewEffect(@NotNull final Effect effect) {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.willfp.ecoskills.effects.effects
|
||||
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.ecoskills.effects.Effect
|
||||
import com.willfp.ecoskills.getEffectLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.enchantment.EnchantItemEvent
|
||||
import org.bukkit.inventory.EnchantingInventory
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
|
||||
class EffectOverCompensation : Effect(
|
||||
"over_compensation"
|
||||
) {
|
||||
override fun formatDescription(string: String, level: Int): String {
|
||||
return string.replace("%chance%", NumberUtils.format(config.getDouble("chance-per-level") * level))
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
fun handleLevelling(event: EnchantItemEvent) {
|
||||
val player = event.enchanter
|
||||
val cost = event.whichButton()+1
|
||||
|
||||
val chance = config.getDouble("chance-per-level") * player.getEffectLevel(this)
|
||||
|
||||
if (NumberUtils.randFloat(0.0, 100.0) < chance) {
|
||||
Bukkit.getLogger().info("?")
|
||||
Bukkit.getLogger().info(NumberUtils.randFloat(0.0, 100.0).toString())
|
||||
Bukkit.getLogger().info(chance.toString())
|
||||
|
||||
|
||||
// event.isCancelled = true
|
||||
this.plugin.scheduler.runLater({
|
||||
event.inventory.addItem(ItemStack(Material.LAPIS_LAZULI, cost))
|
||||
}, 2)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -187,3 +187,8 @@ reimbursement:
|
||||
|
||||
# The chance to get experience back, as a percentage
|
||||
chance-per-level: 0.5
|
||||
over_compensation:
|
||||
description: "&a%chance%%&8 chance to get Lapis Lazuli back after enchanting"
|
||||
|
||||
# The chance to get experience back, as a percentage
|
||||
chance-per-level: 0.75
|
||||
@@ -17,6 +17,8 @@ gui:
|
||||
- " %ecoskills_second_chance_description%"
|
||||
- "&8» &r&6Reimbursement %ecoskills_reimbursement_numeral%"
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
- "&8» &r&6Over Compensation %ecoskills_over_compensation_numeral%"
|
||||
- " %ecoskills_over_compensation_description%"
|
||||
|
||||
rewards:
|
||||
# The actual rewards to be given
|
||||
@@ -25,26 +27,30 @@ rewards:
|
||||
- "crit_chance::1"
|
||||
- "second_chance::1"
|
||||
- "reimbursement::1"
|
||||
- "over_compensation::1"
|
||||
|
||||
# The chat messages to send on level up
|
||||
chat-messages:
|
||||
1:
|
||||
- " &8» &r&f+2 %ecoskills_wisdom_name%"
|
||||
- " &8» &r&f+1 %ecoskills_crit_chance_name%"
|
||||
- " &8» &r&6Second Chance %ecoskills_second_chance_numeral%"
|
||||
- " %ecoskills_second_chance_description%"
|
||||
- " &8» &r&6Reimbursement %ecoskills_reimbursement_numeral%"
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
- "&8» &r&f+2 %ecoskills_wisdom_name%"
|
||||
- "&8» &r&f+1 %ecoskills_crit_chance_name%"
|
||||
- "&8» &r&6Second Chance %ecoskills_second_chance_numeral%"
|
||||
- " %ecoskills_second_chance_description%"
|
||||
- "&8» &r&6Reimbursement %ecoskills_reimbursement_numeral%"
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
- "&8» &r&6Over Compensation %ecoskills_over_compensation_numeral%"
|
||||
- " %ecoskills_over_compensation_description%"
|
||||
|
||||
# The lore to show in the levels gui
|
||||
progression-lore:
|
||||
1:
|
||||
- " &8» &r&f+2 %ecoskills_wisdom_name%"
|
||||
- " &8» &r&f+1 %ecoskills_crit_chance_name%"
|
||||
- " &8» &r&6Second Chance %ecoskills_second_chance_numeral%"
|
||||
- " %ecoskills_second_chance_description%"
|
||||
- " &8» &r&6Reimbursement %ecoskills_reimbursement_numeral%"
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
|
||||
- "&8» &r&f+2 %ecoskills_wisdom_name%"
|
||||
- "&8» &r&f+1 %ecoskills_crit_chance_name%"
|
||||
- "&8» &r&6Second Chance %ecoskills_second_chance_numeral%"
|
||||
- " %ecoskills_second_chance_description%"
|
||||
- "&8» &r&6Reimbursement %ecoskills_reimbursement_numeral%"
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
- "&8» &r&6Over Compensation %ecoskills_over_compensation_numeral%"
|
||||
- " %ecoskills_over_compensation_description%"
|
||||
# The experience to give for each level cost of enchanting
|
||||
xp-per-level: 4
|
||||
Reference in New Issue
Block a user