Skip to content

Commit e327d9d

Browse files
committed
Fixes #101
Fixes #100
1 parent 2ec3b1c commit e327d9d

2 files changed

Lines changed: 20 additions & 6 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ loader_version=0.15.11
88
fabric_version=0.98.0+1.20.6
99

1010
# Mod Properties
11-
mod_version=2.4.0
11+
mod_version=2.4.1
1212
maven_group=org.samo_lego
1313
archives_base_name=fabrictailor
1414
# Dependencies
Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,44 @@
11
package org.samo_lego.fabrictailor.mixin.client;
22

33
import net.minecraft.client.Options;
4+
import net.minecraft.client.gui.components.AbstractWidget;
45
import net.minecraft.client.gui.components.Button;
6+
import net.minecraft.client.gui.components.OptionsList;
57
import net.minecraft.client.gui.screens.OptionsSubScreen;
68
import net.minecraft.client.gui.screens.Screen;
79
import net.minecraft.client.gui.screens.SkinCustomizationScreen;
10+
import net.minecraft.network.chat.CommonComponents;
811
import net.minecraft.network.chat.Component;
12+
import org.jetbrains.annotations.Nullable;
913
import org.samo_lego.fabrictailor.client.ClientTailor;
1014
import org.spongepowered.asm.mixin.Mixin;
15+
import org.spongepowered.asm.mixin.Shadow;
1116
import org.spongepowered.asm.mixin.injection.At;
1217
import org.spongepowered.asm.mixin.injection.Inject;
1318
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1419
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
1520

21+
import java.util.List;
22+
1623

1724
@Mixin(SkinCustomizationScreen.class)
1825
public class MSkinCustomizationScreen_SkinButton extends OptionsSubScreen {
26+
1927
public MSkinCustomizationScreen_SkinButton(Screen screen, Options options, Component component) {
2028
super(screen, options, component);
2129
}
2230

23-
@Inject(method = "init", at = @At("TAIL"), locals = LocalCapture.CAPTURE_FAILHARD)
24-
private void onInit(CallbackInfo ci, int i) {
25-
if (this.minecraft.player != null) {
26-
this.addRenderableWidget(Button.builder(Component.literal("FabricTailor"),
27-
button -> this.minecraft.setScreen(ClientTailor.SKIN_CHANGE_SCREEN)).bounds(this.width / 2 - 100, this.height / 6 + 24 * (i >> 1) + 22, 200, 20).build());
31+
@Inject(method = "init",
32+
at = @At(
33+
value = "INVOKE",
34+
target = "Lnet/minecraft/client/gui/components/OptionsList;addSmall(Ljava/util/List;)V"
35+
),
36+
locals = LocalCapture.CAPTURE_FAILSOFT)
37+
private void onInit(CallbackInfo ci, List<AbstractWidget> widgets) {
38+
if (this.minecraft != null && this.minecraft.player != null) {
39+
var ftButton = Button.builder(Component.literal("FabricTailor"),
40+
button -> this.minecraft.setScreen(ClientTailor.SKIN_CHANGE_SCREEN)).build();
41+
widgets.add(ftButton);
2842
}
2943
}
3044
}

0 commit comments

Comments
 (0)