Compare commits

..

1 Commits

Author SHA1 Message Date
Helvetica Volubi
aacb2cd631 feat: add multi transfer class support 2025-05-18 13:33:01 +08:00
2 changed files with 6 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
--- /dev/null
+++ b/src/main/java/me/earthme/luminol/config/LuminolConfig.java
@@ -1,0 +_,269 @@
@@ -1,0 +_,271 @@
+package me.earthme.luminol.config;
+
+import com.electronwill.nightconfig.core.UnmodifiableConfig;
@@ -138,8 +138,10 @@
+ boolean success = true;
+ if (transferringConfig.transfer() && !removed) {
+ try {
+ Object oldValueTransferred = ((DefaultTransferLogic) transferringConfig.transferLogic().getDeclaredConstructor().newInstance()).transform(oldValue);
+ configFileInstance.add(fullConfigKeyName, oldValueTransferred);
+ for (Class<? extends DefaultTransferLogic> logic : transferringConfig.transferLogic()) {
+ oldValue = logic.getDeclaredConstructor().newInstance().transform(oldValue);
+ }
+ configFileInstance.add(fullConfigKeyName, oldValue);
+ } catch (Exception e) {
+ success = false;
+ logger.error("Failed to transfer removed config {}!", transferringConfig.name());

View File

@@ -16,7 +16,7 @@
+
+ boolean transfer() default true;
+
+ Class<?> transferLogic() default DefaultTransferLogic.class;
+ Class<? extends DefaultTransferLogic>[] transferLogic() default {DefaultTransferLogic.class};
+
+ @Retention(RetentionPolicy.RUNTIME)
+ @interface List {