diff --git a/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java b/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java index fba0b21..f246031 100644 --- a/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java +++ b/src/main/java/de/shiewk/widgets/widgets/ServerIPWidget.java @@ -1,5 +1,7 @@ package de.shiewk.widgets.widgets; +import de.shiewk.widgets.WidgetSettings; +import de.shiewk.widgets.widgets.settings.ToggleWidgetSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ServerInfo; import net.minecraft.text.Text; @@ -9,12 +11,17 @@ import java.util.List; public class ServerIPWidget extends BasicTextWidget { public ServerIPWidget(Identifier id) { - super(id, List.of()); + super(id, List.of( + new ToggleWidgetSetting("dynamicwidth", Text.translatable("widgets.widgets.serverIP.dynamicWidth"), true) + )); + getSettings().optionById("width").setShowCondition(() -> !this.dynamicWidth); } private int width; private int t = 0; + private boolean dynamicWidth = true; + @Override public void tickWidget() { final ServerInfo serverEntry = MinecraftClient.getInstance().getCurrentServerEntry(); @@ -32,7 +39,7 @@ public class ServerIPWidget extends BasicTextWidget { @Override public int width() { - return Math.max(super.width(), this.width); + return dynamicWidth ? this.width : super.width(); } @Override @@ -44,4 +51,10 @@ public class ServerIPWidget extends BasicTextWidget { public Text getDescription() { return Text.translatable("widgets.widgets.serverIP.description"); } + + @Override + public void onSettingsChanged(WidgetSettings settings) { + super.onSettingsChanged(settings); + this.dynamicWidth = ((ToggleWidgetSetting) settings.optionById("dynamicwidth")).getValue(); + } } diff --git a/src/main/resources/assets/widgets/lang/de_de.json b/src/main/resources/assets/widgets/lang/de_de.json index 0c3d55e..226c12b 100644 --- a/src/main/resources/assets/widgets/lang/de_de.json +++ b/src/main/resources/assets/widgets/lang/de_de.json @@ -71,5 +71,6 @@ "widgets.widgets.memory.description": "Zeigt die momentane Arbeitsspeicherauslastung des Spiels an.", "widgets.widgets.memory.withLabel": "Arbeitsspeicher: %s", "widgets.widgets.memory.showPercentage": "Prozentsatz anzeigen", - "widgets.widgets.memory.showLabel": "Beschriftung anzeigen" + "widgets.widgets.memory.showLabel": "Beschriftung anzeigen", + "widgets.widgets.serverIP.dynamicWidth": "Widget-Breite dynamisch festlegen" } diff --git a/src/main/resources/assets/widgets/lang/en_us.json b/src/main/resources/assets/widgets/lang/en_us.json index d7fde69..93cd091 100644 --- a/src/main/resources/assets/widgets/lang/en_us.json +++ b/src/main/resources/assets/widgets/lang/en_us.json @@ -71,5 +71,6 @@ "widgets.widgets.memory.description": "Shows the current memory usage of the game.", "widgets.widgets.memory.withLabel": "Memory: %s", "widgets.widgets.memory.showPercentage": "Show percentage", - "widgets.widgets.memory.showLabel": "Show label" + "widgets.widgets.memory.showLabel": "Show label", + "widgets.widgets.serverIP.dynamicWidth": "Dynamically set widget width" } \ No newline at end of file