Advertisement
Guest User

Untitled

a guest
Dec 19th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. package com.battlepvp.crafttnt;
  2. import com.google.common.collect.Lists;
  3. import org.bukkit.ChatColor;
  4. import org.bukkit.Material;
  5. import org.bukkit.command.Command;
  6. import org.bukkit.command.CommandSender;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.inventory.ItemStack;
  9. import org.bukkit.plugin.java.JavaPlugin;
  10.  
  11. import java.util.Iterator;
  12. import java.util.List;
  13.  
  14. public class CraftTNT
  15. extends JavaPlugin
  16. {
  17. public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  18. {
  19. if (!Player.class.isAssignableFrom(sender.getClass()))
  20. {
  21. getServer().getLogger().info("Console can not use this command");
  22. return false;
  23. }
  24. Player p = (Player)sender;
  25. ItemStack[] invContents = p.getInventory().getContents();
  26.  
  27. int sulphur = 0;
  28. int sand = 0;
  29.  
  30. for (ItemStack itm : invContents) {
  31. if ((itm != null) && (itm.getType() != Material.AIR)) {
  32. if ((itm.getType() == Material.SULPHUR) && (!itm.hasItemMeta())) {
  33. sulphur += itm.getAmount();
  34. } else if ((itm.getType() == Material.SAND) && (!itm.hasItemMeta())) {
  35. sand += itm.getAmount();
  36. }
  37. }
  38. }
  39. int max = sulphur / 5 > sand / 4 ? sand / 4 : sulphur / 5;
  40. if (max < 1)
  41. {
  42. sender.sendMessage(ChatColor.RED + "You don't have the materials to craft TNT");
  43. }
  44. else
  45. {
  46. int removeSand = 4 * max;
  47.  
  48. int removeSulphur = 5 * max;
  49.  
  50. for (ItemStack stack : p.getInventory().getContents()) {
  51. if (stack == null || stack.getType() == Material.AIR)
  52. continue;
  53. if (removeSand <= 0)
  54. break;
  55.  
  56. if (stack.getType().equals(Material.SAND)) {
  57. if (removeSand >= stack.getAmount()) {
  58. p.getInventory().removeItem(stack);
  59. removeSand -= (stack.getAmount());
  60. } else {
  61. int remove_amount = stack.getAmount() - removeSand;
  62. removeSand -= remove_amount;
  63.  
  64. stack.setAmount(remove_amount);
  65. }
  66. }
  67. }
  68.  
  69. p.getInventory().removeItem(new ItemStack[]{new ItemStack(Material.SULPHUR, removeSulphur)});
  70. p.getInventory().addItem(new ItemStack[] { new ItemStack(Material.TNT, max) });
  71.  
  72. p.sendMessage(ChatColor.GREEN + "Successfully crafted " + max + " TNT");
  73. }
  74. return true;
  75. }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement