SyncDelayedTask Player Listener

Discussion in 'Plugin Development' started by Pimp_like_me, Sep 30, 2013.

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

    Pimp_like_me

    Code:java
    1. }else if (blockId == 353) {
    2. if(player.getFoodLevel() == 20) {
    3. player.setFoodLevel(7);
    4. plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    5. public void run() {
    6. player.sendMessage("Blown");
    7. player.setHealth(1);
    8. } }, 60L);
    9. }
    10. }
    11. }
    12.  

    I keep getting an error on plugin.getServer()... Etc. I am really new to java and i need help with this. BTW This is just a testing plugin

    BUMP

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 4, 2016
  2. Offline

    sgavster

    Bukkit.getServer()...
     
  3. Offline

    Pimp_like_me

    There is still an error on the same line....
     
  4. Offline

    sgavster

  5. Offline

    Pimp_like_me

    Code:
    20:33:26 [SEVERE] Could not pass event PlayerInteractEvent to Wizard PvP v1.1
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:427)
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:477)
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:462)
            at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerInte
    ractEvent(CraftEventFactory.java:191)
            at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerInte
    ractEvent(CraftEventFactory.java:161)
            at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java
    :1003)
            at net.minecraft.server.v1_6_R2.Packet18ArmAnimation.handle(SourceFile:4
    1)
            at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296
    )
            at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java
    :118)
            at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37)
            at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:3
    0)
            at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:5
    90)
            at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:2
    26)
            at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:4
    86)
            at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java
    :419)
            at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:5
    82)
    Caused by: java.lang.NullPointerException
            at Pimp.MyPlayerListener.onPlayerInteract(MyPlayerListener.java:88)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.lang.reflect.Method.invoke(Unknown Source)
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:425)
            ... 16 more
    >
    
     
  6. Offline

    sgavster

    Show me all your MyPlayerListener class
     
  7. Offline

    Pimp_like_me

    Code:java
    1. package Pimp;
    2. import java.util.HashMap;
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Effect;
    5. import org.bukkit.Location;
    6. import org.bukkit.Sound;
    7. import org.bukkit.World;
    8. import org.bukkit.block.Block;
    9. import org.bukkit.entity.EnderPearl;
    10. import org.bukkit.entity.Entity;
    11. import org.bukkit.entity.Fireball;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.entity.Snowball;
    14. import org.bukkit.entity.WitherSkull;
    15. import org.bukkit.event.EventHandler;
    16. import org.bukkit.event.EventPriority;
    17. import org.bukkit.event.Listener;
    18. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    19. import org.bukkit.event.entity.PlayerDeathEvent;
    20. import org.bukkit.event.player.PlayerInteractEvent;
    21. import org.bukkit.inventory.ItemStack;
    22. import org.bukkit.inventory.PlayerInventory;
    23. import org.bukkit.potion.PotionEffectType;
    24. public class MyPlayerListener implements Listener{
    25. public Pimp plugin;
    26. HashMap<String, Long> map = new HashMap<String, Long>();
    27. int seconds = 30;
    28. long LastRun = 0;
    29. long LastRunEnderpearl = 0;
    30. long LastRunFireball = 0;
    31. long LastRunWither = 0;
    32. @SuppressWarnings("deprecation")
    33. @EventHandler(priority = EventPriority.MONITOR)
    34. public void onPlayerInteract(PlayerInteractEvent event) {
    35. final Player player = event.getPlayer();
    36. int blockId = player.getItemInHand().getType().getId();
    37. if (blockId == 280) {
    38. if(player.hasPermission("Wizards.Snowball")) {
    39. if (LastRun < System.currentTimeMillis() - 1000) {
    40. player.throwSnowball();
    41. player.playEffect(player.getLocation(), Effect.BOW_FIRE, 100);
    42. LastRun = System.currentTimeMillis();
    43. }
    44. }
    45. } else if (blockId == 294) {
    46. Block block = player.getTargetBlock(null, 5);
    47. Location location = block.getLocation();
    48. World world = player.getWorld();
    49. if(player.hasPermission("Wizards.Lightning")) {
    50. world.strikeLightning(location);
    51. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    52. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    53. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    54. }
    55. } else if (blockId == 369) {
    56. if(player.hasPermission("Wizards.Wither")) {
    57. if (LastRunWither < System.currentTimeMillis() - 7500) {
    58. player.launchProjectile(WitherSkull.class);
    59. player.playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 100);
    60. LastRunWither = System.currentTimeMillis();
    61. }
    62. }
    63. } else if (blockId == 406) {
    64. if(player.hasPermission("Wizards.Enderpearl")) {
    65. if (LastRunEnderpearl < System.currentTimeMillis() - 30000) {
    66. player.launchProjectile(EnderPearl.class);
    67. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    68. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    69. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    70. LastRunEnderpearl = System.currentTimeMillis();
    71. }
    72. }
    73. } else if (blockId == 405) {
    74. if(player.hasPermission("Wizards.Fireball")) {
    75. if (LastRunFireball < System.currentTimeMillis() - 10000) {
    76. player.launchProjectile(Fireball.class);
    77. player.playEffect(player.getLocation(), Effect.GHAST_SHRIEK, 100);
    78. player.playSound(player.getLocation(), Sound.GHAST_MOAN, 100, 100);
    79. LastRunFireball = System.currentTimeMillis();
    80. }
    81. }
    82. }else if (blockId == 353) {
    83. if(player.getFoodLevel() == 20) {
    84. player.setFoodLevel(7);
    85. plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    86. public void run() {
    87. player.sendMessage("Blown");
    88. player.setHealth(1);
    89. } }, 60L);
    90. }
    91. }
    92. }
    93.  
    94. @SuppressWarnings("deprecation")
    95. @EventHandler(priority = EventPriority.HIGHEST)
    96. public void onEntityDamageByEntityEventSnowball(EntityDamageByEntityEvent event) {
    97. if (event.getDamager() instanceof Snowball
    98. && event.getEntity() instanceof Player) {
    99. Entity ent = (Entity) event.getEntity();
    100. if (ent instanceof Player) {
    101. ((Player) ent).damage(5);
    102. }
    103. }
    104. }
    105. @SuppressWarnings("deprecation")
    106. @EventHandler(priority = EventPriority.HIGHEST)
    107. public void onEntityDamageByEntityEventFireball(EntityDamageByEntityEvent event) {
    108. if (event.getDamager() instanceof Fireball
    109. && event.getEntity() instanceof Player) {
    110. Player player = (Player) event.getEntity();
    111. if (player instanceof Player) {
    112. ((Player) player).damage(6);
    113. player.addPotionEffect(PotionEffectType.CONFUSION.createEffect((int) 1000L, 50));
    114. player.sendMessage(ChatColor.BLUE + "You have been dazed by the Fireball");
    115. }
    116. }
    117. }
    118. @EventHandler(priority = EventPriority.HIGHEST)
    119. public void onPlayerDeathEvent(PlayerDeathEvent event) {
    120. final Player player = (event.getEntity());
    121. event.setDeathMessage(ChatColor.GOLD + "" + player.getName() + ChatColor.GRAY + " has fallen!");
    122. player.sendMessage(ChatColor.RED + "You have died and have been eliminated from the game!");
    123. PlayerInventory pi1 = player.getInventory();
    124. pi1.clear();
    125. pi1.setArmorContents(new ItemStack[4]);
    126. }
    127. }
     
  8. Offline

    sgavster

    Are you registering your events?
     
  9. Offline

    Pimp_like_me

    Code:
    public final MyPlayerListener pl = new MyPlayerListener();
     
     
    onEnable Etc.....
    pm.registerEvents(this.pl, this);
    
    That kind of registering events?
     
  10. Offline

    sgavster

    Yep..
    Hmm. not sure.. :/
     
  11. Offline

    Pimp_like_me

  12. Offline

    sgavster

    try adding this to your MyPlayerListener thing:
    Code:java
    1. YourPluginName plugin;
    2.  
    3. public MyPlayerListener(YourMainClassName instance)
    4. {
    5. instance = plugin;
    6. }
     
  13. Offline

    Pimp_like_me

    God i am such a noob and i know it but I get an the red line thingy here in my main class when i put in what you told me to
    Code:
    public final MyPlayerListener pl = new MyPlayerListener();
     
  14. Offline

    sgavster

    What's the error
     
  15. Offline

    Pimp_like_me

    The Constructor MyPlayerListener() is undefined
     
  16. Offline

    sgavster

    Just so you know, YourMainClassName is whatever your main class is, and same with YourPluginName :p
     
  17. Offline

    Pimp_like_me

    I understand but still it gives me the error when they are both Pimp
     
  18. Offline

    sgavster

    Try this. :]
    Code:java
    1. package Pimp;
    2. import java.util.HashMap;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Effect;
    7. import org.bukkit.Location;
    8. import org.bukkit.Sound;
    9. import org.bukkit.World;
    10. import org.bukkit.block.Block;
    11. import org.bukkit.entity.EnderPearl;
    12. import org.bukkit.entity.Entity;
    13. import org.bukkit.entity.Fireball;
    14. import org.bukkit.entity.Player;
    15. import org.bukkit.entity.Snowball;
    16. import org.bukkit.entity.WitherSkull;
    17. import org.bukkit.event.EventHandler;
    18. import org.bukkit.event.EventPriority;
    19. import org.bukkit.event.Listener;
    20. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    21. import org.bukkit.event.entity.PlayerDeathEvent;
    22. import org.bukkit.event.player.PlayerInteractEvent;
    23. import org.bukkit.inventory.ItemStack;
    24. import org.bukkit.inventory.PlayerInventory;
    25. import org.bukkit.potion.PotionEffectType;
    26. public class MyPlayerListener implements Listener{
    27. public static Pimp plugin;
    28.  
    29. public MyPlayerListener(Pimp instance) {
    30. plugin = instance;
    31. }
    32. HashMap<String, Long> map = new HashMap<String, Long>();
    33. int seconds = 30;
    34. long LastRun = 0;
    35. long LastRunEnderpearl = 0;
    36. long LastRunFireball = 0;
    37. long LastRunWither = 0;
    38. @SuppressWarnings("deprecation")
    39. @EventHandler(priority = EventPriority.MONITOR)
    40. public void onPlayerInteract(PlayerInteractEvent event) {
    41. final Player player = event.getPlayer();
    42. int blockId = player.getItemInHand().getType().getId();
    43. if (blockId == 280) {
    44. if(player.hasPermission("Wizards.Snowball")) {
    45. if (LastRun < System.currentTimeMillis() - 1000) {
    46. player.throwSnowball();
    47. player.playEffect(player.getLocation(), Effect.BOW_FIRE, 100);
    48. LastRun = System.currentTimeMillis();
    49. }
    50. }
    51. } else if (blockId == 294) {
    52. Block block = player.getTargetBlock(null, 5);
    53. Location location = block.getLocation();
    54. World world = player.getWorld();
    55. if(player.hasPermission("Wizards.Lightning")) {
    56. world.strikeLightning(location);
    57. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    58. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    59. player.playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 100);
    60. }
    61. } else if (blockId == 369) {
    62. if(player.hasPermission("Wizards.Wither")) {
    63. if (LastRunWither < System.currentTimeMillis() - 7500) {
    64. player.launchProjectile(WitherSkull.class);
    65. player.playEffect(player.getLocation(), Effect.BLAZE_SHOOT, 100);
    66. LastRunWither = System.currentTimeMillis();
    67. }
    68. }
    69. } else if (blockId == 406) {
    70. if(player.hasPermission("Wizards.Enderpearl")) {
    71. if (LastRunEnderpearl < System.currentTimeMillis() - 30000) {
    72. player.launchProjectile(EnderPearl.class);
    73. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    74. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    75. player.playEffect(player.getLocation(), Effect.ENDER_SIGNAL, 100);
    76. LastRunEnderpearl = System.currentTimeMillis();
    77. }
    78. }
    79. } else if (blockId == 405) {
    80. if(player.hasPermission("Wizards.Fireball")) {
    81. if (LastRunFireball < System.currentTimeMillis() - 10000) {
    82. player.launchProjectile(Fireball.class);
    83. player.playEffect(player.getLocation(), Effect.GHAST_SHRIEK, 100);
    84. player.playSound(player.getLocation(), Sound.GHAST_MOAN, 100, 100);
    85. LastRunFireball = System.currentTimeMillis();
    86. }
    87. }
    88. }else if (blockId == 353) {
    89. if(player.getFoodLevel() == 20) {
    90. player.setFoodLevel(7);
    91. Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
    92. public void run() {
    93. player.sendMessage("Blown");
    94. player.setHealth(1);
    95. } }, 60L);
    96. }
    97. }
    98. }
    99.  
    100. @SuppressWarnings("deprecation")
    101. @EventHandler(priority = EventPriority.HIGHEST)
    102. public void onEntityDamageByEntityEventSnowball(EntityDamageByEntityEvent event) {
    103. if (event.getDamager() instanceof Snowball
    104. && event.getEntity() instanceof Player) {
    105. Entity ent = (Entity) event.getEntity();
    106. if (ent instanceof Player) {
    107. ((Player) ent).damage(5);
    108. }
    109. }
    110. }
    111. @SuppressWarnings("deprecation")
    112. @EventHandler(priority = EventPriority.HIGHEST)
    113. public void onEntityDamageByEntityEventFireball(EntityDamageByEntityEvent event) {
    114. if (event.getDamager() instanceof Fireball
    115. && event.getEntity() instanceof Player) {
    116. Player player = (Player) event.getEntity();
    117. if (player instanceof Player) {
    118. ((Player) player).damage(6);
    119. player.addPotionEffect(PotionEffectType.CONFUSION.createEffect((int) 1000L, 50));
    120. player.sendMessage(ChatColor.BLUE + "You have been dazed by the Fireball");
    121. }
    122. }
    123. }
    124. @EventHandler(priority = EventPriority.HIGHEST)
    125. public void onPlayerDeathEvent(PlayerDeathEvent event) {
    126. final Player player = (event.getEntity());
    127. event.setDeathMessage(ChatColor.GOLD + "" + player.getName() + ChatColor.GRAY + " has fallen!");
    128. player.sendMessage(ChatColor.RED + "You have died and have been eliminated from the game!");
    129. PlayerInventory pi1 = player.getInventory();
    130. pi1.clear();
    131. pi1.setArmorContents(new ItemStack[4]);
    132. }
    133. }

    And to register make it this:

    Code:java
    1. public final MyPlayerListener pl = new MyPlayerListener(this);


    EDIT: I changed the code, use that :D
     
  19. Offline

    Pimp_like_me

    THANK YOU, WHAT DID YOU CHANGE IN THIER TO MAKE IT WORK!
     
  20. Offline

    sgavster

    Pimp_like_me I did
    publicstatic Pimp plugin;
    and
    MyPlayerListener(this);
    I'm glad I could help :D
     
Thread Status:
Not open for further replies.

Share This Page