Problem with scheduled tasks in a Listener

Discussion in 'Plugin Development' started by FirecatHD, Feb 21, 2014.

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

    FirecatHD

    So i think i have to have an instance if my main.java in my listener, but i am not sure how to do that.
    Console says that it cannot cast, and i do understand that, but i dont know how to fix it.

    Code:java
    1. package me.FirecatHD.RocketFrenzy;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.List;
    5.  
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.Effect;
    8. import org.bukkit.Material;
    9. import org.bukkit.entity.Arrow;
    10. import org.bukkit.entity.Egg;
    11. import org.bukkit.entity.Entity;
    12. import org.bukkit.entity.HumanEntity;
    13. import org.bukkit.entity.Player;
    14. import org.bukkit.entity.Projectile;
    15. import org.bukkit.event.EventHandler;
    16. import org.bukkit.event.Listener;
    17. import org.bukkit.event.block.Action;
    18. import org.bukkit.event.entity.ProjectileHitEvent;
    19. import org.bukkit.event.player.PlayerInteractEvent;
    20. import org.bukkit.plugin.Plugin;
    21. import org.bukkit.potion.PotionEffect;
    22. import org.bukkit.potion.PotionEffectType;
    23.  
    24. public class RocketListener implements Listener {
    25.  
    26.  
    27. public static List<String> fraggerKit = new ArrayList<String>();
    28.  
    29. public static List<String> getFraggerKit() {
    30. return fraggerKit;
    31.  
    32. }
    33.  
    34. public static List<String> rocketdelay = new ArrayList<String>();
    35.  
    36. public static List<String> getRocketDelay() {
    37. return rocketdelay;
    38.  
    39. }
    40.  
    41. @EventHandler
    42. public void onPlayerInteract(final PlayerInteractEvent e){
    43.  
    44. e.getPlayer();
    45.  
    46. if(e.getPlayer().getItemInHand().getType() == Material.IRON_BARDING){
    47. if(e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
    48.  
    49. e.getPlayer().launchProjectile(Arrow.class);
    50.  
    51. rocketdelay.add(e.getPlayer().getName());
    52.  
    53. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask((Plugin) this, new Runnable() {
    54. public void run() {
    55.  
    56. rocketdelay.remove(e.getPlayer().getName());
    57.  
    58. }
    59. }, 30);
    60. }
    61. }
    62. }
    63.  
    64. @EventHandler
    65. public void onProjectileHit(ProjectileHitEvent e) {
    66.  
    67. Projectile p = e.getEntity();
    68. if (!(p.getShooter() instanceof Player)) return;
    69. if (!(p instanceof Arrow)) return;
    70. if (!fraggerKit.contains (((HumanEntity) p.getShooter()).getName())) return;
    71. Arrow a = (Arrow) p;
    72.  
    73. a.getWorld().playEffect(p.getLocation(), Effect.SMOKE, 0);
    74.  
    75. a.getWorld().createExplosion(a.getLocation(), 4); {
    76.  
    77. for (Entity en : a.getNearbyEntities(5, 5, 5)) {
    78. if (en instanceof Player) {
    79. Player pl = (Player) en;
    80. if (!(pl == e.getEntity().getShooter()))
    81.  
    82. a.remove();
    83. }
    84. }
    85. }
    86. }
    87.  
    88. @EventHandler
    89. public void onProjectileHit1(ProjectileHitEvent e) {
    90. Projectile p = e.getEntity();
    91. if (!(p.getShooter() instanceof Player)) return;
    92. if (!(p instanceof Egg)) return;
    93. if (!fraggerKit.contains (((HumanEntity) p.getShooter()).getName())) return;
    94. Egg g = (Egg) p;
    95.  
    96. p.getWorld().playEffect(p.getLocation(), Effect.SMOKE, 0);
    97.  
    98. g.getWorld().createExplosion(g.getLocation(), 0); {
    99.  
    100. for (Entity en : g.getNearbyEntities(5, 5, 5)) {
    101. if (en instanceof Player) {
    102. Player pl = (Player) en;
    103. if (!(pl == e.getEntity().getShooter()))
    104.  
    105. pl.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 50, 0));
    106. pl.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 70, 4));
    107. pl.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 100, 0));
    108. }
    109. }
    110. }
    111. }
    112. }


    Anyone that can help, please do so :)
    -Firecat

    I really need help, anyone?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 6, 2016
Thread Status:
Not open for further replies.

Share This Page