Plugin Help Particle Help

Discussion in 'Plugin Help/Development/Requests' started by top2001, Nov 27, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    top2001

    Hello Bukkit Community!

    I've recently been working on a particle plugin where it gives staff members mob spawner flames via a permission. When I try and load the following code on my server, it seems the particles don't seem to show. If you could help me, it would be greatly appreciated.

    Code:java
    1. package me.top2001.OreCloudParticles;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Effect;
    6. import org.bukkit.Location;
    7. import org.bukkit.command.Command;
    8. import org.bukkit.command.CommandSender;
    9. import org.bukkit.entity.Player;
    10. import org.bukkit.event.EventHandler;
    11. import org.bukkit.event.Listener;
    12. import org.bukkit.event.player.PlayerJoinEvent;
    13. import org.bukkit.plugin.java.JavaPlugin;
    14.  
    15. public class Main extends JavaPlugin implements Listener{
    16.  
    17. public void onEnable() {
    18. getLogger().info("Plugin Enabled!");
    19. }
    20.  
    21. public void onDisable() {
    22. getLogger().info("Plugin Disabled!");
    23. }
    24.  
    25. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    26. if(sender instanceof Player) {
    27. final String prefix = ChatColor.GREEN + "Ore" + ChatColor.GRAY + "Cloud" + ChatColor.DARK_GREEN + " > ";
    28. Player player = (Player) sender;
    29. if(cmd.getName().equalsIgnoreCase("ocp")){
    30. player.sendMessage(prefix + ChatColor.BLUE + "OreCloudParticles Is Running.");
    31. }
    32. }
    33. return false;
    34. }
    35.  
    36. @EventHandler
    37. public void onPlayerJoin(PlayerJoinEvent e) {
    38. Player player = (Player) e.getPlayer();
    39. Location loc = player.getLocation();
    40. if(player.hasPermission("staffparticles.fire")){
    41. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    42. public void run() {
    43. player.getWorld().playEffect(loc, Effect.MOBSPAWNER_FLAMES, 2004);
    44. }
    45. }, 20, 20);
    46. }
    47. }
    48. }
    49.  
     
  2. Offline

    top2001

  3. top2001
    Instead of saving the location to a variable and using that in the playEffect() method, try using player.getLocation() to get their updated Location.

    You could also try PlayerMoveEvent, but that's way more inefficient.
     
    17xDillz1997 likes this.
Thread Status:
Not open for further replies.

Share This Page