mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-02 22:02:19 +00:00
Added alchemy, armory, and fishing
This commit is contained in:
@@ -2,11 +2,13 @@ package com.willfp.ecoskills.skills;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.willfp.eco.core.config.updating.ConfigUpdater;
|
||||
import com.willfp.ecoskills.skills.skills.SkillAlchemy;
|
||||
import com.willfp.ecoskills.skills.skills.SkillArmory;
|
||||
import com.willfp.ecoskills.skills.skills.SkillCombat;
|
||||
import com.willfp.ecoskills.skills.skills.SkillEnchanting;
|
||||
import com.willfp.ecoskills.skills.skills.SkillExploration;
|
||||
import com.willfp.ecoskills.skills.skills.SkillFarming;
|
||||
import com.willfp.ecoskills.skills.skills.SkillFishing;
|
||||
import com.willfp.ecoskills.skills.skills.SkillMining;
|
||||
import com.willfp.ecoskills.skills.skills.SkillWoodcutting;
|
||||
import org.bukkit.NamespacedKey;
|
||||
@@ -31,10 +33,8 @@ public class Skills {
|
||||
public static final Skill WOODCUTTING = new SkillWoodcutting();
|
||||
public static final Skill EXPLORATION = new SkillExploration();
|
||||
public static final Skill ARMORY = new SkillArmory();
|
||||
/*
|
||||
public static final Skill FISHING = new Skill(PLUGIN, "fishing");
|
||||
public static final Skill ALCHEMY = new Skill(PLUGIN, "alchemy");
|
||||
*/
|
||||
public static final Skill FISHING = new SkillFishing();
|
||||
public static final Skill ALCHEMY = new SkillAlchemy();
|
||||
|
||||
@ApiStatus.Internal
|
||||
public static void registerNewSkill(@NotNull final Skill skill) {
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.willfp.ecoskills.skills.skills
|
||||
|
||||
import com.willfp.eco.core.events.EntityDeathByEntityEvent
|
||||
import com.willfp.ecoskills.api.PlayerSkillExpGainEvent
|
||||
import com.willfp.ecoskills.getStatLevel
|
||||
import com.willfp.ecoskills.skills.Skill
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.attribute.Attribute
|
||||
import org.bukkit.enchantments.Enchantment
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.entity.Projectile
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.block.BlockBreakEvent
|
||||
import org.bukkit.event.enchantment.EnchantItemEvent
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
||||
import org.bukkit.event.inventory.BrewEvent
|
||||
import java.util.*
|
||||
|
||||
class SkillAlchemy : Skill(
|
||||
"alchemy"
|
||||
) {
|
||||
private val rewards: MutableMap<Material, Double>
|
||||
|
||||
init {
|
||||
rewards = EnumMap(org.bukkit.Material::class.java)
|
||||
}
|
||||
|
||||
override fun postUpdate() {
|
||||
rewards.clear()
|
||||
for (string in this.config.getStrings("xp-rewards", false)) {
|
||||
val split = string.split(":")
|
||||
val material = Material.getMaterial(split[0].uppercase()) ?: continue
|
||||
rewards[material] = split[1].toDouble()
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
fun handleLevelling(event: BrewEvent) {
|
||||
var player: Player? = null
|
||||
|
||||
for (viewer in event.contents.viewers) {
|
||||
if (viewer is Player) {
|
||||
player = viewer
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
return
|
||||
}
|
||||
|
||||
val type = event.contents.ingredient?.type ?: return
|
||||
|
||||
val toGive = rewards[type] ?: return
|
||||
val gainEvent = PlayerSkillExpGainEvent(player, this, toGive)
|
||||
Bukkit.getPluginManager().callEvent(gainEvent)
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,7 @@ import java.util.*
|
||||
class SkillArmory : Skill(
|
||||
"armory"
|
||||
) {
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
fun handleLevelling(event: EntityDamageByEntityEvent) {
|
||||
val player = event.entity
|
||||
if (player !is Player) {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.willfp.ecoskills.skills.skills
|
||||
|
||||
import com.willfp.ecoskills.api.PlayerSkillExpGainEvent
|
||||
import com.willfp.ecoskills.skills.Skill
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.attribute.Attribute
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
||||
import org.bukkit.event.player.PlayerFishEvent
|
||||
import java.util.*
|
||||
|
||||
class SkillFishing : Skill(
|
||||
"fishing"
|
||||
) {
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
fun handleLevelling(event: PlayerFishEvent) {
|
||||
val player = event.player
|
||||
val expToDrop = event.expToDrop
|
||||
|
||||
if (player !is Player) {
|
||||
return
|
||||
}
|
||||
|
||||
val xp = expToDrop * this.config.getDouble("xp-per-experience-dropped")
|
||||
val gainEvent = PlayerSkillExpGainEvent(player, this, xp)
|
||||
Bukkit.getPluginManager().callEvent(gainEvent)
|
||||
}
|
||||
}
|
||||
@@ -291,6 +291,20 @@ skills:
|
||||
gui-item: fishing_rod
|
||||
# The maximum obtainable level
|
||||
max-level: 50
|
||||
|
||||
# The experience to give for each in-game experience dropped
|
||||
xp-per-experience-dropped: 3.5
|
||||
|
||||
# The level/skill increases to give on levelup
|
||||
level-up-rewards:
|
||||
- "defense:1"
|
||||
- "wisdom:1"
|
||||
- "eye_of_the_depths:1"
|
||||
|
||||
rewards-messages:
|
||||
- " &f+1 %ecoskills_defense_name%"
|
||||
- " &f+1 %ecoskills_wisdom_name%"
|
||||
- " &6Eye Of The Depths %ecoskills_eye_of_the_depths_numeral%"
|
||||
alchemy:
|
||||
gui-position:
|
||||
row: 4
|
||||
@@ -299,6 +313,37 @@ skills:
|
||||
gui-item: brewing_stand
|
||||
# The maximum obtainable level
|
||||
max-level: 50
|
||||
|
||||
# The level/skill increases to give on levelup
|
||||
level-up-rewards:
|
||||
- "wisdom:1"
|
||||
- "speed:1"
|
||||
- "potionmaster:1"
|
||||
|
||||
rewards-messages:
|
||||
- " &f+1 %ecoskills_wisdom_name%"
|
||||
- " &f+1 %ecoskills_speed_name%"
|
||||
- " &6Potionmaster %ecoskills_potionmaster_numeral%"
|
||||
|
||||
# The experience to give for each brewing ingredient
|
||||
xp-rewards:
|
||||
- "nether_wart:6"
|
||||
- "redstone:6"
|
||||
- "glowstone_dust:6"
|
||||
- "fermented_spider_eye:6"
|
||||
- "gunpowder:6"
|
||||
- "dragon_breath:42"
|
||||
- "sugar:14"
|
||||
- "rabbit_foot:22"
|
||||
- "glistering_melon_slice:22"
|
||||
- "spider_eye:8"
|
||||
- "pufferfish:14"
|
||||
- "magma_cream:12"
|
||||
- "golden_carrot:22"
|
||||
- "blaze_powder:12"
|
||||
- "ghast_tear:12"
|
||||
- "turtle_shell:80"
|
||||
- "phantom_membrane:34"
|
||||
armory:
|
||||
gui-position:
|
||||
row: 4
|
||||
|
||||
Reference in New Issue
Block a user