forked from Upstream/mmocore
Now built against Paper 1.20.6
This commit is contained in:
parent
151eebcde4
commit
e17a8f903a
@ -94,11 +94,6 @@
|
||||
<url>https://maven.enginehub.org/repo/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>papermc</id>
|
||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>dmulloy2-repo</id>
|
||||
<url>https://repo.dmulloy2.net/repository/public/</url>
|
||||
@ -121,12 +116,13 @@
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- Spigot API -->
|
||||
<!-- Paper API -->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-1.17.1</artifactId>
|
||||
<version>dev</version>
|
||||
<groupId>io.papermc.paper</groupId>
|
||||
<artifactId>paper-api</artifactId>
|
||||
<version>1.20.6-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- Extra libs -->
|
||||
|
@ -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()))
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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<SimpleSkillResult> 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<SimpleSkillResult> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<SimpleSkillResult> 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);
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
|
@ -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;
|
||||
|
@ -71,12 +71,13 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<!-- Spigot API -->
|
||||
<!-- Paper API -->
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.19.3-R0.1-SNAPSHOT</version>
|
||||
<groupId>io.papermc.paper</groupId>
|
||||
<artifactId>paper-api</artifactId>
|
||||
<version>1.20.6-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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.
|
||||
|
7
pom.xml
7
pom.xml
@ -42,7 +42,7 @@
|
||||
classes when building the same version again -->
|
||||
<plugin>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<version>3.3.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>auto-clean</id>
|
||||
@ -63,6 +63,11 @@
|
||||
<url>https://nexus.phoenixdevt.fr/repository/maven-public/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>papermc</id>
|
||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
|
Loading…
Reference in New Issue
Block a user