Skip to content

Commit 232553b

Browse files
committed
Update to mc1.21.7
1 parent 64d70ac commit 232553b

11 files changed

Lines changed: 122 additions & 83 deletions

File tree

common/src/main/java/dev/terminalmc/clientsort/client/compat/itemlocks/ItemLocksCompat.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,16 @@
1616

1717
package dev.terminalmc.clientsort.client.compat.itemlocks;
1818

19-
import com.kirdow.itemlocks.client.LockManager;
20-
import dev.terminalmc.clientsort.util.inject.ISlot;
21-
import net.minecraft.world.entity.player.Inventory;
2219
import net.minecraft.world.inventory.Slot;
2320

24-
import static com.kirdow.itemlocks.client.input.KeyBindings.isBypass;
25-
import static com.kirdow.itemlocks.proxy.Components.getComponent;
26-
2721
public class ItemLocksCompat {
2822

2923
/**
3024
* @param slot the slot to check.
3125
* @return {@code true} if the slot is valid, locked, and the bypass is not active.
3226
*/
3327
static boolean isLocked(Slot slot) {
34-
if (!(slot.container instanceof Inventory))
35-
return false;
36-
int index = adjustForInventory(((ISlot) slot).clientsort$getIndexInInv());
37-
return getComponent(LockManager.class).isLockedSlotRaw(index) && !isBypass();
28+
return false;
3829
}
3930

4031
/**

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

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import dev.terminalmc.clientsort.client.config.Config;
2020
import dev.terminalmc.clientsort.client.gui.ControlButtonManager;
2121
import dev.terminalmc.clientsort.client.gui.widget.ControlButton;
22+
import dev.terminalmc.clientsort.mixin.client.accessor.GuiGraphicsAccessor;
2223
import net.minecraft.ChatFormatting;
2324
import net.minecraft.client.Minecraft;
2425
import net.minecraft.client.gui.GuiGraphics;
@@ -99,20 +100,42 @@ private void rebuildGui() {
99100

100101
@Override
101102
public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTick) {
103+
underlay.renderBackground(graphics, mouseX, mouseY, partialTick);
102104
underlay.render(graphics, mouseX, mouseY, partialTick);
105+
106+
((GuiGraphicsAccessor) graphics).clientsort$getGuiRenderState().nextStratum();
107+
renderBlurredBackground(graphics);
108+
103109
super.render(graphics, mouseX, mouseY, partialTick);
104110

105111
for (ControlButton cb : buttons) {
106112
cb.renderWidget(graphics, mouseX, mouseY, partialTick);
107113
}
108114
}
109115

116+
/**
117+
* Removes the call to {@link Screen#renderBlurredBackground}, since we add a call in
118+
* {@link GroupSelectorScreen#render} and the method can only be called once.
119+
*/
120+
@Override
121+
public void renderBackground(
122+
@NotNull GuiGraphics graphics,
123+
int mouseX,
124+
int mouseY,
125+
float partialTick
126+
) {
127+
if (Minecraft.getInstance().level == null) {
128+
renderPanorama(graphics, partialTick);
129+
}
130+
renderMenuBackground(graphics);
131+
}
132+
110133
@Override
111-
protected void renderBlurredBackground() {
134+
protected void renderBlurredBackground(@NotNull GuiGraphics graphics) {
112135
// Heavy blur, we want the widgets to really stand out
113136
int original = Minecraft.getInstance().options.menuBackgroundBlurriness().get();
114137
Minecraft.getInstance().options.menuBackgroundBlurriness().set(6);
115-
super.renderBlurredBackground();
138+
super.renderBlurredBackground(graphics);
116139
Minecraft.getInstance().options.menuBackgroundBlurriness().set(original);
117140
}
118141

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

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import dev.terminalmc.clientsort.client.config.Config;
2424
import dev.terminalmc.clientsort.client.config.Vec2i;
2525
import dev.terminalmc.clientsort.client.gui.widget.ControlButton;
26+
import dev.terminalmc.clientsort.mixin.client.accessor.GuiGraphicsAccessor;
2627
import net.minecraft.ChatFormatting;
2728
import net.minecraft.client.Minecraft;
2829
import net.minecraft.client.gui.GuiGraphics;
@@ -332,7 +333,12 @@ lowestLayoutKey, new ButtonLayout(
332333
*/
333334
@Override
334335
public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float partialTick) {
336+
underlay.renderBackground(graphics, mouseX, mouseY, partialTick);
335337
underlay.render(graphics, mouseX, mouseY, partialTick);
338+
339+
((GuiGraphicsAccessor) graphics).clientsort$getGuiRenderState().nextStratum();
340+
renderBlurredBackground(graphics);
341+
336342
super.render(graphics, mouseX, mouseY, partialTick);
337343

338344
// Safety net
@@ -376,17 +382,34 @@ public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float
376382
}
377383
}
378384

385+
/**
386+
* Removes the call to {@link Screen#renderBlurredBackground}, since we add a call in
387+
* {@link PositionEditScreen#render} and the method can only be called once.
388+
*/
389+
@Override
390+
public void renderBackground(
391+
@NotNull GuiGraphics graphics,
392+
int mouseX,
393+
int mouseY,
394+
float partialTick
395+
) {
396+
if (Minecraft.getInstance().level == null) {
397+
renderPanorama(graphics, partialTick);
398+
}
399+
renderMenuBackground(graphics);
400+
}
401+
379402
/**
380403
* Modifies the background blur to be constant irrespective of the configured value.
381404
* <p>
382405
* Minimal blur is used to prevent the editable widgets disappearing under underlay items on a
383406
* higher render layer, while still keeping the underlay detail discernible.
384407
*/
385408
@Override
386-
protected void renderBlurredBackground() {
409+
protected void renderBlurredBackground(@NotNull GuiGraphics graphics) {
387410
int original = Minecraft.getInstance().options.menuBackgroundBlurriness().get();
388411
Minecraft.getInstance().options.menuBackgroundBlurriness().set(1);
389-
super.renderBlurredBackground();
412+
super.renderBlurredBackground(graphics);
390413
Minecraft.getInstance().options.menuBackgroundBlurriness().set(original);
391414
}
392415

common/src/main/java/dev/terminalmc/clientsort/client/gui/widget/ControlButton.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import net.minecraft.client.gui.navigation.FocusNavigationEvent;
3535
import net.minecraft.client.gui.screens.Screen;
3636
import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
37-
import net.minecraft.client.renderer.RenderType;
37+
import net.minecraft.client.renderer.RenderPipelines;
3838
import net.minecraft.network.chat.CommonComponents;
3939
import net.minecraft.network.chat.Component;
4040
import net.minecraft.resources.ResourceLocation;
@@ -171,7 +171,7 @@ public void renderWidget(
171171

172172
// Draw texture
173173
ResourceLocation texture = sprites.get(isActive(), isHoveredOrFocused());
174-
graphics.blitSprite(RenderType::guiTextured, texture, getX(), getY(), width, height);
174+
graphics.blitSprite(RenderPipelines.GUI_TEXTURED, texture, getX(), getY(), width, height);
175175

176176
// Draw policy state indicator
177177
if (disabledByPolicy) {

common/src/main/java/dev/terminalmc/clientsort/mixin/client/AbstractContainerScreenMixin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,8 @@ private void afterRender(
305305
);
306306

307307
float scale = 0.7F;
308-
graphics.pose().pushPose();
309-
graphics.pose().scale(scale, scale, 0.0F);
308+
graphics.pose().pushMatrix();
309+
graphics.pose().scale(scale, scale);
310310

311311
for (Slot slot : menu.slots) {
312312
String slotId;
@@ -343,6 +343,6 @@ private void afterRender(
343343
);
344344
}
345345

346-
graphics.pose().popPose();
346+
graphics.pose().popMatrix();
347347
}
348348
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright 2025 TerminalMC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package dev.terminalmc.clientsort.mixin.client.accessor;
18+
19+
import net.minecraft.client.gui.GuiGraphics;
20+
import net.minecraft.client.gui.render.state.GuiRenderState;
21+
import org.spongepowered.asm.mixin.Mixin;
22+
import org.spongepowered.asm.mixin.gen.Accessor;
23+
24+
@Mixin(GuiGraphics.class)
25+
public interface GuiGraphicsAccessor {
26+
27+
@Accessor("guiRenderState")
28+
GuiRenderState clientsort$getGuiRenderState();
29+
}

common/src/main/resources/clientsort.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"client.ClientPacketListenerMixin",
1414
"client.LocalPlayerMixin",
1515
"client.accessor.AbstractContainerScreenAccessor",
16+
"client.accessor.GuiGraphicsAccessor",
1617
"client.accessor.ScreenAccessor",
1718
"client.compat.emi.ReloadWorkerMixin",
1819
"client.slot.CreativeSlotMixin"

gradle.properties

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,19 +71,19 @@ mod_curseforge_slug=clientsort
7171
# Subproject Build Compatibility
7272
# -> Comment out or unset to disable publishing of a subproject.
7373
mod_loaders_fabric=fabric
74-
mc_versions_fabric=1.21.5
74+
mc_versions_fabric=1.21.6,1.21.7
7575
mod_loaders_neoforge=neoforge
76-
mc_versions_neoforge=1.21.5
76+
mc_versions_neoforge=1.21.7
7777

7878
# Java
7979
java_version=21
8080
java_versions_fabric=>=21
8181
java_versions_neoforge=[21,)
8282

8383
# Minecraft
84-
minecraft_version=1.21.5
85-
minecraft_versions_fabric=>1.21.4
86-
minecraft_versions_neoforge=[1.21.5,)
84+
minecraft_version=1.21.7
85+
minecraft_versions_fabric=>1.21.5
86+
minecraft_versions_neoforge=[1.21.7,)
8787

8888
# Parchment https://parchmentmc.org/docs/getting-started#choose-a-version
8989
parchment_minecraft_version=1.21.5
@@ -93,21 +93,21 @@ parchment_version=2025.06.15
9393
# -> See also 'mixinextras_jij_fabric'
9494
fabric_loader_version=0.16.14
9595
fabric_loader_versions=>=0.16.1
96-
fabric_api_version=0.128.1+1.21.5
96+
fabric_api_version=0.129.0+1.21.7
9797
fabric_api_versions=*
9898

9999
# NeoForge https://projects.neoforged.net/neoforged/neoforge
100100
# -> See also 'mixinextras_jij_neoforge'
101-
neoforge_version=21.5.85
102-
neoforge_versions=[21.5.0-beta,)
101+
neoforge_version=21.7.17-beta
102+
neoforge_versions=[21.7.0-beta,)
103103
# NeoForm https://projects.neoforged.net/neoforged/neoform
104-
neoform_version=1.21.5-20250325.162830
104+
neoform_version=1.21.7-20250630.141722
105105

106106
# Dependency Property Identifiers
107107
# -> These values point to other properties with full dependency specification.
108-
common_deps=clothconfig,itemlocks
109-
fabric_deps=modmenu,clothconfig,itemlocks
110-
neoforge_deps=clothconfig,itemlocks
108+
common_deps=clothconfig
109+
fabric_deps=modmenu,clothconfig
110+
neoforge_deps=clothconfig
111111

112112
# Dependency Notation:
113113
# `d_{subproject}_{dep}=[{gradle_config}],[{loader_config}],[{modrinth_config}],[{curseforge_config}]`
@@ -128,21 +128,21 @@ neoforge_deps=clothconfig,itemlocks
128128
d_common_clothconfig=-:-:imp:me.shedaniel.cloth:cloth-config-neoforge:$v
129129
d_fabric_clothconfig=-:-:imp:me.shedaniel.cloth:cloth-config-fabric:$v:-,recommends:cloth-config,req:9s6osm5g,req:cloth-config
130130
d_neoforge_clothconfig=-:-:imp:me.shedaniel.cloth:cloth-config-neoforge:$v:-,optional:cloth-config,req:9s6osm5g,req:cloth-config
131-
v_clothconfig=18.0.145
132-
vr_fabric_clothconfig=>=18
133-
vr_neoforge_clothconfig=[18,)
131+
v_clothconfig=19.0.147
132+
vr_fabric_clothconfig=>=19
133+
vr_neoforge_clothconfig=[19,)
134134

135135
# ModMenu https://modrinth.com/mod/mOgUt4GM/versions
136136
d_fabric_modmenu=-:-:imp:maven.modrinth:mOgUt4GM:$v:-,recommends:modmenu,req:mOgUt4GM,req:modmenu
137-
v_modmenu=14.0.0-rc.2
138-
vr_fabric_modmenu=>=14.0.0-rc.1
137+
v_modmenu=15.0.0-beta.3
138+
vr_fabric_modmenu=>=15.0.0-beta.1
139139

140140
# ItemLocks https://modrinth.com/mod/tJzrFuyy/versions
141-
d_common_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_neoforge_itemlocks
142-
d_fabric_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_fabric_itemlocks
143-
d_neoforge_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_neoforge_itemlocks
144-
v_fabric_itemlocks=NNkUoTWp
145-
v_neoforge_itemlocks=PqTAuCHp
141+
#d_common_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_neoforge_itemlocks
142+
#d_fabric_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_fabric_itemlocks
143+
#d_neoforge_itemlocks=-:-:imp:maven.modrinth:tJzrFuyy:$v:v_neoforge_itemlocks
144+
#v_fabric_itemlocks=NNkUoTWp
145+
#v_neoforge_itemlocks=PqTAuCHp
146146

147147
# Dependency Version Extensions
148148
# -> Intended for addon mods to show which version they were compiled against.

neoforge/src/main/java/dev/terminalmc/clientsort/ClientSortNeoForge.java

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,10 @@
2727
import net.neoforged.fml.common.Mod;
2828
import net.neoforged.neoforge.event.RegisterCommandsEvent;
2929
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
30-
import net.neoforged.neoforge.network.handling.DirectionalPayloadHandler;
3130
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
3231

3332
@Mod(ClientSort.MOD_ID)
34-
@EventBusSubscriber(
35-
modid = ClientSort.MOD_ID,
36-
bus = EventBusSubscriber.Bus.MOD
37-
)
33+
@EventBusSubscriber(modid = ClientSort.MOD_ID)
3834
public class ClientSortNeoForge {
3935

4036
public ClientSortNeoForge() {
@@ -51,10 +47,7 @@ static void register(final RegisterPayloadHandlersEvent event) {
5147
Registration.PAYLOADS_C2S.forEach((rp) -> registerC2S(registrar, rp));
5248
}
5349

54-
@EventBusSubscriber(
55-
modid = ClientSort.MOD_ID,
56-
bus = EventBusSubscriber.Bus.GAME
57-
)
50+
@EventBusSubscriber(modid = ClientSort.MOD_ID)
5851
static class GameEventHandler {
5952

6053
/**
@@ -71,7 +64,6 @@ static void registerCommands(RegisterCommandsEvent event) {
7164

7265
@EventBusSubscriber(
7366
modid = ClientSort.MOD_ID,
74-
bus = EventBusSubscriber.Bus.MOD,
7567
value = Dist.DEDICATED_SERVER
7668
)
7769
static class DedicatedServerEventHandler {
@@ -96,17 +88,10 @@ private static <T extends CustomPacketPayload> void registerC2S(
9688
registrar.playToServer(
9789
rp.type,
9890
rp.streamCodec,
99-
new DirectionalPayloadHandler<>(
100-
(payload, context) -> rp.handler.accept(
101-
payload,
102-
context.player().getServer(),
103-
(ServerPlayer) context.player()
104-
),
105-
(payload, context) -> rp.handler.accept(
106-
payload,
107-
context.player().getServer(),
108-
(ServerPlayer) context.player()
109-
)
91+
(payload, context) -> rp.handler.accept(
92+
payload,
93+
context.player().getServer(),
94+
(ServerPlayer) context.player()
11095
)
11196
);
11297
}
@@ -124,12 +109,8 @@ private static <T extends CustomPacketPayload> void registerPayloadS2C(
124109
registrar.playToClient(
125110
rp.type,
126111
rp.streamCodec,
127-
new DirectionalPayloadHandler<>(
128-
(payload, context) -> {
129-
},
130-
(payload, context) -> {
131-
}
132-
)
112+
(payload, context) -> {
113+
}
133114
);
134115
}
135116
}

0 commit comments

Comments
 (0)