3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-10-03 08:41:05 +02:00

Perform deep copy in DataItem#copy (#3883)

Dieser Commit ist enthalten in:
RK_01 2024-05-27 13:28:39 +02:00 committet von GitHub
Ursprung e26f63c703
Commit 869755ec4a
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194
2 geänderte Dateien mit 11 neuen und 16 gelöschten Zeilen

Datei anzeigen

@ -45,10 +45,6 @@ public class DataItem implements Item {
this.tag = tag;
}
public DataItem(Item toCopy) {
this(toCopy.identifier(), (byte) toCopy.amount(), toCopy.data(), toCopy.tag());
}
@Override
public int identifier() {
return identifier;
@ -98,8 +94,8 @@ public class DataItem implements Item {
}
@Override
public Item copy() {
return new DataItem(identifier, amount, data, tag);
public DataItem copy() {
return new DataItem(identifier, amount, data, tag != null ? tag.copy() : null);
}
@Override
@ -131,4 +127,4 @@ public class DataItem implements Item {
", tag=" + tag +
'}';
}
}
}

Datei anzeigen

@ -23,10 +23,9 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.BlockPosition;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_13;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.platform.providers.ViaProviders;
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
@ -46,7 +45,6 @@ import com.viaversion.viaversion.protocols.v1_12_2to1_13.blockconnections.Connec
import com.viaversion.viaversion.protocols.v1_12_2to1_13.blockconnections.providers.BlockConnectionProvider;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.blockconnections.providers.PacketBlockConnectionProvider;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.data.BlockIdData;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.rewriter.ComponentRewriter1_13;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.data.MappingData1_13;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.data.RecipeData;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.data.StatisticData;
@ -56,6 +54,7 @@ import com.viaversion.viaversion.protocols.v1_12_2to1_13.packet.ServerboundPacke
import com.viaversion.viaversion.protocols.v1_12_2to1_13.provider.BlockEntityProvider;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.provider.PaintingProvider;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.provider.PlayerLookTargetProvider;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.rewriter.ComponentRewriter1_13;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.rewriter.EntityPacketRewriter1_13;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.rewriter.ItemPacketRewriter1_13;
import com.viaversion.viaversion.protocols.v1_12_2to1_13.rewriter.WorldPacketRewriter1_13;
@ -787,11 +786,11 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol<ClientboundPackets1_1
Item[] clone = new Item[ingredient.length];
for (int i = 0; i < ingredient.length; i++) {
if (clone[i] == null) continue;
clone[i] = new DataItem(ingredient[i]);
clone[i] = ingredient[i].copy();
}
recipesPacket.write(Types.ITEM1_13_ARRAY, clone);
}
recipesPacket.write(Types.ITEM1_13, new DataItem(recipe.result()));
recipesPacket.write(Types.ITEM1_13, recipe.result().copy());
break;
}
case "crafting_shaped": {
@ -802,11 +801,11 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol<ClientboundPackets1_1
Item[] clone = new Item[ingredient.length];
for (int i = 0; i < ingredient.length; i++) {
if (clone[i] == null) continue;
clone[i] = new DataItem(ingredient[i]);
clone[i] = ingredient[i].copy();
}
recipesPacket.write(Types.ITEM1_13_ARRAY, clone);
}
recipesPacket.write(Types.ITEM1_13, new DataItem(recipe.result()));
recipesPacket.write(Types.ITEM1_13, recipe.result().copy());
break;
}
case "smelting": {
@ -814,10 +813,10 @@ public class Protocol1_12_2To1_13 extends AbstractProtocol<ClientboundPackets1_1
Item[] ingredient = new Item[recipe.ingredient().length];
for (int i = 0; i < ingredient.length; i++) {
if (recipe.ingredient()[i] == null) continue;
ingredient[i] = new DataItem(recipe.ingredient()[i]);
ingredient[i] = recipe.ingredient()[i].copy();
}
recipesPacket.write(Types.ITEM1_13_ARRAY, ingredient);
recipesPacket.write(Types.ITEM1_13, new DataItem(recipe.result()));
recipesPacket.write(Types.ITEM1_13, recipe.result().copy());
recipesPacket.write(Types.FLOAT, recipe.experience());
recipesPacket.write(Types.VAR_INT, recipe.cookingTime());
break;