Advertisement
Guest User

edited Main

a guest
Jun 14th, 2014
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.10 KB | None | 0 0
  1. package com.rocketmail.live2pwn;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Random;
  5. import java.util.logging.Logger;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.Effect;
  10. import org.bukkit.Location;
  11. import org.bukkit.Material;
  12. import org.bukkit.block.Block;
  13. import org.bukkit.command.Command;
  14. import org.bukkit.command.CommandSender;
  15. import org.bukkit.entity.Item;
  16. import org.bukkit.entity.Player;
  17. import org.bukkit.event.EventHandler;
  18. import org.bukkit.event.Listener;
  19. import org.bukkit.event.block.Action;
  20. import org.bukkit.event.inventory.InventoryCloseEvent;
  21. import org.bukkit.event.player.PlayerInteractEvent;
  22. import org.bukkit.inventory.Inventory;
  23. import org.bukkit.inventory.ItemStack;
  24. import org.bukkit.inventory.meta.ItemMeta;
  25. import org.bukkit.plugin.PluginDescriptionFile;
  26. import org.bukkit.plugin.java.JavaPlugin;
  27.  
  28. public class Main extends JavaPlugin implements Listener{
  29.  
  30. public final static Logger logger = Logger.getLogger("Minecraft");
  31. public static Main plugin;
  32. public static String prefix = "[UnCft] ";
  33.  
  34. public static Inventory inventory;
  35. public static ItemStack d = new ItemStack(Material.ENDER_PORTAL, 1);
  36. public static ArrayList<UncraftRecipe> recipes = new ArrayList<UncraftRecipe>();
  37. public static ArrayList<String> playersInTable = new ArrayList<String>();
  38.  
  39. @Override
  40. public void onDisable(){
  41. int r = new Random().nextInt(5);
  42. switch(r){
  43. case 0: this.logger.info(prefix + "Goodbye."); break;
  44. case 1: this.logger.info(prefix + "Shutting down."); break;
  45. case 2: this.logger.info(prefix + "I dont hate you."); break;
  46. case 3: this.logger.info(prefix + "No hard feelings."); break;
  47. case 4: this.logger.info(prefix + "Sleep mode activated."); break;
  48. case 5: this.logger.info(prefix + "Are you still there?"); break;
  49. }
  50. }
  51.  
  52. @Override
  53. public void onEnable(){
  54. initializeItems();
  55. Bukkit.getPluginManager().registerEvents(this, this);
  56. Bukkit.getPluginManager().registerEvents(new UncraftManager(), this);
  57. new UncraftingRecipes();
  58. UncraftingRecipes.initializeRecipes();
  59. int r = new Random().nextInt(5);
  60. switch(r){
  61. case 0: this.logger.info(prefix + "Hellooo."); break;
  62. case 1: this.logger.info(prefix + "Sentry mode activated.");break;
  63. case 2: this.logger.info(prefix + "There you are.");break;
  64. case 3: this.logger.info(prefix + "I see you.");break;
  65. case 4: this.logger.info(prefix + "Could you come over here?");break;
  66. case 5: this.logger.info(prefix + "Who are you?");break;
  67. }
  68. Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  69. public void run() {
  70. for(Player p : Bukkit.getOnlinePlayers()){
  71. runEffectChecker(p);
  72. if(playersInTable.contains(p.getName())){
  73. UncraftManager.runUnCraft(inventory);
  74. }
  75. }
  76. }
  77. }, 1L, 1L);
  78. }
  79.  
  80. public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
  81. {
  82. Player p = (Player)sender;
  83. if (p.hasPermission("uncrft.ver")) {
  84. if (commandLabel.equalsIgnoreCase("uncft")) {
  85. PluginDescriptionFile pdf = this.getDescription();
  86. p.sendMessage(ChatColor.GOLD + "[" + ChatColor.YELLOW + "UnCft" + ChatColor.GOLD + "]" + ChatColor.DARK_AQUA + " Uncrafting Table V" + pdf.getVersion() + " developed by Live2Pwn (A.k.a live2pwn2010).");
  87. }
  88. } else {
  89. p.sendMessage(ChatColor.DARK_RED + "You do not have permission to perform this command!");
  90. }
  91.  
  92. return false;
  93. }
  94.  
  95. @EventHandler
  96. public void onPlayerInteract(PlayerInteractEvent evt){
  97. Player p = evt.getPlayer();
  98. if (p.hasPermission("some.pointless.permission")) {
  99. if(evt.getClickedBlock() != null){
  100. if(evt.getClickedBlock().getType() == Material.WORKBENCH && evt.getAction() == Action.RIGHT_CLICK_BLOCK && isUncraftingTable(evt.getClickedBlock())){
  101. evt.setCancelled(true);
  102. openUT(p);
  103. playersInTable.add(p.getName());
  104.  
  105. } else {
  106. p.sendMessage(ChatColor.DARK_RED + "You do not have permission to use UnCraft Table!");
  107. }
  108. }
  109. }
  110. }
  111.  
  112. @EventHandler
  113. public void onPlayerCloseInventory(InventoryCloseEvent evt){
  114. playersInTable.remove(evt.getPlayer().getName());
  115. if(evt.getInventory().getTitle() != null && evt.getInventory().getTitle().equals(Main.inventory.getName())){
  116. for(ItemStack i : evt.getInventory().getContents()){
  117. if(i != null && !i.isSimilar(d)){
  118. Item dropped = evt.getPlayer().getWorld().dropItem(evt.getPlayer().getLocation(), i);
  119. }
  120. }
  121. }
  122. }
  123.  
  124. public void runEffectChecker(Player p){
  125. int range = 20;
  126. Location loc = p.getLocation();
  127. int x_start = loc.getBlockX() - (range/2);
  128. int y_start = loc.getBlockY() - (range/2);
  129. int z_start = loc.getBlockZ() - (range/2);
  130.  
  131. int x_length = x_start + range;
  132. int y_length = y_start + range;
  133. int z_length = z_start + range;
  134.  
  135. for(int x_operate = x_start; x_operate <= x_length; x_operate++){
  136. for(int y_operate = y_start; y_operate <= y_length; y_operate++){
  137. for(int z_operate = z_start; z_operate <= z_length; z_operate++){
  138. Block blockToChange = loc.getWorld().getBlockAt(x_operate,y_operate,z_operate);
  139. Block b = blockToChange;
  140. if(isUncraftingTable(b)){
  141. int r = new Random().nextInt(8);
  142. if(r == 2){
  143. p.getWorld().playEffect(b.getLocation(), Effect.MOBSPAWNER_FLAMES, 2004);
  144. }
  145. }
  146. }
  147. }
  148. }
  149. }
  150.  
  151. public static boolean isUncraftingTable(Block b){
  152. boolean isUT = false;
  153. if(b.getType() == Material.WORKBENCH){
  154. if(b.getLocation().add(0.0, -1.0, 0).getBlock().getType() == Material.COBBLESTONE){
  155. isUT = true;
  156. }
  157. }
  158. if(isUT){
  159. return true;
  160. }else{
  161. return false;
  162. }
  163. }
  164.  
  165. public void initializeItems(){
  166. inventory = Bukkit.createInventory(null, 45, "Uncrafting");
  167. ItemMeta mitem = d.getItemMeta();
  168. mitem.setDisplayName(" ");
  169. d.setItemMeta(mitem);
  170. }
  171.  
  172. public void openUT(Player p){
  173. inventory = Bukkit.createInventory(p, 45, "Uncrafting");
  174.  
  175. for(int i = 0; i < 45; i++){
  176. if(i != 19 && i != 12 && i != 13 && i != 14 && i != 12 && i != 21 && i != 22 && i != 23 && i != 25 && i != 30 && i != 31 && i != 32){
  177. inventory.setItem(i, d);
  178.  
  179. }
  180. }
  181. p.openInventory(inventory);
  182. }
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement