Skip to content

Commit b840c7b

Browse files
committed
Backport to mc1.20.1
1 parent bdd9ebe commit b840c7b

File tree

111 files changed

+1156
-1089
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+1156
-1089
lines changed

.github/workflows/release-subproject-neoforge.yml renamed to .github/workflows/release-subproject-forge.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# A NeoForge-only version of the normal release workflow.
2-
name: Release-Subproject-NeoForge
1+
# A Forge-only version of the normal release workflow.
2+
name: Release-Subproject-Forge
33

44
on:
55
workflow_dispatch:
@@ -34,7 +34,7 @@ jobs:
3434
if: ${{ runner.os != 'Windows' }}
3535
run: chmod +x ./gradlew
3636
- name: Build
37-
run: ./gradlew build neoforge:publishGithub neoforge:publishCurseforge neoforge:publishModrinth --stacktrace
37+
run: ./gradlew build forge:publishGithub forge:publishCurseforge forge:publishModrinth --stacktrace
3838
env:
3939
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4040
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
if: ${{ runner.os != 'Windows' }}
4040
run: chmod +x ./gradlew
4141
- name: Build
42-
run: ./gradlew build neoforge:publishGithub neoforge:publishCurseforge neoforge:publishModrinth fabric:publishGithub fabric:publishCurseforge fabric:publishModrinth --stacktrace
42+
run: ./gradlew build forge:publishGithub forge:publishCurseforge forge:publishModrinth fabric:publishGithub fabric:publishCurseforge fabric:publishModrinth --stacktrace
4343
env:
4444
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4545
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}

build.gradle

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import java.time.LocalDate
77

