set up sponge api8 project

This commit is contained in:
dfsek
2021-06-02 09:45:11 -07:00
parent c1c2ab6df8
commit aaf32709b4
5 changed files with 39 additions and 15 deletions

View File

@@ -15,7 +15,7 @@ repositories {
}
dependencies {
"compileOnly"("org.spongepowered:spongeapi:7.2.0")
"compileOnly"("org.spongepowered:spongeapi:8.0.0-SNAPSHOT")
"shadedApi"(project(":common"))
"shadedImplementation"("org.yaml:snakeyaml:1.27")
"shadedImplementation"("com.googlecode.json-simple:json-simple:1.1.1")

View File

@@ -3,9 +3,9 @@ package com.dfsek.terra.sponge;
import com.dfsek.terra.api.util.logging.Logger;
public class SpongeLogger implements Logger {
private final org.slf4j.Logger logger;
private final org.apache.logging.log4j.Logger logger;
public SpongeLogger(org.slf4j.Logger logger) {
public SpongeLogger(org.apache.logging.log4j.Logger logger) {
this.logger = logger;
}

View File

@@ -20,17 +20,21 @@ import com.dfsek.terra.registry.master.ConfigRegistry;
import com.dfsek.terra.sponge.world.SpongeWorldHandle;
import com.dfsek.terra.world.TerraWorld;
import com.google.inject.Inject;
import org.slf4j.Logger;
import org.apache.logging.log4j.Logger;
import org.spongepowered.api.Server;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.config.ConfigDir;
import org.spongepowered.api.event.Listener;
import org.spongepowered.api.event.game.state.GameStartedServerEvent;
import org.spongepowered.api.plugin.Plugin;
import org.spongepowered.api.event.lifecycle.StartedEngineEvent;
import org.spongepowered.plugin.PluginContainer;
import org.spongepowered.plugin.jvm.Plugin;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
@Plugin(id = "terra", name = "Terra-Sponge", version = "", description = "Terra")
@Plugin("terra")
public class TerraSpongePlugin implements TerraPlugin {
private final ConfigRegistry configRegistry = new ConfigRegistry();
private final CheckedRegistry<ConfigPack> packCheckedRegistry = new CheckedRegistry<>(configRegistry);
@@ -42,16 +46,18 @@ public class TerraSpongePlugin implements TerraPlugin {
private final EventManager eventManager = new TerraEventManager(this);
@Inject
@ConfigDir(sharedRoot = false)
private Path privateConfigDir;
private final PluginContainer plugin;
@Inject
private Logger logger;
public TerraSpongePlugin(PluginContainer plugin) {
this.plugin = plugin;
}
@Listener
public void initialize(GameStartedServerEvent event) {
public void initialize(StartedEngineEvent<Server> event) {
plugin.logger().info("Loading Terra...");
plugin.logger().info("Config: " + getDataFolder());
addonRegistry.loadAll();
configRegistry.loadAll(this);
}
@@ -73,7 +79,7 @@ public class TerraSpongePlugin implements TerraPlugin {
@Override
public com.dfsek.terra.api.util.logging.Logger logger() {
return new SpongeLogger(logger);
return new SpongeLogger(plugin.logger());
}
@Override
@@ -83,7 +89,7 @@ public class TerraSpongePlugin implements TerraPlugin {
@Override
public File getDataFolder() {
return privateConfigDir.toFile();
return Sponge.configManager().pluginConfig(plugin).directory().toFile();
}
@Override

View File

@@ -10,7 +10,7 @@ import org.spongepowered.api.block.BlockState;
public class SpongeWorldHandle implements WorldHandle {
@Override
public BlockData createBlockData(String data) {
return SpongeAdapter.adapt(Sponge.getRegistry().getType(BlockState.class, data).orElseThrow(() -> new IllegalArgumentException("Invalid block data \"" + data + "\"")));
return SpongeAdapter.adapt(BlockState.fromString(data));
}
@Override

View File

@@ -0,0 +1,18 @@
{
"plugins": [
{
"loader": "java_plain",
"id": "terra",
"name": "Terra",
"version": "@VERSION@",
"main-class": "com.dfsek.terra.sponge.TerraSpongePlugin",
"description": "@DESCRIPTION@",
"dependencies": [
{
"id": "spongeapi",
"version": "8.0.0"
}
]
}
]
}