Skip to content

Commit 36a3cb8

Browse files
committed
Update to 26.1-snapshot-9
1 parent 1c10748 commit 36a3cb8

11 files changed

Lines changed: 39 additions & 43 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import com.github.breadmoirai.githubreleaseplugin.GithubReleaseExtension
22
import java.net.URI
33

44
plugins {
5-
id("net.fabricmc.fabric-loom") version "1.14-SNAPSHOT"
5+
id("net.fabricmc.fabric-loom") version "1.15-SNAPSHOT"
66
id("io.github.ladysnake.chenille") version "0.18.0-SNAPSHOT"
77
}
88

cardinal-components-entity/src/testmod/java/org/ladysnake/cca/test/entity/PlayerVita.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,6 @@ public void copyForRespawn(@NotNull BaseVita original, HolderLookup.Provider reg
114114

115115
@Override
116116
public void handleC2SMessage(RegistryFriendlyByteBuf buf) {
117-
((Player) this.owner).displayClientMessage(Component.nullToEmpty("Sync!"), true);
117+
((Player) this.owner).sendOverlayMessage(Component.nullToEmpty("Sync!"));
118118
}
119119
}

cardinal-components-level/src/main/java/org/ladysnake/cca/mixin/level/common/MixinLevelStorageSource.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import net.minecraft.nbt.NbtOps;
3333
import net.minecraft.util.ProblemReporter;
3434
import net.minecraft.world.level.LevelSettings;
35-
import net.minecraft.world.level.levelgen.WorldOptions;
3635
import net.minecraft.world.level.storage.LevelStorageSource;
3736
import net.minecraft.world.level.storage.PrimaryLevelData;
3837
import net.minecraft.world.level.storage.TagValueInput;
@@ -43,10 +42,10 @@
4342

