aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-18 13:19:16 +0100
committerGravatar jesopo2018-10-18 13:19:16 +0100
commitb799f543a948cf6935ae5c9b3e18763d4f30a224 (patch)
tree9a26fbda6656568ef9f6758ca61eebaa697d45f2
parent"," -> ", " in modules/words.py (diff)
signature
Internally use "wallets" to track users coins
-rw-r--r--modules/coins.py32
1 files changed, 22 insertions, 10 deletions
diff --git a/modules/coins.py b/modules/coins.py
index 004dc6b6..4ba9b203 100644
--- a/modules/coins.py
+++ b/modules/coins.py
@@ -62,12 +62,24 @@ class Module(ModuleManager.BaseModule):
coins = self._get_pool(server)
self._set_pool(server, coins+amount)
- def _get_user_coins(self, user):
- return decimal.Decimal(user.get_setting("coins", "0.0"))
- def _set_user_coins(self, user, coins):
- user.set_setting("coins", self._coin_str(coins))
- def _reset_user_coins(self, user):
- user.del_setting("coins")
+ def _get_user_wallets(self, user):
+ return user.get_setting("wallets", {})
+ def _set_user_wallets(self, user, wallets):
+ user.set_setting("wallets", wallets)
+ def _reset_user_wallets(self, user):
+ user.del_setting("wallets")
+
+ def _get_user_coins(self, user, wallet="default"):
+ wallets = self._get_user_wallets(user)
+ return decimal.Decimal(wallets.get(wallet.lower(), "0.0"))
+ def _get_all_user_coins(self, user):
+ wallets = self._get_user_wallets(user)
+ print(wallets)
+ return sum([decimal.Decimal(amount) for amount in wallets.values()])
+ def _set_user_coins(self, user, coins, wallet="default"):
+ wallets = self._get_user_wallets(user)
+ wallets[wallet.lower()] = self._coin_str(coins)
+ self._set_user_wallets(user, wallets)
def _all_coins(self, server):
coins = server.get_all_user_settings("coins", [])
@@ -148,7 +160,7 @@ class Module(ModuleManager.BaseModule):
target = event["server"].get_user(event["args_split"][0])
else:
target = event["user"]
- coins = self._get_user_coins(target)
+ coins = self._get_all_user_coins(target)
event["stdout"].write("%s has %s coin%s" % (target.nickname,
self._coin_str(coins), "" if coins == 1 else "s"))
@@ -160,9 +172,9 @@ class Module(ModuleManager.BaseModule):
:permission: resetcoins
"""
target = event["server"].get_user(event["args_split"][0])
- coins = self._get_user_coins(target)
+ coins = self._get_all_user_coins(target)
self._take(event["server"], target, coins)
- self._reset_user_coins(target)
+ self._reset_user_wallets(target)
event["stdout"].write("Reset coins for %s" % target.nickname)
@utils.hook("received.command.givecoins", min_args=1)
@@ -201,7 +213,7 @@ class Module(ModuleManager.BaseModule):
"""
:help: Redeem your free coins
"""
- user_coins = self._get_user_coins(event["user"])
+ user_coins = self._get_all_user_coins(event["user"])
if user_coins == DECIMAL_ZERO:
cache = self._redeem_cache(event["server"], event["user"])
if not self.bot.cache.has_item(cache):