mirror of
https://github.com/FabricMC/fabric.git
synced 2025-04-15 00:14:28 -04:00
[1.20] Remove deprecated NbtRegistryPacketHandler (#3026)
* Remove deprecated NbtRegistryPacketHandler * Remove more
This commit is contained in:
parent
bd913b0dc6
commit
ce75acf5fd
6 changed files with 1 additions and 202 deletions
fabric-registry-sync-v0/src
client/java/net/fabricmc/fabric/impl/client/registry/sync
main/java/net/fabricmc/fabric/impl/registry/sync
testmod
java/net/fabricmc/fabric/test/registry/sync
resources
|
@ -33,7 +33,6 @@ public class FabricRegistryClientInit implements ClientModInitializer {
|
|||
@Override
|
||||
public void onInitializeClient() {
|
||||
registerSyncPacketReceiver(RegistrySyncManager.DIRECT_PACKET_HANDLER);
|
||||
registerSyncPacketReceiver(RegistrySyncManager.NBT_PACKET_HANDLER);
|
||||
}
|
||||
|
||||
private void registerSyncPacketReceiver(RegistryPacketHandler packetHandler) {
|
||||
|
|
|
@ -58,21 +58,16 @@ import net.minecraft.util.thread.ThreadExecutor;
|
|||
|
||||
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
||||
import net.fabricmc.fabric.api.event.registry.RegistryAttributeHolder;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.DirectRegistryPacketHandler;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.NbtRegistryPacketHandler;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.RegistryPacketHandler;
|
||||
|
||||
public final class RegistrySyncManager {
|
||||
public static final boolean DEBUG = Boolean.getBoolean("fabric.registry.debug");
|
||||
|
||||
@Deprecated
|
||||
public static final RegistryPacketHandler NBT_PACKET_HANDLER = new NbtRegistryPacketHandler();
|
||||
public static final RegistryPacketHandler DIRECT_PACKET_HANDLER = new DirectRegistryPacketHandler();
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger("FabricRegistrySync");
|
||||
private static final boolean DEBUG_WRITE_REGISTRY_DATA = Boolean.getBoolean("fabric.registry.debug.writeContentsAsCsv");
|
||||
private static final boolean FORCE_NBT_SYNC = Boolean.getBoolean("fabric.registry.forceNbtSync");
|
||||
|
||||
//Set to true after vanilla's bootstrap has completed
|
||||
public static boolean postBootstrap = false;
|
||||
|
@ -84,18 +79,7 @@ public final class RegistrySyncManager {
|
|||
return;
|
||||
}
|
||||
|
||||
if (FORCE_NBT_SYNC) {
|
||||
LOGGER.warn("Force NBT sync is enabled");
|
||||
sendPacket(player, NBT_PACKET_HANDLER);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ServerPlayNetworking.canSend(player, DIRECT_PACKET_HANDLER.getPacketId())) {
|
||||
sendPacket(player, DIRECT_PACKET_HANDLER);
|
||||
} else {
|
||||
LOGGER.debug("Player {} can't receive direct packet, using nbt packet instead", player.getEntityName());
|
||||
sendPacket(player, NBT_PACKET_HANDLER);
|
||||
}
|
||||
sendPacket(player, DIRECT_PACKET_HANDLER);
|
||||
}
|
||||
|
||||
private static void sendPacket(ServerPlayerEntity player, RegistryPacketHandler handler) {
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.fabricmc.fabric.impl.registry.sync.packet;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
|
||||
import net.fabricmc.fabric.impl.registry.sync.RegistryMapSerializer;
|
||||
|
||||
/**
|
||||
* A method to sync registry ids using {@link NbtCompound} and {@link PacketByteBuf#writeNbt}.
|
||||
* Kept here for old version support.
|
||||
*/
|
||||
// TODO: Remove
|
||||
@Deprecated
|
||||
public class NbtRegistryPacketHandler extends RegistryPacketHandler {
|
||||
private static final Identifier ID = new Identifier("fabric", "registry/sync");
|
||||
|
||||
private Map<Identifier, Object2IntMap<Identifier>> syncedRegistryMap;
|
||||
|
||||
@Override
|
||||
public Identifier getPacketId() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPacket(ServerPlayerEntity player, Map<Identifier, Object2IntMap<Identifier>> registryMap) {
|
||||
PacketByteBuf buf = PacketByteBufs.create();
|
||||
buf.writeNbt(RegistryMapSerializer.toNbt(registryMap));
|
||||
sendPacket(player, buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receivePacket(PacketByteBuf buf) {
|
||||
computeBufSize(buf);
|
||||
NbtCompound nbt = buf.readNbt();
|
||||
syncedRegistryMap = nbt != null ? RegistryMapSerializer.fromNbt(nbt) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTotalPacketReceived() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPacketFinished() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Map<Identifier, Object2IntMap<Identifier>> getSyncedRegistryMap() {
|
||||
return syncedRegistryMap;
|
||||
}
|
||||
}
|
|
@ -46,13 +46,8 @@ import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback;
|
|||
import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
||||
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
||||
import net.fabricmc.fabric.api.event.registry.RegistryAttributeHolder;
|
||||
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
|
||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
|
||||
import net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager;
|
||||
import net.fabricmc.fabric.impl.registry.sync.RemapException;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.DirectRegistryPacketHandler;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.NbtRegistryPacketHandler;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.RegistryPacketHandler;
|
||||
|
||||
public class RegistrySyncTest implements ModInitializer {
|
||||
private static final Logger LOGGER = LogUtils.getLogger();
|
||||
|
@ -63,33 +58,8 @@ public class RegistrySyncTest implements ModInitializer {
|
|||
public static final boolean REGISTER_BLOCKS = Boolean.parseBoolean(System.getProperty("fabric.registry.sync.test.register.blocks", "true"));
|
||||
public static final boolean REGISTER_ITEMS = Boolean.parseBoolean(System.getProperty("fabric.registry.sync.test.register.items", "true"));
|
||||
|
||||
public static final Identifier PACKET_CHECK_DIRECT = new Identifier("fabric-registry-sync-v0-v1-testmod:packet_check/direct");
|
||||
public static final RegistryPacketHandler DIRECT_PACKET_HANDLER = new DirectRegistryPacketHandler() {
|
||||
@Override
|
||||
public Identifier getPacketId() {
|
||||
return PACKET_CHECK_DIRECT;
|
||||
}
|
||||
};
|
||||
|
||||
public static final Identifier PACKET_CHECK_NBT = new Identifier("fabric-registry-sync-v0-v1-testmod:packet_check/nbt");
|
||||
public static final RegistryPacketHandler NBT_PACKET_HANDLER = new NbtRegistryPacketHandler() {
|
||||
@Override
|
||||
public Identifier getPacketId() {
|
||||
return PACKET_CHECK_NBT;
|
||||
}
|
||||
};
|
||||
|
||||
public static final Identifier PACKET_CHECK_COMPARE = new Identifier("fabric-registry-sync-v0-v1-testmod:packet_check/compare");
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
|
||||
Map<Identifier, Object2IntMap<Identifier>> map = RegistrySyncManager.createAndPopulateRegistryMap(true, null);
|
||||
NBT_PACKET_HANDLER.sendPacket(handler.player, map);
|
||||
DIRECT_PACKET_HANDLER.sendPacket(handler.player, map);
|
||||
sender.sendPacket(PACKET_CHECK_COMPARE, PacketByteBufs.empty());
|
||||
});
|
||||
|
||||
if (REGISTER_BLOCKS) {
|
||||
// For checking raw id bulk in direct registry packet, make registry_sync namespace have two bulks.
|
||||
registerBlocks("registry_sync", 5, 0);
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2017, 2018, 2019 FabricMC
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package net.fabricmc.fabric.test.registry.sync;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.Sets;
|
||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
||||
import net.fabricmc.fabric.impl.registry.sync.packet.RegistryPacketHandler;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class RegistrySyncTestClient implements ClientModInitializer {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(RegistrySyncTestClient.class);
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
ClientPlayNetworking.registerGlobalReceiver(RegistrySyncTest.PACKET_CHECK_DIRECT, (client, handler, buf, responseSender) ->
|
||||
RegistrySyncTest.DIRECT_PACKET_HANDLER.receivePacket(buf));
|
||||
|
||||
ClientPlayNetworking.registerGlobalReceiver(RegistrySyncTest.PACKET_CHECK_NBT, (client, handler, buf, responseSender) ->
|
||||
RegistrySyncTest.NBT_PACKET_HANDLER.receivePacket(buf));
|
||||
|
||||
ClientPlayNetworking.registerGlobalReceiver(RegistrySyncTest.PACKET_CHECK_COMPARE, (client, handler, buf, responseSender) -> {
|
||||
logBufferSize(RegistrySyncTest.NBT_PACKET_HANDLER);
|
||||
logBufferSize(RegistrySyncTest.DIRECT_PACKET_HANDLER);
|
||||
|
||||
Map<Identifier, Object2IntMap<Identifier>> directPacketMap = RegistrySyncTest.DIRECT_PACKET_HANDLER.getSyncedRegistryMap();
|
||||
Map<Identifier, Object2IntMap<Identifier>> nbtPacketMap = RegistrySyncTest.NBT_PACKET_HANDLER.getSyncedRegistryMap();
|
||||
|
||||
Objects.requireNonNull(nbtPacketMap, "nbtPacketMap");
|
||||
Objects.requireNonNull(directPacketMap, "directPacketMap");
|
||||
|
||||
Sets.SetView<Identifier> registryDiffs = Sets.symmetricDifference(directPacketMap.keySet(), nbtPacketMap.keySet());
|
||||
|
||||
if (!registryDiffs.isEmpty()) {
|
||||
throw new IllegalStateException("Non-Equal set of synched registries between NBT/Direct: " + nbtPacketMap.keySet() + " != " + directPacketMap.keySet());
|
||||
}
|
||||
|
||||
Preconditions.checkArgument(Objects.requireNonNull(nbtPacketMap).equals(directPacketMap), "nbt packet and direct packet are not equal!");
|
||||
});
|
||||
}
|
||||
|
||||
private void logBufferSize(RegistryPacketHandler handler) {
|
||||
String handlerName = handler.getClass().getSuperclass().getSimpleName();
|
||||
LOGGER.info("{} total packet: {}", handlerName, handler.getTotalPacketReceived());
|
||||
LOGGER.info("{} raw size: {}", handlerName, handler.getRawBufSize());
|
||||
LOGGER.info("{} deflated size: {}", handlerName, handler.getDeflatedBufSize());
|
||||
}
|
||||
}
|
|
@ -11,9 +11,6 @@
|
|||
"entrypoints": {
|
||||
"main": [
|
||||
"net.fabricmc.fabric.test.registry.sync.RegistrySyncTest"
|
||||
],
|
||||
"client": [
|
||||
"net.fabricmc.fabric.test.registry.sync.RegistrySyncTestClient"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue