From 1e39d57be7c4183a2b4f5b4fa76524cb43b390bc Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Mon, 21 Mar 2022 22:09:02 -0700 Subject: [PATCH] fix negative number parsing for positions --- .../kyori/adventure/text/BlockNBTComponentImpl.java | 4 ++-- .../kyori/adventure/text/BlockNBTComponentTest.java | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/net/kyori/adventure/text/BlockNBTComponentImpl.java b/api/src/main/java/net/kyori/adventure/text/BlockNBTComponentImpl.java index 6f40b92973..9e490d3c31 100644 --- a/api/src/main/java/net/kyori/adventure/text/BlockNBTComponentImpl.java +++ b/api/src/main/java/net/kyori/adventure/text/BlockNBTComponentImpl.java @@ -326,8 +326,8 @@ public String toString() { } static final class Tokens { - static final Pattern LOCAL_PATTERN = Pattern.compile("^\\^(\\d+(\\.\\d+)?) \\^(\\d+(\\.\\d+)?) \\^(\\d+(\\.\\d+)?)$"); - static final Pattern WORLD_PATTERN = Pattern.compile("^(~?)(\\d+) (~?)(\\d+) (~?)(\\d+)$"); + static final Pattern LOCAL_PATTERN = Pattern.compile("^\\^(-?\\d+(\\.\\d+)?) \\^(-?\\d+(\\.\\d+)?) \\^(-?\\d+(\\.\\d+)?)$"); + static final Pattern WORLD_PATTERN = Pattern.compile("^(~?)(-?\\d+) (~?)(-?\\d+) (~?)(-?\\d+)$"); static final String LOCAL_SYMBOL = "^"; static final String RELATIVE_SYMBOL = "~"; diff --git a/api/src/test/java/net/kyori/adventure/text/BlockNBTComponentTest.java b/api/src/test/java/net/kyori/adventure/text/BlockNBTComponentTest.java index 53eb23de9d..4a660e88a9 100644 --- a/api/src/test/java/net/kyori/adventure/text/BlockNBTComponentTest.java +++ b/api/src/test/java/net/kyori/adventure/text/BlockNBTComponentTest.java @@ -79,8 +79,8 @@ void testPosEquality() { @Test void testLocalPosNoDecimalParsing() { assertEquals( - BlockNBTComponent.LocalPos.localPos(1.0d, 2.0d, 3.89d), - BlockNBTComponent.Pos.fromString("^1 ^2 ^3.89") + BlockNBTComponent.LocalPos.localPos(1.0d, 2.0d, -3.89d), + BlockNBTComponent.Pos.fromString("^1 ^2 ^-3.89") ); } @@ -95,16 +95,16 @@ void testLocalPosParsing() { @Test void testAbsoluteWorldPosParsing() { assertEquals( - BlockNBTComponent.WorldPos.worldPos(BlockNBTComponent.WorldPos.Coordinate.absolute(4), BlockNBTComponent.WorldPos.Coordinate.absolute(5), BlockNBTComponent.WorldPos.Coordinate.absolute(6)), - BlockNBTComponent.Pos.fromString("4 5 6") + BlockNBTComponent.WorldPos.worldPos(BlockNBTComponent.WorldPos.Coordinate.absolute(4), BlockNBTComponent.WorldPos.Coordinate.absolute(-5), BlockNBTComponent.WorldPos.Coordinate.absolute(6)), + BlockNBTComponent.Pos.fromString("4 -5 6") ); } @Test void testRelativeWorldPosParsing() { assertEquals( - BlockNBTComponent.WorldPos.worldPos(BlockNBTComponent.WorldPos.Coordinate.relative(7), BlockNBTComponent.WorldPos.Coordinate.relative(83), BlockNBTComponent.WorldPos.Coordinate.relative(900)), - BlockNBTComponent.Pos.fromString("~7 ~83 ~900") + BlockNBTComponent.WorldPos.worldPos(BlockNBTComponent.WorldPos.Coordinate.relative(-7), BlockNBTComponent.WorldPos.Coordinate.relative(83), BlockNBTComponent.WorldPos.Coordinate.relative(900)), + BlockNBTComponent.Pos.fromString("~-7 ~83 ~900") ); }