From 362166d3b29dfc122bbdb591d4d734d71782a63e Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 31 Jul 2021 17:13:30 +0100 Subject: [PATCH] Added particles to notify-on-special --- .../obtaining/EnchantingListeners.java | 30 +++++++++++++++++++ .../support/obtaining/VillagerListeners.java | 6 ++-- .../core-plugin/src/main/resources/config.yml | 1 + 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/EnchantingListeners.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/EnchantingListeners.java index fc0f3eda..7b5e8c66 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/EnchantingListeners.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/EnchantingListeners.java @@ -8,8 +8,11 @@ import com.willfp.ecoenchants.enchantments.EcoEnchant; import com.willfp.ecoenchants.enchantments.EcoEnchants; import com.willfp.ecoenchants.enchantments.meta.EnchantmentTarget; import com.willfp.ecoenchants.enchantments.meta.EnchantmentType; +import org.bukkit.Color; import org.bukkit.GameMode; +import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.Particle; import org.bukkit.Sound; import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.EnchantmentOffer; @@ -208,6 +211,33 @@ public class EnchantingListeners extends PluginDependent implements L pitch ); + if (this.getPlugin().getConfigYml().getBool("enchanting-table.notify-on-special.show-particles")) { + Particle.DustOptions extra = new Particle.DustOptions( + Color.fromRGB(Integer.parseInt( + this.getPlugin().getLangYml().getString("special-particle-color").substring(1), + 16 + )), + 1.0f + ); + + Location location = player.getLocation().clone(); + + location.add(0, 1, 0); + + int limit = NumberUtils.randInt(8, 13); + + for (int i = 0; i < limit; i++) { + Location spawnLoc = location.clone(); + spawnLoc.add( + NumberUtils.randFloat(-2, 2), + NumberUtils.randFloat(-0.3, 1.6), + NumberUtils.randFloat(-2, 2) + ); + + spawnLoc.getWorld().spawnParticle(Particle.REDSTONE, spawnLoc, 1, 0, 0, 0, 0, extra, true); + } + } + player.sendMessage(this.getPlugin().getLangYml().getMessage("got-special")); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/VillagerListeners.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/VillagerListeners.java index bbb27b51..dda059b3 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/VillagerListeners.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/enchantments/support/obtaining/VillagerListeners.java @@ -261,9 +261,9 @@ public class VillagerListeners extends PluginDependent implements Lis for (int i = 0; i < limit; i++) { Location spawnLoc = location.clone(); spawnLoc.add( - NumberUtils.randFloat(-1.2, 1.2), - NumberUtils.randFloat(-0.3, 1.2), - NumberUtils.randFloat(-1.2, 1.2) + NumberUtils.randFloat(-2, 2), + NumberUtils.randFloat(-0.3, 1.6), + NumberUtils.randFloat(-2, 2) ); spawnLoc.getWorld().spawnParticle(Particle.REDSTONE, spawnLoc, 1, 0, 0, 0, 0, extra, true); diff --git a/eco-core/core-plugin/src/main/resources/config.yml b/eco-core/core-plugin/src/main/resources/config.yml index 9ee2440a..ec70a35c 100644 --- a/eco-core/core-plugin/src/main/resources/config.yml +++ b/eco-core/core-plugin/src/main/resources/config.yml @@ -72,6 +72,7 @@ enchanting-table: enabled: true sound: ENTITY_PLAYER_LEVELUP pitch: 1.5 + show-particles: true cap-amount: # Prevent getting above a certain amount of enchantments enabled: true # Enable capping