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:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user