added @Flags annotation to Appliance, disabled DeviceFingerprinting appliance by default
This commit is contained in:
@@ -51,6 +51,11 @@ public final class Main extends JavaPlugin {
|
||||
Main.logger().info("Loading appliances...");
|
||||
this.appliances = this.findSubtypesOf(Appliance.class).stream()
|
||||
.filter(applianceClass -> !disabledAppliances.contains(applianceClass.getSimpleName()))
|
||||
.filter(appliance -> {
|
||||
Appliance.Flags flags = appliance.getAnnotation(Appliance.Flags.class);
|
||||
if(flags == null) return true;
|
||||
return flags.enabled();
|
||||
})
|
||||
.map(applianceClass -> {
|
||||
try {
|
||||
return (Appliance) applianceClass.getDeclaredConstructor().newInstance();
|
||||
|
||||
@@ -13,6 +13,8 @@ import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -23,6 +25,11 @@ import java.util.Optional;
|
||||
* Appliances can be enabled or disabled independent of other appliances
|
||||
*/
|
||||
public abstract class Appliance {
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface Flags {
|
||||
boolean enabled() default true;
|
||||
}
|
||||
|
||||
private String localConfigPath;
|
||||
private List<Listener> listeners;
|
||||
private List<ApplianceCommand<?>> commands;
|
||||
|
||||
Reference in New Issue
Block a user