diff --git a/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ClientTickingComponent.java b/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ClientTickingComponent.java index c4b1ef9a..40b669a1 100644 --- a/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ClientTickingComponent.java +++ b/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ClientTickingComponent.java @@ -22,11 +22,19 @@ */ package dev.onyxstudios.cca.api.v3.component; +import net.minecraft.util.Identifier; +import org.jetbrains.annotations.ApiStatus; + /** * A component that gets ticked alongside the provider it is attached to. * + *

This interface must be visible at factory registration time - which means the class implementing it + * must either be the parameter to {@link ComponentRegistryV3#getOrCreate(Identifier, Class)} or declared explicitly + * using a dedicated method on the factory registry. + * *

Not every provider supports client ticking. Check individual module documentation for more information. */ +@ApiStatus.Experimental public interface ClientTickingComponent extends ComponentV3 { void clientTick(); } diff --git a/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ServerTickingComponent.java b/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ServerTickingComponent.java index 3e19fcd3..a38b79e5 100644 --- a/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ServerTickingComponent.java +++ b/cardinal-components-base/src/main/java/dev/onyxstudios/cca/api/v3/component/ServerTickingComponent.java @@ -22,9 +22,17 @@ */ package dev.onyxstudios.cca.api.v3.component; +import net.minecraft.util.Identifier; +import org.jetbrains.annotations.ApiStatus; + /** * A component that gets ticked alongside the provider it is attached to. + * + *

This interface must be visible at factory registration time - which means the class implementing it + * must either be the parameter to {@link ComponentRegistryV3#getOrCreate(Identifier, Class)} or declared explicitly + * using a dedicated method on the factory registry. */ +@ApiStatus.Experimental public interface ServerTickingComponent extends ComponentV3 { void tick(); } diff --git a/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/ScoreboardSyncCallback.java b/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/ScoreboardSyncCallback.java index 8633d824..a6aeb9a7 100644 --- a/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/ScoreboardSyncCallback.java +++ b/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/ScoreboardSyncCallback.java @@ -26,11 +26,13 @@ import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.scoreboard.Scoreboard; import net.minecraft.server.network.ServerPlayerEntity; +import org.jetbrains.annotations.ApiStatus; /** * The callback interface for receiving scoreboard synchronization events. */ @FunctionalInterface +@ApiStatus.Experimental public interface ScoreboardSyncCallback { Event EVENT = EventFactory.createArrayBacked(ScoreboardSyncCallback.class, (p, t) -> {}, listeners -> (player, scoreboard) -> { for (ScoreboardSyncCallback callback : listeners) { diff --git a/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/TeamAddCallback.java b/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/TeamAddCallback.java index dedcc8f2..84a28794 100644 --- a/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/TeamAddCallback.java +++ b/cardinal-components-scoreboard/src/main/java/dev/onyxstudios/cca/api/v3/scoreboard/TeamAddCallback.java @@ -25,11 +25,13 @@ import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; import net.minecraft.scoreboard.Team; +import org.jetbrains.annotations.ApiStatus; /** * The callback interface for receiving global team synchronization events. */ @FunctionalInterface +@ApiStatus.Experimental public interface TeamAddCallback { Event EVENT = EventFactory.createArrayBacked(TeamAddCallback.class, (t) -> {}, listeners -> (team) -> { for (TeamAddCallback callback : listeners) {