Advertisement
Lisenochek

Untitled

Oct 2nd, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. package com.realistic.signals;
  2.  
  3. import java.util.Random;
  4. import java.util.concurrent.Callable;
  5.  
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.Location;
  9. import org.bukkit.Material;
  10. import org.bukkit.block.Block;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.block.BlockPlaceEvent;
  15.  
  16. import com.realistic.api.API;
  17. import com.realistic.api.MessageManager;
  18. import com.realistic.api.MessageManager.MsgType;
  19. import com.realistic.config.configMessage;
  20. import com.realistic.crate.Crate_list;
  21. import com.realistic.otherAPI.ParticleEffect;
  22.  
  23. public class Handler_Place implements Listener {
  24.  
  25. private static final Random r = new Random();
  26. public static Thread thread;
  27.  
  28. @EventHandler
  29. public static void onPlace(BlockPlaceEvent e) {
  30.  
  31. Player p = e.getPlayer();
  32. Block b = e.getBlockPlaced();
  33.  
  34. if (e.isCancelled()) {
  35. return;
  36. }
  37.  
  38. if (b.getType() == Material.REDSTONE_TORCH_ON) {
  39.  
  40. if (p.getItemInHand().getItemMeta().getDisplayName() != null
  41. && p.getItemInHand().getItemMeta().getDisplayName()
  42. .equalsIgnoreCase(ChatColor.GOLD + ChatColor.BOLD.toString() + "Сигнальная шашка")) {
  43.  
  44. MessageManager.getManager().msg(p, MsgType.SUCCESS,
  45. configMessage.messageConfig.getString("signal_enable"));
  46.  
  47. spawn(b.getLocation(), b, p);
  48. }
  49. }
  50. }
  51.  
  52. public static void spawn(Location loc, Block b, Player p) {
  53.  
  54. thread = new Thread() {
  55.  
  56. @SuppressWarnings("deprecation")
  57. @Override
  58. public void run() {
  59.  
  60. while (true) {
  61.  
  62. try {
  63. Thread.sleep(200);
  64. } catch (InterruptedException e) {
  65. return;
  66. }
  67.  
  68. ParticleEffect.SMOKE_LARGE.display(0, 2, 0, 0, 5, b.getLocation().add(0.5, 3, 0.5), 200);
  69.  
  70. if (b.getType() == Material.AIR) {
  71. thread.interrupt();
  72. thread.stop();
  73. }
  74.  
  75. if (r.nextInt(5000) <= 100) {
  76.  
  77. Bukkit.getScheduler().callSyncMethod(API.getInstance(), new Callable<Crate_list>() {
  78.  
  79. @Override
  80. public Crate_list call() throws Exception {
  81.  
  82. b.setType(Material.AIR);
  83. Crate_list.commonCrate(loc, b, p);
  84.  
  85. thread.interrupt();
  86. thread.stop();
  87.  
  88. return null;
  89. }
  90. });
  91. }
  92. }
  93. }
  94. };
  95. thread.start();
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement