]> jfr.im git - irc/rizon/acid.git/blob - acid/src/main/java/net/rizon/acid/plugins/Plugin.java
92a4cdbe0ebe6cd07ccb48c0c373a284c42bad97
[irc/rizon/acid.git] / acid / src / main / java / net / rizon / acid / plugins / Plugin.java
1 package net.rizon.acid.plugins;
2
3 import net.rizon.acid.core.AcidUser;
4 import net.rizon.acid.core.User;
5 import net.rizon.acid.util.ClassLoader;
6
7 public abstract class Plugin
8 {
9 private String name;
10 private boolean permanent;
11 public ClassLoader loader; // Loader for this plugin
12
13 protected void remove()
14 {
15 for (User u : User.getUsersC())
16 if (u instanceof AcidUser)
17 {
18 AcidUser au = (AcidUser) u;
19 if (au.pkg == this)
20 au.pkg = null;
21 }
22
23 this.stop();
24 }
25
26 protected void setPermanent()
27 {
28 permanent = true;
29 }
30
31 public boolean isPermanent()
32 {
33 return permanent;
34 }
35
36 public String getName()
37 {
38 return name;
39 }
40
41 public void setName(String name)
42 {
43 this.name = name;
44 }
45
46 public abstract void start() throws Exception;
47 public abstract void stop();
48 public void reload() throws Exception { }
49 }