[1.20] Remove deprecated NbtRegistryPacketHandler ()

* Remove deprecated NbtRegistryPacketHandler

* Remove more
This commit is contained in:
modmuss50 2023-05-01 13:55:38 +01:00 committed by GitHub
parent bd913b0dc6
commit ce75acf5fd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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

View file

@ -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) {

View file

@ -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) {

View file

@ -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;
}
}

View file

@ -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);

View file

@ -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());
}
}

View file

@ -11,9 +11,6 @@
"entrypoints": {
"main": [
"net.fabricmc.fabric.test.registry.sync.RegistrySyncTest"
],
"client": [
"net.fabricmc.fabric.test.registry.sync.RegistrySyncTestClient"
]
}
}