feat(config): add default config.yml and configure auto-loader

This commit is contained in:
2026-08-20 17:46:18 +02:00
parent 14df461dfb
commit 1f0d469dd3
2 changed files with 70 additions and 0 deletions
+27
View File
@@ -54,6 +54,7 @@ public final class Main extends JavaPlugin {
// 5. Initialiser le service métier GuildManager et charger les données
this.guildManager = new GuildManager(this, guildRepository, economyManager);
loadConfigSettings();
this.guildManager.loadData();
// 6. Initialiser le framework betterMcCommands et enregistrer les commandes
@@ -85,6 +86,32 @@ public final class Main extends JavaPlugin {
getLogger().info("GamingCore a ete desactive !");
}
/**
* Charge et applique les paramètres de configuration dans les différents gestionnaires.
*/
private void loadConfigSettings() {
if (guildManager == null) return;
double basePrice = getConfig().getDouble("economy.chunk_pricing.base_price", 1000.0);
double growthRate = getConfig().getDouble("economy.chunk_pricing.growth_rate", 0.08);
double alpha = getConfig().getDouble("economy.chunk_pricing.alpha", 0.95);
double linearStep = getConfig().getDouble("economy.chunk_pricing.linear_step", 150.0);
double kBase = getConfig().getDouble("economy.chunk_pricing.k_base", 0.05);
double kSize = getConfig().getDouble("economy.chunk_pricing.k_size", 0.03);
double delta = getConfig().getDouble("economy.chunk_pricing.delta", 1.15);
long recentWindowMillis = getConfig().getLong("economy.chunk_pricing.recent_window_hours", 24) * 3600_000L;
fr.luc.gamingcore.economy.ChunkPriceCalculator calc = guildManager.getPriceCalculator();
calc.setBasePrice(basePrice);
calc.setGrowthRate(growthRate);
calc.setAlpha(alpha);
calc.setLinearStep(linearStep);
calc.setKBase(kBase);
calc.setKSize(kSize);
calc.setDelta(delta);
calc.setRecentWindowMillis(recentWindowMillis);
}
/**
* Initialise la connexion vers l'API WorldGuard 7 si disponible.
*/
+43
View File
@@ -0,0 +1,43 @@
# ==========================================================
# GAMINGCORE - SYSTÈME DE GUILDE
# ==========================================================
# Préfixe global des messages (Format MiniMessage / HEX / Gradients)
prefix: "<gradient:#00C9FF:#92FE9D>[Guilde]</gradient> <dark_gray>»</dark_gray> <gray>"
# Paramètres généraux des guildes
guild:
# Coût de création d'une guilde en monnaie Vault
creation_cost: 1000.0
# Durée de validité des invitations envoyées (en secondes)
invite_timeout_seconds: 60
# Paramètres mathématiques de calcul du coût des territoires (Chunks)
# Formule spatio-temporelle : PrixFinal(N, R) = P_structurel(N) * M_surchauffe(N, R)
economy:
chunk_pricing:
# Prix de base du premier chunk (P_base)
base_price: 1000.0
# Taux de croissance exponentiel de base (ex: 0.08 pour +8% par chunk)
growth_rate: 0.08
# Facteur d'amortissement de l'exposant alpha (entre 0.8 et 1.0)
alpha: 0.95
# Palier linéaire fixe ajouté par chunk possédé (Palier)
linear_step: 150.0
# Paramètres de surchauffe temporelle glissante
# Fenêtre glissante en heures
recent_window_hours: 24
# Surchauffe minimale de base par claim récent (k_base)
k_base: 0.05
# Amplification de la surchauffe selon la taille de la guilde (k_taille)
k_size: 0.03
# Exposant de vélocité temporelle (delta)
delta: 1.15
# Paramètres de protection territoriale
protection:
# Empêcher les explosions (Creeper, TNT, Lits, Cristaux) d'endommager les territoires de guilde
prevent_explosions: true
# Afficher une notification dans l'Action Bar lors du franchissement de frontière de chunk
show_actionbar_on_move: true