Skip to content

Commit c937e03

Browse files
committed
Backport to 1.21.1
1 parent df18222 commit c937e03

13 files changed

+67
-40
lines changed

build.gradle

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
plugins {
2-
id 'fabric-loom' version '1.8-SNAPSHOT'
2+
id 'fabric-loom' version '1.9-SNAPSHOT'
33
id 'maven-publish'
44
}
55

6-
sourceCompatibility = JavaVersion.VERSION_21
7-
targetCompatibility = JavaVersion.VERSION_21
8-
96
version = "${project.mod_version}+${project.minecraft_version}"
107
group = project.maven_group
118

@@ -18,15 +15,6 @@ repositories {
1815
url = uri('https://mschae23.de/git/api/packages/mschae23/maven')
1916
}
2017

21-
maven {
22-
name = 'GitHubPackages'
23-
url = uri('https://maven.pkg.github.com/mschae23/codec-config-api')
24-
credentials {
25-
username = project.findProperty('gpr.user') ?: System.getenv('GITHUB_USERNAME')
26-
password = project.findProperty('gpr.key') ?: System.getenv('GITHUB_TOKEN')
27-
}
28-
}
29-
3018
// Repositories for the dependencies of Tax Free Levels
3119
maven { url "https://maven.shedaniel.me/" }
3220
maven { url "https://maven.terraformersmc.com/releases" }
@@ -80,7 +68,6 @@ processResources {
8068
}
8169

8270
tasks.withType(JavaCompile).configureEach {
83-
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
8471
it.options.release = 21
8572
}
8673

gradle.properties

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ org.gradle.jvmargs=-Xmx1G
33

44
# Fabric Properties
55
# check these on https://fabricmc.net/versions.html
6-
minecraft_version=1.21.4-rc3
7-
yarn_mappings=1.21.4-rc3+build.3
6+
minecraft_version=1.21.1
7+
yarn_mappings=1.21.1+build.3
88
loader_version=0.16.9
99

1010
# Mod Properties
@@ -13,6 +13,6 @@ org.gradle.jvmargs=-Xmx1G
1313
archives_base_name = grind-enchantments
1414

1515
# Dependencies
16-
fabric_api_version=0.110.2+1.21.4
16+
fabric_api_version=0.110.0+1.21.1
1717
codec_config_api_version=3.0.0+1.21.3
1818
tax_free_levels_version=1.4.1-fabric-1.21.1
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
* Copyright (C) 2024 mschae23
3+
*
4+
* This file is part of Grind enchantments.
5+
*
6+
* Grind enchantments is free software: you can redistribute it and/or modify
7+
* it under the terms of the GNU Lesser General Public License as published by
8+
* the Free Software Foundation, either version 3 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* This program is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU Lesser General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU Lesser General Public License
17+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
18+
*/
19+
20+
package de.mschae23.grindenchantments;
21+
22+
import java.util.List;
23+
import com.mojang.datafixers.util.Either;
24+
import com.mojang.serialization.Codec;
25+
26+
public final class CodecUtils {
27+
private CodecUtils() {
28+
}
29+
30+
public static <E> Codec<List<E>> listOrSingle(Codec<E> entryCodec) {
31+
return listOrSingle(entryCodec, entryCodec.listOf());
32+
}
33+
34+
public static <E> Codec<List<E>> listOrSingle(Codec<E> entryCodec, Codec<List<E>> listCodec) {
35+
return Codec.either(listCodec, entryCodec)
36+
.xmap(either -> either.map(list -> list, List::of),
37+
list -> list.size() == 1 ? Either.right(list.getFirst()) : Either.left(list));
38+
}
39+
}

