Paper config files

== AT ==
public org.spigotmc.SpigotWorldConfig getBoolean(Ljava/lang/String;Z)Z
public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;)D
public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;D)D
public org.spigotmc.SpigotWorldConfig getInt(Ljava/lang/String;)I
public org.spigotmc.SpigotWorldConfig getInt(Ljava/lang/String;I)I
public org.spigotmc.SpigotWorldConfig getList(Ljava/lang/String;Ljava/lang/Object;)Ljava/util/List;
public org.spigotmc.SpigotWorldConfig getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
public net.minecraft.server.dedicated.DedicatedServerProperties reload(Lnet/minecraft/core/RegistryAccess;Ljava/util/Properties;Ljoptsimple/OptionSet;)Lnet/minecraft/server/dedicated/DedicatedServerProperties;
public net.minecraft.world.level.NaturalSpawner SPAWNING_CATEGORIES
This commit is contained in:
Jake Potrebic
2022-06-08 22:20:16 -07:00
parent e954a5a260
commit 769119f918
81 changed files with 4997 additions and 103 deletions

View File

@@ -0,0 +1,29 @@
package io.papermc.paper.configuration.legacy;
import org.jspecify.annotations.Nullable;
import org.spigotmc.SpigotWorldConfig;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.objectmapping.meta.NodeResolver;
import org.spongepowered.configurate.util.NamingSchemes;
public class MaxEntityCollisionsInitializer implements NodeResolver {
private final String name;
private final SpigotWorldConfig spigotConfig;
public MaxEntityCollisionsInitializer(String name, SpigotWorldConfig spigotConfig) {
this.name = name;
this.spigotConfig = spigotConfig;
}
@Override
public @Nullable ConfigurationNode resolve(ConfigurationNode parent) {
final String key = NamingSchemes.LOWER_CASE_DASHED.coerce(this.name);
final ConfigurationNode node = parent.node(key);
final int old = this.spigotConfig.getInt("max-entity-collisions", -1, false);
if (node.virtual() && old > -1) {
node.raw(old);
}
return node;
}
}

View File

@@ -0,0 +1,48 @@
package io.papermc.paper.configuration.legacy;
import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Constructor;
import org.jspecify.annotations.Nullable;
import org.spigotmc.SpigotWorldConfig;
import org.spongepowered.configurate.objectmapping.meta.NodeResolver;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface RequiresSpigotInitialization {
Class<? extends NodeResolver> value();
final class Factory implements NodeResolver.Factory {
private final SpigotWorldConfig spigotWorldConfig;
private final Table<Class<? extends NodeResolver>, String, NodeResolver> cache = HashBasedTable.create();
public Factory(SpigotWorldConfig spigotWorldConfig) {
this.spigotWorldConfig = spigotWorldConfig;
}
@Override
public @Nullable NodeResolver make(String name, AnnotatedElement element) {
if (element.isAnnotationPresent(RequiresSpigotInitialization.class)) {
return this.cache.row(element.getAnnotation(RequiresSpigotInitialization.class).value()).computeIfAbsent(name, key -> {
try {
final Constructor<? extends NodeResolver> constructor = element.getAnnotation(RequiresSpigotInitialization.class).value().getDeclaredConstructor(String.class, SpigotWorldConfig.class);
constructor.trySetAccessible();
return constructor.newInstance(key, this.spigotWorldConfig);
} catch (final ReflectiveOperationException e) {
throw new RuntimeException("Could not create constraint", e);
}
});
}
return null;
}
}
}

View File

@@ -0,0 +1,27 @@
package io.papermc.paper.configuration.legacy;
import org.spigotmc.SpigotWorldConfig;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.objectmapping.meta.NodeResolver;
import org.spongepowered.configurate.util.NamingSchemes;
public final class SpawnLoadedRangeInitializer implements NodeResolver {
private final String name;
private final SpigotWorldConfig spigotConfig;
public SpawnLoadedRangeInitializer(String name, SpigotWorldConfig spigotConfig) {
this.name = name;
this.spigotConfig = spigotConfig;
}
@Override
public ConfigurationNode resolve(ConfigurationNode parent) {
final String key = NamingSchemes.LOWER_CASE_DASHED.coerce(this.name);
final ConfigurationNode node = parent.node(key);
if (node.virtual()) {
node.raw(Math.min(spigotConfig.viewDistance, 10));
}
return node;
}
}