Skip to content

Commit a213768

Browse files
committed
build: 25w43a
1 parent 71b176e commit a213768

File tree

11 files changed

+23
-60
lines changed

11 files changed

+23
-60
lines changed
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
package com.ishland.c2me.base.mixin.access;
22

3-
import net.minecraft.world.storage.ChunkPosKeyedStorage;
43
import net.minecraft.world.storage.SerializingRegionBasedStorage;
54
import org.spongepowered.asm.mixin.Mixin;
6-
import org.spongepowered.asm.mixin.gen.Accessor;
75

86
@Mixin(SerializingRegionBasedStorage.class)
97
public interface ISerializingRegionBasedStorage {
108

11-
@Accessor
12-
ChunkPosKeyedStorage getStorageAccess();
13-
149
}

c2me-fixes-general-threading-issues/src/main/java/com/ishland/c2me/fixes/general/threading_issues/mixin/asynccatchers/MixinThreadedAnvilChunkStorage.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,13 @@ private void preventAsyncEntityUnload(CallbackInfo ci) {
3434
}
3535
}
3636

37+
@Inject(method = "markChunkNeedsSaving", at = @At("HEAD"))
38+
private void onMarkChunkNeedsSaving(CallbackInfo ci) {
39+
if (!this.mainThreadExecutor.isOnThread()) {
40+
final ConcurrentModificationException e = new ConcurrentModificationException("Async chunk modification");
41+
e.printStackTrace();
42+
throw e;
43+
}
44+
}
45+
3746
}

c2me-rewrites-chunk-serializer/src/main/java/com/ishland/c2me/rewrites/chunk_serializer/mixin/MixinThreadedAnvilChunkStorage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.ishland.c2me.rewrites.chunk_serializer.common.NbtWriter;
99
import com.ishland.c2me.rewrites.chunk_serializer.common.utils.ValidationUtils;
1010
import com.mojang.datafixers.DataFixer;
11+
import net.minecraft.datafixer.DataFixTypes;
1112
import net.minecraft.nbt.NbtElement;
1213
import net.minecraft.server.world.ChunkHolder;
1314
import net.minecraft.server.world.ServerChunkLoadingManager;
@@ -48,8 +49,8 @@ public abstract class MixinThreadedAnvilChunkStorage extends VersionedChunkStora
4849
@Shadow
4950
ServerWorld world;
5051

