Finish up merge into ver/6.0.0, as there were still some errors.

Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
This commit is contained in:
solonovamax 2021-09-25 01:12:06 -04:00
parent 4c1ac827ad
commit 9eef2599b9
No known key found for this signature in database
GPG Key ID: ED0FC2D44CD76482
4 changed files with 81 additions and 82 deletions

View File

@ -13,7 +13,6 @@ import com.dfsek.terra.api.profiler.Profiler;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.Logger;
/**

View File

@ -273,79 +273,6 @@ public class ConfigPackImpl implements ConfigPack {
return template.vanillaDecorations();
}
@Override
public BiomeProvider getBiomeProviderBuilder() {
return seededBiomeProvider;
}
@SuppressWarnings("unchecked")
@Override
public <T> CheckedRegistry<T> getOrCreateRegistry(Type type) {
return (CheckedRegistry<T>) registryMap.computeIfAbsent(type, c -> {
OpenRegistry<T> registry = new OpenRegistryImpl<>();
selfLoader.registerLoader(c, registry);
abstractConfigLoader.registerLoader(c, registry);
logger.debug("Registered loader for registry of class {}", ReflectionUtil.typeToString(c));
if(type instanceof ParameterizedType param) {
Type base = param.getRawType();
if(base instanceof Class // should always be true but we'll check anyways
&& Supplier.class.isAssignableFrom((Class<?>) base)) { // If it's a supplier
Type supplied = param.getActualTypeArguments()[0]; // Grab the supplied type
if(supplied instanceof ParameterizedType suppliedParam) {
Type suppliedBase = suppliedParam.getRawType();
if(suppliedBase instanceof Class // should always be true but we'll check anyways
&& ObjectTemplate.class.isAssignableFrom((Class<?>) suppliedBase)) {
Type templateType = suppliedParam.getActualTypeArguments()[0];
GenericTemplateSupplierLoader<?> loader = new GenericTemplateSupplierLoader<>(
(Registry<Supplier<ObjectTemplate<Supplier<ObjectTemplate<?>>>>>) registry);
selfLoader.registerLoader(templateType, loader);
abstractConfigLoader.registerLoader(templateType, loader);
logger.debug("Registered template loader for registry of class {}", ReflectionUtil.typeToString(templateType));
}
}
}
}
return ImmutablePair.of(registry, new CheckedRegistryImpl<>(registry));
}).getRight();
}
@Override
public List<GenerationStageProvider> getStages() {
return template.getStages();
}
@Override
public Loader getLoader() {
return loader;
}
@Override
public String getAuthor() {
return template.getAuthor();
}
@Override
public String getVersion() {
return template.getVersion();
}
@Override
public Map<String, String> getLocatable() {
return template.getLocatable();
}
@Override
public RegistryFactory getRegistryFactory() {
return registryFactory;
}
@Override
public ChunkGeneratorProvider getGeneratorProvider() {
return template.getGeneratorProvider();
}
@SuppressWarnings("unchecked")
private ConfigTypeRegistry createRegistry() {
return new ConfigTypeRegistry(main, (id, configType) -> {
@ -353,7 +280,7 @@ public class ConfigPackImpl implements ConfigPack {
if(registryMap.containsKey(configType.getTypeKey()
.getType())) { // Someone already registered something; we need to copy things to the
// new registry.
main.getDebugLogger().warning("Copying values from old registry for " + configType.getTypeKey());
logger.warn("Copying values from old registry for {}", configType.getTypeKey());
registryMap.get(configType.getTypeKey().getType()).getLeft().forEach(((OpenRegistry<Object>) openRegistry)::register);
}
selfLoader.registerLoader(configType.getTypeKey().getType(), openRegistry);
@ -433,6 +360,79 @@ public class ConfigPackImpl implements ConfigPack {
template.getID(), template.getVersion(), template.getAuthor(), (System.nanoTime() - start) / 1000000.0D);
}
@Override
public BiomeProvider getBiomeProviderBuilder() {
return seededBiomeProvider;
}
@SuppressWarnings("unchecked")
@Override
public <T> CheckedRegistry<T> getOrCreateRegistry(Type type) {
return (CheckedRegistry<T>) registryMap.computeIfAbsent(type, c -> {
OpenRegistry<T> registry = new OpenRegistryImpl<>();
selfLoader.registerLoader(c, registry);
abstractConfigLoader.registerLoader(c, registry);
logger.debug("Registered loader for registry of class {}", ReflectionUtil.typeToString(c));
if(type instanceof ParameterizedType param) {
Type base = param.getRawType();
if(base instanceof Class // should always be true but we'll check anyways
&& Supplier.class.isAssignableFrom((Class<?>) base)) { // If it's a supplier
Type supplied = param.getActualTypeArguments()[0]; // Grab the supplied type
if(supplied instanceof ParameterizedType suppliedParam) {
Type suppliedBase = suppliedParam.getRawType();
if(suppliedBase instanceof Class // should always be true but we'll check anyways
&& ObjectTemplate.class.isAssignableFrom((Class<?>) suppliedBase)) {
Type templateType = suppliedParam.getActualTypeArguments()[0];
GenericTemplateSupplierLoader<?> loader = new GenericTemplateSupplierLoader<>(
(Registry<Supplier<ObjectTemplate<Supplier<ObjectTemplate<?>>>>>) registry);
selfLoader.registerLoader(templateType, loader);
abstractConfigLoader.registerLoader(templateType, loader);
logger.debug("Registered template loader for registry of class {}", ReflectionUtil.typeToString(templateType));
}
}
}
}
return ImmutablePair.of(registry, new CheckedRegistryImpl<>(registry));
}).getRight();
}
@Override
public List<GenerationStageProvider> getStages() {
return template.getStages();
}
@Override
public Loader getLoader() {
return loader;
}
@Override
public String getAuthor() {
return template.getAuthor();
}
@Override
public String getVersion() {
return template.getVersion();
}
@Override
public Map<String, String> getLocatable() {
return template.getLocatable();
}
@Override
public RegistryFactory getRegistryFactory() {
return registryFactory;
}
@Override
public ChunkGeneratorProvider getGeneratorProvider() {
return template.getGeneratorProvider();
}
protected Map<Type, ImmutablePair<OpenRegistry<?>, CheckedRegistry<?>>> getRegistryMap() {
return registryMap;
}

View File

@ -15,8 +15,8 @@ import com.dfsek.terra.addon.PreLoadAddon;
import com.dfsek.terra.addon.exception.AddonLoadException;
import com.dfsek.terra.api.TerraPlugin;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.inject.Injector;
import com.dfsek.terra.api.inject.exception.InjectionException;
import com.dfsek.terra.api.injection.Injector;
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
import com.dfsek.terra.inject.InjectorImpl;
import com.dfsek.terra.registry.OpenRegistryImpl;

View File

@ -64,7 +64,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
Errors occurred while registering commands.
Please report this to Terra.
""", e);
""".strip(), e);
Bukkit.getPluginManager().disablePlugin(this);
return;
}
@ -108,7 +108,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
| message, ask the fork developer to update upstream. |
| |
|------------------------------------------------------------------------------|
""", e);
""".strip(), e);
} else {
logger.warn("""
.------------------------------------------------------------------------------.
@ -120,7 +120,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
| more at https://papermc.io/ |
| |
|------------------------------------------------------------------------------|
""", e);
""".strip(), e);
Bukkit.getPluginManager().registerEvents(new SpigotListener(terraPlugin), this); // Register Spigot event listener
}
@ -138,6 +138,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
}));
}
@SuppressWarnings({ "deprecation", "AccessOfSystemProperties" })
private boolean doVersionCheck() {
logger.info("Running on version {} with {}.", VersionUtil.getMinecraftVersionInfo(), VersionUtil.getSpigotVersionInfo());
@ -190,10 +191,9 @@ public class TerraBukkitPlugin extends JavaPlugin {
| Do not come ask us why it is not working. |
| |
|----------------------------------------------------------------------------------|
""");
""".strip());
};
runnable.run();
//noinspection deprecation
Bukkit.getScheduler().scheduleAsyncDelayedTask(this, runnable, 200L);
// Bukkit.shutdown(); // we're not *that* evil
setEnabled(false);
@ -206,7 +206,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
> I felt a great disturbance in the JVM,as if millions of plugins suddenly cried out in stack traces and were suddenly silenced.
> I fear something terrible has happened.
> - Astrash
""");
""".strip());
}
}
return true;