Skip to content

Commit dd6bcd6

Browse files
committed
make config button replace broadcast, add description
1 parent 5820783 commit dd6bcd6

5 files changed

Lines changed: 38 additions & 33 deletions

File tree

src/main/java/me/voidxwalker/anchiale/mixin/GameMenuScreenMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ private ButtonWidget titleScreenWidth(ButtonWidget button) {
3434

3535
@Inject(method = "init", at = @At("TAIL"))
3636
private void addAnchialeButton(CallbackInfo ci, @Share("originalX") LocalIntRef originalX, @Share("originalY") LocalIntRef originalY) {
37-
int x, y, width;
37+
int x, y;
3838
switch (Anchiale.buttonLocation) {
3939
case BOTTOM_RIGHT:
4040
x = this.width - 104;
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package me.voidxwalker.anchiale.mixin;
2+
3+
import me.voidxwalker.anchiale.Anchiale;
4+
import net.minecraft.client.gui.screen.*;
5+
import net.minecraft.client.gui.widget.ButtonWidget;
6+
import org.spongepowered.asm.mixin.*;
7+
import org.spongepowered.asm.mixin.injection.*;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
@Mixin(SettingsScreen.class)
11+
public abstract class SettingsScreenMixin extends Screen {
12+
@Unique
13+
private ButtonWidget locationButton;
14+
15+
@ModifyArg(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/ButtonWidget;<init>(IIIIILjava/lang/String;)V", ordinal = 0), slice = @Slice(from = @At(value = "CONSTANT", args = "stringValue=options.stream")))
16+
private String renameBroadcastButton(String string) {
17+
return Anchiale.buttonLocation.toString();
18+
}
19+
20+
// modifyexpressionvalue on invoke <init> doesn't work and on new is before the string ldc for some reason
21+
@ModifyArg(method = "init", at = @At(value = "INVOKE", target = "Ljava/util/List;add(Ljava/lang/Object;)Z", ordinal = 0), slice = @Slice(from = @At(value = "CONSTANT", args = "stringValue=options.stream")))
22+
private Object captureLocationButton(Object button) {
23+
locationButton = (ButtonWidget) button;
24+
return button;
25+
}
26+
27+
@Inject(method = "buttonClicked", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;getTwitchStreamProvider()Lnet/minecraft/client/util/TwitchStreamProvider;"), cancellable = true)
28+
private void locationButtonClicked(ButtonWidget button, CallbackInfo ci) {
29+
Anchiale.ButtonLocation[] locations = Anchiale.ButtonLocation.values();
30+
Anchiale.buttonLocation = locations[(Anchiale.buttonLocation.ordinal() + 1) % locations.length];
31+
locationButton.message = Anchiale.buttonLocation.toString();
32+
Anchiale.saveConfig();
33+
ci.cancel();
34+
}
35+
}

src/main/java/me/voidxwalker/anchiale/mixin/SkinOptionsScreenMixin.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/main/resources/anchiale.mixins.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"IntegratedServerMixin"
99
],
1010
"client": [
11-
"SkinOptionsScreenMixin"
11+
"SettingsScreenMixin"
1212
],
1313
"injectors": {
1414
"defaultRequire": 1

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"id": "anchiale",
44
"version": "${version}",
55
"name": "Anchiale",
6-
"description": "",
6+
"description": "Adds a faster way to exit worlds in 1.8. Use the Quit to Title button to exit the current world without waiting for the server tasks queue to complete.",
77
"authors": [
88
"RedLime",
99
"voidxwalker",

0 commit comments

Comments
 (0)