diff --git a/output/production/commander-bta.main/net/pedroricardo/commander/Commander.class b/output/production/commander-bta.main/net/pedroricardo/commander/Commander.class index a42c9cd..fc5775e 100644 Binary files a/output/production/commander-bta.main/net/pedroricardo/commander/Commander.class and b/output/production/commander-bta.main/net/pedroricardo/commander/Commander.class differ diff --git a/src/main/java/net/pedroricardo/commander/Commander.java b/src/main/java/net/pedroricardo/commander/Commander.java index f40a7f5..c8ebb52 100644 --- a/src/main/java/net/pedroricardo/commander/Commander.java +++ b/src/main/java/net/pedroricardo/commander/Commander.java @@ -1,6 +1,7 @@ package net.pedroricardo.commander; import com.google.gson.JsonObject; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import net.fabricmc.api.DedicatedServerModInitializer; import net.fabricmc.api.ModInitializer; import net.minecraft.core.net.command.TextFormatting; @@ -11,6 +12,7 @@ import turniplabs.halplibe.helper.NetworkHelper; import turniplabs.halplibe.util.GameStartEntrypoint; +import java.text.ParseException; import java.util.ArrayList; import java.util.List; @@ -38,6 +40,15 @@ public void onInitialize() { ARGUMENT_STYLES.add(TextFormatting.ORANGE.toString()); NetworkHelper.register(CommandManagerPacket.class, false, true); NetworkHelper.register(RequestCommandManagerPacket.class, true, false); +// try { +// System.out.println(NbtHelper.parseNbt("{Data1:16,Data2:\"hello\",Data3:[D;1.52,940.2,38.3],Data4:[B;1b,12b]}")); +// System.out.println(NbtHelper.parseNbt("{DataShort:23s,DataInt:39230,DataString:\"Hello!\"}")); +// System.out.println(NbtHelper.parseNbt("{DataBoolTrue:true,DataBoolFalse:false,DataByte:22b, DataShort : 51s, DataInt:42351, DataLong: 2934021941L, DataFloat: 3.1415926f, DataDouble: 22.543d, DataDoubleNoSuffix: 2942.43290}")); +// System.out.println(NbtHelper.parseNbt("{DataByteArray:[B;6b,12b,24b] ,DataShortArray:[S ; 20s , 40s , 63s ] , DataDoubleArray:[D ; 22.53, 239.43d, 39.4D]}")); +// System.out.println(NbtHelper.parseNbt("{DataList:[6b,12b,24b]}")); +// } catch (CommandSyntaxException e) { +// System.out.println(e.getMessage()); +// } } @Override diff --git a/src/main/java/net/pedroricardo/commander/NbtHelper.java b/src/main/java/net/pedroricardo/commander/NbtHelper.java index 8561bf3..f379838 100644 --- a/src/main/java/net/pedroricardo/commander/NbtHelper.java +++ b/src/main/java/net/pedroricardo/commander/NbtHelper.java @@ -4,7 +4,6 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.nbt.*; import net.pedroricardo.commander.content.exceptions.CommanderExceptions; -import net.pedroricardo.commander.content.helpers.ArgumentParser; import java.util.ArrayList; import java.util.List; @@ -136,8 +135,13 @@ private static Tag collection(StringReader reader) throws CommandSyntaxExcept while (reader.canRead() && reader.peek() != ']') { reader.skipWhitespace(); String doubleAsString = reader.readString(); - if (!SHORT_PATTERN.matcher(doubleAsString).matches()) throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.readerExpectedSymbol().create("short"); - double parsedDouble = Double.parseDouble(doubleAsString.substring(0, doubleAsString.length() - 1)); + double parsedDouble; + if (DOUBLE_PATTERN.matcher(doubleAsString).matches()) { + parsedDouble = Double.parseDouble(doubleAsString.substring(0, doubleAsString.length() - 1)); + } else if (DOUBLE_PATTERN_NO_SUFFIX.matcher(doubleAsString).matches()) { + parsedDouble = Double.parseDouble(doubleAsString); + } + else throw CommandSyntaxException.BUILT_IN_EXCEPTIONS.readerExpectedDouble().create(); doubles.add(parsedDouble); reader.skipWhitespace(); if (!reader.canRead() || reader.peek() != ',') break; @@ -222,4 +226,4 @@ private static Tag type(String string) { } return new StringTag(string); } -} +} \ No newline at end of file