Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.70 KB | None | 0 0
  1. package WarZ.Food;
  2.  
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.Effect;
  5. import org.bukkit.Material;
  6. import org.bukkit.Sound;
  7. import org.bukkit.World;
  8. import org.bukkit.block.Block;
  9. import org.bukkit.entity.Damageable;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.entity.Snowball;
  12. import org.bukkit.event.EventHandler;
  13. import org.bukkit.event.Listener;
  14. import org.bukkit.event.block.Action;
  15. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  16. import org.bukkit.event.entity.ProjectileHitEvent;
  17. import org.bukkit.event.player.PlayerCommandPreprocessEvent;
  18. import org.bukkit.event.player.PlayerInteractEvent;
  19. import org.bukkit.event.player.PlayerQuitEvent;
  20. import org.bukkit.inventory.ItemStack;
  21. import org.bukkit.inventory.meta.ItemMeta;
  22. import org.bukkit.plugin.java.JavaPlugin;
  23. import org.bukkit.potion.PotionEffect;
  24. import org.bukkit.potion.PotionEffectType;
  25. import org.bukkit.util.BlockIterator;
  26.  
  27. public class Main
  28. extends JavaPlugin
  29. implements Listener
  30. {
  31. @EventHandler
  32. public void onInteract(PlayerInteractEvent e)
  33. {
  34. Player p = e.getPlayer();
  35. Action a = e.getAction();
  36. ItemStack hand = p.getItemInHand();
  37. if (((a == Action.RIGHT_CLICK_AIR) || (a == Action.RIGHT_CLICK_BLOCK)) &&
  38. (isFood(hand.getType())) &&
  39. (!Cooldown.isInCooldown(p.getUniqueId(), "food")))
  40. {
  41. Cooldown cd = new Cooldown(p.getUniqueId(), "food", 1);
  42. cd.start();
  43. if (hand.getType() == Material.INK_SACK) {
  44. handleInkSac(p, hand);
  45. } else if (hand.getType() == Material.COOKED_FISH) {
  46. handleFish(p, hand);
  47. } else if (hand.getType() == Material.GOLDEN_APPLE) {
  48. handleGoldenApple(p, hand);
  49. } else if (hand.getType() == Material.SUGAR) {
  50. handleSugar(p, hand);
  51. }
  52. }
  53. }
  54.  
  55. @SuppressWarnings("deprecation")
  56. public void handleInkSac(Player p, ItemStack i)
  57. {
  58. System.out.println("handle inc sack");
  59. Damageable d = p;
  60. if (i.getData().getData() == 4)
  61. {
  62. dropEgg(p);
  63. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  64. if (i.getAmount() > 1)
  65. {
  66. if (p.getHealth() >= 15.0D)
  67. {
  68. d.setHealth(20.0D);
  69. if (p.getFoodLevel() >= 15) {
  70. p.setFoodLevel(20);
  71. } else {
  72. p.setFoodLevel(p.getFoodLevel() + 5);
  73. }
  74. }
  75. else
  76. {
  77. d.setHealth(d.getHealth() + 5.0D);
  78. if (p.getFoodLevel() >= 15) {
  79. p.setFoodLevel(20);
  80. } else {
  81. p.setFoodLevel(p.getFoodLevel() + 5);
  82. }
  83. }
  84. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  85. p.updateInventory();
  86. return;
  87. }
  88. if (i.getAmount() == 1)
  89. {
  90. if (p.getHealth() >= 15.0D)
  91. {
  92. d.setHealth(20.0D);
  93. if (p.getFoodLevel() >= 15) {
  94. p.setFoodLevel(20);
  95. } else {
  96. p.setFoodLevel(p.getFoodLevel() + 5);
  97. }
  98. }
  99. else
  100. {
  101. d.setHealth(d.getHealth() + 5.0D);
  102. if (p.getFoodLevel() >= 15) {
  103. p.setFoodLevel(20);
  104. } else {
  105. p.setFoodLevel(p.getFoodLevel() + 5);
  106. }
  107. }
  108. p.setItemInHand(new ItemStack(Material.AIR));
  109. p.updateInventory();
  110. return;
  111. }
  112. }
  113. if (i.getData().getData() == 14)
  114. {
  115. dropEgg(p);
  116. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  117. if (i.getAmount() > 1)
  118. {
  119. if (p.getHealth() >= 19.0D)
  120. {
  121. d.setHealth(20.0D);
  122. if (p.getFoodLevel() >= 19) {
  123. p.setFoodLevel(20);
  124. } else {
  125. p.setFoodLevel(p.getFoodLevel() + 1);
  126. }
  127. }
  128. else
  129. {
  130. d.setHealth(d.getHealth() + 1.0D);
  131. if (p.getFoodLevel() >= 19) {
  132. p.setFoodLevel(20);
  133. } else {
  134. p.setFoodLevel(p.getFoodLevel() + 1);
  135. }
  136. }
  137. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  138. p.updateInventory();
  139. return;
  140. }
  141. if (i.getAmount() == 1)
  142. {
  143. if (p.getHealth() >= 19.0D)
  144. {
  145. d.setHealth(20.0D);
  146. if (p.getFoodLevel() >= 19) {
  147. p.setFoodLevel(20);
  148. } else {
  149. p.setFoodLevel(p.getFoodLevel() + 1);
  150. }
  151. }
  152. else
  153. {
  154. d.setHealth(d.getHealth() + 1.0D);
  155. if (p.getFoodLevel() >= 19) {
  156. p.setFoodLevel(20);
  157. } else {
  158. p.setFoodLevel(p.getFoodLevel() + 1);
  159. }
  160. }
  161. p.setItemInHand(new ItemStack(Material.AIR));
  162. p.updateInventory();
  163. return;
  164. }
  165. }
  166. if (i.getData().getData() == 11)
  167. {
  168. dropEgg(p);
  169. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  170. if (i.getAmount() > 1)
  171. {
  172. if (p.getHealth() >= 13.0D)
  173. {
  174. d.setHealth(20.0D);
  175. if (p.getFoodLevel() >= 13) {
  176. p.setFoodLevel(20);
  177. } else {
  178. p.setFoodLevel(p.getFoodLevel() + 7);
  179. }
  180. }
  181. else
  182. {
  183. d.setHealth(d.getHealth() + 7.0D);
  184. if (p.getFoodLevel() >= 13) {
  185. p.setFoodLevel(20);
  186. } else {
  187. p.setFoodLevel(p.getFoodLevel() + 7);
  188. }
  189. }
  190. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  191. p.updateInventory();
  192. return;
  193. }
  194. if (i.getAmount() == 1)
  195. {
  196. if (p.getHealth() >= 13.0D)
  197. {
  198. d.setHealth(20.0D);
  199. if (p.getFoodLevel() >= 13) {
  200. p.setFoodLevel(20);
  201. } else {
  202. p.setFoodLevel(p.getFoodLevel() + 7);
  203. }
  204. }
  205. else
  206. {
  207. d.setHealth(d.getHealth() + 7.0D);
  208. if (p.getFoodLevel() >= 13) {
  209. p.setFoodLevel(20);
  210. } else {
  211. p.setFoodLevel(p.getFoodLevel() + 7);
  212. }
  213. }
  214. p.setItemInHand(new ItemStack(Material.AIR));
  215. p.updateInventory();
  216. return;
  217. }
  218. }
  219. if (i.getData().getData() == 15)
  220. {
  221. dropEgg(p);
  222. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  223. if (i.getAmount() > 1)
  224. {
  225. d.setHealth(20.0D);
  226. p.setFoodLevel(20);
  227. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  228. p.updateInventory();
  229. return;
  230. }
  231. if (i.getAmount() == 1)
  232. {
  233. d.setHealth(20.0D);
  234. p.setFoodLevel(20);
  235. p.setItemInHand(new ItemStack(Material.AIR));
  236. p.updateInventory();
  237. return;
  238. }
  239. }
  240. }
  241.  
  242. public void handleFish(Player p, ItemStack i)
  243. {
  244. Damageable d = p;
  245. dropEgg(p);
  246. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  247. if (i.getAmount() > 1)
  248. {
  249. if (p.getHealth() >= 12.0D)
  250. {
  251. d.setHealth(20.0D);
  252. if (p.getFoodLevel() >= 12) {
  253. p.setFoodLevel(20);
  254. } else {
  255. p.setFoodLevel(p.getFoodLevel() + 8);
  256. }
  257. }
  258. else
  259. {
  260. d.setHealth(d.getHealth() + 8.0D);
  261. if (p.getFoodLevel() >= 12) {
  262. p.setFoodLevel(20);
  263. } else {
  264. p.setFoodLevel(p.getFoodLevel() + 8);
  265. }
  266. }
  267. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  268. p.updateInventory();
  269. return;
  270. }
  271. if (i.getAmount() == 1)
  272. {
  273. if (p.getHealth() >= 12.0D)
  274. {
  275. d.setHealth(20.0D);
  276. if (p.getFoodLevel() >= 12) {
  277. p.setFoodLevel(20);
  278. } else {
  279. p.setFoodLevel(p.getFoodLevel() + 8);
  280. }
  281. }
  282. else
  283. {
  284. d.setHealth(d.getHealth() + 8.0D);
  285. if (p.getFoodLevel() >= 12) {
  286. p.setFoodLevel(20);
  287. } else {
  288. p.setFoodLevel(p.getFoodLevel() + 8);
  289. }
  290. }
  291. p.getInventory().remove(p.getItemInHand());
  292. p.setItemInHand(new ItemStack(Material.AIR));
  293. p.updateInventory();
  294. return;
  295. }
  296. }
  297.  
  298. public void handleGoldenApple(Player p, ItemStack i)
  299. {
  300. p.getWorld().playSound(p.getLocation(), Sound.EAT, 1.0F, 1.0F);
  301. if (!Cooldown.isInCooldown(p.getUniqueId(), "food_apple"))
  302. {
  303. Cooldown cd = new Cooldown(p.getUniqueId(), "food_apple", 10);
  304. cd.start();
  305.  
  306. p.removePotionEffect(PotionEffectType.ABSORPTION);
  307. p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 100, 2), true);
  308. if (i.getAmount() > 1)
  309. {
  310. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  311. p.updateInventory();
  312. return;
  313. }
  314. if (i.getAmount() == 1)
  315. {
  316. p.getInventory().remove(p.getItemInHand());
  317. p.setItemInHand(new ItemStack(Material.AIR));
  318. p.updateInventory();
  319. return;
  320. }
  321. }
  322. }
  323.  
  324. public void handleSugar(Player p, ItemStack i)
  325. {
  326. if (!Cooldown.isInCooldown(p.getUniqueId(), "food_sugar"))
  327. {
  328. Cooldown cd = new Cooldown(p.getUniqueId(), "food_sugar", 5);
  329. cd.start();
  330.  
  331. p.getWorld().playSound(p.getLocation(), Sound.BURP, 1.0F, 1.0F);
  332. p.sendMessage(ChatColor.GRAY + "*You feel a sugar rush*");
  333.  
  334. p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 100, 0), true);
  335. if (i.getAmount() > 1)
  336. {
  337. p.getItemInHand().setAmount(p.getItemInHand().getAmount() - 1);
  338. p.updateInventory();
  339. return;
  340. }
  341. if (i.getAmount() == 1)
  342. {
  343. p.setItemInHand(new ItemStack(Material.AIR));
  344. p.updateInventory();
  345. return;
  346. }
  347. }
  348. }
  349.  
  350. public boolean isFood(Material m)
  351. {
  352. if ((m == Material.INK_SACK) ||
  353. (m == Material.COOKED_FISH) ||
  354. (m == Material.GOLDEN_APPLE) ||
  355. (m == Material.SUGAR)) {
  356. return true;
  357. }
  358. return false;
  359. }
  360.  
  361. private void dropEgg(Player p)
  362. {
  363. ItemStack i1 = new ItemStack(Material.EGG);
  364. ItemMeta i1m = i1.getItemMeta();
  365. i1m.setDisplayName(ChatColor.DARK_GRAY + "Empty Can");
  366. i1.setItemMeta(i1m);
  367. p.getWorld().dropItemNaturally(p.getLocation(), i1);
  368. }
  369.  
  370. @EventHandler
  371. public void onDamage(EntityDamageByEntityEvent e)
  372. {
  373. if ((e.getEntity() instanceof Player))
  374. {
  375. Player p = (Player)e.getEntity();
  376. if (Cooldown.isInCooldown(p.getUniqueId(), "food_apple")) {
  377. e.setCancelled(true);
  378. }
  379. }
  380. }
  381.  
  382. @EventHandler
  383. public void onCmd(PlayerCommandPreprocessEvent e)
  384. {
  385. if (e.getMessage().startsWith("/dfood"))
  386. {
  387. e.getPlayer().sendMessage(ChatColor.GREEN + "[dFood] " + ChatColor.GRAY + "is running!");
  388. e.setCancelled(true);
  389. }
  390. }
  391.  
  392. @EventHandler
  393. public void onQuit(PlayerQuitEvent e)
  394. {
  395. World w = e.getPlayer().getWorld();
  396. e.getPlayer().teleport(w.getSpawnLocation());
  397. }
  398.  
  399. @SuppressWarnings("deprecation")
  400. @EventHandler
  401. public void projectileHit(ProjectileHitEvent e)
  402. {
  403. if ((e.getEntity() instanceof Snowball))
  404. {
  405. BlockIterator iterator = new BlockIterator(e.getEntity().getWorld(), e.getEntity().getLocation().toVector(), e.getEntity().getVelocity().normalize(), 0.0D, 4);
  406. Block hitBlock = null;
  407. while (iterator.hasNext())
  408. {
  409. hitBlock = iterator.next();
  410. if (hitBlock.getTypeId() != 0) {
  411. break;
  412. }
  413. }
  414. if ((hitBlock.getType() == Material.GLASS) || (hitBlock.getType() == Material.THIN_GLASS))
  415. {
  416. e.getEntity().getLocation().getWorld().playEffect(hitBlock.getLocation(), Effect.STEP_SOUND, hitBlock.getTypeId());
  417. hitBlock.setType(Material.AIR);
  418. }
  419. }
  420. }
  421.  
  422. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement