Skip to content

Commit 142ec00

Browse files
committed
Fix MC chat scale not being linked with Chatting's
1 parent 9cabe5f commit 142ec00

File tree

5 files changed

+48
-1
lines changed

5 files changed

+48
-1
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package org.polyfrost.chatting.mixin;
2+
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.settings.GameSettings;
5+
import org.objectweb.asm.Opcodes;
6+
import org.polyfrost.chatting.config.ChattingConfig;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
@Mixin(GameSettings.class)
14+
public class GameSettingsMixin {
15+
@Shadow protected Minecraft mc;
16+
17+
@Inject(method = "setOptionFloatValue", at = @At(value = "FIELD", target = "Lnet/minecraft/client/settings/GameSettings;chatScale:F", opcode = Opcodes.PUTFIELD, shift = At.Shift.AFTER))
18+
private void onChatScaleChange(GameSettings.Options settingsOption, float value, CallbackInfo ci) {
19+
ChattingConfig.INSTANCE.getChatWindow().updateMCChatScale();
20+
}
21+
}

src/main/kotlin/org/polyfrost/chatting/Chatting.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ object Chatting {
7474
@Mod.EventHandler
7575
fun onInitialization(event: FMLInitializationEvent) {
7676
ChattingConfig
77+
if (!ChattingConfig.enabled) {
78+
ChattingConfig.enabled = true
79+
ChattingConfig.save()
80+
}
81+
if (!ChattingConfig.chatWindow.transferOverScale) {
82+
ChattingConfig.chatWindow.normalScale = ChattingConfig.chatWindow.scale
83+
ChattingConfig.chatWindow.transferOverScale = true
84+
ChattingConfig.save()
85+
}
86+
ChattingConfig.chatWindow.updateMCChatScale()
7787
CommandManager.INSTANCE.registerCommand(ChattingCommand())
7888
ClientRegistry.registerKeyBinding(keybind)
7989
EVENT_BUS.register(this)

src/main/kotlin/org/polyfrost/chatting/chat/ChatWindow.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ class ChatWindow : BasicHud(true, 2f, 1080 - 27f - 45f - 12f,
6969
@Exclude
7070
var wasInChatGui = false
7171

72+
var normalScale = 1f
73+
var lastChatGuiScale = -1f
74+
var transferOverScale = false
75+
7276
@Switch(
7377
name = "Custom Chat Height",
7478
description = "Set a custom height for the chat window. Allows for more customization than the vanilla chat height options."
@@ -279,4 +283,15 @@ class ChatWindow : BasicHud(true, 2f, 1080 - 27f - 45f - 12f,
279283
bgColor = color
280284
}
281285

286+
override fun setScale(scale: Float, example: Boolean) {
287+
super.setScale(scale, example)
288+
normalScale = scale
289+
}
290+
291+
fun updateMCChatScale() {
292+
if (ChattingConfig.chatWindow.lastChatGuiScale != mc.gameSettings.chatScale) {
293+
ChattingConfig.chatWindow.scale = ChattingConfig.chatWindow.normalScale * mc.gameSettings.chatScale
294+
}
295+
}
296+
282297
}

src/main/kotlin/org/polyfrost/chatting/config/ChattingConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ object ChattingConfig : Config(
2626
ModType.UTIL_QOL,
2727
"/chatting_dark.svg",
2828
VigilanceMigrator(File(Chatting.oldModDir, Chatting.ID + ".toml").toPath().toString())
29-
), "chatting.json"
29+
), "chatting.json", true, false
3030
) {
3131

3232
@Dropdown(

src/main/resources/mixins.chatting.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"ClientCommandHandlerMixin",
1010
"EntityPlayerSPMixin",
1111
"EntityRendererMixin",
12+
"GameSettingsMixin",
1213
"GuiChatMixin",
1314
"GuiIngameForgeAccessor",
1415
"GuiIngameForgeMixin",

0 commit comments

Comments
 (0)