mirror of
https://github.com/TotalFreedomMC/PlayerParticles.git
synced 2025-02-11 03:29:53 +00:00
Fix issue with 'swords' and 'fishing' styles
This commit is contained in:
parent
3bd7b5b9e9
commit
2afb90c669
4 changed files with 30 additions and 9 deletions
|
@ -10,7 +10,7 @@ sourceCompatibility = 1.8
|
||||||
targetCompatibility = 1.8
|
targetCompatibility = 1.8
|
||||||
compileJava.options.encoding = 'UTF-8'
|
compileJava.options.encoding = 'UTF-8'
|
||||||
group = 'dev.esophose'
|
group = 'dev.esophose'
|
||||||
version = '7.9'
|
version = '7.10'
|
||||||
|
|
||||||
java {
|
java {
|
||||||
withJavadocJar()
|
withJavadocJar()
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
=== v7.10 ===
|
||||||
|
* The 'swords' style now lets you edit what is considered a sword in its settings file
|
||||||
|
* Fixed wooden swords not being counted with the 'swords' style in 1.13+
|
||||||
|
* Fixed the 'fishing' style causing particles to spawn for users who don't even have it applied
|
||||||
=== v7.9 ===
|
=== v7.9 ===
|
||||||
+ Added options DISPLAY_NORMAL and DISPLAY_OVERHEAD to toggle-on-move
|
+ Added options DISPLAY_NORMAL and DISPLAY_OVERHEAD to toggle-on-move
|
||||||
+ Added setting in each style setting file for can-toggle-on-combat
|
+ Added setting in each style setting file for can-toggle-on-combat
|
||||||
|
|
|
@ -8,16 +8,16 @@ import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerFishEvent;
|
import org.bukkit.event.player.PlayerFishEvent;
|
||||||
|
import org.bukkit.projectiles.ProjectileSource;
|
||||||
|
|
||||||
public class ParticleStyleFishing extends DefaultParticleStyle implements Listener {
|
public class ParticleStyleFishing extends DefaultParticleStyle implements Listener {
|
||||||
|
|
||||||
|
@ -47,8 +47,11 @@ public class ParticleStyleFishing extends DefaultParticleStyle implements Listen
|
||||||
List<PParticle> particles = new ArrayList<>();
|
List<PParticle> particles = new ArrayList<>();
|
||||||
|
|
||||||
List<Projectile> listCopy = new ArrayList<>(this.projectiles); // Copy in case of modification while looping due to async
|
List<Projectile> listCopy = new ArrayList<>(this.projectiles); // Copy in case of modification while looping due to async
|
||||||
for (Projectile projectile : listCopy)
|
for (Projectile projectile : listCopy) {
|
||||||
particles.add(new PParticle(projectile.getLocation(), 0.05F, 0.05F, 0.05F, 0.0F));
|
ProjectileSource shooter = projectile.getShooter();
|
||||||
|
if (shooter instanceof Player && ((Player) shooter).getUniqueId().equals(particle.getOwnerUniqueId()))
|
||||||
|
particles.add(new PParticle(projectile.getLocation(), 0.05F, 0.05F, 0.05F, 0.0F));
|
||||||
|
}
|
||||||
|
|
||||||
return particles;
|
return particles;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,16 +18,18 @@ import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
public class ParticleStyleSwords extends DefaultParticleStyle implements Listener {
|
public class ParticleStyleSwords extends DefaultParticleStyle implements Listener {
|
||||||
|
|
||||||
private static final List<String> SWORD_NAMES;
|
private static final List<String> DEFAULT_SWORD_NAMES;
|
||||||
|
|
||||||
private int multiplier;
|
private int multiplier;
|
||||||
|
private List<String> swordNames;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
SWORD_NAMES = new ArrayList<>();
|
DEFAULT_SWORD_NAMES = new ArrayList<>();
|
||||||
SWORD_NAMES.addAll(Arrays.asList("WOOD_SWORD", "WOODEN_SWORD", "STONE_SWORD", "IRON_SWORD", "GOLD_SWORD", "GOLDEN_SWORD", "DIAMOND_SWORD", "TRIDENT"));
|
DEFAULT_SWORD_NAMES.addAll(Arrays.asList("WOOD_SWORD", "WOODEN_SWORD", "STONE_SWORD", "IRON_SWORD", "GOLD_SWORD", "GOLDEN_SWORD", "DIAMOND_SWORD", "TRIDENT"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ParticleStyleSwords() {
|
public ParticleStyleSwords() {
|
||||||
|
@ -57,11 +59,13 @@ public class ParticleStyleSwords extends DefaultParticleStyle implements Listene
|
||||||
@Override
|
@Override
|
||||||
protected void setDefaultSettings(CommentedFileConfiguration config) {
|
protected void setDefaultSettings(CommentedFileConfiguration config) {
|
||||||
this.setIfNotExists("multiplier", 15, "The multiplier for the number of particles to spawn", "This style uses the same spawning as the 'normal' style");
|
this.setIfNotExists("multiplier", 15, "The multiplier for the number of particles to spawn", "This style uses the same spawning as the 'normal' style");
|
||||||
|
this.setIfNotExists("sword-materials", DEFAULT_SWORD_NAMES, "The materails that are considered swords", "Set to [] to allow everything to be considered a sword", "Use AIR to allow a bare hand to be considered a sword");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadSettings(CommentedFileConfiguration config) {
|
protected void loadSettings(CommentedFileConfiguration config) {
|
||||||
this.multiplier = config.getInt("multiplier");
|
this.multiplier = config.getInt("multiplier");
|
||||||
|
this.swordNames = config.getStringList("sword-materials");
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
@ -72,7 +76,7 @@ public class ParticleStyleSwords extends DefaultParticleStyle implements Listene
|
||||||
Player player = (Player) event.getDamager();
|
Player player = (Player) event.getDamager();
|
||||||
LivingEntity entity = (LivingEntity) event.getEntity();
|
LivingEntity entity = (LivingEntity) event.getEntity();
|
||||||
PPlayer pplayer = PlayerParticles.getInstance().getManager(DataManager.class).getPPlayer(player.getUniqueId());
|
PPlayer pplayer = PlayerParticles.getInstance().getManager(DataManager.class).getPPlayer(player.getUniqueId());
|
||||||
if (pplayer == null || !SWORD_NAMES.contains(player.getInventory().getItemInMainHand().getType().name()))
|
if (pplayer == null || !this.isSword(player.getInventory().getItemInMainHand()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (ParticlePair particle : pplayer.getActiveParticlesForStyle(DefaultStyles.SWORDS)) {
|
for (ParticlePair particle : pplayer.getActiveParticlesForStyle(DefaultStyles.SWORDS)) {
|
||||||
|
@ -82,4 +86,14 @@ public class ParticleStyleSwords extends DefaultParticleStyle implements Listene
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isSword(ItemStack itemStack) {
|
||||||
|
if (this.swordNames.isEmpty())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (itemStack == null)
|
||||||
|
return this.swordNames.contains("AIR");
|
||||||
|
|
||||||
|
return this.swordNames.contains(itemStack.getType().name());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue