fix(coat-bridge, fabric-helper): Fix various issues

This commit is contained in:
2025-11-02 19:22:21 +01:00
parent a4eb2eda1a
commit 2b0fac4127
5 changed files with 24 additions and 23 deletions

View File

@@ -94,12 +94,14 @@ public class TweedCoatMappersImpl {
@Override @Override
public TweedCoatEntryMappingResult<T, String> mapEntry(ConfigEntry<T> entry, TweedCoatEntryMappingContext context) { public TweedCoatEntryMappingResult<T, String> mapEntry(ConfigEntry<T> entry, TweedCoatEntryMappingContext context) {
boolean applicable = anyClassMatches(entry.valueClass(), valueClasses); if (!anyClassMatches(entry.valueClass(), valueClasses)) {
return TweedCoatEntryMappingResult.notApplicable();
}
return new TweedCoatEntryMappingResult<T, String>() { return new TweedCoatEntryMappingResult<T, String>() {
@Override @Override
public boolean isApplicable() { public boolean isApplicable() {
return applicable; return true;
} }
@Override @Override
@@ -198,12 +200,7 @@ public class TweedCoatMappersImpl {
@Override @Override
public TweedCoatEntryMappingResult<T, T> mapEntry(ConfigEntry<T> entry, TweedCoatEntryMappingContext context) { public TweedCoatEntryMappingResult<T, T> mapEntry(ConfigEntry<T> entry, TweedCoatEntryMappingContext context) {
matchingClass: { if (!anyClassMatches(entry.valueClass(), valueClasses)) {
for (Class<T> valueClass : valueClasses) {
if (entry.valueClass() == valueClass) {
break matchingClass;
}
}
return TweedCoatEntryMappingResult.notApplicable(); return TweedCoatEntryMappingResult.notApplicable();
} }
@@ -359,9 +356,9 @@ public class TweedCoatMappersImpl {
} }
} }
private static boolean anyClassMatches(Object value, Class<?>... classes) { private static boolean anyClassMatches(Class<?> valueClass, Class<?>... classes) {
for (Class<?> clazz : classes) { for (Class<?> clazz : classes) {
if (clazz.isInstance(value)) { if (clazz.isAssignableFrom(valueClass)) {
return true; return true;
} }
} }

View File

@@ -54,7 +54,7 @@ public class TweedCoatBridgeTestMod implements ClientModInitializer {
KeyBindingHelper.registerKeyBinding(new ScreenKeyBinding(MOD_ID + ".config", 84, KeyMapping.Category.MISC)); KeyBindingHelper.registerKeyBinding(new ScreenKeyBinding(MOD_ID + ".config", 84, KeyMapping.Category.MISC));
log.info("current config"); log.info("Current config: " + config);
} }
private class ScreenKeyBinding extends KeyMapping implements PriorityKeyBinding { private class ScreenKeyBinding extends KeyMapping implements PriorityKeyBinding {

View File

@@ -1,18 +1,17 @@
package de.siphalor.tweed5.coat.bridge.testmod; package de.siphalor.tweed5.coat.bridge.testmod;
import de.siphalor.tweed5.coat.bridge.api.TweedCoatAttributes; import de.siphalor.tweed5.coat.bridge.api.TweedCoatAttributes;
import de.siphalor.tweed5.coat.bridge.api.TweedCoatBridgeExtension;
import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving; import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.TweedExtension;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute; import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute;
import de.siphalor.tweed5.weaver.pojoext.validation.api.Validator; import de.siphalor.tweed5.weaver.pojoext.validation.api.Validator;
import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator; import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Data;
import lombok.NoArgsConstructor;
@PojoWeaving
@DefaultTweedMinecraftWeaving @DefaultTweedMinecraftWeaving
@TweedExtension(TweedCoatBridgeExtension.class)
@CompoundWeaving(namingFormat = "kebab_case") @CompoundWeaving(namingFormat = "kebab_case")
@Data @Data
public class TweedCoatBridgeTestModConfig { public class TweedCoatBridgeTestModConfig {
@@ -26,9 +25,11 @@ public class TweedCoatBridgeTestModConfig {
@Attribute(key = TweedCoatAttributes.BACKGROUND_TEXTURE, values = "textures/block/red_terracotta.png") @Attribute(key = TweedCoatAttributes.BACKGROUND_TEXTURE, values = "textures/block/red_terracotta.png")
private Greeting clientGreeting = new Greeting("Hello client!", "Client"); private Greeting clientGreeting = new Greeting("Hello client!", "Client");
@CompoundWeaving
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@CompoundWeaving @EqualsAndHashCode
@ToString
public static class Greeting { public static class Greeting {
public String greeting; public String greeting;
public String greeter; public String greeter;

View File

@@ -7,16 +7,19 @@ import de.siphalor.tweed5.data.extension.api.ReadWriteExtension;
import de.siphalor.tweed5.defaultextensions.presets.api.PresetsExtension; import de.siphalor.tweed5.defaultextensions.presets.api.PresetsExtension;
import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension; import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension;
import de.siphalor.tweed5.defaultextensions.validationfallback.api.ValidationFallbackExtension; import de.siphalor.tweed5.defaultextensions.validationfallback.api.ValidationFallbackExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.TweedExtension;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.AttributesPojoWeavingProcessor; import de.siphalor.tweed5.weaver.pojoext.attributes.api.AttributesPojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor; import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.DefaultReadWriteMappings; import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.DefaultReadWriteMappings;
import de.siphalor.tweed5.weaver.pojoext.validation.api.ValidatorsPojoWeavingProcessor; import de.siphalor.tweed5.weaver.pojoext.validation.api.ValidatorsPojoWeavingProcessor;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@AnnotationInheritance(passOn = { @AnnotationInheritance(passOn = {
PojoWeaving.class,
TweedExtension.class, TweedExtension.class,
PojoWeavingExtension.class, PojoWeavingExtension.class,
DefaultWeavingExtensions.class, DefaultWeavingExtensions.class,
@@ -34,5 +37,7 @@ import de.siphalor.tweed5.weaver.pojoext.validation.api.ValidatorsPojoWeavingPro
@DefaultWeavingExtensions @DefaultWeavingExtensions
@DefaultReadWriteMappings @DefaultReadWriteMappings
@CompoundWeaving @CompoundWeaving
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
public @interface DefaultTweedMinecraftWeaving { public @interface DefaultTweedMinecraftWeaving {
} }

View File

@@ -2,11 +2,9 @@ package de.siphalor.tweed5.fabric.helper.testmod;
import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving; import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute; import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute;
import lombok.Data; import lombok.Data;
@PojoWeaving
@DefaultTweedMinecraftWeaving @DefaultTweedMinecraftWeaving
@CompoundWeaving(namingFormat = "kebab_case") @CompoundWeaving(namingFormat = "kebab_case")
@Data @Data