diff --git a/eco-core/core-plugin/build.gradle b/eco-core/core-plugin/build.gradle index 27ce8f4..81e1a72 100644 --- a/eco-core/core-plugin/build.gradle +++ b/eco-core/core-plugin/build.gradle @@ -2,6 +2,7 @@ group 'com.willfp' version rootProject.version dependencies { + compileOnly fileTree(dir: '../../lib', include: ['*.jar']) compileOnly 'io.papermc.paper:paper-api:1.17.1-R0.1-SNAPSHOT' compileOnly 'com.github.MilkBowl:VaultAPI:1.7' compileOnly 'com.willfp:EcoSkills:1.4.0' diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java index 263aac6..d94fea0 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/ReforgesPlugin.java @@ -16,6 +16,7 @@ import com.willfp.reforges.effects.Effects; import com.willfp.reforges.integrations.aureliumskills.AureliumSkillsIntegration; import com.willfp.reforges.integrations.ecoskills.EcoSkillsIntegration; import com.willfp.reforges.integrations.talismans.TalismansIntegration; +import com.willfp.reforges.integrations.ultimateskills.UltimateSkillsIntegration; import com.willfp.reforges.reforges.Reforge; import com.willfp.reforges.reforges.Reforges; import com.willfp.reforges.reforges.util.ReforgeArgParser; @@ -128,6 +129,7 @@ public class ReforgesPlugin extends EcoPlugin { @Override protected List loadIntegrationLoaders() { return Arrays.asList( + new IntegrationLoader("UltimateSkills", UltimateSkillsIntegration.INSTANCE::load), new IntegrationLoader("EcoSkills", EcoSkillsIntegration.INSTANCE::load), new IntegrationLoader("Talismans", TalismansIntegration.INSTANCE::registerProvider), new IntegrationLoader("PlayerPoints", () -> EconomyHandler.setUsePlayerPoints(true)), diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddAbility.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddAbility.kt new file mode 100644 index 0000000..12927c9 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddAbility.kt @@ -0,0 +1,41 @@ +package com.willfp.reforges.integrations.ultimateskills + +import com.willfp.eco.core.config.interfaces.JSONConfig +import com.willfp.eco.util.NumberUtils +import com.willfp.reforges.ReforgesPlugin +import com.willfp.reforges.effects.Effect +import mc.ultimatecore.skills.HyperSkills +import mc.ultimatecore.skills.objects.abilities.Ability +import mc.ultimatecore.skills.objects.perks.Perk +import org.bukkit.entity.Player +import org.bukkit.persistence.PersistentDataType + +class EffectAddAbility : Effect("add_ultimateskills_ability") { + + override fun handleEnable( + player: Player, + config: JSONConfig + ) { + HyperSkills.getInstance().api.addAbility( + player.uniqueId, + Ability.valueOf(config.getString("ability", false)), + config.getDouble("amount") + ) + player.persistentDataContainer.set( + ReforgesPlugin.getInstance().namespacedKeyFactory.create("addAbility"), PersistentDataType.STRING, + NumberUtils.format(config.getDouble("amount")) + "::" + config.getString("ability", false) + ) + } + + override fun handleDisable(player: Player) { + player.persistentDataContainer.get(ReforgesPlugin.getInstance().namespacedKeyFactory.create("addAbility"), PersistentDataType.STRING) + ?.let { + HyperSkills.getInstance().api.removeAbility( + player.uniqueId, + Ability.valueOf(it.split("::")[1]), + it.split("::")[0].toDouble() + ) + } + } + +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddPerk.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddPerk.kt new file mode 100644 index 0000000..c513b03 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/EffectAddPerk.kt @@ -0,0 +1,43 @@ +package com.willfp.reforges.integrations.ultimateskills + +import com.archyx.aureliumskills.api.AureliumAPI +import com.archyx.aureliumskills.stats.Stats +import com.willfp.eco.core.config.interfaces.JSONConfig +import com.willfp.eco.util.NumberUtils +import com.willfp.reforges.ReforgesPlugin +import com.willfp.reforges.effects.Effect +import com.willfp.reforges.effects.getEffectAmount +import mc.ultimatecore.skills.HyperSkills +import mc.ultimatecore.skills.api.HyperSkillsAPI +import mc.ultimatecore.skills.objects.perks.Perk +import org.bukkit.entity.Player +import org.bukkit.persistence.PersistentDataType + +class EffectAddPerk : Effect("add_ultimateskills_perk") { + + override fun handleEnable( + player: Player, + config: JSONConfig + ) { + HyperSkills.getInstance().api.addPerk( + player.uniqueId, + Perk.valueOf(config.getString("perk", false)), + config.getDouble("amount") + ) + player.persistentDataContainer.set(ReforgesPlugin.getInstance().namespacedKeyFactory.create("addPerk"), PersistentDataType.STRING, + NumberUtils.format(config.getDouble("amount")) + "::" + config.getString("perk", false) + ) + } + + override fun handleDisable(player: Player) { + player.persistentDataContainer.get(ReforgesPlugin.getInstance().namespacedKeyFactory.create("addPerk"), PersistentDataType.STRING) + ?.let { + HyperSkills.getInstance().api.removePerk( + player.uniqueId, + Perk.valueOf(it.split("::")[1]), + it.split("::")[0].toDouble() + ) + } + } + +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/UltimateSkillsIntegration.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/UltimateSkillsIntegration.kt new file mode 100644 index 0000000..0ae9c51 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/integrations/ultimateskills/UltimateSkillsIntegration.kt @@ -0,0 +1,18 @@ +package com.willfp.reforges.integrations.ultimateskills + +import com.willfp.eco.core.integrations.Integration +import com.willfp.reforges.effects.Effect + +object UltimateSkillsIntegration : Integration { + private lateinit var ADD_PERK: Effect + private lateinit var ADD_ABILITY: Effect + + fun load() { + ADD_PERK = EffectAddPerk() + ADD_ABILITY = EffectAddAbility() + } + + override fun getPluginName(): String { + return "UltimateSkills" + } +} \ No newline at end of file diff --git a/lib/UltimateHelper.jar b/lib/UltimateHelper.jar new file mode 100644 index 0000000..ae003d5 Binary files /dev/null and b/lib/UltimateHelper.jar differ diff --git a/lib/UltimateSkills.jar b/lib/UltimateSkills.jar new file mode 100644 index 0000000..fd06b79 Binary files /dev/null and b/lib/UltimateSkills.jar differ