88 lines
3.1 KiB
Java
88 lines
3.1 KiB
Java
package xyz.twovb.sgm;
|
|
|
|
import dev.rollczi.litecommands.bukkit.LiteBukkitMessages;
|
|
import dev.rollczi.litecommands.bukkit.LiteCommandsBukkit;
|
|
import lombok.Getter;
|
|
import org.bukkit.configuration.InvalidConfigurationException;
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
import xyz.twovb.sgm.commands.handlers.InvalidArgsHandler;
|
|
import xyz.twovb.sgm.commands.handlers.NoPermissionsHandler;
|
|
import xyz.twovb.sgm.commands.impl.LevelCommand;
|
|
import xyz.twovb.sgm.commands.impl.SGMCommand;
|
|
import xyz.twovb.toolbox.managers.ConfigManager;
|
|
import xyz.twovb.toolbox.managers.DatabaseManager;
|
|
import xyz.twovb.toolbox.managers.PlaceholderManager;
|
|
import xyz.twovb.toolbox.utils.CustomLogger;
|
|
|
|
import java.io.IOException;
|
|
import java.sql.SQLException;
|
|
import java.util.Objects;
|
|
|
|
public final class SGM extends JavaPlugin {
|
|
|
|
@Getter
|
|
private static SGM instance;
|
|
private FileConfiguration BuildInfo;
|
|
|
|
@Getter
|
|
private FileConfiguration Messages;
|
|
@Getter
|
|
private CustomLogger cLogger;
|
|
private ConfigManager configManager;
|
|
@Getter
|
|
private DatabaseManager databaseManager;
|
|
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
instance = this;
|
|
cLogger = new CustomLogger(this);
|
|
configManager = new ConfigManager(this);
|
|
Messages = configManager.loadConfig("messages.yml");
|
|
this.saveDefaultConfig();
|
|
BuildInfo = new YamlConfiguration();
|
|
try {
|
|
BuildInfo.load(Objects.requireNonNull(this.getTextResource("build-info.yml")));
|
|
} catch (IOException | InvalidConfigurationException ignored) {
|
|
}
|
|
registerCommands();
|
|
registerPlaceholders();
|
|
connectToDatabase();
|
|
}
|
|
|
|
private void connectToDatabase() {
|
|
databaseManager = new DatabaseManager();
|
|
try {
|
|
databaseManager.connect(DatabaseManager.DatabaseType.SQLITE, this, "sgm");
|
|
cLogger.log("Connected to database!");
|
|
} catch (SQLException | ClassNotFoundException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
|
|
private void registerPlaceholders() {
|
|
PlaceholderManager pm = new PlaceholderManager();
|
|
pm.registerPlaceholder("%commit.id%", BuildInfo.getString("commit.id"));
|
|
pm.registerPlaceholder("%commit.branch%", BuildInfo.getString("commit.branch"));
|
|
pm.registerPlaceholder("%commit.message%", BuildInfo.getString("commit.message"));
|
|
pm.registerPlaceholder("%name%", this.getName());
|
|
}
|
|
|
|
private void registerCommands() {
|
|
LiteCommandsBukkit.builder().commands(new SGMCommand(), new LevelCommand()).invalidUsage(new InvalidArgsHandler()).missingPermission(new NoPermissionsHandler()).message(LiteBukkitMessages.PLAYER_NOT_FOUND, input -> Messages.getString("commands.invalid-player").replace("%player%", input)).message(LiteBukkitMessages.PLAYER_ONLY, input -> Messages.getString("commands.player-only")).build();
|
|
}
|
|
|
|
@Override
|
|
public void onDisable() {
|
|
try {
|
|
databaseManager.close();
|
|
} catch (SQLException e) {
|
|
cLogger.error(e);
|
|
}
|
|
}
|
|
|
|
|
|
}
|