51-
public MixinThreadedAnvilChunkStorage(StorageKey arg, Path path, DataFixer dataFixer, boolean bl) {
52-
super(arg, path, dataFixer, bl);
52+
public MixinThreadedAnvilChunkStorage(StorageKey storageKey, Path path, DataFixer dataFixer, boolean bl, DataFixTypes dataFixTypes) {
53+
super(storageKey, path, dataFixer, bl, dataFixTypes);
5354
}
5455

5556
@Shadow

c2me-rewrites-chunk-system/src/main/java/com/ishland/c2me/rewrites/chunksystem/common/statuses/ReadFromDisk.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ private Completable asyncSave(ChunkLoadingContext context, Chunk chunk) {
239239
.flatMapCompletable(either -> {
240240
if (either.left().isPresent()) {
241241
NbtCompound nbtCompound = either.left().get();
242-
return Completable.fromCompletionStage(context.tacs().setNbt(chunkPos, () -> nbtCompound));
242+
return Completable.fromCompletionStage(context.tacs().set(chunkPos, () -> nbtCompound));
243243
} else {
244244
return Completable.fromCompletionStage(((IDirectStorage) ((IVersionedChunkStorage) context.tacs()).getWorker()).setRawChunkData(chunkPos, either.right().get()));
245245
}

c2me-rewrites-chunk-system/src/main/java/com/ishland/c2me/rewrites/chunksystem/mixin/async_serialization/MixinThreadedAnvilChunkStorage.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.mojang.datafixers.DataFixer;
44
import net.minecraft.SharedConstants;
5+
import net.minecraft.datafixer.DataFixTypes;
56
import net.minecraft.nbt.NbtCompound;
7+
import net.minecraft.nbt.NbtHelper;
68
import net.minecraft.server.world.ChunkHolder;
79
import net.minecraft.server.world.ServerChunkLoadingManager;
810
import net.minecraft.util.Util;
@@ -20,8 +22,8 @@
2022
@Mixin(ServerChunkLoadingManager.class)
2123
public abstract class MixinThreadedAnvilChunkStorage extends VersionedChunkStorage implements ChunkHolder.PlayersWatchingChunkProvider {
2224

23-
public MixinThreadedAnvilChunkStorage(StorageKey arg, Path path, DataFixer dataFixer, boolean bl) {
24-
super(arg, path, dataFixer, bl);
25+
public MixinThreadedAnvilChunkStorage(StorageKey storageKey, Path path, DataFixer dataFixer, boolean bl, DataFixTypes dataFixTypes) {
26+
super(storageKey, path, dataFixer, bl, dataFixTypes);
2527
}
2628

2729
@Shadow protected abstract NbtCompound updateChunkNbt(NbtCompound nbt);
@@ -36,7 +38,7 @@ private CompletableFuture<Optional<NbtCompound>> getUpdatedChunkNbt(ChunkPos chu
3638
return this.getNbt(chunkPos).thenCompose(nbt -> {
3739
if (nbt.isPresent()) {
3840
final NbtCompound compound = nbt.get();
39-
if (VersionedChunkStorage.getDataVersion(compound) != SharedConstants.getGameVersion().dataVersion().id()) {
41+
if (NbtHelper.getDataVersion(compound, -1) != SharedConstants.getGameVersion().dataVersion().id()) {
4042
return CompletableFuture.supplyAsync(() -> Optional.of(updateChunkNbt(compound)), Util.getMainWorkerExecutor());
4143
} else {
4244
return CompletableFuture.completedFuture(nbt);

c2me-rewrites-chunkio/src/main/java/com/ishland/c2me/rewrites/chunkio/mixin/MixinChunkPosKeyedStorage.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

c2me-rewrites-chunkio/src/main/java/com/ishland/c2me/rewrites/chunkio/mixin/MixinRecreatedChunkStorage.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

c2me-rewrites-chunkio/src/main/java/com/ishland/c2me/rewrites/chunkio/mixin/MixinVersionedChunkStorage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
@Mixin(VersionedChunkStorage.class)
1515
public class MixinVersionedChunkStorage {
1616

17-
@Redirect(method = "<init>", at = @At(value = "NEW", target = "(Lnet/minecraft/world/storage/StorageKey;Ljava/nio/file/Path;Z)Lnet/minecraft/world/storage/StorageIoWorker;"))
17+
@Redirect(method = "<init>(Lnet/minecraft/world/storage/StorageKey;Ljava/nio/file/Path;Lcom/mojang/datafixers/DataFixer;ZLnet/minecraft/datafixer/DataFixTypes;Ljava/util/function/Supplier;)V", at = @At(value = "NEW", target = "(Lnet/minecraft/world/storage/StorageKey;Ljava/nio/file/Path;Z)Lnet/minecraft/world/storage/StorageIoWorker;"))
1818
private StorageIoWorker redirectStorageIoWorker(StorageKey arg, Path path, boolean bl) {
1919
if (this instanceof IVanillaChunkManager vanillaChunkManager) {
2020
return new C2MEStorageVanillaInterface(arg, path, bl, pos -> vanillaChunkManager.c2me$getSchedulingManager().positionedExecutor(pos));

c2me-rewrites-chunkio/src/main/resources/c2me-rewrites-chunkio.mixins.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
"package": "com.ishland.c2me.rewrites.chunkio.mixin",
55
"plugin": "com.ishland.c2me.base.common.ModuleMixinPlugin",
66
"mixins": [
7-
"MixinChunkPosKeyedStorage",
8-
"MixinRecreatedChunkStorage",
97
"MixinRecreationStorage",
108
"MixinStorageIoWorker",
119
"MixinVersionedChunkStorage"

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ gradle-curseforge-publish.interop.neogradle=false
1111
#org.gradle.configuration-cache=true
1212
# Fabric Properties
1313
# check these on https://fabricmc.net/versions.html
14-
minecraft_version=25w42a
15-
yarn_mappings=25w42a+build.2
14+
minecraft_version=25w43a
15+
yarn_mappings=25w43a+build.3
1616
loader_version=0.17.3
17-
fabric_version=0.135.1+1.21.11
17+
fabric_version=0.136.1+1.21.11
1818
# Mod Properties
1919
mod_version=0.3.6+alpha.0
2020
maven_group=com.ishland.c2me

0 commit comments

Comments
 (0)