Support for latest ML

This commit is contained in:
Jules 2022-02-06 23:48:54 +01:00
parent 0b27f8ca55
commit 7911ec9d65
9 changed files with 37 additions and 27 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>net.Indyuce</groupId>
<artifactId>MMOItems</artifactId>
<version>6.7.1-SNAPSHOT</version>
<version>6.7-SNAPSHOT</version>
<name>MMOItems</name>
<description>A great item solution for your RPG server!!</description>
@ -141,7 +141,7 @@
<dependency>
<groupId>io.lumine</groupId>
<artifactId>MythicLib-dist</artifactId>
<version>1.3-R25-SNAPSHOT</version>
<version>1.3-R27-SNAPSHOT</version>
<scope>provided</scope>
</dependency>

View File

@ -96,7 +96,7 @@ public class MMOItems extends LuminePlugin {
private VaultSupport vaultSupport;
private RPGHandler rpgPlugin;
private static final int MYTHICLIB_COMPATIBILITY_INDEX = 6;
private static final int MYTHICLIB_COMPATIBILITY_INDEX = 7;
public MMOItems() { plugin = this; }

View File

@ -239,7 +239,7 @@ public class PlayerData {
if (equipped.getSlot() != EquipmentSlot.OFF_HAND || !MMOItems.plugin.getConfig().getBoolean("disable-abilities-in-offhand"))
for (AbilityData abilityData : ((AbilityListData) item.getData(ItemStats.ABILITIES)).getAbilities()) {
ModifierSource modSource = equipped.getItem().getType() == null ? ModifierSource.OTHER : equipped.getItem().getType().getItemSet().getModifierSource();
mmoData.getPassiveSkillMap().addModifier(new PassiveSkill("MMOItemsItem", abilityData.getTriggerType(), abilityData, equipped.getSlot(), modSource));
mmoData.getPassiveSkillMap().addModifier(new PassiveSkill("MMOItemsItem", abilityData, equipped.getSlot(), modSource));
}
/*
@ -280,7 +280,7 @@ public class PlayerData {
if (hasSetBonuses()) {
for (AbilityData ability : setBonuses.getAbilities())
mmoData.getPassiveSkillMap().addModifier(new PassiveSkill("MMOItemsItem", ability.getTriggerType(), ability));
mmoData.getPassiveSkillMap().addModifier(new PassiveSkill("MMOItemsItem", ability, EquipmentSlot.OTHER, ModifierSource.OTHER));
for (ParticleData particle : setBonuses.getParticles())
itemParticles.add(particle.start(this));
for (PotionEffect effect : setBonuses.getPotionEffects())

View File

@ -144,7 +144,7 @@ public abstract class RPGPlayer {
if (playerData.getMMOPlayerData().getCooldownMap().isOnCooldown(data)) {
CooldownInfo info = playerData.getMMOPlayerData().getCooldownMap().getInfo(data);
if (!data.getTriggerType().isSilent()) {
if (!data.getTrigger().isSilent()) {
StringBuilder progressBar = new StringBuilder(ChatColor.YELLOW + "");
double progress = (double) (info.getInitialCooldown() - info.getRemaining()) / info.getInitialCooldown() * 10;
String barChar = MMOItems.plugin.getConfig().getString("cooldown-progress-bar-char");

View File

@ -1,5 +1,6 @@
package net.Indyuce.mmoitems.gui.edition;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.skill.handler.SkillHandler;
import io.lumine.mythic.lib.skill.trigger.TriggerType;
import net.Indyuce.mmoitems.ItemStats;
@ -70,7 +71,12 @@ public class AbilityEdition extends EditionInventory {
String castModeConfigString = getEditedSection().getString("ability." + configKey + ".mode");
String castModeFormat = castModeConfigString == null ? ""
: castModeConfigString.toUpperCase().replace(" ", "_").replace("-", "_").replaceAll("[^A-Z0-9_]", "");
TriggerType castMode = TriggerType.safeValueOf(castModeFormat);
TriggerType castMode;
try {
castMode = TriggerType.valueOf(castModeFormat);
} catch (RuntimeException exception) {
castMode = null;
}
ItemStack castModeItem = new ItemStack(Material.ARMOR_STAND);
ItemMeta castModeItemMeta = castModeItem.getItemMeta();

View File

@ -3,6 +3,7 @@ package net.Indyuce.mmoitems.gui.edition;
import java.util.ArrayList;
import java.util.List;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.skill.trigger.TriggerType;
import net.Indyuce.mmoitems.skill.RegisteredSkill;
import org.bukkit.Bukkit;
@ -45,7 +46,12 @@ public class AbilityListEdition extends EditionInventory {
? MMOItems.plugin.getSkills().getSkill(abilityFormat)
: null;
TriggerType castMode = TriggerType.safeValueOf(getEditedSection().getString("ability." + key + ".mode"));
TriggerType castMode;
try {
castMode = TriggerType.valueOf(UtilityMethods.enumName(getEditedSection().getString("ability." + key + ".mode")));
} catch (RuntimeException exception) {
castMode = null;
}
ItemStack abilityItem = new ItemStack(Material.BLAZE_POWDER);
ItemMeta abilityItemMeta = abilityItem.getItemMeta();

View File

@ -63,7 +63,7 @@ public class SkillManager {
*
* @return If a skill of this name is loaded by the plugin.
*/
public boolean hasSkill(@Nullable String id) { return skills.get(id) != null; }
public boolean hasSkill(@Nullable String id) { return skills.containsKey(id); }
/**
* @return Collection of all registered skills. It has the same number

View File

@ -65,7 +65,7 @@ public class Abilities extends ItemStat {
String modifierFormat = ItemStat.translate("ability-modifier"), abilityFormat = ItemStat.translate("ability-format");
((AbilityListData) data).getAbilities().forEach(ability -> {
abilityLore.add(abilityFormat.replace("#c", MMOItems.plugin.getLanguage().getCastingModeName(ability.getTriggerType())).replace("#a", ability.getAbility().getName()));
abilityLore.add(abilityFormat.replace("#c", MMOItems.plugin.getLanguage().getCastingModeName(ability.getTrigger())).replace("#a", ability.getAbility().getName()));
for (String modifier : ability.getModifiers()) {
item.getLore().registerPlaceholder("ability_" + ability.getAbility().getHandler().getId().toLowerCase() + "_" + modifier,

View File

@ -1,7 +1,7 @@
package net.Indyuce.mmoitems.stat.data;
import com.google.gson.JsonObject;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.player.cooldown.CooldownInfo;
import io.lumine.mythic.lib.skill.Skill;
import io.lumine.mythic.lib.skill.SkillMetadata;
@ -28,43 +28,41 @@ import java.util.Set;
public class AbilityData extends Skill {
private final RegisteredSkill ability;
@NotNull private final TriggerType triggerType;
@NotNull private final Map<String, Double> modifiers = new HashMap<>();
public AbilityData(JsonObject object) {
public AbilityData(@NotNull JsonObject object) {
super(MMOUtils.backwardsCompatibleTriggerType(object.get("CastMode").getAsString()));
ability = MMOItems.plugin.getSkills().getSkill(object.get("Id").getAsString());
triggerType = MMOUtils.backwardsCompatibleTriggerType(object.get("CastMode").getAsString());
JsonObject modifiers = object.getAsJsonObject("Modifiers");
modifiers.entrySet().forEach(entry -> setModifier(entry.getKey(), entry.getValue().getAsDouble()));
}
public AbilityData(ConfigurationSection config) {
Validate.isTrue(config.contains("type") && config.contains("mode"), "Ability is missing type or mode");
public AbilityData(@NotNull ConfigurationSection config) {
super(MMOUtils.backwardsCompatibleTriggerType(UtilityMethods.enumName(Objects.requireNonNull(config.getString("mode"), "Ability is missing mode"))));
String abilityFormat = config.getString("type").toUpperCase().replace("-", "_").replace(" ", "_");
Validate.isTrue(config.contains("type"), "Ability is missing type");
String abilityFormat = UtilityMethods.enumName(config.getString("type"));
Validate.isTrue(MMOItems.plugin.getSkills().hasSkill(abilityFormat), "Could not find ability called '" + abilityFormat + "'");
ability = MMOItems.plugin.getSkills().getSkill(abilityFormat);
String modeFormat = config.getString("mode").toUpperCase().replace("-", "_").replace(" ", "_");
triggerType = MMOUtils.backwardsCompatibleTriggerType(modeFormat);
for (String key : config.getKeys(false))
if (!key.equalsIgnoreCase("mode") && !key.equalsIgnoreCase("type") && ability.getHandler().getModifiers().contains(key))
modifiers.put(key, config.getDouble(key));
}
public AbilityData(RegisteredSkill ability, TriggerType triggerType) {
super(triggerType);
this.ability = ability;
this.triggerType = triggerType;
}
public RegisteredSkill getAbility() {
return ability;
}
@NotNull public TriggerType getTriggerType() { return triggerType; }
public Set<String> getModifiers() {
return modifiers.keySet();
}
@ -88,7 +86,7 @@ public class AbilityData extends Skill {
// Check for cooldown
if (meta.getCaster().getData().getCooldownMap().isOnCooldown(this)) {
CooldownInfo info = playerData.getMMOPlayerData().getCooldownMap().getInfo(this);
if (!triggerType.isSilent()) {
if (!getTrigger().isSilent()) {
StringBuilder progressBar = new StringBuilder(ChatColor.YELLOW + "");
double progress = (double) (info.getInitialCooldown() - info.getRemaining()) / info.getInitialCooldown() * 10;
String barChar = MMOItems.plugin.getConfig().getString("cooldown-progress-bar-char");
@ -155,7 +153,7 @@ public class AbilityData extends Skill {
public JsonObject toJson() {
JsonObject object = new JsonObject();
object.addProperty("Id", ability.getHandler().getId());
object.addProperty("CastMode", triggerType.name());
object.addProperty("CastMode", getTrigger().name());
JsonObject modifiers = new JsonObject();
this.modifiers.keySet().forEach(modifier -> modifiers.addProperty(modifier, getModifier(modifier)));
@ -169,11 +167,11 @@ public class AbilityData extends Skill {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AbilityData that = (AbilityData) o;
return ability.equals(that.ability) && triggerType == that.triggerType && modifiers.equals(that.modifiers);
return ability.equals(that.ability) && getTrigger().equals(that.getTrigger()) && modifiers.equals(that.modifiers);
}
@Override
public int hashCode() {
return Objects.hash(ability, triggerType, modifiers);
return Objects.hash(ability, modifiers);
}
}