Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. public abstract class PluginModule {
  2.     private final ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
  3.     private String name;
  4.     private String version;
  5.     private String description;
  6.     private transient boolean enabled;
  7.     private List<Listener> events = new ArrayList<>();
  8.     private List<BukkitCommand> commands = new ArrayList<>();
  9.     private List<BukkitTask> tasks = new ArrayList<>();
  10.  
  11.     public void disable() {
  12.         for (Listener l : events) {
  13.             HandlerList.unregisterAll(l);
  14.         }
  15.  
  16.         for (BukkitCommand command : commands) {
  17.             CommandUtil.unregisterCommand(command);
  18.         }
  19.  
  20.         for (BukkitTask task : tasks) {
  21.             task.cancel();
  22.         }
  23.  
  24.         events.clear();
  25.         commands.clear();
  26.         tasks.clear();
  27.  
  28.         onDisable();
  29.     }
  30.  
  31.     public void onEnable() {
  32.     }
  33.  
  34.     public void onDisable() {
  35.     }
  36.  
  37.     public final void registerCommand(String cmd, BukkitCommand executor) {
  38.         CommandUtil.registerCommand(cmd, executor);
  39.         this.commands.add(executor);
  40.     }
  41.  
  42.     public final void registerEvent(Listener listener) {
  43.         Bukkit.getPluginManager().registerEvents(listener, API.getPlugin());
  44.     }
  45.  
  46.     public final void registerTask(final Task task, long delay) {
  47.         delay *= 50;
  48.         service.scheduleAtFixedRate(task, delay, delay, TimeUnit.MILLISECONDS);
  49.     }
  50.  
  51.     public final void callTask(final Task task, long delay) {
  52.         delay *= 50;
  53.         service.schedule(task, delay, TimeUnit.MILLISECONDS);
  54.     }
  55.  
  56.     public String getName() {
  57.         return name;
  58.     }
  59.  
  60.     public String getVersion() {
  61.         return version;
  62.     }
  63.  
  64.     public boolean isEnabled() {
  65.         return enabled;
  66.     }
  67.  
  68.     public void setEnabled(boolean enabled) {
  69.         this.enabled = enabled;
  70.     }
  71.  
  72.     public Path getModuleDir() {
  73.         return new File(API.getModulesDir() + File.separator + name).toPath();
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement