Skip to content

Commit 4f2f627

Browse files
committed
Backport to mc1.20.1
1 parent f62ec99 commit 4f2f627

File tree

111 files changed

+1132
-1080
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

+1132
-1080
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
@@ -10,7 +10,9 @@ import java.util.regex.Pattern
1010

1111
plugins {
1212
id("fabric-loom") version("${loom_version}") apply(false)
13-
id("net.neoforged.moddev") version("${moddev_version}") apply(false)
13+
id("net.minecraftforge.gradle") version("${forgegradle_version}") apply(false)
14+
id("org.spongepowered.gradle.vanilla") version("${vanillagradle_version}") apply(false)
15+
id("org.spongepowered.mixin") version("${mixingradle_version}") apply(false)
1416
id("net.neoforged.licenser") version("${licenser_version}") apply(false)
1517
id("me.modmuss50.mod-publish-plugin") version("${mpp_version}")
1618
id("org.ajoberstar.grgit.service") version("${grgitservice_version}")
@@ -66,7 +68,8 @@ subprojects {
6668
afterEvaluate { sp ->
6769
publishMods {
6870
// Common configuration
69-
file = sp.name == "fabric" ? remapJar.archiveFile : jar.archiveFile
71+
file = project.name == "fabric" ? remapJar.archiveFile : name == "forge"
72+
? project.file("build/libs/${mod_id}-${name}-${mod_version}.jar") : jar.archiveFile
7073
version = mod_version
7174
type = ReleaseType.of(mod_version_type)
7275
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: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import dev.terminalmc.clientsort.client.order.SortOrder;
2525
import dev.terminalmc.clientsort.platform.Services;
2626
import net.minecraft.resources.ResourceLocation;
27+
import net.minecraft.util.Mth;
2728
import net.minecraft.world.entity.player.Inventory;
2829
import net.minecraft.world.inventory.*;
2930
import net.minecraft.world.item.Item;
@@ -63,7 +64,7 @@ public static class Options {
6364
public static final int interactionIntervalDefault = 10;
6465
public int interactionInterval = interactionIntervalDefault;
6566
public static Validator<Integer> interactionIntervalValidator = (val) ->
66-
Math.clamp(unbox(val), INTERACTION_INTERVAL_MIN, INTERACTION_INTERVAL_MAX);
67+
Mth.clamp(unbox(val), INTERACTION_INTERVAL_MIN, INTERACTION_INTERVAL_MAX);
6768

6869
public static final boolean useServerAccelerationDefault = true;
6970
public boolean useServerAcceleration = useServerAccelerationDefault;
@@ -181,23 +182,23 @@ public enum ExtraSlotScope {
181182
public static final int soundIntervalDefault = 1;
182183
public int soundInterval = soundIntervalDefault;
183184
public static Validator<Integer> soundIntervalValidator = (val) ->
184-
Math.clamp(unbox(val), SOUND_INTERVAL_MIN, SOUND_INTERVAL_MAX);
185+
Mth.clamp(unbox(val), SOUND_INTERVAL_MIN, SOUND_INTERVAL_MAX);
185186

186187
public static final float SOUND_PITCH_MIN = 0.5F;
187188
public static final float SOUND_PITCH_MAX = 2.0F;
188189
public static final float soundPitchMinDefault = 0.5F;
189190
public float soundPitchMin = soundPitchMinDefault;
190-
public static AwareValidator<Float> soundPitchMinValidator = (val, options) -> Math.clamp(
191+
public static AwareValidator<Float> soundPitchMinValidator = (val, options) -> Mth.clamp(
191192
unbox(val),
192193
SOUND_PITCH_MIN,
193-
Math.clamp(options.soundPitchMax, SOUND_PITCH_MIN, SOUND_PITCH_MAX)
194+
Mth.clamp(options.soundPitchMax, SOUND_PITCH_MIN, SOUND_PITCH_MAX)
194195
);
195196

196197
public static final float soundPitchMaxDefault = 2.0F;
197198
public float soundPitchMax = soundPitchMaxDefault;
198-
public static AwareValidator<Float> soundPitchMaxValidator = (val, options) -> Math.clamp(
199+
public static AwareValidator<Float> soundPitchMaxValidator = (val, options) -> Mth.clamp(
199200
unbox(val),
200-
Math.clamp(options.soundPitchMin, SOUND_PITCH_MIN, SOUND_PITCH_MAX),
201+
Mth.clamp(options.soundPitchMin, SOUND_PITCH_MIN, SOUND_PITCH_MAX),
201202
SOUND_PITCH_MAX
202203
);
203204

@@ -206,7 +207,7 @@ public enum ExtraSlotScope {
206207
public static final float soundVolumeDefault = 0.2F;
207208
public float soundVolume = soundVolumeDefault;
208209
public static Validator<Float> soundVolumeValidator = (val) ->
209-
Math.clamp(unbox(val), SOUND_VOLUME_MIN, SOUND_VOLUME_MAX);
210+
Mth.clamp(unbox(val), SOUND_VOLUME_MIN, SOUND_VOLUME_MAX);
210211

211212
public static final boolean allowSoundOverlapDefault = true;
212213
public boolean allowSoundOverlap = allowSoundOverlapDefault;

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
3535
import net.minecraft.client.player.LocalPlayer;
3636
import net.minecraft.network.chat.Component;
37+
import net.minecraft.util.Mth;
3738
import net.minecraft.world.Container;
3839
import net.minecraft.world.entity.player.Inventory;
3940
import net.minecraft.world.entity.player.Player;
@@ -411,9 +412,9 @@ public ScoredContainer(Container container, int score) {
411412
Scope scope = isPlayerInv ? Scope.PLAYER_INV : Scope.CONTAINER_INV;
412413
for (Slot slot : helper.getLargestSlotGroup(scope)) {
413414
// Calculate the weighted positional score
414-
double x = Math.clamp(slot.x, 0, screen.width)
415+
double x = Mth.clamp(slot.x, 0, screen.width)
415416
/ (double) screen.width;
416-
double y = (screen.height - Math.clamp(slot.y, 0, screen.height))
417+
double y = (screen.height - Mth.clamp(slot.y, 0, screen.height))
417418
/ (double) screen.height;
418419
double score = x * 0.8D + y * 0.2D;
419420

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

@@ -90,5 +92,16 @@ public void init() {
9092
.build();
9193
addRenderableWidget(exitButton);
9294
}
95+
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+
}
93106
}
94107
}

common/src/main/java/dev/terminalmc/clientsort/client/gui/screen/edit/EditorScreen.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -471,20 +471,6 @@ public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float
471471
}
472472
}
473473

474-
/**
475-
* Modifies the background blur to be constant irrespective of the configured value.
476-
* <p>
477-
* Minimal blur is used to prevent the editable widgets disappearing under underlay items on a
478-
* higher render layer, while still keeping the underlay detail discernible.
479-
*/
480-
@Override
481-
protected void renderBlurredBackground(float partialTick) {
482-
int original = Minecraft.getInstance().options.menuBackgroundBlurriness().get();
483-
Minecraft.getInstance().options.menuBackgroundBlurriness().set(1);
484-
super.renderBlurredBackground(partialTick);
485-
Minecraft.getInstance().options.menuBackgroundBlurriness().set(original);
486-
}
487-
488474
/**
489475
* Draws a horizontal and a vertical line to trace this widget back to its positional origin
490476
* point.

0 commit comments

Comments
 (0)