diff --git a/common/api/core/src/main/java/com/dfsek/terra/api/Platform.java b/common/api/core/src/main/java/com/dfsek/terra/api/Platform.java index 9fb54724d..080998b31 100644 --- a/common/api/core/src/main/java/com/dfsek/terra/api/Platform.java +++ b/common/api/core/src/main/java/com/dfsek/terra/api/Platform.java @@ -7,6 +7,9 @@ package com.dfsek.terra.api; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; + import java.io.File; import com.dfsek.terra.api.addon.BaseAddon; @@ -27,6 +30,8 @@ import com.dfsek.terra.api.tectonic.LoaderRegistrar; public interface Platform extends LoaderRegistrar { boolean reload(); + @NotNull + @Contract(pure = true) String platformName(); /** @@ -36,27 +41,44 @@ public interface Platform extends LoaderRegistrar { * * @param task Task to be run. */ - default void runPossiblyUnsafeTask(Runnable task) { + default void runPossiblyUnsafeTask(@NotNull Runnable task) { task.run(); } + @NotNull + @Contract(pure = true) WorldHandle getWorldHandle(); + @NotNull + @Contract(pure = true) PluginConfig getTerraConfig(); + @NotNull + @Contract(pure = true) File getDataFolder(); + @NotNull + @Contract(pure = true) CheckedRegistry getConfigRegistry(); + @NotNull + @Contract(pure = true) Registry getAddons(); + @NotNull + @Contract(pure = true) ItemHandle getItemHandle(); + @NotNull + @Contract(pure = true) EventManager getEventManager(); - default String getVersion() { + @Contract(pure = true) + default @NotNull String getVersion() { return "@VERSION@"; } + @NotNull + @Contract(pure = true) Profiler getProfiler(); } diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java index 70ca950b9..d01029a8e 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java @@ -26,6 +26,7 @@ import com.dfsek.terra.api.util.StringIdentifiable; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; +import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.Yaml; @@ -250,27 +251,27 @@ public abstract class AbstractPlatform implements Platform { } @Override - public PluginConfig getTerraConfig() { + public @NotNull PluginConfig getTerraConfig() { return config; } @Override - public CheckedRegistry getConfigRegistry() { + public @NotNull CheckedRegistry getConfigRegistry() { return checkedConfigRegistry; } @Override - public Registry getAddons() { + public @NotNull Registry getAddons() { return lockedAddonRegistry; } @Override - public EventManager getEventManager() { + public @NotNull EventManager getEventManager() { return eventManager; } @Override - public Profiler getProfiler() { + public @NotNull Profiler getProfiler() { return profiler; } } diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java index 516af281f..1a6c3eb27 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java @@ -34,6 +34,8 @@ import com.dfsek.terra.bukkit.handles.BukkitItemHandle; import com.dfsek.terra.bukkit.handles.BukkitWorldHandle; import com.dfsek.terra.bukkit.world.BukkitBiome; +import org.jetbrains.annotations.NotNull; + public class PlatformImpl extends AbstractPlatform { private final ItemHandle itemHandle = new BukkitItemHandle(); @@ -57,27 +59,27 @@ public class PlatformImpl extends AbstractPlatform { } @Override - public String platformName() { + public @NotNull String platformName() { return "Bukkit"; } @Override - public void runPossiblyUnsafeTask(Runnable task) { + public void runPossiblyUnsafeTask(@NotNull Runnable task) { Bukkit.getScheduler().runTask(plugin, task); } @Override - public WorldHandle getWorldHandle() { + public @NotNull WorldHandle getWorldHandle() { return handle; } @Override - public File getDataFolder() { + public @NotNull File getDataFolder() { return plugin.getDataFolder(); } @Override - public ItemHandle getItemHandle() { + public @NotNull ItemHandle getItemHandle() { return itemHandle; } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index 0f6196f9b..4e70d65e1 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -27,6 +27,7 @@ import net.minecraft.MinecraftVersion; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; +import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -112,22 +113,22 @@ public class PlatformImpl extends AbstractPlatform { } @Override - public String platformName() { + public @NotNull String platformName() { return "Fabric"; } @Override - public WorldHandle getWorldHandle() { + public @NotNull WorldHandle getWorldHandle() { return worldHandle; } @Override - public File getDataFolder() { + public @NotNull File getDataFolder() { return dataFolder.value(); } @Override - public ItemHandle getItemHandle() { + public @NotNull ItemHandle getItemHandle() { return itemHandle; } diff --git a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/PlatformImpl.java b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/PlatformImpl.java index 8df2cb49a..0d401bf60 100644 --- a/platforms/sponge/src/main/java/com/dfsek/terra/sponge/PlatformImpl.java +++ b/platforms/sponge/src/main/java/com/dfsek/terra/sponge/PlatformImpl.java @@ -17,6 +17,7 @@ package com.dfsek.terra.sponge; +import org.jetbrains.annotations.NotNull; import org.spongepowered.api.Sponge; import java.io.File; @@ -43,22 +44,22 @@ public class PlatformImpl extends AbstractPlatform { } @Override - public String platformName() { + public @NotNull String platformName() { return "Sponge"; } @Override - public WorldHandle getWorldHandle() { + public @NotNull WorldHandle getWorldHandle() { return worldHandle; } @Override - public File getDataFolder() { + public @NotNull File getDataFolder() { return Sponge.configManager().pluginConfig(plugin.getPluginContainer()).directory().toFile(); } @Override - public ItemHandle getItemHandle() { + public @NotNull ItemHandle getItemHandle() { return null; } }