Skip to content

Commit

Permalink
➖ ➕ Removed SkillAPI in favor of Fabled
Browse files Browse the repository at this point in the history
* closes #317
  • Loading branch information
SkytAsul committed Jun 8, 2024
1 parent 38eb9a5 commit fed3365
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 126 deletions.
3 changes: 1 addition & 2 deletions core/src/main/resources/plugin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ softdepend:
- MythicMobs
- Vault
- PlaceholderAPI
- SkillAPI
- Fabled
- HolographicDisplays
- Jobs
- Factions
Expand All @@ -28,7 +28,6 @@ softdepend:
- ServersNPC
- Citizens
- ZNPCsPlus
- ProSkillAPI
- BlueMap
- Sentinel
- AdvancedSpawners
Expand Down
1 change: 0 additions & 1 deletion integrations/libs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ echo -e "Maven path: $mavenPath\e[39m"
"$mavenPath" install:install-file -Dfile=$jarsPath/Jobs.jar -DgroupId=com.gamingmesh -DartifactId=jobs -Dversion=5.1.0.1 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/McCombatLevel.jar -DgroupId=com.gmail.mrphpfan -DartifactId=mccombatlevel -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/mcMMO.jar -DgroupId=com.gmail.nossr50 -DartifactId=mcmmo -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/SkillAPI.jar -DgroupId=com.suxy -DartifactId=skillapi -Dversion=1.0 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/Boss.jar -DgroupId=org.mineacademy -DartifactId=boss -Dversion=4.2.1 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/CMI.jar -DgroupId=com.zrips -DartifactId=cmi -Dversion=9.0.2.1 -Dpackaging=jar -DgeneratePom=true
"$mavenPath" install:install-file -Dfile=$jarsPath/CMILib.jar -DgroupId=com.zrips -DartifactId=cmilib -Dversion=1.2.3.3 -Dpackaging=jar -DgeneratePom=true
Expand Down
21 changes: 10 additions & 11 deletions integrations/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
<repositories>
<repository>
<id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
<url>
https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<repository>
<id>dynmap</id>
Expand Down Expand Up @@ -73,11 +74,15 @@
<id>pyr-snapshots</id>
<url>https://repo.pyr.lol/snapshots</url>
</repository>
<repository>
<id>sonatype</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>fr.skytasul</groupId>
<groupId>fr.skytasul</groupId>
<artifactId>beautyquests-api</artifactId>
<version>${revision}</version>
<scope>provided</scope>
Expand Down Expand Up @@ -177,9 +182,9 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.promcteam</groupId>
<artifactId>proskillapi</artifactId>
<version>1.1.7.0.3</version>
<groupId>studio.magemonkey</groupId>
<artifactId>fabled</artifactId>
<version>1.0.0-R0.33-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -280,12 +285,6 @@
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.suxy</groupId>
<artifactId>skillapi</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.zrips</groupId>
<artifactId>cmi</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
import fr.skytasul.quests.api.utils.IntegrationManager;
import fr.skytasul.quests.api.utils.IntegrationManager.BQDependency;
import fr.skytasul.quests.api.utils.XMaterial;
import fr.skytasul.quests.integrations.fabled.FabledClassRequirement;
import fr.skytasul.quests.integrations.fabled.FabledLevelRequirement;
import fr.skytasul.quests.integrations.fabled.FabledXpReward;
import fr.skytasul.quests.integrations.factions.FactionRequirement;
import fr.skytasul.quests.integrations.jobs.JobLevelRequirement;
import fr.skytasul.quests.integrations.maps.BQBlueMap;
Expand All @@ -21,9 +24,6 @@
import fr.skytasul.quests.integrations.placeholders.PapiMessageProcessor;
import fr.skytasul.quests.integrations.placeholders.PlaceholderRequirement;
import fr.skytasul.quests.integrations.placeholders.QuestsPlaceholders;
import fr.skytasul.quests.integrations.skillapi.ClassRequirement;
import fr.skytasul.quests.integrations.skillapi.SkillAPILevelRequirement;
import fr.skytasul.quests.integrations.skillapi.SkillAPIXpReward;
import fr.skytasul.quests.integrations.vault.economy.MoneyRequirement;
import fr.skytasul.quests.integrations.vault.economy.MoneyReward;
import fr.skytasul.quests.integrations.vault.permission.PermissionReward;
Expand Down Expand Up @@ -77,7 +77,9 @@ public IntegrationsLoader() {


// REWARDS / REQUIREMENTS
manager.addDependency(new BQDependency("SkillAPI", this::registerSkillApi).addPluginName("ProSkillAPI"));
manager.addDependency(new BQDependency("Fabled", this::registerFabled, null, this::isFabledValid)
.addPluginName("ProSkillAPI").addPluginName("SkillAPI") // for warning message
);
manager.addDependency(new BQDependency("Jobs", this::registerJobs));
manager.addDependency(new BQDependency("Factions", this::registerFactions));
manager.addDependency(new BQDependency("mcMMO", this::registerMcMmo));
Expand Down Expand Up @@ -174,15 +176,24 @@ private void registerJobs() {
JobLevelRequirement::new));
}

