Solved Repeating task not working properly

Discussion in 'Plugin Development' started by MayoDwarf, Apr 23, 2014.

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

    MayoDwarf

    Main:
    Code:java
    1. package com.core.mayodwarf.sapphire.hub;
    2.  
    3. import org.bukkit.*;
    4. import org.bukkit.entity.Arrow;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.event.EventHandler;
    7. import org.bukkit.event.Listener;
    8. import org.bukkit.event.block.Action;
    9. import org.bukkit.event.entity.ProjectileHitEvent;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.event.player.PlayerInteractEvent;
    12. import org.bukkit.event.player.PlayerJoinEvent;
    13. import org.bukkit.inventory.*;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.java.JavaPlugin;
    16.  
    17. /**
    18. * Created with IntelliJ IDEA.
    19. * User: MayoDwarf
    20. * Date: 4/22/14
    21. * Time: 4:33 PM
    22. * To change this template use File | Settings | File Templates.
    23. */
    24. public class Main extends JavaPlugin implements Listener {
    25. public void onEnable() {
    26. final Functions f = new Functions(this);
    27. this.getServer().getPluginManager().registerEvents(this, this);
    28. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    29. public void run() {
    30. for(Player p : Bukkit.getOnlinePlayers()) {
    31. if(f.effects.containsKey(p.getDisplayName())) {
    32. p.playEffect(p.getLocation(), Effect.valueOf(f.effects.get(p.getDisplayName()).toString()), 0);
    33. }
    34. }
    35. }
    36. }, 20, 20);
    37. }
    38. public void onDisable() {}
    39.  
    40. @EventHandler
    41. public void onClick(PlayerInteractEvent evt) {
    42. ItemStack item = evt.getPlayer().getItemInHand();
    43. Player p = evt.getPlayer();
    44. Action a = evt.getAction();
    45. if (a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
    46. switch (item.getType()) {
    47. case SLIME_BALL:
    48. p.getInventory().remove(item);
    49. ItemStack mCream = new ItemStack(Material.MAGMA_CREAM);
    50. ItemMeta im = mCream.getItemMeta();
    51. im.setDisplayName(ChatColor.GRAY+"Show players "+ ChatColor.DARK_RED+"- Disabled");
    52. mCream.setItemMeta(im);
    53. p.getInventory().setItem(3, mCream);
    54. p.updateInventory();
    55. for(Player players : Bukkit.getOnlinePlayers()) {
    56. if(!(players.getDisplayName() == p.getDisplayName())) {
    57. p.hidePlayer(players);
    58. }
    59. }
    60. break;
    61. case MAGMA_CREAM:
    62. p.getInventory().remove(item);
    63. ItemStack slimeball = new ItemStack(Material.SLIME_BALL);
    64. ItemMeta sim = slimeball.getItemMeta();
    65. sim.setDisplayName(ChatColor.GRAY+"Show players "+ ChatColor.GREEN+"- Enabled");
    66. slimeball.setItemMeta(sim);
    67. p.getInventory().setItem(3, slimeball);
    68. p.updateInventory();
    69. for(Player players : Bukkit.getOnlinePlayers()) {
    70. if(!(players.getDisplayName() == p.getDisplayName())) {
    71. p.showPlayer(players);
    72. }
    73. }
    74. break;
    75. case EYE_OF_ENDER:
    76. evt.setCancelled(true);
    77. Inventory inv = Bukkit.createInventory(p, 9, ChatColor.DARK_AQUA+"Server Selector");
    78. ItemStack isRed = new ItemStack(Material.WOOL, 1, DyeColor.RED.getData());
    79. ItemMeta rim = isRed.getItemMeta();
    80. rim.setDisplayName(ChatColor.RED+"Prison");
    81. isRed.setItemMeta(rim);
    82. ItemStack isBlue = new ItemStack(Material.WOOL, 1, DyeColor.BLUE.getData());
    83. ItemMeta bim = isBlue.getItemMeta();
    84. bim.setDisplayName(ChatColor.BLUE+"Factions");
    85. isBlue.setItemMeta(bim);
    86. ItemStack isYellow = new ItemStack(Material.WOOL, 1, DyeColor.YELLOW.getData());
    87. ItemMeta yim = isYellow.getItemMeta();
    88. yim.setDisplayName(ChatColor.YELLOW+"Skywars");
    89. isYellow.setItemMeta(yim);
    90. ItemStack isPurple = new ItemStack(Material.WOOL, 1, DyeColor.PURPLE.getData());
    91. ItemMeta pim = isPurple.getItemMeta();
    92. pim.setDisplayName(ChatColor.DARK_PURPLE+"Kitpvp");
    93. isPurple.setItemMeta(pim);
    94. inv.setItem(0, isRed);
    95. inv.setItem(1, isBlue);
    96. inv.setItem(2, isYellow);
    97. inv.setItem(3, isPurple);
    98. p.openInventory(inv);
    99. break;
    100. case COMPASS:
    101. Inventory ci = Bukkit.createInventory(p, 9, ChatColor.GRAY+"Particle Changer");
    102. ItemStack smoke = new ItemStack(Material.GLASS_BOTTLE);
    103. ItemMeta smim = smoke.getItemMeta();
    104. smim.setDisplayName(ChatColor.GRAY+"SMOKE");
    105. smoke.setItemMeta(smim);
    106. ci.setItem(0, smoke);
    107. ItemStack potion = new ItemStack(Material.GLASS_BOTTLE);
    108. ItemMeta poim = potion.getItemMeta();
    109. poim.setDisplayName(ChatColor.DARK_PURPLE+"POTION");
    110. potion.setItemMeta(poim);
    111. ci.setItem(1, potion);
    112. ItemStack ext = new ItemStack(Material.GLASS_BOTTLE);
    113. ItemMeta exim = ext.getItemMeta();
    114. exim.setDisplayName(ChatColor.DARK_GREEN+"EXTINGUISHER");
    115. ext.setItemMeta(exim);
    116. ci.setItem(2, ext);
    117. ItemStack mobspawner_f = new ItemStack(Material.GLASS_BOTTLE);
    118. ItemMeta mf = mobspawner_f.getItemMeta();
    119. mf.setDisplayName(ChatColor.RED+"MOBSPAWNER_FLAMES");
    120. mobspawner_f.setItemMeta(mf);
    121. ci.setItem(3, mobspawner_f);
    122. p.openInventory(ci);
    123. break;
    124. }
    125. }
    126. }
    127. @EventHandler
    128. public void hitEvent(ProjectileHitEvent evt) {
    129. if(evt.getEntity().getShooter() instanceof Player) {
    130. Player p = (Player) evt.getEntity().getShooter();
    131. if(evt.getEntity() instanceof Arrow) {
    132. Arrow a = (Arrow) evt.getEntity();
    133. a.getLocation().setDirection(p.getLocation().getDirection());
    134. p.teleport(new Location(a.getWorld(), a.getLocation().getX(), a.getLocation().getY(), a.getLocation().getZ(), p.getLocation().getYaw(), p.getLocation().getPitch()));
    135. p.sendMessage(ChatColor.AQUA+"WOOOOSHHH");
    136. p.playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 0);
    137. p.playSound(p.getLocation(), Sound.SUCCESSFUL_HIT, 1, 1);
    138. }
    139. }
    140. }
    141. @EventHandler
    142. public void clickEvent(InventoryClickEvent evt) {
    143. ItemStack item = evt.getCurrentItem();
    144. Player p = (Player) evt.getWhoClicked();
    145. if(ChatColor.stripColor(evt.getInventory().getTitle()).equals("Server Selector")) {
    146. if(item.getType() == Material.WOOL) {
    147. evt.setCancelled(true);
    148. if(evt.getSlot() == 0) {
    149. p.performCommand("server prison");
    150. p.closeInventory();
    151. } else
    152. if(evt.getSlot() == 1) {
    153. p.performCommand("server factions");
    154. p.closeInventory();
    155. } else
    156. if(evt.getSlot() == 2) {
    157. p.performCommand("server skywars");
    158. p.closeInventory();
    159. } else
    160. if(evt.getSlot() == 3) {
    161. p.performCommand("server kitpvp");
    162. p.closeInventory();
    163. }
    164. }
    165. } else
    166. if(ChatColor.stripColor(evt.getInventory().getTitle()).equals("Particle Changer")) {
    167. if(p.hasPermission("sHub.use.particles")) {
    168. String name = ChatColor.stripColor(item.getItemMeta().getDisplayName());
    169. if(name.equals("SMOKE")) {
    170. Functions f = new Functions(this);
    171. f.putPlayer(p, Functions.Effectt.SMOKE);
    172. p.closeInventory();
    173. } else
    174. if(name.equals("POTION")) {
    175. Functions f = new Functions(this);
    176. f.putPlayer(p, Functions.Effectt.POTION_BREAK);
    177. p.closeInventory();
    178. } else
    179. if(name.equals("EXTINGUISHER")) {
    180. Functions f = new Functions(this);
    181. f.putPlayer(p, Functions.Effectt.EXTINGUISH);
    182. p.closeInventory();
    183. } else
    184. if(name.equals("MOBSPAWNER_FLAMES")) {
    185. Functions f = new Functions(this);
    186. f.putPlayer(p, Functions.Effectt.MOBSPAWNER_FLAMES);
    187. p.closeInventory();
    188. }
    189. }
    190. }
    191. }
    192. @EventHandler
    193. public void onJoin(PlayerJoinEvent evt) {
    194. evt.getPlayer().getInventory().clear();
    195. Functions f = new Functions(this);
    196. f.giveItems(evt.getPlayer());
    197. }
    198. }
    199.  

    Functions:
    Code:java
    1. package com.core.mayodwarf.sapphire.hub;
    2.  
    3. import org.bukkit.ChatColor;
    4. import org.bukkit.Material;
    5. import org.bukkit.enchantments.Enchantment;
    6. import org.bukkit.entity.Player;
    7. import org.bukkit.inventory.ItemStack;
    8. import org.bukkit.inventory.meta.ItemMeta;
    9. import org.bukkit.potion.PotionEffect;
    10. import org.bukkit.potion.PotionEffectType;
    11.  
    12. import java.util.Map;
    13. import java.util.HashMap;
    14.  
    15. /**
    16. * Created with IntelliJ IDEA.
    17. * User: MayoDwarf
    18. * Date: 4/22/14
    19. * Time: 4:33 PM
    20. * To change this template use File | Settings | File Templates.
    21. */
    22. public class Functions {
    23. Main main;
    24. public Functions(Main main) {
    25. this.main = main;
    26. }
    27. public enum Effectt { SMOKE, POTION_BREAK, EXTINGUISH, MOBSPAWNER_FLAMES };
    28. public Map<String, Effectt> effects = new HashMap<String, Effectt>();
    29. public void giveItems(Player p) {
    30. PotionEffect speed = new PotionEffect(PotionEffectType.SPEED, Integer.MAX_VALUE, 1);
    31. PotionEffect jump = new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, 1);
    32. p.addPotionEffect(speed);
    33. p.addPotionEffect(jump);
    34. //Bow
    35. ItemStack bow = new ItemStack(Material.BOW);
    36. ItemMeta im = bow.getItemMeta();
    37. im.setDisplayName(ChatColor.DARK_AQUA+"Bow Teleporter");
    38. bow.setItemMeta(im);
    39. bow.addEnchantment(Enchantment.ARROW_INFINITE, 1);
    40. p.getInventory().setItem(0, bow);
    41. //Slime
    42. ItemStack slime = new ItemStack(Material.SLIME_BALL);
    43. ItemMeta sIm = slime.getItemMeta();
    44. sIm.setDisplayName(ChatColor.GRAY+"Show players "+ChatColor.GREEN+"- Enabled");
    45. slime.setItemMeta(sIm);
    46. p.getInventory().setItem(3, slime);
    47. //Eye of Ender
    48. ItemStack eyeofender = new ItemStack(Material.EYE_OF_ENDER);
    49. ItemMeta eim = eyeofender.getItemMeta();
    50. eim.setDisplayName(ChatColor.DARK_AQUA+"Server Selector");
    51. eyeofender.setItemMeta(eim);
    52. p.getInventory().setItem(4, eyeofender);
    53. //Compass
    54. ItemStack comp = new ItemStack(Material.COMPASS);
    55. ItemMeta cim = comp.getItemMeta();
    56. cim.setDisplayName(ChatColor.GRAY+"Particle Changer");
    57. comp.setItemMeta(cim);
    58. p.getInventory().setItem(5, comp);
    59. p.getInventory().setItem(35, new ItemStack(Material.ARROW, 1));
    60. }
    61. public void putPlayer(Player p, Effectt effect) {
    62. effects.put(p.getDisplayName(), effect);
    63. }
    64. }
    65.  

    The problem is that it won't play the effect to the player. I ran some debugging messages to check what is running and it seems that the runnable is running correctly and the loop is working. The "f.effects.containsKey(p.getDisplayName())" is not being ran through when it does contain the player though... Please help as best you can. All is appreciated. Thanks! :D
     
Thread Status:
Not open for further replies.

Share This Page