diff --git a/.gradle/6.3/executionHistory/executionHistory.bin b/.gradle/6.3/executionHistory/executionHistory.bin index 55b910d..b61bea2 100644 Binary files a/.gradle/6.3/executionHistory/executionHistory.bin and b/.gradle/6.3/executionHistory/executionHistory.bin differ diff --git a/.gradle/6.3/executionHistory/executionHistory.lock b/.gradle/6.3/executionHistory/executionHistory.lock index 5674195..0f594c4 100644 Binary files a/.gradle/6.3/executionHistory/executionHistory.lock and b/.gradle/6.3/executionHistory/executionHistory.lock differ diff --git a/.gradle/6.3/fileHashes/fileHashes.bin b/.gradle/6.3/fileHashes/fileHashes.bin index c15b543..570a59f 100644 Binary files a/.gradle/6.3/fileHashes/fileHashes.bin and b/.gradle/6.3/fileHashes/fileHashes.bin differ diff --git a/.gradle/6.3/fileHashes/fileHashes.lock b/.gradle/6.3/fileHashes/fileHashes.lock index 8e13755..3b393b1 100644 Binary files a/.gradle/6.3/fileHashes/fileHashes.lock and b/.gradle/6.3/fileHashes/fileHashes.lock differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 3419b88..405ebc5 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/build/classes/kotlin/main/codes/mii/SaveEditor/SaveEditor.class b/build/classes/kotlin/main/codes/mii/SaveEditor/SaveEditor.class index a6ab694..fc9df49 100644 Binary files a/build/classes/kotlin/main/codes/mii/SaveEditor/SaveEditor.class and b/build/classes/kotlin/main/codes/mii/SaveEditor/SaveEditor.class differ diff --git a/build/distributions/SaveEditor-1.0-SNAPSHOT.tar b/build/distributions/SaveEditor-1.0-SNAPSHOT.tar index 7a6933e..59c96b6 100644 Binary files a/build/distributions/SaveEditor-1.0-SNAPSHOT.tar and b/build/distributions/SaveEditor-1.0-SNAPSHOT.tar differ diff --git a/build/distributions/SaveEditor-1.0-SNAPSHOT.zip b/build/distributions/SaveEditor-1.0-SNAPSHOT.zip index 4b4c101..5d2b26f 100644 Binary files a/build/distributions/SaveEditor-1.0-SNAPSHOT.zip and b/build/distributions/SaveEditor-1.0-SNAPSHOT.zip differ diff --git a/build/kotlin/SaveEditor10SNAPSHOTjar-classes.txt b/build/kotlin/SaveEditor10SNAPSHOTjar-classes.txt index b61d028..9f93c09 100644 --- a/build/kotlin/SaveEditor10SNAPSHOTjar-classes.txt +++ b/build/kotlin/SaveEditor10SNAPSHOTjar-classes.txt @@ -1 +1 @@ -D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\ByteConvertExtensionKt.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Converter.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\MainKt.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\SaveEditor.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\Data.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Byte.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Compound.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_End.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Int.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Long.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Short.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_String.class \ No newline at end of file +D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\ByteConvertExtensionKt.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Converter.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\MainKt.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\SaveEditor.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\Data.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Byte.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Byte_Array.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Compound.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Double.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_End.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Float.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Int.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Int_Array.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_List.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Long.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_Short.class;D:\Git\SaveEditor\build\classes\kotlin\main\codes\mii\SaveEditor\Types\NBT_String.class \ No newline at end of file diff --git a/build/kotlin/compileKotlin/build-history.bin b/build/kotlin/compileKotlin/build-history.bin index c234617..484c8b4 100644 Binary files a/build/kotlin/compileKotlin/build-history.bin and b/build/kotlin/compileKotlin/build-history.bin differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab index da75826..6fc5a85 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream index 6c40c85..a3d5577 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len index 9030374..447bff3 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len index 6f677df..09407ef 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at index 56cbfbe..a394991 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i index 3faf243..a8b7980 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i and b/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab index 2b973f7..02c3867 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream index 6060d4f..b41e130 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len index a11dcdc..4c69d8b 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len index a541356..9911af5 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at index 55c8662..ae6d177 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i index 069e6f8..ceba466 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab index e2cf83e..54ec681 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream index 99f64dc..615b7ac 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len index b92203c..b2a8d1b 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len index 6f677df..09407ef 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at index 8cb1514..015ef90 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i index 4abc1d5..3534f9d 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab index 183d756..4898f29 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream index f87c2cf..d1e3609 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len index 70d94cf..8f368d6 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len index 003bc0e..14f7c06 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at index 66a0423..1c10727 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i index 99e7ca8..3036721 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab index 0c7ba92..391af0f 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream index ad16c01..1ba3ac4 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len index 9030374..447bff3 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len index 6f677df..09407ef 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at index cb43ea2..49254b8 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i index cb5aa72..4d773f8 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i and b/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab b/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab index b24be23..d9fc8ee 100644 --- a/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab +++ b/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab @@ -1,2 +1,2 @@ -73 -60 \ No newline at end of file +135 +117 \ No newline at end of file diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab index b8e7c36..369934c 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream index ad16c01..1ba3ac4 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len index 9030374..447bff3 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len index 6f677df..09407ef 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at index 1a7d9f9..bfa2cf4 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i index e767087..790aa73 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i and b/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab index ddcdb9c..9f98965 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream index ce7188d..cd18533 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len index 37934e8..b701bcc 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len index 6b9041b..2059419 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at index 8cb1514..015ef90 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i index 108d0fb..863105c 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i and b/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab index 8593fae..6dfba82 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream index e2e4bab..6acf3ad 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len index 62bc50d..1c0ccd5 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len index 96196b3..67fbc2d 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values index 2d5fc99..3f8eea1 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at index 3ed2a3a..ef30638 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at differ diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s index 9b8e8c2..4281631 100644 --- a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s +++ b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s @@ -1 +1 @@ -È;ï)í)ì)ý"Ú!Ð!ûúæÅËÐââÇÙóýÏÕýÝûÖòÛÂæãåÊ ßÃÑøÚ×Éë úçç \ No newline at end of file +÷ÙíÝØ!ÅÁý áæêàÕúþÎ÷ÇïÌôîÑåÍöÃü \ No newline at end of file diff --git a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i index d97d1bd..f9bf46c 100644 Binary files a/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i and b/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i differ diff --git a/build/kotlin/compileKotlin/last-build.bin b/build/kotlin/compileKotlin/last-build.bin index 4a8f6bd..4780f4a 100644 Binary files a/build/kotlin/compileKotlin/last-build.bin and b/build/kotlin/compileKotlin/last-build.bin differ diff --git a/build/libs/SaveEditor-1.0-SNAPSHOT.jar b/build/libs/SaveEditor-1.0-SNAPSHOT.jar index 6b20e33..82ef1e5 100644 Binary files a/build/libs/SaveEditor-1.0-SNAPSHOT.jar and b/build/libs/SaveEditor-1.0-SNAPSHOT.jar differ diff --git a/src/main/kotlin/codes/mii/SaveEditor/Converter.kt b/src/main/kotlin/codes/mii/SaveEditor/Converter.kt index 92d9809..bb9f70f 100644 --- a/src/main/kotlin/codes/mii/SaveEditor/Converter.kt +++ b/src/main/kotlin/codes/mii/SaveEditor/Converter.kt @@ -3,16 +3,22 @@ package codes.mii.SaveEditor import codes.mii.SaveEditor.Types.* import java.io.File import java.io.IOException +import java.math.BigInteger +import java.nio.ByteBuffer import java.nio.file.Files +import kotlin.experimental.and + class Converter { @ExperimentalUnsignedTypes fun convert(byte: ByteArray): NBT_Compound { - val result = NBT_Compound(0, "") + var result = NBT_Compound(0, "") val byteSize = byte.size var readingPosition = 0 try { + result = byteToCompound(byte, readingPosition).first + /* while (byteSize > readingPosition) { println(byte[readingPosition]) @@ -27,41 +33,142 @@ class Converter { readingPosition += nameLength } - when (nowByte) { - 0.toByte() -> { // END + when (nowByte.toInt()) { + 0 -> { // END result.data.add(NBT_End()) readingPosition++ } - 1.toByte() -> { // BYTE + 1 -> { // BYTE readingPosition++ result.data.add(NBT_Byte(nameLength.toByte(), name, byte[readingPosition])) } - 2.toByte(), 3.toByte(), 4.toByte() -> { - val n = when(nowByte) { + 2, 3, 4 -> { // SHORT, INT, LONG + val n = when (nowByte) { 3.toByte() -> 4 4.toByte() -> 8 else -> 2 } - result.data.add(NBT_Short(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, n).toInt())) + result.data.add( + NBT_Short( + nameLength.toByte(), + name, + readMultiByteHex(byte, readingPosition, n).toInt() + ) + ) readingPosition += n } - 8.toByte() -> { // STRING - readingPosition -= nameLength + 2 - val res = byte.toNBT_String(readingPosition) - readingPosition += res.second - result.data.add(res.first) + 5 -> { // FLOAT + result.data.add( + NBT_Float( + nameLength.toByte(), + name, + readMultiByteHex(byte, readingPosition, 4).toFloat() + ) + ) + readingPosition += 4 } - 10.toByte() -> { // COMPOUND + 6 -> { // DOUBLE + result.data.add( + NBT_Double( + nameLength.toByte(), + name, + 0.0 + ) + )//readMultiByteHex(byte, readingPosition, 8) + readingPosition += 8 + } + + 7 -> { // BYTE_ARRAY + val listLength = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + val byteList: MutableList = mutableListOf() + repeat(listLength) { + readingPosition++ + byteList.add(byte[readingPosition]) + } + result.data.add(NBT_Byte_Array(nameLength.toByte(), name, byteList)) + } + + 8 -> { // STRING + val textLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + + val text = byteToString(byte, readingPosition, textLength) + readingPosition += textLength + + result.data.add(NBT_String(nameLength.toByte(), name, textLength.toByte(), text.toString())) + } + + 9 -> { // LIST + readingPosition++ + val dataType = byte[readingPosition] + val dataLength = when (dataType.toInt()) { + 0 -> 1 + 1 -> 1 + 2 -> 2 + 3 -> 4 + 4 -> 8 + 5 -> 4 + 6 -> 8 + 10 -> 4 + else -> 0 + } + val dataSize = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + + + when (dataType.toInt()) { + 7 -> { + repeat(dataSize) { + + } + } + + 8 -> { + repeat(dataSize) { + val textLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + + val text = byteToString(byte, readingPosition, textLength) + readingPosition += textLength + println(text) + } + } + + 11 -> { + repeat(dataSize) { + + } + } + } + + readingPosition += dataSize * dataLength + result.data.add(NBT_List(nameLength.toByte(), name, mutableListOf())) + } + + 10 -> { // COMPOUND result.data.add(NBT_Compound(nameLength.toByte(), name)) } + + 11 -> { // INT_ARRAY + val listLength = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + val byteList: MutableList = mutableListOf() + repeat(listLength) { + byteList.add(readMultiByteHex(byte, readingPosition, 4).toInt()) + readingPosition += 4 + } + result.data.add(NBT_Int_Array(nameLength.toByte(), name, byteList)) + } } readingPosition++ } + */ } catch (e: Exception) { e.printStackTrace() } @@ -69,20 +176,357 @@ class Converter { return result } + fun byteToByte(byte: ByteArray, position: Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + readingPosition++ + + val byteData = NBT_Byte(nameLength.toByte(), name, byte[readingPosition]) + + return byteData to readingPosition + } + + @ExperimentalUnsignedTypes + fun byteToShort(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val short = NBT_Short(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, 2).toInt()) + readingPosition += 2 + + return short to readingPosition + } + + fun byteToInt(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val int = NBT_Int(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, 4).toInt()) + readingPosition += 4 + + return int to readingPosition + } + + fun byteToLong(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val long = NBT_Long(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, 8)) + readingPosition += 8 + + return long to readingPosition + } + + fun byteToFloat(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val float = NBT_Float(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, 4).toFloat()) + readingPosition += 4 + + return float to readingPosition + } + + fun byteToDouble(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val double = NBT_Double(nameLength.toByte(), name, readMultiByteHex(byte, readingPosition, 8).toDouble()) + readingPosition += 8 + + return double to readingPosition + } + + fun byteToByteArray(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + + val listLength = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + val byteList: MutableList = mutableListOf() + repeat(listLength) { + readingPosition++ + byteList.add(byte[readingPosition]) + } + + return NBT_Byte_Array(nameLength.toByte(), name, byteList) to readingPosition + } + + fun byteToString(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + + val textLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + + val text = byteToString(byte, readingPosition, textLength) + readingPosition += textLength + + return NBT_String(nameLength.toByte(), name, textLength.toByte(), text) to readingPosition + } + + @ExperimentalUnsignedTypes + fun byteToList(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + readingPosition++ + val list = NBT_List(nameLength.toByte(), name, mutableListOf()) + + val dataType = byte[readingPosition] + + + + val listLength = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + + repeat(listLength) { + val (data, pos) = (when(dataType.toInt()) { + 1 -> byteToByte(byte, readingPosition, true) + 2 -> byteToShort(byte, readingPosition, true) + 3 -> byteToInt(byte, readingPosition, true) + 4 -> byteToLong(byte, readingPosition, true) + 5 -> byteToFloat(byte, readingPosition, true) + 6 -> byteToDouble(byte, readingPosition, true) + 7 -> byteToByteArray(byte, readingPosition, true) + 8 -> byteToString(byte, readingPosition, true) + 9 -> byteToList(byte, readingPosition, true) + 10 -> byteToCompound(byte, readingPosition, true) + + else -> NBT_End() to readingPosition + }) + + list.data.add(data) + readingPosition = pos + } + + return list to readingPosition + } + + @ExperimentalUnsignedTypes + fun byteToIntArray(byte: ByteArray, position:Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + + val listLength = readMultiByteHex(byte, readingPosition, 4).toInt() + readingPosition += 4 + val intList: MutableList = mutableListOf() + repeat(listLength) { + intList.add(readMultiByteHex(byte, readingPosition, 4).toInt()) + readingPosition += 4 + } + + return NBT_Int_Array(nameLength.toByte(), name, intList) to readingPosition + } + + @ExperimentalUnsignedTypes + fun byteToCompound(byte: ByteArray, position: Int, disableName: Boolean = false): Pair { + var readingPosition = position + var nameLength = 0 + var name = "" + + val nowByte = byte[readingPosition] + + if (!disableName) { + nameLength = readMultiByteHex(byte, readingPosition, 2).toInt() + readingPosition += 2 + name = byteToString(byte, readingPosition, nameLength) + readingPosition += nameLength + } + + val compound = NBT_Compound(nameLength.toByte(), name) + + readingPosition++ + while(byte[readingPosition] != 0.toByte()) { + println("Converting id ${byte[readingPosition]}, position $readingPosition") + when(byte[readingPosition].toInt()) { + 1 -> { + val (data, pos) = byteToByte(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 2 -> { + val (data, pos) = byteToShort(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 3 -> { + val (data, pos) = byteToInt(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 4 -> { + val (data, pos) = byteToLong(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 5 -> { // FLOAT + val (data, pos) = byteToFloat(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 6 -> { // DOUBLE + val (data, pos) = byteToDouble(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 7 -> { // BYTE_ARRAY + val (data, pos) = byteToByteArray(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 8 -> { // STRING + val (data, pos) = byteToString(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 9 -> { + val (data, pos) = byteToList(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 10 -> { + val (data, pos) = byteToCompound(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + + 11 -> { + val (data, pos) = byteToIntArray(byte, readingPosition) + readingPosition = pos + compound.data.add(data) + } + } + + readingPosition++ + } + + return compound to readingPosition + } + + + @ExperimentalUnsignedTypes fun readMultiByteHex(byte: ByteArray, position: Int, count: Int): Long { var readingPosition = position val multiByteText = StringBuilder() - repeat(count) { - readingPosition++ - val n = if (it != 1){ - (byte[readingPosition].toUByte()).toString(16) - } else { - (byte[readingPosition]).toString(16) - } - multiByteText.append(if (n.length == 2) { n } else { "0$n" }) - } - return multiByteText.toString().toLong(16) + + println(byte.copyOfRange(position + 1, position + count + 1).joinToString()) + println(BigInteger(byte.copyOfRange(position + 1, position + count + 1)).toString()) + + return BigInteger(byte.copyOfRange(position + 1, position + count + 1)).toLong() } private fun hexToAscii(hexStr: String): String? { diff --git a/src/main/kotlin/codes/mii/SaveEditor/SaveEditor.kt b/src/main/kotlin/codes/mii/SaveEditor/SaveEditor.kt index 1262eca..b2fd0ed 100644 --- a/src/main/kotlin/codes/mii/SaveEditor/SaveEditor.kt +++ b/src/main/kotlin/codes/mii/SaveEditor/SaveEditor.kt @@ -9,57 +9,88 @@ class SaveEditor { val converter: Converter = Converter() + fun showNBT(data: Data) { + when(data) { + is NBT_String -> { + println("STRING, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_End -> { + println("END") + } + + is NBT_Byte -> { + println("BYTE, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Compound -> { + println("COMPOUND, Name: ${data.name}") + data.data.forEach { + showNBT(it) + } + } + + is NBT_Int -> { + println("INT, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Short -> { + println("SHORT, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Long -> { + println("LONG, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Float -> { + println("FLOAT, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Double -> { + println("DOUBLE, Name: ${data.name}, Data: ${data.data}") + } + + is NBT_Byte_Array -> { + println("BYTE_ARRAY, Name: ${data.name}, Data: ${data.data.joinToString() }}") + } + + is NBT_Int_Array -> { + println("BYTE_ARRAY, Name: ${data.name}, Data: ${data.data.joinToString() }") + } + + is NBT_List -> { + println("LIST, Name: ${data.name}") + data.data.forEach { + showNBT(it) + } + } + + else -> { + println("UNKNOWN, ${data::class.java}") + } + } + } + fun start(args: Array) { println("NBT Editor.") if (args.count() >= 1) { val bytes = converter.convertFile(File(args[0])) + /* val inp = StringBuilder() bytes?.forEach { val n = it.toString(16) inp.append(if (n.length == 1) { "0$n " } else { "$n " }) } println("input: $inp") + */ println("Converting...") val result = converter.convert(bytes!!) println("Converted.\n\nresult\n") - result.data.forEach { - when(it) { - is NBT_String -> { - println("STRING, Name: ${it.name}, Data: ${it.data}") - } - - is NBT_End -> { - println("END") - } - - is NBT_Byte -> { - println("BYTE, Name: ${it.name}, Data: ${it.data}") - } - - is NBT_Compound -> { - println("COMPOUND, Name: ${it.name}") - } - - is NBT_Int -> { - println("INT, Name: ${it.name}, Data: ${it.data}") - } - - is NBT_Short -> { - println("SHORT, Name: ${it.name}, Data: ${it.data}") - } - - is NBT_Long -> { - println("LONG, Name: ${it.name}, Data: ${it.data}") - } - - else -> { - println("UNKNOWN, ${it::class.java}") - } - } + showNBT(it) } } } diff --git a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Byte_Array.kt b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Byte_Array.kt new file mode 100644 index 0000000..10b4bbc --- /dev/null +++ b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Byte_Array.kt @@ -0,0 +1,5 @@ +package codes.mii.SaveEditor.Types + +class NBT_Byte_Array(override val nameLength: Byte, override val name: String, val data: MutableList) : Data { + override val typeByte: Byte = 7 +} \ No newline at end of file diff --git a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Double.kt b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Double.kt new file mode 100644 index 0000000..aa6e1ae --- /dev/null +++ b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Double.kt @@ -0,0 +1,5 @@ +package codes.mii.SaveEditor.Types + +class NBT_Double(override val nameLength: Byte, override val name: String, val data: Double) : Data { + override val typeByte: Byte = 6 +} \ No newline at end of file diff --git a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Float.kt b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Float.kt new file mode 100644 index 0000000..531f290 --- /dev/null +++ b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Float.kt @@ -0,0 +1,5 @@ +package codes.mii.SaveEditor.Types + +class NBT_Float(override val nameLength: Byte, override val name: String, val data: Float) : Data { + override val typeByte: Byte = 5 +} \ No newline at end of file diff --git a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Int_Array.kt b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Int_Array.kt index 07555f7..7aa8487 100644 --- a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Int_Array.kt +++ b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_Int_Array.kt @@ -1,5 +1,5 @@ package codes.mii.SaveEditor.Types -class NBT_Int_Array(override val nameLength: Byte, override val name: String) : Data { +class NBT_Int_Array(override val nameLength: Byte, override val name: String, val data: MutableList) : Data { override val typeByte: Byte = 11 } \ No newline at end of file diff --git a/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_List.kt b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_List.kt new file mode 100644 index 0000000..e323b53 --- /dev/null +++ b/src/main/kotlin/codes/mii/SaveEditor/Types/NBT_List.kt @@ -0,0 +1,5 @@ +package codes.mii.SaveEditor.Types + +class NBT_List(override val nameLength: Byte, override val name: String, val data: MutableList) : Data { + override val typeByte: Byte = 9 +} \ No newline at end of file