123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { UserData } from "../interface/economy.js";
- import fs from 'fs';
- import { economy } from "./config.js";
- export function addCoins(userId: string, amount: number, reason: string): void {
- const userData = getUserData(userId);
- if(userData){
- userData.economy.coins += amount;
- userData.economy.logs.unshift({
- type: 'add',
- amount: amount,
- reason: reason,
- date: formatDate(new Date())
- });
- saveUserData(userId, userData);
- }
- }
- export function removeCoins(userId: string, amount: number, reason: string): void {
- const userData = getUserData(userId);
- if (!userData) {
- throw new Error(`未找到用户数据`);
- }
- if (userData.economy.coins < amount) {
- throw new Error(`${economy.name}不足,需要${amount}${economy.currency},拥有${userData.economy.coins}${economy.currency}`);
- }
- userData.economy.coins -= amount;
- userData.economy.logs.unshift({
- type: 'remove',
- amount: amount,
- reason: reason,
- date: formatDate(new Date())
- });
- saveUserData(userId, userData);
- }
- export function getUserData(userId: string): UserData|null {
- if (!fs.existsSync(`${economy.data.path}`)) {
- throw new Error(`未找到用户数据目录,请检查配置文件`);
- }
- if (!userId) {
- return null
- }
- if (!fs.existsSync(`${economy.data.path}/${userId}.json`)) {
- const newUserData: UserData = {
- userId: userId,
- economy: {
- coins: economy.data.defaultCoins,
- logs: [],
-
- },
- props: [],
- Permission: []
- };
- fs.writeFileSync(`${economy.data.path}/${userId}.json`, JSON.stringify(newUserData, null, 4));
- return newUserData;
- }
- const userData = JSON.parse(fs.readFileSync(`${economy.data.path}/${userId}.json`, 'utf-8')) as UserData;
- return userData;
- }
- export function saveUserData(userId: string, userData: UserData): void {
- if (!fs.existsSync(`${economy.data.path}`)) {
- throw new Error(`未找到用户数据目录,请检查配置文件`);
- }
- fs.writeFileSync(`${economy.data.path}/${userId}.json`, JSON.stringify(userData, null, 4));
- }
- //格式化时间
- export function formatDate(date: Date): string {
- const year = date.getFullYear();
- const month = String(date.getMonth() + 1).padStart(2, '0');
- const day = String(date.getDate()).padStart(2, '0');
- const hours = String(date.getHours()).padStart(2, '0');
- const minutes = String(date.getMinutes()).padStart(2, '0');
- const seconds = String(date.getSeconds()).padStart(2, '0');
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
- }
|