/src/com/gmail/nossr50/mcPermissions.java

https://github.com/nickrak/mcMMO · Java · 331 lines · 303 code · 12 blank · 16 comment · 80 complexity · 016ee982405cceb5bb0357f574f2f19c MD5 · raw file

  1. /*
  2. This file is part of mcMMO.
  3. mcMMO is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 3 of the License, or
  6. (at your option) any later version.
  7. mcMMO is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with mcMMO. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. package com.gmail.nossr50;
  15. import java.util.logging.Logger;
  16. import org.bukkit.Server;
  17. import org.bukkit.entity.Player;
  18. import org.bukkit.plugin.Plugin;
  19. import ru.tehkode.permissions.PermissionManager;
  20. import ru.tehkode.permissions.bukkit.PermissionsEx;
  21. import com.nijiko.permissions.PermissionHandler;
  22. import com.nijikokun.bukkit.Permissions.Permissions;
  23. public class mcPermissions
  24. {
  25. private static volatile mcPermissions instance;
  26. private enum PermissionType {
  27. PEX, PERMISSIONS, BUKKIT
  28. }
  29. private static PermissionType permissionType;
  30. private static Object PHandle;
  31. public static boolean permissionsEnabled = false;
  32. public static void initialize(Server server)
  33. {
  34. Logger log = Logger.getLogger("Minecraft");
  35. if(permissionsEnabled && permissionType != PermissionType.PERMISSIONS) return;
  36. Plugin PEXtest = server.getPluginManager().getPlugin("PermissionsEx");
  37. Plugin test = server.getPluginManager().getPlugin("Permissions");
  38. if(PEXtest != null) {
  39. PHandle = (PermissionManager) PermissionsEx.getPermissionManager();
  40. permissionType = PermissionType.PEX;
  41. permissionsEnabled = true;
  42. log.info("[mcMMO] PermissionsEx found, using PermissionsEx.");
  43. } else if(test != null) {
  44. PHandle = (PermissionHandler) ((Permissions) test).getHandler();
  45. permissionType = PermissionType.PERMISSIONS;
  46. permissionsEnabled = true;
  47. log.info("[mcMMO] Permissions version "+test.getDescription().getVersion()+" found, using Permissions.");
  48. } else {
  49. permissionType = PermissionType.BUKKIT;
  50. permissionsEnabled = true;
  51. log.info("[mcMMO] Using Bukkit Permissions.");
  52. }
  53. }
  54. public static boolean getEnabled()
  55. {
  56. return permissionsEnabled;
  57. }
  58. public static boolean permission(Player player, String permission)
  59. {
  60. if(!permissionsEnabled) return player.isOp();
  61. switch(permissionType) {
  62. case PEX:
  63. return ((PermissionManager) PHandle).has(player, permission);
  64. case PERMISSIONS:
  65. return ((PermissionHandler) PHandle).has(player, permission);
  66. case BUKKIT:
  67. return player.hasPermission(permission);
  68. default:
  69. return true;
  70. }
  71. }
  72. public boolean admin(Player player){
  73. if (permissionsEnabled) {
  74. return permission(player, "mcmmo.admin");
  75. } else {
  76. return true;
  77. }
  78. }
  79. public boolean mcrefresh(Player player) {
  80. if (permissionsEnabled) {
  81. return permission(player, "mcmmo.tools.mcrefresh");
  82. } else {
  83. return true;
  84. }
  85. }
  86. public boolean mmoedit(Player player) {
  87. if (permissionsEnabled) {
  88. return permission(player, "mcmmo.tools.mmoedit");
  89. } else {
  90. return true;
  91. }
  92. }
  93. public boolean herbalismAbility(Player player){
  94. if (permissionsEnabled) {
  95. return permission(player, "mcmmo.ability.herbalism");
  96. } else {
  97. return true;
  98. }
  99. }
  100. public boolean excavationAbility(Player player){
  101. if (permissionsEnabled) {
  102. return permission(player, "mcmmo.ability.excavation");
  103. } else {
  104. return true;
  105. }
  106. }
  107. public boolean unarmedAbility(Player player){
  108. if (permissionsEnabled) {
  109. return permission(player, "mcmmo.ability.unarmed");
  110. } else {
  111. return true;
  112. }
  113. }
  114. public boolean chimaeraWing(Player player){
  115. if (permissionsEnabled) {
  116. return permission(player, "mcmmo.item.chimaerawing");
  117. } else {
  118. return true;
  119. }
  120. }
  121. public boolean miningAbility(Player player){
  122. if (permissionsEnabled) {
  123. return permission(player, "mcmmo.ability.mining");
  124. } else {
  125. return true;
  126. }
  127. }
  128. public boolean axesAbility(Player player){
  129. if (permissionsEnabled) {
  130. return permission(player, "mcmmo.ability.axes");
  131. } else {
  132. return true;
  133. }
  134. }
  135. public boolean swordsAbility(Player player){
  136. if (permissionsEnabled) {
  137. return permission(player, "mcmmo.ability.swords");
  138. } else {
  139. return true;
  140. }
  141. }
  142. public boolean woodCuttingAbility(Player player) {
  143. if (permissionsEnabled) {
  144. return permission(player, "mcmmo.ability.woodcutting");
  145. } else {
  146. return true;
  147. }
  148. }
  149. public boolean mcgod(Player player) {
  150. if (permissionsEnabled) {
  151. return permission(player, "mcmmo.tools.mcgod");
  152. } else {
  153. return true;
  154. }
  155. }
  156. public boolean regeneration(Player player){
  157. if (permissionsEnabled) {
  158. return permission(player, "mcmmo.regeneration");
  159. } else {
  160. return true;
  161. }
  162. }
  163. public boolean motd(Player player) {
  164. if (permissionsEnabled) {
  165. return permission(player, "mcmmo.motd");
  166. } else {
  167. return true;
  168. }
  169. }
  170. public boolean mcAbility(Player player) {
  171. if (permissionsEnabled) {
  172. return permission(player, "mcmmo.commands.ability");
  173. } else {
  174. return true;
  175. }
  176. }
  177. public boolean mySpawn(Player player) {
  178. if (permissionsEnabled) {
  179. return permission(player, "mcmmo.commands.myspawn");
  180. } else {
  181. return true;
  182. }
  183. }
  184. public boolean setMySpawn(Player player) {
  185. if (permissionsEnabled) {
  186. return permission(player, "mcmmo.commands.setmyspawn");
  187. } else {
  188. return true;
  189. }
  190. }
  191. public boolean partyChat(Player player) {
  192. if (permissionsEnabled) {
  193. return permission(player, "mcmmo.chat.partychat");
  194. } else {
  195. return true;
  196. }
  197. }
  198. public boolean partyLock(Player player) {
  199. if (permissionsEnabled) {
  200. return permission(player, "mcmmo.chat.partylock");
  201. } else {
  202. return true;
  203. }
  204. }
  205. public boolean partyTeleport(Player player) {
  206. if (permissionsEnabled) {
  207. return permission(player, "mcmmo.commands.ptp");
  208. } else {
  209. return true;
  210. }
  211. }
  212. public boolean whois(Player player) {
  213. if (permissionsEnabled) {
  214. return permission(player, "mcmmo.commands.whois");
  215. } else {
  216. return true;
  217. }
  218. }
  219. public boolean party(Player player) {
  220. if (permissionsEnabled) {
  221. return permission(player, "mcmmo.commands.party");
  222. } else {
  223. return true;
  224. }
  225. }
  226. public boolean adminChat(Player player) {
  227. if (permissionsEnabled) {
  228. return permission(player, "mcmmo.chat.adminchat");
  229. } else {
  230. return true;
  231. }
  232. }
  233. public static mcPermissions getInstance() {
  234. if (instance == null) {
  235. instance = new mcPermissions();
  236. }
  237. return instance;
  238. }
  239. public boolean taming(Player player) {
  240. if (permissionsEnabled) {
  241. return permission(player, "mcmmo.skills.taming");
  242. } else {
  243. return true;
  244. }
  245. }
  246. public boolean mining(Player player) {
  247. if (permissionsEnabled) {
  248. return permission(player, "mcmmo.skills.mining");
  249. } else {
  250. return true;
  251. }
  252. }
  253. public boolean woodcutting(Player player) {
  254. if (permissionsEnabled) {
  255. return permission(player, "mcmmo.skills.woodcutting");
  256. } else {
  257. return true;
  258. }
  259. }
  260. public boolean repair(Player player) {
  261. if (permissionsEnabled) {
  262. return permission(player, "mcmmo.skills.repair");
  263. } else {
  264. return true;
  265. }
  266. }
  267. public boolean unarmed(Player player) {
  268. if (permissionsEnabled) {
  269. return permission(player, "mcmmo.skills.unarmed");
  270. } else {
  271. return true;
  272. }
  273. }
  274. public boolean archery(Player player) {
  275. if (permissionsEnabled) {
  276. return permission(player, "mcmmo.skills.archery");
  277. } else {
  278. return true;
  279. }
  280. }
  281. public boolean herbalism(Player player) {
  282. if (permissionsEnabled) {
  283. return permission(player, "mcmmo.skills.herbalism");
  284. } else {
  285. return true;
  286. }
  287. }
  288. public boolean excavation(Player player) {
  289. if (permissionsEnabled) {
  290. return permission(player, "mcmmo.skills.excavation");
  291. } else {
  292. return true;
  293. }
  294. }
  295. public boolean swords(Player player) {
  296. if (permissionsEnabled) {
  297. return permission(player, "mcmmo.skills.swords");
  298. } else {
  299. return true;
  300. }
  301. }
  302. public boolean axes(Player player) {
  303. if (permissionsEnabled) {
  304. return permission(player, "mcmmo.skills.axes");
  305. } else {
  306. return true;
  307. }
  308. }
  309. public boolean acrobatics(Player player) {
  310. if (permissionsEnabled) {
  311. return permission(player, "mcmmo.skills.acrobatics");
  312. } else {
  313. return true;
  314. }
  315. }
  316. }