mirror of
https://github.com/arthur-pbty/LazyBot.git
synced 2026-06-22 18:19:12 +02:00
add economi system
This commit is contained in:
@@ -263,6 +263,103 @@
|
||||
<button type="submit">Sauvegarder</button>
|
||||
<div id="status-level-form"></div>
|
||||
</form>
|
||||
|
||||
|
||||
<form id="economy-form">
|
||||
<h2>💰 Système d'économie</h2>
|
||||
|
||||
<label>
|
||||
<input type="checkbox" id="economy-enabled" />
|
||||
Activer le système d'économie
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Nom de la monnaie :
|
||||
<br />
|
||||
<input type="text" id="economy-currency-name" value="coins" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Symbole de la monnaie :
|
||||
<br />
|
||||
<input type="text" id="economy-currency-symbol" value="💰" maxlength="10" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Solde de départ :
|
||||
<br />
|
||||
<input type="number" id="economy-starting-balance" min="0" value="0" />
|
||||
</label>
|
||||
|
||||
<h3>📅 Récompense quotidienne</h3>
|
||||
<label>
|
||||
Montant quotidien :
|
||||
<br />
|
||||
<input type="number" id="economy-daily-amount" min="1" value="100" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Cooldown (heures) :
|
||||
<br />
|
||||
<input type="number" id="economy-daily-cooldown" min="1" value="24" />
|
||||
</label>
|
||||
|
||||
<h3>💼 Travail</h3>
|
||||
<label>
|
||||
Gain minimum :
|
||||
<br />
|
||||
<input type="number" id="economy-work-min" min="1" value="50" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Gain maximum :
|
||||
<br />
|
||||
<input type="number" id="economy-work-max" min="1" value="150" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Cooldown (minutes) :
|
||||
<br />
|
||||
<input type="number" id="economy-work-cooldown" min="1" value="60" />
|
||||
</label>
|
||||
|
||||
<h3>🔫 Crime</h3>
|
||||
<label>
|
||||
Gain minimum :
|
||||
<br />
|
||||
<input type="number" id="economy-crime-min" min="1" value="100" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Gain maximum :
|
||||
<br />
|
||||
<input type="number" id="economy-crime-max" min="1" value="500" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Taux de réussite (%) :
|
||||
<br />
|
||||
<input type="number" id="economy-crime-success" min="1" max="100" value="50" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Amende en cas d'échec (% du solde) :
|
||||
<br />
|
||||
<input type="number" id="economy-crime-fine" min="0" max="100" value="30" />
|
||||
</label>
|
||||
|
||||
<label>
|
||||
Cooldown (minutes) :
|
||||
<br />
|
||||
<input type="number" id="economy-crime-cooldown" min="1" value="120" />
|
||||
</label>
|
||||
|
||||
<button type="submit">Sauvegarder</button>
|
||||
<div id="status-economy-form"></div>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="/guild/guildBase.js"></script>
|
||||
@@ -271,5 +368,6 @@
|
||||
<script src="/guild/autoroleNewUserForm.js"></script>
|
||||
<script src="/guild/autoroleVocalForm.js"></script>
|
||||
<script src="/guild/levelForm.js"></script>
|
||||
<script src="/guild/economyForm.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
const economyForm = document.getElementById("economy-form");
|
||||
const economyEnabled = document.getElementById("economy-enabled");
|
||||
const currencyName = document.getElementById("economy-currency-name");
|
||||
const currencySymbol = document.getElementById("economy-currency-symbol");
|
||||
const startingBalance = document.getElementById("economy-starting-balance");
|
||||
const dailyAmount = document.getElementById("economy-daily-amount");
|
||||
const dailyCooldown = document.getElementById("economy-daily-cooldown");
|
||||
const workMin = document.getElementById("economy-work-min");
|
||||
const workMax = document.getElementById("economy-work-max");
|
||||
const workCooldown = document.getElementById("economy-work-cooldown");
|
||||
const crimeMin = document.getElementById("economy-crime-min");
|
||||
const crimeMax = document.getElementById("economy-crime-max");
|
||||
const crimeSuccess = document.getElementById("economy-crime-success");
|
||||
const crimeFine = document.getElementById("economy-crime-fine");
|
||||
const crimeCooldown = document.getElementById("economy-crime-cooldown");
|
||||
const statusEconomyForm = document.getElementById("status-economy-form");
|
||||
|
||||
// Charger la config existante
|
||||
fetch(`/api/bot/get-economy-config/${guildId}`)
|
||||
.then(res => res.json())
|
||||
.then(cfg => {
|
||||
economyEnabled.checked = cfg.enabled;
|
||||
currencyName.value = cfg.currencyName;
|
||||
currencySymbol.value = cfg.currencySymbol;
|
||||
startingBalance.value = cfg.startingBalance;
|
||||
dailyAmount.value = cfg.dailyAmount;
|
||||
dailyCooldown.value = cfg.dailyCooldownHours;
|
||||
workMin.value = cfg.workMinAmount;
|
||||
workMax.value = cfg.workMaxAmount;
|
||||
workCooldown.value = cfg.workCooldownMinutes;
|
||||
crimeMin.value = cfg.crimeMinAmount;
|
||||
crimeMax.value = cfg.crimeMaxAmount;
|
||||
crimeSuccess.value = cfg.crimeSuccessRate;
|
||||
crimeFine.value = cfg.crimeFinePercent;
|
||||
crimeCooldown.value = cfg.crimeCooldownMinutes;
|
||||
})
|
||||
.catch(console.error);
|
||||
|
||||
// Sauvegarder la config
|
||||
economyForm.addEventListener("submit", async e => {
|
||||
e.preventDefault();
|
||||
|
||||
const res = await fetch("/api/bot/save-economy-config", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
guildId,
|
||||
economyEnabled: economyEnabled.checked,
|
||||
currencyName: currencyName.value,
|
||||
currencySymbol: currencySymbol.value,
|
||||
startingBalance: parseInt(startingBalance.value, 10),
|
||||
dailyAmount: parseInt(dailyAmount.value, 10),
|
||||
dailyCooldownHours: parseInt(dailyCooldown.value, 10),
|
||||
workMinAmount: parseInt(workMin.value, 10),
|
||||
workMaxAmount: parseInt(workMax.value, 10),
|
||||
workCooldownMinutes: parseInt(workCooldown.value, 10),
|
||||
crimeMinAmount: parseInt(crimeMin.value, 10),
|
||||
crimeMaxAmount: parseInt(crimeMax.value, 10),
|
||||
crimeSuccessRate: parseInt(crimeSuccess.value, 10),
|
||||
crimeFinePercent: parseInt(crimeFine.value, 10),
|
||||
crimeCooldownMinutes: parseInt(crimeCooldown.value, 10)
|
||||
})
|
||||
});
|
||||
|
||||
statusEconomyForm.textContent = (await res.json()).success
|
||||
? "Config économie sauvegardée ✅"
|
||||
: "Erreur ❌";
|
||||
});
|
||||
Reference in New Issue
Block a user