mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2025-02-22 06:32:34 +01:00
Reduce mappings file sizes and optimize item mappings
This commit is contained in:
parent
7b91c25379
commit
9fd0d3e565
@ -63,7 +63,7 @@ public interface ViaAPI<T> {
|
||||
* @return API version incremented with meaningful API changes
|
||||
*/
|
||||
default int apiVersion() {
|
||||
return 16;
|
||||
return 17;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -0,0 +1,33 @@
|
||||
/*
|
||||
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||
* Copyright (C) 2023 ViaVersion and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
package com.viaversion.viaversion.api.data;
|
||||
|
||||
public interface BiMappings extends Mappings {
|
||||
|
||||
/**
|
||||
* Returns the inverse of the bimappings.
|
||||
*
|
||||
* @return inverse of the bimappings
|
||||
*/
|
||||
BiMappings inverse();
|
||||
}
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.data;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -57,23 +58,25 @@ public class FullMappingsBase implements FullMappings {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int id(final String identifier) {
|
||||
return stringToId.getInt(identifier);
|
||||
public int id(String identifier) {
|
||||
return stringToId.getInt(Key.stripMinecraftNamespace(identifier));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int mappedId(final String mappedIdentifier) {
|
||||
return mappedStringToId.getInt(mappedIdentifier);
|
||||
return mappedStringToId.getInt(Key.stripMinecraftNamespace(mappedIdentifier));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String identifier(final int id) {
|
||||
return idToString[id];
|
||||
final String identifier = idToString[id];
|
||||
return Key.namespaced(identifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String mappedIdentifier(final int mappedId) {
|
||||
return mappedIdToString[mappedId];
|
||||
final String identifier = mappedIdToString[mappedId];
|
||||
return Key.namespaced(identifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||
* Copyright (C) 2016-2023 ViaVersion and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
package com.viaversion.viaversion.api.data;
|
||||
|
||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
||||
|
||||
public class Int2IntMapBiMappings implements BiMappings {
|
||||
|
||||
private final Int2IntBiMap mappings;
|
||||
private final BiMappings inverse;
|
||||
|
||||
protected Int2IntMapBiMappings(final Int2IntBiMap mappings) {
|
||||
this.mappings = mappings;
|
||||
this.inverse = new Int2IntMapBiMappings(mappings.inverse(), this);
|
||||
mappings.defaultReturnValue(-1);
|
||||
}
|
||||
|
||||
private Int2IntMapBiMappings(final Int2IntBiMap mappings, final BiMappings inverse) {
|
||||
this.mappings = mappings;
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
public static Int2IntMapBiMappings of(final Int2IntBiMap mappings) {
|
||||
return new Int2IntMapBiMappings(mappings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiMappings inverse() {
|
||||
return this.inverse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getNewId(final int id) {
|
||||
return mappings.get(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNewId(final int id, final int newId) {
|
||||
mappings.put(id, newId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return mappings.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int mappedSize() {
|
||||
return mappings.inverse().size();
|
||||
}
|
||||
}
|
@ -40,7 +40,6 @@ public class Int2IntMapMappings implements Mappings {
|
||||
}
|
||||
|
||||
public static Int2IntMapMappings of() {
|
||||
|
||||
return new Int2IntMapMappings(new Int2IntOpenHashMap(), -1);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||
* Copyright (C) 2016-2023 ViaVersion and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
package com.viaversion.viaversion.api.data;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class IntArrayBiMappings implements BiMappings {
|
||||
|
||||
private final Mappings mappings;
|
||||
private final IntArrayBiMappings inverse;
|
||||
|
||||
protected IntArrayBiMappings(final Mappings mappings, final Mappings inverseMappings) {
|
||||
this.mappings = mappings;
|
||||
this.inverse = new IntArrayBiMappings(inverseMappings, this);
|
||||
}
|
||||
|
||||
private IntArrayBiMappings(final Mappings mappings, final IntArrayBiMappings inverse) {
|
||||
this.mappings = mappings;
|
||||
this.inverse = inverse;
|
||||
}
|
||||
|
||||
public static Mappings.Builder<IntArrayBiMappings> builder() {
|
||||
return new Builder(IntArrayMappings::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BiMappings inverse() {
|
||||
return this.inverse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getNewId(final int id) {
|
||||
return mappings.getNewId(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setNewId(final int id, final int newId) {
|
||||
mappings.setNewId(id, newId);
|
||||
inverse.mappings.setNewId(newId, id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int size() {
|
||||
return mappings.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int mappedSize() {
|
||||
return mappings.mappedSize();
|
||||
}
|
||||
|
||||
public static final class Builder extends Mappings.Builder<IntArrayBiMappings> {
|
||||
|
||||
private final MappingsSupplier<?> supplier;
|
||||
|
||||
private Builder(final MappingsSupplier<?> supplier) {
|
||||
super(null);
|
||||
this.supplier = supplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IntArrayBiMappings build() {
|
||||
final int size = this.size != -1 ? this.size : size(unmapped);
|
||||
final int mappedSize = this.mappedSize != -1 ? this.mappedSize : size(mapped);
|
||||
final int[] mappingsArray = new int[size];
|
||||
final int[] inverseMappingsArray = new int[mappedSize];
|
||||
Arrays.fill(mappingsArray, -1);
|
||||
Arrays.fill(inverseMappingsArray, -1);
|
||||
|
||||
final Mappings mappings = supplier.supply(mappingsArray, mappedSize);
|
||||
final Mappings inverseMappings = supplier.supply(inverseMappingsArray, size);
|
||||
if (unmapped.isJsonArray() && mapped.isJsonArray()) {
|
||||
MappingDataLoader.mapIdentifiers(mappings, inverseMappings, unmapped.getAsJsonArray(), mapped.getAsJsonArray(), diffMappings, true);
|
||||
} else {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
return new IntArrayBiMappings(mappings, inverseMappings);
|
||||
}
|
||||
}
|
||||
}
|
@ -24,7 +24,6 @@ package com.viaversion.viaversion.api.data;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.RegistryType;
|
||||
import com.viaversion.viaversion.api.minecraft.TagData;
|
||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
||||
import java.util.List;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -88,7 +87,7 @@ public interface MappingData {
|
||||
*/
|
||||
@Nullable List<TagData> getTags(RegistryType type);
|
||||
|
||||
@Nullable Int2IntBiMap getItemMappings();
|
||||
@Nullable BiMappings getItemMappings();
|
||||
|
||||
@Nullable ParticleMappings getParticleMappings();
|
||||
|
||||
|
@ -28,8 +28,7 @@ import com.google.gson.JsonObject;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.minecraft.RegistryType;
|
||||
import com.viaversion.viaversion.api.minecraft.TagData;
|
||||
import com.viaversion.viaversion.util.Int2IntBiHashMap;
|
||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
@ -42,7 +41,7 @@ public class MappingDataBase implements MappingData {
|
||||
protected final String oldVersion;
|
||||
protected final String newVersion;
|
||||
protected final boolean hasDiffFile;
|
||||
protected Int2IntBiMap itemMappings;
|
||||
protected BiMappings itemMappings;
|
||||
protected FullMappings argumentTypeMappings;
|
||||
protected FullMappings entityMappings;
|
||||
protected ParticleMappings particleMappings;
|
||||
@ -54,15 +53,14 @@ public class MappingDataBase implements MappingData {
|
||||
protected Mappings enchantmentMappings;
|
||||
protected Mappings paintingMappings;
|
||||
protected Map<RegistryType, List<TagData>> tags;
|
||||
protected boolean loadItems = true;
|
||||
|
||||
public MappingDataBase(String oldVersion, String newVersion) {
|
||||
this(oldVersion, newVersion, false);
|
||||
public MappingDataBase(String unmappedVersion, String mappedVersion) {
|
||||
this(unmappedVersion, mappedVersion, false);
|
||||
}
|
||||
|
||||
public MappingDataBase(String oldVersion, String newVersion, boolean hasDiffFile) {
|
||||
this.oldVersion = oldVersion;
|
||||
this.newVersion = newVersion;
|
||||
public MappingDataBase(String unmappedVersion, String mappedVersion, boolean hasDiffFile) {
|
||||
this.oldVersion = unmappedVersion;
|
||||
this.newVersion = mappedVersion;
|
||||
this.hasDiffFile = hasDiffFile;
|
||||
}
|
||||
|
||||
@ -72,49 +70,44 @@ public class MappingDataBase implements MappingData {
|
||||
getLogger().info("Loading " + oldVersion + " -> " + newVersion + " mappings...");
|
||||
}
|
||||
JsonObject diffmapping = hasDiffFile ? loadDiffFile() : null;
|
||||
JsonObject oldMappings = MappingDataLoader.loadData("mapping-" + oldVersion + ".json", true);
|
||||
JsonObject newMappings = MappingDataLoader.loadData("mapping-" + newVersion + ".json", true);
|
||||
JsonObject unmappedIdentifiers = MappingDataLoader.loadData("mapping-" + oldVersion + ".json", true);
|
||||
JsonObject mappedIdentifiers = MappingDataLoader.loadData("mapping-" + newVersion + ".json", true);
|
||||
|
||||
blockMappings = loadFromObject(oldMappings, newMappings, diffmapping, "blocks");
|
||||
blockStateMappings = loadFromObject(oldMappings, newMappings, diffmapping, "blockstates");
|
||||
blockEntityMappings = loadFromArray(oldMappings, newMappings, diffmapping, "blockentities");
|
||||
soundMappings = loadFromArray(oldMappings, newMappings, diffmapping, "sounds");
|
||||
statisticsMappings = loadFromArray(oldMappings, newMappings, diffmapping, "statistics");
|
||||
enchantmentMappings = loadFromArray(oldMappings, newMappings, diffmapping, "enchantments");
|
||||
paintingMappings = loadFromArray(oldMappings, newMappings, diffmapping, "paintings");
|
||||
blockMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blocks");
|
||||
blockStateMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockstates");
|
||||
blockEntityMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockentities");
|
||||
soundMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "sounds");
|
||||
statisticsMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "statistics");
|
||||
enchantmentMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "enchantments");
|
||||
paintingMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "paintings");
|
||||
|
||||
entityMappings = loadFullMappings(oldMappings, newMappings, diffmapping, "entities");
|
||||
argumentTypeMappings = loadFullMappings(oldMappings, newMappings, diffmapping, "argumenttypes");
|
||||
entityMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "entities");
|
||||
argumentTypeMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "argumenttypes");
|
||||
|
||||
Mappings particles = loadFromArray(oldMappings, newMappings, diffmapping, "particles");
|
||||
Mappings particles = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "particles");
|
||||
if (particles != null) {
|
||||
particleMappings = new ParticleMappings(oldMappings.getAsJsonArray("particles"), newMappings.getAsJsonArray("particles"), particles);
|
||||
particleMappings = new ParticleMappings(unmappedIdentifiers.getAsJsonArray("particles"), mappedIdentifiers.getAsJsonArray("particles"), particles);
|
||||
}
|
||||
|
||||
if (loadItems && newMappings.has("items")) {
|
||||
itemMappings = new Int2IntBiHashMap();
|
||||
itemMappings.defaultReturnValue(-1);
|
||||
MappingDataLoader.mapIdentifiers(itemMappings, oldMappings.getAsJsonObject("items"), newMappings.getAsJsonObject("items"),
|
||||
diffmapping != null ? diffmapping.getAsJsonObject("items") : null, true);
|
||||
}
|
||||
itemMappings = loadBiFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "items");
|
||||
|
||||
if (diffmapping != null && diffmapping.has("tags")) {
|
||||
this.tags = new EnumMap<>(RegistryType.class);
|
||||
JsonObject tags = diffmapping.getAsJsonObject("tags");
|
||||
if (tags.has(RegistryType.ITEM.resourceLocation())) {
|
||||
loadTags(RegistryType.ITEM, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("items")));
|
||||
loadTags(RegistryType.ITEM, tags, MappingDataLoader.arrayToMap(mappedIdentifiers.getAsJsonArray("items")));
|
||||
}
|
||||
if (tags.has(RegistryType.BLOCK.resourceLocation())) {
|
||||
loadTags(RegistryType.BLOCK, tags, MappingDataLoader.indexedObjectToMap(newMappings.getAsJsonObject("blocks")));
|
||||
loadTags(RegistryType.BLOCK, tags, MappingDataLoader.arrayToMap(mappedIdentifiers.getAsJsonArray("blocks")));
|
||||
}
|
||||
}
|
||||
|
||||
loadExtras(oldMappings, newMappings, diffmapping);
|
||||
loadExtras(unmappedIdentifiers, mappedIdentifiers, diffmapping);
|
||||
}
|
||||
|
||||
protected FullMappings loadFullMappings(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
||||
Mappings mappings = loadFromArray(oldMappings, newMappings, diffMappings, key);
|
||||
return mappings != null ? new FullMappingsBase(oldMappings.getAsJsonArray(key), newMappings.getAsJsonArray(key), mappings) : null;
|
||||
protected FullMappings loadFullMappings(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||
Mappings mappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||
return mappings != null ? new FullMappingsBase(unmappedIdentifiers.getAsJsonArray(key), mappedIdentifiers.getAsJsonArray(key), mappings) : null;
|
||||
}
|
||||
|
||||
private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) {
|
||||
@ -126,7 +119,7 @@ public class MappingDataBase implements MappingData {
|
||||
int i = 0;
|
||||
for (JsonElement element : array) {
|
||||
String stringId = element.getAsString();
|
||||
if (!typeMapping.containsKey(stringId) && !typeMapping.containsKey(stringId = stringId.replace("minecraft:", ""))) { // aaa
|
||||
if (!typeMapping.containsKey(stringId) && !typeMapping.containsKey(stringId = Key.stripMinecraftNamespace(stringId))) { // aaa
|
||||
getLogger().warning(type + " Tags contains invalid type identifier " + stringId + " in tag " + entry.getKey());
|
||||
continue;
|
||||
}
|
||||
@ -151,14 +144,12 @@ public class MappingDataBase implements MappingData {
|
||||
|
||||
@Override
|
||||
public int getNewItemId(int id) {
|
||||
return checkValidity(id, itemMappings.get(id), "item");
|
||||
return checkValidity(id, itemMappings.getNewId(id), "item");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOldItemId(int id) {
|
||||
int oldId = itemMappings.inverse().get(id);
|
||||
// Remap new items to stone
|
||||
return oldId != -1 ? oldId : 1;
|
||||
return itemMappings.inverse().getNewIdOrDefault(id, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -172,7 +163,7 @@ public class MappingDataBase implements MappingData {
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Int2IntBiMap getItemMappings() {
|
||||
public @Nullable BiMappings getItemMappings() {
|
||||
return itemMappings;
|
||||
}
|
||||
|
||||
@ -226,20 +217,34 @@ public class MappingDataBase implements MappingData {
|
||||
return paintingMappings;
|
||||
}
|
||||
|
||||
protected @Nullable Mappings loadFromArray(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
||||
protected @Nullable Mappings loadFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||
return IntArrayMappings.builder().unmapped(oldMappings.getAsJsonArray(key))
|
||||
.mapped(newMappings.getAsJsonArray(key)).diffMappings(diff).build();
|
||||
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonArray(key))
|
||||
.mapped(mappedIdentifiers.getAsJsonArray(key)).diffMappings(diff).build();
|
||||
}
|
||||
|
||||
protected @Nullable Mappings loadFromObject(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
||||
protected @Nullable Mappings loadFromObject(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||
return IntArrayMappings.builder().unmapped(oldMappings.getAsJsonObject(key))
|
||||
.mapped(newMappings.getAsJsonObject(key)).diffMappings(diff).build();
|
||||
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonObject(key))
|
||||
.mapped(mappedIdentifiers.getAsJsonObject(key)).diffMappings(diff).build();
|
||||
}
|
||||
|
||||
protected @Nullable BiMappings loadBiFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||
return IntArrayBiMappings.builder().unmapped(unmappedIdentifiers.getAsJsonArray(key)).mapped(mappedIdentifiers.getAsJsonArray(key))
|
||||
.diffMappings(diff).build();
|
||||
}
|
||||
|
||||
protected @Nullable JsonObject loadDiffFile() {
|
||||
@ -267,12 +272,16 @@ public class MappingDataBase implements MappingData {
|
||||
}
|
||||
|
||||
/**
|
||||
* To be overridden.
|
||||
* To be overridden if needed.
|
||||
*
|
||||
* @param oldMappings old mappings
|
||||
* @param newMappings new mappings
|
||||
* @param diffMappings diff mappings if present
|
||||
* @param unmappedIdentifiers old mappings
|
||||
* @param mappedIdentifiers new mappings
|
||||
* @param diffMappings diff mappings if present
|
||||
*/
|
||||
protected void loadExtras(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings) {
|
||||
protected void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings) {
|
||||
}
|
||||
|
||||
protected boolean shouldLoad(String key) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -136,84 +136,88 @@ public final class MappingDataLoader {
|
||||
}
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(Int2IntBiMap output, JsonObject oldIdentifiers, JsonObject newIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(newIdentifiers);
|
||||
for (Map.Entry<String, JsonElement> entry : oldIdentifiers.entrySet()) {
|
||||
int value = mapIdentifierEntry(entry, newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (value != -1) {
|
||||
output.put(Integer.parseInt(entry.getKey()), value);
|
||||
public static void mapIdentifiers(Int2IntBiMap output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
|
||||
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
|
||||
int id = Integer.parseInt(entry.getKey());
|
||||
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (mappedId != -1) {
|
||||
output.put(id, mappedId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(Mappings mappings, Mappings inverseMappings, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
|
||||
for (int id = 0; id < unmappedIdentifiers.size(); id++) {
|
||||
String value = unmappedIdentifiers.get(id).getAsString();
|
||||
int mappedId = mapIdentifierEntry(id, value, newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (mappedId != -1) {
|
||||
mappings.setNewId(id, mappedId);
|
||||
inverseMappings.setNewId(mappedId, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated/*(forRemoval = true)*/
|
||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers) {
|
||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, null);
|
||||
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers) {
|
||||
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null);
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(newIdentifiers);
|
||||
for (Map.Entry<String, JsonElement> entry : oldIdentifiers.entrySet()) {
|
||||
int value = mapIdentifierEntry(entry, newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (value != -1) {
|
||||
output[Integer.parseInt(entry.getKey())] = value;
|
||||
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
|
||||
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
|
||||
int id = Integer.parseInt(entry.getKey());
|
||||
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (mappedId != -1) {
|
||||
output[id] = mappedId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, @Nullable JsonObject diffIdentifiers) {
|
||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, diffIdentifiers, true);
|
||||
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers) {
|
||||
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, diffIdentifiers, true);
|
||||
}
|
||||
|
||||
private static int mapIdentifierEntry(Map.Entry<String, JsonElement> entry, Object2IntMap<String> newIdentifierMap, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
int value = newIdentifierMap.getInt(entry.getValue().getAsString());
|
||||
if (value == -1) {
|
||||
private static int mapIdentifierEntry(int id, String val, Object2IntMap<String> mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
int mappedId = mappedIdentifiers.getInt(val);
|
||||
if (mappedId == -1) {
|
||||
// Search in diff mappings
|
||||
if (diffIdentifiers != null) {
|
||||
JsonElement diffElement = diffIdentifiers.get(entry.getKey());
|
||||
if (diffElement != null) {
|
||||
value = newIdentifierMap.getInt(diffElement.getAsString());
|
||||
JsonElement diffElement = diffIdentifiers.get(val);
|
||||
if (diffElement != null || (diffElement = diffIdentifiers.get(Integer.toString(id))) != null) {
|
||||
String mappedName = diffElement.getAsString();
|
||||
if (mappedName.isEmpty()) {
|
||||
return -1; // "empty" remaps without warnings
|
||||
}
|
||||
|
||||
mappedId = mappedIdentifiers.getInt(mappedName);
|
||||
|
||||
}
|
||||
}
|
||||
if (value == -1) {
|
||||
if (mappedId == -1) {
|
||||
if (warnOnMissing && !Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
Via.getPlatform().getLogger().warning("No key for " + entry.getValue() + " :( ");
|
||||
Via.getPlatform().getLogger().warning("No key for " + val + " :( ");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
return mappedId;
|
||||
}
|
||||
|
||||
@Deprecated/*(forRemoval = true)*/
|
||||
public static void mapIdentifiers(int[] output, JsonArray oldIdentifiers, JsonArray newIdentifiers, boolean warnOnMissing) {
|
||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, null, warnOnMissing);
|
||||
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, boolean warnOnMissing) {
|
||||
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null, warnOnMissing);
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(int[] output, JsonArray oldIdentifiers, JsonArray newIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(newIdentifiers);
|
||||
for (int i = 0; i < oldIdentifiers.size(); i++) {
|
||||
JsonElement oldIdentifier = oldIdentifiers.get(i);
|
||||
int mappedId = newIdentifierMap.getInt(oldIdentifier.getAsString());
|
||||
if (mappedId == -1) {
|
||||
// Search in diff mappings
|
||||
if (diffIdentifiers != null) {
|
||||
JsonElement diffElement = diffIdentifiers.get(oldIdentifier.getAsString());
|
||||
if (diffElement != null) {
|
||||
String mappedName = diffElement.getAsString();
|
||||
if (mappedName.isEmpty()) continue; // "empty" remaps
|
||||
|
||||
mappedId = newIdentifierMap.getInt(mappedName);
|
||||
}
|
||||
}
|
||||
if (mappedId == -1) {
|
||||
if (warnOnMissing && !Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
Via.getPlatform().getLogger().warning("No key for " + oldIdentifier + " :( ");
|
||||
}
|
||||
continue;
|
||||
}
|
||||
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
|
||||
for (int id = 0; id < unmappedIdentifiers.size(); id++) {
|
||||
JsonElement unmappedIdentifier = unmappedIdentifiers.get(id);
|
||||
int mappedId = mapIdentifierEntry(id, unmappedIdentifier.getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||
if (mappedId != -1) {
|
||||
output[id] = mappedId;
|
||||
}
|
||||
output[i] = mappedId;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ public interface Mappings {
|
||||
*
|
||||
* @param id unmapped id
|
||||
* @param def fallback return value
|
||||
* @return mapped id, or -1 if invalid/out of bounds
|
||||
* @return mapped id, or def if invalid/out of bounds
|
||||
*/
|
||||
default int getNewIdOrDefault(int id, int def) {
|
||||
final int mappedId = getNewId(id);
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.protocol.Protocol;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.types.Particle;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
@ -104,10 +105,7 @@ public class ParticleType extends Type<Particle> {
|
||||
|
||||
String resourceLocation = Type.STRING.read(buf);
|
||||
particle.add(Type.STRING, resourceLocation);
|
||||
if (resourceLocation.startsWith("minecraft:")) {
|
||||
resourceLocation = resourceLocation.substring(10);
|
||||
}
|
||||
|
||||
resourceLocation = Key.stripMinecraftNamespace(resourceLocation);
|
||||
if (resourceLocation.equals("block")) {
|
||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
||||
} else if (resourceLocation.equals("entity")) {
|
||||
|
48
api/src/main/java/com/viaversion/viaversion/util/Key.java
Normal file
48
api/src/main/java/com/viaversion/viaversion/util/Key.java
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||
* Copyright (C) 2023 ViaVersion and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
package com.viaversion.viaversion.util;
|
||||
|
||||
public final class Key {
|
||||
|
||||
public static String stripNamespace(final String identifier) {
|
||||
int index = identifier.indexOf(':');
|
||||
if (index == -1) {
|
||||
return identifier;
|
||||
}
|
||||
return identifier.substring(index + 1);
|
||||
}
|
||||
|
||||
public static String stripMinecraftNamespace(final String identifier) {
|
||||
if (identifier.startsWith("minecraft:")) {
|
||||
return identifier.substring(10);
|
||||
}
|
||||
return identifier;
|
||||
}
|
||||
|
||||
public static String namespaced(final String identifier) {
|
||||
if (identifier.indexOf(':') == -1) {
|
||||
return "minecraft:" + identifier;
|
||||
}
|
||||
return identifier;
|
||||
}
|
||||
}
|
@ -302,8 +302,8 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
|
||||
wrapper.cancel();
|
||||
if (item == 383) { // Spawn egg
|
||||
for (int i = 0; i < 44; i++) {
|
||||
Integer newItem = getMappingData().getItemMappings().get(item << 16 | i);
|
||||
if (newItem != null) {
|
||||
int newItem = MAPPINGS.getItemMappings().getNewId(item << 16 | i);
|
||||
if (newItem != -1) {
|
||||
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
||||
packet.write(Type.VAR_INT, newItem);
|
||||
packet.write(Type.VAR_INT, ticks);
|
||||
@ -314,7 +314,7 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < 16; i++) {
|
||||
int newItem = getMappingData().getItemMappings().get(item << 4 | i);
|
||||
int newItem = MAPPINGS.getItemMappings().getNewId(item << 4 | i);
|
||||
if (newItem != -1) {
|
||||
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
||||
packet.write(Type.VAR_INT, newItem);
|
||||
@ -339,7 +339,7 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
|
||||
int id = wrapper.get(Type.INT, 0);
|
||||
int data = wrapper.get(Type.INT, 1);
|
||||
if (id == 1010) { // Play record
|
||||
wrapper.set(Type.INT, 1, getMappingData().getItemMappings().get(data << 4));
|
||||
wrapper.set(Type.INT, 1, getMappingData().getItemMappings().getNewId(data << 4));
|
||||
} else if (id == 2001) { // Block break + block break sound
|
||||
int blockId = data & 0xFFF;
|
||||
int blockData = data >> 12;
|
||||
|
@ -36,6 +36,7 @@ import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.ClientboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.Protocol1_13To1_12_2;
|
||||
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.providers.BlockConnectionProvider;
|
||||
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.providers.PacketBlockConnectionProvider;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
@ -47,7 +48,7 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class ConnectionData {
|
||||
public final class ConnectionData {
|
||||
private static final BlockChangeRecord1_8[] EMPTY_RECORDS = new BlockChangeRecord1_8[0];
|
||||
public static BlockConnectionProvider blockConnectionProvider;
|
||||
static Int2ObjectMap<String> idToKey = new Int2ObjectOpenHashMap<>(8582, .99F);
|
||||
@ -199,14 +200,15 @@ public class ConnectionData {
|
||||
}
|
||||
|
||||
public static void init() {
|
||||
if (!Via.getConfig().isServersideBlockConnections()) return;
|
||||
if (!Via.getConfig().isServersideBlockConnections()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
|
||||
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
|
||||
JsonObject blocks1_13 = mapping1_13.getAsJsonObject("blockstates");
|
||||
for (Entry<String, JsonElement> blockState : blocks1_13.entrySet()) {
|
||||
int id = Integer.parseInt(blockState.getKey());
|
||||
String key = blockState.getValue().getAsString();
|
||||
JsonArray blocks1_13 = mapping1_13.getAsJsonArray("blockstates");
|
||||
for (int id = 0; id < blocks1_13.size(); id++) {
|
||||
String key = blocks1_13.get(id).getAsString();
|
||||
idToKey.put(id, key);
|
||||
keyToId.put(key, id);
|
||||
}
|
||||
@ -238,10 +240,8 @@ public class ConnectionData {
|
||||
}
|
||||
}
|
||||
|
||||
JsonObject blockData = MappingDataLoader.loadData("blockData.json");
|
||||
JsonArray occluding = blockData.getAsJsonArray("occluding");
|
||||
for (JsonElement jsonElement : occluding) {
|
||||
occludingStates.add(keyToId.getInt(jsonElement.getAsString()));
|
||||
for (String state : occludingBlockStates()) {
|
||||
occludingStates.add(keyToId.getInt(state));
|
||||
}
|
||||
|
||||
List<ConnectorInitAction> initActions = new ArrayList<>();
|
||||
@ -295,16 +295,402 @@ public class ConnectionData {
|
||||
}
|
||||
|
||||
public static int getId(String key) {
|
||||
return keyToId.getOrDefault(key, -1);
|
||||
return keyToId.getOrDefault(Key.stripMinecraftNamespace(key), -1);
|
||||
}
|
||||
|
||||
public static String getKey(int id) {
|
||||
return idToKey.get(id);
|
||||
}
|
||||
|
||||
private static String[] occludingBlockStates() {
|
||||
return new String[]{
|
||||
"stone",
|
||||
"granite",
|
||||
"polished_granite",
|
||||
"diorite",
|
||||
"polished_diorite",
|
||||
"andesite",
|
||||
"polished_andesite",
|
||||
"grass_block[snowy=false]",
|
||||
"dirt",
|
||||
"coarse_dirt",
|
||||
"podzol[snowy=false]",
|
||||
"cobblestone",
|
||||
"oak_planks",
|
||||
"spruce_planks",
|
||||
"birch_planks",
|
||||
"jungle_planks",
|
||||
"acacia_planks",
|
||||
"dark_oak_planks",
|
||||
"bedrock",
|
||||
"sand",
|
||||
"red_sand",
|
||||
"gravel",
|
||||
"gold_ore",
|
||||
"iron_ore",
|
||||
"coal_ore",
|
||||
"oak_log[axis=x]",
|
||||
"oak_log[axis=y]",
|
||||
"oak_log[axis=z]",
|
||||
"spruce_log[axis=x]",
|
||||
"spruce_log[axis=y]",
|
||||
"spruce_log[axis=z]",
|
||||
"birch_log[axis=x]",
|
||||
"birch_log[axis=y]",
|
||||
"birch_log[axis=z]",
|
||||
"jungle_log[axis=x]",
|
||||
"jungle_log[axis=y]",
|
||||
"jungle_log[axis=z]",
|
||||
"acacia_log[axis=x]",
|
||||
"acacia_log[axis=y]",
|
||||
"acacia_log[axis=z]",
|
||||
"dark_oak_log[axis=x]",
|
||||
"dark_oak_log[axis=y]",
|
||||
"dark_oak_log[axis=z]",
|
||||
"oak_wood[axis=y]",
|
||||
"spruce_wood[axis=y]",
|
||||
"birch_wood[axis=y]",
|
||||
"jungle_wood[axis=y]",
|
||||
"acacia_wood[axis=y]",
|
||||
"dark_oak_wood[axis=y]",
|
||||
"sponge",
|
||||
"wet_sponge",
|
||||
"lapis_ore",
|
||||
"lapis_block",
|
||||
"dispenser[facing=north,triggered=true]",
|
||||
"dispenser[facing=north,triggered=false]",
|
||||
"dispenser[facing=east,triggered=true]",
|
||||
"dispenser[facing=east,triggered=false]",
|
||||
"dispenser[facing=south,triggered=true]",
|
||||
"dispenser[facing=south,triggered=false]",
|
||||
"dispenser[facing=west,triggered=true]",
|
||||
"dispenser[facing=west,triggered=false]",
|
||||
"dispenser[facing=up,triggered=true]",
|
||||
"dispenser[facing=up,triggered=false]",
|
||||
"dispenser[facing=down,triggered=true]",
|
||||
"dispenser[facing=down,triggered=false]",
|
||||
"sandstone",
|
||||
"chiseled_sandstone",
|
||||
"cut_sandstone",
|
||||
"note_block[instrument=harp,note=0,powered=false]",
|
||||
"white_wool",
|
||||
"orange_wool",
|
||||
"magenta_wool",
|
||||
"light_blue_wool",
|
||||
"yellow_wool",
|
||||
"lime_wool",
|
||||
"pink_wool",
|
||||
"gray_wool",
|
||||
"light_gray_wool",
|
||||
"cyan_wool",
|
||||
"purple_wool",
|
||||
"blue_wool",
|
||||
"brown_wool",
|
||||
"green_wool",
|
||||
"red_wool",
|
||||
"black_wool",
|
||||
"gold_block",
|
||||
"iron_block",
|
||||
"bricks",
|
||||
"bookshelf",
|
||||
"mossy_cobblestone",
|
||||
"obsidian",
|
||||
"spawner",
|
||||
"diamond_ore",
|
||||
"diamond_block",
|
||||
"crafting_table",
|
||||
"furnace[facing=north,lit=true]",
|
||||
"furnace[facing=north,lit=false]",
|
||||
"furnace[facing=south,lit=true]",
|
||||
"furnace[facing=south,lit=false]",
|
||||
"furnace[facing=west,lit=true]",
|
||||
"furnace[facing=west,lit=false]",
|
||||
"furnace[facing=east,lit=true]",
|
||||
"furnace[facing=east,lit=false]",
|
||||
"redstone_ore[lit=true]",
|
||||
"redstone_ore[lit=false]",
|
||||
"snow_block",
|
||||
"clay",
|
||||
"jukebox[has_record=true]",
|
||||
"jukebox[has_record=false]",
|
||||
"netherrack",
|
||||
"soul_sand",
|
||||
"carved_pumpkin[facing=north]",
|
||||
"carved_pumpkin[facing=south]",
|
||||
"carved_pumpkin[facing=west]",
|
||||
"carved_pumpkin[facing=east]",
|
||||
"jack_o_lantern[facing=north]",
|
||||
"jack_o_lantern[facing=south]",
|
||||
"jack_o_lantern[facing=west]",
|
||||
"jack_o_lantern[facing=east]",
|
||||
"infested_stone",
|
||||
"infested_cobblestone",
|
||||
"infested_stone_bricks",
|
||||
"infested_mossy_stone_bricks",
|
||||
"infested_cracked_stone_bricks",
|
||||
"infested_chiseled_stone_bricks",
|
||||
"stone_bricks",
|
||||
"mossy_stone_bricks",
|
||||
"cracked_stone_bricks",
|
||||
"chiseled_stone_bricks",
|
||||
"brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"brown_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]",
|
||||
"brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]",
|
||||
"brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]",
|
||||
"brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]",
|
||||
"brown_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]",
|
||||
"red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"red_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]",
|
||||
"red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]",
|
||||
"red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]",
|
||||
"red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]",
|
||||
"red_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]",
|
||||
"mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"mushroom_stem[down=false,east=true,north=true,south=true,up=false,west=true]",
|
||||
"melon",
|
||||
"mycelium[snowy=false]",
|
||||
"nether_bricks",
|
||||
"end_stone",
|
||||
"redstone_lamp[lit=true]",
|
||||
"redstone_lamp[lit=false]",
|
||||
"emerald_ore",
|
||||
"emerald_block",
|
||||
"command_block[conditional=true,facing=north]",
|
||||
"command_block[conditional=true,facing=east]",
|
||||
"command_block[conditional=true,facing=south]",
|
||||
"command_block[conditional=true,facing=west]",
|
||||
"command_block[conditional=true,facing=up]",
|
||||
"command_block[conditional=true,facing=down]",
|
||||
"command_block[conditional=false,facing=north]",
|
||||
"command_block[conditional=false,facing=east]",
|
||||
"command_block[conditional=false,facing=south]",
|
||||
"command_block[conditional=false,facing=west]",
|
||||
"command_block[conditional=false,facing=up]",
|
||||
"command_block[conditional=false,facing=down]",
|
||||
"nether_quartz_ore",
|
||||
"quartz_block",
|
||||
"chiseled_quartz_block",
|
||||
"quartz_pillar[axis=x]",
|
||||
"quartz_pillar[axis=y]",
|
||||
"quartz_pillar[axis=z]",
|
||||
"dropper[facing=north,triggered=true]",
|
||||
"dropper[facing=north,triggered=false]",
|
||||
"dropper[facing=east,triggered=true]",
|
||||
"dropper[facing=east,triggered=false]",
|
||||
"dropper[facing=south,triggered=true]",
|
||||
"dropper[facing=south,triggered=false]",
|
||||
"dropper[facing=west,triggered=true]",
|
||||
"dropper[facing=west,triggered=false]",
|
||||
"dropper[facing=up,triggered=true]",
|
||||
"dropper[facing=up,triggered=false]",
|
||||
"dropper[facing=down,triggered=true]",
|
||||
"dropper[facing=down,triggered=false]",
|
||||
"white_terracotta",
|
||||
"orange_terracotta",
|
||||
"magenta_terracotta",
|
||||
"light_blue_terracotta",
|
||||
"yellow_terracotta",
|
||||
"lime_terracotta",
|
||||
"pink_terracotta",
|
||||
"gray_terracotta",
|
||||
"light_gray_terracotta",
|
||||
"cyan_terracotta",
|
||||
"purple_terracotta",
|
||||
"blue_terracotta",
|
||||
"brown_terracotta",
|
||||
"green_terracotta",
|
||||
"red_terracotta",
|
||||
"black_terracotta",
|
||||
"slime_block",
|
||||
"barrier",
|
||||
"prismarine",
|
||||
"prismarine_bricks",
|
||||
"dark_prismarine",
|
||||
"hay_block[axis=x]",
|
||||
"hay_block[axis=y]",
|
||||
"hay_block[axis=z]",
|
||||
"terracotta",
|
||||
"coal_block",
|
||||
"packed_ice",
|
||||
"red_sandstone",
|
||||
"chiseled_red_sandstone",
|
||||
"cut_red_sandstone",
|
||||
"oak_slab[type=double,waterlogged=false]",
|
||||
"spruce_slab[type=double,waterlogged=false]",
|
||||
"birch_slab[type=double,waterlogged=false]",
|
||||
"jungle_slab[type=double,waterlogged=false]",
|
||||
"acacia_slab[type=double,waterlogged=false]",
|
||||
"dark_oak_slab[type=double,waterlogged=false]",
|
||||
"stone_slab[type=double,waterlogged=false]",
|
||||
"sandstone_slab[type=double,waterlogged=false]",
|
||||
"petrified_oak_slab[type=double,waterlogged=false]",
|
||||
"cobblestone_slab[type=double,waterlogged=false]",
|
||||
"brick_slab[type=double,waterlogged=false]",
|
||||
"stone_brick_slab[type=double,waterlogged=false]",
|
||||
"nether_brick_slab[type=double,waterlogged=false]",
|
||||
"quartz_slab[type=double,waterlogged=false]",
|
||||
"red_sandstone_slab[type=double,waterlogged=false]",
|
||||
"purpur_slab[type=double,waterlogged=false]",
|
||||
"smooth_stone",
|
||||
"smooth_sandstone",
|
||||
"smooth_quartz",
|
||||
"smooth_red_sandstone",
|
||||
"purpur_block",
|
||||
"purpur_pillar[axis=x]",
|
||||
"purpur_pillar[axis=y]",
|
||||
"purpur_pillar[axis=z]",
|
||||
"end_stone_bricks",
|
||||
"repeating_command_block[conditional=true,facing=north]",
|
||||
"repeating_command_block[conditional=true,facing=east]",
|
||||
"repeating_command_block[conditional=true,facing=south]",
|
||||
"repeating_command_block[conditional=true,facing=west]",
|
||||
"repeating_command_block[conditional=true,facing=up]",
|
||||
"repeating_command_block[conditional=true,facing=down]",
|
||||
"repeating_command_block[conditional=false,facing=north]",
|
||||
"repeating_command_block[conditional=false,facing=east]",
|
||||
"repeating_command_block[conditional=false,facing=south]",
|
||||
"repeating_command_block[conditional=false,facing=west]",
|
||||
"repeating_command_block[conditional=false,facing=up]",
|
||||
"repeating_command_block[conditional=false,facing=down]",
|
||||
"chain_command_block[conditional=true,facing=north]",
|
||||
"chain_command_block[conditional=true,facing=east]",
|
||||
"chain_command_block[conditional=true,facing=south]",
|
||||
"chain_command_block[conditional=true,facing=west]",
|
||||
"chain_command_block[conditional=true,facing=up]",
|
||||
"chain_command_block[conditional=true,facing=down]",
|
||||
"chain_command_block[conditional=false,facing=north]",
|
||||
"chain_command_block[conditional=false,facing=east]",
|
||||
"chain_command_block[conditional=false,facing=south]",
|
||||
"chain_command_block[conditional=false,facing=west]",
|
||||
"chain_command_block[conditional=false,facing=up]",
|
||||
"chain_command_block[conditional=false,facing=down]",
|
||||
"magma_block",
|
||||
"nether_wart_block",
|
||||
"red_nether_bricks",
|
||||
"bone_block[axis=x]",
|
||||
"bone_block[axis=y]",
|
||||
"bone_block[axis=z]",
|
||||
"white_glazed_terracotta[facing=north]",
|
||||
"white_glazed_terracotta[facing=south]",
|
||||
"white_glazed_terracotta[facing=west]",
|
||||
"white_glazed_terracotta[facing=east]",
|
||||
"orange_glazed_terracotta[facing=north]",
|
||||
"orange_glazed_terracotta[facing=south]",
|
||||
"orange_glazed_terracotta[facing=west]",
|
||||
"orange_glazed_terracotta[facing=east]",
|
||||
"magenta_glazed_terracotta[facing=north]",
|
||||
"magenta_glazed_terracotta[facing=south]",
|
||||
"magenta_glazed_terracotta[facing=west]",
|
||||
"magenta_glazed_terracotta[facing=east]",
|
||||
"light_blue_glazed_terracotta[facing=north]",
|
||||
"light_blue_glazed_terracotta[facing=south]",
|
||||
"light_blue_glazed_terracotta[facing=west]",
|
||||
"light_blue_glazed_terracotta[facing=east]",
|
||||
"yellow_glazed_terracotta[facing=north]",
|
||||
"yellow_glazed_terracotta[facing=south]",
|
||||
"yellow_glazed_terracotta[facing=west]",
|
||||
"yellow_glazed_terracotta[facing=east]",
|
||||
"lime_glazed_terracotta[facing=north]",
|
||||
"lime_glazed_terracotta[facing=south]",
|
||||
"lime_glazed_terracotta[facing=west]",
|
||||
"lime_glazed_terracotta[facing=east]",
|
||||
"pink_glazed_terracotta[facing=north]",
|
||||
"pink_glazed_terracotta[facing=south]",
|
||||
"pink_glazed_terracotta[facing=west]",
|
||||
"pink_glazed_terracotta[facing=east]",
|
||||
"gray_glazed_terracotta[facing=north]",
|
||||
"gray_glazed_terracotta[facing=south]",
|
||||
"gray_glazed_terracotta[facing=west]",
|
||||
"gray_glazed_terracotta[facing=east]",
|
||||
"light_gray_glazed_terracotta[facing=north]",
|
||||
"light_gray_glazed_terracotta[facing=south]",
|
||||
"light_gray_glazed_terracotta[facing=west]",
|
||||
"light_gray_glazed_terracotta[facing=east]",
|
||||
"cyan_glazed_terracotta[facing=north]",
|
||||
"cyan_glazed_terracotta[facing=south]",
|
||||
"cyan_glazed_terracotta[facing=west]",
|
||||
"cyan_glazed_terracotta[facing=east]",
|
||||
"purple_glazed_terracotta[facing=north]",
|
||||
"purple_glazed_terracotta[facing=south]",
|
||||
"purple_glazed_terracotta[facing=west]",
|
||||
"purple_glazed_terracotta[facing=east]",
|
||||
"blue_glazed_terracotta[facing=north]",
|
||||
"blue_glazed_terracotta[facing=south]",
|
||||
"blue_glazed_terracotta[facing=west]",
|
||||
"blue_glazed_terracotta[facing=east]",
|
||||
"brown_glazed_terracotta[facing=north]",
|
||||
"brown_glazed_terracotta[facing=south]",
|
||||
"brown_glazed_terracotta[facing=west]",
|
||||
"brown_glazed_terracotta[facing=east]",
|
||||
"green_glazed_terracotta[facing=north]",
|
||||
"green_glazed_terracotta[facing=south]",
|
||||
"green_glazed_terracotta[facing=west]",
|
||||
"green_glazed_terracotta[facing=east]",
|
||||
"red_glazed_terracotta[facing=north]",
|
||||
"red_glazed_terracotta[facing=south]",
|
||||
"red_glazed_terracotta[facing=west]",
|
||||
"red_glazed_terracotta[facing=east]",
|
||||
"black_glazed_terracotta[facing=north]",
|
||||
"black_glazed_terracotta[facing=south]",
|
||||
"black_glazed_terracotta[facing=west]",
|
||||
"black_glazed_terracotta[facing=east]",
|
||||
"white_concrete",
|
||||
"orange_concrete",
|
||||
"magenta_concrete",
|
||||
"light_blue_concrete",
|
||||
"yellow_concrete",
|
||||
"lime_concrete",
|
||||
"pink_concrete",
|
||||
"gray_concrete",
|
||||
"light_gray_concrete",
|
||||
"cyan_concrete",
|
||||
"purple_concrete",
|
||||
"blue_concrete",
|
||||
"brown_concrete",
|
||||
"green_concrete",
|
||||
"red_concrete",
|
||||
"black_concrete",
|
||||
"white_concrete_powder",
|
||||
"orange_concrete_powder",
|
||||
"magenta_concrete_powder",
|
||||
"light_blue_concrete_powder",
|
||||
"yellow_concrete_powder",
|
||||
"lime_concrete_powder",
|
||||
"pink_concrete_powder",
|
||||
"gray_concrete_powder",
|
||||
"light_gray_concrete_powder",
|
||||
"cyan_concrete_powder",
|
||||
"purple_concrete_powder",
|
||||
"blue_concrete_powder",
|
||||
"brown_concrete_powder",
|
||||
"green_concrete_powder",
|
||||
"red_concrete_powder",
|
||||
"black_concrete_powder",
|
||||
"structure_block[mode=save]",
|
||||
"structure_block[mode=load]",
|
||||
"structure_block[mode=corner]",
|
||||
"structure_block[mode=data]",
|
||||
"glowstone"
|
||||
};
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
interface ConnectorInitAction {
|
||||
|
||||
void check(WrappedBlockData blockData);
|
||||
}
|
||||
|
||||
public static Object2IntMap<String> getKeyToId() {
|
||||
return keyToId;
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@
|
||||
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections;
|
||||
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@ -52,7 +53,7 @@ public class WrappedBlockData {
|
||||
}
|
||||
|
||||
private WrappedBlockData(String minecraftKey, int savedBlockStateId) {
|
||||
this.minecraftKey = minecraftKey;
|
||||
this.minecraftKey = Key.namespaced(minecraftKey);
|
||||
this.savedBlockStateId = savedBlockStateId;
|
||||
}
|
||||
|
||||
|
@ -25,11 +25,16 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.data.BiMappings;
|
||||
import com.viaversion.viaversion.api.data.Int2IntMapBiMappings;
|
||||
import com.viaversion.viaversion.api.data.IntArrayMappings;
|
||||
import com.viaversion.viaversion.api.data.MappingDataBase;
|
||||
import com.viaversion.viaversion.api.data.MappingDataLoader;
|
||||
import com.viaversion.viaversion.api.data.Mappings;
|
||||
import com.viaversion.viaversion.util.GsonUtil;
|
||||
import com.viaversion.viaversion.util.Int2IntBiHashMap;
|
||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
@ -52,14 +57,14 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
||||
loadTags(blockTags, newMappings.getAsJsonObject("block_tags"));
|
||||
loadTags(itemTags, newMappings.getAsJsonObject("item_tags"));
|
||||
loadTags(fluidTags, newMappings.getAsJsonObject("fluid_tags"));
|
||||
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||
loadTags(blockTags, mappedIdentifiers.getAsJsonObject("block_tags"));
|
||||
loadTags(itemTags, mappedIdentifiers.getAsJsonObject("item_tags"));
|
||||
loadTags(fluidTags, mappedIdentifiers.getAsJsonObject("fluid_tags"));
|
||||
|
||||
loadEnchantments(oldEnchantmentsIds, oldMappings.getAsJsonObject("legacy_enchantments"));
|
||||
loadEnchantments(oldEnchantmentsIds, unmappedIdentifiers.getAsJsonObject("legacy_enchantments"));
|
||||
enchantmentMappings = IntArrayMappings.builder().customEntrySize(72)
|
||||
.unmapped(oldMappings.getAsJsonObject("legacy_enchantments")).mapped(newMappings.getAsJsonArray("enchantments")).build();
|
||||
.unmapped(unmappedIdentifiers.getAsJsonObject("legacy_enchantments")).mapped(mappedIdentifiers.getAsJsonArray("enchantments")).build();
|
||||
|
||||
// Map minecraft:snow[layers=1] of 1.12 to minecraft:snow[layers=2] in 1.13
|
||||
if (Via.getConfig().isSnowCollisionFix()) {
|
||||
@ -122,16 +127,40 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mappings loadFromObject(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
||||
protected @Nullable Mappings loadFromArray(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings, final String key) {
|
||||
if (key.equals("blocks")) {
|
||||
// Need to use a custom size since there are larger gaps in ids
|
||||
// Need to use a custom size since there are larger gaps in ids, also object -> array
|
||||
return IntArrayMappings.builder().customEntrySize(4084)
|
||||
.unmapped(oldMappings.getAsJsonObject("blocks")).mapped(newMappings.getAsJsonObject("blockstates")).build();
|
||||
.unmapped(unmappedIdentifiers.getAsJsonObject("blocks")).mapped(mappedIdentifiers.getAsJsonArray("blockstates")).build();
|
||||
} else if (key.equals("items")) {
|
||||
// Object -> array
|
||||
return IntArrayMappings.builder()
|
||||
.unmapped(unmappedIdentifiers.getAsJsonObject(key)).mapped(mappedIdentifiers.getAsJsonArray(key)).build();
|
||||
} else {
|
||||
return super.loadFromObject(oldMappings, newMappings, diffMappings, key);
|
||||
return super.loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @Nullable BiMappings loadBiFromArray(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings, final String key) {
|
||||
if (key.equals("items")) {
|
||||
final Int2IntBiMap itemMappings = new Int2IntBiHashMap();
|
||||
itemMappings.defaultReturnValue(-1);
|
||||
MappingDataLoader.mapIdentifiers(itemMappings, unmappedIdentifiers.getAsJsonObject("items"), toJsonObject(mappedIdentifiers.getAsJsonArray("items")), null, true);
|
||||
return Int2IntMapBiMappings.of(itemMappings);
|
||||
}
|
||||
return super.loadBiFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||
}
|
||||
|
||||
private JsonObject toJsonObject(final JsonArray array) {
|
||||
final JsonObject object = new JsonObject();
|
||||
for (int i = 0; i < array.size(); i++) {
|
||||
final JsonElement element = array.get(i);
|
||||
object.add(Integer.toString(i), element);
|
||||
}
|
||||
return object;
|
||||
}
|
||||
|
||||
public static String validateNewChannel(String newId) {
|
||||
if (!isValid1_13Channel(newId)) {
|
||||
return null; // Not valid
|
||||
@ -157,7 +186,7 @@ public class MappingData extends MappingDataBase {
|
||||
for (int i = 0; i < ids.size(); i++) {
|
||||
idsArray[i] = ids.get(i).getAsInt();
|
||||
}
|
||||
output.put(entry.getKey(), idsArray);
|
||||
output.put(Key.namespaced(entry.getKey()), idsArray);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -430,14 +430,14 @@ public class InventoryPackets extends ItemRewriter<ClientboundPackets1_12_1, Ser
|
||||
}
|
||||
}
|
||||
|
||||
if (!Protocol1_13To1_12_2.MAPPINGS.getItemMappings().containsKey(rawId)) {
|
||||
if (Protocol1_13To1_12_2.MAPPINGS.getItemMappings().getNewId(rawId) == -1) {
|
||||
if (!isDamageable(item.identifier()) && item.identifier() != 358) { // Map
|
||||
if (tag == null) item.setTag(tag = new CompoundTag());
|
||||
tag.put(NBT_TAG_NAME, new IntTag(originalId)); // Data will be lost, saving original id
|
||||
}
|
||||
if (item.identifier() == 31 && item.data() == 0) { // Shrub was removed
|
||||
rawId = 32 << 4; // Dead Bush
|
||||
} else if (Protocol1_13To1_12_2.MAPPINGS.getItemMappings().containsKey(rawId & ~0xF)) {
|
||||
} else if (Protocol1_13To1_12_2.MAPPINGS.getItemMappings().getNewId(rawId & ~0xF) != -1) {
|
||||
rawId &= ~0xF; // Remove data
|
||||
} else {
|
||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
||||
@ -447,7 +447,7 @@ public class InventoryPackets extends ItemRewriter<ClientboundPackets1_12_1, Ser
|
||||
}
|
||||
}
|
||||
|
||||
item.setIdentifier(Protocol1_13To1_12_2.MAPPINGS.getItemMappings().get(rawId));
|
||||
item.setIdentifier(Protocol1_13To1_12_2.MAPPINGS.getItemMappings().getNewId(rawId));
|
||||
item.setData((short) 0);
|
||||
return item;
|
||||
}
|
||||
@ -501,7 +501,7 @@ public class InventoryPackets extends ItemRewriter<ClientboundPackets1_12_1, Ser
|
||||
}
|
||||
|
||||
if (rawId == null) {
|
||||
int oldId = Protocol1_13To1_12_2.MAPPINGS.getItemMappings().inverse().get(item.identifier());
|
||||
int oldId = Protocol1_13To1_12_2.MAPPINGS.getItemMappings().inverse().getNewId(item.identifier());
|
||||
if (oldId != -1) {
|
||||
// Handle spawn eggs
|
||||
Optional<String> eggEntityId = SpawnEggRewriter.getEntityId(oldId);
|
||||
|
@ -25,8 +25,8 @@ import com.viaversion.viaversion.api.data.MappingDataBase;
|
||||
import com.viaversion.viaversion.api.data.MappingDataLoader;
|
||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||
|
||||
public class MappingData extends MappingDataBase {
|
||||
private IntSet motionBlocking;
|
||||
@ -37,11 +37,13 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
||||
JsonObject blockStates = newMappings.getAsJsonObject("blockstates");
|
||||
Map<String, Integer> blockStateMap = new HashMap<>(blockStates.entrySet().size());
|
||||
for (Map.Entry<String, JsonElement> entry : blockStates.entrySet()) {
|
||||
blockStateMap.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey()));
|
||||
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||
JsonArray mappedBlockStates = mappedIdentifiers.getAsJsonArray("blockstates");
|
||||
Object2IntMap<String> blockStateMap = new Object2IntOpenHashMap<>(mappedBlockStates.size());
|
||||
blockStateMap.defaultReturnValue(-1);
|
||||
for (int i = 0; i < mappedBlockStates.size(); i++) {
|
||||
String state = mappedBlockStates.get(i).getAsString();
|
||||
blockStateMap.put(state, i);
|
||||
}
|
||||
|
||||
JsonObject heightMapData = MappingDataLoader.loadData("heightMapData-1.14.json");
|
||||
@ -49,20 +51,21 @@ public class MappingData extends MappingDataBase {
|
||||
this.motionBlocking = new IntOpenHashSet(motionBlocking.size(), .99F);
|
||||
for (JsonElement blockState : motionBlocking) {
|
||||
String key = blockState.getAsString();
|
||||
Integer id = blockStateMap.get(key);
|
||||
if (id == null) {
|
||||
int id = blockStateMap.getInt(key);
|
||||
if (id == -1) {
|
||||
Via.getPlatform().getLogger().warning("Unknown blockstate " + key + " :(");
|
||||
} else {
|
||||
this.motionBlocking.add(id.intValue());
|
||||
this.motionBlocking.add(id);
|
||||
}
|
||||
}
|
||||
|
||||
if (Via.getConfig().isNonFullBlockLightFix()) {
|
||||
nonFullBlocks = new IntOpenHashSet(1611, .99F);
|
||||
for (Map.Entry<String, JsonElement> blockstates : oldMappings.getAsJsonObject("blockstates").entrySet()) {
|
||||
final String state = blockstates.getValue().getAsString();
|
||||
JsonArray blockStates = unmappedIdentifiers.getAsJsonArray("blockstates");
|
||||
for (int i = 0; i < blockStates.size(); i++) {
|
||||
String state = blockStates.get(i).getAsString();
|
||||
if (state.contains("_slab") || state.contains("_stairs") || state.contains("_wall[")) {
|
||||
nonFullBlocks.add(blockStateMappings.getNewId(Integer.parseInt(blockstates.getKey())));
|
||||
nonFullBlocks.add(blockStateMappings.getNewId(i));
|
||||
}
|
||||
}
|
||||
nonFullBlocks.add(blockStateMappings.getNewId(8163)); // grass path
|
||||
|
@ -30,13 +30,13 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mappings loadFromArray(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
||||
protected Mappings loadFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||
if (!key.equals("sounds")) {
|
||||
return super.loadFromArray(oldMappings, newMappings, diffMappings, key);
|
||||
return super.loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||
}
|
||||
|
||||
// Ignore removed sounds
|
||||
return IntArrayMappings.builder().warnOnMissing(false)
|
||||
.unmapped(oldMappings.getAsJsonArray(key)).mapped(newMappings.getAsJsonArray(key)).build();
|
||||
.unmapped(unmappedIdentifiers.getAsJsonArray(key)).mapped(mappedIdentifiers.getAsJsonArray(key)).build();
|
||||
}
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
||||
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||
try {
|
||||
dimensionRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("dimension-registry-1.16.2.nbt"));
|
||||
} catch (IOException e) {
|
||||
|
@ -30,7 +30,7 @@ public class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
||||
protected void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||
attributeMappings.put("generic.maxHealth", "minecraft:generic.max_health");
|
||||
attributeMappings.put("zombie.spawnReinforcements", "minecraft:zombie.spawn_reinforcements");
|
||||
attributeMappings.put("horse.jumpStrength", "minecraft:horse.jump_strength");
|
||||
|
@ -37,6 +37,7 @@ import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.ServerboundPacke
|
||||
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.storage.InventoryTracker1_16;
|
||||
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
||||
import com.viaversion.viaversion.rewriter.RecipeRewriter;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import java.util.UUID;
|
||||
|
||||
public class InventoryPackets extends ItemRewriter<ClientboundPackets1_15, ServerboundPackets1_16, Protocol1_16To1_15_2> {
|
||||
@ -240,8 +241,8 @@ public class InventoryPackets extends ItemRewriter<ClientboundPackets1_15, Serve
|
||||
if (attributeNameTag == null) return;
|
||||
|
||||
String attributeName = attributeNameTag.getValue();
|
||||
if (inverse && !attributeName.startsWith("minecraft:")) {
|
||||
attributeName = "minecraft:" + attributeName;
|
||||
if (inverse) {
|
||||
attributeName = Key.namespaced(attributeName);
|
||||
}
|
||||
|
||||
String mappedAttribute = (inverse ? Protocol1_16To1_15_2.MAPPINGS.getAttributeMappings().inverse()
|
||||
|
@ -34,9 +34,9 @@ public final class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadExtras(final JsonObject oldMappings, final JsonObject newMappings, @Nullable final JsonObject diffMappings) {
|
||||
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
|
||||
int i = 0;
|
||||
for (final JsonElement element : newMappings.getAsJsonArray("blockentities")) {
|
||||
for (final JsonElement element : mappedIdentifiers.getAsJsonArray("blockentities")) {
|
||||
final String id = element.getAsString();
|
||||
blockEntityIds.put(id, i++);
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.BlockEntityIds;
|
||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.Protocol1_18To1_17_1;
|
||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.storage.ChunkLightStorage;
|
||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.types.Chunk1_18Type;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import com.viaversion.viaversion.util.MathUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.BitSet;
|
||||
@ -115,7 +116,7 @@ public final class WorldPackets {
|
||||
}
|
||||
|
||||
final String id = idTag.getValue();
|
||||
final int typeId = protocol.getMappingData().blockEntityIds().getInt(id.replace("minecraft:", ""));
|
||||
final int typeId = protocol.getMappingData().blockEntityIds().getInt(Key.stripMinecraftNamespace(id));
|
||||
if (typeId == -1) {
|
||||
Via.getPlatform().getLogger().warning("Unknown block entity: " + id);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import com.viaversion.viaversion.protocols.protocol1_19_3to1_19_1.ServerboundPac
|
||||
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
||||
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
||||
import com.viaversion.viaversion.rewriter.RecipeRewriter;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
|
||||
public final class InventoryPackets extends ItemRewriter<ClientboundPackets1_19_1, ServerboundPackets1_19_3, Protocol1_19_3To1_19_1> {
|
||||
|
||||
@ -61,7 +62,7 @@ public final class InventoryPackets extends ItemRewriter<ClientboundPackets1_19_
|
||||
protocol.registerClientbound(ClientboundPackets1_19_1.DECLARE_RECIPES, wrapper -> {
|
||||
final int size = wrapper.passthrough(Type.VAR_INT);
|
||||
for (int i = 0; i < size; i++) {
|
||||
final String type = wrapper.passthrough(Type.STRING).replace("minecraft:", "");
|
||||
final String type = Key.stripMinecraftNamespace(wrapper.passthrough(Type.STRING));
|
||||
wrapper.passthrough(Type.STRING); // Recipe Identifier
|
||||
switch (type) {
|
||||
case "crafting_shapeless": {
|
||||
|
@ -65,7 +65,6 @@ public final class Protocol1_19_4To1_19_3 extends AbstractProtocol<ClientboundPa
|
||||
super.handleArgument(wrapper, argumentType);
|
||||
}
|
||||
}
|
||||
|
||||
}.registerDeclareCommands1_19(ClientboundPackets1_19_3.DECLARE_COMMANDS);
|
||||
|
||||
registerClientbound(ClientboundPackets1_19_3.SERVER_DATA, wrapper -> {
|
||||
|
@ -34,7 +34,7 @@ public final class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadExtras(final JsonObject oldMappings, final JsonObject newMappings, @Nullable final JsonObject diffMappings) {
|
||||
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
|
||||
try {
|
||||
damageTypesRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("damage-types-1.19.4.nbt"));
|
||||
} catch (final IOException e) {
|
||||
|
@ -39,7 +39,7 @@ public final class MappingData extends MappingDataBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void loadExtras(final JsonObject oldMappings, final JsonObject newMappings, @Nullable final JsonObject diffMappings) {
|
||||
protected void loadExtras(final JsonObject unmappedIdentifiers, final JsonObject mappedIdentifiers, @Nullable final JsonObject diffMappings) {
|
||||
try {
|
||||
final ListTag chatTypes = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("chat-types-1.19.nbt")).get("values");
|
||||
for (final Tag chatType : chatTypes) {
|
||||
|
@ -22,6 +22,7 @@ import com.viaversion.viaversion.api.protocol.Protocol;
|
||||
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
|
||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -68,9 +69,9 @@ public class RecipeRewriter<C extends ClientboundPacketType> {
|
||||
protocol.registerClientbound(packetType, wrapper -> {
|
||||
int size = wrapper.passthrough(Type.VAR_INT);
|
||||
for (int i = 0; i < size; i++) {
|
||||
String type = wrapper.passthrough(Type.STRING).replace("minecraft:", "");
|
||||
String type = wrapper.passthrough(Type.STRING);
|
||||
wrapper.passthrough(Type.STRING); // Recipe Identifier
|
||||
handleRecipeType(wrapper, type);
|
||||
handleRecipeType(wrapper, Key.stripMinecraftNamespace(type));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
|
||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import it.unimi.dsi.fastutil.ints.IntArrayList;
|
||||
import it.unimi.dsi.fastutil.ints.IntList;
|
||||
import java.util.ArrayList;
|
||||
@ -176,9 +177,7 @@ public class TagRewriter<C extends ClientboundPacketType> {
|
||||
}
|
||||
|
||||
wrapper.write(Type.STRING, registryKey);
|
||||
if (registryKey.startsWith("minecraft:")) {
|
||||
registryKey = registryKey.substring(10);
|
||||
}
|
||||
registryKey = Key.stripMinecraftNamespace(registryKey);
|
||||
|
||||
RegistryType type = RegistryType.getByKey(registryKey);
|
||||
if (type != null) {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,381 +0,0 @@
|
||||
{
|
||||
"occluding": [
|
||||
"minecraft:stone",
|
||||
"minecraft:granite",
|
||||
"minecraft:polished_granite",
|
||||
"minecraft:diorite",
|
||||
"minecraft:polished_diorite",
|
||||
"minecraft:andesite",
|
||||
"minecraft:polished_andesite",
|
||||
"minecraft:grass_block[snowy=false]",
|
||||
"minecraft:dirt",
|
||||
"minecraft:coarse_dirt",
|
||||
"minecraft:podzol[snowy=false]",
|
||||
"minecraft:cobblestone",
|
||||
"minecraft:oak_planks",
|
||||
"minecraft:spruce_planks",
|
||||
"minecraft:birch_planks",
|
||||
"minecraft:jungle_planks",
|
||||
"minecraft:acacia_planks",
|
||||
"minecraft:dark_oak_planks",
|
||||
"minecraft:bedrock",
|
||||
"minecraft:sand",
|
||||
"minecraft:red_sand",
|
||||
"minecraft:gravel",
|
||||
"minecraft:gold_ore",
|
||||
"minecraft:iron_ore",
|
||||
"minecraft:coal_ore",
|
||||
"minecraft:oak_log[axis=x]",
|
||||
"minecraft:oak_log[axis=y]",
|
||||
"minecraft:oak_log[axis=z]",
|
||||
"minecraft:spruce_log[axis=x]",
|
||||
"minecraft:spruce_log[axis=y]",
|
||||
"minecraft:spruce_log[axis=z]",
|
||||
"minecraft:birch_log[axis=x]",
|
||||
"minecraft:birch_log[axis=y]",
|
||||
"minecraft:birch_log[axis=z]",
|
||||
"minecraft:jungle_log[axis=x]",
|
||||
"minecraft:jungle_log[axis=y]",
|
||||
"minecraft:jungle_log[axis=z]",
|
||||
"minecraft:acacia_log[axis=x]",
|
||||
"minecraft:acacia_log[axis=y]",
|
||||
"minecraft:acacia_log[axis=z]",
|
||||
"minecraft:dark_oak_log[axis=x]",
|
||||
"minecraft:dark_oak_log[axis=y]",
|
||||
"minecraft:dark_oak_log[axis=z]",
|
||||
"minecraft:oak_wood[axis=y]",
|
||||
"minecraft:spruce_wood[axis=y]",
|
||||
"minecraft:birch_wood[axis=y]",
|
||||
"minecraft:jungle_wood[axis=y]",
|
||||
"minecraft:acacia_wood[axis=y]",
|
||||
"minecraft:dark_oak_wood[axis=y]",
|
||||
"minecraft:sponge",
|
||||
"minecraft:wet_sponge",
|
||||
"minecraft:lapis_ore",
|
||||
"minecraft:lapis_block",
|
||||
"minecraft:dispenser[facing=north,triggered=true]",
|
||||
"minecraft:dispenser[facing=north,triggered=false]",
|
||||
"minecraft:dispenser[facing=east,triggered=true]",
|
||||
"minecraft:dispenser[facing=east,triggered=false]",
|
||||
"minecraft:dispenser[facing=south,triggered=true]",
|
||||
"minecraft:dispenser[facing=south,triggered=false]",
|
||||
"minecraft:dispenser[facing=west,triggered=true]",
|
||||
"minecraft:dispenser[facing=west,triggered=false]",
|
||||
"minecraft:dispenser[facing=up,triggered=true]",
|
||||
"minecraft:dispenser[facing=up,triggered=false]",
|
||||
"minecraft:dispenser[facing=down,triggered=true]",
|
||||
"minecraft:dispenser[facing=down,triggered=false]",
|
||||
"minecraft:sandstone",
|
||||
"minecraft:chiseled_sandstone",
|
||||
"minecraft:cut_sandstone",
|
||||
"minecraft:note_block[instrument=harp,note=0,powered=false]",
|
||||
"minecraft:white_wool",
|
||||
"minecraft:orange_wool",
|
||||
"minecraft:magenta_wool",
|
||||
"minecraft:light_blue_wool",
|
||||
"minecraft:yellow_wool",
|
||||
"minecraft:lime_wool",
|
||||
"minecraft:pink_wool",
|
||||
"minecraft:gray_wool",
|
||||
"minecraft:light_gray_wool",
|
||||
"minecraft:cyan_wool",
|
||||
"minecraft:purple_wool",
|
||||
"minecraft:blue_wool",
|
||||
"minecraft:brown_wool",
|
||||
"minecraft:green_wool",
|
||||
"minecraft:red_wool",
|
||||
"minecraft:black_wool",
|
||||
"minecraft:gold_block",
|
||||
"minecraft:iron_block",
|
||||
"minecraft:bricks",
|
||||
"minecraft:bookshelf",
|
||||
"minecraft:mossy_cobblestone",
|
||||
"minecraft:obsidian",
|
||||
"minecraft:spawner",
|
||||
"minecraft:diamond_ore",
|
||||
"minecraft:diamond_block",
|
||||
"minecraft:crafting_table",
|
||||
"minecraft:furnace[facing=north,lit=true]",
|
||||
"minecraft:furnace[facing=north,lit=false]",
|
||||
"minecraft:furnace[facing=south,lit=true]",
|
||||
"minecraft:furnace[facing=south,lit=false]",
|
||||
"minecraft:furnace[facing=west,lit=true]",
|
||||
"minecraft:furnace[facing=west,lit=false]",
|
||||
"minecraft:furnace[facing=east,lit=true]",
|
||||
"minecraft:furnace[facing=east,lit=false]",
|
||||
"minecraft:redstone_ore[lit=true]",
|
||||
"minecraft:redstone_ore[lit=false]",
|
||||
"minecraft:snow_block",
|
||||
"minecraft:clay",
|
||||
"minecraft:jukebox[has_record=true]",
|
||||
"minecraft:jukebox[has_record=false]",
|
||||
"minecraft:netherrack",
|
||||
"minecraft:soul_sand",
|
||||
"minecraft:carved_pumpkin[facing=north]",
|
||||
"minecraft:carved_pumpkin[facing=south]",
|
||||
"minecraft:carved_pumpkin[facing=west]",
|
||||
"minecraft:carved_pumpkin[facing=east]",
|
||||
"minecraft:jack_o_lantern[facing=north]",
|
||||
"minecraft:jack_o_lantern[facing=south]",
|
||||
"minecraft:jack_o_lantern[facing=west]",
|
||||
"minecraft:jack_o_lantern[facing=east]",
|
||||
"minecraft:infested_stone",
|
||||
"minecraft:infested_cobblestone",
|
||||
"minecraft:infested_stone_bricks",
|
||||
"minecraft:infested_mossy_stone_bricks",
|
||||
"minecraft:infested_cracked_stone_bricks",
|
||||
"minecraft:infested_chiseled_stone_bricks",
|
||||
"minecraft:stone_bricks",
|
||||
"minecraft:mossy_stone_bricks",
|
||||
"minecraft:cracked_stone_bricks",
|
||||
"minecraft:chiseled_stone_bricks",
|
||||
"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]",
|
||||
"minecraft:brown_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]",
|
||||
"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"minecraft:red_mushroom_block[down=false,east=true,north=true,south=false,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=true,north=false,south=true,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=true,north=false,south=false,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=true]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=true,south=false,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=true]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=false,south=true,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=true]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=true,west=false]",
|
||||
"minecraft:red_mushroom_block[down=false,east=false,north=false,south=false,up=false,west=false]",
|
||||
"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]",
|
||||
"minecraft:mushroom_stem[down=false,east=true,north=true,south=true,up=false,west=true]",
|
||||
"minecraft:melon",
|
||||
"minecraft:mycelium[snowy=false]",
|
||||
"minecraft:nether_bricks",
|
||||
"minecraft:end_stone",
|
||||
"minecraft:redstone_lamp[lit=true]",
|
||||
"minecraft:redstone_lamp[lit=false]",
|
||||
"minecraft:emerald_ore",
|
||||
"minecraft:emerald_block",
|
||||
"minecraft:command_block[conditional=true,facing=north]",
|
||||
"minecraft:command_block[conditional=true,facing=east]",
|
||||
"minecraft:command_block[conditional=true,facing=south]",
|
||||
"minecraft:command_block[conditional=true,facing=west]",
|
||||
"minecraft:command_block[conditional=true,facing=up]",
|
||||
"minecraft:command_block[conditional=true,facing=down]",
|
||||
"minecraft:command_block[conditional=false,facing=north]",
|
||||
"minecraft:command_block[conditional=false,facing=east]",
|
||||
"minecraft:command_block[conditional=false,facing=south]",
|
||||
"minecraft:command_block[conditional=false,facing=west]",
|
||||
"minecraft:command_block[conditional=false,facing=up]",
|
||||
"minecraft:command_block[conditional=false,facing=down]",
|
||||
"minecraft:nether_quartz_ore",
|
||||
"minecraft:quartz_block",
|
||||
"minecraft:chiseled_quartz_block",
|
||||
"minecraft:quartz_pillar[axis=x]",
|
||||
"minecraft:quartz_pillar[axis=y]",
|
||||
"minecraft:quartz_pillar[axis=z]",
|
||||
"minecraft:dropper[facing=north,triggered=true]",
|
||||
"minecraft:dropper[facing=north,triggered=false]",
|
||||
"minecraft:dropper[facing=east,triggered=true]",
|
||||
"minecraft:dropper[facing=east,triggered=false]",
|
||||
"minecraft:dropper[facing=south,triggered=true]",
|
||||
"minecraft:dropper[facing=south,triggered=false]",
|
||||
"minecraft:dropper[facing=west,triggered=true]",
|
||||
"minecraft:dropper[facing=west,triggered=false]",
|
||||
"minecraft:dropper[facing=up,triggered=true]",
|
||||
"minecraft:dropper[facing=up,triggered=false]",
|
||||
"minecraft:dropper[facing=down,triggered=true]",
|
||||
"minecraft:dropper[facing=down,triggered=false]",
|
||||
"minecraft:white_terracotta",
|
||||
"minecraft:orange_terracotta",
|
||||
"minecraft:magenta_terracotta",
|
||||
"minecraft:light_blue_terracotta",
|
||||
"minecraft:yellow_terracotta",
|
||||
"minecraft:lime_terracotta",
|
||||
"minecraft:pink_terracotta",
|
||||
"minecraft:gray_terracotta",
|
||||
"minecraft:light_gray_terracotta",
|
||||
"minecraft:cyan_terracotta",
|
||||
"minecraft:purple_terracotta",
|
||||
"minecraft:blue_terracotta",
|
||||
"minecraft:brown_terracotta",
|
||||
"minecraft:green_terracotta",
|
||||
"minecraft:red_terracotta",
|
||||
"minecraft:black_terracotta",
|
||||
"minecraft:slime_block",
|
||||
"minecraft:barrier",
|
||||
"minecraft:prismarine",
|
||||
"minecraft:prismarine_bricks",
|
||||
"minecraft:dark_prismarine",
|
||||
"minecraft:hay_block[axis=x]",
|
||||
"minecraft:hay_block[axis=y]",
|
||||
"minecraft:hay_block[axis=z]",
|
||||
"minecraft:terracotta",
|
||||
"minecraft:coal_block",
|
||||
"minecraft:packed_ice",
|
||||
"minecraft:red_sandstone",
|
||||
"minecraft:chiseled_red_sandstone",
|
||||
"minecraft:cut_red_sandstone",
|
||||
"minecraft:oak_slab[type=double,waterlogged=false]",
|
||||
"minecraft:spruce_slab[type=double,waterlogged=false]",
|
||||
"minecraft:birch_slab[type=double,waterlogged=false]",
|
||||
"minecraft:jungle_slab[type=double,waterlogged=false]",
|
||||
"minecraft:acacia_slab[type=double,waterlogged=false]",
|
||||
"minecraft:dark_oak_slab[type=double,waterlogged=false]",
|
||||
"minecraft:stone_slab[type=double,waterlogged=false]",
|
||||
"minecraft:sandstone_slab[type=double,waterlogged=false]",
|
||||
"minecraft:petrified_oak_slab[type=double,waterlogged=false]",
|
||||
"minecraft:cobblestone_slab[type=double,waterlogged=false]",
|
||||
"minecraft:brick_slab[type=double,waterlogged=false]",
|
||||
"minecraft:stone_brick_slab[type=double,waterlogged=false]",
|
||||
"minecraft:nether_brick_slab[type=double,waterlogged=false]",
|
||||
"minecraft:quartz_slab[type=double,waterlogged=false]",
|
||||
"minecraft:red_sandstone_slab[type=double,waterlogged=false]",
|
||||
"minecraft:purpur_slab[type=double,waterlogged=false]",
|
||||
"minecraft:smooth_stone",
|
||||
"minecraft:smooth_sandstone",
|
||||
"minecraft:smooth_quartz",
|
||||
"minecraft:smooth_red_sandstone",
|
||||
"minecraft:purpur_block",
|
||||
"minecraft:purpur_pillar[axis=x]",
|
||||
"minecraft:purpur_pillar[axis=y]",
|
||||
"minecraft:purpur_pillar[axis=z]",
|
||||
"minecraft:end_stone_bricks",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=north]",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=east]",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=south]",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=west]",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=up]",
|
||||
"minecraft:repeating_command_block[conditional=true,facing=down]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=north]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=east]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=south]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=west]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=up]",
|
||||
"minecraft:repeating_command_block[conditional=false,facing=down]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=north]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=east]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=south]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=west]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=up]",
|
||||
"minecraft:chain_command_block[conditional=true,facing=down]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=north]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=east]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=south]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=west]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=up]",
|
||||
"minecraft:chain_command_block[conditional=false,facing=down]",
|
||||
"minecraft:magma_block",
|
||||
"minecraft:nether_wart_block",
|
||||
"minecraft:red_nether_bricks",
|
||||
"minecraft:bone_block[axis=x]",
|
||||
"minecraft:bone_block[axis=y]",
|
||||
"minecraft:bone_block[axis=z]",
|
||||
"minecraft:white_glazed_terracotta[facing=north]",
|
||||
"minecraft:white_glazed_terracotta[facing=south]",
|
||||
"minecraft:white_glazed_terracotta[facing=west]",
|
||||
"minecraft:white_glazed_terracotta[facing=east]",
|
||||
"minecraft:orange_glazed_terracotta[facing=north]",
|
||||
"minecraft:orange_glazed_terracotta[facing=south]",
|
||||
"minecraft:orange_glazed_terracotta[facing=west]",
|
||||
"minecraft:orange_glazed_terracotta[facing=east]",
|
||||
"minecraft:magenta_glazed_terracotta[facing=north]",
|
||||
"minecraft:magenta_glazed_terracotta[facing=south]",
|
||||
"minecraft:magenta_glazed_terracotta[facing=west]",
|
||||
"minecraft:magenta_glazed_terracotta[facing=east]",
|
||||
"minecraft:light_blue_glazed_terracotta[facing=north]",
|
||||
"minecraft:light_blue_glazed_terracotta[facing=south]",
|
||||
"minecraft:light_blue_glazed_terracotta[facing=west]",
|
||||
"minecraft:light_blue_glazed_terracotta[facing=east]",
|
||||
"minecraft:yellow_glazed_terracotta[facing=north]",
|
||||
"minecraft:yellow_glazed_terracotta[facing=south]",
|
||||
"minecraft:yellow_glazed_terracotta[facing=west]",
|
||||
"minecraft:yellow_glazed_terracotta[facing=east]",
|
||||
"minecraft:lime_glazed_terracotta[facing=north]",
|
||||
"minecraft:lime_glazed_terracotta[facing=south]",
|
||||
"minecraft:lime_glazed_terracotta[facing=west]",
|
||||
"minecraft:lime_glazed_terracotta[facing=east]",
|
||||
"minecraft:pink_glazed_terracotta[facing=north]",
|
||||
"minecraft:pink_glazed_terracotta[facing=south]",
|
||||
"minecraft:pink_glazed_terracotta[facing=west]",
|
||||
"minecraft:pink_glazed_terracotta[facing=east]",
|
||||
"minecraft:gray_glazed_terracotta[facing=north]",
|
||||
"minecraft:gray_glazed_terracotta[facing=south]",
|
||||
"minecraft:gray_glazed_terracotta[facing=west]",
|
||||
"minecraft:gray_glazed_terracotta[facing=east]",
|
||||
"minecraft:light_gray_glazed_terracotta[facing=north]",
|
||||
"minecraft:light_gray_glazed_terracotta[facing=south]",
|
||||
"minecraft:light_gray_glazed_terracotta[facing=west]",
|
||||
"minecraft:light_gray_glazed_terracotta[facing=east]",
|
||||
"minecraft:cyan_glazed_terracotta[facing=north]",
|
||||
"minecraft:cyan_glazed_terracotta[facing=south]",
|
||||
"minecraft:cyan_glazed_terracotta[facing=west]",
|
||||
"minecraft:cyan_glazed_terracotta[facing=east]",
|
||||
"minecraft:purple_glazed_terracotta[facing=north]",
|
||||
"minecraft:purple_glazed_terracotta[facing=south]",
|
||||
"minecraft:purple_glazed_terracotta[facing=west]",
|
||||
"minecraft:purple_glazed_terracotta[facing=east]",
|
||||
"minecraft:blue_glazed_terracotta[facing=north]",
|
||||
"minecraft:blue_glazed_terracotta[facing=south]",
|
||||
"minecraft:blue_glazed_terracotta[facing=west]",
|
||||
"minecraft:blue_glazed_terracotta[facing=east]",
|
||||
"minecraft:brown_glazed_terracotta[facing=north]",
|
||||
"minecraft:brown_glazed_terracotta[facing=south]",
|
||||
"minecraft:brown_glazed_terracotta[facing=west]",
|
||||
"minecraft:brown_glazed_terracotta[facing=east]",
|
||||
"minecraft:green_glazed_terracotta[facing=north]",
|
||||
"minecraft:green_glazed_terracotta[facing=south]",
|
||||
"minecraft:green_glazed_terracotta[facing=west]",
|
||||
"minecraft:green_glazed_terracotta[facing=east]",
|
||||
"minecraft:red_glazed_terracotta[facing=north]",
|
||||
"minecraft:red_glazed_terracotta[facing=south]",
|
||||
"minecraft:red_glazed_terracotta[facing=west]",
|
||||
"minecraft:red_glazed_terracotta[facing=east]",
|
||||
"minecraft:black_glazed_terracotta[facing=north]",
|
||||
"minecraft:black_glazed_terracotta[facing=south]",
|
||||
"minecraft:black_glazed_terracotta[facing=west]",
|
||||
"minecraft:black_glazed_terracotta[facing=east]",
|
||||
"minecraft:white_concrete",
|
||||
"minecraft:orange_concrete",
|
||||
"minecraft:magenta_concrete",
|
||||
"minecraft:light_blue_concrete",
|
||||
"minecraft:yellow_concrete",
|
||||
"minecraft:lime_concrete",
|
||||
"minecraft:pink_concrete",
|
||||
"minecraft:gray_concrete",
|
||||
"minecraft:light_gray_concrete",
|
||||
"minecraft:cyan_concrete",
|
||||
"minecraft:purple_concrete",
|
||||
"minecraft:blue_concrete",
|
||||
"minecraft:brown_concrete",
|
||||
"minecraft:green_concrete",
|
||||
"minecraft:red_concrete",
|
||||
"minecraft:black_concrete",
|
||||
"minecraft:white_concrete_powder",
|
||||
"minecraft:orange_concrete_powder",
|
||||
"minecraft:magenta_concrete_powder",
|
||||
"minecraft:light_blue_concrete_powder",
|
||||
"minecraft:yellow_concrete_powder",
|
||||
"minecraft:lime_concrete_powder",
|
||||
"minecraft:pink_concrete_powder",
|
||||
"minecraft:gray_concrete_powder",
|
||||
"minecraft:light_gray_concrete_powder",
|
||||
"minecraft:cyan_concrete_powder",
|
||||
"minecraft:purple_concrete_powder",
|
||||
"minecraft:blue_concrete_powder",
|
||||
"minecraft:brown_concrete_powder",
|
||||
"minecraft:green_concrete_powder",
|
||||
"minecraft:red_concrete_powder",
|
||||
"minecraft:black_concrete_powder",
|
||||
"minecraft:structure_block[mode=save]",
|
||||
"minecraft:structure_block[mode=load]",
|
||||
"minecraft:structure_block[mode=corner]",
|
||||
"minecraft:structure_block[mode=data]",
|
||||
"minecraft:glowstone"
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -21290,7 +21290,7 @@
|
||||
]
|
||||
]
|
||||
},
|
||||
"minecraft:baked_potato": {
|
||||
"baked_potato": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21306,15 +21306,15 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:banner_duplicate": {
|
||||
"banner_duplicate": {
|
||||
"type": "crafting_special_bannerduplicate",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:banner_add_pattern": {
|
||||
"banner_add_pattern": {
|
||||
"type": "crafting_special_banneraddpattern",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:quartz": {
|
||||
"quartz": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21330,7 +21330,7 @@
|
||||
"experience": 0.2,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:sponge": {
|
||||
"sponge": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21346,7 +21346,7 @@
|
||||
"experience": 0.15,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:iron_ingot": {
|
||||
"iron_ingot": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21362,11 +21362,11 @@
|
||||
"experience": 0.7,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:tipped_arrow": {
|
||||
"tipped_arrow": {
|
||||
"type": "crafting_special_tippedarrow",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:gold_ingot": {
|
||||
"gold_ingot": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21382,7 +21382,7 @@
|
||||
"experience": 1.0,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:glass": {
|
||||
"glass": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21402,7 +21402,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:stone": {
|
||||
"stone": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21418,7 +21418,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:white_glazed_terracotta": {
|
||||
"white_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21434,7 +21434,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:diamond_from_smelting": {
|
||||
"diamond_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21450,7 +21450,7 @@
|
||||
"experience": 1.0,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:lapis_from_smelting": {
|
||||
"lapis_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21466,7 +21466,7 @@
|
||||
"experience": 0.2,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:emerald_from_smelting": {
|
||||
"emerald_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21482,7 +21482,7 @@
|
||||
"experience": 1.0,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cooked_porkchop": {
|
||||
"cooked_porkchop": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21498,11 +21498,11 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:book_cloning": {
|
||||
"book_cloning": {
|
||||
"type": "crafting_special_bookcloning",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:pink_glazed_terracotta": {
|
||||
"pink_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21518,7 +21518,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:orange_glazed_terracotta": {
|
||||
"orange_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21534,7 +21534,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:yellow_glazed_terracotta": {
|
||||
"yellow_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21550,7 +21550,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:iron_nugget_from_smelting": {
|
||||
"iron_nugget_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21618,7 +21618,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:dried_kelp_from_smelting": {
|
||||
"dried_kelp_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21634,7 +21634,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:redstone_from_smelting": {
|
||||
"redstone_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21650,7 +21650,7 @@
|
||||
"experience": 0.7,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cooked_salmon": {
|
||||
"cooked_salmon": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21666,11 +21666,11 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:map_extending": {
|
||||
"map_extending": {
|
||||
"type": "crafting_special_mapextending",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:green_glazed_terracotta": {
|
||||
"green_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21686,7 +21686,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:lime_glazed_terracotta": {
|
||||
"lime_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21702,7 +21702,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:popped_chorus_fruit": {
|
||||
"popped_chorus_fruit": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21718,7 +21718,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cactus_green": {
|
||||
"cactus_green": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21734,7 +21734,7 @@
|
||||
"experience": 1.0,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cooked_cod": {
|
||||
"cooked_cod": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21750,7 +21750,7 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:magenta_glazed_terracotta": {
|
||||
"magenta_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21766,7 +21766,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:nether_brick": {
|
||||
"nether_brick": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21782,7 +21782,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:light_gray_glazed_terracotta": {
|
||||
"light_gray_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21798,7 +21798,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:blue_glazed_terracotta": {
|
||||
"blue_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21814,7 +21814,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cooked_mutton": {
|
||||
"cooked_mutton": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21830,7 +21830,7 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:brown_glazed_terracotta": {
|
||||
"brown_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21846,11 +21846,11 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:map_cloning": {
|
||||
"map_cloning": {
|
||||
"type": "crafting_special_mapcloning",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:cracked_stone_bricks": {
|
||||
"cracked_stone_bricks": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21866,7 +21866,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:charcoal": {
|
||||
"charcoal": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21974,7 +21974,7 @@
|
||||
"experience": 0.15,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:black_glazed_terracotta": {
|
||||
"black_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -21990,7 +21990,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:purple_glazed_terracotta": {
|
||||
"purple_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22006,7 +22006,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:coal_from_smelting": {
|
||||
"coal_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22022,7 +22022,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:gray_glazed_terracotta": {
|
||||
"gray_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22038,7 +22038,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:red_glazed_terracotta": {
|
||||
"red_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22054,7 +22054,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:brick": {
|
||||
"brick": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22070,7 +22070,7 @@
|
||||
"experience": 0.3,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:light_blue_glazed_terracotta": {
|
||||
"light_blue_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22086,11 +22086,11 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:firework_rocket": {
|
||||
"firework_rocket": {
|
||||
"type": "crafting_special_firework_rocket",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:gold_nugget_from_smelting": {
|
||||
"gold_nugget_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22142,7 +22142,7 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:terracotta": {
|
||||
"terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22158,7 +22158,7 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:lime_dye_from_smelting": {
|
||||
"lime_dye_from_smelting": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22174,15 +22174,15 @@
|
||||
"experience": 0.1,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:firework_star_fade": {
|
||||
"firework_star_fade": {
|
||||
"type": "crafting_special_firework_star_fade",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:shulker_box_coloring": {
|
||||
"shulker_box_coloring": {
|
||||
"type": "crafting_special_shulkerboxcoloring",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:cooked_chicken": {
|
||||
"cooked_chicken": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22198,15 +22198,15 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:shield_decoration": {
|
||||
"shield_decoration": {
|
||||
"type": "crafting_special_shielddecoration",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:armor_dye": {
|
||||
"armor_dye": {
|
||||
"type": "crafting_special_armordye",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:cooked_rabbit": {
|
||||
"cooked_rabbit": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22222,15 +22222,15 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:firework_star": {
|
||||
"firework_star": {
|
||||
"type": "crafting_special_firework_star",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:repair_item": {
|
||||
"repair_item": {
|
||||
"type": "crafting_special_repairitem",
|
||||
"group": ""
|
||||
},
|
||||
"minecraft:cooked_beef": {
|
||||
"cooked_beef": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
@ -22246,7 +22246,7 @@
|
||||
"experience": 0.35,
|
||||
"cookingTime": 200
|
||||
},
|
||||
"minecraft:cyan_glazed_terracotta": {
|
||||
"cyan_glazed_terracotta": {
|
||||
"type": "smelting",
|
||||
"group": "",
|
||||
"ingredient": [
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,64 +1,64 @@
|
||||
{
|
||||
"blockstates": {
|
||||
"1126": "minecraft:tnt[unstable=false]",
|
||||
"3075": "minecraft:oak_sign[rotation=0,waterlogged=true]",
|
||||
"3076": "minecraft:oak_sign[rotation=0,waterlogged=false]",
|
||||
"3077": "minecraft:oak_sign[rotation=1,waterlogged=true]",
|
||||
"3078": "minecraft:oak_sign[rotation=1,waterlogged=false]",
|
||||
"3079": "minecraft:oak_sign[rotation=2,waterlogged=true]",
|
||||
"3080": "minecraft:oak_sign[rotation=2,waterlogged=false]",
|
||||
"3081": "minecraft:oak_sign[rotation=3,waterlogged=true]",
|
||||
"3082": "minecraft:oak_sign[rotation=3,waterlogged=false]",
|
||||
"3083": "minecraft:oak_sign[rotation=4,waterlogged=true]",
|
||||
"3084": "minecraft:oak_sign[rotation=4,waterlogged=false]",
|
||||
"3085": "minecraft:oak_sign[rotation=5,waterlogged=true]",
|
||||
"3086": "minecraft:oak_sign[rotation=5,waterlogged=false]",
|
||||
"3087": "minecraft:oak_sign[rotation=6,waterlogged=true]",
|
||||
"3088": "minecraft:oak_sign[rotation=6,waterlogged=false]",
|
||||
"3089": "minecraft:oak_sign[rotation=7,waterlogged=true]",
|
||||
"3090": "minecraft:oak_sign[rotation=7,waterlogged=false]",
|
||||
"3091": "minecraft:oak_sign[rotation=8,waterlogged=true]",
|
||||
"3092": "minecraft:oak_sign[rotation=8,waterlogged=false]",
|
||||
"3093": "minecraft:oak_sign[rotation=9,waterlogged=true]",
|
||||
"3094": "minecraft:oak_sign[rotation=9,waterlogged=false]",
|
||||
"3095": "minecraft:oak_sign[rotation=10,waterlogged=true]",
|
||||
"3096": "minecraft:oak_sign[rotation=10,waterlogged=false]",
|
||||
"3097": "minecraft:oak_sign[rotation=11,waterlogged=true]",
|
||||
"3098": "minecraft:oak_sign[rotation=11,waterlogged=false]",
|
||||
"3099": "minecraft:oak_sign[rotation=12,waterlogged=true]",
|
||||
"3100": "minecraft:oak_sign[rotation=12,waterlogged=false]",
|
||||
"3101": "minecraft:oak_sign[rotation=13,waterlogged=true]",
|
||||
"3102": "minecraft:oak_sign[rotation=13,waterlogged=false]",
|
||||
"3103": "minecraft:oak_sign[rotation=14,waterlogged=true]",
|
||||
"3104": "minecraft:oak_sign[rotation=14,waterlogged=false]",
|
||||
"3105": "minecraft:oak_sign[rotation=15,waterlogged=true]",
|
||||
"3106": "minecraft:oak_sign[rotation=15,waterlogged=false]",
|
||||
"3269": "minecraft:oak_wall_sign[facing=north,waterlogged=true]",
|
||||
"3270": "minecraft:oak_wall_sign[facing=north,waterlogged=false]",
|
||||
"3271": "minecraft:oak_wall_sign[facing=south,waterlogged=true]",
|
||||
"3272": "minecraft:oak_wall_sign[facing=south,waterlogged=false]",
|
||||
"3273": "minecraft:oak_wall_sign[facing=west,waterlogged=true]",
|
||||
"3274": "minecraft:oak_wall_sign[facing=west,waterlogged=false]",
|
||||
"3275": "minecraft:oak_wall_sign[facing=east,waterlogged=true]",
|
||||
"3276": "minecraft:oak_wall_sign[facing=east,waterlogged=false]",
|
||||
"7293": "minecraft:smooth_stone_slab[type=top,waterlogged=true]",
|
||||
"7294": "minecraft:smooth_stone_slab[type=top,waterlogged=false]",
|
||||
"7295": "minecraft:smooth_stone_slab[type=bottom,waterlogged=true]",
|
||||
"7296": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]",
|
||||
"7297": "minecraft:smooth_stone_slab[type=double,waterlogged=true]",
|
||||
"7298": "minecraft:smooth_stone_slab[type=double,waterlogged=false]",
|
||||
"8459": "minecraft:tube_coral[waterlogged=true]",
|
||||
"8460": "minecraft:brain_coral[waterlogged=true]",
|
||||
"8461": "minecraft:bubble_coral[waterlogged=true]",
|
||||
"8462": "minecraft:fire_coral[waterlogged=true]",
|
||||
"8463": "minecraft:horn_coral[waterlogged=true]",
|
||||
"8573": "minecraft:conduit[waterlogged=true]"
|
||||
"1126": "tnt[unstable=false]",
|
||||
"3075": "oak_sign[rotation=0,waterlogged=true]",
|
||||
"3076": "oak_sign[rotation=0,waterlogged=false]",
|
||||
"3077": "oak_sign[rotation=1,waterlogged=true]",
|
||||
"3078": "oak_sign[rotation=1,waterlogged=false]",
|
||||
"3079": "oak_sign[rotation=2,waterlogged=true]",
|
||||
"3080": "oak_sign[rotation=2,waterlogged=false]",
|
||||
"3081": "oak_sign[rotation=3,waterlogged=true]",
|
||||
"3082": "oak_sign[rotation=3,waterlogged=false]",
|
||||
"3083": "oak_sign[rotation=4,waterlogged=true]",
|
||||
"3084": "oak_sign[rotation=4,waterlogged=false]",
|
||||
"3085": "oak_sign[rotation=5,waterlogged=true]",
|
||||
"3086": "oak_sign[rotation=5,waterlogged=false]",
|
||||
"3087": "oak_sign[rotation=6,waterlogged=true]",
|
||||
"3088": "oak_sign[rotation=6,waterlogged=false]",
|
||||
"3089": "oak_sign[rotation=7,waterlogged=true]",
|
||||
"3090": "oak_sign[rotation=7,waterlogged=false]",
|
||||
"3091": "oak_sign[rotation=8,waterlogged=true]",
|
||||
"3092": "oak_sign[rotation=8,waterlogged=false]",
|
||||
"3093": "oak_sign[rotation=9,waterlogged=true]",
|
||||
"3094": "oak_sign[rotation=9,waterlogged=false]",
|
||||
"3095": "oak_sign[rotation=10,waterlogged=true]",
|
||||
"3096": "oak_sign[rotation=10,waterlogged=false]",
|
||||
"3097": "oak_sign[rotation=11,waterlogged=true]",
|
||||
"3098": "oak_sign[rotation=11,waterlogged=false]",
|
||||
"3099": "oak_sign[rotation=12,waterlogged=true]",
|
||||
"3100": "oak_sign[rotation=12,waterlogged=false]",
|
||||
"3101": "oak_sign[rotation=13,waterlogged=true]",
|
||||
"3102": "oak_sign[rotation=13,waterlogged=false]",
|
||||
"3103": "oak_sign[rotation=14,waterlogged=true]",
|
||||
"3104": "oak_sign[rotation=14,waterlogged=false]",
|
||||
"3105": "oak_sign[rotation=15,waterlogged=true]",
|
||||
"3106": "oak_sign[rotation=15,waterlogged=false]",
|
||||
"3269": "oak_wall_sign[facing=north,waterlogged=true]",
|
||||
"3270": "oak_wall_sign[facing=north,waterlogged=false]",
|
||||
"3271": "oak_wall_sign[facing=south,waterlogged=true]",
|
||||
"3272": "oak_wall_sign[facing=south,waterlogged=false]",
|
||||
"3273": "oak_wall_sign[facing=west,waterlogged=true]",
|
||||
"3274": "oak_wall_sign[facing=west,waterlogged=false]",
|
||||
"3275": "oak_wall_sign[facing=east,waterlogged=true]",
|
||||
"3276": "oak_wall_sign[facing=east,waterlogged=false]",
|
||||
"7293": "smooth_stone_slab[type=top,waterlogged=true]",
|
||||
"7294": "smooth_stone_slab[type=top,waterlogged=false]",
|
||||
"7295": "smooth_stone_slab[type=bottom,waterlogged=true]",
|
||||
"7296": "smooth_stone_slab[type=bottom,waterlogged=false]",
|
||||
"7297": "smooth_stone_slab[type=double,waterlogged=true]",
|
||||
"7298": "smooth_stone_slab[type=double,waterlogged=false]",
|
||||
"8459": "tube_coral[waterlogged=true]",
|
||||
"8460": "brain_coral[waterlogged=true]",
|
||||
"8461": "bubble_coral[waterlogged=true]",
|
||||
"8462": "fire_coral[waterlogged=true]",
|
||||
"8463": "horn_coral[waterlogged=true]",
|
||||
"8573": "conduit[waterlogged=true]"
|
||||
},
|
||||
"items": {
|
||||
"118": "minecraft:smooth_stone_slab",
|
||||
"536": "minecraft:oak_sign",
|
||||
"573": "minecraft:red_dye",
|
||||
"574": "minecraft:green_dye",
|
||||
"583": "minecraft:yellow_dye"
|
||||
"118": "smooth_stone_slab",
|
||||
"536": "oak_sign",
|
||||
"573": "red_dye",
|
||||
"574": "green_dye",
|
||||
"583": "yellow_dye"
|
||||
}
|
||||
}
|
@ -1,20 +1,20 @@
|
||||
{
|
||||
"blockstates": {
|
||||
"11198": "minecraft:bell[attachment=floor,facing=north,powered=false]",
|
||||
"11199": "minecraft:bell[attachment=floor,facing=south,powered=false]",
|
||||
"11200": "minecraft:bell[attachment=floor,facing=west,powered=false]",
|
||||
"11201": "minecraft:bell[attachment=floor,facing=east,powered=false]",
|
||||
"11202": "minecraft:bell[attachment=ceiling,facing=north,powered=false]",
|
||||
"11203": "minecraft:bell[attachment=ceiling,facing=south,powered=false]",
|
||||
"11204": "minecraft:bell[attachment=ceiling,facing=west,powered=false]",
|
||||
"11205": "minecraft:bell[attachment=ceiling,facing=east,powered=false]",
|
||||
"11206": "minecraft:bell[attachment=single_wall,facing=north,powered=false]",
|
||||
"11207": "minecraft:bell[attachment=single_wall,facing=south,powered=false]",
|
||||
"11208": "minecraft:bell[attachment=single_wall,facing=west,powered=false]",
|
||||
"11209": "minecraft:bell[attachment=single_wall,facing=east,powered=false]",
|
||||
"11210": "minecraft:bell[attachment=double_wall,facing=north,powered=false]",
|
||||
"11211": "minecraft:bell[attachment=double_wall,facing=south,powered=false]",
|
||||
"11212": "minecraft:bell[attachment=double_wall,facing=west,powered=false]",
|
||||
"11213": "minecraft:bell[attachment=double_wall,facing=east,powered=false]"
|
||||
"11198": "bell[attachment=floor,facing=north,powered=false]",
|
||||
"11199": "bell[attachment=floor,facing=south,powered=false]",
|
||||
"11200": "bell[attachment=floor,facing=west,powered=false]",
|
||||
"11201": "bell[attachment=floor,facing=east,powered=false]",
|
||||
"11202": "bell[attachment=ceiling,facing=north,powered=false]",
|
||||
"11203": "bell[attachment=ceiling,facing=south,powered=false]",
|
||||
"11204": "bell[attachment=ceiling,facing=west,powered=false]",
|
||||
"11205": "bell[attachment=ceiling,facing=east,powered=false]",
|
||||
"11206": "bell[attachment=single_wall,facing=north,powered=false]",
|
||||
"11207": "bell[attachment=single_wall,facing=south,powered=false]",
|
||||
"11208": "bell[attachment=single_wall,facing=west,powered=false]",
|
||||
"11209": "bell[attachment=single_wall,facing=east,powered=false]",
|
||||
"11210": "bell[attachment=double_wall,facing=north,powered=false]",
|
||||
"11211": "bell[attachment=double_wall,facing=south,powered=false]",
|
||||
"11212": "bell[attachment=double_wall,facing=west,powered=false]",
|
||||
"11213": "bell[attachment=double_wall,facing=east,powered=false]"
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
{
|
||||
"blockstates": {
|
||||
"4729": "minecraft:chain[axis=y,waterlogged=true]",
|
||||
"4730": "minecraft:chain[axis=y,waterlogged=false]",
|
||||
"14886": "minecraft:lantern[hanging=true,waterlogged=false]",
|
||||
"14887": "minecraft:lantern[hanging=false,waterlogged=false]",
|
||||
"14888": "minecraft:soul_lantern[hanging=true,waterlogged=false]",
|
||||
"14889": "minecraft:soul_lantern[hanging=false,waterlogged=false]"
|
||||
"4729": "chain[axis=y,waterlogged=true]",
|
||||
"4730": "chain[axis=y,waterlogged=false]",
|
||||
"14886": "lantern[hanging=true,waterlogged=false]",
|
||||
"14887": "lantern[hanging=false,waterlogged=false]",
|
||||
"14888": "soul_lantern[hanging=true,waterlogged=false]",
|
||||
"14889": "soul_lantern[hanging=false,waterlogged=false]"
|
||||
}
|
||||
}
|
@ -1,200 +1,200 @@
|
||||
{
|
||||
"blockstates": {
|
||||
"148": "minecraft:oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"149": "minecraft:oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"150": "minecraft:oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"151": "minecraft:oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"152": "minecraft:oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"153": "minecraft:oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"154": "minecraft:oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"155": "minecraft:oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"156": "minecraft:oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"157": "minecraft:oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"158": "minecraft:oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"159": "minecraft:oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"160": "minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"161": "minecraft:oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"162": "minecraft:spruce_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"163": "minecraft:spruce_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"164": "minecraft:spruce_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"165": "minecraft:spruce_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"166": "minecraft:spruce_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"167": "minecraft:spruce_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"168": "minecraft:spruce_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"169": "minecraft:spruce_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"170": "minecraft:spruce_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"171": "minecraft:spruce_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"172": "minecraft:spruce_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"173": "minecraft:spruce_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"174": "minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"175": "minecraft:spruce_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"176": "minecraft:birch_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"177": "minecraft:birch_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"178": "minecraft:birch_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"179": "minecraft:birch_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"180": "minecraft:birch_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"181": "minecraft:birch_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"182": "minecraft:birch_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"183": "minecraft:birch_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"184": "minecraft:birch_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"185": "minecraft:birch_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"186": "minecraft:birch_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"187": "minecraft:birch_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"188": "minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"189": "minecraft:birch_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"190": "minecraft:jungle_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"191": "minecraft:jungle_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"192": "minecraft:jungle_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"193": "minecraft:jungle_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"194": "minecraft:jungle_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"195": "minecraft:jungle_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"196": "minecraft:jungle_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"197": "minecraft:jungle_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"198": "minecraft:jungle_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"199": "minecraft:jungle_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"200": "minecraft:jungle_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"201": "minecraft:jungle_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"202": "minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"203": "minecraft:jungle_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"204": "minecraft:acacia_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"205": "minecraft:acacia_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"206": "minecraft:acacia_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"207": "minecraft:acacia_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"208": "minecraft:acacia_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"209": "minecraft:acacia_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"210": "minecraft:acacia_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"211": "minecraft:acacia_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"212": "minecraft:acacia_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"213": "minecraft:acacia_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"214": "minecraft:acacia_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"215": "minecraft:acacia_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"216": "minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"217": "minecraft:acacia_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"218": "minecraft:dark_oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"219": "minecraft:dark_oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"220": "minecraft:dark_oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"221": "minecraft:dark_oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"222": "minecraft:dark_oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"223": "minecraft:dark_oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"224": "minecraft:dark_oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"225": "minecraft:dark_oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"226": "minecraft:dark_oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"227": "minecraft:dark_oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"228": "minecraft:dark_oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"229": "minecraft:dark_oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"230": "minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"231": "minecraft:dark_oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"232": "minecraft:azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"233": "minecraft:azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"234": "minecraft:azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"235": "minecraft:azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"236": "minecraft:azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"237": "minecraft:azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"238": "minecraft:azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"239": "minecraft:azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"240": "minecraft:azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"241": "minecraft:azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"242": "minecraft:azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"243": "minecraft:azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"244": "minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"245": "minecraft:azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"246": "minecraft:flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"247": "minecraft:flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"248": "minecraft:flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"249": "minecraft:flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"250": "minecraft:flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"251": "minecraft:flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"252": "minecraft:flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"253": "minecraft:flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"254": "minecraft:flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"255": "minecraft:flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"256": "minecraft:flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"257": "minecraft:flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"258": "minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"259": "minecraft:flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"1416": "minecraft:piston_head[type=normal,facing=north,short=true]",
|
||||
"1417": "minecraft:piston_head[type=sticky,facing=north,short=true]",
|
||||
"1418": "minecraft:piston_head[type=normal,facing=north,short=false]",
|
||||
"1419": "minecraft:piston_head[type=sticky,facing=north,short=false]",
|
||||
"1420": "minecraft:piston_head[type=normal,facing=east,short=true]",
|
||||
"1421": "minecraft:piston_head[type=sticky,facing=east,short=true]",
|
||||
"1422": "minecraft:piston_head[type=normal,facing=east,short=false]",
|
||||
"1423": "minecraft:piston_head[type=sticky,facing=east,short=false]",
|
||||
"1424": "minecraft:piston_head[type=normal,facing=south,short=true]",
|
||||
"1425": "minecraft:piston_head[type=sticky,facing=south,short=true]",
|
||||
"1426": "minecraft:piston_head[type=normal,facing=south,short=false]",
|
||||
"1427": "minecraft:piston_head[type=sticky,facing=south,short=false]",
|
||||
"1428": "minecraft:piston_head[type=normal,facing=west,short=true]",
|
||||
"1429": "minecraft:piston_head[type=sticky,facing=west,short=true]",
|
||||
"1430": "minecraft:piston_head[type=normal,facing=west,short=false]",
|
||||
"1431": "minecraft:piston_head[type=sticky,facing=west,short=false]",
|
||||
"1432": "minecraft:piston_head[type=normal,facing=up,short=true]",
|
||||
"1433": "minecraft:piston_head[type=sticky,facing=up,short=true]",
|
||||
"1434": "minecraft:piston_head[type=normal,facing=up,short=false]",
|
||||
"1435": "minecraft:piston_head[type=sticky,facing=up,short=false]",
|
||||
"1436": "minecraft:piston_head[type=normal,facing=down,short=true]",
|
||||
"1437": "minecraft:piston_head[type=sticky,facing=down,short=true]",
|
||||
"1438": "minecraft:piston_head[type=normal,facing=down,short=false]",
|
||||
"1439": "minecraft:piston_head[type=sticky,facing=down,short=false]",
|
||||
"1456": "minecraft:moving_piston[type=normal,facing=north]",
|
||||
"1457": "minecraft:moving_piston[type=sticky,facing=north]",
|
||||
"1458": "minecraft:moving_piston[type=normal,facing=east]",
|
||||
"1459": "minecraft:moving_piston[type=sticky,facing=east]",
|
||||
"1460": "minecraft:moving_piston[type=normal,facing=south]",
|
||||
"1461": "minecraft:moving_piston[type=sticky,facing=south]",
|
||||
"1462": "minecraft:moving_piston[type=normal,facing=west]",
|
||||
"1463": "minecraft:moving_piston[type=sticky,facing=west]",
|
||||
"1464": "minecraft:moving_piston[type=normal,facing=up]",
|
||||
"1465": "minecraft:moving_piston[type=sticky,facing=up]",
|
||||
"1466": "minecraft:moving_piston[type=normal,facing=down]",
|
||||
"1467": "minecraft:moving_piston[type=sticky,facing=down]",
|
||||
"2090": "minecraft:chest[type=single,facing=north,waterlogged=true]",
|
||||
"2091": "minecraft:chest[type=single,facing=north,waterlogged=false]",
|
||||
"2092": "minecraft:chest[type=left,facing=north,waterlogged=true]",
|
||||
"2093": "minecraft:chest[type=left,facing=north,waterlogged=false]",
|
||||
"2094": "minecraft:chest[type=right,facing=north,waterlogged=true]",
|
||||
"2095": "minecraft:chest[type=right,facing=north,waterlogged=false]",
|
||||
"2096": "minecraft:chest[type=single,facing=south,waterlogged=true]",
|
||||
"2097": "minecraft:chest[type=single,facing=south,waterlogged=false]",
|
||||
"2098": "minecraft:chest[type=left,facing=south,waterlogged=true]",
|
||||
"2099": "minecraft:chest[type=left,facing=south,waterlogged=false]",
|
||||
"2100": "minecraft:chest[type=right,facing=south,waterlogged=true]",
|
||||
"2101": "minecraft:chest[type=right,facing=south,waterlogged=false]",
|
||||
"2102": "minecraft:chest[type=single,facing=west,waterlogged=true]",
|
||||
"2103": "minecraft:chest[type=single,facing=west,waterlogged=false]",
|
||||
"2104": "minecraft:chest[type=left,facing=west,waterlogged=true]",
|
||||
"2105": "minecraft:chest[type=left,facing=west,waterlogged=false]",
|
||||
"2106": "minecraft:chest[type=right,facing=west,waterlogged=true]",
|
||||
"2107": "minecraft:chest[type=right,facing=west,waterlogged=false]",
|
||||
"2108": "minecraft:chest[type=single,facing=east,waterlogged=true]",
|
||||
"2109": "minecraft:chest[type=single,facing=east,waterlogged=false]",
|
||||
"2110": "minecraft:chest[type=left,facing=east,waterlogged=true]",
|
||||
"2111": "minecraft:chest[type=left,facing=east,waterlogged=false]",
|
||||
"2112": "minecraft:chest[type=right,facing=east,waterlogged=true]",
|
||||
"2113": "minecraft:chest[type=right,facing=east,waterlogged=false]",
|
||||
"6828": "minecraft:trapped_chest[type=single,facing=north,waterlogged=true]",
|
||||
"6829": "minecraft:trapped_chest[type=single,facing=north,waterlogged=false]",
|
||||
"6830": "minecraft:trapped_chest[type=left,facing=north,waterlogged=true]",
|
||||
"6831": "minecraft:trapped_chest[type=left,facing=north,waterlogged=false]",
|
||||
"6832": "minecraft:trapped_chest[type=right,facing=north,waterlogged=true]",
|
||||
"6833": "minecraft:trapped_chest[type=right,facing=north,waterlogged=false]",
|
||||
"6834": "minecraft:trapped_chest[type=single,facing=south,waterlogged=true]",
|
||||
"6835": "minecraft:trapped_chest[type=single,facing=south,waterlogged=false]",
|
||||
"6836": "minecraft:trapped_chest[type=left,facing=south,waterlogged=true]",
|
||||
"6837": "minecraft:trapped_chest[type=left,facing=south,waterlogged=false]",
|
||||
"6838": "minecraft:trapped_chest[type=right,facing=south,waterlogged=true]",
|
||||
"6839": "minecraft:trapped_chest[type=right,facing=south,waterlogged=false]",
|
||||
"6840": "minecraft:trapped_chest[type=single,facing=west,waterlogged=true]",
|
||||
"6841": "minecraft:trapped_chest[type=single,facing=west,waterlogged=false]",
|
||||
"6842": "minecraft:trapped_chest[type=left,facing=west,waterlogged=true]",
|
||||
"6843": "minecraft:trapped_chest[type=left,facing=west,waterlogged=false]",
|
||||
"6844": "minecraft:trapped_chest[type=right,facing=west,waterlogged=true]",
|
||||
"6845": "minecraft:trapped_chest[type=right,facing=west,waterlogged=false]",
|
||||
"6846": "minecraft:trapped_chest[type=single,facing=east,waterlogged=true]",
|
||||
"6847": "minecraft:trapped_chest[type=single,facing=east,waterlogged=false]",
|
||||
"6848": "minecraft:trapped_chest[type=left,facing=east,waterlogged=true]",
|
||||
"6849": "minecraft:trapped_chest[type=left,facing=east,waterlogged=false]",
|
||||
"6850": "minecraft:trapped_chest[type=right,facing=east,waterlogged=true]",
|
||||
"6851": "minecraft:trapped_chest[type=right,facing=east,waterlogged=false]"
|
||||
"148": "oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"149": "oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"150": "oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"151": "oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"152": "oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"153": "oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"154": "oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"155": "oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"156": "oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"157": "oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"158": "oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"159": "oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"160": "oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"161": "oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"162": "spruce_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"163": "spruce_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"164": "spruce_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"165": "spruce_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"166": "spruce_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"167": "spruce_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"168": "spruce_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"169": "spruce_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"170": "spruce_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"171": "spruce_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"172": "spruce_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"173": "spruce_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"174": "spruce_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"175": "spruce_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"176": "birch_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"177": "birch_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"178": "birch_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"179": "birch_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"180": "birch_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"181": "birch_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"182": "birch_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"183": "birch_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"184": "birch_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"185": "birch_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"186": "birch_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"187": "birch_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"188": "birch_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"189": "birch_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"190": "jungle_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"191": "jungle_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"192": "jungle_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"193": "jungle_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"194": "jungle_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"195": "jungle_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"196": "jungle_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"197": "jungle_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"198": "jungle_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"199": "jungle_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"200": "jungle_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"201": "jungle_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"202": "jungle_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"203": "jungle_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"204": "acacia_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"205": "acacia_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"206": "acacia_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"207": "acacia_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"208": "acacia_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"209": "acacia_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"210": "acacia_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"211": "acacia_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"212": "acacia_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"213": "acacia_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"214": "acacia_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"215": "acacia_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"216": "acacia_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"217": "acacia_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"218": "dark_oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"219": "dark_oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"220": "dark_oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"221": "dark_oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"222": "dark_oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"223": "dark_oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"224": "dark_oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"225": "dark_oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"226": "dark_oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"227": "dark_oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"228": "dark_oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"229": "dark_oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"230": "dark_oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"231": "dark_oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"232": "azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"233": "azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"234": "azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"235": "azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"236": "azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"237": "azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"238": "azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"239": "azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"240": "azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"241": "azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"242": "azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"243": "azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"244": "azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"245": "azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"246": "flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||
"247": "flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||
"248": "flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||
"249": "flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||
"250": "flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||
"251": "flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||
"252": "flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||
"253": "flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||
"254": "flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||
"255": "flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||
"256": "flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||
"257": "flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||
"258": "flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||
"259": "flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||
"1416": "piston_head[type=normal,facing=north,short=true]",
|
||||
"1417": "piston_head[type=sticky,facing=north,short=true]",
|
||||
"1418": "piston_head[type=normal,facing=north,short=false]",
|
||||
"1419": "piston_head[type=sticky,facing=north,short=false]",
|
||||
"1420": "piston_head[type=normal,facing=east,short=true]",
|
||||
"1421": "piston_head[type=sticky,facing=east,short=true]",
|
||||
"1422": "piston_head[type=normal,facing=east,short=false]",
|
||||
"1423": "piston_head[type=sticky,facing=east,short=false]",
|
||||
"1424": "piston_head[type=normal,facing=south,short=true]",
|
||||
"1425": "piston_head[type=sticky,facing=south,short=true]",
|
||||
"1426": "piston_head[type=normal,facing=south,short=false]",
|
||||
"1427": "piston_head[type=sticky,facing=south,short=false]",
|
||||
"1428": "piston_head[type=normal,facing=west,short=true]",
|
||||
"1429": "piston_head[type=sticky,facing=west,short=true]",
|
||||
"1430": "piston_head[type=normal,facing=west,short=false]",
|
||||
"1431": "piston_head[type=sticky,facing=west,short=false]",
|
||||
"1432": "piston_head[type=normal,facing=up,short=true]",
|
||||
"1433": "piston_head[type=sticky,facing=up,short=true]",
|
||||
"1434": "piston_head[type=normal,facing=up,short=false]",
|
||||
"1435": "piston_head[type=sticky,facing=up,short=false]",
|
||||
"1436": "piston_head[type=normal,facing=down,short=true]",
|
||||
"1437": "piston_head[type=sticky,facing=down,short=true]",
|
||||
"1438": "piston_head[type=normal,facing=down,short=false]",
|
||||
"1439": "piston_head[type=sticky,facing=down,short=false]",
|
||||
"1456": "moving_piston[type=normal,facing=north]",
|
||||
"1457": "moving_piston[type=sticky,facing=north]",
|
||||
"1458": "moving_piston[type=normal,facing=east]",
|
||||
"1459": "moving_piston[type=sticky,facing=east]",
|
||||
"1460": "moving_piston[type=normal,facing=south]",
|
||||
"1461": "moving_piston[type=sticky,facing=south]",
|
||||
"1462": "moving_piston[type=normal,facing=west]",
|
||||
"1463": "moving_piston[type=sticky,facing=west]",
|
||||
"1464": "moving_piston[type=normal,facing=up]",
|
||||
"1465": "moving_piston[type=sticky,facing=up]",
|
||||
"1466": "moving_piston[type=normal,facing=down]",
|
||||
"1467": "moving_piston[type=sticky,facing=down]",
|
||||
"2090": "chest[type=single,facing=north,waterlogged=true]",
|
||||
"2091": "chest[type=single,facing=north,waterlogged=false]",
|
||||
"2092": "chest[type=left,facing=north,waterlogged=true]",
|
||||
"2093": "chest[type=left,facing=north,waterlogged=false]",
|
||||
"2094": "chest[type=right,facing=north,waterlogged=true]",
|
||||
"2095": "chest[type=right,facing=north,waterlogged=false]",
|
||||
"2096": "chest[type=single,facing=south,waterlogged=true]",
|
||||
"2097": "chest[type=single,facing=south,waterlogged=false]",
|
||||
"2098": "chest[type=left,facing=south,waterlogged=true]",
|
||||
"2099": "chest[type=left,facing=south,waterlogged=false]",
|
||||
"2100": "chest[type=right,facing=south,waterlogged=true]",
|
||||
"2101": "chest[type=right,facing=south,waterlogged=false]",
|
||||
"2102": "chest[type=single,facing=west,waterlogged=true]",
|
||||
"2103": "chest[type=single,facing=west,waterlogged=false]",
|
||||
"2104": "chest[type=left,facing=west,waterlogged=true]",
|
||||
"2105": "chest[type=left,facing=west,waterlogged=false]",
|
||||
"2106": "chest[type=right,facing=west,waterlogged=true]",
|
||||
"2107": "chest[type=right,facing=west,waterlogged=false]",
|
||||
"2108": "chest[type=single,facing=east,waterlogged=true]",
|
||||
"2109": "chest[type=single,facing=east,waterlogged=false]",
|
||||
"2110": "chest[type=left,facing=east,waterlogged=true]",
|
||||
"2111": "chest[type=left,facing=east,waterlogged=false]",
|
||||
"2112": "chest[type=right,facing=east,waterlogged=true]",
|
||||
"2113": "chest[type=right,facing=east,waterlogged=false]",
|
||||
"6828": "trapped_chest[type=single,facing=north,waterlogged=true]",
|
||||
"6829": "trapped_chest[type=single,facing=north,waterlogged=false]",
|
||||
"6830": "trapped_chest[type=left,facing=north,waterlogged=true]",
|
||||
"6831": "trapped_chest[type=left,facing=north,waterlogged=false]",
|
||||
"6832": "trapped_chest[type=right,facing=north,waterlogged=true]",
|
||||
"6833": "trapped_chest[type=right,facing=north,waterlogged=false]",
|
||||
"6834": "trapped_chest[type=single,facing=south,waterlogged=true]",
|
||||
"6835": "trapped_chest[type=single,facing=south,waterlogged=false]",
|
||||
"6836": "trapped_chest[type=left,facing=south,waterlogged=true]",
|
||||
"6837": "trapped_chest[type=left,facing=south,waterlogged=false]",
|
||||
"6838": "trapped_chest[type=right,facing=south,waterlogged=true]",
|
||||
"6839": "trapped_chest[type=right,facing=south,waterlogged=false]",
|
||||
"6840": "trapped_chest[type=single,facing=west,waterlogged=true]",
|
||||
"6841": "trapped_chest[type=single,facing=west,waterlogged=false]",
|
||||
"6842": "trapped_chest[type=left,facing=west,waterlogged=true]",
|
||||
"6843": "trapped_chest[type=left,facing=west,waterlogged=false]",
|
||||
"6844": "trapped_chest[type=right,facing=west,waterlogged=true]",
|
||||
"6845": "trapped_chest[type=right,facing=west,waterlogged=false]",
|
||||
"6846": "trapped_chest[type=single,facing=east,waterlogged=true]",
|
||||
"6847": "trapped_chest[type=single,facing=east,waterlogged=false]",
|
||||
"6848": "trapped_chest[type=left,facing=east,waterlogged=true]",
|
||||
"6849": "trapped_chest[type=left,facing=east,waterlogged=false]",
|
||||
"6850": "trapped_chest[type=right,facing=east,waterlogged=true]",
|
||||
"6851": "trapped_chest[type=right,facing=east,waterlogged=false]"
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"argumenttypes": {
|
||||
"minecraft:item_enchantment": "minecraft:resource",
|
||||
"minecraft:mob_effect": "minecraft:resource",
|
||||
"minecraft:entity_summon": "minecraft:resource"
|
||||
"item_enchantment": "resource",
|
||||
"mob_effect": "resource",
|
||||
"entity_summon": "resource"
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ dependencyResolutionManagement {
|
||||
// configures repositories for all projects
|
||||
repositories {
|
||||
maven("https://repo.viaversion.com")
|
||||
maven("https://papermc.io/repo/repository/maven-public/")
|
||||
maven("https://repo.papermc.io/repository/maven-public/")
|
||||
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
||||
maven("https://repo.spongepowered.org/repository/maven-public/")
|
||||
maven("https://libraries.minecraft.net")
|
||||
|
@ -1,5 +1,7 @@
|
||||
dependencies {
|
||||
implementation(projects.viaversionCommon)
|
||||
compileOnly(libs.velocity)
|
||||
compileOnly(libs.velocity) {
|
||||
exclude("com.velocitypowered", "velocity-brigadier")
|
||||
}
|
||||
annotationProcessor(libs.velocity)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user