From cfa846604f4eb912ce9817358d5c771c822554bd Mon Sep 17 00:00:00 2001 From: Esophose Date: Wed, 26 Apr 2017 23:01:17 -0600 Subject: [PATCH] v4.4 Bug Fixes Fix bunches of bugs --- changelog.txt | 9 ++++++--- .../playerparticles/PlayerParticles.java | 20 +++++++++++++------ .../manager/ParticleManager.java | 1 + .../updater/PluginUpdateListener.java | 5 +++-- src/config.yml | 2 +- src/plugin.yml | 2 +- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/changelog.txt b/changelog.txt index 2d2b463..535f6ff 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,9 +1,12 @@ == UPDATING WILL DELETE YOUR CONFIG.YML == * Create a backup of your config.yml if you wish to import all your old settings! +=== v4.4 === +* Fix problems with subversions +* Fix issues with custom style plugins === v4.3.1 === - * Fix players with the permission playerparticles.* being able to force reset other player's particles when they weren't supposed to be able to - * Fix players being saved in the config/database even if they haven't used the plugin - * Other internal changes & optimizations +* Fix players with the permission playerparticles.* being able to force reset other player's particles when they weren't supposed to be able to +* Fix players being saved in the config/database even if they haven't used the plugin +* Other internal changes & optimizations === v4.3 === * Fix effects and styles not defaulting to 'none' if the player no longer has permission * Fix errors printing to console resulting from offline players trying to spawn particles diff --git a/src/com/esophose/playerparticles/PlayerParticles.java b/src/com/esophose/playerparticles/PlayerParticles.java index d859eb1..b65a79f 100644 --- a/src/com/esophose/playerparticles/PlayerParticles.java +++ b/src/com/esophose/playerparticles/PlayerParticles.java @@ -27,6 +27,7 @@ import java.sql.SQLException; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitRunnable; import com.esophose.playerparticles.library.MySQL; import com.esophose.playerparticles.manager.MessageManager; @@ -72,7 +73,7 @@ public class PlayerParticles extends JavaPlugin { getCommand("pp").setExecutor(new ParticleCommandExecutor()); Bukkit.getPluginManager().registerEvents(new ParticleManager(), this); Bukkit.getPluginManager().registerEvents(new PluginUpdateListener(), this); - if (getConfig().getDouble("version") < Double.parseDouble(getDescription().getVersion())) { + if (getConfig().getDouble("version") < Double.parseDouble(getDescription().getVersion().substring(0, 3))) { File configFile = new File(getDataFolder(), "config.yml"); configFile.delete(); saveDefaultConfig(); @@ -80,13 +81,11 @@ public class PlayerParticles extends JavaPlugin { getLogger().warning("The config.yml has been updated to v" + getDescription().getVersion() + "!"); } checkDatabase(); - ParticleManager.refreshPPlayers(); - ParticleManager.addAllFixedEffects(); startTask(); if (shouldCheckUpdates()) { Updater updater = new Updater(this, 82823, this.getFile(), Updater.UpdateType.NO_DOWNLOAD, false); - if (Double.parseDouble(updater.getLatestName().replaceAll("PlayerParticles v", "")) > Double.parseDouble(getPlugin().getDescription().getVersion())) { + if (Double.parseDouble(updater.getLatestName().replaceAll("PlayerParticles v", "").replaceAll("\\.", "")) > Double.parseDouble(getPlugin().getDescription().getVersion().replaceAll("\\.", ""))) { updateVersion = updater.getLatestName().replaceAll("PlayerParticles v", ""); getLogger().info("[PlayerParticles] An update (v" + updateVersion + ") is available! You are running v" + getPlugin().getDescription().getVersion()); } @@ -165,10 +164,19 @@ public class PlayerParticles extends JavaPlugin { /** * Starts the task reponsible for spawning particles + * Run in the synchronous task so it starts after all plugins have loaded, including extensions */ private void startTask() { - double ticks = getConfig().getInt("ticks-per-particle"); - new ParticleManager().runTaskTimer(this, 20, (long) ticks); + final Plugin playerParticles = this; + new BukkitRunnable() { + public void run() { + ParticleManager.refreshPPlayers(); // Add any online players who have particles + ParticleManager.addAllFixedEffects(); // Add all fixed effects + + double ticks = getConfig().getInt("ticks-per-particle"); + new ParticleManager().runTaskTimer(playerParticles, 20, (long) ticks); + } + }.runTaskLater(playerParticles, 20); } } diff --git a/src/com/esophose/playerparticles/manager/ParticleManager.java b/src/com/esophose/playerparticles/manager/ParticleManager.java index 485d05a..d6d2f98 100644 --- a/src/com/esophose/playerparticles/manager/ParticleManager.java +++ b/src/com/esophose/playerparticles/manager/ParticleManager.java @@ -175,6 +175,7 @@ public class ParticleManager extends BukkitRunnable implements Listener { if (player == null) { // Skip and remove, why are they still in the array if they are offline? particlePlayers.remove(i); + continue; } // Perform permission and validity checks diff --git a/src/com/esophose/playerparticles/updater/PluginUpdateListener.java b/src/com/esophose/playerparticles/updater/PluginUpdateListener.java index 3276d15..6d71f2c 100644 --- a/src/com/esophose/playerparticles/updater/PluginUpdateListener.java +++ b/src/com/esophose/playerparticles/updater/PluginUpdateListener.java @@ -27,8 +27,9 @@ public class PluginUpdateListener implements Listener { public void onPlayerJoin(PlayerJoinEvent e) { if (e.getPlayer().isOp()) { if (PlayerParticles.updateVersion != null) { - MessageManager.sendCustomMessage(e.getPlayer(), ChatColor.YELLOW + "An update (" + ChatColor.AQUA + "v" + PlayerParticles.updateVersion + ChatColor.YELLOW + ") is available! You are running " + ChatColor.AQUA + "v" + PlayerParticles.getPlugin().getDescription().getVersion()); - MessageManager.sendCustomMessage(e.getPlayer(), ChatColor.YELLOW + "Download from: https://dev.bukkit.org/projects/playerparticles"); + MessageManager.sendCustomMessage(e.getPlayer(), ChatColor.YELLOW + "An update (" + ChatColor.AQUA + "v" + PlayerParticles.updateVersion + ChatColor.YELLOW + ") is available! " + + "You are running " + ChatColor.AQUA + "v" + PlayerParticles.getPlugin().getDescription().getVersion() + ChatColor.YELLOW + + ". https://dev.bukkit.org/projects/playerparticles"); } } } diff --git a/src/config.yml b/src/config.yml index a99ff62..f03935b 100644 --- a/src/config.yml +++ b/src/config.yml @@ -14,7 +14,7 @@ # Changing this value will reset your config on the next server reload / restart. # I don't recommend changing it -version: 4.3 +version: 4.4 # How many ticks to wait before spawning more particles # Increasing this value may cause less lag (if there was any), but will decrease prettiness diff --git a/src/plugin.yml b/src/plugin.yml index dca18ce..0a68636 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: PlayerParticles main: com.esophose.playerparticles.PlayerParticles -version: 4.3 +version: 4.4 description: Make particles around players in fancy ways. author: Esophose website: http://dev.bukkit.org/bukkit-plugins/playerparticles/