88
plugins {
99
id("fabric-loom") version("${loom_version}") apply(false)
10-
id("net.neoforged.moddev") version("${moddev_version}") apply(false)
10+
id("net.minecraftforge.gradle") version("${forgegradle_version}") apply(false)
11+
id("org.spongepowered.gradle.vanilla") version("${vanillagradle_version}") apply(false)
12+
id("org.spongepowered.mixin") version("${mixingradle_version}") apply(false)
1113
id("net.neoforged.licenser") version("${licenser_version}") apply(false)
1214
id("me.modmuss50.mod-publish-plugin") version("${mpp_version}")
1315
id("org.ajoberstar.grgit.service") version("${grgitservice_version}")
@@ -63,7 +65,8 @@ subprojects {
6365
afterEvaluate { sp ->
6466
publishMods {
6567
// Common configuration
66-
file = sp.name == "fabric" ? remapJar.archiveFile : jar.archiveFile
68+
file = project.name == "fabric" ? remapJar.archiveFile : name == "forge"
69+
? project.file("build/libs/${mod_id}-${name}-${mod_version}.jar") : jar.archiveFile
6770
version = mod_version
6871
type = ReleaseType.of(mod_version_type)
6972
displayName = "v${mod_version}-${StaticUtil.capsLoader(sp.name)}"

buildSrc/src/main/groovy/multiloader-common.gradle

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -121,47 +121,47 @@ if (build_sources_jar == "true") {
121121
processResources {
122122
final expandProps = [
123123
// Mod
124-
"mod_version" : mod_version,
125-
"mod_group" : mod_group,
126-
"mod_id" : mod_id,
127-
"mod_name" : mod_name,
128-
"mod_description_fabric" : mod_description.replace("\n", "\\n"),
129-
"mod_description_neoforge": mod_description,
130-
"mod_icon" : "assets/${mod_id}/icon.png",
131-
"mod_owner" : mod_owner,
132-
"mod_authors_list" : asJsonList(mod_authors),
133-
"mod_authors_string" : mod_authors.split(",").join(", "),
134-
"mod_contributors_list" : asJsonList("${mod_contributors},${mod_translators},${mod_credits}"),
135-
"mod_contributors_string": asTomlList("${mod_contributors},${mod_translators},${mod_credits}"),
136-
"mod_license" : mod_license,
124+
"mod_version" : mod_version,
125+
"mod_group" : mod_group,
126+
"mod_id" : mod_id,
127+
"mod_name" : mod_name,
128+
"mod_description_fabric" : mod_description.replace("\n", "\\n"),
129+
"mod_description_forge" : mod_description,
130+
"mod_icon" : "assets/${mod_id}/icon.png",
131+
"mod_owner" : mod_owner,
132+
"mod_authors_list" : asJsonList(mod_authors),
133+
"mod_authors_string" : mod_authors.split(",").join(", "),
134+
"mod_contributors_list" : asJsonList("${mod_contributors},${mod_translators},${mod_credits}"),
135+
"mod_contributors_string" : asTomlList("${mod_contributors},${mod_translators},${mod_credits}"),
136+
"mod_license" : mod_license,
137137
// Links
138-
"homepage_url" : homepage_url,
139-
"sources_url" : sources_url,
140-
"issues_url" : issues_url,
141-
"contact_url" : contact_url,
138+
"homepage_url" : homepage_url,
139+
"sources_url" : sources_url,
140+
"issues_url" : issues_url,
141+
"contact_url" : contact_url,
142142
// Java
143-
"java_version" : java_version,
143+
"java_version" : java_version,
144144
"java_versions_fabric_list": asJsonList(java_versions_fabric),
145-
"java_versions_neoforge" : java_versions_neoforge,
145+
"java_versions_forge" : java_versions_forge,
146146
// Minecraft
147147
"minecraft_versions_fabric_list": asJsonList(minecraft_versions_fabric),
148-
"minecraft_versions_neoforge": minecraft_versions_neoforge,
148+
"minecraft_versions_forge": minecraft_versions_forge,
149149
// Fabric
150150
"fabric_loader_versions_list": asJsonList(fabric_loader_versions),
151151
"fabric_api_versions_list": asJsonList(fabric_api_versions),
152152
"fabric_entrypoints_main" : asJsonListPrefixed(fabric_entrypoints_main, "${mod_group}.${mod_id}."),
153153
"fabric_entrypoints_client" : asJsonListPrefixed(fabric_entrypoints_client, "${mod_group}.${mod_id}."),
154154
"fabric_entrypoints_server" : asJsonListPrefixed(fabric_entrypoints_server, "${mod_group}.${mod_id}."),
155155
"fabric_entrypoints_modmenu": asJsonListPrefixed(fabric_entrypoints_modmenu, "${mod_group}.${mod_id}."),
156-
// NeoForge
157-
"neoforge_versions" : neoforge_versions,
156+
// Forge
157+
"forge_versions" : forge_versions,
158158
// Dependencies:
159-
"fabric_depends" : "",
160-
"fabric_recommends" : "",
161-
"fabric_suggests" : "",
162-
"fabric_conflicts" : "",
163-
"fabric_breaks" : "",
164-
"neoforge_all_deps" : ""
159+
"fabric_depends" : "",
160+
"fabric_recommends" : "",
161+
"fabric_suggests" : "",
162+
"fabric_conflicts" : "",
163+
"fabric_breaks" : "",
164+
"forge_all_deps" : ""
165165
]
166166

167167
// Apply property-defined dependencies
@@ -186,25 +186,25 @@ processResources {
186186
if (!expandProps["fabric_depends"].isBlank()) {
187187
expandProps["fabric_depends"] = "${expandProps["fabric_depends"]},".toString()
188188
}
189-
safePropList("neoforge_deps").each { dep ->
189+
safePropList("forge_deps").each { dep ->
190190
try {
191-
final depData = propList("d_neoforge_${dep}")
191+
final depData = propList("d_forge_${dep}")
192192
if (depData.length > 1 && depData[1] != "-") {
193193
final loaderData = depData[1].split(":")
194-
expandProps["neoforge_all_deps"] = expandProps["neoforge_all_deps"] +
194+
expandProps["forge_all_deps"] = expandProps["forge_all_deps"] +
195195
"[[dependencies.${mod_id}]]\n" +
196196
"modId=\"${loaderData[1]}\"\n" +
197-
"type=\"${loaderData[0]}\"\n" +
198-
"versionRange=\"${project.property("vr_neoforge_${dep}")}\"\n" +
197+
"mandatory=${loaderData[0] == "required"}\n" +
198+
"versionRange=\"${project.property("vr_forge_${dep}")}\"\n" +
199199
"side=\"CLIENT\"\n\n"
200200
}
201201
} catch (Exception ex) {
202-
logger.error("Error processing NeoForge dependency metadata for '${dep}'. "
202+
logger.error("Error processing Forge dependency metadata for '${dep}'. "
203203
+ "Check dependency property format.")
204204
throw ex
205205
}
206206
}
207-
// logger.info("NeoForge metadata 'neoforge_all_deps': ${expandProps["neoforge_all_deps"]}")
207+
// logger.info("Forge metadata 'forge_all_deps': ${expandProps["forge_all_deps"]}")
208208

209209
filesMatching(["pack.mcmeta", "*.mod.json", "*.mixins.json", "META-INF/*.toml"]) {
210210
expand(expandProps)

common/build.gradle

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import util.PropUtil
22

33
plugins {
44
id("multiloader-common")
5-
id("net.neoforged.moddev")
5+
id("org.spongepowered.gradle.vanilla")
66
}
77

88
// Configure new ASM version
@@ -55,18 +55,12 @@ dependencies {
5555
new PropUtil(project).applyDependencies(project.name, selector)
5656
}
5757

58-
// Configure ModDevGradle
59-
neoForge {
60-
neoFormVersion = neoform_version
61-
// Apply common AccessTransformer if it exists
62-
def at = file("src/main/resources/META-INF/accesstransformer.cfg")
63-
if (at.exists()) accessTransformers.from(at.absolutePath)
64-
validateAccessTransformers = true
65-
// Apply Parchment mappings
66-
parchment {
67-
minecraftVersion = parchment_minecraft_version
68-
mappingsVersion = parchment_version
69-
}
58+
// Configure VanillaGradle
59+
minecraft {
60+
version(minecraft_version)
61+
// Apply common AccessWidener if it exists
62+
def aw = file("src/main/resources/${mod_id}.accesswidener")
63+
if (aw.exists()) accessWideners(aw)
7064
}
7165

7266
// Set up access to common files

common/src/main/java/dev/terminalmc/clientsort/ClientSort.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,12 @@ public static void onConfigSaved(ServerConfig config) {
6767
@Nullable Container container,
6868
AbstractContainerMenu menu
6969
) {
70-
return switch (container) {
71-
case null -> null;
72-
case ContainerSingleItem ignored -> menu;
73-
case SimpleContainer ignored -> menu;
74-
default -> container;
75-
};
70+
if (container == null)
71+
return null;
72+
if (container instanceof ContainerSingleItem)
73+
return menu;
74+
if (container instanceof SimpleContainer)
75+
return menu;
76+
return container;
7677
}
7778
}

common/src/main/java/dev/terminalmc/clientsort/client/config/Config.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import dev.terminalmc.clientsort.client.order.SortOrder;
2424
import dev.terminalmc.clientsort.platform.services.PlatformServices;
2525
import net.minecraft.resources.ResourceLocation;
26+
import net.minecraft.util.Mth;
2627
import net.minecraft.world.entity.player.Inventory;
2728
import net.minecraft.world.inventory.*;
2829
import net.minecraft.world.item.Item;
@@ -62,7 +63,7 @@ public static class Options {
6263
public static final int interactionIntervalDefault = 10;
6364
public int interactionInterval = interactionIntervalDefault;
6465
public static Validator<Integer> interactionIntervalValidator = (val) ->
65-
Math.clamp(unbox(val), INTERACTION_INTERVAL_MIN, INTERACTION_INTERVAL_MAX);
66+
Mth.clamp(unbox(val), INTERACTION_INTERVAL_MIN, INTERACTION_INTERVAL_MAX);
6667

6768
public static final boolean useServerAccelerationDefault = true;
6869
public boolean useServerAcceleration = useServerAccelerationDefault;
@@ -76,7 +77,7 @@ public static class Options {
7677
public static final int AUTO_OP_DELAY_MIN = 0;
7778
public static final int AUTO_OP_DELAY_MAX = 40;
7879
public static Validator<Integer> autoOpDelayValidator = (val) ->
79-
Math.clamp(unbox(val), AUTO_OP_DELAY_MIN, AUTO_OP_DELAY_MAX);
80+
Mth.clamp(unbox(val), AUTO_OP_DELAY_MIN, AUTO_OP_DELAY_MAX);
8081

8182
public static final int autoOpDelayPlayerDefault = 2;
8283
public int autoOpDelayPlayer = autoOpDelayPlayerDefault;
@@ -191,23 +192,23 @@ public enum ExtraSlotScope {
191192
public static final int soundIntervalDefault = 1;
192193
public int soundInterval = soundIntervalDefault;
193194
public static Validator<Integer> soundIntervalValidator = (val) ->
194-
Math.clamp(unbox(val), SOUND_INTERVAL_MIN, SOUND_INTERVAL_MAX);
195+
Mth.clamp(unbox(val), SOUND_INTERVAL_MIN, SOUND_INTERVAL_MAX);
195196

196197
public static final float SOUND_PITCH_MIN = 0.5F;
197198
public static final float SOUND_PITCH_MAX = 2.0F;
198199
public static final float soundPitchMinDefault = 0.5F;
199200
public float soundPitchMin = soundPitchMinDefault;
200-
public static AwareValidator<Float> soundPitchMinValidator = (val, options) -> Math.clamp(
201+
public static AwareValidator<Float> soundPitchMinValidator = (val, options) -> Mth.clamp(
201202
unbox(val),
202203
SOUND_PITCH_MIN,
203-
Math.clamp(options.soundPitchMax, SOUND_PITCH_MIN, SOUND_PITCH_MAX)
204+
Mth.clamp(options.soundPitchMax, SOUND_PITCH_MIN, SOUND_PITCH_MAX)
204205
);
205206

206207
public static final float soundPitchMaxDefault = 2.0F;
207208
public float soundPitchMax = soundPitchMaxDefault;
208-
public static AwareValidator<Float> soundPitchMaxValidator = (val, options) -> Math.clamp(
209+
public static AwareValidator<Float> soundPitchMaxValidator = (val, options) -> Mth.clamp(
209210
unbox(val),
210-
Math.clamp(options.soundPitchMin, SOUND_PITCH_MIN, SOUND_PITCH_MAX),
211+
Mth.clamp(options.soundPitchMin, SOUND_PITCH_MIN, SOUND_PITCH_MAX),
211212
SOUND_PITCH_MAX
212213
);
213214

@@ -216,7 +217,7 @@ public enum ExtraSlotScope {
216217
public static final float soundVolumeDefault = 0.2F;
217218
public float soundVolume = soundVolumeDefault;
218219
public static Validator<Float> soundVolumeValidator = (val) ->
219-
Math.clamp(unbox(val), SOUND_VOLUME_MIN, SOUND_VOLUME_MAX);
220+
Mth.clamp(unbox(val), SOUND_VOLUME_MIN, SOUND_VOLUME_MAX);
220221

221222
public static final boolean allowSoundOverlapDefault = true;
222223
public boolean allowSoundOverlap = allowSoundOverlapDefault;

common/src/main/java/dev/terminalmc/clientsort/client/config/Operation.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,19 @@
1919
import dev.terminalmc.clientsort.network.payload.SortPayload;
2020
import dev.terminalmc.clientsort.network.payload.StackFillPayload;
2121
import dev.terminalmc.clientsort.network.payload.TransferPayload;
22-
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
2322
import net.minecraft.resources.ResourceLocation;
2423

2524
public enum Operation {
26-
SORT(SortPayload.TYPE, "sort"),
27-
STACK_FILL(StackFillPayload.TYPE, "stackFill"),
28-
MATCH_TRANSFER(TransferPayload.TYPE, "matchTransfer"),
29-
TRANSFER(TransferPayload.TYPE, "transfer");
25+
SORT(SortPayload.ID, "sort"),
26+
STACK_FILL(StackFillPayload.ID, "stackFill"),
27+
MATCH_TRANSFER(TransferPayload.ID, "matchTransfer"),
28+
TRANSFER(TransferPayload.ID, "transfer");
3029

31-
public final CustomPacketPayload.Type<?> type;
3230
public final ResourceLocation id;
3331
public final String translationKey;
3432

35-
Operation(CustomPacketPayload.Type<?> type, String translationKey) {
36-
this.type = type;
37-
this.id = type.id();
33+
Operation(ResourceLocation id, String translationKey) {
34+
this.id = id;
3835
this.translationKey = translationKey;
3936
}
4037

common/src/main/java/dev/terminalmc/clientsort/client/gui/TriggerButtonManager.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
3838
import net.minecraft.client.player.LocalPlayer;
3939
import net.minecraft.network.chat.Component;
40+
import net.minecraft.util.Mth;
4041
import net.minecraft.world.Container;
4142
import net.minecraft.world.entity.player.Inventory;
4243
import net.minecraft.world.entity.player.Player;
@@ -478,12 +479,12 @@ public ScoredContainer(Container container, int score) {
478479
// Calculate the weighted positional score
479480
double x;
480481
if (anchorButtonsLeft) {
481-
x = Math.clamp(slot.x, 0, screen.width) / (double) screen.width;
482+
x = Mth.clamp(slot.x, 0, screen.width) / (double) screen.width;
482483
} else {
483484
x = ((AbstractContainerScreenAccessor) screen).clientsort$getImageWidth()
484-
- Math.clamp(slot.x, 0, screen.width) / (double) screen.width;
485+
- Mth.clamp(slot.x, 0, screen.width) / (double) screen.width;
485486
}
486-
double y = (screen.height - Math.clamp(slot.y, 0, screen.height))
487+
double y = (screen.height - Mth.clamp(slot.y, 0, screen.height))
487488
/ (double) screen.height;
488489
double score = x * 0.8D + y * 0.2D;
489490

common/src/main/java/dev/terminalmc/clientsort/client/gui/screen/config/ConfigScreenProvider.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818

1919
import net.minecraft.Util;
2020
import net.minecraft.client.Minecraft;
21+
import net.minecraft.client.gui.GuiGraphics;
2122
import net.minecraft.client.gui.components.Button;
2223
import net.minecraft.client.gui.components.MultiLineTextWidget;
2324
import net.minecraft.client.gui.screens.ConfirmLinkScreen;
2425
import net.minecraft.client.gui.screens.Screen;
2526
import net.minecraft.network.chat.CommonComponents;
27+
import org.jetbrains.annotations.NotNull;
2628

2729
import static dev.terminalmc.clientsort.util.Localization.localized;
2830

@@ -91,6 +93,17 @@ public void init() {
9193
addRenderableWidget(exitButton);
9294
}
9395

96+
@Override
97+
public void render(
98+
@NotNull GuiGraphics graphics,
99+
int mouseX,
100+
int mouseY,
101+
float partialTick
102+
) {
103+
renderDirtBackground(graphics);
104+
super.render(graphics, mouseX, mouseY, partialTick);
105+
}
106+
94107
@Override
95108
public void onClose() {
96109
Minecraft.getInstance().setScreen(parent);

0 commit comments

Comments
 (0)