4443
@Mixin(LevelStorageSource.class)
4544
public class MixinLevelStorageSource {
46-
@WrapOperation(method = "getLevelDataAndDimensions", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/storage/PrimaryLevelData;parse(Lcom/mojang/serialization/Dynamic;Lnet/minecraft/world/level/LevelSettings;Lnet/minecraft/world/level/storage/PrimaryLevelData$SpecialWorldProperty;Lnet/minecraft/world/level/levelgen/WorldOptions;Lcom/mojang/serialization/Lifecycle;)Lnet/minecraft/world/level/storage/PrimaryLevelData;"))
47-
private static PrimaryLevelData readComponents(Dynamic<?> dynamic, LevelSettings info, PrimaryLevelData.SpecialWorldProperty specialProperty, WorldOptions generatorOptions, Lifecycle lifecycle, Operation<PrimaryLevelData> original, @Local(argsOnly = true) HolderLookup.Provider registryManager) {
48-
PrimaryLevelData props = original.call(dynamic, info, specialProperty, generatorOptions, lifecycle);
49-
CompoundTag nbt = (CompoundTag) dynamic.convert(NbtOps.INSTANCE).getValue();
45+
@WrapOperation(method = "getLevelDataAndDimensions", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/storage/PrimaryLevelData;parse(Lcom/mojang/serialization/Dynamic;Lnet/minecraft/world/level/LevelSettings;Lnet/minecraft/world/level/storage/PrimaryLevelData$SpecialWorldProperty;Lcom/mojang/serialization/Lifecycle;)Lnet/minecraft/world/level/storage/PrimaryLevelData;"))
46+
private static PrimaryLevelData readComponents(Dynamic<?> input, LevelSettings settings, PrimaryLevelData.SpecialWorldProperty specialWorldProperty, Lifecycle worldGenSettingsLifecycle, Operation<PrimaryLevelData> original, @Local(argsOnly = true) HolderLookup.Provider registryManager) {
47+
PrimaryLevelData props = original.call(input, settings, specialWorldProperty, worldGenSettingsLifecycle);
48+
CompoundTag nbt = (CompoundTag) input.convert(NbtOps.INSTANCE).getValue();
5049
try (var errorReporter = new ProblemReporter.ScopedCollector(ComponentsInternals.LOGGER)) {
5150
((ComponentProvider) props).getComponentContainer().readData(TagValueInput.create(errorReporter, registryManager, nbt));
5251
}

cardinal-components-level/src/main/java/org/ladysnake/cca/mixin/level/common/MixinPrimaryLevelData.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,14 @@
2424

2525
import com.mojang.datafixers.util.Unit;
2626
import com.mojang.serialization.Lifecycle;
27-
import net.minecraft.core.RegistryAccess;
2827
import net.minecraft.nbt.CompoundTag;
2928
import net.minecraft.network.RegistryFriendlyByteBuf;
3029
import net.minecraft.server.level.ServerPlayer;
3130
import net.minecraft.util.ProblemReporter;
32-
import net.minecraft.world.clock.PackedClockStates;
3331
import net.minecraft.world.level.LevelSettings;
34-
import net.minecraft.world.level.dimension.end.EndDragonFight;
35-
import net.minecraft.world.level.levelgen.WorldOptions;
3632
import net.minecraft.world.level.storage.PrimaryLevelData;
3733
import net.minecraft.world.level.storage.ServerLevelData;
3834
import net.minecraft.world.level.storage.TagValueOutput;
39-
import net.minecraft.world.level.timers.TimerQueue;
4035
import org.ladysnake.cca.api.v3.component.ComponentContainer;
4136
import org.ladysnake.cca.api.v3.component.ComponentKey;
4237
import org.ladysnake.cca.api.v3.component.ComponentProvider;
@@ -53,7 +48,6 @@
5348
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
5449

5550
import javax.annotation.Nonnull;
56-
import java.util.Optional;
5751
import java.util.Set;
5852
import java.util.UUID;
5953

@@ -62,15 +56,15 @@ public abstract class MixinPrimaryLevelData implements ServerLevelData, Componen
6256
@Unique
6357
private ComponentContainer components;
6458

65-
@Inject(method = "<init>(Lnet/minecraft/nbt/CompoundTag;ZLnet/minecraft/world/level/storage/LevelData$RespawnData;JIIIZIZLnet/minecraft/world/clock/PackedClockStates;ZZLjava/util/Optional;IILjava/util/UUID;Ljava/util/Set;Ljava/util/Set;Lnet/minecraft/world/level/timers/TimerQueue;Lnet/minecraft/nbt/CompoundTag;Lnet/minecraft/world/level/dimension/end/EndDragonFight$Data;Lnet/minecraft/world/level/LevelSettings;Lnet/minecraft/world/level/levelgen/WorldOptions;Lnet/minecraft/world/level/storage/PrimaryLevelData$SpecialWorldProperty;Lcom/mojang/serialization/Lifecycle;)V", at = @At("RETURN"))
66-
private void initComponents(CompoundTag loadedPlayerTag, boolean wasModded, RespawnData respawnData, long gameTime, int version, int clearWeatherTime, int rainTime, boolean raining, int thunderTime, boolean thundering, PackedClockStates clockStates, boolean initialized, boolean difficultyLocked, Optional legacyWorldBorderSettings, int wanderingTraderSpawnDelay, int wanderingTraderSpawnChance, UUID wanderingTraderId, Set knownServerBrands, Set removedFeatureFlags, TimerQueue scheduledEvents, CompoundTag customBossEvents, EndDragonFight.Data endDragonFightData, LevelSettings settings, WorldOptions worldOptions, PrimaryLevelData.SpecialWorldProperty specialWorldProperty, Lifecycle worldGenSettingsLifecycle, CallbackInfo ci) {
59+
@Inject(method = "<init>(Ljava/util/UUID;ZLnet/minecraft/world/level/storage/LevelData$RespawnData;JIZLjava/util/Set;Ljava/util/Set;Lnet/minecraft/world/level/LevelSettings;Lnet/minecraft/world/level/storage/PrimaryLevelData$SpecialWorldProperty;Lcom/mojang/serialization/Lifecycle;)V", at = @At("RETURN"))
60+
private void initComponents(UUID singlePlayerUUID, boolean wasModded, RespawnData respawnData, long gameTime, int version, boolean initialized, Set<?> knownServerBrands, Set<?> removedFeatureFlags, LevelSettings settings, PrimaryLevelData.SpecialWorldProperty specialWorldProperty, Lifecycle worldGenSettingsLifecycle, CallbackInfo ci) {
6761
this.components = StaticLevelComponentPlugin.createContainer(this);
6862
}
6963

7064
@Inject(method = "setTagData", at = @At("RETURN"))
71-
private void writeComponents(RegistryAccess registryManager, CompoundTag data, CompoundTag player, CallbackInfo ci) {
65+
private void writeComponents(CompoundTag data, UUID singlePlayerUUID, CallbackInfo ci) {
7266
try (var errorReporter = new ProblemReporter.ScopedCollector(ComponentsInternals.LOGGER)) {
73-
TagValueOutput writeView = TagValueOutput.createWithContext(errorReporter, registryManager);
67+
TagValueOutput writeView = TagValueOutput.createWithoutContext(errorReporter);
7468
this.components.writeOrphanData(writeView);
7569
if (!writeView.isEmpty()) {
7670
data.put(AbstractComponentContainer.NBT_KEY, writeView.buildResult());

cardinal-components-world/src/main/java/org/ladysnake/cca/internal/world/ComponentPersistentState.java renamed to cardinal-components-world/src/main/java/org/ladysnake/cca/internal/world/CcaSaveData.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import net.minecraft.core.HolderLookup;
2626
import net.minecraft.nbt.CompoundTag;
27+
import net.minecraft.resources.Identifier;
2728
import net.minecraft.util.ProblemReporter;
2829
import net.minecraft.util.datafix.DataFixTypes;
2930
import net.minecraft.world.level.saveddata.SavedData;
@@ -33,13 +34,13 @@
3334
import org.ladysnake.cca.internal.base.AbstractComponentContainer;
3435
import org.ladysnake.cca.internal.base.ComponentsInternals;
3536

36-
public class ComponentPersistentState extends SavedData {
37+
public class CcaSaveData extends SavedData {
3738
public static final ThreadLocal<Boolean> LOADING = ThreadLocal.withInitial(() -> false);
38-
private static final String PERSISTENT_STATE_KEY = "cardinal_world_components";
39-
public static SavedDataType<ComponentPersistentState> stateType(ComponentContainer components, HolderLookup.Provider registries) {
39+
private static final Identifier PERSISTENT_STATE_KEY = Identifier.fromNamespaceAndPath("cardinal-components", "world");
40+
public static SavedDataType<CcaSaveData> stateType(ComponentContainer components, HolderLookup.Provider registries) {
4041
return new SavedDataType<>(
4142
PERSISTENT_STATE_KEY,
42-
() -> new ComponentPersistentState(components),
43+
() -> new CcaSaveData(components),
4344
CompoundTag.CODEC.xmap(
4445
nbt -> fromNbt(components, nbt, registries),
4546
state -> state.writeNbt(new CompoundTag(), registries)
@@ -50,7 +51,7 @@ public static SavedDataType<ComponentPersistentState> stateType(ComponentContain
5051

5152
private final ComponentContainer components;
5253

53-
public ComponentPersistentState(ComponentContainer components) {
54+
public CcaSaveData(ComponentContainer components) {
5455
super();
5556
this.components = components;
5657
}
@@ -68,8 +69,8 @@ public CompoundTag writeNbt(CompoundTag tag, HolderLookup.Provider registryLooku
6869
return tag;
6970
}
7071

71-
public static ComponentPersistentState fromNbt(ComponentContainer components, CompoundTag tag, HolderLookup.Provider registryLookup) {
72-
ComponentPersistentState state = new ComponentPersistentState(components);
72+
public static CcaSaveData fromNbt(ComponentContainer components, CompoundTag tag, HolderLookup.Provider registryLookup) {
73+
CcaSaveData state = new CcaSaveData(components);
7374
try (var errorReporter = new ProblemReporter.ScopedCollector(() -> "World", ComponentsInternals.LOGGER)) {
7475
state.components.readData(TagValueInput.create(errorReporter, registryLookup, tag));
7576
}

cardinal-components-world/src/main/java/org/ladysnake/cca/mixin/world/common/DataFixTypesMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import com.mojang.datafixers.DataFixer;
2626
import com.mojang.serialization.Dynamic;
2727
import net.minecraft.util.datafix.DataFixTypes;
28-
import org.ladysnake.cca.internal.world.ComponentPersistentState;
28+
import org.ladysnake.cca.internal.world.CcaSaveData;
2929
import org.spongepowered.asm.mixin.Mixin;
3030
import org.spongepowered.asm.mixin.injection.At;
3131
import org.spongepowered.asm.mixin.injection.Inject;
@@ -39,7 +39,7 @@ public class DataFixTypesMixin {
3939
cancellable = true
4040
)
4141
private <T> void cancelIfCca(DataFixer dataFixer, Dynamic<T> dynamic, int oldVersion, int newVersion, CallbackInfoReturnable<Dynamic<T>> cir) {
42-
if (ComponentPersistentState.LOADING.get()) {
42+
if (CcaSaveData.LOADING.get()) {
4343
cir.setReturnValue(dynamic);
4444
}
4545
}

cardinal-components-world/src/main/java/org/ladysnake/cca/mixin/world/common/MixinServerLevel.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626
import net.minecraft.network.RegistryFriendlyByteBuf;
2727
import net.minecraft.server.level.ServerLevel;
2828
import net.minecraft.server.level.ServerPlayer;
29-
import net.minecraft.world.level.storage.DimensionDataStorage;
29+
import net.minecraft.world.level.storage.SavedDataStorage;
3030
import org.ladysnake.cca.api.v3.component.ComponentKey;
3131
import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent;
3232
import org.ladysnake.cca.internal.base.ComponentUpdatePayload;
3333
import org.ladysnake.cca.internal.world.CardinalComponentsWorld;
34-
import org.ladysnake.cca.internal.world.ComponentPersistentState;
34+
import org.ladysnake.cca.internal.world.CcaSaveData;
3535
import org.spongepowered.asm.mixin.Mixin;
3636
import org.spongepowered.asm.mixin.Shadow;
3737
import org.spongepowered.asm.mixin.injection.At;
@@ -43,18 +43,18 @@
4343

4444
@Mixin(ServerLevel.class)
4545
public abstract class MixinServerLevel extends MixinLevel {
46-
@Shadow public abstract DimensionDataStorage getDataStorage();
46+
@Shadow public abstract SavedDataStorage getDataStorage();
4747

4848
@Shadow
4949
public abstract List<ServerPlayer> players();
5050

5151
@Inject(at = @At("RETURN"), method = "<init>*")
5252
private void constructor(CallbackInfo ci) {
5353
try {
54-
ComponentPersistentState.LOADING.set(true);
55-
this.getDataStorage().computeIfAbsent(ComponentPersistentState.stateType(components, registryAccess()));
54+
CcaSaveData.LOADING.set(true);
55+
this.getDataStorage().computeIfAbsent(CcaSaveData.stateType(components, registryAccess()));
5656
} finally {
57-
ComponentPersistentState.LOADING.set(false);
57+
CcaSaveData.LOADING.set(false);
5858
}
5959
}
6060

changelog.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
------------------------------------------------------
2-
Version 8.0.0-alpha.1+26.1-snapshot-3
2+
Version 8.0.0-alpha.2+26.1-snapshot-9
33
------------------------------------------------------
4-
Updated to
4+
Updated to 26.1-snapshot-9
5+
6+
**Removed**
7+
- Components attached to a `LevelData` object (using the `cardinal-components-level` module) can no longer use dynamic registries in serialization (vanilla limitation)
58

69
------------------------------------------------------
710
Version 7.3.0

gradle.properties

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,21 @@ org.gradle.parallel=true
44
fabric.loom.multiProjectOptimisation=true
55

66
#see https://fabricmc.net/develop/
7-
minecraft_version=26.1-snapshot-3
8-
yarn_mappings=2
7+
minecraft_version=26.1-snapshot-9
98
loader_version=0.18.4
109
#Fabric api
11-
fabric_api_version=0.141.3+26.1
10+
fabric_api_version=0.143.5+26.1
1211

1312
elmendorf_version=0.17.0
1413

1514
immersive_portals_version=v6.0.3-mc1.21.1
1615

1716
#Publishing
18-
mod_version = 8.0.0-alpha.1+26.1-snapshot-3
17+
mod_version = 8.0.0-alpha.2+26.1-snapshot-9
1918
curseforge_id = 318449
2019
modrinth_id = K01OU20C
2120
curseforge_versions = 26.1-Snapshot
22-
modrinth_versions = 26.1-snapshot-3
21+
modrinth_versions = 26.1-snapshot-9
2322
release_type = alpha
2423
display_name = Cardinal-Components-API
2524
owners = Ladysnake

src/testmod/java/org/ladysnake/componenttest/content/VitalityCondenser.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource
5353
protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) {
5454
// only on client side, to confirm that sync works
5555
if (world.isClientSide()) {
56-
player.displayClientMessage(Component.translatable("componenttest:action.chunk_vitality",
57-
Objects.requireNonNull(CcaBlockTestMod.VITA_API_LOOKUP.find(world, pos, state, null, hit.getDirection())).getVitality()), true);
56+
player.sendOverlayMessage(Component.translatable("componenttest:action.chunk_vitality",
57+
Objects.requireNonNull(CcaBlockTestMod.VITA_API_LOOKUP.find(world, pos, state, null, hit.getDirection())).getVitality()));
5858
}
5959
return InteractionResult.SUCCESS;
6060
}

0 commit comments

Comments
 (0)