Mirror von
https://github.com/ViaVersion/ViaBackwards.git
synchronisiert 2024-12-24 15:20:19 +01:00
1.18-pre2
Dieser Commit ist enthalten in:
Ursprung
becba6498e
Commit
ce6ca4dc0f
@ -5,7 +5,7 @@ plugins {
|
||||
|
||||
allprojects {
|
||||
group = "com.viaversion"
|
||||
version = "4.1.0-1.18-pre1-SNAPSHOT"
|
||||
version = "4.1.0-1.18-pre2-SNAPSHOT"
|
||||
description = "Allow older clients to join newer server versions."
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,8 @@ public class BackwardsMappings extends MappingDataBase {
|
||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
||||
|
||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||
return new VBMappings(oldMappings.getAsJsonArray(key), newMappings.getAsJsonArray(key), diff, shouldWarnOnMissing(key));
|
||||
return VBMappings.vbBuilder().unmapped(oldMappings.getAsJsonArray(key)).mapped(newMappings.getAsJsonArray(key))
|
||||
.diffMappings(diff).warnOnMissing(shouldWarnOnMissing(key)).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -91,7 +92,8 @@ public class BackwardsMappings extends MappingDataBase {
|
||||
if (!oldMappings.has(key) || !newMappings.has(key)) return null;
|
||||
|
||||
JsonObject diff = diffMappings != null ? diffMappings.getAsJsonObject(key) : null;
|
||||
return new VBMappings(oldMappings.getAsJsonObject(key), newMappings.getAsJsonObject(key), diff, shouldWarnOnMissing(key));
|
||||
return VBMappings.vbBuilder().unmapped(oldMappings.getAsJsonObject(key)).mapped(newMappings.getAsJsonObject(key))
|
||||
.diffMappings(diff).warnOnMissing(shouldWarnOnMissing(key)).build();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,7 +38,7 @@ import java.io.InputStreamReader;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class VBMappingDataLoader {
|
||||
public final class VBMappingDataLoader {
|
||||
|
||||
public static JsonObject loadFromDataDir(String name) {
|
||||
File file = new File(ViaBackwards.getPlatform().getDataFolder(), name);
|
||||
@ -68,10 +68,6 @@ public class VBMappingDataLoader {
|
||||
}
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, JsonObject diffIdentifiers) {
|
||||
mapIdentifiers(output, oldIdentifiers, newIdentifiers, diffIdentifiers, true);
|
||||
}
|
||||
|
||||
public static void mapIdentifiers(int[] output, JsonObject oldIdentifiers, JsonObject newIdentifiers, JsonObject diffIdentifiers, boolean warnOnMissing) {
|
||||
Object2IntMap<String> newIdentifierMap = MappingDataLoader.indexedObjectToMap(newIdentifiers);
|
||||
for (Map.Entry<String, JsonElement> entry : oldIdentifiers.entrySet()) {
|
||||
@ -137,10 +133,6 @@ public class VBMappingDataLoader {
|
||||
return mappings;
|
||||
}
|
||||
|
||||
public static Int2ObjectMap<MappedItem> loadItemMappings(JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping) {
|
||||
return loadItemMappings(oldMapping, newMapping, diffMapping, false);
|
||||
}
|
||||
|
||||
public static Int2ObjectMap<MappedItem> loadItemMappings(JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping, boolean warnOnMissing) {
|
||||
Int2ObjectMap<MappedItem> itemMapping = new Int2ObjectOpenHashMap<>(diffMapping.size(), 0.99F);
|
||||
Object2IntMap<String> newIdenfierMap = MappingDataLoader.indexedObjectToMap(newMapping);
|
||||
|
@ -18,33 +18,44 @@
|
||||
package com.viaversion.viabackwards.api.data;
|
||||
|
||||
import com.viaversion.viaversion.api.data.IntArrayMappings;
|
||||
import com.viaversion.viaversion.libs.gson.JsonArray;
|
||||
import com.viaversion.viaversion.libs.gson.JsonObject;
|
||||
import com.viaversion.viaversion.api.data.MappingDataLoader;
|
||||
import com.viaversion.viaversion.api.data.Mappings;
|
||||
|
||||
import java.util.Arrays;
|
||||
public final class VBMappings extends IntArrayMappings {
|
||||
|
||||
public class VBMappings extends IntArrayMappings {
|
||||
|
||||
public VBMappings(int size, JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping, boolean warnOnMissing) {
|
||||
super(create(size, oldMapping, newMapping, diffMapping, warnOnMissing));
|
||||
private VBMappings(final int[] oldToNew, final int mappedIds) {
|
||||
super(oldToNew, mappedIds);
|
||||
}
|
||||
|
||||
public VBMappings(JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping, boolean warnOnMissing) {
|
||||
super(create(oldMapping.entrySet().size(), oldMapping, newMapping, diffMapping, warnOnMissing));
|
||||
public static Mappings.Builder<VBMappings> vbBuilder() {
|
||||
return new Builder(VBMappings::new);
|
||||
}
|
||||
|
||||
public VBMappings(JsonObject oldMapping, JsonObject newMapping, boolean warnOnMissing) {
|
||||
this(oldMapping, newMapping, null, warnOnMissing);
|
||||
}
|
||||
public static final class Builder extends Mappings.Builder<VBMappings> {
|
||||
|
||||
public VBMappings(JsonArray oldMapping, JsonArray newMapping, JsonObject diffMapping, boolean warnOnMissing) {
|
||||
super(oldMapping.size(), oldMapping, newMapping, diffMapping, warnOnMissing);
|
||||
}
|
||||
private Builder(final MappingsSupplier<VBMappings> supplier) {
|
||||
super(supplier);
|
||||
}
|
||||
|
||||
private static int[] create(int size, JsonObject oldMapping, JsonObject newMapping, JsonObject diffMapping, boolean warnOnMissing) {
|
||||
int[] oldToNew = new int[size];
|
||||
Arrays.fill(oldToNew, -1);
|
||||
VBMappingDataLoader.mapIdentifiers(oldToNew, oldMapping, newMapping, diffMapping, warnOnMissing);
|
||||
return oldToNew;
|
||||
@Override
|
||||
public VBMappings build() {
|
||||
final int size = this.size != -1 ? this.size : size(unmapped);
|
||||
final int mappedSize = this.mappedSize != -1 ? this.mappedSize : size(mapped);
|
||||
final int[] mappings = new int[size];
|
||||
// Do conversion if one is an array and the other an object, otherwise directly map
|
||||
if (unmapped.isJsonArray()) {
|
||||
if (mapped.isJsonObject()) {
|
||||
VBMappingDataLoader.mapIdentifiers(mappings, toJsonObject(unmapped.getAsJsonArray()), mapped.getAsJsonObject(), diffMappings, warnOnMissing);
|
||||
} else {
|
||||
// Use the normal loader
|
||||
MappingDataLoader.mapIdentifiers(mappings, unmapped.getAsJsonArray(), mapped.getAsJsonArray(), diffMappings, warnOnMissing);
|
||||
}
|
||||
} else if (mapped.isJsonArray()) {
|
||||
VBMappingDataLoader.mapIdentifiers(mappings, unmapped.getAsJsonObject(), toJsonObject(mapped.getAsJsonArray()), diffMappings, warnOnMissing);
|
||||
} else {
|
||||
VBMappingDataLoader.mapIdentifiers(mappings, unmapped.getAsJsonObject(), mapped.getAsJsonObject(), diffMappings, warnOnMissing);
|
||||
}
|
||||
return supplier.supply(mappings, mappedSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ public abstract class EntityRewriterBase<T extends BackwardsProtocol> extends En
|
||||
private final MetaType displayVisibilityMetaType;
|
||||
private final int displayNameIndex;
|
||||
private final int displayVisibilityIndex;
|
||||
protected boolean allowNullEntityType;
|
||||
|
||||
EntityRewriterBase(T protocol, MetaType displayNameMetaType, int displayNameIndex,
|
||||
MetaType displayVisibilityMetaType, int displayVisibilityIndex) {
|
||||
@ -65,12 +66,16 @@ public abstract class EntityRewriterBase<T extends BackwardsProtocol> extends En
|
||||
@Override
|
||||
public void handleMetadata(int entityId, List<Metadata> metadataList, UserConnection connection) {
|
||||
EntityType type = tracker(connection).entityType(entityId);
|
||||
if (type == null) {
|
||||
return; // Don't handle untracked entities - basically always the fault of a plugin sending virtual entities through concurrency-unsafe handling
|
||||
if (type == null && !allowNullEntityType) {
|
||||
return;
|
||||
}
|
||||
|
||||
super.handleMetadata(entityId, metadataList, connection);
|
||||
|
||||
if (type == null) {
|
||||
return; // Don't handle untracked entities - basically always the fault of a plugin sending virtual entities through concurrency-unsafe handling
|
||||
}
|
||||
|
||||
EntityData entityData = entityDataForType(type);
|
||||
|
||||
// Set the mapped entity name if there is no custom name set already
|
||||
|
@ -49,7 +49,8 @@ public class BackwardsMappings extends com.viaversion.viabackwards.api.data.Back
|
||||
|
||||
@Override
|
||||
public void loadVBExtras(JsonObject oldMappings, JsonObject newMappings) {
|
||||
enchantmentMappings = new VBMappings(oldMappings.getAsJsonObject("enchantments"), newMappings.getAsJsonObject("enchantments"), false);
|
||||
enchantmentMappings = VBMappings.vbBuilder().warnOnMissing(false)
|
||||
.unmapped(oldMappings.getAsJsonObject("enchantments")).mapped(newMappings.getAsJsonObject("enchantments")).build();
|
||||
for (Map.Entry<String, Integer> entry : StatisticMappings.CUSTOM_STATS.entrySet()) {
|
||||
statisticMappings.put(entry.getValue().intValue(), entry.getKey());
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ public final class EntityPackets1_18 extends EntityRewriter<Protocol1_17_1To1_18
|
||||
|
||||
public EntityPackets1_18(final Protocol1_17_1To1_18 protocol) {
|
||||
super(protocol);
|
||||
allowNullEntityType = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -120,6 +121,7 @@ public final class EntityPackets1_18 extends EntityRewriter<Protocol1_17_1To1_18
|
||||
});
|
||||
|
||||
// Particles have already been handled
|
||||
//registerMetaTypeHandler(Types1_17.META_TYPES.itemType, null, null, null);
|
||||
registerMetaTypeHandler(Types1_17.META_TYPES.itemType, null, null, null);
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,12 @@
|
||||
"music.overworld.snowy_slopes": "",
|
||||
"music.overworld.stony_peaks": ""
|
||||
},
|
||||
"items": {
|
||||
"minecraft:music_disc_otherside": {
|
||||
"id": "minecraft:music_disc_ward",
|
||||
"name": "1.18 Otherside Music Disc"
|
||||
}
|
||||
},
|
||||
"particles": {
|
||||
"block_marker": "barrier"
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ metadata.format.version = "1.1"
|
||||
[versions]
|
||||
|
||||
# ViaVersion
|
||||
viaver = "4.1.0-21w44a-SNAPSHOT"
|
||||
viaver = "4.1.0-1.18-pre2-SNAPSHOT"
|
||||
|
||||
# Common provided
|
||||
netty = "4.0.20.Final"
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren