mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-01 13:26:30 +00:00
Added EcoEnchants integration
This commit is contained in:
@@ -5,4 +5,5 @@ dependencies {
|
||||
compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT'
|
||||
compileOnly 'com.gmail.filoghost.holographicdisplays:holographicdisplays-api:2.4.0'
|
||||
compileOnly 'com.comphenix.protocol:ProtocolLib:4.7.0'
|
||||
compileOnly 'com.willfp:EcoEnchants:8.2.0'
|
||||
}
|
||||
@@ -13,6 +13,7 @@ import com.willfp.ecoskills.config.EffectsYml;
|
||||
import com.willfp.ecoskills.data.LeaderboardHandler;
|
||||
import com.willfp.ecoskills.effects.Effect;
|
||||
import com.willfp.ecoskills.effects.Effects;
|
||||
import com.willfp.ecoskills.integrations.EcoEnchantsEnchantingLeveller;
|
||||
import com.willfp.ecoskills.skills.Skill;
|
||||
import com.willfp.ecoskills.skills.SkillDisplayListener;
|
||||
import com.willfp.ecoskills.skills.SkillLevellingListener;
|
||||
@@ -132,7 +133,8 @@ public class EcoSkillsPlugin extends EcoPlugin {
|
||||
@Override
|
||||
protected List<IntegrationLoader> loadIntegrationLoaders() {
|
||||
return Arrays.asList(
|
||||
new IntegrationLoader("HolographicDisplays", () -> this.getEventManager().registerListener(new DamageIndicatorListener(this)))
|
||||
new IntegrationLoader("HolographicDisplays", () -> this.getEventManager().registerListener(new DamageIndicatorListener(this))),
|
||||
new IntegrationLoader("EcoEnchants", () -> this.getEventManager().registerListener(new EcoEnchantsEnchantingLeveller(this)))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.willfp.eco.core.command.impl.Subcommand
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecoskills.data.LeaderboardHandler
|
||||
import com.willfp.ecoskills.getTotalSkillLevel
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
@@ -20,6 +21,7 @@ class CommandTop(plugin: EcoPlugin) :
|
||||
override fun getHandler(): CommandHandler {
|
||||
return CommandHandler { sender: CommandSender, args: List<String> ->
|
||||
val page = args.firstOrNull()?.toIntOrNull() ?: 1
|
||||
Bukkit.getLogger().info("page raw $page")
|
||||
|
||||
val top = LeaderboardHandler.getPage(page)
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ class LeaderboardHandler {
|
||||
fun getPage(page: Int): MutableMap<Int, OfflinePlayer> {
|
||||
val maxPage = ceil(sortedLeaderboard.size / 10.0).toInt()
|
||||
val finalPage = max(1, min(page, maxPage))
|
||||
Bukkit.getLogger().info("page final $finalPage")
|
||||
|
||||
val startIndex = (finalPage - 1) * 10
|
||||
val endIndex = min(startIndex + 9, sortedLeaderboard.size - 1)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.willfp.ecoskills.integrations
|
||||
|
||||
import com.willfp.ecoenchants.enchantments.EcoEnchants
|
||||
import com.willfp.ecoenchants.enchantments.meta.EnchantmentType
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.giveSkillExperience
|
||||
import com.willfp.ecoskills.skills.Skills
|
||||
import org.bukkit.GameMode
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.Listener
|
||||
import org.bukkit.event.enchantment.EnchantItemEvent
|
||||
|
||||
class EcoEnchantsEnchantingLeveller(
|
||||
private val plugin: EcoSkillsPlugin
|
||||
) : Listener {
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
fun handleLevelling(event: EnchantItemEvent) {
|
||||
val player = event.enchanter
|
||||
|
||||
if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) {
|
||||
return
|
||||
}
|
||||
|
||||
this.plugin.scheduler.runLater({
|
||||
if (EcoEnchants.hasAnyOfType(event.item, EnchantmentType.SPECIAL)) {
|
||||
val toGive = Skills.ENCHANTING.config.getDouble("ecoenchants.xp-for-special")
|
||||
|
||||
player.giveSkillExperience(Skills.ENCHANTING, toGive)
|
||||
}
|
||||
}, 2)
|
||||
}
|
||||
}
|
||||
@@ -66,5 +66,9 @@ rewards:
|
||||
- " %ecoskills_reimbursement_description%"
|
||||
- " &8» &r&6Overcompensation %ecoskills_over_compensation_numeral%"
|
||||
- " %ecoskills_overcompensation_description%"
|
||||
|
||||
# The experience to give for each level cost of enchanting
|
||||
xp-per-level: 4
|
||||
xp-per-level: 4
|
||||
|
||||
ecoenchants: #Config for EcoEnchants integration
|
||||
xp-for-special: 2500
|
||||
Reference in New Issue
Block a user