Registry Modification API

== AT ==
public net.minecraft.core.MappedRegistry validateWrite(Lnet/minecraft/resources/ResourceKey;)V
public net.minecraft.resources.RegistryOps lookupProvider
public net.minecraft.resources.RegistryOps$HolderLookupAdapter
This commit is contained in:
Jake Potrebic
2023-02-27 18:28:39 -08:00
parent 463f952cd4
commit a1b891dd88
35 changed files with 1109 additions and 11 deletions
@@ -1,6 +1,10 @@
package io.papermc.paper.registry;
import io.papermc.paper.registry.set.NamedRegistryKeySetImpl;
import io.papermc.paper.registry.tag.Tag;
import io.papermc.paper.registry.tag.TagKey;
import java.util.function.Predicate;
import net.minecraft.core.HolderSet;
import net.minecraft.core.registries.BuiltInRegistries;
import org.bukkit.Keyed;
import org.bukkit.Particle;
@@ -35,4 +39,16 @@ public class PaperSimpleRegistry<T extends Enum<T> & Keyed, M> extends Registry.
super(type, predicate);
this.nmsRegistry = nmsRegistry;
}
@Override
public boolean hasTag(final TagKey<T> key) {
final net.minecraft.tags.TagKey<M> nmsKey = PaperRegistries.toNms(key);
return this.nmsRegistry.get(nmsKey).isPresent();
}
@Override
public Tag<T> getTag(final TagKey<T> key) {
final HolderSet.Named<M> namedHolderSet = this.nmsRegistry.get(PaperRegistries.toNms(key)).orElseThrow();
return new NamedRegistryKeySetImpl<>(key, namedHolderSet);
}
}