/src/com/github/TeamRA/FactoryFurnace/FactoryFurnace.java

https://github.com/The414s/FactoryFurnace · Java · 214 lines · 178 code · 26 blank · 10 comment · 41 complexity · 618e7093a99cb9f2087087b07a8ccd46 MD5 · raw file

  1. package com.github.TeamRA.FactoryFurnace;
  2. import java.util.logging.Logger;
  3. import org.bukkit.command.Command;
  4. import org.bukkit.command.CommandSender;
  5. import org.bukkit.entity.Player;
  6. import org.bukkit.event.Event;
  7. import org.bukkit.event.Event.Priority;
  8. import org.bukkit.plugin.Plugin;
  9. import org.bukkit.plugin.PluginDescriptionFile;
  10. import org.bukkit.plugin.PluginManager;
  11. import org.bukkit.plugin.java.JavaPlugin;
  12. import com.nijiko.permissions.PermissionHandler;
  13. import com.nijikokun.bukkit.Permissions.Permissions;
  14. public class FactoryFurnace extends JavaPlugin {
  15. public static boolean dev = false;
  16. public static FactoryFurnace plugin;
  17. public static final Logger log = Logger.getLogger("Minecraft");
  18. PluginDescriptionFile pdfFile = this.getDescription();
  19. private FurnaceBlockListener bl = new FurnaceBlockListener(this);
  20. private long timeToWait = 200;
  21. private int taskID;
  22. private boolean pm = false;
  23. private PermissionHandler sec;
  24. @Override
  25. public void onEnable() {
  26. plugin = this;
  27. WatchHandler.load();
  28. PluginManager pluginManager = getServer().getPluginManager();
  29. pluginManager.registerEvent(Event.Type.BLOCK_BREAK, bl,
  30. Priority.Normal, this);
  31. pluginManager.registerEvent(Event.Type.BLOCK_DAMAGE, bl,
  32. Priority.Normal, this);
  33. setupPermissions();
  34. taskID = getServer().getScheduler().scheduleSyncRepeatingTask(this,
  35. new FurnaceChecker(), 200, timeToWait);
  36. PluginDescriptionFile pdfFile = this.getDescription();
  37. System.out.println(pdfFile.getName() + " version "
  38. + pdfFile.getVersion() + " is enabled.");
  39. }
  40. private void setupPermissions() {
  41. Plugin permissionsPlugin = this.getServer().getPluginManager().getPlugin("Permissions");
  42. if (this.sec == null) {
  43. if (permissionsPlugin != null) {
  44. this.sec = ((Permissions) permissionsPlugin).getHandler();
  45. pm = true;
  46. } else {
  47. logw("Permission system not detected, Everyone has free access");
  48. }
  49. }
  50. }
  51. @Override
  52. public void onDisable() {
  53. getServer().getScheduler().cancelTask(taskID);
  54. PluginDescriptionFile pdfFile = this.getDescription();
  55. System.out.println(pdfFile.getName() + " version "
  56. + pdfFile.getVersion() + " disabled.");
  57. }
  58. public boolean onCommand(CommandSender sender, Command command,
  59. String label, String[] args) {
  60. String cmd = command.getName();
  61. if (!(sender instanceof Player)) {
  62. sender.sendMessage("These commands can only be used in-game!");
  63. return true;
  64. }
  65. Player player = (Player) sender;
  66. if (cmd.equals("FactoryFurnace")) {
  67. if (pm) {
  68. if (!sec.has(player,
  69. "FactoryFurnace.help")) {
  70. sender.sendMessage("You do not have permission to use this command!");
  71. return true;
  72. }
  73. // TODO list command help
  74. }
  75. if (args.length >= 1) {
  76. if (args[0].equals("add")) {
  77. if (pm) {
  78. if (!sec.has(player,
  79. "FactoryFurnace.add")) {
  80. sender.sendMessage("You do not have permission to use this command!");
  81. return true;
  82. }
  83. bl.addPlayer(player.getName(), "add");
  84. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  85. return true;
  86. }
  87. /*
  88. * TODO check if player is allowed to make more furnaces
  89. * TODO tell listener to watch for player click
  90. */
  91. } else if (args[0].equals("remove")) {
  92. if (pm) {
  93. if (!sec.has(player,
  94. "FactoryFurnace.remove")) {
  95. sender.sendMessage("You do not have permission to use this command!");
  96. return true;
  97. }
  98. bl.addPlayer(player.getName(), "remove");
  99. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  100. return true;
  101. }
  102. /*
  103. * MOVE: FurnaceBlockListener MAYBE check player rank is >
  104. * than other player TODO tell listener to watch for player
  105. * click
  106. */
  107. } else if (args[0].equals("info")) {
  108. if (pm) {
  109. if (!sec.has(player,
  110. "FactoryFurnace.info")) {
  111. sender.sendMessage("You do not have permission to use this command!");
  112. return true;
  113. }
  114. bl.addPlayer(player.getName(), "info");
  115. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  116. return true;
  117. }
  118. } else if (args[0].equals("name")) {
  119. if (pm) {
  120. if (!sec.has(player,
  121. "FactoryFurnace.info")) {
  122. sender.sendMessage("You do not have permission to use this command!");
  123. return true;
  124. }
  125. bl.addPlayer(player.getName(), "rename");
  126. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  127. return true;
  128. }
  129. return false;
  130. }
  131. }
  132. } else if (cmd.equals("ffa")) {
  133. if (pm) {
  134. if (!sec
  135. .has(player, "FactoryFurnace.add")) {
  136. sender.sendMessage("You do not have permission to use this command!");
  137. return true;
  138. }
  139. bl.addPlayer(player.getName(), "add");
  140. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  141. return true;
  142. }
  143. } else if (cmd.equals("ffr")) {
  144. if (pm) {
  145. if (!sec.has(player,
  146. "FactoryFurnace.remove")) {
  147. sender.sendMessage("You do not have permission to use this command!");
  148. return true;
  149. }
  150. bl.addPlayer(player.getName(), "remove");
  151. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  152. return true;
  153. }
  154. } else if (cmd.equals("ffi")) {
  155. if (pm) {
  156. if (!sec.has(player,
  157. "FactoryFurnace.info")) {
  158. sender.sendMessage("You do not have permission to use this command!");
  159. return true;
  160. }
  161. bl.addPlayer(player.getName(), "info");
  162. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  163. return true;
  164. } else if (cmd.equals("ffn")) {
  165. if (pm) {
  166. if (!sec.has(player,
  167. "FactoryFurnace.info")) {
  168. sender.sendMessage("You do not have permission to use this command!");
  169. return true;
  170. }
  171. bl.addPlayer(player.getName(), "rename");
  172. sender.sendMessage("[FactoryFurnace]Left click the furnace!");
  173. return true;
  174. }
  175. }
  176. }
  177. return false;
  178. }
  179. public void logi(String str) {
  180. log.info("[" + pdfFile.getName() + "] " + str);
  181. }
  182. public void logw(String str) {
  183. log.warning("[" + pdfFile.getName() + "] " + str);
  184. }
  185. public void logs(String str) {
  186. log.severe("[" + pdfFile.getName() + "] " + str);
  187. }
  188. }