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/