3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-27 08:30:09 +01:00

Fix 1.18 block entity warnings on <1.12 servers

Dieser Commit ist enthalten in:
Nassim Jahnke 2021-12-01 19:54:43 +01:00
Ursprung a9c848e32e
Commit 54724ac540
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 6BE3B555EBC5982B
2 geänderte Dateien mit 18 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -19,6 +19,8 @@ package com.viaversion.viaversion.protocols.protocol1_13to1_12_2.packets;
import com.github.steveice10.opennbt.tag.builtin.CompoundTag; import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
import com.github.steveice10.opennbt.tag.builtin.NumberTag; import com.github.steveice10.opennbt.tag.builtin.NumberTag;
import com.github.steveice10.opennbt.tag.builtin.StringTag;
import com.github.steveice10.opennbt.tag.builtin.Tag;
import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.UserConnection; import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord; import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
@ -46,6 +48,7 @@ import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.Client
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.Iterator;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -122,8 +125,9 @@ public class WorldPackets {
} }
} }
if (action == 5) // Set type of flower in flower pot if (action == 5) { // Set type of flower in flower pot
wrapper.cancel(); // Removed wrapper.cancel(); // Removed
}
} }
}); });
} }
@ -442,7 +446,9 @@ public class WorldPackets {
// Rewrite BlockEntities to normal blocks // Rewrite BlockEntities to normal blocks
BlockEntityProvider provider = Via.getManager().getProviders().get(BlockEntityProvider.class); BlockEntityProvider provider = Via.getManager().getProviders().get(BlockEntityProvider.class);
for (CompoundTag tag : chunk.getBlockEntities()) { final Iterator<CompoundTag> iterator = chunk.getBlockEntities().iterator();
while (iterator.hasNext()) {
CompoundTag tag = iterator.next();
int newId = provider.transform(wrapper.user(), null, tag, false); int newId = provider.transform(wrapper.user(), null, tag, false);
if (newId != -1) { if (newId != -1) {
int x = ((NumberTag) tag.get("x")).asInt(); int x = ((NumberTag) tag.get("x")).asInt();
@ -458,6 +464,15 @@ public class WorldPackets {
chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y & 0xF, z & 0xF, newId); chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y & 0xF, z & 0xF, newId);
} }
final Tag idTag = tag.get("id");
if (idTag instanceof StringTag) {
// No longer block entities
final String id = ((StringTag) idTag).getValue();
if (id.equals("minecraft:noteblock") || id.equals("minecraft:flower_pot")) {
iterator.remove();
}
}
} }
if (Via.getConfig().isServersideBlockConnections()) { if (Via.getConfig().isServersideBlockConnections()) {

Datei anzeigen

@ -37,6 +37,7 @@ public final class BlockEntityIds {
IDS[7] = 19; // Structure block IDS[7] = 19; // Structure block
IDS[8] = 20; // End gateway IDS[8] = 20; // End gateway
IDS[9] = 7; // Sign IDS[9] = 7; // Sign
IDS[10] = 22; // Shulker box
IDS[11] = 23; // Bed IDS[11] = 23; // Bed
IDS[12] = 30; // Jigsaw IDS[12] = 30; // Jigsaw
IDS[13] = 31; // Campfire IDS[13] = 31; // Campfire