diff --git a/MMOCore-API/pom.xml b/MMOCore-API/pom.xml
index 713e1a4d..775bd894 100644
--- a/MMOCore-API/pom.xml
+++ b/MMOCore-API/pom.xml
@@ -94,11 +94,6 @@
https://maven.enginehub.org/repo/
-
- papermc
- https://papermc.io/repo/repository/maven-public/
-
-
dmulloy2-repo
https://repo.dmulloy2.net/repository/public/
@@ -121,12 +116,13 @@
-
+
- org.spigotmc
- spigot-1.17.1
- dev
+ io.papermc.paper
+ paper-api
+ 1.20.6-R0.1-SNAPSHOT
provided
+ true
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
index 76a573e7..02474f10 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/block/SkullBlockType.java
@@ -1,13 +1,12 @@
package net.Indyuce.mmocore.api.block;
-import net.Indyuce.mmocore.api.util.MMOCoreUtils;
-import org.bukkit.Location;
-import org.bukkit.block.Block;
-
-import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.api.MMOLineConfig;
-import io.lumine.mythic.lib.version.VersionMaterial;
+import net.Indyuce.mmocore.api.block.BlockInfo.RegeneratingBlock;
+import net.Indyuce.mmocore.api.util.MMOCoreUtils;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.block.Block;
public class SkullBlockType implements BlockType {
private final String value;
@@ -29,7 +28,7 @@ public class SkullBlockType implements BlockType {
@Override
public void place(RegeneratingBlock block) {
Location loc = block.getLocation();
- loc.getBlock().setType(VersionMaterial.PLAYER_HEAD.toMaterial());
+ loc.getBlock().setType(Material.PLAYER_HEAD);
// save skull orientation if replaced block is a player head
if (MMOCoreUtils.isPlayerHead(block.getBlockData().getMaterial()))
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
index 61226b6b..c65c5cc1 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/PlayerData.java
@@ -5,6 +5,7 @@ import io.lumine.mythic.lib.api.player.MMOPlayerData;
import io.lumine.mythic.lib.data.SynchronizedDataHolder;
import io.lumine.mythic.lib.player.cooldown.CooldownMap;
import io.lumine.mythic.lib.util.Closeable;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.SoundEvent;
@@ -819,7 +820,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
MMOCore.plugin.soundManager.getSound(SoundEvent.WARP_CHARGE).playTo(getPlayer(), 1, (float) (.5 + t * 1.5 / warpTime));
final double r = Math.sin((double) t / warpTime * Math.PI);
for (double j = 0; j < Math.PI * 2; j += Math.PI / 4)
- getPlayer().getLocation().getWorld().spawnParticle(Particle.REDSTONE, getPlayer().getLocation().add(Math.cos((double) 5 * t / warpTime + j) * r, (double) 2 * t / warpTime, Math.sin((double) 5 * t / warpTime + j) * r), 1, new Particle.DustOptions(Color.PURPLE, 1.25f));
+ getPlayer().getLocation().getWorld().spawnParticle(VParticle.REDSTONE.get(), getPlayer().getLocation().add(Math.cos((double) 5 * t / warpTime + j) * r, (double) 2 * t / warpTime, Math.sin((double) 5 * t / warpTime + j) * r), 1, new Particle.DustOptions(Color.PURPLE, 1.25f));
}
}.runTaskTimer(MMOCore.plugin, 0, 1);
}
@@ -909,7 +910,7 @@ public class PlayerData extends SynchronizedDataHolder implements OfflinePlayerD
if (isOnline()) {
ConfigMessage.fromKey("level-up").addPlaceholders("level", String.valueOf(level)).send(getPlayer());
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(getPlayer());
- new SmallParticleEffect(getPlayer(), Particle.SPELL_INSTANT);
+ new SmallParticleEffect(getPlayer(), VParticle.INSTANT_EFFECT.get());
}
getStats().updateStats();
}
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
index 318b7eb4..a6e32866 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/player/profess/PlayerClass.java
@@ -13,7 +13,7 @@ import io.lumine.mythic.lib.skill.handler.MythicLibSkillHandler;
import io.lumine.mythic.lib.skill.trigger.TriggerType;
import io.lumine.mythic.lib.util.PostLoadAction;
import io.lumine.mythic.lib.util.PreloadedObject;
-import io.lumine.mythic.lib.version.VersionMaterial;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.player.PlayerData;
import net.Indyuce.mmocore.api.player.profess.event.EventTrigger;
@@ -37,7 +37,6 @@ import net.Indyuce.mmocore.util.ConfigUtils;
import net.md_5.bungee.api.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
-import org.bukkit.Particle;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@@ -103,7 +102,7 @@ public class PlayerClass implements ExperienceObject, PreloadedObject {
name = MythicLib.plugin.parseColors(config.getString("display.name", "INVALID DISPLAY NAME"));
icon = MMOCoreUtils.readIcon(config.getString("display.item", "BARRIER"));
- if (config.contains("display.texture") && icon.getType() == VersionMaterial.PLAYER_HEAD.toMaterial()) {
+ if (config.contains("display.texture") && icon.getType() == Material.PLAYER_HEAD) {
ItemMeta meta = icon.getItemMeta();
UtilityMethods.setTextureValue((SkullMeta) meta, config.getString("display.texture"));
icon.setItemMeta(meta);
@@ -267,7 +266,7 @@ public class PlayerClass implements ExperienceObject, PreloadedObject {
expCurve = ExpCurve.DEFAULT;
expTable = null;
comboMap = null;
- castParticle = new CastingParticle(Particle.SPELL_INSTANT);
+ castParticle = new CastingParticle(VParticle.INSTANT_EFFECT.get());
actionBarFormat = "";
this.icon = new ItemStack(material);
setOption(ClassOption.DISPLAY, false);
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
index a8cd5381..d2156e76 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/api/util/MMOCoreUtils.java
@@ -5,11 +5,10 @@ import com.google.gson.JsonObject;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.hologram.Hologram;
-import io.lumine.mythic.lib.version.VersionMaterial;
+import io.lumine.mythic.lib.version.VEnchantment;
import net.Indyuce.mmocore.MMOCore;
import org.bukkit.*;
import org.bukkit.attribute.Attribute;
-import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@@ -135,7 +134,7 @@ public class MMOCoreUtils {
}
public static boolean isPlayerHead(Material material) {
- return material == VersionMaterial.PLAYER_HEAD.toMaterial() || material == VersionMaterial.PLAYER_WALL_HEAD.toMaterial();
+ return material == Material.PLAYER_HEAD || material == Material.PLAYER_WALL_HEAD;
}
public static ItemStack readIcon(String string) throws IllegalArgumentException {
@@ -284,13 +283,13 @@ public class MMOCoreUtils {
*/
public static void decreaseDurability(Player player, EquipmentSlot slot, int damage) {
- ItemStack item = player.getInventory().getItem(slot);
+ ItemStack item = UtilityMethods.getHandItem(player, slot);
if (item == null || item.getType().getMaxDurability() == 0 || item.getItemMeta().isUnbreakable())
return;
// Check unbreakable, ignore if necessary
final ItemMeta meta = item.getItemMeta();
- final int unbreakingLevel = meta.getEnchantLevel(Enchantment.DURABILITY);
+ final int unbreakingLevel = meta.getEnchantLevel(VEnchantment.UNBREAKING.get());
if (unbreakingLevel > 0 && RANDOM.nextInt(unbreakingLevel + 1) != 0) return;
PlayerItemDamageEvent event = new PlayerItemDamageEvent(player, item, damage);
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
index f38cf5c2..d3e8f7c3 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/experience/PlayerProfessions.java
@@ -4,6 +4,7 @@ import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.UtilityMethods;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.SoundEvent;
@@ -17,7 +18,6 @@ import org.apache.commons.lang.Validate;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Location;
-import org.bukkit.Particle;
import org.bukkit.configuration.ConfigurationSection;
import org.jetbrains.annotations.NotNull;
@@ -219,7 +219,7 @@ public class PlayerProfessions {
if (check) {
Bukkit.getPluginManager().callEvent(new PlayerLevelUpEvent(playerData, profession, oldLevel, level));
- new SmallParticleEffect(playerData.getPlayer(), Particle.SPELL_INSTANT);
+ new SmallParticleEffect(playerData.getPlayer(), VParticle.INSTANT_EFFECT.get());
ConfigMessage.fromKey("profession-level-up").addPlaceholders("level", String.valueOf(level), "profession", profession.getName())
.send(playerData.getPlayer());
MMOCore.plugin.soundManager.getSound(SoundEvent.LEVEL_UP).playTo(playerData.getPlayer());
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
index 8e6fc701..7fd7d7ff 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/gui/PlayerStats.java
@@ -4,7 +4,6 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.api.stat.modifier.StatModifier;
import io.lumine.mythic.lib.manager.StatManager;
-import io.lumine.mythic.lib.version.VersionMaterial;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.player.PlayerData;
@@ -19,16 +18,14 @@ import net.Indyuce.mmocore.gui.api.item.InventoryItem;
import net.Indyuce.mmocore.gui.api.item.Placeholders;
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
import net.Indyuce.mmocore.party.AbstractParty;
-import net.Indyuce.mmocore.player.stats.StatInfo;
import org.apache.commons.lang.Validate;
import org.bukkit.ChatColor;
+import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import org.jetbrains.annotations.Nullable;
-import java.util.Objects;
-
public class PlayerStats extends EditableInventory {
public PlayerStats() {
super("player-stats");
@@ -228,7 +225,7 @@ public class PlayerStats extends EditableInventory {
@Override
public ItemStack display(PlayerStatsInventory inv, int n) {
ItemStack disp = super.display(inv, n);
- if (disp.getType() == VersionMaterial.PLAYER_HEAD.toMaterial()) {
+ if (disp.getType() == Material.PLAYER_HEAD) {
SkullMeta meta = (SkullMeta) disp.getItemMeta();
inv.asyncUpdate(this, n, disp, current -> {
meta.setOwningPlayer(inv.target.getPlayer());
@@ -244,7 +241,7 @@ public class PlayerStats extends EditableInventory {
Placeholders holders = new Placeholders();
int nextLevelExp = inv.target.getLevelUpExperience();
- double ratio = (double) data.getExperience() / (double) nextLevelExp;
+ double ratio = data.getExperience() / (double) nextLevelExp;
StringBuilder bar = new StringBuilder("" + ChatColor.BOLD);
int chars = (int) (ratio * 20);
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
index c53732bf..73977b58 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/ParabolicProjectile.java
@@ -2,6 +2,7 @@ package net.Indyuce.mmocore.loot.chest.particle;
import java.util.function.Consumer;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Color;
import org.bukkit.Location;
@@ -23,7 +24,7 @@ public class ParabolicProjectile extends BukkitRunnable {
// private static final Random random = new Random();
public ParabolicProjectile(Location source, Location target, Color color) {
- this(source, target, Particle.REDSTONE, () -> {
+ this(source, target, VParticle.REDSTONE.get(), () -> {
}, 1, color, 1);
}
@@ -34,7 +35,7 @@ public class ParabolicProjectile extends BukkitRunnable {
public ParabolicProjectile(Location source, Location target, Runnable end, Color color) {
this(source, target, target.clone().subtract(source).toVector().multiply(.1).setY(6).normalize().multiply(.3), end, 1,
- (loc) -> loc.getWorld().spawnParticle(Particle.REDSTONE, loc, 1, new Particle.DustOptions(color, 1f)));
+ (loc) -> loc.getWorld().spawnParticle(VParticle.REDSTONE.get(), loc, 1, new Particle.DustOptions(color, 1f)));
}
public ParabolicProjectile(Location source, Location target, Particle particle) {
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
index 25d4e522..5f294cf9 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/loot/chest/particle/PotionParticles.java
@@ -1,5 +1,6 @@
package net.Indyuce.mmocore.loot.chest.particle;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import org.bukkit.Color;
import org.bukkit.Particle;
@@ -43,6 +44,6 @@ public class PotionParticles extends BukkitRunnable {
return;
}
- potion.getWorld().spawnParticle(Particle.SPELL_MOB, potion.getLocation(), 0, r, g, b);
+ potion.getWorld().spawnParticle(VParticle.ENTITY_EFFECT.get(), potion.getLocation(), 0, r, g, b);
}
}
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/provided/Party.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
index 81a32924..4d24d298 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/party/provided/Party.java
@@ -8,7 +8,6 @@ import net.Indyuce.mmocore.gui.api.PluginInventory;
import net.Indyuce.mmocore.gui.social.party.EditablePartyView;
import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.party.AbstractParty;
-import org.bukkit.craftbukkit.libs.org.apache.commons.lang3.Validate;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
index 49d6329f..d1248f1c 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Ambers.java
@@ -11,6 +11,7 @@ import io.lumine.mythic.lib.skill.result.def.SimpleSkillResult;
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
import io.lumine.mythic.lib.util.EntityLocationType;
import io.lumine.mythic.lib.util.ParabolicProjectile;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.api.event.PlayerResourceUpdateEvent;
import net.Indyuce.mmocore.api.player.PlayerData;
import org.bukkit.Color;
@@ -69,7 +70,7 @@ public class Ambers extends SkillHandler implements Listener
this.percent = percent / 100;
final Amber amber = this;
- new ParabolicProjectile(source, loc, Particle.REDSTONE, () -> amber.runTaskTimer(MythicLib.plugin, 0, 3), 1, Color.ORANGE, 1.3f);
+ new ParabolicProjectile(source, loc, VParticle.REDSTONE.get(), () -> amber.runTaskTimer(MythicLib.plugin, 0, 3), 1, Color.ORANGE, 1.3f);
}
@Override
@@ -94,8 +95,8 @@ public class Ambers extends SkillHandler implements Listener
}
for (int j = 0; j < 5; j++)
- loc.getWorld().spawnParticle(Particle.SPELL_MOB, loc, 0, 1, 0.647, 0, 1);
- loc.getWorld().spawnParticle(Particle.REDSTONE, loc, 1, new Particle.DustOptions(Color.ORANGE, 1.3f));
+ loc.getWorld().spawnParticle(VParticle.ENTITY_EFFECT.get(), loc, 0, 1, 0.647, 0, 1);
+ loc.getWorld().spawnParticle(VParticle.REDSTONE.get(), loc, 1, new Particle.DustOptions(Color.ORANGE, 1.3f));
}
}
}
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
index b1347bf9..8e303156 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/skill/list/Sneaky_Picky.java
@@ -8,8 +8,8 @@ import io.lumine.mythic.lib.skill.SkillMetadata;
import io.lumine.mythic.lib.skill.handler.SkillHandler;
import io.lumine.mythic.lib.skill.result.def.SimpleSkillResult;
import io.lumine.mythic.lib.skill.trigger.TriggerMetadata;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.api.player.PlayerData;
-import org.bukkit.Particle;
import org.bukkit.Sound;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
@@ -31,7 +31,7 @@ public class Sneaky_Picky extends SkillHandler implements Lis
public void whenCast(SimpleSkillResult result, SkillMetadata skillMeta) {
LivingEntity target = (LivingEntity) skillMeta.getTargetEntity();
skillMeta.getAttack().getDamage().multiplicativeModifier(1 + skillMeta.getParameter("extra") / 100, DamageType.WEAPON);
- target.getWorld().spawnParticle(Particle.SMOKE_NORMAL, target.getLocation().add(0, target.getHeight() / 2, 0), 64, 0, 0, 0, .05);
+ target.getWorld().spawnParticle(VParticle.SMOKE.get(), target.getLocation().add(0, target.getHeight() / 2, 0), 64, 0, 0, 0, .05);
target.getWorld().playSound(target.getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1, 2);
}
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
index 78b54143..4fe4e35a 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/util/item/AbstractItemBuilder.java
@@ -4,8 +4,8 @@ import io.lumine.mythic.lib.MythicLib;
import io.lumine.mythic.lib.UtilityMethods;
import io.lumine.mythic.lib.api.item.ItemTag;
import io.lumine.mythic.lib.api.item.NBTItem;
-import io.lumine.mythic.lib.version.VersionMaterial;
import net.Indyuce.mmocore.MMOCore;
+import org.bukkit.Material;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
@@ -41,7 +41,7 @@ public abstract class AbstractItemBuilder {
ItemStack item = new ItemStack(configItem.getMaterial());
ItemMeta meta = item.getItemMeta();
- if (item.getType() == VersionMaterial.PLAYER_HEAD.toMaterial() && configItem.getTexture() != null)
+ if (item.getType() == Material.PLAYER_HEAD && configItem.getTexture() != null)
UtilityMethods.setTextureValue((SkullMeta) meta, configItem.getTexture());
meta.addItemFlags(ItemFlag.values());
diff --git a/MMOCore-API/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java b/MMOCore-API/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
index 9fff585f..1729d4c2 100644
--- a/MMOCore-API/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
+++ b/MMOCore-API/src/main/java/net/Indyuce/mmocore/waypoint/Waypoint.java
@@ -13,9 +13,9 @@ import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.craftbukkit.libs.jline.internal.Nullable;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.*;
import java.util.logging.Level;
diff --git a/MMOCore-Dist/pom.xml b/MMOCore-Dist/pom.xml
index 9fd5facc..e3d42007 100644
--- a/MMOCore-Dist/pom.xml
+++ b/MMOCore-Dist/pom.xml
@@ -71,12 +71,13 @@
true
-
+
- org.spigotmc
- spigot-api
- 1.19.3-R0.1-SNAPSHOT
+ io.papermc.paper
+ paper-api
+ 1.20.6-R0.1-SNAPSHOT
provided
+ true
diff --git a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
index 5772a44e..fe5c1208 100644
--- a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
+++ b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/WaypointsListener.java
@@ -1,6 +1,7 @@
package net.Indyuce.mmocore.listener;
import io.lumine.mythic.lib.api.item.NBTItem;
+import io.lumine.mythic.lib.version.VParticle;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.SoundEvent;
@@ -9,7 +10,6 @@ import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
import net.Indyuce.mmocore.manager.InventoryManager;
import net.Indyuce.mmocore.waypoint.Waypoint;
import net.Indyuce.mmocore.waypoint.WaypointOption;
-import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -35,7 +35,7 @@ public class WaypointsListener implements Listener {
PlayerData data = PlayerData.get(player);
if (waypoint.hasOption(WaypointOption.UNLOCKABLE) && !data.hasWaypoint(waypoint)) {
data.unlockWaypoint(waypoint);
- new SmallParticleEffect(player, Particle.SPELL_WITCH);
+ new SmallParticleEffect(player, VParticle.WITCH.get());
ConfigMessage.fromKey("new-waypoint", "waypoint", waypoint.getName()).send(player);
MMOCore.plugin.soundManager.getSound(SoundEvent.WARP_UNLOCK).playTo(player);
return;
diff --git a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
index f1f71686..1f1b92ee 100644
--- a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
+++ b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/FishingListener.java
@@ -1,6 +1,7 @@
package net.Indyuce.mmocore.listener.profession;
-import io.lumine.mythic.lib.version.VersionSound;
+import io.lumine.mythic.lib.version.VParticle;
+import io.lumine.mythic.lib.version.VSound;
import net.Indyuce.mmocore.MMOCore;
import net.Indyuce.mmocore.api.ConfigMessage;
import net.Indyuce.mmocore.api.event.CustomPlayerFishEvent;
@@ -141,7 +142,7 @@ public class FishingListener implements Listener {
event.setCancelled(true);
if (isTimedOut()) {
close();
- hook.getWorld().spawnParticle(Particle.SMOKE_NORMAL, hook.getLocation(), 16, 0, 0, 0, .1);
+ hook.getWorld().spawnParticle(VParticle.SMOKE.get(), hook.getLocation(), 16, 0, 0, 0, .1);
return;
}
@@ -164,14 +165,14 @@ public class FishingListener implements Listener {
// Critical fishing failure
if (!isCriticalFish() && RANDOM.nextDouble() < PlayerData.get(player).getStats().getStat("CRITICAL_FISHING_FAILURE_CHANCE") / 100) {
player.setVelocity(hook.getLocation().subtract(player.getLocation()).toVector().setY(0).multiply(3).setY(.5));
- hook.getWorld().spawnParticle(Particle.SMOKE_NORMAL, location, 24, 0, 0, 0, .08);
+ hook.getWorld().spawnParticle(VParticle.SMOKE.get(), location, 24, 0, 0, 0, .08);
return;
}
// Find looted item
ItemStack collect = caught.collect(new LootBuilder(playerData, 0));
if (collect == null) {
- hook.getWorld().spawnParticle(Particle.SMOKE_NORMAL, location, 24, 0, 0, 0, .08);
+ hook.getWorld().spawnParticle(VParticle.SMOKE.get(), location, 24, 0, 0, 0, .08);
return;
}
@@ -193,9 +194,9 @@ public class FishingListener implements Listener {
vec.setX(vec.getX() * .08);
vec.setZ(vec.getZ() * .08);
item.setVelocity(vec);
- player.getWorld().playSound(player.getLocation(), VersionSound.BLOCK_NOTE_BLOCK_HAT.toSound(), 1, 0);
+ player.getWorld().playSound(player.getLocation(), VSound.BLOCK_NOTE_BLOCK_HAT.get(), 1, 0);
for (int j = 0; j < 8; j++)
- location.getWorld().spawnParticle(Particle.FIREWORKS_SPARK, location, 0, 4 * (RANDOM.nextDouble() - .5), RANDOM.nextDouble() + 1, 4 * (RANDOM.nextDouble() - .5), .08);
+ location.getWorld().spawnParticle(VParticle.FIREWORK.get(), location, 0, 4 * (RANDOM.nextDouble() - .5), RANDOM.nextDouble() + 1, 4 * (RANDOM.nextDouble() - .5), .08);
player.giveExp(vanillaExpDropped);
if (MMOCore.plugin.fishingManager.hasLinkedProfession())
playerData.getCollectionSkills().giveExperience(MMOCore.plugin.fishingManager.getLinkedProfession(), experienceDropped, EXPSource.FISHING, location, true);
diff --git a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
index 69868d57..7cc6e58d 100644
--- a/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
+++ b/MMOCore-Dist/src/main/java/net/Indyuce/mmocore/listener/profession/PlayerCollectStats.java
@@ -1,22 +1,22 @@
package net.Indyuce.mmocore.listener.profession;
import io.lumine.mythic.lib.MythicLib;
+import io.lumine.mythic.lib.UtilityMethods;
+import io.lumine.mythic.lib.version.VParticle;
+import io.lumine.mythic.lib.version.VPotionEffectType;
import net.Indyuce.mmocore.api.event.CustomBlockMineEvent;
import net.Indyuce.mmocore.loot.chest.particle.SmallParticleEffect;
import org.bukkit.Location;
-import org.bukkit.Particle;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
import java.util.Random;
public class PlayerCollectStats implements Listener {
- private static final Random random = new Random();
+ private static final Random RANDOM = new Random();
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void a(CustomBlockMineEvent event) {
@@ -24,15 +24,14 @@ public class PlayerCollectStats implements Listener {
// Give haste if right enchant
double h = event.getData().getStats().getStat("GATHERING_HASTE");
- if (h > 0 && random.nextDouble() < h * .045) {
- new SmallParticleEffect(player, Particle.SPELL_INSTANT);
- player.removePotionEffect(PotionEffectType.FAST_DIGGING);
- player.addPotionEffect(new PotionEffect(PotionEffectType.FAST_DIGGING, (int) (10 * h), (int) (1 + h / 7)));
+ if (h > 0 && RANDOM.nextDouble() < h * .045) {
+ new SmallParticleEffect(player, VParticle.INSTANT_EFFECT.get());
+ UtilityMethods.forcePotionEffect(player, VPotionEffectType.HASTE.get(), h / 2, (int) (1 + h / 7));
}
// Drop more items if fortune enchant
double f = event.getData().getStats().getStat("FORTUNE");
- if (f > 0 && random.nextDouble() < f * .045) {
+ if (f > 0 && RANDOM.nextDouble() < f * .045) {
int a = (int) (1.5 * Math.sqrt(f / 1.1));
for (ItemStack item : event.getDrops())
item.setAmount(item.getAmount() + a);
@@ -42,10 +41,10 @@ public class PlayerCollectStats implements Listener {
// Drop more CROP items
double l = event.getData().getStats().getStat("LUCK_OF_THE_FIELD");
- if (l > 0 && random.nextDouble() < l * .045) {
+ if (l > 0 && RANDOM.nextDouble() < l * .045) {
int a = (int) (1.5 * Math.sqrt(l / 1.1));
Location loc = event.getBlock().getLocation().add(.5, .1, .5);
- loc.getWorld().spawnParticle(Particle.VILLAGER_HAPPY, loc.clone().add(0, .2, 0), 10, .3, .2, .3, 0);
+ loc.getWorld().spawnParticle(VParticle.HAPPY_VILLAGER.get(), loc.clone().add(0, .2, 0), 10, .3, .2, .3, 0);
for (ItemStack item : event.getDrops())
item.setAmount(item.getAmount() + a);
}
diff --git a/MMOCore-Dist/src/main/resources/plugin.yml b/MMOCore-Dist/src/main/resources/plugin.yml
index 6220f536..e44d2d4d 100644
--- a/MMOCore-Dist/src/main/resources/plugin.yml
+++ b/MMOCore-Dist/src/main/resources/plugin.yml
@@ -6,7 +6,8 @@ description: ${project.description}
loadbefore: [ MMOItems,MythicDungeons ]
depend: [ MythicLib ]
softdepend: [ Vault,MythicMobs,MMOProfiles,PlaceholderAPI,Residence,Citizens,ProtocolLib,OBTeam ]
-api-version: 1.13
+api-version: 1.14
+website: www.phoenixdevt.fr
commands:
mmocore:
description: Main command.
diff --git a/pom.xml b/pom.xml
index 26d1f2c1..86d3c95d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -42,7 +42,7 @@
classes when building the same version again -->
maven-clean-plugin
- 3.1.0
+ 3.3.2
auto-clean
@@ -63,6 +63,11 @@
https://nexus.phoenixdevt.fr/repository/maven-public/
+
+ papermc
+ https://papermc.io/repo/repository/maven-public/
+
+
spigot-repo
https://hub.spigotmc.org/nexus/content/repositories/snapshots/