mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 05:50:08 +00:00
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:
4 files changed
+81
-82
No files matched your search
@@ -13,7 +13,6 @@ import com.dfsek.terra.api.profiler.Profiler;
|
|||||||
import com.dfsek.terra.api.registry.CheckedRegistry;
|
import com.dfsek.terra.api.registry.CheckedRegistry;
|
||||||
import com.dfsek.terra.api.registry.Registry;
|
import com.dfsek.terra.api.registry.Registry;
|
||||||
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
|
||||||
import com.dfsek.terra.api.util.Logger;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+74
-74
@@ -273,79 +273,6 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
return template.vanillaDecorations();
|
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")
|
@SuppressWarnings("unchecked")
|
||||||
private ConfigTypeRegistry createRegistry() {
|
private ConfigTypeRegistry createRegistry() {
|
||||||
return new ConfigTypeRegistry(main, (id, configType) -> {
|
return new ConfigTypeRegistry(main, (id, configType) -> {
|
||||||
@@ -353,7 +280,7 @@ public class ConfigPackImpl implements ConfigPack {
|
|||||||
if(registryMap.containsKey(configType.getTypeKey()
|
if(registryMap.containsKey(configType.getTypeKey()
|
||||||
.getType())) { // Someone already registered something; we need to copy things to the
|
.getType())) { // Someone already registered something; we need to copy things to the
|
||||||
// new registry.
|
// 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);
|
registryMap.get(configType.getTypeKey().getType()).getLeft().forEach(((OpenRegistry<Object>) openRegistry)::register);
|
||||||
}
|
}
|
||||||
selfLoader.registerLoader(configType.getTypeKey().getType(), openRegistry);
|
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);
|
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() {
|
protected Map<Type, ImmutablePair<OpenRegistry<?>, CheckedRegistry<?>>> getRegistryMap() {
|
||||||
return registryMap;
|
return registryMap;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -15,8 +15,8 @@ import com.dfsek.terra.addon.PreLoadAddon;
|
|||||||
import com.dfsek.terra.addon.exception.AddonLoadException;
|
import com.dfsek.terra.addon.exception.AddonLoadException;
|
||||||
import com.dfsek.terra.api.TerraPlugin;
|
import com.dfsek.terra.api.TerraPlugin;
|
||||||
import com.dfsek.terra.api.addon.TerraAddon;
|
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.inject.exception.InjectionException;
|
||||||
import com.dfsek.terra.api.injection.Injector;
|
|
||||||
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
|
import com.dfsek.terra.api.registry.exception.DuplicateEntryException;
|
||||||
import com.dfsek.terra.inject.InjectorImpl;
|
import com.dfsek.terra.inject.InjectorImpl;
|
||||||
import com.dfsek.terra.registry.OpenRegistryImpl;
|
import com.dfsek.terra.registry.OpenRegistryImpl;
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
|
|||||||
|
|
||||||
Errors occurred while registering commands.
|
Errors occurred while registering commands.
|
||||||
Please report this to Terra.
|
Please report this to Terra.
|
||||||
""", e);
|
""".strip(), e);
|
||||||
Bukkit.getPluginManager().disablePlugin(this);
|
Bukkit.getPluginManager().disablePlugin(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -108,7 +108,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
|
|||||||
| message, ask the fork developer to update upstream. |
|
| message, ask the fork developer to update upstream. |
|
||||||
| |
|
| |
|
||||||
|------------------------------------------------------------------------------|
|
|------------------------------------------------------------------------------|
|
||||||
""", e);
|
""".strip(), e);
|
||||||
} else {
|
} else {
|
||||||
logger.warn("""
|
logger.warn("""
|
||||||
.------------------------------------------------------------------------------.
|
.------------------------------------------------------------------------------.
|
||||||
@@ -120,7 +120,7 @@ public class TerraBukkitPlugin extends JavaPlugin {
|
|||||||
| more at https://papermc.io/ |
|
| more at https://papermc.io/ |
|
||||||
| |
|
| |
|
||||||
|------------------------------------------------------------------------------|
|
|------------------------------------------------------------------------------|
|
||||||
""", e);
|
""".strip(), e);
|
||||||
|
|
||||||
Bukkit.getPluginManager().registerEvents(new SpigotListener(terraPlugin), this); // Register Spigot event listener
|
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() {
|
private boolean doVersionCheck() {
|
||||||
logger.info("Running on version {} with {}.", VersionUtil.getMinecraftVersionInfo(), VersionUtil.getSpigotVersionInfo());
|
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. |
|
| Do not come ask us why it is not working. |
|
||||||
| |
|
| |
|
||||||
|----------------------------------------------------------------------------------|
|
|----------------------------------------------------------------------------------|
|
||||||
""");
|
""".strip());
|
||||||
};
|
};
|
||||||
runnable.run();
|
runnable.run();
|
||||||
//noinspection deprecation
|
|
||||||
Bukkit.getScheduler().scheduleAsyncDelayedTask(this, runnable, 200L);
|
Bukkit.getScheduler().scheduleAsyncDelayedTask(this, runnable, 200L);
|
||||||
// Bukkit.shutdown(); // we're not *that* evil
|
// Bukkit.shutdown(); // we're not *that* evil
|
||||||
setEnabled(false);
|
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 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.
|
> I fear something terrible has happened.
|
||||||
> - Astrash
|
> - Astrash
|
||||||
""");
|
""".strip());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in new issue
Block a user