Merge remote-tracking branch 'upstream/ver/6.0.0' into architecture/slf4j-logging

Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
This commit is contained in:
solonovamax
2021-11-20 20:09:40 -05:00
738 changed files with 5185 additions and 17062 deletions

View File

@@ -0,0 +1,4 @@
dependencies {
"shadedApi"(project(":common:api:util"))
"shadedApi"("ca.solo-studios:strata:1.0.0")
}

View File

@@ -0,0 +1,27 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.addon;
import ca.solostudios.strata.version.Version;
import ca.solostudios.strata.version.VersionRange;
import com.dfsek.terra.api.util.StringIdentifiable;
import java.util.Collections;
import java.util.Map;
public interface BaseAddon extends StringIdentifiable {
default void initialize() { }
default Map<String, VersionRange> getDependencies() {
return Collections.emptyMap();
}
Version getVersion();
}

View File

@@ -0,0 +1,25 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.addon.bootstrap;
import java.nio.file.Path;
import com.dfsek.terra.api.addon.BaseAddon;
public interface BootstrapBaseAddon<T extends BaseAddon> extends BaseAddon {
/**
* Load all the relevant addons in the specified path.
*
* @param addonsFolder Path containing addons.
* @param parent parent class loader
*
* @return Loaded addons
*/
Iterable<T> loadAddons(Path addonsFolder, ClassLoader parent);
}

View File

@@ -1,10 +0,0 @@
dependencies {
"shadedApi"(project(":common:api:core"))
"shadedApi"("com.dfsek:Paralithic:0.5.0")
"shadedApi"("com.dfsek.tectonic:common:2.1.2")
"shadedApi"("net.jafama:jafama:2.3.2")
}

View File

