Skip to content

Commit e77837a

Browse files
committed
Migrate to Mojang mappings
1 parent 7b703fc commit e77837a

15 files changed

Lines changed: 122 additions & 123 deletions

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id 'fabric-loom' version '1.10-SNAPSHOT'
2+
id 'fabric-loom' version '1.15-SNAPSHOT'
33
id 'maven-publish'
44
}
55

@@ -33,7 +33,7 @@ loom {
3333
dependencies {
3434
// To change the versions see the gradle.properties file
3535
minecraft "com.mojang:minecraft:${project.minecraft_version}"
36-
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
36+
mappings loom.officialMojangMappings()
3737
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
3838
}
3939

gradle.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ org.gradle.parallel=true
55
# Fabric Properties
66
# check these on https://fabricmc.net/develop
77
minecraft_version=1.21.5
8-
yarn_mappings=1.21.5+build.1
98
loader_version=0.16.10
109

1110
# Mod Properties

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/java/net/errorcraft/codecium/mixin/minecraft/util/InvalidIdentifierExceptionExtender.java renamed to src/main/java/net/errorcraft/codecium/mixin/minecraft/IdentifierExceptionExtender.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package net.errorcraft.codecium.mixin.minecraft.util;
1+
package net.errorcraft.codecium.mixin.minecraft;
22

33
import net.errorcraft.codecium.access.minecraft.util.InvalidIdentifierExceptionAccess;
4-
import net.minecraft.util.InvalidIdentifierException;
4+
import net.minecraft.ResourceLocationException;
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.Unique;
77

8-
@Mixin(InvalidIdentifierException.class)
9-
public class InvalidIdentifierExceptionExtender extends RuntimeException implements InvalidIdentifierExceptionAccess {
8+
@Mixin(ResourceLocationException.class)
9+
public class IdentifierExceptionExtender extends RuntimeException implements InvalidIdentifierExceptionAccess {
1010
@Unique
1111
private String givenIdentifier;
1212

@@ -15,6 +15,7 @@ public String getMessage() {
1515
if (this.givenIdentifier == null) {
1616
return super.getMessage();
1717
}
18+
1819
return super.getMessage() + ": " + this.givenIdentifier;
1920
}
2021

src/main/java/net/errorcraft/codecium/mixin/minecraft/command/argument/RegistryEntryArgumentTypeExtender.java renamed to src/main/java/net/errorcraft/codecium/mixin/minecraft/commands/arguments/ResourceOrIdArgumentExtender.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package net.errorcraft.codecium.mixin.minecraft.command.argument;
1+
package net.errorcraft.codecium.mixin.minecraft.commands.arguments;
22

33
import net.errorcraft.codecium.util.StringUtil;
4-
import net.minecraft.command.argument.RegistryEntryArgumentType;
4+
import net.minecraft.commands.arguments.ResourceOrIdArgument;
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.injection.At;
77
import org.spongepowered.asm.mixin.injection.ModifyArg;
88

9-
@Mixin(RegistryEntryArgumentType.class)
10-
public class RegistryEntryArgumentTypeExtender {
9+
@Mixin(ResourceOrIdArgument.class)
10+
public class ResourceOrIdArgumentExtender {
1111
@ModifyArg(
1212
method = "method_58480",
1313
at = @At(

src/main/java/net/errorcraft/codecium/mixin/minecraft/command/argument/ItemStringReaderExtender.java renamed to src/main/java/net/errorcraft/codecium/mixin/minecraft/commands/arguments/item/ItemParserExtender.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package net.errorcraft.codecium.mixin.minecraft.command.argument;
1+
package net.errorcraft.codecium.mixin.minecraft.commands.arguments.item;
22

33
import net.errorcraft.codecium.util.StringUtil;
44
import org.spongepowered.asm.mixin.Mixin;
55
import org.spongepowered.asm.mixin.injection.At;
66
import org.spongepowered.asm.mixin.injection.ModifyArg;
77

8-
public class ItemStringReaderExtender {
9-
@Mixin(targets = "net/minecraft/command/argument/ItemStringReader$Reader")
10-
public static class ReaderExtender {
8+
public class ItemParserExtender {
9+
@Mixin(targets = "net/minecraft/commands/arguments/item/ItemParser$State")
10+
public static class StateExtender {
1111
@ModifyArg(
1212
method = "method_57806",
1313
at = @At(

src/main/java/net/errorcraft/codecium/mixin/minecraft/command/argument/ItemPredicateArgumentTypeExtender.java renamed to src/main/java/net/errorcraft/codecium/mixin/minecraft/commands/arguments/item/ItemPredicateArgumentExtender.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package net.errorcraft.codecium.mixin.minecraft.command.argument;
1+
package net.errorcraft.codecium.mixin.minecraft.commands.arguments.item;
22

33
import net.errorcraft.codecium.util.StringUtil;
44
import org.spongepowered.asm.mixin.Mixin;
55
import org.spongepowered.asm.mixin.injection.At;
66
import org.spongepowered.asm.mixin.injection.ModifyArg;
77

8-
public class ItemPredicateArgumentTypeExtender {
9-
@Mixin(targets = "net/minecraft/command/argument/ItemPredicateArgumentType$ComponentCheck")
10-
public static class ComponentCheckExtender {
8+
public class ItemPredicateArgumentExtender {
9+
@Mixin(targets = "net/minecraft/commands/arguments/item/ItemPredicateArgument$ComponentWrapper")
10+
public static class ComponentWrapperExtender {
1111
@ModifyArg(
1212
method = "method_58537",
1313
at = @At(
@@ -22,8 +22,8 @@ private Object indentErrorMessage(Object a) {
2222
}
2323
}
2424

25-
@Mixin(targets = "net/minecraft/command/argument/ItemPredicateArgumentType$SubPredicateCheck")
26-
public static class SubPredicateCheckExtender {
25+
@Mixin(targets = "net/minecraft/commands/arguments/item/ItemPredicateArgument$PredicateWrapper")
26+
public static class PredicateWrapperExtender {
2727
@ModifyArg(
2828
method = "method_58560",
2929
at = @At(

src/main/java/net/errorcraft/codecium/mixin/minecraft/nbt/NbtOpsExtender.java

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

33
import com.llamalad7.mixinextras.sugar.Local;
44
import com.mojang.serialization.DataResult;
5-
import net.minecraft.nbt.NbtCompound;
6-
import net.minecraft.nbt.NbtElement;
5+
import net.minecraft.nbt.CompoundTag;
76
import net.minecraft.nbt.NbtOps;
7+
import net.minecraft.nbt.Tag;
88
import org.spongepowered.asm.mixin.Final;
99
import org.spongepowered.asm.mixin.Mixin;
1010
import org.spongepowered.asm.mixin.Overwrite;
@@ -17,66 +17,66 @@
1717
@Mixin(NbtOps.class)
1818
public class NbtOpsExtender {
1919
@ModifyArg(
20-
method = "getNumberValue(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;",
20+
method = "getNumberValue(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;",
2121
at = @At(
2222
value = "INVOKE",
2323
target = "Ljava/util/Optional;orElseGet(Ljava/util/function/Supplier;)Ljava/lang/Object;",
2424
remap = false
2525
)
2626
)
27-
private Supplier<DataResult<Number>> notANumberUseBetterErrorMessage(Supplier<DataResult<Number>> supplier, @Local(argsOnly = true) final NbtElement input) {
27+
private Supplier<DataResult<Number>> notANumberUseBetterErrorMessage(Supplier<DataResult<Number>> supplier, @Local(argsOnly = true) final Tag input) {
2828
return () -> DataResult.error(() -> "Element is not a number: " + input);
2929
}
3030

3131
@ModifyArg(
32-
method = "getStringValue(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;",
32+
method = "getStringValue(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;",
3333
at = @At(
3434
value = "INVOKE",
3535
target = "Lcom/mojang/serialization/DataResult;error(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult;",
3636
remap = false
3737
)
3838
)
39-
private Supplier<String> notAStringUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final NbtElement input) {
39+
private Supplier<String> notAStringUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final Tag input) {
4040
return () -> "Element is not a string: " + input;
4141
}
4242

4343
@ModifyArg(
44-
method = { "getMapValues(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;", "getMapEntries(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;", "getMap(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;" },
44+
method = { "getMapValues(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;", "getMapEntries(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;", "getMap(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;" },
4545
at = @At(
4646
value = "INVOKE",
4747
target = "Lcom/mojang/serialization/DataResult;error(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult;",
4848
remap = false
4949
)
5050
)
51-
private Supplier<String> notAMapUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final NbtElement input) {
51+
private Supplier<String> notAMapUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final Tag input) {
5252
return () -> "Element is not a map: " + input;
5353
}
5454

5555
@ModifyArg(
56-
method = { "getStream(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;", "getList(Lnet/minecraft/nbt/NbtElement;)Lcom/mojang/serialization/DataResult;" },
56+
method = { "getStream(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;", "getList(Lnet/minecraft/nbt/Tag;)Lcom/mojang/serialization/DataResult;" },
5757
at = @At(
5858
value = "INVOKE",
5959
target = "Lcom/mojang/serialization/DataResult;error(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult;",
6060
remap = false
6161
)
6262
)
63-
private Supplier<String> notAListUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final NbtElement input) {
63+
private Supplier<String> notAListUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) final Tag input) {
6464
return () -> "Element is not a list: " + input;
6565
}
6666

6767
@Mixin(targets = "net/minecraft/nbt/NbtOps$1")
6868
public static class MapLikeExtender {
6969
@Shadow
7070
@Final
71-
NbtCompound field_25129;
71+
CompoundTag val$tag;
7272

7373
/**
7474
* @author ErrorCraft
7575
* @reason Uses the element itself instead of a wrapped element.
7676
*/
7777
@Overwrite
7878
public String toString() {
79-
return this.field_25129.toString();
79+
return this.val$tag.toString();
8080
}
8181
}
8282
}

src/main/java/net/errorcraft/codecium/mixin/minecraft/registry/entry/RegistryEntryListCodecExtender.java renamed to src/main/java/net/errorcraft/codecium/mixin/minecraft/resources/HolderSetCodecExtender.java

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
package net.errorcraft.codecium.mixin.minecraft.registry.entry;
1+
package net.errorcraft.codecium.mixin.minecraft.resources;
22

33
import com.llamalad7.mixinextras.sugar.Local;
44
import com.mojang.datafixers.util.Pair;
55
import com.mojang.serialization.DataResult;
66
import com.mojang.serialization.DynamicOps;
7-
import net.minecraft.registry.Registry;
8-
import net.minecraft.registry.RegistryKey;
9-
import net.minecraft.registry.entry.RegistryEntry;
10-
import net.minecraft.registry.entry.RegistryEntryList;
11-
import net.minecraft.registry.entry.RegistryEntryListCodec;
12-
import net.minecraft.registry.tag.TagKey;
7+
import net.minecraft.core.Holder;
8+
import net.minecraft.core.HolderSet;
9+
import net.minecraft.core.Registry;
10+
import net.minecraft.resources.HolderSetCodec;
11+
import net.minecraft.resources.ResourceKey;
12+
import net.minecraft.tags.TagKey;
1313
import org.spongepowered.asm.mixin.Final;
1414
import org.spongepowered.asm.mixin.Mixin;
1515
import org.spongepowered.asm.mixin.Shadow;
@@ -21,14 +21,14 @@
2121

2222
import java.util.function.Supplier;
2323

24-
@Mixin(RegistryEntryListCodec.class)
25-
public class RegistryEntryListCodecExtender<E> {
24+
@Mixin(HolderSetCodec.class)
25+
public class HolderSetCodecExtender<E> {
2626
@Shadow
2727
@Final
28-
private RegistryKey<? extends Registry<E>> registry;
28+
private ResourceKey<? extends Registry<E>> registryKey;
2929

3030
@Unique
31-
private static RegistryKey<? extends Registry<?>> tempRegistryKey;
31+
private static ResourceKey<? extends Registry<?>> tempRegistryKey;
3232

3333
@ModifyArg(
3434
method = "method_58027",
@@ -39,27 +39,27 @@ public class RegistryEntryListCodecExtender<E> {
3939
)
4040
)
4141
private static <E> Supplier<String> unknownRegistryTagUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) TagKey<E> tag) {
42-
return () -> "Cannot get a registry tag with id " + tag.id();
42+
return () -> "Cannot get a registry tag with id " + tag.location();
4343
}
4444

4545
@ModifyArg(
46-
method = "encode(Lnet/minecraft/registry/entry/RegistryEntryList;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;",
46+
method = "encode(Lnet/minecraft/core/HolderSet;Lcom/mojang/serialization/DynamicOps;Ljava/lang/Object;)Lcom/mojang/serialization/DataResult;",
4747
at = @At(
4848
value = "INVOKE",
4949
target = "Lcom/mojang/serialization/DataResult;error(Ljava/util/function/Supplier;)Lcom/mojang/serialization/DataResult;",
5050
remap = false
5151
)
5252
)
53-
private Supplier<String> invalidOwnerUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) RegistryEntryList<E> registryEntries) {
54-
return () -> "Registry tag " + registryEntries.getTagKey().orElseThrow().id() + " is not part of the current registry set";
53+
private Supplier<String> invalidOwnerUseBetterErrorMessage(Supplier<String> message, @Local(argsOnly = true) HolderSet<E> registryEntries) {
54+
return () -> "Registry tag " + registryEntries.unwrapKey().orElseThrow().location() + " is not part of the current registry set";
5555
}
5656

5757
@Inject(
58-
method = "decodeDirect",
58+
method = "decodeWithoutRegistry",
5959
at = @At("HEAD")
6060
)
61-
private <T> void storeTemporaryRegistryKey(DynamicOps<T> ops, T input, CallbackInfoReturnable<DataResult<Pair<RegistryEntryList<E>, T>>> info) {
62-
RegistryEntryListCodecExtender.tempRegistryKey = this.registry;
61+
private <T> void storeTemporaryRegistryKey(DynamicOps<T> ops, T input, CallbackInfoReturnable<DataResult<Pair<HolderSet<E>, T>>> info) {
62+
HolderSetCodecExtender.tempRegistryKey = this.registryKey;
6363
}
6464

6565
@ModifyArg(
@@ -70,15 +70,15 @@ private <T> void storeTemporaryRegistryKey(DynamicOps<T> ops, T input, CallbackI
7070
remap = false
7171
)
7272
)
73-
private static <R> Supplier<String> inaccessibleRegistryUseBetterErrorMessage(Supplier<String> message, @Local RegistryEntry<R> entry) {
74-
return () -> "Registry " + RegistryEntryListCodecExtender.tempRegistryKey.getValue() + " is inaccessible for " + entry.getKey().orElseThrow();
73+
private static <R> Supplier<String> inaccessibleRegistryUseBetterErrorMessage(Supplier<String> message, @Local Holder<R> entry) {
74+
return () -> "Registry " + HolderSetCodecExtender.tempRegistryKey.location() + " is inaccessible for " + entry.unwrapKey().orElseThrow();
7575
}
7676

7777
@Inject(
78-
method = "decodeDirect",
78+
method = "decodeWithoutRegistry",
7979
at = @At("TAIL")
8080
)
81-
private <T> void removeTemporaryRegistryKey(DynamicOps<T> ops, T input, CallbackInfoReturnable<DataResult<Pair<RegistryEntryList<E>, T>>> info) {
82-
RegistryEntryListCodecExtender.tempRegistryKey = null;
81+
private <T> void removeTemporaryRegistryKey(DynamicOps<T> ops, T input, CallbackInfoReturnable<DataResult<Pair<HolderSet<E>, T>>> info) {
82+
HolderSetCodecExtender.tempRegistryKey = null;
8383
}
8484
}

0 commit comments

Comments
 (0)