9
0
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:
Auxilor
2021-08-29 12:54:30 +01:00
parent db18480ee4
commit 835bfcdb44
6 changed files with 45 additions and 2 deletions

View File

@@ -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'
}

View File

@@ -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)))
);
}
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)
}
}

View File

@@ -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