Reimplement ItemStack Obfuscation (#11817)

Reimplementation of the itemstack obfuscation config that
leverages the component patch map codec to drop
unwanted components on items or replaces them with
sanitized versions.

Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
This commit is contained in:
Owen
2025-01-09 12:58:18 -05:00
committed by GitHub
parent efdcaa25ee
commit 55f3f280cb
17 changed files with 524 additions and 80 deletions

View File

@@ -1,14 +1,15 @@
package io.papermc.paper.configuration;
import net.minecraft.core.RegistryAccess;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.serialize.SerializationException;
public final class GlobalConfigTestingBase {
public static void setupGlobalConfigForTest() {
public static void setupGlobalConfigForTest(RegistryAccess registryAccess) {
//noinspection ConstantConditions
if (GlobalConfiguration.get() == null) {
ConfigurationNode node = PaperConfigurations.createForTesting();
ConfigurationNode node = PaperConfigurations.createForTesting(registryAccess);
try {
GlobalConfiguration globalConfiguration = node.require(GlobalConfiguration.class);
GlobalConfiguration.set(globalConfiguration);

View File

@@ -91,7 +91,7 @@ public final class DummyServerHelper {
when(instance.getPluginManager()).thenReturn(pluginManager);
// Paper end - testing additions
io.papermc.paper.configuration.GlobalConfigTestingBase.setupGlobalConfigForTest(); // Paper - configuration files - setup global configuration test base
io.papermc.paper.configuration.GlobalConfigTestingBase.setupGlobalConfigForTest(RegistryHelper.getRegistry()); // Paper - configuration files - setup global configuration test base
// Paper start - add test for recipe conversion
when(instance.recipeIterator()).thenAnswer(ignored ->