private void registerSkillApi() {
QuestsAPI.getAPI().getRequirements().register(new RequirementCreator("classRequired", ClassRequirement.class,
ItemUtils.item(XMaterial.GHAST_TEAR, Lang.RClass.toString()), ClassRequirement::new));
private void registerFabled() {
QuestsAPI.getAPI().getRequirements().register(new RequirementCreator("classRequired", FabledClassRequirement.class,
ItemUtils.item(XMaterial.GHAST_TEAR, Lang.RClass.toString()), FabledClassRequirement::new));
QuestsAPI.getAPI().getRequirements()
.register(new RequirementCreator("skillAPILevelRequired", SkillAPILevelRequirement.class,
.register(new RequirementCreator("skillAPILevelRequired", FabledLevelRequirement.class,
ItemUtils.item(XMaterial.EXPERIENCE_BOTTLE, Lang.RSkillAPILevel.toString()),
SkillAPILevelRequirement::new));
QuestsAPI.getAPI().getRewards().register(new RewardCreator("skillAPI-exp", SkillAPIXpReward.class,
ItemUtils.item(XMaterial.EXPERIENCE_BOTTLE, Lang.RWSkillApiXp.toString()), SkillAPIXpReward::new));
FabledLevelRequirement::new));
QuestsAPI.getAPI().getRewards().register(new RewardCreator("skillAPI-exp", FabledXpReward.class,
ItemUtils.item(XMaterial.EXPERIENCE_BOTTLE, Lang.RWSkillApiXp.toString()), FabledXpReward::new));
}

private boolean isFabledValid(Plugin plugin) {
if (plugin.getName().equals("SkillAPI") || plugin.getName().equals("ProSkillAPI")) {
QuestsPlugin.getPlugin().getLogger().warning(
"SkillAPI and ProSKillAPI are no longer supported. You must upgrade to their newer version: Fabled (https://www.spigotmc.org/resources/91913)");
return false;
}
return true;
}

private boolean isUltimateTimberValid(Plugin plugin) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,5 @@
package fr.skytasul.quests.integrations.skillapi;
package fr.skytasul.quests.integrations.fabled;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.bukkit.DyeColor;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import com.sucy.skill.api.classes.RPGClass;
import com.sucy.skill.api.player.PlayerClass;
import fr.skytasul.quests.api.QuestsPlugin;
import fr.skytasul.quests.api.gui.ItemUtils;
import fr.skytasul.quests.api.gui.LoreBuilder;
Expand All @@ -19,110 +8,124 @@
import fr.skytasul.quests.api.localization.Lang;
import fr.skytasul.quests.api.objects.QuestObjectClickEvent;
import fr.skytasul.quests.api.requirements.AbstractRequirement;
import org.bukkit.DyeColor;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import studio.magemonkey.fabled.Fabled;
import studio.magemonkey.fabled.api.classes.FabledClass;
import studio.magemonkey.fabled.api.player.PlayerClass;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;

public class FabledClassRequirement extends AbstractRequirement {

public class ClassRequirement extends AbstractRequirement {
public List<FabledClass> classes;

public List<RPGClass> classes;

public ClassRequirement() {
public FabledClassRequirement() {
this(null, null, new ArrayList<>());
}
public ClassRequirement(String customDescription, String customReason, List<RPGClass> classes) {

public FabledClassRequirement(String customDescription, String customReason, List<FabledClass> classes) {
super(customDescription, customReason);
this.classes = classes;
}

public List<String> getClassesName(){
List<String> ls = new ArrayList<>();
for (RPGClass cl : classes) ls.add(cl.getName());
for (FabledClass cl : classes)
ls.add(cl.getName());
return ls;
}

public void addClass(Object classe){
classes.add((RPGClass) classe);
classes.add((FabledClass) classe);
}

@Override
public boolean test(Player p) {
if (classes.isEmpty()) return true;
for (RPGClass classe : classes){
PlayerClass mainClass = com.sucy.skill.SkillAPI.getPlayerData(p).getMainClass();
for (FabledClass classe : classes) {
PlayerClass mainClass = Fabled.getData(p).getMainClass();
if (mainClass != null && mainClass.getData() == classe) return true;
}
return false;
}

@Override
public String getDefaultDescription(Player p) {
return Lang.RDClass.quickFormat("classes", String.join(" " + Lang.Or.toString() + " ",
(Iterable<String>) () -> classes.stream().map(RPGClass::getName).iterator()));
(Iterable<String>) () -> classes.stream().map(FabledClass::getName).iterator()));
}

@Override
protected void addLore(LoreBuilder loreBuilder) {
super.addLore(loreBuilder);
loreBuilder.addDescription(classes.size() + " classes");
}

@Override
public void itemClick(QuestObjectClickEvent event) {
new ListGUI<RPGClass>(Lang.INVENTORY_CLASSES_REQUIRED.toString(), DyeColor.GREEN, classes) {
new ListGUI<FabledClass>(Lang.INVENTORY_CLASSES_REQUIRED.toString(), DyeColor.GREEN, classes) {

@Override
public ItemStack getObjectItemStack(RPGClass object) {
public ItemStack getObjectItemStack(FabledClass object) {
return ItemUtils.loreAdd(object.getIcon(), createLoreBuilder(object).toLoreArray());
}

@Override
public void createObject(Function<RPGClass, ItemStack> callback) {
new PagedGUI<RPGClass>(Lang.INVENTORY_CLASSES_LIST.toString(), DyeColor.PURPLE, SkillAPI.getClasses()) {

public void createObject(Function<FabledClass, ItemStack> callback) {
new PagedGUI<FabledClass>(Lang.INVENTORY_CLASSES_LIST.toString(), DyeColor.PURPLE,
Fabled.getClasses().values()) {

@Override
public ItemStack getItemStack(RPGClass object) {
public ItemStack getItemStack(FabledClass object) {
return object.getIcon();
}

@Override
public void click(RPGClass existing, ItemStack item, ClickType clickType) {
public void click(FabledClass existing, ItemStack item, ClickType clickType) {
callback.apply(existing);
}
}.open(player);
}

@Override
public void finish(List<RPGClass> objects) {
public void finish(List<FabledClass> objects) {
classes = objects;
event.reopenGUI();
}

}.open(event.getPlayer());
}

@Override
public AbstractRequirement clone() {
return new ClassRequirement(getCustomDescription(), getCustomReason(), new ArrayList<>(classes));
return new FabledClassRequirement(getCustomDescription(), getCustomReason(), new ArrayList<>(classes));
}

@Override
public void save(ConfigurationSection section) {
super.save(section);
if (!classes.isEmpty())
section.set("classes", classes.stream().map(RPGClass::getName).collect(Collectors.toList()));
section.set("classes", classes.stream().map(FabledClass::getName).collect(Collectors.toList()));
}

@Override
public void load(ConfigurationSection section) {
super.load(section);
if (!section.contains("classes")) return;
for (String s : section.getStringList("classes")) {
RPGClass classe = com.sucy.skill.SkillAPI.getClasses().get(s.toLowerCase());
FabledClass classe = Fabled.getClasses().get(s.toLowerCase());
if (classe == null) {
QuestsPlugin.getPlugin().getLoggerExpanded().warning("Class with name " + s + " no longer exists.");
continue;
}
classes.add(classe);
}
}

}
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package fr.skytasul.quests.integrations.skillapi;
package fr.skytasul.quests.integrations.fabled;

import org.bukkit.entity.Player;
import fr.skytasul.quests.api.localization.Lang;
import fr.skytasul.quests.api.requirements.AbstractRequirement;
import fr.skytasul.quests.api.requirements.TargetNumberRequirement;
import fr.skytasul.quests.api.utils.ComparisonMethod;
import org.bukkit.entity.Player;
import studio.magemonkey.fabled.Fabled;

public class SkillAPILevelRequirement extends TargetNumberRequirement {
public SkillAPILevelRequirement() {
public class FabledLevelRequirement extends TargetNumberRequirement {

public FabledLevelRequirement() {
this(null, null, 0, ComparisonMethod.GREATER_OR_EQUAL);
}
public SkillAPILevelRequirement(String customDescription, String customReason, double target,

public FabledLevelRequirement(String customDescription, String customReason, double target,
ComparisonMethod comparison) {
super(customDescription, customReason, target, comparison);
}

@Override
public double getPlayerTarget(Player p) {
return SkillAPI.getLevel(p);
return Fabled.getData(p).getMainClass().getLevel();
}

@Override
protected String getPlaceholderName() {
return "level";
Expand All @@ -31,25 +32,25 @@ protected String getPlaceholderName() {
protected String getDefaultReason(Player player) {
return Lang.REQUIREMENT_LEVEL.format(this);
}

@Override
public Class<? extends Number> numberClass() {
return Integer.class;
}

@Override
public void sendHelpString(Player p) {
Lang.CHOOSE_XP_REQUIRED.send(p);
}

@Override
public String getDefaultDescription(Player p) {
return Lang.RDLevel.format(this);
}

@Override
public AbstractRequirement clone() {
return new SkillAPILevelRequirement(getCustomDescription(), getCustomReason(), target, comparison);
return new FabledLevelRequirement(getCustomDescription(), getCustomReason(), target, comparison);
}

}
Loading

0 comments on commit fed3365

Please sign in to comment.