mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2024-12-22 04:37:42 +01:00
Compatible with MythicLib Refactor Undo.
Please update MythicLib too. Should fix plugin compatibilities like BetonQuest and GooP.
This commit is contained in:
parent
2684945a2e
commit
4935b46ba6
@ -2,8 +2,7 @@ package net.Indyuce.mmoitems.api;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.util.ui.SilentNumbers;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.item.util.identify.UnidentifiedItem;
|
||||
import net.Indyuce.mmoitems.manager.TypeManager;
|
||||
|
@ -26,7 +26,7 @@ public class Crossbow extends UntargetedWeapon {
|
||||
if (getPlayer().getGameMode() != GameMode.CREATIVE && !getPlayer().getInventory().containsAtLeast(new ItemStack(Material.ARROW), 1))
|
||||
return;
|
||||
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.player.EquipmentSlot.fromBukkit(slot));
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.api.player.EquipmentSlot.fromBukkit(slot));
|
||||
if (!applyWeaponCosts(1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed")),
|
||||
CooldownType.ATTACK))
|
||||
return;
|
||||
|
@ -37,7 +37,7 @@ public class Lute extends UntargetedWeapon {
|
||||
@Override
|
||||
public void untargetedAttack(EquipmentSlot slot) {
|
||||
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.player.EquipmentSlot.fromBukkit(slot));
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.api.player.EquipmentSlot.fromBukkit(slot));
|
||||
double attackSpeed = 1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed"));
|
||||
if (!applyWeaponCosts(attackSpeed, CooldownType.ATTACK))
|
||||
return;
|
||||
|
@ -28,7 +28,7 @@ public class Musket extends UntargetedWeapon {
|
||||
|
||||
@Override
|
||||
public void untargetedAttack(EquipmentSlot slot) {
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.player.EquipmentSlot.fromBukkit(slot));
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.api.player.EquipmentSlot.fromBukkit(slot));
|
||||
|
||||
if (!applyWeaponCosts(1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed")),
|
||||
CooldownType.ATTACK))
|
||||
|
@ -33,7 +33,7 @@ public class Staff extends UntargetedWeapon {
|
||||
@Override
|
||||
public void untargetedAttack(EquipmentSlot slot) {
|
||||
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.player.EquipmentSlot.fromBukkit(slot));
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.api.player.EquipmentSlot.fromBukkit(slot));
|
||||
if (!applyWeaponCosts(1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed")),
|
||||
CooldownType.ATTACK))
|
||||
return;
|
||||
|
@ -29,7 +29,7 @@ public class Whip extends UntargetedWeapon {
|
||||
@Override
|
||||
public void untargetedAttack(EquipmentSlot slot) {
|
||||
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.player.EquipmentSlot.fromBukkit(slot));
|
||||
StatMap.CachedStatMap stats = getPlayerData().getStats().newTemporary(io.lumine.mythic.lib.api.player.EquipmentSlot.fromBukkit(slot));
|
||||
if (!applyWeaponCosts(1 / getValue(stats.getStat("ATTACK_SPEED"), MMOItems.plugin.getConfig().getDouble("default.attack-speed")),
|
||||
CooldownType.ATTACK))
|
||||
return;
|
||||
|
@ -2,8 +2,8 @@ package net.Indyuce.mmoitems.api.player;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.skill.trigger.PassiveSkill;
|
||||
import net.Indyuce.mmoitems.ItemStats;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmoitems.api.player;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.stat.StatInstance;
|
||||
import io.lumine.mythic.lib.api.stat.StatMap;
|
||||
import io.lumine.mythic.lib.api.stat.modifier.ModifierSource;
|
||||
|
@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.api.player.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.api.Type;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmoitems.api.player.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.api.item.mmoitem.VolatileMMOItem;
|
||||
|
||||
public class EquippedPlayerItem {
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmoitems.api.player.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -1,13 +1,12 @@
|
||||
package net.Indyuce.mmoitems.command.mmoitems;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
import io.lumine.mythic.lib.commands.mmolib.api.CommandTreeNode;
|
||||
import io.lumine.mythic.lib.commands.mmolib.api.Parameter;
|
||||
import io.lumine.mythic.lib.skill.trigger.TriggerType;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.ability.Ability;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import net.Indyuce.mmoitems.api.ItemAttackMetadata;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.Indyuce.mmoitems.stat.data.AbilityData;
|
||||
|
@ -3,7 +3,7 @@ package net.Indyuce.mmoitems.comp;
|
||||
import com.evill4mer.RealDualWield.Api.PlayerDamageEntityWithOffhandEvent;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.stat.StatMap;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageType;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmoitems.comp.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.api.player.inventory.EquippedItem;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.comp.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.Type;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.Indyuce.mmoitems.comp.inventory;
|
||||
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.api.player.PlayerData;
|
||||
import net.Indyuce.mmoitems.api.player.inventory.EquippedItem;
|
||||
|
@ -3,7 +3,7 @@ package net.Indyuce.mmoitems.comp.parse.placeholders;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.api.math.EvaluatedFormula;
|
||||
import io.lumine.mythic.lib.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.util.AltChar;
|
||||
import io.lumine.mythic.lib.player.cooldown.CooldownInfo;
|
||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||
|
@ -7,8 +7,8 @@ import com.herocraftonline.heroes.api.events.HeroChangeLevelEvent;
|
||||
import com.herocraftonline.heroes.characters.Hero;
|
||||
import com.herocraftonline.heroes.characters.skill.SkillType;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.damage.AttackHandler;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
|
@ -5,8 +5,8 @@ import com.sucy.skill.api.event.PlayerLevelUpEvent;
|
||||
import com.sucy.skill.api.event.SkillDamageEvent;
|
||||
import com.sucy.skill.api.player.PlayerData;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.damage.AttackHandler;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
|
@ -5,8 +5,8 @@ import com.sucy.skill.api.event.PlayerLevelUpEvent;
|
||||
import com.sucy.skill.api.event.SkillDamageEvent;
|
||||
import com.sucy.skill.api.player.PlayerData;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.MMOPlayerData;
|
||||
import io.lumine.mythic.lib.damage.AttackHandler;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
|
@ -3,15 +3,11 @@ package net.Indyuce.mmoitems.listener;
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.event.PlayerAttackEvent;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.stat.StatMap;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.comp.target.InteractionType;
|
||||
import io.lumine.mythic.lib.damage.DamageMetadata;
|
||||
import io.lumine.mythic.lib.damage.DamageType;
|
||||
import io.lumine.mythic.lib.damage.MeleeAttackMetadata;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.MMOUtils;
|
||||
import io.lumine.mythic.lib.damage.AttackMetadata;
|
||||
import net.Indyuce.mmoitems.api.ItemAttackMetadata;
|
||||
import net.Indyuce.mmoitems.api.Type;
|
||||
import net.Indyuce.mmoitems.api.TypeSet;
|
||||
@ -34,7 +30,6 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockBreakEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||
import org.bukkit.event.inventory.InventoryAction;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
@ -58,7 +53,7 @@ public class ItemUse implements Listener {
|
||||
if (!item.hasType())
|
||||
return;
|
||||
|
||||
/**
|
||||
/*
|
||||
* Some consumables must be fully eaten through the vanilla eating
|
||||
* animation and are handled there {@link #handleVanillaEatenConsumables(PlayerItemConsumeEvent)}
|
||||
*/
|
||||
|
@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.listener;
|
||||
|
||||
import io.lumine.mythic.lib.MythicLib;
|
||||
import io.lumine.mythic.lib.api.item.NBTItem;
|
||||
import io.lumine.mythic.lib.player.EquipmentSlot;
|
||||
import io.lumine.mythic.lib.api.player.EquipmentSlot;
|
||||
import io.lumine.mythic.utils.Schedulers;
|
||||
import io.lumine.mythic.utils.events.extra.ArmorEquipEvent;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
|
@ -14,9 +14,10 @@ import net.Indyuce.mmoitems.stat.data.random.RandomStatData;
|
||||
import net.Indyuce.mmoitems.stat.data.type.Mergeable;
|
||||
import net.Indyuce.mmoitems.stat.data.type.StatData;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class StringListData implements StatData, RandomStatData, Mergeable {
|
||||
@NotNull private final List<String> list;
|
||||
@NotNull private List<String> list;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
@ -76,4 +77,34 @@ public class StringListData implements StatData, RandomStatData, Mergeable {
|
||||
|
||||
return b.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param str Entry to remove
|
||||
*
|
||||
* @return If the value was actually removed. If it wasn't there
|
||||
* in the first place, this will return false.
|
||||
*/
|
||||
public boolean remove(@Nullable String str) {
|
||||
|
||||
if (!list.contains(str)) { return false; }
|
||||
|
||||
if (removeGuarantee) {
|
||||
|
||||
// Remove that sh
|
||||
return list.remove(str);
|
||||
} else {
|
||||
|
||||
// OK
|
||||
try {
|
||||
return list.remove(str);
|
||||
|
||||
} catch (UnsupportedOperationException ignored) {
|
||||
|
||||
list = new ArrayList<>(list);
|
||||
removeGuarantee = true;
|
||||
return list.remove(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean removeGuarantee = false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user