@@ -1,6 +1,8 @@
dependencies {
"shadedApi"(project(":common:api:util"))
"shadedApi"(project(":common:api:noise"))
"shadedApi"(project(":common:api:registry"))
"shadedApi"(project(":common:api:addons"))
"shadedApi"("com.dfsek:Paralithic:0.5.0")
@@ -9,5 +11,7 @@ dependencies {
"shadedApi"("net.jafama:jafama:2.3.2")
"shadedApi"("org.slf4j:slf4j-api:1.7.32")
"shadedApi"("ca.solo-studios:strata:1.0.0")
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api;
/**

View File

@@ -1,8 +1,15 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api;
import java.io.File;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.config.ConfigPack;
import com.dfsek.terra.api.config.PluginConfig;
import com.dfsek.terra.api.event.EventManager;
@@ -44,7 +51,7 @@ public interface Platform extends LoaderRegistrar {
CheckedRegistry<ConfigPack> getConfigRegistry();
Registry<TerraAddon> getAddons();
Registry<BaseAddon> getAddons();
ItemHandle getItemHandle();

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.addon;
public interface Addon {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.addon;
import com.dfsek.terra.api.Platform;
@@ -7,6 +14,7 @@ import com.dfsek.terra.api.registry.CheckedRegistry;
public interface AddonLoader {
/**
* Load all addons.
*
* @param platform TerraPlugin instance.
*/
void load(Platform platform, CheckedRegistry<Addon> addons);

View File

@@ -1,53 +0,0 @@
package com.dfsek.terra.api.addon;
import org.jetbrains.annotations.NotNull;
import com.dfsek.terra.api.addon.annotations.Addon;
import com.dfsek.terra.api.addon.annotations.Author;
import com.dfsek.terra.api.addon.annotations.Version;
/**
* Represents an entry point for an com.dfsek.terra.addon. Implementations must be annotated with {@link Addon}.
*/
public abstract class TerraAddon {
/**
* Invoked immediately after an com.dfsek.terra.addon is loaded.
*/
public abstract void initialize();
/**
* Gets the version of this com.dfsek.terra.addon.
*
* @return Addon version.
*/
public final @NotNull String getVersion() {
Version version = getClass().getAnnotation(Version.class);
return version == null ? "0.1.0" : version.value();
}
/**
* Gets the author of this com.dfsek.terra.addon.
*
* @return Addon author.
*/
public final @NotNull String getAuthor() {
Author author = getClass().getAnnotation(Author.class);
return author == null ? "Anon Y. Mous" : author.value();
}
/**
* Gets the name (ID) of this com.dfsek.terra.addon.
*
* @return Addon ID.
*/
public final @NotNull String getName() {
Addon addon = getClass().getAnnotation(Addon.class);
if(addon == null)
throw new IllegalStateException(
"Addon annotation not present"); // This should never happen; the presence of this annotation is checked by the com
// .dfsek.terra.addon loader.
return addon.value();
}
}

View File

@@ -1,21 +0,0 @@
package com.dfsek.terra.api.addon.annotations;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Specifies that the annotated class is an entry point for a Terra com.dfsek.terra.addon.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Addon {
/**
* @return The ID of the com.dfsek.terra.addon.
*/
@NotNull String value();
}

View File

@@ -1,21 +0,0 @@
package com.dfsek.terra.api.addon.annotations;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Optional annotation that specifies the author of an com.dfsek.terra.addon.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Author {
/**
* @return Name of the com.dfsek.terra.addon author.
*/
@NotNull String value();
}

View File

@@ -1,21 +0,0 @@
package com.dfsek.terra.api.addon.annotations;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Optional annotation that specifies dependencies of an com.dfsek.terra.addon.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Depends {
/**
* @return All addons this com.dfsek.terra.addon is dependent upon.
*/
@NotNull String[] value();
}

View File

@@ -1,21 +0,0 @@
package com.dfsek.terra.api.addon.annotations;
import org.jetbrains.annotations.NotNull;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Optional annotation that specifies the version of an com.dfsek.terra.addon.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Version {
/**
* @return Version of the com.dfsek.terra.addon.
*/
@NotNull String value();
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.entity;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.entity;
import com.dfsek.terra.api.inventory.BlockInventoryHolder;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.entity;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.entity;
import java.util.HashMap;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.entity;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state;
import java.util.function.Consumer;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties;
import java.util.Collection;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.base;
import java.util.Arrays;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.base;
import java.util.Arrays;
@@ -11,17 +18,17 @@ public interface EnumProperty<T extends Enum<T>> extends Property<T> {
static <T extends Enum<T>> EnumProperty<T> of(String name, Class<T> clazz) {
return new EnumProperty<>() {
private final Lazy<Collection<T>> constants = Lazy.lazy(() -> Arrays.asList(clazz.getEnumConstants()));
@Override
public Collection<T> values() {
return constants.value();
}
@Override
public Class<T> getType() {
return clazz;
}
@Override
public String getName() {
return name;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.base;
import java.util.ArrayList;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.base;
import com.dfsek.terra.api.block.state.properties.enums.Axis;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
public enum Axis {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
import com.dfsek.terra.api.structure.rotation.Rotation;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
public enum Half {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
public enum RailShape {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
public enum RedstoneConnection {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.block.state.properties.enums;
public enum WallHeight {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command;
import java.util.List;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command;
import com.dfsek.terra.api.entity.CommandSender;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation.inject;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation.inject;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation.type;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation.type;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.annotation.type;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.arg;
import com.dfsek.terra.api.entity.CommandSender;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.arg;
import com.dfsek.terra.api.entity.CommandSender;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.arg;
import com.dfsek.terra.api.entity.CommandSender;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.arg;
import com.dfsek.terra.api.entity.CommandSender;

View File

@@ -1,6 +1,17 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.exception;
import java.io.Serial;
public abstract class CommandException extends Exception {
@Serial
private static final long serialVersionUID = -2955328495045879822L;
public CommandException(String message) {

View File

@@ -1,6 +1,17 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.exception;
import java.io.Serial;
public class ExecutionException extends CommandException {
@Serial
private static final long serialVersionUID = -6345523475880607959L;
public ExecutionException(String message) {

View File

@@ -1,6 +1,17 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.exception;
import java.io.Serial;
public class InvalidArgumentsException extends CommandException {
@Serial
private static final long serialVersionUID = 7563619667472569824L;
public InvalidArgumentsException(String message) {

View File

@@ -1,9 +1,20 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.exception;
import java.io.Serial;
/**
* Thrown when command is incorrectly defined.
*/
public class MalformedCommandException extends CommandException {
@Serial
private static final long serialVersionUID = -5417760860407895496L;
public MalformedCommandException(String message) {

View File

@@ -1,6 +1,17 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.exception;
import java.io.Serial;
public class SwitchFormatException extends CommandException {
@Serial
private static final long serialVersionUID = -965858989317844628L;
public SwitchFormatException(String message) {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.tab;
import java.util.Collections;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.command.tab;
import java.util.List;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import com.dfsek.tectonic.config.ConfigTemplate;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import com.dfsek.tectonic.config.ConfigTemplate;

View File

@@ -1,17 +1,25 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.addon.TerraAddon;
import ca.solostudios.strata.version.VersionRange;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.registry.CheckedRegistry;
import com.dfsek.terra.api.registry.meta.RegistryFactory;
import com.dfsek.terra.api.registry.meta.RegistryHolder;
import com.dfsek.terra.api.tectonic.LoaderHolder;
import com.dfsek.terra.api.tectonic.LoaderRegistrar;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.util.reflection.TypeKey;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
@@ -24,7 +32,7 @@ public interface ConfigPack extends LoaderRegistrar, LoaderHolder, RegistryHolde
void registerConfigType(ConfigType<?, ?> type, String id, int priority);
Set<TerraAddon> addons();
Map<BaseAddon, VersionRange> addons();
boolean vanillaMobs();

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import java.util.function.Supplier;
@@ -8,7 +15,9 @@ import com.dfsek.terra.api.util.reflection.TypeKey;
public interface ConfigType<T extends AbstractableTemplate, R> {
Supplier<OpenRegistry<R>> registrySupplier(ConfigPack pack);
default Supplier<OpenRegistry<R>> registrySupplier(ConfigPack pack) {
return pack.getRegistryFactory()::create;
}
T getTemplate(ConfigPack pack, Platform platform);

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import com.dfsek.tectonic.exception.ConfigException;
@@ -29,7 +36,7 @@ public interface Loader {
* Open a subdirectory.
*
* @param directory Directory to open
* @param extension
* @param extension File extension
*/
Loader open(String directory, String extension);

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import com.dfsek.terra.api.Platform;

View File

@@ -1,9 +1,16 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config;
import java.util.Map;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.registry.Registry;
import com.dfsek.terra.api.util.StringIdentifiable;
import com.dfsek.terra.api.world.World;
import com.dfsek.terra.api.world.biome.generation.BiomeProvider;
import com.dfsek.terra.api.world.generator.SamplerCache;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.config.meta;
import java.lang.annotation.ElementType;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.entity;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.entity;
import com.dfsek.terra.api.util.vector.Vector3;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.entity;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.entity;
public interface Player extends Entity {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event;
import com.dfsek.terra.api.event.events.Event;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event;
import com.dfsek.terra.api.event.events.Event;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events;
import com.dfsek.terra.api.util.mutable.MutableBoolean;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events;
/**

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events;
import com.dfsek.terra.api.config.ConfigPack;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config;
import com.dfsek.tectonic.config.Configuration;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config;
import com.dfsek.tectonic.abstraction.AbstractConfiguration;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.pack;
import com.dfsek.tectonic.config.ConfigTemplate;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.pack;
import com.dfsek.tectonic.config.ConfigTemplate;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.pack;
import com.dfsek.tectonic.config.ConfigTemplate;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.type;
import com.dfsek.terra.api.config.ConfigPack;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.type;
import com.dfsek.terra.api.config.ConfigPack;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.config.type;
import com.dfsek.terra.api.config.ConfigPack;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.platform;
import com.dfsek.terra.api.event.events.Event;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.world.generation;
import com.dfsek.terra.api.config.ConfigPack;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.events.world.generation;
import org.jetbrains.annotations.NotNull;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.functional;
import java.util.function.Consumer;

View File

@@ -1,13 +1,20 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.event.functional;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.addon.BaseAddon;
import com.dfsek.terra.api.event.EventHandler;
import com.dfsek.terra.api.event.events.Event;
import com.dfsek.terra.api.util.reflection.TypeKey;
public interface FunctionalEventHandler extends EventHandler {
<T extends Event> EventContext<T> register(TerraAddon addon, Class<T> clazz);
<T extends Event> EventContext<T> register(BaseAddon addon, Class<T> clazz);
<T extends Event> EventContext<T> register(TerraAddon addon, TypeKey<T> clazz);
<T extends Event> EventContext<T> register(BaseAddon addon, TypeKey<T> clazz);
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.handle;
import java.util.Set;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.handle;
import com.dfsek.terra.api.block.entity.BlockEntity;
@@ -20,14 +27,4 @@ public interface WorldHandle {
EntityType getEntity(String id);
/**
* Get the locations selected by a player. (Usually via WorldEdit)
*
* @param player Player to get locations for
*
* @return Pair of locations.
*/
default Pair<Vector3, Vector3> getSelectedLocation(Player player) {
throw new UnsupportedOperationException("Cannot get selection on this platform.");
}
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory;
import com.dfsek.terra.api.util.vector.Vector3;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory.item;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory.item;
import com.dfsek.terra.api.Handle;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.inventory.item;
import java.util.Map;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.lang;
import java.util.logging.Level;
@@ -11,6 +18,5 @@ public interface Language {
void send(String messageID, CommandSender sender, String... args);
@SuppressWarnings("unchecked")
Message getMessage(String id);
}

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.lang;

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.profiler;
public class ProfileFrame implements AutoCloseable {

View File

@@ -1,3 +1,10 @@
/*
* Copyright (c) 2020-2021 Polyhedral Development
*
* The Terra API is licensed under the terms of the MIT License. For more details,
* reference the LICENSE file in the common/api directory.
*/
package com.dfsek.terra.api.profiler;
import java.util.Map;

Some files were not shown because too many files have changed in this diff Show More