2020-08-18 14:18:12 +02:00
|
|
|
package net.minestom.server.extensions;
|
|
|
|
|
2020-09-12 08:56:01 +02:00
|
|
|
import org.jetbrains.annotations.NotNull;
|
2020-08-18 14:18:12 +02:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
2020-09-12 08:56:01 +02:00
|
|
|
import java.util.List;
|
|
|
|
|
2020-08-18 14:18:12 +02:00
|
|
|
public abstract class Extension {
|
2020-10-25 10:41:51 +01:00
|
|
|
// Set by reflection
|
|
|
|
@SuppressWarnings("unused")
|
2020-09-12 08:56:01 +02:00
|
|
|
private ExtensionDescription description;
|
2020-10-25 10:41:51 +01:00
|
|
|
// Set by reflection
|
|
|
|
@SuppressWarnings("unused")
|
2020-08-18 14:18:12 +02:00
|
|
|
private Logger logger;
|
|
|
|
|
|
|
|
protected Extension() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void preInitialize() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract void initialize();
|
|
|
|
|
|
|
|
public void postInitialize() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public void preTerminate() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
public abstract void terminate();
|
|
|
|
|
|
|
|
public void postTerminate() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2020-10-25 10:41:51 +01:00
|
|
|
@NotNull
|
2020-09-12 08:56:01 +02:00
|
|
|
public ExtensionDescription getDescription() {
|
2020-08-18 14:18:12 +02:00
|
|
|
return description;
|
|
|
|
}
|
|
|
|
|
2020-10-25 10:41:51 +01:00
|
|
|
@NotNull
|
2020-08-18 14:18:12 +02:00
|
|
|
protected Logger getLogger() {
|
|
|
|
return logger;
|
|
|
|
}
|
2020-09-12 08:56:01 +02:00
|
|
|
|
2020-10-25 10:41:51 +01:00
|
|
|
public static class ExtensionDescription {
|
2020-09-12 08:56:01 +02:00
|
|
|
private final String name;
|
|
|
|
private final String version;
|
|
|
|
private final List<String> authors;
|
|
|
|
|
2020-10-25 10:41:51 +01:00
|
|
|
ExtensionDescription(@NotNull String name, @NotNull String version, @NotNull List<String> authors) {
|
2020-09-12 08:56:01 +02:00
|
|
|
this.name = name;
|
|
|
|
this.version = version;
|
2020-10-25 10:41:51 +01:00
|
|
|
this.authors = authors;
|
2020-09-12 08:56:01 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
public String getName() {
|
|
|
|
return name;
|
|
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
public String getVersion() {
|
|
|
|
return version;
|
|
|
|
}
|
|
|
|
|
|
|
|
@NotNull
|
|
|
|
public List<String> getAuthors() {
|
|
|
|
return authors;
|
|
|
|
}
|
|
|
|
}
|
2020-08-18 14:18:12 +02:00
|
|
|
}
|