Attribute modifiers available in ML

This commit is contained in:
Indyuce 2022-05-24 13:33:37 +02:00
parent 2c0f8094c0
commit 28be26b9c8
3 changed files with 10 additions and 9 deletions

View File

@ -8,6 +8,7 @@ import io.lumine.mythic.utils.plugin.LuminePlugin;
import net.Indyuce.mmocore.api.ConfigFile;
import net.Indyuce.mmocore.api.PlayerActionBar;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.attribute.AttributeModifier;
import net.Indyuce.mmocore.api.player.profess.resource.PlayerResource;
import net.Indyuce.mmocore.api.player.stats.StatType;
import net.Indyuce.mmocore.api.util.debug.DebugMode;
@ -31,7 +32,6 @@ import net.Indyuce.mmocore.listener.event.PlayerPressKeyListener;
import net.Indyuce.mmocore.listener.option.*;
import net.Indyuce.mmocore.listener.profession.FishingListener;
import net.Indyuce.mmocore.listener.profession.PlayerCollectStats;
import net.Indyuce.mmocore.loot.chest.LootChest;
import net.Indyuce.mmocore.manager.*;
import net.Indyuce.mmocore.manager.data.DataProvider;
import net.Indyuce.mmocore.manager.data.mysql.MySQLDataProvider;
@ -55,7 +55,6 @@ import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Iterator;
import java.util.logging.Level;
public class MMOCore extends LuminePlugin {
@ -116,8 +115,9 @@ public class MMOCore extends LuminePlugin {
return;
}
// Register MMOCore-specific target restrictions
// Register MMOCore-specific objects
MythicLib.plugin.getEntities().registerRestriction(new PartyMemberTargetRestriction());
MythicLib.plugin.getModifiers().registerModifierType("attribute", configObject -> new AttributeModifier(configObject));
// Register extra objective, drop items...
if (Bukkit.getPluginManager().getPlugin("WorldGuard") != null)

View File

@ -12,6 +12,7 @@ import net.Indyuce.mmocore.api.player.PlayerData;
import org.apache.commons.lang.Validate;
import java.text.DecimalFormat;
import java.util.Objects;
public class AttributeModifier extends PlayerModifier {
private final String attribute;
@ -74,9 +75,10 @@ public class AttributeModifier extends PlayerModifier {
public AttributeModifier(ConfigObject object) {
super(object.getString("key"), EquipmentSlot.OTHER, ModifierSource.OTHER);
String str = Objects.requireNonNull(object.getString("value"));
type = str.toCharArray()[str.length() - 1] == '%' ? ModifierType.RELATIVE : ModifierType.FLAT;
value = Double.parseDouble(type == ModifierType.RELATIVE ? str.substring(0, str.length() - 1) : str);
this.attribute = object.getString("attribute");
this.value = object.getDouble("value");
type = object.getBoolean("multiplicative", false) ? ModifierType.RELATIVE : ModifierType.FLAT;
}
public String getAttribute() {

View File

@ -7,11 +7,10 @@ import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable;
/**
* General implementation for professions and classes.
* General implementation for professions, classes and attributes.
* <p>
* An experience object is a type of object that can
* level up. It has an experience curve and table and
* can receive EXP
* An experience object is a type of object that can level up.
* It has an experience curve and table and can receive EXP
*
* @author jules
*/