src/main/java/de/mschae23/grindenchantments/GrindEnchantmentsClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public void onInitializeClient() {
3939
ClientLifecycleEvents.CLIENT_STARTED.register(client -> {
4040
CLIENT_CONFIG = GrindEnchantmentsMod.initializeClientConfig();
4141
GrindEnchantmentsMod.LOCAL_SERVER_CONFIG = GrindEnchantmentsMod.initializeServerConfig(RegistryWrapper.WrapperLookup.of(
42-
Stream.of(GrindEnchantmentsRegistries.COST_FUNCTION)));
42+
Stream.of(GrindEnchantmentsRegistries.COST_FUNCTION.getReadOnlyWrapper())));
4343

4444
ClientConfigurationNetworking.registerGlobalReceiver(ServerConfigS2CPayload.ID, (payload, context) -> {
4545
//noinspection resource

src/main/java/de/mschae23/grindenchantments/GrindEnchantmentsMod.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ private static void convertLegacyConfig() {
210210
final Path newConfigDirPath = FabricLoader.getInstance().getConfigDir().resolve(MODID);
211211

212212
if (!Files.isDirectory(newConfigDirPath)) {
213-
RegistryWrapper.WrapperLookup wrapperLookup = RegistryWrapper.WrapperLookup.of(Stream.of(GrindEnchantmentsRegistries.COST_FUNCTION));
213+
RegistryWrapper.WrapperLookup wrapperLookup = RegistryWrapper.WrapperLookup.of(Stream.of(
214+
GrindEnchantmentsRegistries.COST_FUNCTION.getReadOnlyWrapper()));
214215
Optional<GrindEnchantmentsConfigV3> legacyConfigOpt = readLegacyConfig(wrapperLookup);
215216

216217
if (legacyConfigOpt.isPresent()) {

src/main/java/de/mschae23/grindenchantments/config/DedicatedServerConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public record DedicatedServerConfig(boolean alternativeCostDisplay) {
3030
Codec.BOOL.fieldOf("alternative_cost_display_enabled").forGetter(DedicatedServerConfig::alternativeCostDisplay)
3131
).apply(instance, instance.stable(DedicatedServerConfig::new)));
3232

33-
public static final PacketCodec<PacketByteBuf, DedicatedServerConfig> PACKET_CODEC = PacketCodecs.BOOLEAN.xmap(
33+
public static final PacketCodec<PacketByteBuf, DedicatedServerConfig> PACKET_CODEC = PacketCodecs.BOOL.xmap(
3434
DedicatedServerConfig::new, DedicatedServerConfig::alternativeCostDisplay).cast();
3535

3636
public static final DedicatedServerConfig DEFAULT = new DedicatedServerConfig(false);

src/main/java/de/mschae23/grindenchantments/config/DisenchantConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ public record DisenchantConfig(boolean enabled, boolean consumeItem, CostFunctio
4545

4646
public static PacketCodec<PacketByteBuf, DisenchantConfig> createPacketCodec(PacketCodec<PacketByteBuf, CostFunction> costFunctionCodec) {
4747
return PacketCodec.tuple(
48-
PacketCodecs.BOOLEAN, DisenchantConfig::enabled,
49-
PacketCodecs.BOOLEAN, DisenchantConfig::consumeItem,
48+
PacketCodecs.BOOL, DisenchantConfig::enabled,
49+
PacketCodecs.BOOL, DisenchantConfig::consumeItem,
5050
costFunctionCodec, DisenchantConfig::costFunction,
5151
DisenchantConfig::new
5252
);

src/main/java/de/mschae23/grindenchantments/config/FilterConfig.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
import net.minecraft.registry.entry.RegistryEntry;
3535
import net.minecraft.registry.tag.EnchantmentTags;
3636
import net.minecraft.util.Identifier;
37-
import net.minecraft.util.dynamic.Codecs;
3837
import com.mojang.datafixers.util.Pair;
3938
import com.mojang.serialization.Codec;
4039
import com.mojang.serialization.codecs.RecordCodecBuilder;
40+
import de.mschae23.grindenchantments.CodecUtils;
4141
import de.mschae23.grindenchantments.GrindEnchantmentsMod;
4242
import org.apache.logging.log4j.Level;
4343

@@ -54,7 +54,7 @@ public record FilterConfig(boolean enabled, ItemConfig item, EnchantmentConfig e
5454

5555
public static PacketCodec<PacketByteBuf, FilterConfig> createPacketCodec() {
5656
return PacketCodec.tuple(
57-
PacketCodecs.BOOLEAN, FilterConfig::enabled,
57+
PacketCodecs.BOOL, FilterConfig::enabled,
5858
ItemConfig.createPacketCodec(), FilterConfig::item,
5959
EnchantmentConfig.createPacketCodec(), FilterConfig::enchantment,
6060
FilterAction.PACKET_CODEC, FilterConfig::curses,
@@ -137,7 +137,7 @@ public String toString() {
137137

138138
public record ItemConfig(List<Identifier> items, FilterAction action) {
139139
public static final Codec<ItemConfig> CODEC = RecordCodecBuilder.create(instance -> instance.group(
140-
Codecs.listOrSingle(Identifier.CODEC).fieldOf("enchantments").forGetter(ItemConfig::items),
140+
CodecUtils.listOrSingle(Identifier.CODEC).fieldOf("enchantments").forGetter(ItemConfig::items),
141141
FilterAction.NON_IGNORE_CODEC.fieldOf("action").forGetter(ItemConfig::action)
142142
).apply(instance, instance.stable(ItemConfig::new)));
143143

@@ -152,7 +152,7 @@ public static PacketCodec<PacketByteBuf, ItemConfig> createPacketCodec() {
152152
}
153153

154154
public void validateRegistryEntries(RegistryWrapper.WrapperLookup wrapperLookup) {
155-
Optional<? extends RegistryWrapper.Impl<Item>> registryWrapperOpt = wrapperLookup.getOptional(RegistryKeys.ITEM);
155+
Optional<? extends RegistryWrapper.Impl<Item>> registryWrapperOpt = wrapperLookup.getOptionalWrapper(RegistryKeys.ITEM);
156156

157157
if (registryWrapperOpt.isEmpty()) {
158158
GrindEnchantmentsMod.log(Level.WARN, "Item registry is not present");
@@ -179,7 +179,7 @@ public String toString() {
179179

180180
public record EnchantmentConfig(List<Identifier> enchantments, FilterAction action) {
181181
public static final Codec<EnchantmentConfig> CODEC = RecordCodecBuilder.create(instance -> instance.group(
182-
Codecs.listOrSingle(Identifier.CODEC).fieldOf("enchantments").forGetter(EnchantmentConfig::enchantments),
182+
CodecUtils.listOrSingle(Identifier.CODEC).fieldOf("enchantments").forGetter(EnchantmentConfig::enchantments),
183183
FilterAction.CODEC.fieldOf("action").forGetter(EnchantmentConfig::action)
184184
).apply(instance, instance.stable(EnchantmentConfig::new)));
185185

@@ -194,7 +194,7 @@ public static PacketCodec<PacketByteBuf, EnchantmentConfig> createPacketCodec()
194194
}
195195

196196
public void validateRegistryEntries(RegistryWrapper.WrapperLookup wrapperLookup) {
197-
Optional<? extends RegistryWrapper.Impl<Enchantment>> registryWrapperOpt = wrapperLookup.getOptional(RegistryKeys.ENCHANTMENT);
197+
Optional<? extends RegistryWrapper.Impl<Enchantment>> registryWrapperOpt = wrapperLookup.getOptionalWrapper(RegistryKeys.ENCHANTMENT);
198198

199199
if (registryWrapperOpt.isEmpty()) {
200200
GrindEnchantmentsMod.log(Level.WARN, "Enchantment registry is not present");

src/main/java/de/mschae23/grindenchantments/config/MoveConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public record MoveConfig(boolean enabled, CostFunction costFunction) {
4545

4646
public static PacketCodec<PacketByteBuf, MoveConfig> createPacketCodec(PacketCodec<PacketByteBuf, CostFunction> costFunctionCodec) {
4747
return PacketCodec.tuple(
48-
PacketCodecs.BOOLEAN, MoveConfig::enabled,
48+
PacketCodecs.BOOL, MoveConfig::enabled,
4949
costFunctionCodec, MoveConfig::costFunction,
5050
MoveConfig::new
5151
);

src/main/java/de/mschae23/grindenchantments/config/ResetRepairCostConfig.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
import net.minecraft.registry.RegistryKeys;
3131
import net.minecraft.registry.RegistryWrapper;
3232
import net.minecraft.util.Identifier;
33-
import net.minecraft.util.dynamic.Codecs;
3433
import com.mojang.datafixers.util.Pair;
3534
import com.mojang.serialization.Codec;
3635
import com.mojang.serialization.codecs.RecordCodecBuilder;
36+
import de.mschae23.grindenchantments.CodecUtils;
3737
import de.mschae23.grindenchantments.GrindEnchantmentsMod;
3838
import de.mschae23.grindenchantments.cost.AverageCountCostFunction;
3939
import de.mschae23.grindenchantments.cost.CostFunction;
@@ -44,7 +44,7 @@
4444
public record ResetRepairCostConfig(boolean enabled, List<Identifier> catalystItems, boolean requiresEnchantment, CostFunction costFunction) {
4545
public static final Codec<ResetRepairCostConfig> CODEC = RecordCodecBuilder.create(instance -> instance.group(
4646
Codec.BOOL.fieldOf("enabled").forGetter(ResetRepairCostConfig::enabled),
47-
Codecs.listOrSingle(Identifier.CODEC).fieldOf("catalyst_items").forGetter(ResetRepairCostConfig::catalystItems),
47+
CodecUtils.listOrSingle(Identifier.CODEC).fieldOf("catalyst_items").forGetter(ResetRepairCostConfig::catalystItems),
4848
Codec.BOOL.fieldOf("requires_enchantment").forGetter(ResetRepairCostConfig::requiresEnchantment),
4949
CostFunction.CODEC.fieldOf("cost_function").forGetter(ResetRepairCostConfig::costFunction)
5050
).apply(instance, instance.stable(ResetRepairCostConfig::new)));
@@ -60,16 +60,16 @@ public record ResetRepairCostConfig(boolean enabled, List<Identifier> catalystIt
6060

6161
public static PacketCodec<PacketByteBuf, ResetRepairCostConfig> createPacketCodec(PacketCodec<PacketByteBuf, CostFunction> costFunctionCodec) {
6262
return PacketCodec.tuple(
63-
PacketCodecs.BOOLEAN, ResetRepairCostConfig::enabled,
63+
PacketCodecs.BOOL, ResetRepairCostConfig::enabled,
6464
Identifier.PACKET_CODEC.collect(PacketCodecs.toList()), ResetRepairCostConfig::catalystItems,
65-
PacketCodecs.BOOLEAN, ResetRepairCostConfig::requiresEnchantment,
65+
PacketCodecs.BOOL, ResetRepairCostConfig::requiresEnchantment,
6666
costFunctionCodec, ResetRepairCostConfig::costFunction,
6767
ResetRepairCostConfig::new
6868
);
6969
}
7070

7171
public void validateRegistryEntries(RegistryWrapper.WrapperLookup wrapperLookup) {
72-
Optional<? extends RegistryWrapper.Impl<Item>> registryWrapperOpt = wrapperLookup.getOptional(RegistryKeys.ITEM);
72+
Optional<? extends RegistryWrapper.Impl<Item>> registryWrapperOpt = wrapperLookup.getOptionalWrapper(RegistryKeys.ITEM);
7373

7474
if (registryWrapperOpt.isEmpty()) {
7575
GrindEnchantmentsMod.log(Level.WARN, "Item registry is not present");

0 commit comments

Comments
 (0)