/src/com/worldcretornica/amaterasu/Amaterasu.java

https://github.com/ZachBora/Amaterasu · Java · 152 lines · 117 code · 28 blank · 7 comment · 19 complexity · 212a3f61d8f70623193760e53f98f081 MD5 · raw file

  1. package com.worldcretornica.amaterasu;
  2. import java.util.HashSet;
  3. import java.util.Set;
  4. import java.util.logging.Logger;
  5. import org.bukkit.ChatColor;
  6. import org.bukkit.command.Command;
  7. import org.bukkit.command.CommandSender;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.Event;
  10. import org.bukkit.plugin.Plugin;
  11. import org.bukkit.plugin.PluginDescriptionFile;
  12. import org.bukkit.plugin.PluginManager;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14. import com.nijiko.permissions.PermissionHandler;
  15. import com.nijikokun.bukkit.Permissions.Permissions;
  16. public class Amaterasu extends JavaPlugin {
  17. public final JutsuListener jutsulistener = new JutsuListener(this);
  18. public final Set<Player> jutsuplayers = new HashSet<Player>();
  19. public final Set<Player> sneakingjutsuplayers = new HashSet<Player>();
  20. public final Logger logger = Logger.getLogger("Minecraft");
  21. public String pdfdescription;
  22. private String pdfversion;
  23. // Permissions
  24. public PermissionHandler permissions;
  25. boolean permissions3;
  26. @Override
  27. public void onDisable() {
  28. this.logger.info(pdfdescription + " disabled.");
  29. }
  30. @Override
  31. public void onEnable() {
  32. PluginManager pm = getServer().getPluginManager();
  33. pm.registerEvent(Event.Type.PLAYER_TOGGLE_SNEAK, this.jutsulistener, Event.Priority.Normal, this);
  34. pm.registerEvent(Event.Type.PLAYER_ANIMATION, this.jutsulistener, Event.Priority.Normal, this);
  35. pm.registerEvent(Event.Type.PLAYER_MOVE, this.jutsulistener, Event.Priority.Normal, this);
  36. PluginDescriptionFile pdfFile = this.getDescription();
  37. pdfdescription = pdfFile.getName();
  38. pdfversion = pdfFile.getVersion();
  39. setupPermissions();
  40. this.logger.info(pdfdescription + " version " + pdfversion + " is enabled!");
  41. }
  42. @Override
  43. public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  44. {
  45. if (label.equalsIgnoreCase("amaterasu"))
  46. {
  47. if (sender instanceof Player)
  48. {
  49. if (!this.checkPermissions((Player) sender, "Amaterasu.fire"))
  50. {
  51. sender.sendMessage("[" + pdfdescription + "] Permissions Denied");
  52. }else{
  53. toggleJutsuPlayer((Player) sender);
  54. }
  55. return true;
  56. }else{
  57. return false;
  58. }
  59. }else{
  60. return false;
  61. }
  62. }
  63. public boolean isJutsuPlayer(Player player)
  64. {
  65. return jutsuplayers.contains(player);
  66. }
  67. public boolean isSneakingJutsuPlayers(Player player)
  68. {
  69. return sneakingjutsuplayers.contains(player);
  70. }
  71. public void toggleJutsuPlayer(Player player)
  72. {
  73. if (isJutsuPlayer(player))
  74. {
  75. jutsuplayers.remove(player);
  76. player.sendMessage(ChatColor.RED + "Amaterasu Disabled.");
  77. }else{
  78. jutsuplayers.add(player);
  79. player.sendMessage(ChatColor.RED + "Amaterasu Enabled. Press SNEAK (shift) to set ablaze!");
  80. }
  81. }
  82. public void toggleSneakingJutsuPlayer(Player player, boolean enable)
  83. {
  84. if (isSneakingJutsuPlayers(player) && !enable)
  85. {
  86. sneakingjutsuplayers.remove(player);
  87. }else if (enable){
  88. sneakingjutsuplayers.add(player);
  89. }
  90. }
  91. private void setupPermissions() {
  92. if(permissions != null)
  93. return;
  94. Plugin permTest = this.getServer().getPluginManager().getPlugin("Permissions");
  95. // Check to see if Permissions exists
  96. if (permTest == null) {
  97. logger.info("[" + pdfdescription + "] Permissions not found, using SuperPerms");
  98. return;
  99. }
  100. // Check if it's a bridge
  101. if (permTest.getDescription().getVersion().startsWith("2.7.7")) {
  102. logger.info("[" + pdfdescription + "] Found Permissions Bridge. Using SuperPerms");
  103. return;
  104. }
  105. // We're using Permissions
  106. permissions = ((Permissions) permTest).getHandler();
  107. // Check for Permissions 3
  108. permissions3 = permTest.getDescription().getVersion().startsWith("3");
  109. logger.info("[" + pdfdescription + "] Permissions " + permTest.getDescription().getVersion() + " found");
  110. }
  111. public Boolean checkPermissions(Player player, String node) {
  112. // Permissions
  113. if (this.permissions != null) {
  114. if (this.permissions.has(player, node))
  115. return true;
  116. // SuperPerms
  117. } else if (player.hasPermission(node)) {
  118. return true;
  119. } else if (player.isOp()) {
  120. return true;
  121. }
  122. return false;
  123. }
  124. }