mirror of
https://github.com/xHyroM/lighteco.git
synced 2024-11-25 00:01:05 +01:00
feat: configuration file
This commit is contained in:
parent
2ab1bdeb85
commit
7a58f7fbea
7 changed files with 58 additions and 12 deletions
|
@ -24,6 +24,7 @@ subprojects {
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
maven("https://storehouse.okaeri.eu/repository/maven-public/")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,8 @@ import org.bukkit.Server;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -27,7 +29,9 @@ public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {}
|
public void onLoad() {
|
||||||
|
plugin.load();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
@ -43,6 +47,11 @@ public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstr
|
||||||
return loader.getServer();
|
return loader.getServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public File getDataFolder() {
|
||||||
|
return loader.getDataFolder();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<UUID> getOnlinePlayers() {
|
public List<UUID> getOnlinePlayers() {
|
||||||
return getServer().getOnlinePlayers().stream()
|
return getServer().getOnlinePlayers().stream()
|
||||||
|
|
|
@ -12,6 +12,8 @@ import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
public class TestPlugin extends JavaPlugin implements Listener {
|
public class TestPlugin extends JavaPlugin implements Listener {
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,7 +36,7 @@ public class TestPlugin extends JavaPlugin implements Listener {
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onWalk(AsyncPlayerChatEvent event) {
|
public void onWalk(AsyncPlayerChatEvent event) throws ParseException {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
LightEco provider = LightEcoProvider.get();
|
LightEco provider = LightEcoProvider.get();
|
||||||
|
@ -49,19 +51,22 @@ public class TestPlugin extends JavaPlugin implements Listener {
|
||||||
Currency currency = currencyManager.getCurrency(args[0]);
|
Currency currency = currencyManager.getCurrency(args[0]);
|
||||||
|
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case "balance": {
|
case "balance" -> player.sendMessage(user.getBalance(currency).toString());
|
||||||
player.sendMessage(user.getBalance(currency).toString());
|
case "add" -> {
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "add": {
|
|
||||||
if (currency.getDecimalPlaces() > 0) {
|
if (currency.getDecimalPlaces() > 0) {
|
||||||
user.setBalance(currency, BigDecimal.valueOf(Integer.parseInt(args[1])));
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
||||||
|
user.setBalance(currency, BigDecimal.valueOf(
|
||||||
|
Double.parseDouble(
|
||||||
|
decimalFormat.format(
|
||||||
|
Double.parseDouble(args[1])
|
||||||
|
)
|
||||||
|
)
|
||||||
|
));
|
||||||
} else {
|
} else {
|
||||||
user.setBalance(currency, BigDecimal.valueOf(Double.parseDouble(args[1])));
|
user.setBalance(currency, BigDecimal.valueOf(Integer.parseInt(args[1])));
|
||||||
}
|
}
|
||||||
|
|
||||||
provider.getUserManager().saveUser(user).thenAccept(aVoid -> player.sendMessage("Saved!"));
|
provider.getUserManager().saveUser(user).thenAccept(aVoid -> player.sendMessage("Saved!"));
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,8 @@ plugins {
|
||||||
dependencies {
|
dependencies {
|
||||||
api(project(":lighteco-api"))
|
api(project(":lighteco-api"))
|
||||||
|
|
||||||
implementation("org.spongepowered:configurate-yaml:4.0.0")
|
implementation("eu.okaeri:okaeri-configs-yaml-snakeyaml:5.0.0-beta.5")
|
||||||
|
implementation("eu.okaeri:okaeri-configs-validator-okaeri:5.0.0-beta.5")
|
||||||
|
|
||||||
compileOnly("org.projectlombok:lombok:1.18.28")
|
compileOnly("org.projectlombok:lombok:1.18.28")
|
||||||
annotationProcessor("org.projectlombok:lombok:1.18.28")
|
annotationProcessor("org.projectlombok:lombok:1.18.28")
|
||||||
|
|
|
@ -1,4 +1,13 @@
|
||||||
package dev.xhyrom.lighteco.common.config;
|
package dev.xhyrom.lighteco.common.config;
|
||||||
|
|
||||||
public class Config {
|
import eu.okaeri.configs.OkaeriConfig;
|
||||||
|
import eu.okaeri.configs.annotation.Comment;
|
||||||
|
import eu.okaeri.configs.annotation.Header;
|
||||||
|
|
||||||
|
@Header("LightEco configuration file.")
|
||||||
|
public class Config extends OkaeriConfig {
|
||||||
|
@Comment("This property must be unique for each server.")
|
||||||
|
@Comment("If you have multiple servers, you must set this property to a different value for each server.")
|
||||||
|
@Comment("Used for local currencies.")
|
||||||
|
public String server = "none";
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,33 @@ package dev.xhyrom.lighteco.common.plugin;
|
||||||
import dev.xhyrom.lighteco.api.LightEco;
|
import dev.xhyrom.lighteco.api.LightEco;
|
||||||
import dev.xhyrom.lighteco.api.LightEcoProvider;
|
import dev.xhyrom.lighteco.api.LightEcoProvider;
|
||||||
import dev.xhyrom.lighteco.common.api.LightEcoApi;
|
import dev.xhyrom.lighteco.common.api.LightEcoApi;
|
||||||
|
import dev.xhyrom.lighteco.common.config.Config;
|
||||||
import dev.xhyrom.lighteco.common.storage.Storage;
|
import dev.xhyrom.lighteco.common.storage.Storage;
|
||||||
import dev.xhyrom.lighteco.common.storage.StorageFactory;
|
import dev.xhyrom.lighteco.common.storage.StorageFactory;
|
||||||
|
import eu.okaeri.configs.ConfigManager;
|
||||||
|
import eu.okaeri.configs.yaml.snakeyaml.YamlSnakeYamlConfigurer;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public abstract class AbstractLightEcoPlugin implements LightEcoPlugin {
|
public abstract class AbstractLightEcoPlugin implements LightEcoPlugin {
|
||||||
@Getter
|
@Getter
|
||||||
private Storage storage;
|
private Storage storage;
|
||||||
private LightEcoApi api;
|
private LightEcoApi api;
|
||||||
|
|
||||||
|
public final void load() {
|
||||||
|
Config config = ConfigManager.create(Config.class, (it) -> {
|
||||||
|
File path = new File(this.getBootstrap().getDataFolder(), "config.yml");
|
||||||
|
path.mkdir();
|
||||||
|
|
||||||
|
it.withConfigurer(new YamlSnakeYamlConfigurer());
|
||||||
|
it.withBindFile(path);
|
||||||
|
it.withRemoveOrphans(true);
|
||||||
|
it.saveDefaults();
|
||||||
|
it.load(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public final void enable() {
|
public final void enable() {
|
||||||
// setup storage
|
// setup storage
|
||||||
StorageFactory factory = new StorageFactory(this);
|
StorageFactory factory = new StorageFactory(this);
|
||||||
|
|
|
@ -2,11 +2,14 @@ package dev.xhyrom.lighteco.common.plugin.bootstrap;
|
||||||
|
|
||||||
import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger;
|
import dev.xhyrom.lighteco.common.plugin.logger.PluginLogger;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public interface LightEcoBootstrap {
|
public interface LightEcoBootstrap {
|
||||||
Object getLoader();
|
Object getLoader();
|
||||||
PluginLogger getLogger();
|
PluginLogger getLogger();
|
||||||
|
File getDataFolder();
|
||||||
List<UUID> getOnlinePlayers();
|
List<UUID> getOnlinePlayers();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue