From 5aa6d9a6d43bf1bd332ae16e0c0425cf5b69f92a Mon Sep 17 00:00:00 2001 From: Estecka <estecka@galacsys.com> Date: Thu, 2 Nov 2023 11:28:47 +0100 Subject: [PATCH] Fix Doubles not being editable in the game-rule menu (#3397) * Fix double gamerules rules not being editable in menu * Updated `validate`'s javadoc (cherry picked from commit a44e16a6dc3795db133aee1806ef5455a79ed35a) --- .../fabricmc/fabric/api/gamerule/v1/rule/DoubleRule.java | 7 ++++++- .../fabric/api/gamerule/v1/rule/ValidateableRule.java | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/DoubleRule.java b/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/DoubleRule.java index aee650bf4..ce3f6b9b6 100644 --- a/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/DoubleRule.java +++ b/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/DoubleRule.java @@ -113,7 +113,12 @@ public final class DoubleRule extends GameRules.Rule<DoubleRule> implements Vali try { final double d = Double.parseDouble(value); - return this.inBounds(d); + if (!this.inBounds(d)) { + return false; + } + + this.value = d; + return true; } catch (NumberFormatException ignored) { return false; } diff --git a/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/ValidateableRule.java b/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/ValidateableRule.java index bf2fda2f7..6f7284de9 100644 --- a/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/ValidateableRule.java +++ b/fabric-game-rule-api-v1/src/main/java/net/fabricmc/fabric/api/gamerule/v1/rule/ValidateableRule.java @@ -23,9 +23,10 @@ package net.fabricmc.fabric.api.gamerule.v1.rule; public interface ValidateableRule { /** * Validates if a rule can accept the input. + * If valid, the input will be set as the rule's value. * * @param value the value to validate - * @return true if the value can be accepted. + * @return true if the value was accepted. */ boolean validate(String value); }