add steal in economi

This commit is contained in:
Arthur Puechberty
2026-01-17 19:08:52 +01:00
parent 7d706b4d79
commit 90339f9323
10 changed files with 643 additions and 65 deletions
+106 -43
View File
@@ -554,43 +554,78 @@ module.exports = (app, db, client) => {
router.get("/bot/get-economy-config/:guildId", (req, res) => {
const { guildId } = req.params;
// Valeurs par défaut
const defaults = {
enabled: false,
currencyName: "coins",
currencySymbol: "💰",
dailyEnabled: true,
dailyAmount: 100,
dailyCooldownHours: 24,
workEnabled: true,
workMinAmount: 50,
workMaxAmount: 150,
workCooldownMinutes: 60,
crimeEnabled: true,
crimeMinAmount: 100,
crimeMaxAmount: 500,
crimeSuccessRate: 50,
crimeFinePercent: 30,
crimeCooldownMinutes: 120,
stealEnabled: true,
stealSuccessRate: 40,
stealMaxPercent: 50,
stealFinePercent: 25,
stealCooldownMinutes: 180,
messageMoneyEnabled: false,
messageMoneyMin: 1,
messageMoneyMax: 5,
messageMoneyCooldownSeconds: 60,
voiceMoneyEnabled: false,
voiceMoneyMin: 5,
voiceMoneyMax: 15,
voiceMoneyIntervalMinutes: 5,
startingBalance: 0
};
db.get(
`SELECT * FROM economy_config WHERE guild_id = ?`,
[guildId],
(err, row) => {
if (err || !row) {
return res.json({
enabled: false,
currencyName: "coins",
currencySymbol: "💰",
dailyAmount: 100,
dailyCooldownHours: 24,
workMinAmount: 50,
workMaxAmount: 150,
workCooldownMinutes: 60,
crimeMinAmount: 100,
crimeMaxAmount: 500,
crimeSuccessRate: 50,
crimeFinePercent: 30,
crimeCooldownMinutes: 120,
startingBalance: 0
});
return res.json(defaults);
}
res.json({
enabled: !!row.enabled,
currencyName: row.currency_name,
currencySymbol: row.currency_symbol,
dailyAmount: row.daily_amount,
dailyCooldownHours: row.daily_cooldown_hours,
workMinAmount: row.work_min_amount,
workMaxAmount: row.work_max_amount,
workCooldownMinutes: row.work_cooldown_minutes,
crimeMinAmount: row.crime_min_amount,
crimeMaxAmount: row.crime_max_amount,
crimeSuccessRate: row.crime_success_rate,
crimeFinePercent: row.crime_fine_percent,
crimeCooldownMinutes: row.crime_cooldown_minutes,
startingBalance: row.starting_balance
enabled: row.enabled != null ? !!row.enabled : defaults.enabled,
currencyName: row.currency_name ?? defaults.currencyName,
currencySymbol: row.currency_symbol ?? defaults.currencySymbol,
dailyEnabled: row.daily_enabled != null ? !!row.daily_enabled : defaults.dailyEnabled,
dailyAmount: row.daily_amount ?? defaults.dailyAmount,
dailyCooldownHours: row.daily_cooldown_hours ?? defaults.dailyCooldownHours,
workEnabled: row.work_enabled != null ? !!row.work_enabled : defaults.workEnabled,
workMinAmount: row.work_min_amount ?? defaults.workMinAmount,
workMaxAmount: row.work_max_amount ?? defaults.workMaxAmount,
workCooldownMinutes: row.work_cooldown_minutes ?? defaults.workCooldownMinutes,
crimeEnabled: row.crime_enabled != null ? !!row.crime_enabled : defaults.crimeEnabled,
crimeMinAmount: row.crime_min_amount ?? defaults.crimeMinAmount,
crimeMaxAmount: row.crime_max_amount ?? defaults.crimeMaxAmount,
crimeSuccessRate: row.crime_success_rate ?? defaults.crimeSuccessRate,
crimeFinePercent: row.crime_fine_percent ?? defaults.crimeFinePercent,
crimeCooldownMinutes: row.crime_cooldown_minutes ?? defaults.crimeCooldownMinutes,
stealEnabled: row.steal_enabled != null ? !!row.steal_enabled : defaults.stealEnabled,
stealSuccessRate: row.steal_success_rate ?? defaults.stealSuccessRate,
stealMaxPercent: row.steal_max_percent ?? defaults.stealMaxPercent,
stealFinePercent: row.steal_fine_percent ?? defaults.stealFinePercent,
stealCooldownMinutes: row.steal_cooldown_minutes ?? defaults.stealCooldownMinutes,
messageMoneyEnabled: row.message_money_enabled != null ? !!row.message_money_enabled : defaults.messageMoneyEnabled,
messageMoneyMin: row.message_money_min ?? defaults.messageMoneyMin,
messageMoneyMax: row.message_money_max ?? defaults.messageMoneyMax,
messageMoneyCooldownSeconds: row.message_money_cooldown_seconds ?? defaults.messageMoneyCooldownSeconds,
voiceMoneyEnabled: row.voice_money_enabled != null ? !!row.voice_money_enabled : defaults.voiceMoneyEnabled,
voiceMoneyMin: row.voice_money_min ?? defaults.voiceMoneyMin,
voiceMoneyMax: row.voice_money_max ?? defaults.voiceMoneyMax,
voiceMoneyIntervalMinutes: row.voice_money_interval_minutes ?? defaults.voiceMoneyIntervalMinutes,
startingBalance: row.starting_balance ?? defaults.startingBalance
});
}
);
@@ -602,16 +637,32 @@ module.exports = (app, db, client) => {
economyEnabled,
currencyName,
currencySymbol,
dailyEnabled,
dailyAmount,
dailyCooldownHours,
workEnabled,
workMinAmount,
workMaxAmount,
workCooldownMinutes,
crimeEnabled,
crimeMinAmount,
crimeMaxAmount,
crimeSuccessRate,
crimeFinePercent,
crimeCooldownMinutes,
stealEnabled,
stealSuccessRate,
stealMaxPercent,
stealFinePercent,
stealCooldownMinutes,
messageMoneyEnabled,
messageMoneyMin,
messageMoneyMax,
messageMoneyCooldownSeconds,
voiceMoneyEnabled,
voiceMoneyMin,
voiceMoneyMax,
voiceMoneyIntervalMinutes,
startingBalance
} = req.body;
@@ -630,28 +681,40 @@ module.exports = (app, db, client) => {
db.run(
`INSERT INTO economy_config (
guild_id, enabled, currency_name, currency_symbol,
daily_amount, daily_cooldown_hours,
work_min_amount, work_max_amount, work_cooldown_minutes,
crime_min_amount, crime_max_amount, crime_success_rate, crime_fine_percent, crime_cooldown_minutes,
daily_enabled, daily_amount, daily_cooldown_hours,
work_enabled, work_min_amount, work_max_amount, work_cooldown_minutes,
crime_enabled, crime_min_amount, crime_max_amount, crime_success_rate, crime_fine_percent, crime_cooldown_minutes,
steal_enabled, steal_success_rate, steal_max_percent, steal_fine_percent, steal_cooldown_minutes,
message_money_enabled, message_money_min, message_money_max, message_money_cooldown_seconds,
voice_money_enabled, voice_money_min, voice_money_max, voice_money_interval_minutes,
starting_balance
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ON CONFLICT(guild_id) DO UPDATE SET
enabled = ?, currency_name = ?, currency_symbol = ?,
daily_amount = ?, daily_cooldown_hours = ?,
work_min_amount = ?, work_max_amount = ?, work_cooldown_minutes = ?,
crime_min_amount = ?, crime_max_amount = ?, crime_success_rate = ?, crime_fine_percent = ?, crime_cooldown_minutes = ?,
daily_enabled = ?, daily_amount = ?, daily_cooldown_hours = ?,
work_enabled = ?, work_min_amount = ?, work_max_amount = ?, work_cooldown_minutes = ?,
crime_enabled = ?, crime_min_amount = ?, crime_max_amount = ?, crime_success_rate = ?, crime_fine_percent = ?, crime_cooldown_minutes = ?,
steal_enabled = ?, steal_success_rate = ?, steal_max_percent = ?, steal_fine_percent = ?, steal_cooldown_minutes = ?,
message_money_enabled = ?, message_money_min = ?, message_money_max = ?, message_money_cooldown_seconds = ?,
voice_money_enabled = ?, voice_money_min = ?, voice_money_max = ?, voice_money_interval_minutes = ?,
starting_balance = ?`,
[
guildId,
economyEnabled ? 1 : 0, currencyName, currencySymbol,
dailyAmount, dailyCooldownHours,
workMinAmount, workMaxAmount, workCooldownMinutes,
crimeMinAmount, crimeMaxAmount, crimeSuccessRate, crimeFinePercent, crimeCooldownMinutes,
dailyEnabled ? 1 : 0, dailyAmount, dailyCooldownHours,
workEnabled ? 1 : 0, workMinAmount, workMaxAmount, workCooldownMinutes,
crimeEnabled ? 1 : 0, crimeMinAmount, crimeMaxAmount, crimeSuccessRate, crimeFinePercent, crimeCooldownMinutes,
stealEnabled ? 1 : 0, stealSuccessRate, stealMaxPercent, stealFinePercent, stealCooldownMinutes,
messageMoneyEnabled ? 1 : 0, messageMoneyMin, messageMoneyMax, messageMoneyCooldownSeconds,
voiceMoneyEnabled ? 1 : 0, voiceMoneyMin, voiceMoneyMax, voiceMoneyIntervalMinutes,
startingBalance,
economyEnabled ? 1 : 0, currencyName, currencySymbol,
dailyAmount, dailyCooldownHours,
workMinAmount, workMaxAmount, workCooldownMinutes,
crimeMinAmount, crimeMaxAmount, crimeSuccessRate, crimeFinePercent, crimeCooldownMinutes,
dailyEnabled ? 1 : 0, dailyAmount, dailyCooldownHours,
workEnabled ? 1 : 0, workMinAmount, workMaxAmount, workCooldownMinutes,
crimeEnabled ? 1 : 0, crimeMinAmount, crimeMaxAmount, crimeSuccessRate, crimeFinePercent, crimeCooldownMinutes,
stealEnabled ? 1 : 0, stealSuccessRate, stealMaxPercent, stealFinePercent, stealCooldownMinutes,
messageMoneyEnabled ? 1 : 0, messageMoneyMin, messageMoneyMax, messageMoneyCooldownSeconds,
voiceMoneyEnabled ? 1 : 0, voiceMoneyMin, voiceMoneyMax, voiceMoneyIntervalMinutes,
startingBalance
],
err => {