From 712bbcdc025d552dacd5a06c777f4a7876e3f175 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sat, 4 Mar 2023 17:17:47 +0100 Subject: [PATCH] More fixes to mapping data loading --- .../viaversion/api/data/FullMappings.java | 9 +++-- .../viaversion/api/data/FullMappingsBase.java | 33 ++++++++++++++++++ .../viaversion/api/data/IdentityMappings.java | 5 +++ .../api/data/Int2IntMapBiMappings.java | 15 ++++++-- .../api/data/Int2IntMapMappings.java | 9 +++++ .../api/data/IntArrayBiMappings.java | 5 +++ .../viaversion/api/data/IntArrayMappings.java | 13 +++++++ .../viaversion/api/data/MappingDataBase.java | 20 ++++++++--- .../api/data/MappingDataLoader.java | 15 +++++--- .../viaversion/api/data/Mappings.java | 7 ++++ .../api/data/entity/IdentityBiMappings.java | 6 ++++ .../data/MappingData.java | 6 +++- .../viaversion/rewriter/EntityRewriter.java | 2 +- .../viaversion/data/mappings-1.12to1.13.nbt | Bin 23559 -> 23558 bytes .../viaversion/data/mappings-1.13.2to1.14.nbt | Bin 2108 -> 2103 bytes .../viaversion/data/mappings-1.13to1.13.2.nbt | Bin 382 -> 378 bytes .../viaversion/data/mappings-1.14to1.15.nbt | Bin 459 -> 456 bytes .../viaversion/data/mappings-1.15to1.16.nbt | Bin 8559 -> 8553 bytes .../viaversion/data/mappings-1.16.2to1.17.nbt | Bin 4693 -> 4688 bytes .../viaversion/data/mappings-1.16to1.16.2.nbt | Bin 563 -> 560 bytes .../viaversion/data/mappings-1.17to1.18.nbt | Bin 354 -> 351 bytes .../viaversion/data/mappings-1.18to1.19.nbt | Bin 2526 -> 2519 bytes .../data/mappings-1.19.3to1.19.4.nbt | Bin 1623 -> 1617 bytes .../viaversion/data/mappings-1.19to1.19.3.nbt | Bin 1031 -> 1024 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- 25 files changed, 131 insertions(+), 16 deletions(-) diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/FullMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/FullMappings.java index 083a3dd5a..8ceef82d4 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/FullMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/FullMappings.java @@ -27,9 +27,12 @@ import org.checkerframework.checker.nullness.qual.Nullable; /** * Mappings containing the full string identifier mappings. */ -public interface FullMappings { +public interface FullMappings extends Mappings { - Mappings mappings(); + @Deprecated + default Mappings mappings() { + return this; + } /** * Returns the unmapped integer id for the given identifier, or -1 if not found. @@ -70,4 +73,6 @@ public interface FullMappings { * @return mapped string identifier, or null if not found */ @Nullable String mappedIdentifier(String identifier); + + FullMappings createInverse(); } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/FullMappingsBase.java b/api/src/main/java/com/viaversion/viaversion/api/data/FullMappingsBase.java index 8eaa86b7e..cba06f757 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/FullMappingsBase.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/FullMappingsBase.java @@ -44,6 +44,14 @@ public class FullMappingsBase implements FullMappings { this. mappedIdToString = mappedIdentifiers.toArray(EMPTY_ARRAY); } + private FullMappingsBase(final Object2IntMap stringToId, final Object2IntMap mappedStringToId, final String[] idToString, final String[] mappedIdToString, final Mappings mappings) { + this.stringToId = stringToId; + this.mappedStringToId = mappedStringToId; + this.idToString = idToString; + this.mappedIdToString = mappedIdToString; + this.mappings = mappings; + } + @Override public Mappings mappings() { return mappings; @@ -82,6 +90,31 @@ public class FullMappingsBase implements FullMappings { return mappedId != -1 ? mappedIdentifier(mappedId) : null; } + @Override + public int getNewId(int id) { + return mappings.getNewId(id); + } + + @Override + public void setNewId(int id, int mappedId) { + mappings.setNewId(id, mappedId); + } + + @Override + public int size() { + return mappings.size(); + } + + @Override + public int mappedSize() { + return mappings.mappedSize(); + } + + @Override + public FullMappings createInverse() { + return new FullMappingsBase(mappedStringToId, stringToId, mappedIdToString, idToString, mappings.createInverse()); + } + private static Object2IntMap toInverseMap(final List list) { final Object2IntMap map = new Object2IntOpenHashMap<>(list.size()); map.defaultReturnValue(-1); diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/IdentityMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/IdentityMappings.java index c98c39011..00eea0c69 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/IdentityMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/IdentityMappings.java @@ -51,4 +51,9 @@ public class IdentityMappings implements Mappings { public int mappedSize() { return mappedSize; } + + @Override + public Mappings createInverse() { + return new IdentityMappings(mappedSize, size); + } } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapBiMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapBiMappings.java index 83e98b3a3..7dd7d038b 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapBiMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapBiMappings.java @@ -22,12 +22,14 @@ */ package com.viaversion.viaversion.api.data; +import com.viaversion.viaversion.util.Int2IntBiHashMap; import com.viaversion.viaversion.util.Int2IntBiMap; +import it.unimi.dsi.fastutil.ints.Int2IntMap; public class Int2IntMapBiMappings implements BiMappings { private final Int2IntBiMap mappings; - private final BiMappings inverse; + private final Int2IntMapBiMappings inverse; protected Int2IntMapBiMappings(final Int2IntBiMap mappings) { this.mappings = mappings; @@ -35,7 +37,7 @@ public class Int2IntMapBiMappings implements BiMappings { mappings.defaultReturnValue(-1); } - private Int2IntMapBiMappings(final Int2IntBiMap mappings, final BiMappings inverse) { + private Int2IntMapBiMappings(final Int2IntBiMap mappings, final Int2IntMapBiMappings inverse) { this.mappings = mappings; this.inverse = inverse; } @@ -68,4 +70,13 @@ public class Int2IntMapBiMappings implements BiMappings { public int mappedSize() { return mappings.inverse().size(); } + + @Override + public Mappings createInverse() { + final Int2IntBiMap inverseCopy = new Int2IntBiHashMap(inverse.mappings.size()); + for (final Int2IntMap.Entry entry : inverse.mappings.int2IntEntrySet()) { + inverseCopy.put(entry.getIntKey(), entry.getIntValue()); + } + return of(inverseCopy); + } } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapMappings.java index f0b6c37c8..8257387f5 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/Int2IntMapMappings.java @@ -62,4 +62,13 @@ public class Int2IntMapMappings implements Mappings { public int mappedSize() { return mappedIds; } + + @Override + public Mappings createInverse() { + final Int2IntMap inverse = new Int2IntOpenHashMap(); + for (final Int2IntMap.Entry entry : mappings.int2IntEntrySet()) { + inverse.put(entry.getIntValue(), entry.getIntKey()); + } + return of(inverse, size()); + } } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayBiMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayBiMappings.java index 5a0637475..14da31adf 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayBiMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayBiMappings.java @@ -84,4 +84,9 @@ public class IntArrayBiMappings implements BiMappings { public int mappedSize() { return mappings.mappedSize(); } + + @Override + public Mappings createInverse() { + return mappings.createInverse(); + } } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayMappings.java index d52f97ddb..97a39d2cd 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/IntArrayMappings.java @@ -22,6 +22,8 @@ */ package com.viaversion.viaversion.api.data; +import java.util.Arrays; + public class IntArrayMappings implements Mappings { private final int[] mappings; private final int mappedIds; @@ -59,6 +61,17 @@ public class IntArrayMappings implements Mappings { return mappedIds; } + @Override + public Mappings createInverse() { + final int[] inverse = new int[mappedIds]; + Arrays.fill(inverse, -1); + for (int id = 0; id < mappings.length; id++) { + final int mappedId = mappings[id]; + inverse[mappedId] = id; + } + return of(inverse, mappings.length); + } + public int[] raw() { return mappings; } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataBase.java b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataBase.java index 3beb763bd..7c244f69e 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataBase.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataBase.java @@ -65,7 +65,7 @@ public class MappingDataBase implements MappingData { getLogger().info("Loading " + unmappedVersion + " -> " + mappedVersion + " mappings..."); } - final CompoundTag data = MappingDataLoader.loadNBT("mappings-" + unmappedVersion + "to" + mappedVersion + ".nbt"); + final CompoundTag data = readNBTFile("mappings-" + unmappedVersion + "to" + mappedVersion + ".nbt"); blockMappings = loadMappings(data, "blocks"); blockStateMappings = loadMappings(data, "blockstates"); blockEntityMappings = loadMappings(data, "blockentities"); @@ -106,15 +106,23 @@ public class MappingDataBase implements MappingData { loadExtras(data); } + protected @Nullable CompoundTag readNBTFile(final String name) { + return MappingDataLoader.loadNBT(name); + } + protected @Nullable Mappings loadMappings(final CompoundTag data, final String key) { - return MappingDataLoader.loadMappings(data, key); + return shouldLoad(key) ? MappingDataLoader.loadMappings(data, key) : null; } protected @Nullable FullMappings loadFullMappings(final CompoundTag data, final CompoundTag unmappedIdentifiers, final CompoundTag mappedIdentifiers, final String key) { - return MappingDataLoader.loadFullMappings(data, unmappedIdentifiers, mappedIdentifiers, key); + return shouldLoad(key) ? MappingDataLoader.loadFullMappings(data, unmappedIdentifiers, mappedIdentifiers, key) : null; } protected @Nullable BiMappings loadBiMappings(final CompoundTag data, final String key) { + if (!shouldLoad(key)) { + return null; + } + final Mappings mappings = loadMappings(data, key); return mappings != null ? IntArrayBiMappings.of((IntArrayMappings) mappings) : null; } @@ -156,7 +164,7 @@ public class MappingDataBase implements MappingData { @Override public int getNewParticleId(final int id) { - return checkValidity(id, particleMappings.mappings().getNewId(id), "particles"); + return checkValidity(id, particleMappings.getNewId(id), "particles"); } @Override @@ -239,6 +247,10 @@ public class MappingDataBase implements MappingData { return mappedId; } + protected boolean shouldLoad(final String key) { + return true; + } + protected void loadExtras(final CompoundTag data) { } } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java index c62393825..cebd5927a 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/MappingDataLoader.java @@ -43,6 +43,7 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.Arrays; import java.util.Map; import java.util.stream.Collectors; import org.checkerframework.checker.nullness.qual.Nullable; @@ -109,7 +110,11 @@ public final class MappingDataLoader { } public static @Nullable Mappings loadMappings(final CompoundTag mappingsTag, final String key) { - return loadMappings(mappingsTag, key, int[]::new, (array, id, mappedId) -> array[id] = mappedId, IntArrayMappings::of); + return loadMappings(mappingsTag, key, size -> { + final int[] array = new int[size]; + Arrays.fill(array, -1); + return array; + }, (array, id, mappedId) -> array[id] = mappedId, IntArrayMappings::of); } @Beta @@ -134,10 +139,10 @@ public final class MappingDataLoader { return IntArrayMappings.of(valuesTag.getValue(), mappedSizeTag.asInt()); } else if (strategy == SHIFTS_ID) { final IntArrayTag shiftsAtTag = tag.get("at"); - final IntArrayTag shiftsTag = tag.get("val"); + final IntArrayTag shiftsTag = tag.get("to"); final IntTag sizeTag = tag.get("size"); final int[] shiftsAt = shiftsAtTag.getValue(); - final int[] shifts = shiftsTag.getValue(); + final int[] shiftsTo = shiftsTag.getValue(); final int size = sizeTag.asInt(); mappings = holderSupplier.get(size); @@ -153,9 +158,9 @@ public final class MappingDataLoader { for (int i = 0; i < shiftsAt.length; i++) { final int from = shiftsAt[i]; final int to = i == shiftsAt.length - 1 ? size : shiftsAt[i + 1]; - final int shiftBy = shifts[i]; + int mappedId = shiftsTo[i]; for (int id = from; id < to; id++) { - addConsumer.addTo(mappings, id, id + shiftBy); + addConsumer.addTo(mappings, id, mappedId++); } } } else if (strategy == CHANGES_ID) { diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/Mappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/Mappings.java index daee595c6..538f0a5e7 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/Mappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/Mappings.java @@ -83,6 +83,13 @@ public interface Mappings { */ int mappedSize(); + /** + * Creates a new Mappings instance of the same type with the same mappings, but with the keys and values swapped. + * + * @return a new Mappings instance with the same mappings, but with the keys and values swapped + */ + Mappings createInverse(); + static Builder builder(final MappingsSupplier supplier) { return new Builder<>(supplier); } diff --git a/api/src/main/java/com/viaversion/viaversion/api/data/entity/IdentityBiMappings.java b/api/src/main/java/com/viaversion/viaversion/api/data/entity/IdentityBiMappings.java index 8b0683eb3..f10fb6652 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/data/entity/IdentityBiMappings.java +++ b/api/src/main/java/com/viaversion/viaversion/api/data/entity/IdentityBiMappings.java @@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.data.entity; import com.viaversion.viaversion.api.data.BiMappings; import com.viaversion.viaversion.api.data.IdentityMappings; +import com.viaversion.viaversion.api.data.Mappings; public final class IdentityBiMappings extends IdentityMappings implements BiMappings { @@ -35,4 +36,9 @@ public final class IdentityBiMappings extends IdentityMappings implements BiMapp public BiMappings inverse() { return this; } + + @Override + public Mappings createInverse() { + return new IdentityBiMappings(mappedSize(), size()); + } } diff --git a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java index c1609d88d..e0e9922f4 100644 --- a/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java +++ b/common/src/main/java/com/viaversion/viaversion/protocols/protocol1_13to1_12_2/data/MappingData.java @@ -146,7 +146,11 @@ public class MappingData extends MappingDataBase { protected @Nullable BiMappings loadBiMappings(final CompoundTag data, final String key) { // Special cursed case if (key.equals("items")) { - return (BiMappings) MappingDataLoader.loadMappings(data, "items", Int2IntBiHashMap::new, Int2IntBiHashMap::put, (v, mappedSize) -> Int2IntMapBiMappings.of(v)); + return (BiMappings) MappingDataLoader.loadMappings(data, "items", size -> { + final Int2IntBiHashMap map = new Int2IntBiHashMap(size); + map.defaultReturnValue(-1); + return map; + }, Int2IntBiHashMap::put, (v, mappedSize) -> Int2IntMapBiMappings.of(v)); } else { return super.loadBiMappings(data, key); } diff --git a/common/src/main/java/com/viaversion/viaversion/rewriter/EntityRewriter.java b/common/src/main/java/com/viaversion/viaversion/rewriter/EntityRewriter.java index 13490e13a..1cb4bb636 100644 --- a/common/src/main/java/com/viaversion/viaversion/rewriter/EntityRewriter.java +++ b/common/src/main/java/com/viaversion/viaversion/rewriter/EntityRewriter.java @@ -228,7 +228,7 @@ public abstract class EntityRewriterBywW}okk)N4V~mRLX^Y+Mo`HeK%+2$2^0oU5Kr;E z)j7K=ZL4&dkITGVL`0uDZ8{7XvEt5?S43)3qlH}>QnKgFl^YM$U7FqxR delta 165 zcmXZOy$(ZQ07l_YB!(^)n}nfOqu)frX6Qf@lgUpo5N!vmO>f8O@|=X>dEc`g(*Kb5 zsa)ly8if!R6g;3pg8>sy*l-cSx!dD?1PBo$L5df06v*y=^EDc@=%Dw^fDgX-VZQnV D!Wa*` diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.13.2to1.14.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.13.2to1.14.nbt index 29bca088a039f3ec7e2f28b4def63974441b2da5..40b4d3f123645e18f347ce8ba45b07493be85329 100644 GIT binary patch delta 965 zcmXZaS%{8d6bJD0KA&&MI%KVxub3i{vhQnLpa@waCHoQzNy22iu{9axLJ^9j>`UZA z$(AJ{F6=Ida6>7C-)mg_zV+=n|8vfBrTk)f&DH9(YI#IdM$~H?QLKq*@-?FA^@!$M z*~s>Y*83ycOk@P}nZjBYvx^NJVmB8!!sUpP-%HLcU5%(3Mpt~VIu_C8TQrQa+F{w@ z{~0Re*vtX^A8&ZU`-rR~J?TMjdeN6Y^rs&K8Ngr$F@$T};C@7!#yDoPkb~+M7pjs0r##~wpCSqsXFC^`r2mcWbWk@& zG93Y89?MwCHcldF+~Ovuc+4w4^GAr$j7KAxGcrN4H5hWXjy-%7phz=1RD0=!siYY! zLU+l-DgSQ^x=fqcOWwf)e)3xvI#0j6XWqZFLy$If#st^s`Jjz zaGrBq!pPz-RucDk$W!ulf6+lZIxvEGUsM@F#dn* zYM_29m%57XxF^Y-NP`$fzDos?0%;aY$nV7p6iC9SeJGMHBXklvz2r64l0G1Gp&m_X zNh8!Pw2Gk-_7Ek8GlsdG;0bRfZSMe=IPLP;JxHxN&S{?4KBzygvhHFQJ>M8bqJsR) Ht`UC$ypw{- delta 968 zcmb8tOGuPa6u|NG-O0>Rb5d&Id(}$v0lF|XbCH5!E~AwrX$*>>4!V$>qG+c`Blrk6 zk#0n!v_u&3{Q|+2TV07nixM(l==Fc)4v4t0#c$4;`R@JZoO|wsC*)6LJc5QwnqTJ;Ft{)w3U}7QFKNiOPoEG=QI2Qu;vM?Xk6ygNXAENkD>%dnr$}`UojB1* zf|(vC>QJH6hHiX9V1$pan8qe{@C$n|Bj$zYBmT=+IBG>vinde@Ucm>7Q!nwHwLi7i z&1lDad_WI+(T9EvU=X8P2Xu&J2D1p~^W+Oygn4H2WvpTYzwrkLIHF_6Ml(C^;Q76{ zOU%JlXHOGShH?p*A&a~K9S9vs9jZZR(ui7{HxQd(p8N3{Z_$Y!n2`)(2;=yU$qV@$ z`65=qY0E6;inTuZfhlZZ8;4q-mcR!;zR}$hi<5}A@zLZ+M_F(!vLe-9O>-R;E?v(v DHNfrq diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.13to1.13.2.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.13to1.13.2.nbt index ee5a7d29ddd1b730f878bc2a62a51826bfcebfaa..d629810d3abe6ab4c855a93727a4e8d86d511a98 100644 GIT binary patch delta 102 zcmeyz^owaijyh9GJ_7>-2Ll63Is=2E7!XSUu@n%?0I?hpD*$o-#3|O?5T%R^3`}Md eZ(AX_j0YwwGP;XGq?v)H0Zm{4>SoYnU;qGUT@J?p delta 106 zcmeyx^p9ymjs|mCVh#fX0|yW@0x>rb^8hg~5c2^sKM)H5vEanX);v(PAa$%0Z(5=7 WC(ALqi$N7I0~IiV6ag_C0|Njd%na%P diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.14to1.15.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.14to1.15.nbt index b7f58189e6f793a9aa48daa51ce4d49500bd2d7e..716960d525d93f75007597dbbb3861cbccbd4e43 100644 GIT binary patch delta 163 zcmX@je1dsGk2_OIJ_7@T00V>eejq*w#D{_SC=ee9;*&sp8i>yV@p&M=2*j6x_$m-z z2jZJRd>e@GPP}5p4Ka$5fq`lFWGTjcM+lz}XuK^01EUEL#{+Q^kPifmm!LGz2oPWd N8Uv=EL+KX`3;?8U9OR=4a+l zZ>Hg`lycBWU~oc;3}@uHpg;+WD=O4*%ir60OYZ3JQ;#7IWJx~V@j$chTaY*PGN&EA L(Uv;;q8vT|KlmF7 diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.15to1.16.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.15to1.16.nbt index 2c9aa8610031c1f920dd2ce8c288bf02fa3a4f3f..77ee4d68a101d55e638f5c48138b836e4b33f2af 100644 GIT binary patch literal 8553 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 literal 8559 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 diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.16.2to1.17.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.16.2to1.17.nbt index cc2a0e1c3f8926990fdc8191c3d4019e5e3fcf51..7565422150d648d011216179bf61e5c3809a877a 100644 GIT binary patch delta 993 zcmXZbOKi+h6vy%3J^yK$((!1Uh>1rTQW7-UcvOjJwbfKnC5=ZreMC%~HZk!krrs(n z7&IOw5|*NjgaoNX#Day5#LiB1Cl(gE@x9u`r{~@~|NQ^wo^$#&_9Zr0>{6EOlC%<= zQH3p%3n46Jm7yGKuommF5f!LJHEK|cI&4Qh8n7FU*n@p&LL9AV#{ns~J|#tt;23&v z68`Ko&f+{SqEDKXl=23o{2x-mHYs`-M{yh{a08Cyr&!?Tn(jeE1v0*i%%uh`67)iszRS>9)}^x0=|D7SJ_ECv7h};n%)0 zDaOWj@T33X26nRMVe2I(d4QKXx?qfk<738nxc9{6V0?_uTMZuJ1zzD6sEAcb0m<8a zVlGJB`iavq1GA-guzh(eeGpS+)q%1q<< Gk?=pFGj=Ti delta 961 zcmYk*OGs2v9LMoL^TC`3PB*lfPxo|VMF_CgJ^nfTq zirQ3$P=SaLBvh8K3^#3C6}qY<^Ys1ITyWqs|MQ%C|L1>ZA+QpdD79Hp{jFWbm=mz@ z5QTln34iy}LV2|EQGh}e;UJ1pf3RnOs}mXlHV={w&xd3KL)XgLp*k44-zJy zdkJ1Bva_ENf2C%%TDy}GM2&Oqt0ITDgGde@zvPjh{Y76nlAm2C`nlG!X9}+vW1oFV ztfoJR(a8GH>i-S)E(@Mu0uNbmnK;PY_QR$qc8oExg+o z_FIZ&Rn#1!P)NHMJDm${{iKm-jL9H2Kxddn3@AFcrDCMw3sUd^I+b)}p&pv=!WH!K z68iiB$(SDKu4%4^u{C11-#2Z>^fI`iN%Z0>{XU|oeL>^IOHfwb#7yYnoxI>d9&}c^VbPNp<9^5g1>hU7L;wH) diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.16to1.16.2.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.16to1.16.2.nbt index f96524dff8daea7c0f0eff04af66e7e889b463ec..9f2d595f0bf92b43c39fd749a5dd1c4fb4cda65d 100644 GIT binary patch delta 216 zcmXBOtqQ_m0EOY>=df#9v)G1+bqGd-1`STopkaf7!D0{$D_(%&jR=DH|BF*^!z=NX zh3ACB31@Astht{zG>^RarU8WkX4`v3p`e}Oa)kp2T@ za{&2#K=yYa4Kjlb$bJUIuYmY7NF0dY0P!!N90&*iF-ZMCAPv$BvKwSCNG}6O9Ed?? n{{rG4KrHzUqyWeOX#gqs0HT3_aq-BLf2q%f$9zWeArYD6|MDdY*xSsS1c&fw%*R>w&my;y*7* Qh%y$SGG-`d0@6S}0McR&Hvj+t delta 89 zcmcc5^oVIfH4k%HVh#fX10x7eYztO_^4WoWW*}w(VpbsL24Y?y28r=b{Np7BRR@v> Q>1Fu;|NlQA{?EVw0I+WoX8-^I diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.18to1.19.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.18to1.19.nbt index db474bf9e1f8fa2d8a8882d0480a9cb8113dd302..17c09d3067f1a0bedebbf7b47a8996509e502c87 100644 GIT binary patch delta 1028 zcmXZbSx8h-9LMqBy?2IbMr5qXY8ooVOd_OAZKd3(un?)CjgXR@VyZzyeX)ljDxac= zOIS$QVpK%55g~1sMazqXg-MHuR7OQaNJ)f!=Z+7bxpVG;|M{K&Irl@LH*l@SjGGO$ zlA19It8o1~QR_Y~)}z<{%eyk%xQ~Vj&h|DV8B##7_yzumY=4jy0%2 zCDtO0_1K8b*n%o-MK!h~f}MzBH)5#8Ueu!zHjbkOC#AU2%AZqc!x@~zd0fCHT*eh# z#dX}oE!;*2?%*CC;32y31W)l?@=wGcDQ%k+aKR^~_e)bpq)?Z#lu;mM?E}SUk}f+e z&FYaBbV}v#q>57epsQu{hy6DR!!1Jt9bW+U3boJkX%b(pt`@d}@) ww+DUpkf$UiSu?S_RJ(B8U?@3uGfuptvC2dhcG(5qQh##ZWE@0>-R#};A188;2><{9 delta 819 zcmXxi$!|?j7y$75ro8u}q0t&jwIpawO^Kw7w)E9dLs4_hS~btbGkdD$DUrLd5PyLo z_WlG5OFIk1Mk1^%>vwov{O%d}4PO>7$c!tid^Ipm$|}Ku5q0kl(@+dw;1L&cL-Iy z$9*2~kVib`2~T;&Yu@lSdiJ5e@LlgGzZ^j`ix4>>a^eL)_|2avN=~8$S*G4cQCiK@ zUGZ@Gd1d(^Ckqq~G8qr%8se9^#(a&@H0t7^%$Mr&vU#J+w5hn5t1pG(j-i6FjH8lj zCJ+MGjEszY)XL)jSUZKO)bei|Z9UVO!Axc`n+6&Qw`?vUi}@^&Z`2e|%$9n}`HeT5 zB}bkRy^at$LrsrqWeXMMprI~_xHAEn=vk9+%Hkc2$9=JqC}xs$fbmZOSudN6NQxpkxOjoqwFkMP|BWc zBvwjUq1Z^Vva$0&#=_$FoxXa{d7ty12hW{n`*hJUH!Ue0DagY-wsC@6yh_%N6iH3O zgp_zLC1+87C8hRBX{=uMco(FcGAaL9Dk_nRYo!vDK1#lNsp~~%2%_i>0bT)<>_qh|+t z@hye5+g|5nO{iB4XB@FN0_3xvsQ;j@08P{~SJygLuz^)<+1Jj?zj<+I(O>4AXt?1) z91>yP)ZE3?nfsKZ64i)B0_Y_l`Z0Y_uJ LviQ%ohh1Mk#r{$A delta 390 zcmXxgu}eZx6vy$a*Q+5fD9Tij2#JP*vc{-~GzW@Pi-VPuMpDq)+9)2P#^^6_78->9 z0fms(tSx8}r=Y$^-h1%jTz>D~^Uk{iZ{)SRxAvyiG{$5RfkgsI%wqvd*g*khoZt~p zc*Y0D_{1-5j#0rCIvC;&Uv!P1HZRW_*VZI2YOPlNT(%>3bKwjkt}glLeHdg2N{cDl zt{{yJva)I$2f-PgF^V;8U<*3uF81K#2!|+QAHKZWelBQ`C(s{{Y5n7&8hLQ*W!59S p;|Ei6-Mk40y(vAE3#w*u_Vw_BKE5>z-^;S|z2K{}tCp&p`~!BbPpbd` diff --git a/common/src/main/resources/assets/viaversion/data/mappings-1.19to1.19.3.nbt b/common/src/main/resources/assets/viaversion/data/mappings-1.19to1.19.3.nbt index e887576d62f123527af721932fb582818603b9a8..838a529fec202fda2da7ce5c954aad14f17b462c 100644 GIT binary patch delta 371 zcmYMwAxJ|(9LMqB-IIB`!4#Yf7RDBak2x?17A-S~Nib;BAZ7=OA_grY;t=Ib77f}A zf@LUz*;RwqS**ii5&S++FnoA-@BhEw{ka3T=T4e4c4JM_0P;A)jg(rI+_yA%F69>R zMEOc8?MUTbsd6dBpHj6dji#kq`}AdfIz(lO7{)jzae)?I@h%x^W()gxkStf*7-N|5 zN9K4r973FN8ileCL)r7izs{%XUtK(QyOA~Eq2(8c)aoE_y#ra z`1LdG+N`wvWf|58G}A*74=ACG098EW1+S=uYv*%hgYpy{=wR0{4T^ywC4oC6k-|N+ zc@{a`Hmh(B@Q7+Sa|eNKqJjFTfG0H3MlU?Lous{_Q#fJ6wEh~j3be{MxAFKYf LVSB>a)+k*7F#|Cz diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fc10b601f..bdc9a83b1 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists