PageRenderTime 62ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/src/me/cain/cfbook/CFBook.java

https://github.com/CainFoool/CFBook
Java | 439 lines | 372 code | 32 blank | 35 comment | 113 complexity | 0210960a68555cd484d68ea6f7edfe9a MD5 | raw file
  1. package me.cain.cfbook;
  2. import java.io.IOException;
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5. import java.net.URLConnection;
  6. import java.util.logging.Logger;
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.GameMode;
  10. import org.bukkit.Location;
  11. import org.bukkit.World;
  12. import org.bukkit.World.Environment;
  13. import org.bukkit.command.Command;
  14. import org.bukkit.command.CommandSender;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.Event.Priority;
  17. import org.bukkit.event.Event.Type;
  18. import org.bukkit.plugin.Plugin;
  19. import org.bukkit.plugin.PluginManager;
  20. import org.bukkit.plugin.java.JavaPlugin;
  21. import org.bukkit.util.Vector;
  22. import com.nijiko.permissions.PermissionHandler;
  23. import com.nijikokun.bukkit.Permissions.Permissions;
  24. public class CFBook extends JavaPlugin {
  25. Logger log = Logger.getLogger("Minecraft");
  26. public static boolean LightningAxe;
  27. public static boolean LockDown;
  28. public static PermissionHandler permissionHandler;
  29. public void onEnable() {
  30. PluginManager pm = getServer().getPluginManager();
  31. log.info("[CFBook] CFBook has been enabled!");
  32. log.info("[CFBook] CFBook was created by CainFoool!");
  33. pm.registerEvent(Type.PLAYER_INTERACT, new PListener(), Priority.Normal, this);
  34. pm.registerEvent(Type.PLAYER_JOIN, new PListener(), Priority.Normal, this);
  35. setupPerms();
  36. }
  37. public void onDisable() {
  38. log.info("[CFBook] CFBook has been disabled!");
  39. }
  40. private void setupPerms() {
  41. if (permissionHandler != null) {
  42. return;
  43. }
  44. Plugin permissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions");
  45. if (permissionsPlugin == null) {
  46. log.info("[CFBook] Permissions not detected. Going to OP!");
  47. return;
  48. }
  49. permissionHandler = ((Permissions) permissionsPlugin).getHandler();
  50. log.info("[CFBook] Permissions found. Using " + ((Permissions)permissionsPlugin).getDescription().getFullName());
  51. }
  52. public static boolean pCheck(String node, Player player) {
  53. Plugin permissionsPlugin = Bukkit.getServer().getPluginManager().getPlugin("Permissions");
  54. if(permissionsPlugin == null) {
  55. return player.isOp();
  56. } else {
  57. CFBook.permissionHandler.has(player, node);
  58. }
  59. return false;
  60. }
  61. public boolean onCommand(CommandSender sender, Command cmd, String label, String [] args) {
  62. Player p = (Player) sender;
  63. Player [] derp = Bukkit.getServer().getOnlinePlayers();
  64. if(label.equalsIgnoreCase("tp")) {
  65. if(args.length < 1) {
  66. p.sendMessage("/tp player");
  67. } else {
  68. if(pCheck("cfbook.teleport.to", ((Player) sender))) {
  69. Player tpp = getServer().getPlayer(args[0]);
  70. if(tpp != null) {
  71. p.teleport(tpp);
  72. p.sendMessage("Successfully teleported to " + args[0]);
  73. } else {
  74. p.sendMessage(ChatColor.RED + "Player " + args[0] + " is not online!");
  75. }
  76. } else {
  77. p.sendMessage(ChatColor.RED + "You don't have permission!");
  78. }
  79. }
  80. }
  81. if(label.equalsIgnoreCase("tphere")) {
  82. if(args.length < 1) {
  83. p.sendMessage("/tphere player");
  84. } else {
  85. if (pCheck("cfbook.teleport.here", ((Player) sender))) {
  86. Player tpp = getServer().getPlayer(args[0]);
  87. if(tpp != null) {
  88. tpp.teleport(p.getLocation());
  89. p.sendMessage(args[0] + " teleported to you successfully!");
  90. tpp.sendMessage(p.getDisplayName() + " teleported you to them.");
  91. } else {
  92. p.sendMessage(ChatColor.RED + "Player " + args[0] + " is not online!");
  93. }
  94. } else {
  95. p.sendMessage("You don't have permission!");
  96. }
  97. }
  98. }
  99. if(label.equalsIgnoreCase("scare")) {
  100. if(args.length < 1) {
  101. p.sendMessage("/scare player");
  102. } else {
  103. if(pCheck("cfbook.scare", ((Player) sender))) {
  104. Location loc = getServer().getPlayer(args[0]).getLocation();
  105. World loc2 = getServer().getPlayer(args[0]).getWorld();
  106. Player scared = getServer().getPlayer(args[0]);
  107. loc2.strikeLightningEffect(loc);
  108. p.sendMessage("Scared " + args[0] + " successfully!");
  109. scared.sendMessage(((Player) sender).getDisplayName() + " scared you!");
  110. } else {
  111. p.sendMessage(ChatColor.RED + "You don't have permission!");
  112. }
  113. }
  114. }
  115. if(label.equalsIgnoreCase("cfbversion")) {
  116. p.sendMessage(ChatColor.GREEN + "CFBook");
  117. p.sendMessage("Version: 1.15");
  118. }
  119. if(label.equalsIgnoreCase("time")) {
  120. if(args.length < 1) {
  121. p.sendMessage("/time <day/night");
  122. } else {
  123. if(pCheck("cfbook.world.time", ((Player) sender))) {
  124. if(args[0].equalsIgnoreCase("day")) {
  125. p.getWorld().setTime(0);
  126. getServer().broadcastMessage(ChatColor.GOLD + p.getDisplayName() + " made it day time!");
  127. }
  128. if(args[0].equalsIgnoreCase("night")) {
  129. p.getWorld().setTime(1000000);
  130. getServer().broadcastMessage(ChatColor.GOLD + p.getDisplayName() + " made it night time!");
  131. }
  132. } else {
  133. p.sendMessage(ChatColor.RED + "You don't have permission!");
  134. }
  135. }
  136. }
  137. if(label.equalsIgnoreCase("lightningaxe")) {
  138. if(args.length < 1) {
  139. p.sendMessage("/lightningaxe on/off");
  140. } else {
  141. if(pCheck("cfbook.lightningaxe", ((Player) sender))) {
  142. if(args[0].equalsIgnoreCase("on")) {
  143. LightningAxe = true;
  144. p.sendMessage("The almighty Lightning Axe has been enabled!");
  145. p.sendMessage("TO USE: Left click with Gold Axe (only on blocks)");
  146. }
  147. if(args[0].equalsIgnoreCase("off")) {
  148. LightningAxe = false;
  149. p.sendMessage("The almighty Lightning Axe has been disabled!");
  150. }
  151. } else {
  152. p.sendMessage(ChatColor.RED + "You don't have permission!");
  153. }
  154. }
  155. }
  156. /* if(label.equalsIgnoreCase("i")) {
  157. if(args.length < 1) {
  158. p.sendMessage("/i <player> <itemid>");
  159. } else if(args[1].length() < 1) {
  160. p.sendMessage("Please specify an item (ID)");
  161. } else if(args[0].length() < 1) {
  162. p.sendMessage("Please specify a player.");
  163. } else {
  164. if(p.isOp()) {
  165. Player pl = getServer().getPlayer(args[0]);
  166. pl.getInventory().addItem(new ItemStack(Integer.parseInt(args[0]), 64));
  167. p.sendMessage(ChatColor.RED + "Gave " + pl.getDisplayName() + " some " + args[1]);
  168. } else {
  169. p.sendMessage(ChatColor.RED + "You don't have permission!");
  170. }
  171. }
  172. }
  173. Disabled for the time being. Sorry!
  174. */
  175. if(label.equalsIgnoreCase("creative")) {
  176. if(args.length < 1) {
  177. p.sendMessage("/creative on/off");
  178. } else {
  179. if(pCheck("cfbook.world.creative", ((Player) sender))) {
  180. if(args[0].equalsIgnoreCase("on")) {
  181. for(Player p2: derp) {
  182. p2.setGameMode(GameMode.CREATIVE);
  183. }
  184. getServer().broadcastMessage(ChatColor.GREEN + p.getDisplayName() + " has enabled Creative Building!");
  185. }
  186. if(args[0].equalsIgnoreCase("off")) {
  187. for(Player p2: derp) {
  188. p2.setGameMode(GameMode.SURVIVAL);
  189. }
  190. getServer().broadcastMessage(ChatColor.GREEN + p.getDisplayName() + " has disabled Creative Building!");
  191. }
  192. } else {
  193. p.sendMessage(ChatColor.RED + "You don't have permission!");
  194. }
  195. }
  196. }
  197. if(label.equalsIgnoreCase("weather")) {
  198. if(args.length < 1) {
  199. p.sendMessage("/weather sun/rain");
  200. } else {
  201. if(pCheck("cfbook.world.weather", ((Player) sender))) {
  202. if(args[0].equalsIgnoreCase("sun")) {
  203. p.getWorld().setStorm(false);
  204. p.getWorld().setThundering(false);
  205. getServer().broadcastMessage(ChatColor.GOLD + p.getDisplayName() + " has made it sunny!");
  206. }
  207. if(args[0].equalsIgnoreCase("rain")) {
  208. p.getWorld().setStorm(true);
  209. p.getWorld().setThundering(true);
  210. getServer().broadcastMessage(ChatColor.GOLD + p.getDisplayName() + " has made it rain!");
  211. }
  212. } else {
  213. p.sendMessage(ChatColor.RED + "You don't have permission!");
  214. }
  215. }
  216. }
  217. if(label.equalsIgnoreCase("rocket")) {
  218. if(args.length < 1) {
  219. p.sendMessage("/rocket <player>");
  220. } else {
  221. Player p2 = getServer().getPlayer(args[0]);
  222. if(pCheck("cfbook.player.rocket", ((Player) sender))) {
  223. p2.setVelocity(new Vector(0, 50, 0));
  224. p.sendMessage("You shot " + p2.getDisplayName() + " into the sky!");
  225. } else {
  226. return false;
  227. }
  228. }
  229. }
  230. if(label.equalsIgnoreCase("clearinv")) {
  231. if(pCheck("cfbook.player.clearinv", ((Player) sender))) {
  232. p.getInventory().clear();
  233. p.sendMessage("Inventory cleared!");
  234. } else {
  235. p.sendMessage(ChatColor.RED + "You don't have permission!");
  236. }
  237. }
  238. /* if(label.equalsIgnoreCase("drop")) {
  239. if(args.length < 1) {
  240. p.sendMessage("/drop id");
  241. } else {
  242. if(p.isOp()) {
  243. p.getWorld().dropItemNaturally(p.getLocation(), new ItemStack(Material.STONE));
  244. } else {
  245. p.sendMessage(ChatColor.RED + "You don't have permission!");
  246. }
  247. }
  248. }
  249. Disabled for the time being. Sorry!
  250. */
  251. if(label.equalsIgnoreCase("lockdown")) {
  252. if(args.length < 1) {
  253. p.sendMessage("/lockdown on/off");
  254. } else {
  255. if(p.isOp()) {
  256. if(args[0].equalsIgnoreCase("on"))
  257. {
  258. LockDown = true;
  259. p.sendMessage("Server is now in lockdown.");
  260. LockDownKick();
  261. }
  262. }
  263. if(args[0].equalsIgnoreCase("off"))
  264. {
  265. LockDown = false;
  266. p.sendMessage("Server disabled lockdown mode.");
  267. }
  268. else {
  269. p.sendMessage(ChatColor.RED + "You don't have permission!");
  270. }
  271. }
  272. }
  273. if(label.equalsIgnoreCase("heal")) {
  274. if(args.length < 1)
  275. {
  276. p.sendMessage("/heal [player]");
  277. } else {
  278. if(pCheck("cfbook.player.heal", ((Player) sender))) {
  279. Bukkit.getServer().getPlayer(args[0]).setHealth(20);
  280. p.sendMessage(args[0] + " healed!");
  281. }
  282. else {
  283. p.sendMessage(ChatColor.RED + "You don't have permission!");
  284. }
  285. }
  286. }
  287. if(label.equalsIgnoreCase("world"))
  288. {
  289. if(args.length < 1)
  290. {
  291. p.sendMessage("/world <create,unload,tp> <world>");
  292. }
  293. else {
  294. if(args[0].equalsIgnoreCase("create"))
  295. {
  296. if(args[1].equals(""))
  297. {
  298. p.sendMessage("/world create [world]");
  299. }
  300. else {
  301. if(pCheck("cfbook.world.create", ((Player) sender)))
  302. {
  303. p.sendMessage("Creating world..");
  304. Bukkit.getServer().createWorld(args[1].toString(), Environment.NORMAL);
  305. p.sendMessage("Created!");
  306. } else {
  307. p.sendMessage(ChatColor.RED + "You have no permission!");
  308. }
  309. }
  310. }
  311. if(args[0].equalsIgnoreCase("unload"))
  312. {
  313. if(args[1].equals(""))
  314. {
  315. p.sendMessage("/world unload [world]");
  316. }
  317. else {
  318. if(pCheck("cfbook.world.unload", ((Player) sender)))
  319. {
  320. p.sendMessage("Unloading world..");
  321. Bukkit.getServer().unloadWorld(args[1].toString(), true);
  322. p.sendMessage("Unloaded!");
  323. } else {
  324. p.sendMessage(ChatColor.RED + "You have no permission!");
  325. }
  326. }
  327. }
  328. if(args[0].equalsIgnoreCase("tp"))
  329. {
  330. if(args[1].equals(""))
  331. {
  332. p.sendMessage("/world tp [world]");
  333. }
  334. else {
  335. if(pCheck("cfbook.world.tp", ((Player) sender)))
  336. {
  337. p.teleport(Bukkit.getWorld(args[1]).getSpawnLocation());
  338. } else {
  339. p.sendMessage(ChatColor.RED + "You have no permission!");
  340. }
  341. }
  342. }
  343. }
  344. }
  345. if(label.equalsIgnoreCase("kickall"))
  346. {
  347. if(pCheck("cfbook.player.kickall", ((Player) sender)))
  348. {
  349. for(Player derps: Bukkit.getServer().getOnlinePlayers())
  350. {
  351. if(pCheck("cfbook.player.kickall.bypass", ((Player) sender))) {
  352. return false;
  353. } else {
  354. derps.kickPlayer("Kicked all players!");
  355. }
  356. }
  357. }
  358. else {
  359. p.sendMessage(ChatColor.RED + "You have no permission!");
  360. }
  361. }
  362. if(label.equalsIgnoreCase("nick"))
  363. {
  364. if(args.length < 1)
  365. {
  366. p.sendMessage("/nick [nickname]");
  367. } else {
  368. if(pCheck("cfbook.player.nick", ((Player) sender)))
  369. {
  370. p.setDisplayName(args[0]);
  371. }
  372. else {
  373. p.sendMessage(ChatColor.RED + "You have no permission!");
  374. }
  375. }
  376. }
  377. if(label.equalsIgnoreCase("shutdown"))
  378. {
  379. if(pCheck("cfbook.shutdown", ((Player) sender)))
  380. {
  381. getServer().broadcastMessage(ChatColor.GREEN + ((Player) sender).getDisplayName() + " has initiated a shutdown.");
  382. Bukkit.getServer().shutdown();
  383. }
  384. else {
  385. p.sendMessage(ChatColor.RED + "You have no permission!");
  386. }
  387. }
  388. return false;
  389. }
  390. public void LockDownKick()
  391. {
  392. Player[] p2 = Bukkit.getServer().getOnlinePlayers();
  393. for(Player p: p2)
  394. {
  395. if(!p.isOp()){
  396. p.kickPlayer("The server has switched to lockdown.");
  397. }
  398. else
  399. {
  400. return;
  401. }
  402. }
  403. }
  404. }