1+ import json
2+ import discord
3+ from colors import Colors
4+
5+ class CurrencyAPI (Colors ):
6+ """The isobot API used for managing currency.
7+
8+ Valid commands:
9+ - add(user, amount)
10+ - remove(user, amount)
11+ - reset(user)
12+ - deposit(user, amount)
13+ - withdraw(user, amount)"""
14+ def __init__ (self , db_path :str ):
15+ self .db_path = db_path
16+ print (f"[Framework/Loader] { Colors .green } CurrencyAPI initialized.{ Colors .end } " )
17+ def save (self ):
18+ """Saves databases cached on memory."""
19+ with open (self .db_path , 'w+' ) as f : json .dump (currency , f , indent = 4 )
20+ def add (self , user :discord .User , amount :int ):
21+ """Adds balance to the specified user."""
22+ currency ["wallet" ][str (user .id )] += amount
23+ self .save ()
24+ def remove (self , user :discord .User , amount :int ):
25+ """Removes balance from the specified user."""
26+ currency ["wallet" ][str (user .id )] -= amount
27+ self .save ()
28+ def reset (self , user :discord .User ):
29+ """Resets the specified user's balance."""
30+ currency ["wallet" ][str (user .id )] = 0
31+ currency ["bank" ][str (user .id )] = 0
32+ self .save ()
33+ print (f"[Framework/CurrencyAPI] Currency data for \" { user .id } \" has been wiped." )
34+ def deposit (self , user :discord .User , amount :int ):
35+ """Moves a specified amount of coins to the user's bank."""
36+ currency ["bank" ][str (user .id )] += amount
37+ currency ["wallet" ][str (user .id )] -= amount
38+ save ()
39+ print (f"[Framework/CurrencyAPI] Moved { amount } coins to bank. User: { user } [{ user .id } ]" )
40+ def withdraw (self , user :discord .User , amount :int ):
41+ """Moves a specified amount of coins to the user's wallet."""
42+ currency ["wallet" ][str (user .id )] += amount
43+ currency ["bank" ][str (user .id )] -= amount
44+ save ()
45+ print (f"[Framework/CurrencyAPI] Moved { amount } coins to wallet. User: { user } [{ user .id } ]" )
0 commit comments