Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-10-05 01:31:05 +02:00
Reduce mappings file sizes and optimize item mappings
Dieser Commit ist enthalten in:
Ursprung
7b91c25379
Commit
9fd0d3e565
@ -63,7 +63,7 @@ public interface ViaAPI<T> {
|
|||||||
* @return API version incremented with meaningful API changes
|
* @return API version incremented with meaningful API changes
|
||||||
*/
|
*/
|
||||||
default int apiVersion() {
|
default int apiVersion() {
|
||||||
return 16;
|
return 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
33
api/src/main/java/com/viaversion/viaversion/api/data/BiMappings.java
Normale Datei
33
api/src/main/java/com/viaversion/viaversion/api/data/BiMappings.java
Normale Datei
@ -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;
|
package com.viaversion.viaversion.api.data;
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
@ -57,23 +58,25 @@ public class FullMappingsBase implements FullMappings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int id(final String identifier) {
|
public int id(String identifier) {
|
||||||
return stringToId.getInt(identifier);
|
return stringToId.getInt(Key.stripMinecraftNamespace(identifier));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int mappedId(final String mappedIdentifier) {
|
public int mappedId(final String mappedIdentifier) {
|
||||||
return mappedStringToId.getInt(mappedIdentifier);
|
return mappedStringToId.getInt(Key.stripMinecraftNamespace(mappedIdentifier));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String identifier(final int id) {
|
public String identifier(final int id) {
|
||||||
return idToString[id];
|
final String identifier = idToString[id];
|
||||||
|
return Key.namespaced(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String mappedIdentifier(final int mappedId) {
|
public String mappedIdentifier(final int mappedId) {
|
||||||
return mappedIdToString[mappedId];
|
final String identifier = mappedIdToString[mappedId];
|
||||||
|
return Key.namespaced(identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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() {
|
public static Int2IntMapMappings of() {
|
||||||
|
|
||||||
return new Int2IntMapMappings(new Int2IntOpenHashMap(), -1);
|
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.RegistryType;
|
||||||
import com.viaversion.viaversion.api.minecraft.TagData;
|
import com.viaversion.viaversion.api.minecraft.TagData;
|
||||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
@ -88,7 +87,7 @@ public interface MappingData {
|
|||||||
*/
|
*/
|
||||||
@Nullable List<TagData> getTags(RegistryType type);
|
@Nullable List<TagData> getTags(RegistryType type);
|
||||||
|
|
||||||
@Nullable Int2IntBiMap getItemMappings();
|
@Nullable BiMappings getItemMappings();
|
||||||
|
|
||||||
@Nullable ParticleMappings getParticleMappings();
|
@Nullable ParticleMappings getParticleMappings();
|
||||||
|
|
||||||
|
@ -28,8 +28,7 @@ import com.google.gson.JsonObject;
|
|||||||
import com.viaversion.viaversion.api.Via;
|
import com.viaversion.viaversion.api.Via;
|
||||||
import com.viaversion.viaversion.api.minecraft.RegistryType;
|
import com.viaversion.viaversion.api.minecraft.RegistryType;
|
||||||
import com.viaversion.viaversion.api.minecraft.TagData;
|
import com.viaversion.viaversion.api.minecraft.TagData;
|
||||||
import com.viaversion.viaversion.util.Int2IntBiHashMap;
|
import com.viaversion.viaversion.util.Key;
|
||||||
import com.viaversion.viaversion.util.Int2IntBiMap;
|
|
||||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
@ -42,7 +41,7 @@ public class MappingDataBase implements MappingData {
|
|||||||
protected final String oldVersion;
|
protected final String oldVersion;
|
||||||
protected final String newVersion;
|
protected final String newVersion;
|
||||||
protected final boolean hasDiffFile;
|
protected final boolean hasDiffFile;
|
||||||
protected Int2IntBiMap itemMappings;
|
protected BiMappings itemMappings;
|
||||||
protected FullMappings argumentTypeMappings;
|
protected FullMappings argumentTypeMappings;
|
||||||
protected FullMappings entityMappings;
|
protected FullMappings entityMappings;
|
||||||
protected ParticleMappings particleMappings;
|
protected ParticleMappings particleMappings;
|
||||||
@ -54,15 +53,14 @@ public class MappingDataBase implements MappingData {
|
|||||||
protected Mappings enchantmentMappings;
|
protected Mappings enchantmentMappings;
|
||||||
protected Mappings paintingMappings;
|
protected Mappings paintingMappings;
|
||||||
protected Map<RegistryType, List<TagData>> tags;
|
protected Map<RegistryType, List<TagData>> tags;
|
||||||
protected boolean loadItems = true;
|
|
||||||
|
|
||||||
public MappingDataBase(String oldVersion, String newVersion) {
|
public MappingDataBase(String unmappedVersion, String mappedVersion) {
|
||||||
this(oldVersion, newVersion, false);
|
this(unmappedVersion, mappedVersion, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MappingDataBase(String oldVersion, String newVersion, boolean hasDiffFile) {
|
public MappingDataBase(String unmappedVersion, String mappedVersion, boolean hasDiffFile) {
|
||||||
this.oldVersion = oldVersion;
|
this.oldVersion = unmappedVersion;
|
||||||
this.newVersion = newVersion;
|
this.newVersion = mappedVersion;
|
||||||
this.hasDiffFile = hasDiffFile;
|
this.hasDiffFile = hasDiffFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,49 +70,44 @@ public class MappingDataBase implements MappingData {
|
|||||||
getLogger().info("Loading " + oldVersion + " -> " + newVersion + " mappings...");
|
getLogger().info("Loading " + oldVersion + " -> " + newVersion + " mappings...");
|
||||||
}
|
}
|
||||||
JsonObject diffmapping = hasDiffFile ? loadDiffFile() : null;
|
JsonObject diffmapping = hasDiffFile ? loadDiffFile() : null;
|
||||||
JsonObject oldMappings = MappingDataLoader.loadData("mapping-" + oldVersion + ".json", true);
|
JsonObject unmappedIdentifiers = MappingDataLoader.loadData("mapping-" + oldVersion + ".json", true);
|
||||||
JsonObject newMappings = MappingDataLoader.loadData("mapping-" + newVersion + ".json", true);
|
JsonObject mappedIdentifiers = MappingDataLoader.loadData("mapping-" + newVersion + ".json", true);
|
||||||
|
|
||||||
blockMappings = loadFromObject(oldMappings, newMappings, diffmapping, "blocks");
|
blockMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blocks");
|
||||||
blockStateMappings = loadFromObject(oldMappings, newMappings, diffmapping, "blockstates");
|
blockStateMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockstates");
|
||||||
blockEntityMappings = loadFromArray(oldMappings, newMappings, diffmapping, "blockentities");
|
blockEntityMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "blockentities");
|
||||||
soundMappings = loadFromArray(oldMappings, newMappings, diffmapping, "sounds");
|
soundMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "sounds");
|
||||||
statisticsMappings = loadFromArray(oldMappings, newMappings, diffmapping, "statistics");
|
statisticsMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "statistics");
|
||||||
enchantmentMappings = loadFromArray(oldMappings, newMappings, diffmapping, "enchantments");
|
enchantmentMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "enchantments");
|
||||||
paintingMappings = loadFromArray(oldMappings, newMappings, diffmapping, "paintings");
|
paintingMappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "paintings");
|
||||||
|
|
||||||
entityMappings = loadFullMappings(oldMappings, newMappings, diffmapping, "entities");
|
entityMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "entities");
|
||||||
argumentTypeMappings = loadFullMappings(oldMappings, newMappings, diffmapping, "argumenttypes");
|
argumentTypeMappings = loadFullMappings(unmappedIdentifiers, mappedIdentifiers, diffmapping, "argumenttypes");
|
||||||
|
|
||||||
Mappings particles = loadFromArray(oldMappings, newMappings, diffmapping, "particles");
|
Mappings particles = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "particles");
|
||||||
if (particles != null) {
|
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 = loadBiFromArray(unmappedIdentifiers, mappedIdentifiers, diffmapping, "items");
|
||||||
itemMappings = new Int2IntBiHashMap();
|
|
||||||
itemMappings.defaultReturnValue(-1);
|
|
||||||
MappingDataLoader.mapIdentifiers(itemMappings, oldMappings.getAsJsonObject("items"), newMappings.getAsJsonObject("items"),
|
|
||||||
diffmapping != null ? diffmapping.getAsJsonObject("items") : null, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (diffmapping != null && diffmapping.has("tags")) {
|
if (diffmapping != null && diffmapping.has("tags")) {
|
||||||
this.tags = new EnumMap<>(RegistryType.class);
|
this.tags = new EnumMap<>(RegistryType.class);
|
||||||
JsonObject tags = diffmapping.getAsJsonObject("tags");
|
JsonObject tags = diffmapping.getAsJsonObject("tags");
|
||||||
if (tags.has(RegistryType.ITEM.resourceLocation())) {
|
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())) {
|
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) {
|
protected FullMappings loadFullMappings(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||||
Mappings mappings = loadFromArray(oldMappings, newMappings, diffMappings, key);
|
Mappings mappings = loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||||
return mappings != null ? new FullMappingsBase(oldMappings.getAsJsonArray(key), newMappings.getAsJsonArray(key), mappings) : null;
|
return mappings != null ? new FullMappingsBase(unmappedIdentifiers.getAsJsonArray(key), mappedIdentifiers.getAsJsonArray(key), mappings) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) {
|
private void loadTags(RegistryType type, JsonObject object, Object2IntMap<String> typeMapping) {
|
||||||
@ -126,7 +119,7 @@ public class MappingDataBase implements MappingData {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
for (JsonElement element : array) {
|
for (JsonElement element : array) {
|
||||||
String stringId = element.getAsString();
|
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());
|
getLogger().warning(type + " Tags contains invalid type identifier " + stringId + " in tag " + entry.getKey());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -151,14 +144,12 @@ public class MappingDataBase implements MappingData {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getNewItemId(int id) {
|
public int getNewItemId(int id) {
|
||||||
return checkValidity(id, itemMappings.get(id), "item");
|
return checkValidity(id, itemMappings.getNewId(id), "item");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getOldItemId(int id) {
|
public int getOldItemId(int id) {
|
||||||
int oldId = itemMappings.inverse().get(id);
|
return itemMappings.inverse().getNewIdOrDefault(id, 1);
|
||||||
// Remap new items to stone
|
|
||||||
return oldId != -1 ? oldId : 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -172,7 +163,7 @@ public class MappingDataBase implements MappingData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable Int2IntBiMap getItemMappings() {
|
public @Nullable BiMappings getItemMappings() {
|
||||||
return itemMappings;
|
return itemMappings;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,20 +217,34 @@ public class MappingDataBase implements MappingData {
|
|||||||
return paintingMappings;
|
return paintingMappings;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected @Nullable Mappings loadFromArray(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
protected @Nullable Mappings loadFromArray(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||||
return IntArrayMappings.builder().unmapped(oldMappings.getAsJsonArray(key))
|
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonArray(key))
|
||||||
.mapped(newMappings.getAsJsonArray(key)).diffMappings(diff).build();
|
.mapped(mappedIdentifiers.getAsJsonArray(key)).diffMappings(diff).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected @Nullable Mappings loadFromObject(JsonObject oldMappings, JsonObject newMappings, @Nullable JsonObject diffMappings, String key) {
|
protected @Nullable Mappings loadFromObject(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffMappings, String key) {
|
||||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
if (!unmappedIdentifiers.has(key) || !mappedIdentifiers.has(key) || !shouldLoad(key)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||||
return IntArrayMappings.builder().unmapped(oldMappings.getAsJsonObject(key))
|
return IntArrayMappings.builder().unmapped(unmappedIdentifiers.getAsJsonObject(key))
|
||||||
.mapped(newMappings.getAsJsonObject(key)).diffMappings(diff).build();
|
.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() {
|
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 unmappedIdentifiers old mappings
|
||||||
* @param newMappings new mappings
|
* @param mappedIdentifiers new mappings
|
||||||
* @param diffMappings diff mappings if present
|
* @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) {
|
public static void mapIdentifiers(Int2IntBiMap output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(newIdentifiers);
|
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
|
||||||
for (Map.Entry<String, JsonElement> entry : oldIdentifiers.entrySet()) {
|
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
|
||||||
int value = mapIdentifierEntry(entry, newIdentifierMap, diffIdentifiers, warnOnMissing);
|
int id = Integer.parseInt(entry.getKey());
|
||||||
if (value != -1) {
|
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||||
output.put(Integer.parseInt(entry.getKey()), value);
|
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)*/
|
@Deprecated/*(forRemoval = true)*/
|
||||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers) {
|
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers) {
|
||||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, null);
|
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(newIdentifiers);
|
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(mappedIdentifiers);
|
||||||
for (Map.Entry<String, JsonElement> entry : oldIdentifiers.entrySet()) {
|
for (Map.Entry<String, JsonElement> entry : unmappedIdentifiers.entrySet()) {
|
||||||
int value = mapIdentifierEntry(entry, newIdentifierMap, diffIdentifiers, warnOnMissing);
|
int id = Integer.parseInt(entry.getKey());
|
||||||
if (value != -1) {
|
int mappedId = mapIdentifierEntry(id, entry.getValue().getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||||
output[Integer.parseInt(entry.getKey())] = value;
|
if (mappedId != -1) {
|
||||||
|
output[id] = mappedId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, @Nullable JsonObject diffIdentifiers) {
|
public static void mapIdentifiers(int[] output, JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, @Nullable JsonObject diffIdentifiers) {
|
||||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, diffIdentifiers, true);
|
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, diffIdentifiers, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int mapIdentifierEntry(Map.Entry<String, JsonElement> entry, Object2IntMap<String> newIdentifierMap, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
private static int mapIdentifierEntry(int id, String val, Object2IntMap<String> mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||||
int value = newIdentifierMap.getInt(entry.getValue().getAsString());
|
int mappedId = mappedIdentifiers.getInt(val);
|
||||||
if (value == -1) {
|
if (mappedId == -1) {
|
||||||
// Search in diff mappings
|
// Search in diff mappings
|
||||||
if (diffIdentifiers != null) {
|
if (diffIdentifiers != null) {
|
||||||
JsonElement diffElement = diffIdentifiers.get(entry.getKey());
|
JsonElement diffElement = diffIdentifiers.get(val);
|
||||||
if (diffElement != null) {
|
if (diffElement != null || (diffElement = diffIdentifiers.get(Integer.toString(id))) != null) {
|
||||||
value = newIdentifierMap.getInt(diffElement.getAsString());
|
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()) {
|
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 -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return value;
|
return mappedId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated/*(forRemoval = true)*/
|
@Deprecated/*(forRemoval = true)*/
|
||||||
public static void mapIdentifiers(int[] output, JsonArray oldIdentifiers, JsonArray newIdentifiers, boolean warnOnMissing) {
|
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, boolean warnOnMissing) {
|
||||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, null, warnOnMissing);
|
mapIdentifiers(output, unmappedIdentifiers, mappedIdentifiers, null, warnOnMissing);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void mapIdentifiers(int[] output, JsonArray oldIdentifiers, JsonArray newIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
public static void mapIdentifiers(int[] output, JsonArray unmappedIdentifiers, JsonArray mappedIdentifiers, @Nullable JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(newIdentifiers);
|
Object2IntMap<String> newIdentifierMap = MappingDataLoader.arrayToMap(mappedIdentifiers);
|
||||||
for (int i = 0; i < oldIdentifiers.size(); i++) {
|
for (int id = 0; id < unmappedIdentifiers.size(); id++) {
|
||||||
JsonElement oldIdentifier = oldIdentifiers.get(i);
|
JsonElement unmappedIdentifier = unmappedIdentifiers.get(id);
|
||||||
int mappedId = newIdentifierMap.getInt(oldIdentifier.getAsString());
|
int mappedId = mapIdentifierEntry(id, unmappedIdentifier.getAsString(), newIdentifierMap, diffIdentifiers, warnOnMissing);
|
||||||
if (mappedId == -1) {
|
if (mappedId != -1) {
|
||||||
// Search in diff mappings
|
output[id] = mappedId;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
output[i] = mappedId;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ public interface Mappings {
|
|||||||
*
|
*
|
||||||
* @param id unmapped id
|
* @param id unmapped id
|
||||||
* @param def fallback return value
|
* @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) {
|
default int getNewIdOrDefault(int id, int def) {
|
||||||
final int mappedId = getNewId(id);
|
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.protocol.Protocol;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
import com.viaversion.viaversion.api.type.types.Particle;
|
import com.viaversion.viaversion.api.type.types.Particle;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||||
@ -104,10 +105,7 @@ public class ParticleType extends Type<Particle> {
|
|||||||
|
|
||||||
String resourceLocation = Type.STRING.read(buf);
|
String resourceLocation = Type.STRING.read(buf);
|
||||||
particle.add(Type.STRING, resourceLocation);
|
particle.add(Type.STRING, resourceLocation);
|
||||||
if (resourceLocation.startsWith("minecraft:")) {
|
resourceLocation = Key.stripMinecraftNamespace(resourceLocation);
|
||||||
resourceLocation = resourceLocation.substring(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (resourceLocation.equals("block")) {
|
if (resourceLocation.equals("block")) {
|
||||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
||||||
} else if (resourceLocation.equals("entity")) {
|
} else if (resourceLocation.equals("entity")) {
|
||||||
|
48
api/src/main/java/com/viaversion/viaversion/util/Key.java
Normale Datei
48
api/src/main/java/com/viaversion/viaversion/util/Key.java
Normale Datei
@ -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();
|
wrapper.cancel();
|
||||||
if (item == 383) { // Spawn egg
|
if (item == 383) { // Spawn egg
|
||||||
for (int i = 0; i < 44; i++) {
|
for (int i = 0; i < 44; i++) {
|
||||||
Integer newItem = getMappingData().getItemMappings().get(item << 16 | i);
|
int newItem = MAPPINGS.getItemMappings().getNewId(item << 16 | i);
|
||||||
if (newItem != null) {
|
if (newItem != -1) {
|
||||||
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
||||||
packet.write(Type.VAR_INT, newItem);
|
packet.write(Type.VAR_INT, newItem);
|
||||||
packet.write(Type.VAR_INT, ticks);
|
packet.write(Type.VAR_INT, ticks);
|
||||||
@ -314,7 +314,7 @@ public class Protocol1_13To1_12_2 extends AbstractProtocol<ClientboundPackets1_1
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < 16; i++) {
|
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) {
|
if (newItem != -1) {
|
||||||
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
PacketWrapper packet = wrapper.create(ClientboundPackets1_13.COOLDOWN);
|
||||||
packet.write(Type.VAR_INT, newItem);
|
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 id = wrapper.get(Type.INT, 0);
|
||||||
int data = wrapper.get(Type.INT, 1);
|
int data = wrapper.get(Type.INT, 1);
|
||||||
if (id == 1010) { // Play record
|
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
|
} else if (id == 2001) { // Block break + block break sound
|
||||||
int blockId = data & 0xFFF;
|
int blockId = data & 0xFFF;
|
||||||
int blockData = data >> 12;
|
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.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.BlockConnectionProvider;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections.providers.PacketBlockConnectionProvider;
|
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.Int2ObjectMap;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
||||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||||
@ -47,7 +48,7 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
public class ConnectionData {
|
public final class ConnectionData {
|
||||||
private static final BlockChangeRecord1_8[] EMPTY_RECORDS = new BlockChangeRecord1_8[0];
|
private static final BlockChangeRecord1_8[] EMPTY_RECORDS = new BlockChangeRecord1_8[0];
|
||||||
public static BlockConnectionProvider blockConnectionProvider;
|
public static BlockConnectionProvider blockConnectionProvider;
|
||||||
static Int2ObjectMap<String> idToKey = new Int2ObjectOpenHashMap<>(8582, .99F);
|
static Int2ObjectMap<String> idToKey = new Int2ObjectOpenHashMap<>(8582, .99F);
|
||||||
@ -199,14 +200,15 @@ public class ConnectionData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
if (!Via.getConfig().isServersideBlockConnections()) return;
|
if (!Via.getConfig().isServersideBlockConnections()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
|
Via.getPlatform().getLogger().info("Loading block connection mappings ...");
|
||||||
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
|
JsonObject mapping1_13 = MappingDataLoader.loadData("mapping-1.13.json", true);
|
||||||
JsonObject blocks1_13 = mapping1_13.getAsJsonObject("blockstates");
|
JsonArray blocks1_13 = mapping1_13.getAsJsonArray("blockstates");
|
||||||
for (Entry<String, JsonElement> blockState : blocks1_13.entrySet()) {
|
for (int id = 0; id < blocks1_13.size(); id++) {
|
||||||
int id = Integer.parseInt(blockState.getKey());
|
String key = blocks1_13.get(id).getAsString();
|
||||||
String key = blockState.getValue().getAsString();
|
|
||||||
idToKey.put(id, key);
|
idToKey.put(id, key);
|
||||||
keyToId.put(key, id);
|
keyToId.put(key, id);
|
||||||
}
|
}
|
||||||
@ -238,10 +240,8 @@ public class ConnectionData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonObject blockData = MappingDataLoader.loadData("blockData.json");
|
for (String state : occludingBlockStates()) {
|
||||||
JsonArray occluding = blockData.getAsJsonArray("occluding");
|
occludingStates.add(keyToId.getInt(state));
|
||||||
for (JsonElement jsonElement : occluding) {
|
|
||||||
occludingStates.add(keyToId.getInt(jsonElement.getAsString()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ConnectorInitAction> initActions = new ArrayList<>();
|
List<ConnectorInitAction> initActions = new ArrayList<>();
|
||||||
@ -295,16 +295,402 @@ public class ConnectionData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static int getId(String key) {
|
public static int getId(String key) {
|
||||||
return keyToId.getOrDefault(key, -1);
|
return keyToId.getOrDefault(Key.stripMinecraftNamespace(key), -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getKey(int id) {
|
public static String getKey(int id) {
|
||||||
return idToKey.get(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
|
@FunctionalInterface
|
||||||
interface ConnectorInitAction {
|
interface ConnectorInitAction {
|
||||||
|
|
||||||
void check(WrappedBlockData blockData);
|
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;
|
package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.blockconnections;
|
||||||
|
|
||||||
import com.viaversion.viaversion.api.Via;
|
import com.viaversion.viaversion.api.Via;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ public class WrappedBlockData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private WrappedBlockData(String minecraftKey, int savedBlockStateId) {
|
private WrappedBlockData(String minecraftKey, int savedBlockStateId) {
|
||||||
this.minecraftKey = minecraftKey;
|
this.minecraftKey = Key.namespaced(minecraftKey);
|
||||||
this.savedBlockStateId = savedBlockStateId;
|
this.savedBlockStateId = savedBlockStateId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,11 +25,16 @@ import com.google.gson.JsonElement;
|
|||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.viaversion.viaversion.api.Via;
|
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.IntArrayMappings;
|
||||||
import com.viaversion.viaversion.api.data.MappingDataBase;
|
import com.viaversion.viaversion.api.data.MappingDataBase;
|
||||||
import com.viaversion.viaversion.api.data.MappingDataLoader;
|
import com.viaversion.viaversion.api.data.MappingDataLoader;
|
||||||
import com.viaversion.viaversion.api.data.Mappings;
|
import com.viaversion.viaversion.api.data.Mappings;
|
||||||
import com.viaversion.viaversion.util.GsonUtil;
|
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.IOException;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
@ -52,14 +57,14 @@ public class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||||
loadTags(blockTags, newMappings.getAsJsonObject("block_tags"));
|
loadTags(blockTags, mappedIdentifiers.getAsJsonObject("block_tags"));
|
||||||
loadTags(itemTags, newMappings.getAsJsonObject("item_tags"));
|
loadTags(itemTags, mappedIdentifiers.getAsJsonObject("item_tags"));
|
||||||
loadTags(fluidTags, newMappings.getAsJsonObject("fluid_tags"));
|
loadTags(fluidTags, mappedIdentifiers.getAsJsonObject("fluid_tags"));
|
||||||
|
|
||||||
loadEnchantments(oldEnchantmentsIds, oldMappings.getAsJsonObject("legacy_enchantments"));
|
loadEnchantments(oldEnchantmentsIds, unmappedIdentifiers.getAsJsonObject("legacy_enchantments"));
|
||||||
enchantmentMappings = IntArrayMappings.builder().customEntrySize(72)
|
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
|
// Map minecraft:snow[layers=1] of 1.12 to minecraft:snow[layers=2] in 1.13
|
||||||
if (Via.getConfig().isSnowCollisionFix()) {
|
if (Via.getConfig().isSnowCollisionFix()) {
|
||||||
@ -122,16 +127,40 @@ public class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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")) {
|
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)
|
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 {
|
} 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) {
|
public static String validateNewChannel(String newId) {
|
||||||
if (!isValid1_13Channel(newId)) {
|
if (!isValid1_13Channel(newId)) {
|
||||||
return null; // Not valid
|
return null; // Not valid
|
||||||
@ -157,7 +186,7 @@ public class MappingData extends MappingDataBase {
|
|||||||
for (int i = 0; i < ids.size(); i++) {
|
for (int i = 0; i < ids.size(); i++) {
|
||||||
idsArray[i] = ids.get(i).getAsInt();
|
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 (!isDamageable(item.identifier()) && item.identifier() != 358) { // Map
|
||||||
if (tag == null) item.setTag(tag = new CompoundTag());
|
if (tag == null) item.setTag(tag = new CompoundTag());
|
||||||
tag.put(NBT_TAG_NAME, new IntTag(originalId)); // Data will be lost, saving original id
|
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
|
if (item.identifier() == 31 && item.data() == 0) { // Shrub was removed
|
||||||
rawId = 32 << 4; // Dead Bush
|
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
|
rawId &= ~0xF; // Remove data
|
||||||
} else {
|
} else {
|
||||||
if (!Via.getConfig().isSuppressConversionWarnings() || Via.getManager().isDebug()) {
|
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);
|
item.setData((short) 0);
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@ -501,7 +501,7 @@ public class InventoryPackets extends ItemRewriter<ClientboundPackets1_12_1, Ser
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rawId == null) {
|
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) {
|
if (oldId != -1) {
|
||||||
// Handle spawn eggs
|
// Handle spawn eggs
|
||||||
Optional<String> eggEntityId = SpawnEggRewriter.getEntityId(oldId);
|
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 com.viaversion.viaversion.api.data.MappingDataLoader;
|
||||||
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
|
||||||
import it.unimi.dsi.fastutil.ints.IntSet;
|
import it.unimi.dsi.fastutil.ints.IntSet;
|
||||||
import java.util.HashMap;
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
import java.util.Map;
|
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||||
|
|
||||||
public class MappingData extends MappingDataBase {
|
public class MappingData extends MappingDataBase {
|
||||||
private IntSet motionBlocking;
|
private IntSet motionBlocking;
|
||||||
@ -37,11 +37,13 @@ public class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||||
JsonObject blockStates = newMappings.getAsJsonObject("blockstates");
|
JsonArray mappedBlockStates = mappedIdentifiers.getAsJsonArray("blockstates");
|
||||||
Map<String, Integer> blockStateMap = new HashMap<>(blockStates.entrySet().size());
|
Object2IntMap<String> blockStateMap = new Object2IntOpenHashMap<>(mappedBlockStates.size());
|
||||||
for (Map.Entry<String, JsonElement> entry : blockStates.entrySet()) {
|
blockStateMap.defaultReturnValue(-1);
|
||||||
blockStateMap.put(entry.getValue().getAsString(), Integer.parseInt(entry.getKey()));
|
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");
|
JsonObject heightMapData = MappingDataLoader.loadData("heightMapData-1.14.json");
|
||||||
@ -49,20 +51,21 @@ public class MappingData extends MappingDataBase {
|
|||||||
this.motionBlocking = new IntOpenHashSet(motionBlocking.size(), .99F);
|
this.motionBlocking = new IntOpenHashSet(motionBlocking.size(), .99F);
|
||||||
for (JsonElement blockState : motionBlocking) {
|
for (JsonElement blockState : motionBlocking) {
|
||||||
String key = blockState.getAsString();
|
String key = blockState.getAsString();
|
||||||
Integer id = blockStateMap.get(key);
|
int id = blockStateMap.getInt(key);
|
||||||
if (id == null) {
|
if (id == -1) {
|
||||||
Via.getPlatform().getLogger().warning("Unknown blockstate " + key + " :(");
|
Via.getPlatform().getLogger().warning("Unknown blockstate " + key + " :(");
|
||||||
} else {
|
} else {
|
||||||
this.motionBlocking.add(id.intValue());
|
this.motionBlocking.add(id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Via.getConfig().isNonFullBlockLightFix()) {
|
if (Via.getConfig().isNonFullBlockLightFix()) {
|
||||||
nonFullBlocks = new IntOpenHashSet(1611, .99F);
|
nonFullBlocks = new IntOpenHashSet(1611, .99F);
|
||||||
for (Map.Entry<String, JsonElement> blockstates : oldMappings.getAsJsonObject("blockstates").entrySet()) {
|
JsonArray blockStates = unmappedIdentifiers.getAsJsonArray("blockstates");
|
||||||
final String state = blockstates.getValue().getAsString();
|
for (int i = 0; i < blockStates.size(); i++) {
|
||||||
|
String state = blockStates.get(i).getAsString();
|
||||||
if (state.contains("_slab") || state.contains("_stairs") || state.contains("_wall[")) {
|
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
|
nonFullBlocks.add(blockStateMappings.getNewId(8163)); // grass path
|
||||||
|
@ -30,13 +30,13 @@ public class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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")) {
|
if (!key.equals("sounds")) {
|
||||||
return super.loadFromArray(oldMappings, newMappings, diffMappings, key);
|
return super.loadFromArray(unmappedIdentifiers, mappedIdentifiers, diffMappings, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore removed sounds
|
// Ignore removed sounds
|
||||||
return IntArrayMappings.builder().warnOnMissing(false)
|
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
|
@Override
|
||||||
public void loadExtras(JsonObject oldMappings, JsonObject newMappings, JsonObject diffMappings) {
|
public void loadExtras(JsonObject unmappedIdentifiers, JsonObject mappedIdentifiers, JsonObject diffMappings) {
|
||||||
try {
|
try {
|
||||||
dimensionRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("dimension-registry-1.16.2.nbt"));
|
dimensionRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("dimension-registry-1.16.2.nbt"));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
@ -30,7 +30,7 @@ public class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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("generic.maxHealth", "minecraft:generic.max_health");
|
||||||
attributeMappings.put("zombie.spawnReinforcements", "minecraft:zombie.spawn_reinforcements");
|
attributeMappings.put("zombie.spawnReinforcements", "minecraft:zombie.spawn_reinforcements");
|
||||||
attributeMappings.put("horse.jumpStrength", "minecraft:horse.jump_strength");
|
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.protocols.protocol1_16to1_15_2.storage.InventoryTracker1_16;
|
||||||
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
||||||
import com.viaversion.viaversion.rewriter.RecipeRewriter;
|
import com.viaversion.viaversion.rewriter.RecipeRewriter;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class InventoryPackets extends ItemRewriter<ClientboundPackets1_15, ServerboundPackets1_16, Protocol1_16To1_15_2> {
|
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;
|
if (attributeNameTag == null) return;
|
||||||
|
|
||||||
String attributeName = attributeNameTag.getValue();
|
String attributeName = attributeNameTag.getValue();
|
||||||
if (inverse && !attributeName.startsWith("minecraft:")) {
|
if (inverse) {
|
||||||
attributeName = "minecraft:" + attributeName;
|
attributeName = Key.namespaced(attributeName);
|
||||||
}
|
}
|
||||||
|
|
||||||
String mappedAttribute = (inverse ? Protocol1_16To1_15_2.MAPPINGS.getAttributeMappings().inverse()
|
String mappedAttribute = (inverse ? Protocol1_16To1_15_2.MAPPINGS.getAttributeMappings().inverse()
|
||||||
|
@ -34,9 +34,9 @@ public final class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
int i = 0;
|
||||||
for (final JsonElement element : newMappings.getAsJsonArray("blockentities")) {
|
for (final JsonElement element : mappedIdentifiers.getAsJsonArray("blockentities")) {
|
||||||
final String id = element.getAsString();
|
final String id = element.getAsString();
|
||||||
blockEntityIds.put(id, i++);
|
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.Protocol1_18To1_17_1;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.storage.ChunkLightStorage;
|
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.protocols.protocol1_18to1_17_1.types.Chunk1_18Type;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import com.viaversion.viaversion.util.MathUtil;
|
import com.viaversion.viaversion.util.MathUtil;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.BitSet;
|
import java.util.BitSet;
|
||||||
@ -115,7 +116,7 @@ public final class WorldPackets {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String id = idTag.getValue();
|
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) {
|
if (typeId == -1) {
|
||||||
Via.getPlatform().getLogger().warning("Unknown block entity: " + id);
|
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.BlockRewriter;
|
||||||
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
||||||
import com.viaversion.viaversion.rewriter.RecipeRewriter;
|
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> {
|
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 -> {
|
protocol.registerClientbound(ClientboundPackets1_19_1.DECLARE_RECIPES, wrapper -> {
|
||||||
final int size = wrapper.passthrough(Type.VAR_INT);
|
final int size = wrapper.passthrough(Type.VAR_INT);
|
||||||
for (int i = 0; i < size; i++) {
|
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
|
wrapper.passthrough(Type.STRING); // Recipe Identifier
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "crafting_shapeless": {
|
case "crafting_shapeless": {
|
||||||
|
@ -65,7 +65,6 @@ public final class Protocol1_19_4To1_19_3 extends AbstractProtocol<ClientboundPa
|
|||||||
super.handleArgument(wrapper, argumentType);
|
super.handleArgument(wrapper, argumentType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}.registerDeclareCommands1_19(ClientboundPackets1_19_3.DECLARE_COMMANDS);
|
}.registerDeclareCommands1_19(ClientboundPackets1_19_3.DECLARE_COMMANDS);
|
||||||
|
|
||||||
registerClientbound(ClientboundPackets1_19_3.SERVER_DATA, wrapper -> {
|
registerClientbound(ClientboundPackets1_19_3.SERVER_DATA, wrapper -> {
|
||||||
|
@ -34,7 +34,7 @@ public final class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 {
|
try {
|
||||||
damageTypesRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("damage-types-1.19.4.nbt"));
|
damageTypesRegistry = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("damage-types-1.19.4.nbt"));
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
|
@ -39,7 +39,7 @@ public final class MappingData extends MappingDataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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 {
|
try {
|
||||||
final ListTag chatTypes = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("chat-types-1.19.nbt")).get("values");
|
final ListTag chatTypes = BinaryTagIO.readCompressedInputStream(MappingDataLoader.getResource("chat-types-1.19.nbt")).get("values");
|
||||||
for (final Tag chatType : chatTypes) {
|
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.ClientboundPacketType;
|
||||||
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
|
import com.viaversion.viaversion.util.Key;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
@ -68,9 +69,9 @@ public class RecipeRewriter<C extends ClientboundPacketType> {
|
|||||||
protocol.registerClientbound(packetType, wrapper -> {
|
protocol.registerClientbound(packetType, wrapper -> {
|
||||||
int size = wrapper.passthrough(Type.VAR_INT);
|
int size = wrapper.passthrough(Type.VAR_INT);
|
||||||
for (int i = 0; i < size; i++) {
|
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
|
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.packet.PacketWrapper;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketHandler;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
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.IntArrayList;
|
||||||
import it.unimi.dsi.fastutil.ints.IntList;
|
import it.unimi.dsi.fastutil.ints.IntList;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -176,9 +177,7 @@ public class TagRewriter<C extends ClientboundPacketType> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wrapper.write(Type.STRING, registryKey);
|
wrapper.write(Type.STRING, registryKey);
|
||||||
if (registryKey.startsWith("minecraft:")) {
|
registryKey = Key.stripMinecraftNamespace(registryKey);
|
||||||
registryKey = registryKey.substring(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
RegistryType type = RegistryType.getByKey(registryKey);
|
RegistryType type = RegistryType.getByKey(registryKey);
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -21290,7 +21290,7 @@
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"minecraft:baked_potato": {
|
"baked_potato": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21306,15 +21306,15 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:banner_duplicate": {
|
"banner_duplicate": {
|
||||||
"type": "crafting_special_bannerduplicate",
|
"type": "crafting_special_bannerduplicate",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:banner_add_pattern": {
|
"banner_add_pattern": {
|
||||||
"type": "crafting_special_banneraddpattern",
|
"type": "crafting_special_banneraddpattern",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:quartz": {
|
"quartz": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21330,7 +21330,7 @@
|
|||||||
"experience": 0.2,
|
"experience": 0.2,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:sponge": {
|
"sponge": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21346,7 +21346,7 @@
|
|||||||
"experience": 0.15,
|
"experience": 0.15,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:iron_ingot": {
|
"iron_ingot": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21362,11 +21362,11 @@
|
|||||||
"experience": 0.7,
|
"experience": 0.7,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:tipped_arrow": {
|
"tipped_arrow": {
|
||||||
"type": "crafting_special_tippedarrow",
|
"type": "crafting_special_tippedarrow",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:gold_ingot": {
|
"gold_ingot": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21382,7 +21382,7 @@
|
|||||||
"experience": 1.0,
|
"experience": 1.0,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:glass": {
|
"glass": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21402,7 +21402,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:stone": {
|
"stone": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21418,7 +21418,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:white_glazed_terracotta": {
|
"white_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21434,7 +21434,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:diamond_from_smelting": {
|
"diamond_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21450,7 +21450,7 @@
|
|||||||
"experience": 1.0,
|
"experience": 1.0,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:lapis_from_smelting": {
|
"lapis_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21466,7 +21466,7 @@
|
|||||||
"experience": 0.2,
|
"experience": 0.2,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:emerald_from_smelting": {
|
"emerald_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21482,7 +21482,7 @@
|
|||||||
"experience": 1.0,
|
"experience": 1.0,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cooked_porkchop": {
|
"cooked_porkchop": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21498,11 +21498,11 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:book_cloning": {
|
"book_cloning": {
|
||||||
"type": "crafting_special_bookcloning",
|
"type": "crafting_special_bookcloning",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:pink_glazed_terracotta": {
|
"pink_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21518,7 +21518,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:orange_glazed_terracotta": {
|
"orange_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21534,7 +21534,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:yellow_glazed_terracotta": {
|
"yellow_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21550,7 +21550,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:iron_nugget_from_smelting": {
|
"iron_nugget_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21618,7 +21618,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:dried_kelp_from_smelting": {
|
"dried_kelp_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21634,7 +21634,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:redstone_from_smelting": {
|
"redstone_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21650,7 +21650,7 @@
|
|||||||
"experience": 0.7,
|
"experience": 0.7,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cooked_salmon": {
|
"cooked_salmon": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21666,11 +21666,11 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:map_extending": {
|
"map_extending": {
|
||||||
"type": "crafting_special_mapextending",
|
"type": "crafting_special_mapextending",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:green_glazed_terracotta": {
|
"green_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21686,7 +21686,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:lime_glazed_terracotta": {
|
"lime_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21702,7 +21702,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:popped_chorus_fruit": {
|
"popped_chorus_fruit": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21718,7 +21718,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cactus_green": {
|
"cactus_green": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21734,7 +21734,7 @@
|
|||||||
"experience": 1.0,
|
"experience": 1.0,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cooked_cod": {
|
"cooked_cod": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21750,7 +21750,7 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:magenta_glazed_terracotta": {
|
"magenta_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21766,7 +21766,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:nether_brick": {
|
"nether_brick": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21782,7 +21782,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:light_gray_glazed_terracotta": {
|
"light_gray_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21798,7 +21798,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:blue_glazed_terracotta": {
|
"blue_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21814,7 +21814,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cooked_mutton": {
|
"cooked_mutton": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21830,7 +21830,7 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:brown_glazed_terracotta": {
|
"brown_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21846,11 +21846,11 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:map_cloning": {
|
"map_cloning": {
|
||||||
"type": "crafting_special_mapcloning",
|
"type": "crafting_special_mapcloning",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:cracked_stone_bricks": {
|
"cracked_stone_bricks": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21866,7 +21866,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:charcoal": {
|
"charcoal": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21974,7 +21974,7 @@
|
|||||||
"experience": 0.15,
|
"experience": 0.15,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:black_glazed_terracotta": {
|
"black_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -21990,7 +21990,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:purple_glazed_terracotta": {
|
"purple_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22006,7 +22006,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:coal_from_smelting": {
|
"coal_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22022,7 +22022,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:gray_glazed_terracotta": {
|
"gray_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22038,7 +22038,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:red_glazed_terracotta": {
|
"red_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22054,7 +22054,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:brick": {
|
"brick": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22070,7 +22070,7 @@
|
|||||||
"experience": 0.3,
|
"experience": 0.3,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:light_blue_glazed_terracotta": {
|
"light_blue_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22086,11 +22086,11 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:firework_rocket": {
|
"firework_rocket": {
|
||||||
"type": "crafting_special_firework_rocket",
|
"type": "crafting_special_firework_rocket",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:gold_nugget_from_smelting": {
|
"gold_nugget_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22142,7 +22142,7 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:terracotta": {
|
"terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22158,7 +22158,7 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:lime_dye_from_smelting": {
|
"lime_dye_from_smelting": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22174,15 +22174,15 @@
|
|||||||
"experience": 0.1,
|
"experience": 0.1,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:firework_star_fade": {
|
"firework_star_fade": {
|
||||||
"type": "crafting_special_firework_star_fade",
|
"type": "crafting_special_firework_star_fade",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:shulker_box_coloring": {
|
"shulker_box_coloring": {
|
||||||
"type": "crafting_special_shulkerboxcoloring",
|
"type": "crafting_special_shulkerboxcoloring",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:cooked_chicken": {
|
"cooked_chicken": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22198,15 +22198,15 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:shield_decoration": {
|
"shield_decoration": {
|
||||||
"type": "crafting_special_shielddecoration",
|
"type": "crafting_special_shielddecoration",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:armor_dye": {
|
"armor_dye": {
|
||||||
"type": "crafting_special_armordye",
|
"type": "crafting_special_armordye",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:cooked_rabbit": {
|
"cooked_rabbit": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22222,15 +22222,15 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:firework_star": {
|
"firework_star": {
|
||||||
"type": "crafting_special_firework_star",
|
"type": "crafting_special_firework_star",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:repair_item": {
|
"repair_item": {
|
||||||
"type": "crafting_special_repairitem",
|
"type": "crafting_special_repairitem",
|
||||||
"group": ""
|
"group": ""
|
||||||
},
|
},
|
||||||
"minecraft:cooked_beef": {
|
"cooked_beef": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
@ -22246,7 +22246,7 @@
|
|||||||
"experience": 0.35,
|
"experience": 0.35,
|
||||||
"cookingTime": 200
|
"cookingTime": 200
|
||||||
},
|
},
|
||||||
"minecraft:cyan_glazed_terracotta": {
|
"cyan_glazed_terracotta": {
|
||||||
"type": "smelting",
|
"type": "smelting",
|
||||||
"group": "",
|
"group": "",
|
||||||
"ingredient": [
|
"ingredient": [
|
||||||
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -1,64 +1,64 @@
|
|||||||
{
|
{
|
||||||
"blockstates": {
|
"blockstates": {
|
||||||
"1126": "minecraft:tnt[unstable=false]",
|
"1126": "tnt[unstable=false]",
|
||||||
"3075": "minecraft:oak_sign[rotation=0,waterlogged=true]",
|
"3075": "oak_sign[rotation=0,waterlogged=true]",
|
||||||
"3076": "minecraft:oak_sign[rotation=0,waterlogged=false]",
|
"3076": "oak_sign[rotation=0,waterlogged=false]",
|
||||||
"3077": "minecraft:oak_sign[rotation=1,waterlogged=true]",
|
"3077": "oak_sign[rotation=1,waterlogged=true]",
|
||||||
"3078": "minecraft:oak_sign[rotation=1,waterlogged=false]",
|
"3078": "oak_sign[rotation=1,waterlogged=false]",
|
||||||
"3079": "minecraft:oak_sign[rotation=2,waterlogged=true]",
|
"3079": "oak_sign[rotation=2,waterlogged=true]",
|
||||||
"3080": "minecraft:oak_sign[rotation=2,waterlogged=false]",
|
"3080": "oak_sign[rotation=2,waterlogged=false]",
|
||||||
"3081": "minecraft:oak_sign[rotation=3,waterlogged=true]",
|
"3081": "oak_sign[rotation=3,waterlogged=true]",
|
||||||
"3082": "minecraft:oak_sign[rotation=3,waterlogged=false]",
|
"3082": "oak_sign[rotation=3,waterlogged=false]",
|
||||||
"3083": "minecraft:oak_sign[rotation=4,waterlogged=true]",
|
"3083": "oak_sign[rotation=4,waterlogged=true]",
|
||||||
"3084": "minecraft:oak_sign[rotation=4,waterlogged=false]",
|
"3084": "oak_sign[rotation=4,waterlogged=false]",
|
||||||
"3085": "minecraft:oak_sign[rotation=5,waterlogged=true]",
|
"3085": "oak_sign[rotation=5,waterlogged=true]",
|
||||||
"3086": "minecraft:oak_sign[rotation=5,waterlogged=false]",
|
"3086": "oak_sign[rotation=5,waterlogged=false]",
|
||||||
"3087": "minecraft:oak_sign[rotation=6,waterlogged=true]",
|
"3087": "oak_sign[rotation=6,waterlogged=true]",
|
||||||
"3088": "minecraft:oak_sign[rotation=6,waterlogged=false]",
|
"3088": "oak_sign[rotation=6,waterlogged=false]",
|
||||||
"3089": "minecraft:oak_sign[rotation=7,waterlogged=true]",
|
"3089": "oak_sign[rotation=7,waterlogged=true]",
|
||||||
"3090": "minecraft:oak_sign[rotation=7,waterlogged=false]",
|
"3090": "oak_sign[rotation=7,waterlogged=false]",
|
||||||
"3091": "minecraft:oak_sign[rotation=8,waterlogged=true]",
|
"3091": "oak_sign[rotation=8,waterlogged=true]",
|
||||||
"3092": "minecraft:oak_sign[rotation=8,waterlogged=false]",
|
"3092": "oak_sign[rotation=8,waterlogged=false]",
|
||||||
"3093": "minecraft:oak_sign[rotation=9,waterlogged=true]",
|
"3093": "oak_sign[rotation=9,waterlogged=true]",
|
||||||
"3094": "minecraft:oak_sign[rotation=9,waterlogged=false]",
|
"3094": "oak_sign[rotation=9,waterlogged=false]",
|
||||||
"3095": "minecraft:oak_sign[rotation=10,waterlogged=true]",
|
"3095": "oak_sign[rotation=10,waterlogged=true]",
|
||||||
"3096": "minecraft:oak_sign[rotation=10,waterlogged=false]",
|
"3096": "oak_sign[rotation=10,waterlogged=false]",
|
||||||
"3097": "minecraft:oak_sign[rotation=11,waterlogged=true]",
|
"3097": "oak_sign[rotation=11,waterlogged=true]",
|
||||||
"3098": "minecraft:oak_sign[rotation=11,waterlogged=false]",
|
"3098": "oak_sign[rotation=11,waterlogged=false]",
|
||||||
"3099": "minecraft:oak_sign[rotation=12,waterlogged=true]",
|
"3099": "oak_sign[rotation=12,waterlogged=true]",
|
||||||
"3100": "minecraft:oak_sign[rotation=12,waterlogged=false]",
|
"3100": "oak_sign[rotation=12,waterlogged=false]",
|
||||||
"3101": "minecraft:oak_sign[rotation=13,waterlogged=true]",
|
"3101": "oak_sign[rotation=13,waterlogged=true]",
|
||||||
"3102": "minecraft:oak_sign[rotation=13,waterlogged=false]",
|
"3102": "oak_sign[rotation=13,waterlogged=false]",
|
||||||
"3103": "minecraft:oak_sign[rotation=14,waterlogged=true]",
|
"3103": "oak_sign[rotation=14,waterlogged=true]",
|
||||||
"3104": "minecraft:oak_sign[rotation=14,waterlogged=false]",
|
"3104": "oak_sign[rotation=14,waterlogged=false]",
|
||||||
"3105": "minecraft:oak_sign[rotation=15,waterlogged=true]",
|
"3105": "oak_sign[rotation=15,waterlogged=true]",
|
||||||
"3106": "minecraft:oak_sign[rotation=15,waterlogged=false]",
|
"3106": "oak_sign[rotation=15,waterlogged=false]",
|
||||||
"3269": "minecraft:oak_wall_sign[facing=north,waterlogged=true]",
|
"3269": "oak_wall_sign[facing=north,waterlogged=true]",
|
||||||
"3270": "minecraft:oak_wall_sign[facing=north,waterlogged=false]",
|
"3270": "oak_wall_sign[facing=north,waterlogged=false]",
|
||||||
"3271": "minecraft:oak_wall_sign[facing=south,waterlogged=true]",
|
"3271": "oak_wall_sign[facing=south,waterlogged=true]",
|
||||||
"3272": "minecraft:oak_wall_sign[facing=south,waterlogged=false]",
|
"3272": "oak_wall_sign[facing=south,waterlogged=false]",
|
||||||
"3273": "minecraft:oak_wall_sign[facing=west,waterlogged=true]",
|
"3273": "oak_wall_sign[facing=west,waterlogged=true]",
|
||||||
"3274": "minecraft:oak_wall_sign[facing=west,waterlogged=false]",
|
"3274": "oak_wall_sign[facing=west,waterlogged=false]",
|
||||||
"3275": "minecraft:oak_wall_sign[facing=east,waterlogged=true]",
|
"3275": "oak_wall_sign[facing=east,waterlogged=true]",
|
||||||
"3276": "minecraft:oak_wall_sign[facing=east,waterlogged=false]",
|
"3276": "oak_wall_sign[facing=east,waterlogged=false]",
|
||||||
"7293": "minecraft:smooth_stone_slab[type=top,waterlogged=true]",
|
"7293": "smooth_stone_slab[type=top,waterlogged=true]",
|
||||||
"7294": "minecraft:smooth_stone_slab[type=top,waterlogged=false]",
|
"7294": "smooth_stone_slab[type=top,waterlogged=false]",
|
||||||
"7295": "minecraft:smooth_stone_slab[type=bottom,waterlogged=true]",
|
"7295": "smooth_stone_slab[type=bottom,waterlogged=true]",
|
||||||
"7296": "minecraft:smooth_stone_slab[type=bottom,waterlogged=false]",
|
"7296": "smooth_stone_slab[type=bottom,waterlogged=false]",
|
||||||
"7297": "minecraft:smooth_stone_slab[type=double,waterlogged=true]",
|
"7297": "smooth_stone_slab[type=double,waterlogged=true]",
|
||||||
"7298": "minecraft:smooth_stone_slab[type=double,waterlogged=false]",
|
"7298": "smooth_stone_slab[type=double,waterlogged=false]",
|
||||||
"8459": "minecraft:tube_coral[waterlogged=true]",
|
"8459": "tube_coral[waterlogged=true]",
|
||||||
"8460": "minecraft:brain_coral[waterlogged=true]",
|
"8460": "brain_coral[waterlogged=true]",
|
||||||
"8461": "minecraft:bubble_coral[waterlogged=true]",
|
"8461": "bubble_coral[waterlogged=true]",
|
||||||
"8462": "minecraft:fire_coral[waterlogged=true]",
|
"8462": "fire_coral[waterlogged=true]",
|
||||||
"8463": "minecraft:horn_coral[waterlogged=true]",
|
"8463": "horn_coral[waterlogged=true]",
|
||||||
"8573": "minecraft:conduit[waterlogged=true]"
|
"8573": "conduit[waterlogged=true]"
|
||||||
},
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"118": "minecraft:smooth_stone_slab",
|
"118": "smooth_stone_slab",
|
||||||
"536": "minecraft:oak_sign",
|
"536": "oak_sign",
|
||||||
"573": "minecraft:red_dye",
|
"573": "red_dye",
|
||||||
"574": "minecraft:green_dye",
|
"574": "green_dye",
|
||||||
"583": "minecraft:yellow_dye"
|
"583": "yellow_dye"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"blockstates": {
|
"blockstates": {
|
||||||
"11198": "minecraft:bell[attachment=floor,facing=north,powered=false]",
|
"11198": "bell[attachment=floor,facing=north,powered=false]",
|
||||||
"11199": "minecraft:bell[attachment=floor,facing=south,powered=false]",
|
"11199": "bell[attachment=floor,facing=south,powered=false]",
|
||||||
"11200": "minecraft:bell[attachment=floor,facing=west,powered=false]",
|
"11200": "bell[attachment=floor,facing=west,powered=false]",
|
||||||
"11201": "minecraft:bell[attachment=floor,facing=east,powered=false]",
|
"11201": "bell[attachment=floor,facing=east,powered=false]",
|
||||||
"11202": "minecraft:bell[attachment=ceiling,facing=north,powered=false]",
|
"11202": "bell[attachment=ceiling,facing=north,powered=false]",
|
||||||
"11203": "minecraft:bell[attachment=ceiling,facing=south,powered=false]",
|
"11203": "bell[attachment=ceiling,facing=south,powered=false]",
|
||||||
"11204": "minecraft:bell[attachment=ceiling,facing=west,powered=false]",
|
"11204": "bell[attachment=ceiling,facing=west,powered=false]",
|
||||||
"11205": "minecraft:bell[attachment=ceiling,facing=east,powered=false]",
|
"11205": "bell[attachment=ceiling,facing=east,powered=false]",
|
||||||
"11206": "minecraft:bell[attachment=single_wall,facing=north,powered=false]",
|
"11206": "bell[attachment=single_wall,facing=north,powered=false]",
|
||||||
"11207": "minecraft:bell[attachment=single_wall,facing=south,powered=false]",
|
"11207": "bell[attachment=single_wall,facing=south,powered=false]",
|
||||||
"11208": "minecraft:bell[attachment=single_wall,facing=west,powered=false]",
|
"11208": "bell[attachment=single_wall,facing=west,powered=false]",
|
||||||
"11209": "minecraft:bell[attachment=single_wall,facing=east,powered=false]",
|
"11209": "bell[attachment=single_wall,facing=east,powered=false]",
|
||||||
"11210": "minecraft:bell[attachment=double_wall,facing=north,powered=false]",
|
"11210": "bell[attachment=double_wall,facing=north,powered=false]",
|
||||||
"11211": "minecraft:bell[attachment=double_wall,facing=south,powered=false]",
|
"11211": "bell[attachment=double_wall,facing=south,powered=false]",
|
||||||
"11212": "minecraft:bell[attachment=double_wall,facing=west,powered=false]",
|
"11212": "bell[attachment=double_wall,facing=west,powered=false]",
|
||||||
"11213": "minecraft:bell[attachment=double_wall,facing=east,powered=false]"
|
"11213": "bell[attachment=double_wall,facing=east,powered=false]"
|
||||||
}
|
}
|
||||||
}
|
}
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"blockstates": {
|
"blockstates": {
|
||||||
"4729": "minecraft:chain[axis=y,waterlogged=true]",
|
"4729": "chain[axis=y,waterlogged=true]",
|
||||||
"4730": "minecraft:chain[axis=y,waterlogged=false]",
|
"4730": "chain[axis=y,waterlogged=false]",
|
||||||
"14886": "minecraft:lantern[hanging=true,waterlogged=false]",
|
"14886": "lantern[hanging=true,waterlogged=false]",
|
||||||
"14887": "minecraft:lantern[hanging=false,waterlogged=false]",
|
"14887": "lantern[hanging=false,waterlogged=false]",
|
||||||
"14888": "minecraft:soul_lantern[hanging=true,waterlogged=false]",
|
"14888": "soul_lantern[hanging=true,waterlogged=false]",
|
||||||
"14889": "minecraft:soul_lantern[hanging=false,waterlogged=false]"
|
"14889": "soul_lantern[hanging=false,waterlogged=false]"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,200 +1,200 @@
|
|||||||
{
|
{
|
||||||
"blockstates": {
|
"blockstates": {
|
||||||
"148": "minecraft:oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
"148": "oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"149": "minecraft:oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
"149": "oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"150": "minecraft:oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
"150": "oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"151": "minecraft:oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
"151": "oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"152": "minecraft:oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
"152": "oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"153": "minecraft:oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
"153": "oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"154": "minecraft:oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
"154": "oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"155": "minecraft:oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
"155": "oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"156": "minecraft:oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
"156": "oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"157": "minecraft:oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
"157": "oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"158": "minecraft:oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
"158": "oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"159": "minecraft:oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
"159": "oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"160": "minecraft:oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
"160": "oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"161": "minecraft:oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
"161": "oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"162": "minecraft:spruce_leaves[distance=1,persistent=true,waterlogged=false]",
|
"162": "spruce_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"163": "minecraft:spruce_leaves[distance=1,persistent=false,waterlogged=false]",
|
"163": "spruce_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"164": "minecraft:spruce_leaves[distance=2,persistent=true,waterlogged=false]",
|
"164": "spruce_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"165": "minecraft:spruce_leaves[distance=2,persistent=false,waterlogged=false]",
|
"165": "spruce_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"166": "minecraft:spruce_leaves[distance=3,persistent=true,waterlogged=false]",
|
"166": "spruce_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"167": "minecraft:spruce_leaves[distance=3,persistent=false,waterlogged=false]",
|
"167": "spruce_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"168": "minecraft:spruce_leaves[distance=4,persistent=true,waterlogged=false]",
|
"168": "spruce_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"169": "minecraft:spruce_leaves[distance=4,persistent=false,waterlogged=false]",
|
"169": "spruce_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"170": "minecraft:spruce_leaves[distance=5,persistent=true,waterlogged=false]",
|
"170": "spruce_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"171": "minecraft:spruce_leaves[distance=5,persistent=false,waterlogged=false]",
|
"171": "spruce_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"172": "minecraft:spruce_leaves[distance=6,persistent=true,waterlogged=false]",
|
"172": "spruce_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"173": "minecraft:spruce_leaves[distance=6,persistent=false,waterlogged=false]",
|
"173": "spruce_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"174": "minecraft:spruce_leaves[distance=7,persistent=true,waterlogged=false]",
|
"174": "spruce_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"175": "minecraft:spruce_leaves[distance=7,persistent=false,waterlogged=false]",
|
"175": "spruce_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"176": "minecraft:birch_leaves[distance=1,persistent=true,waterlogged=false]",
|
"176": "birch_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"177": "minecraft:birch_leaves[distance=1,persistent=false,waterlogged=false]",
|
"177": "birch_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"178": "minecraft:birch_leaves[distance=2,persistent=true,waterlogged=false]",
|
"178": "birch_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"179": "minecraft:birch_leaves[distance=2,persistent=false,waterlogged=false]",
|
"179": "birch_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"180": "minecraft:birch_leaves[distance=3,persistent=true,waterlogged=false]",
|
"180": "birch_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"181": "minecraft:birch_leaves[distance=3,persistent=false,waterlogged=false]",
|
"181": "birch_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"182": "minecraft:birch_leaves[distance=4,persistent=true,waterlogged=false]",
|
"182": "birch_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"183": "minecraft:birch_leaves[distance=4,persistent=false,waterlogged=false]",
|
"183": "birch_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"184": "minecraft:birch_leaves[distance=5,persistent=true,waterlogged=false]",
|
"184": "birch_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"185": "minecraft:birch_leaves[distance=5,persistent=false,waterlogged=false]",
|
"185": "birch_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"186": "minecraft:birch_leaves[distance=6,persistent=true,waterlogged=false]",
|
"186": "birch_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"187": "minecraft:birch_leaves[distance=6,persistent=false,waterlogged=false]",
|
"187": "birch_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"188": "minecraft:birch_leaves[distance=7,persistent=true,waterlogged=false]",
|
"188": "birch_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"189": "minecraft:birch_leaves[distance=7,persistent=false,waterlogged=false]",
|
"189": "birch_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"190": "minecraft:jungle_leaves[distance=1,persistent=true,waterlogged=false]",
|
"190": "jungle_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"191": "minecraft:jungle_leaves[distance=1,persistent=false,waterlogged=false]",
|
"191": "jungle_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"192": "minecraft:jungle_leaves[distance=2,persistent=true,waterlogged=false]",
|
"192": "jungle_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"193": "minecraft:jungle_leaves[distance=2,persistent=false,waterlogged=false]",
|
"193": "jungle_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"194": "minecraft:jungle_leaves[distance=3,persistent=true,waterlogged=false]",
|
"194": "jungle_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"195": "minecraft:jungle_leaves[distance=3,persistent=false,waterlogged=false]",
|
"195": "jungle_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"196": "minecraft:jungle_leaves[distance=4,persistent=true,waterlogged=false]",
|
"196": "jungle_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"197": "minecraft:jungle_leaves[distance=4,persistent=false,waterlogged=false]",
|
"197": "jungle_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"198": "minecraft:jungle_leaves[distance=5,persistent=true,waterlogged=false]",
|
"198": "jungle_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"199": "minecraft:jungle_leaves[distance=5,persistent=false,waterlogged=false]",
|
"199": "jungle_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"200": "minecraft:jungle_leaves[distance=6,persistent=true,waterlogged=false]",
|
"200": "jungle_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"201": "minecraft:jungle_leaves[distance=6,persistent=false,waterlogged=false]",
|
"201": "jungle_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"202": "minecraft:jungle_leaves[distance=7,persistent=true,waterlogged=false]",
|
"202": "jungle_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"203": "minecraft:jungle_leaves[distance=7,persistent=false,waterlogged=false]",
|
"203": "jungle_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"204": "minecraft:acacia_leaves[distance=1,persistent=true,waterlogged=false]",
|
"204": "acacia_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"205": "minecraft:acacia_leaves[distance=1,persistent=false,waterlogged=false]",
|
"205": "acacia_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"206": "minecraft:acacia_leaves[distance=2,persistent=true,waterlogged=false]",
|
"206": "acacia_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"207": "minecraft:acacia_leaves[distance=2,persistent=false,waterlogged=false]",
|
"207": "acacia_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"208": "minecraft:acacia_leaves[distance=3,persistent=true,waterlogged=false]",
|
"208": "acacia_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"209": "minecraft:acacia_leaves[distance=3,persistent=false,waterlogged=false]",
|
"209": "acacia_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"210": "minecraft:acacia_leaves[distance=4,persistent=true,waterlogged=false]",
|
"210": "acacia_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"211": "minecraft:acacia_leaves[distance=4,persistent=false,waterlogged=false]",
|
"211": "acacia_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"212": "minecraft:acacia_leaves[distance=5,persistent=true,waterlogged=false]",
|
"212": "acacia_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"213": "minecraft:acacia_leaves[distance=5,persistent=false,waterlogged=false]",
|
"213": "acacia_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"214": "minecraft:acacia_leaves[distance=6,persistent=true,waterlogged=false]",
|
"214": "acacia_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"215": "minecraft:acacia_leaves[distance=6,persistent=false,waterlogged=false]",
|
"215": "acacia_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"216": "minecraft:acacia_leaves[distance=7,persistent=true,waterlogged=false]",
|
"216": "acacia_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"217": "minecraft:acacia_leaves[distance=7,persistent=false,waterlogged=false]",
|
"217": "acacia_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"218": "minecraft:dark_oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
"218": "dark_oak_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"219": "minecraft:dark_oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
"219": "dark_oak_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"220": "minecraft:dark_oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
"220": "dark_oak_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"221": "minecraft:dark_oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
"221": "dark_oak_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"222": "minecraft:dark_oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
"222": "dark_oak_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"223": "minecraft:dark_oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
"223": "dark_oak_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"224": "minecraft:dark_oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
"224": "dark_oak_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"225": "minecraft:dark_oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
"225": "dark_oak_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"226": "minecraft:dark_oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
"226": "dark_oak_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"227": "minecraft:dark_oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
"227": "dark_oak_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"228": "minecraft:dark_oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
"228": "dark_oak_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"229": "minecraft:dark_oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
"229": "dark_oak_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"230": "minecraft:dark_oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
"230": "dark_oak_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"231": "minecraft:dark_oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
"231": "dark_oak_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"232": "minecraft:azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
"232": "azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"233": "minecraft:azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
"233": "azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"234": "minecraft:azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
"234": "azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"235": "minecraft:azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
"235": "azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"236": "minecraft:azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
"236": "azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"237": "minecraft:azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
"237": "azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"238": "minecraft:azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
"238": "azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"239": "minecraft:azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
"239": "azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"240": "minecraft:azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
"240": "azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"241": "minecraft:azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
"241": "azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"242": "minecraft:azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
"242": "azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"243": "minecraft:azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
"243": "azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"244": "minecraft:azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
"244": "azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"245": "minecraft:azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
"245": "azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"246": "minecraft:flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
"246": "flowering_azalea_leaves[distance=1,persistent=true,waterlogged=false]",
|
||||||
"247": "minecraft:flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
"247": "flowering_azalea_leaves[distance=1,persistent=false,waterlogged=false]",
|
||||||
"248": "minecraft:flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
"248": "flowering_azalea_leaves[distance=2,persistent=true,waterlogged=false]",
|
||||||
"249": "minecraft:flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
"249": "flowering_azalea_leaves[distance=2,persistent=false,waterlogged=false]",
|
||||||
"250": "minecraft:flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
"250": "flowering_azalea_leaves[distance=3,persistent=true,waterlogged=false]",
|
||||||
"251": "minecraft:flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
"251": "flowering_azalea_leaves[distance=3,persistent=false,waterlogged=false]",
|
||||||
"252": "minecraft:flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
"252": "flowering_azalea_leaves[distance=4,persistent=true,waterlogged=false]",
|
||||||
"253": "minecraft:flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
"253": "flowering_azalea_leaves[distance=4,persistent=false,waterlogged=false]",
|
||||||
"254": "minecraft:flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
"254": "flowering_azalea_leaves[distance=5,persistent=true,waterlogged=false]",
|
||||||
"255": "minecraft:flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
"255": "flowering_azalea_leaves[distance=5,persistent=false,waterlogged=false]",
|
||||||
"256": "minecraft:flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
"256": "flowering_azalea_leaves[distance=6,persistent=true,waterlogged=false]",
|
||||||
"257": "minecraft:flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
"257": "flowering_azalea_leaves[distance=6,persistent=false,waterlogged=false]",
|
||||||
"258": "minecraft:flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
"258": "flowering_azalea_leaves[distance=7,persistent=true,waterlogged=false]",
|
||||||
"259": "minecraft:flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
"259": "flowering_azalea_leaves[distance=7,persistent=false,waterlogged=false]",
|
||||||
"1416": "minecraft:piston_head[type=normal,facing=north,short=true]",
|
"1416": "piston_head[type=normal,facing=north,short=true]",
|
||||||
"1417": "minecraft:piston_head[type=sticky,facing=north,short=true]",
|
"1417": "piston_head[type=sticky,facing=north,short=true]",
|
||||||
"1418": "minecraft:piston_head[type=normal,facing=north,short=false]",
|
"1418": "piston_head[type=normal,facing=north,short=false]",
|
||||||
"1419": "minecraft:piston_head[type=sticky,facing=north,short=false]",
|
"1419": "piston_head[type=sticky,facing=north,short=false]",
|
||||||
"1420": "minecraft:piston_head[type=normal,facing=east,short=true]",
|
"1420": "piston_head[type=normal,facing=east,short=true]",
|
||||||
"1421": "minecraft:piston_head[type=sticky,facing=east,short=true]",
|
"1421": "piston_head[type=sticky,facing=east,short=true]",
|
||||||
"1422": "minecraft:piston_head[type=normal,facing=east,short=false]",
|
"1422": "piston_head[type=normal,facing=east,short=false]",
|
||||||
"1423": "minecraft:piston_head[type=sticky,facing=east,short=false]",
|
"1423": "piston_head[type=sticky,facing=east,short=false]",
|
||||||
"1424": "minecraft:piston_head[type=normal,facing=south,short=true]",
|
"1424": "piston_head[type=normal,facing=south,short=true]",
|
||||||
"1425": "minecraft:piston_head[type=sticky,facing=south,short=true]",
|
"1425": "piston_head[type=sticky,facing=south,short=true]",
|
||||||
"1426": "minecraft:piston_head[type=normal,facing=south,short=false]",
|
"1426": "piston_head[type=normal,facing=south,short=false]",
|
||||||
"1427": "minecraft:piston_head[type=sticky,facing=south,short=false]",
|
"1427": "piston_head[type=sticky,facing=south,short=false]",
|
||||||
"1428": "minecraft:piston_head[type=normal,facing=west,short=true]",
|
"1428": "piston_head[type=normal,facing=west,short=true]",
|
||||||
"1429": "minecraft:piston_head[type=sticky,facing=west,short=true]",
|
"1429": "piston_head[type=sticky,facing=west,short=true]",
|
||||||
"1430": "minecraft:piston_head[type=normal,facing=west,short=false]",
|
"1430": "piston_head[type=normal,facing=west,short=false]",
|
||||||
"1431": "minecraft:piston_head[type=sticky,facing=west,short=false]",
|
"1431": "piston_head[type=sticky,facing=west,short=false]",
|
||||||
"1432": "minecraft:piston_head[type=normal,facing=up,short=true]",
|
"1432": "piston_head[type=normal,facing=up,short=true]",
|
||||||
"1433": "minecraft:piston_head[type=sticky,facing=up,short=true]",
|
"1433": "piston_head[type=sticky,facing=up,short=true]",
|
||||||
"1434": "minecraft:piston_head[type=normal,facing=up,short=false]",
|
"1434": "piston_head[type=normal,facing=up,short=false]",
|
||||||
"1435": "minecraft:piston_head[type=sticky,facing=up,short=false]",
|
"1435": "piston_head[type=sticky,facing=up,short=false]",
|
||||||
"1436": "minecraft:piston_head[type=normal,facing=down,short=true]",
|
"1436": "piston_head[type=normal,facing=down,short=true]",
|
||||||
"1437": "minecraft:piston_head[type=sticky,facing=down,short=true]",
|
"1437": "piston_head[type=sticky,facing=down,short=true]",
|
||||||
"1438": "minecraft:piston_head[type=normal,facing=down,short=false]",
|
"1438": "piston_head[type=normal,facing=down,short=false]",
|
||||||
"1439": "minecraft:piston_head[type=sticky,facing=down,short=false]",
|
"1439": "piston_head[type=sticky,facing=down,short=false]",
|
||||||
"1456": "minecraft:moving_piston[type=normal,facing=north]",
|
"1456": "moving_piston[type=normal,facing=north]",
|
||||||
"1457": "minecraft:moving_piston[type=sticky,facing=north]",
|
"1457": "moving_piston[type=sticky,facing=north]",
|
||||||
"1458": "minecraft:moving_piston[type=normal,facing=east]",
|
"1458": "moving_piston[type=normal,facing=east]",
|
||||||
"1459": "minecraft:moving_piston[type=sticky,facing=east]",
|
"1459": "moving_piston[type=sticky,facing=east]",
|
||||||
"1460": "minecraft:moving_piston[type=normal,facing=south]",
|
"1460": "moving_piston[type=normal,facing=south]",
|
||||||
"1461": "minecraft:moving_piston[type=sticky,facing=south]",
|
"1461": "moving_piston[type=sticky,facing=south]",
|
||||||
"1462": "minecraft:moving_piston[type=normal,facing=west]",
|
"1462": "moving_piston[type=normal,facing=west]",
|
||||||
"1463": "minecraft:moving_piston[type=sticky,facing=west]",
|
"1463": "moving_piston[type=sticky,facing=west]",
|
||||||
"1464": "minecraft:moving_piston[type=normal,facing=up]",
|
"1464": "moving_piston[type=normal,facing=up]",
|
||||||
"1465": "minecraft:moving_piston[type=sticky,facing=up]",
|
"1465": "moving_piston[type=sticky,facing=up]",
|
||||||
"1466": "minecraft:moving_piston[type=normal,facing=down]",
|
"1466": "moving_piston[type=normal,facing=down]",
|
||||||
"1467": "minecraft:moving_piston[type=sticky,facing=down]",
|
"1467": "moving_piston[type=sticky,facing=down]",
|
||||||
"2090": "minecraft:chest[type=single,facing=north,waterlogged=true]",
|
"2090": "chest[type=single,facing=north,waterlogged=true]",
|
||||||
"2091": "minecraft:chest[type=single,facing=north,waterlogged=false]",
|
"2091": "chest[type=single,facing=north,waterlogged=false]",
|
||||||
"2092": "minecraft:chest[type=left,facing=north,waterlogged=true]",
|
"2092": "chest[type=left,facing=north,waterlogged=true]",
|
||||||
"2093": "minecraft:chest[type=left,facing=north,waterlogged=false]",
|
"2093": "chest[type=left,facing=north,waterlogged=false]",
|
||||||
"2094": "minecraft:chest[type=right,facing=north,waterlogged=true]",
|
"2094": "chest[type=right,facing=north,waterlogged=true]",
|
||||||
"2095": "minecraft:chest[type=right,facing=north,waterlogged=false]",
|
"2095": "chest[type=right,facing=north,waterlogged=false]",
|
||||||
"2096": "minecraft:chest[type=single,facing=south,waterlogged=true]",
|
"2096": "chest[type=single,facing=south,waterlogged=true]",
|
||||||
"2097": "minecraft:chest[type=single,facing=south,waterlogged=false]",
|
"2097": "chest[type=single,facing=south,waterlogged=false]",
|
||||||
"2098": "minecraft:chest[type=left,facing=south,waterlogged=true]",
|
"2098": "chest[type=left,facing=south,waterlogged=true]",
|
||||||
"2099": "minecraft:chest[type=left,facing=south,waterlogged=false]",
|
"2099": "chest[type=left,facing=south,waterlogged=false]",
|
||||||
"2100": "minecraft:chest[type=right,facing=south,waterlogged=true]",
|
"2100": "chest[type=right,facing=south,waterlogged=true]",
|
||||||
"2101": "minecraft:chest[type=right,facing=south,waterlogged=false]",
|
"2101": "chest[type=right,facing=south,waterlogged=false]",
|
||||||
"2102": "minecraft:chest[type=single,facing=west,waterlogged=true]",
|
"2102": "chest[type=single,facing=west,waterlogged=true]",
|
||||||
"2103": "minecraft:chest[type=single,facing=west,waterlogged=false]",
|
"2103": "chest[type=single,facing=west,waterlogged=false]",
|
||||||
"2104": "minecraft:chest[type=left,facing=west,waterlogged=true]",
|
"2104": "chest[type=left,facing=west,waterlogged=true]",
|
||||||
"2105": "minecraft:chest[type=left,facing=west,waterlogged=false]",
|
"2105": "chest[type=left,facing=west,waterlogged=false]",
|
||||||
"2106": "minecraft:chest[type=right,facing=west,waterlogged=true]",
|
"2106": "chest[type=right,facing=west,waterlogged=true]",
|
||||||
"2107": "minecraft:chest[type=right,facing=west,waterlogged=false]",
|
"2107": "chest[type=right,facing=west,waterlogged=false]",
|
||||||
"2108": "minecraft:chest[type=single,facing=east,waterlogged=true]",
|
"2108": "chest[type=single,facing=east,waterlogged=true]",
|
||||||
"2109": "minecraft:chest[type=single,facing=east,waterlogged=false]",
|
"2109": "chest[type=single,facing=east,waterlogged=false]",
|
||||||
"2110": "minecraft:chest[type=left,facing=east,waterlogged=true]",
|
"2110": "chest[type=left,facing=east,waterlogged=true]",
|
||||||
"2111": "minecraft:chest[type=left,facing=east,waterlogged=false]",
|
"2111": "chest[type=left,facing=east,waterlogged=false]",
|
||||||
"2112": "minecraft:chest[type=right,facing=east,waterlogged=true]",
|
"2112": "chest[type=right,facing=east,waterlogged=true]",
|
||||||
"2113": "minecraft:chest[type=right,facing=east,waterlogged=false]",
|
"2113": "chest[type=right,facing=east,waterlogged=false]",
|
||||||
"6828": "minecraft:trapped_chest[type=single,facing=north,waterlogged=true]",
|
"6828": "trapped_chest[type=single,facing=north,waterlogged=true]",
|
||||||
"6829": "minecraft:trapped_chest[type=single,facing=north,waterlogged=false]",
|
"6829": "trapped_chest[type=single,facing=north,waterlogged=false]",
|
||||||
"6830": "minecraft:trapped_chest[type=left,facing=north,waterlogged=true]",
|
"6830": "trapped_chest[type=left,facing=north,waterlogged=true]",
|
||||||
"6831": "minecraft:trapped_chest[type=left,facing=north,waterlogged=false]",
|
"6831": "trapped_chest[type=left,facing=north,waterlogged=false]",
|
||||||
"6832": "minecraft:trapped_chest[type=right,facing=north,waterlogged=true]",
|
"6832": "trapped_chest[type=right,facing=north,waterlogged=true]",
|
||||||
"6833": "minecraft:trapped_chest[type=right,facing=north,waterlogged=false]",
|
"6833": "trapped_chest[type=right,facing=north,waterlogged=false]",
|
||||||
"6834": "minecraft:trapped_chest[type=single,facing=south,waterlogged=true]",
|
"6834": "trapped_chest[type=single,facing=south,waterlogged=true]",
|
||||||
"6835": "minecraft:trapped_chest[type=single,facing=south,waterlogged=false]",
|
"6835": "trapped_chest[type=single,facing=south,waterlogged=false]",
|
||||||
"6836": "minecraft:trapped_chest[type=left,facing=south,waterlogged=true]",
|
"6836": "trapped_chest[type=left,facing=south,waterlogged=true]",
|
||||||
"6837": "minecraft:trapped_chest[type=left,facing=south,waterlogged=false]",
|
"6837": "trapped_chest[type=left,facing=south,waterlogged=false]",
|
||||||
"6838": "minecraft:trapped_chest[type=right,facing=south,waterlogged=true]",
|
"6838": "trapped_chest[type=right,facing=south,waterlogged=true]",
|
||||||
"6839": "minecraft:trapped_chest[type=right,facing=south,waterlogged=false]",
|
"6839": "trapped_chest[type=right,facing=south,waterlogged=false]",
|
||||||
"6840": "minecraft:trapped_chest[type=single,facing=west,waterlogged=true]",
|
"6840": "trapped_chest[type=single,facing=west,waterlogged=true]",
|
||||||
"6841": "minecraft:trapped_chest[type=single,facing=west,waterlogged=false]",
|
"6841": "trapped_chest[type=single,facing=west,waterlogged=false]",
|
||||||
"6842": "minecraft:trapped_chest[type=left,facing=west,waterlogged=true]",
|
"6842": "trapped_chest[type=left,facing=west,waterlogged=true]",
|
||||||
"6843": "minecraft:trapped_chest[type=left,facing=west,waterlogged=false]",
|
"6843": "trapped_chest[type=left,facing=west,waterlogged=false]",
|
||||||
"6844": "minecraft:trapped_chest[type=right,facing=west,waterlogged=true]",
|
"6844": "trapped_chest[type=right,facing=west,waterlogged=true]",
|
||||||
"6845": "minecraft:trapped_chest[type=right,facing=west,waterlogged=false]",
|
"6845": "trapped_chest[type=right,facing=west,waterlogged=false]",
|
||||||
"6846": "minecraft:trapped_chest[type=single,facing=east,waterlogged=true]",
|
"6846": "trapped_chest[type=single,facing=east,waterlogged=true]",
|
||||||
"6847": "minecraft:trapped_chest[type=single,facing=east,waterlogged=false]",
|
"6847": "trapped_chest[type=single,facing=east,waterlogged=false]",
|
||||||
"6848": "minecraft:trapped_chest[type=left,facing=east,waterlogged=true]",
|
"6848": "trapped_chest[type=left,facing=east,waterlogged=true]",
|
||||||
"6849": "minecraft:trapped_chest[type=left,facing=east,waterlogged=false]",
|
"6849": "trapped_chest[type=left,facing=east,waterlogged=false]",
|
||||||
"6850": "minecraft:trapped_chest[type=right,facing=east,waterlogged=true]",
|
"6850": "trapped_chest[type=right,facing=east,waterlogged=true]",
|
||||||
"6851": "minecraft:trapped_chest[type=right,facing=east,waterlogged=false]"
|
"6851": "trapped_chest[type=right,facing=east,waterlogged=false]"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"argumenttypes": {
|
"argumenttypes": {
|
||||||
"minecraft:item_enchantment": "minecraft:resource",
|
"item_enchantment": "resource",
|
||||||
"minecraft:mob_effect": "minecraft:resource",
|
"mob_effect": "resource",
|
||||||
"minecraft:entity_summon": "minecraft:resource"
|
"entity_summon": "resource"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,7 +4,7 @@ dependencyResolutionManagement {
|
|||||||
// configures repositories for all projects
|
// configures repositories for all projects
|
||||||
repositories {
|
repositories {
|
||||||
maven("https://repo.viaversion.com")
|
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://oss.sonatype.org/content/repositories/snapshots/")
|
||||||
maven("https://repo.spongepowered.org/repository/maven-public/")
|
maven("https://repo.spongepowered.org/repository/maven-public/")
|
||||||
maven("https://libraries.minecraft.net")
|
maven("https://libraries.minecraft.net")
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation(projects.viaversionCommon)
|
implementation(projects.viaversionCommon)
|
||||||
compileOnly(libs.velocity)
|
compileOnly(libs.velocity) {
|
||||||
|
exclude("com.velocitypowered", "velocity-brigadier")
|
||||||
|
}
|
||||||
annotationProcessor(libs.velocity)
|
annotationProcessor(libs.velocity)
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren