From aacb2cd631bf7719fffdbf2d1ea383b4a49cf293 Mon Sep 17 00:00:00 2001 From: Helvetica Volubi Date: Sun, 18 May 2025 13:33:01 +0800 Subject: [PATCH] feat: add multi transfer class support --- .../me/earthme/luminol/config/LuminolConfig.java.patch | 8 +++++--- .../earthme/luminol/config/TransferringConfig.java.patch | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/LuminolConfig.java.patch b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/LuminolConfig.java.patch index f6c6b84..2c4822a 100644 --- a/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/LuminolConfig.java.patch +++ b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/LuminolConfig.java.patch @@ -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 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()); diff --git a/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/TransferringConfig.java.patch b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/TransferringConfig.java.patch index bc992c9..a291ca7 100644 --- a/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/TransferringConfig.java.patch +++ b/luminol-server/paper-patches/files/src/main/java/me/earthme/luminol/config/TransferringConfig.java.patch @@ -16,7 +16,7 @@ + + boolean transfer() default true; + -+ Class transferLogic() default DefaultTransferLogic.class; ++ Class[] transferLogic() default {DefaultTransferLogic.class}; + + @Retention(RetentionPolicy.RUNTIME) + @interface List {