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