/src/com/blockempires/lineage/LineagePlugin.java

https://github.com/adambratt/Lineage · Java · 148 lines · 116 code · 19 blank · 13 comment · 8 complexity · ed2a1fd81d7f6fd610beb75bb8aff47c MD5 · raw file

  1. package com.blockempires.lineage;
  2. import java.util.logging.Level;
  3. import java.util.logging.Logger;
  4. import org.bukkit.World;
  5. import org.bukkit.event.Event.Priority;
  6. import org.bukkit.event.Event.Type;
  7. import org.bukkit.plugin.java.JavaPlugin;
  8. import org.bukkit.plugin.Plugin;
  9. import org.bukkit.plugin.PluginManager;
  10. import org.bukkit.util.config.Configuration;
  11. import ru.tehkode.permissions.PermissionManager;
  12. import ru.tehkode.permissions.bukkit.PermissionsEx;
  13. import com.blockempires.lineage.commands.AreaCommands;
  14. import com.blockempires.lineage.commands.LineageCommands;
  15. import com.iConomy.iConomy;
  16. import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
  17. import com.sk89q.worldguard.protection.regions.ProtectedRegion;
  18. public class LineagePlugin extends JavaPlugin {
  19. private static final Logger log = Logger.getLogger("Minecraft");
  20. private boolean eventsRegistered = false;
  21. private LineagePlayerListener playerListener;
  22. public static WorldGuardPlugin wgPlugin;
  23. private static iConomy ecoPlugin;
  24. private static LineageAreaManager areaManager;
  25. private static LineagePlugin instance;
  26. private static LineageRaceManager raceManager;
  27. private static PermissionManager permManager;
  28. public PluginManager pManage;
  29. public Configuration config;
  30. public static LineagePlugin getInstance(){
  31. return LineagePlugin.instance;
  32. }
  33. public void serverlog(String msg) {
  34. // Just a simple little function that will put "[lineage]" before putting into the log
  35. // Use logger to output to console
  36. log.log(Level.INFO, "[Lineage] " + msg);
  37. }
  38. public void onEnable(){
  39. //Save our instance
  40. LineagePlugin.instance=this;
  41. // Here's where the code goes when we load up the plugin to the server
  42. serverlog("Registering Events...");
  43. registerEvents();
  44. serverlog("Registering Commands...");
  45. registerCommands();
  46. serverlog("Loading Lineage Areas and Races...");
  47. dependLoad();
  48. serverlog("Version " + getDescription().getVersion() + " is enabled!");
  49. }
  50. public void onDisable(){
  51. //Log that we've been shutdown
  52. serverlog("Plugin is disabled!");
  53. }
  54. private void dependLoad() {
  55. //Load dependencies first
  56. if(pManage.isPluginEnabled("PermissionsEx")){
  57. permManager=PermissionsEx.getPermissionManager();
  58. }else{
  59. serverlog("PermissionsEx does not appear to be installed");
  60. }
  61. if(pManage.isPluginEnabled("iConomy")){
  62. Plugin eco=pManage.getPlugin("iConomy");
  63. if(eco instanceof iConomy){
  64. LineagePlugin.ecoPlugin=(iConomy) eco;
  65. }
  66. }else{
  67. serverlog("iConomy does not appear to be installed");
  68. //Need to die or something here
  69. }
  70. if(pManage.isPluginEnabled("WorldGuard")){
  71. Plugin wg=pManage.getPlugin("WorldGuard");
  72. if(wg instanceof WorldGuardPlugin){
  73. LineagePlugin.wgPlugin=(WorldGuardPlugin) wg;
  74. }
  75. //Need to add error handling if it doesn't load
  76. }else{
  77. serverlog("WorldGuard does not appear to be installed");
  78. //Need to die or something here
  79. }
  80. //Now Load Configuration
  81. config = getConfiguration();
  82. //Load Areas+Races
  83. LineagePlugin.areaManager=new LineageAreaManager(this);
  84. LineagePlugin.raceManager=new LineageRaceManager(this);
  85. }
  86. private void registerCommands(){
  87. //register commands ...
  88. try {
  89. getCommand("lineager").setExecutor(new AreaCommands());
  90. getCommand("lineage").setExecutor(new LineageCommands());
  91. } catch (Exception e) {
  92. serverlog("Error: Commands not definated in 'plugin.yaml'");
  93. }
  94. }
  95. private void registerEvents(){
  96. if(!eventsRegistered){
  97. playerListener=new LineagePlayerListener(this);
  98. pManage = getServer().getPluginManager();
  99. pManage.registerEvent(Type.PLAYER_JOIN, playerListener, Priority.High, this);
  100. pManage.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.Normal, this);
  101. //pManage.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this);
  102. }
  103. }
  104. public static ProtectedRegion getRegion(String regionName, World world){
  105. ProtectedRegion region=LineagePlugin.getWorldGuard().getRegionManager(world).getRegion(regionName);
  106. if(region==null) return null;
  107. return region;
  108. }
  109. public static boolean regionExists(String regionName, World worldName){
  110. ProtectedRegion r=LineagePlugin.getRegion(regionName, worldName);
  111. if(r==null) return false;
  112. return true;
  113. }
  114. public static iConomy getEconomy(){
  115. return LineagePlugin.ecoPlugin;
  116. }
  117. public static WorldGuardPlugin getWorldGuard(){
  118. return LineagePlugin.wgPlugin;
  119. }
  120. public static LineageAreaManager getAreaManager() {
  121. return areaManager;
  122. }
  123. public static LineageRaceManager getRaceManager() {
  124. return raceManager;
  125. }
  126. public static PermissionManager getPermissions() {
  127. return permManager;
  128. }
  129. }