From fa0b3a638964b61c94d8b86e502d8c804b8fb18e Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 30 Jan 2018 16:30:54 -0500 Subject: [PATCH 1/8] add mass register --- autoeconomy/autoeconomy.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index 6c03e6a..b878252 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -85,7 +85,29 @@ class AutoEconomy: """Displays the autoeconomy version.""" await self.bot.say("autoeconomy version {}.".format(self.version)) - async def on_member_join(self, member): + @autoeconomy.command(name="massregister", pass_context=True) + async def massregister(self, ctx): + """ + did you install autoeconomy after a bunch of people were + already in server? now you can fix that + """ + econ_cog = self.bot.get_cog('Economy') + if not econ_cog: + return await self.bot.say("This requires economy to be loaded.") + server = ctx.message.server + exit_statuses = [] + for member in server.members: + exit_status = await self.on_member_join(member, True) + exit_statuses.append(exit_status) + + count_opened = len([x for x in exit_statuses if x]) + + await self.bot.say( + "I've opened up new economy entries for " + "{}/{} members.".format(count_opened, len(server.members)) + ) + + async def on_member_join(self, member, mass_register=False): server = member.server if server.id not in self.settings: self.settings[server.id] = deepcopy(default_settings) @@ -101,15 +123,15 @@ class AutoEconomy: try: bank.create_account(member) except Exception: - if self.settings[server.id]["DEBUG"]: + if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Economy account already exists for {}.".format(member.name)) - return + return False if self.banksettings[server.id]["REGISTER_CREDITS"]: reg_credits = self.banksettings[server.id]["REGISTER_CREDITS"] bank.deposit_credits(member, reg_credits) if self.settings[server.id]["DEBUG"]: await self.bot.send_message(channel_object, "Bank account opened for {} and initial credits given.".format(member.name)) - return + return True def check_folders(): From 37c808a9a15afada77e3ffaa9ad108670f1baf5a Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 30 Jan 2018 18:03:23 -0500 Subject: [PATCH 2/8] check if massregistering before issuing debug messages --- autoeconomy/autoeconomy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index b878252..a267315 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -129,7 +129,7 @@ class AutoEconomy: if self.banksettings[server.id]["REGISTER_CREDITS"]: reg_credits = self.banksettings[server.id]["REGISTER_CREDITS"] bank.deposit_credits(member, reg_credits) - if self.settings[server.id]["DEBUG"]: + if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Bank account opened for {} and initial credits given.".format(member.name)) return True From 115144d9e3250161c2f536142ed1299e31ca66c7 Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 30 Jan 2018 18:08:04 -0500 Subject: [PATCH 3/8] massregister is an explicit command, should reflect that in handling of the toggle --- autoeconomy/autoeconomy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index a267315..abcd438 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -112,7 +112,7 @@ class AutoEconomy: if server.id not in self.settings: self.settings[server.id] = deepcopy(default_settings) await self.save_settings() - if not self.settings[server.id]["TOGGLE"]: + if not (self.settings[server.id]["TOGGLE"] or mass_register): return channel = self.settings[server.id]["CHANNEL"] channel_object = self.bot.get_channel(channel) From ae1567425c88555cc04dfa18904561f95705d01b Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 30 Jan 2018 18:48:59 -0500 Subject: [PATCH 4/8] Move return statement for exit code Verify a bank exists before trying to register people at it --- autoeconomy/autoeconomy.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index abcd438..b60ae87 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -95,20 +95,26 @@ class AutoEconomy: if not econ_cog: return await self.bot.say("This requires economy to be loaded.") server = ctx.message.server - exit_statuses = [] + if server.id not in self.banksettings: + return await self.bot.say( + "I can't register people for a bank that doesn't exist yet." + ) + + count = 0 for member in server.members: exit_status = await self.on_member_join(member, True) - exit_statuses.append(exit_status) - - count_opened = len([x for x in exit_statuses if x]) + if exit_status: + count += 1 await self.bot.say( "I've opened up new economy entries for " - "{}/{} members.".format(count_opened, len(server.members)) + "{}/{} members.".format(count, len(server.members)) ) async def on_member_join(self, member, mass_register=False): server = member.server + if server.id not in self.banksettings: + return if server.id not in self.settings: self.settings[server.id] = deepcopy(default_settings) await self.save_settings() @@ -131,7 +137,7 @@ class AutoEconomy: bank.deposit_credits(member, reg_credits) if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Bank account opened for {} and initial credits given.".format(member.name)) - return True + return True def check_folders(): From 8f23276ad25682098f17e065dc2f2f8971c0dc8c Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 31 Jan 2018 13:58:58 -0500 Subject: [PATCH 5/8] use the initial_credits parameter when making an account --- autoeconomy/autoeconomy.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index b60ae87..d5f635b 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -126,18 +126,17 @@ class AutoEconomy: if not econ_cog: return bank = self.bot.get_cog('Economy').bank + init_balance = self.banksettings[server.id].get("REGISTER_CREDITS", 0) try: - bank.create_account(member) + bank.create_account(member, initial_balance=init_balance) except Exception: if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Economy account already exists for {}.".format(member.name)) return False - if self.banksettings[server.id]["REGISTER_CREDITS"]: - reg_credits = self.banksettings[server.id]["REGISTER_CREDITS"] - bank.deposit_credits(member, reg_credits) + else: if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Bank account opened for {} and initial credits given.".format(member.name)) - return True + return True def check_folders(): From 48132fe5b8c7a203165e9fcd2707086724474085 Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 31 Jan 2018 13:59:41 -0500 Subject: [PATCH 6/8] outdent exit status --- autoeconomy/autoeconomy.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index d5f635b..7cbcda3 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -128,11 +128,11 @@ class AutoEconomy: bank = self.bot.get_cog('Economy').bank init_balance = self.banksettings[server.id].get("REGISTER_CREDITS", 0) try: - bank.create_account(member, initial_balance=init_balance) + bank.create_account(member, init_balance) except Exception: if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Economy account already exists for {}.".format(member.name)) - return False + return False else: if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Bank account opened for {} and initial credits given.".format(member.name)) From 3112153c5700ea03ef6bad689a505a1f6dba3df3 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 2 Feb 2018 19:00:43 -0500 Subject: [PATCH 7/8] don't load economy's setting's through json this leads to having a different set of settings if updated through economy after autoeconomy is loaded reference settings object in economy cog instead --- autoeconomy/autoeconomy.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index 7cbcda3..db5fbd3 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -19,7 +19,6 @@ class AutoEconomy: def __init__(self, bot): self.bot = bot self.settings = dataIO.load_json('data/autoeconomy/settings.json') - self.banksettings = dataIO.load_json('data/economy/settings.json') self.version = "0.1.1b" async def save_settings(self): @@ -95,7 +94,7 @@ class AutoEconomy: if not econ_cog: return await self.bot.say("This requires economy to be loaded.") server = ctx.message.server - if server.id not in self.banksettings: + if server.id not in econ_cog.settings: return await self.bot.say( "I can't register people for a bank that doesn't exist yet." ) From f8a501285f3cad2f4770a8894a24e70bc042b88d Mon Sep 17 00:00:00 2001 From: aikaterna <20862007+aikaterna@users.noreply.github.com> Date: Sat, 3 Feb 2018 13:47:03 -0800 Subject: [PATCH 8/8] Update version, fix initial balance, update help --- autoeconomy/autoeconomy.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/autoeconomy/autoeconomy.py b/autoeconomy/autoeconomy.py index db5fbd3..d47b1b4 100644 --- a/autoeconomy/autoeconomy.py +++ b/autoeconomy/autoeconomy.py @@ -19,7 +19,8 @@ class AutoEconomy: def __init__(self, bot): self.bot = bot self.settings = dataIO.load_json('data/autoeconomy/settings.json') - self.version = "0.1.1b" + self.banksettings = dataIO.load_json('data/economy/settings.json') + self.version = "0.1.2" async def save_settings(self): dataIO.save_json('data/autoeconomy/settings.json', self.settings) @@ -86,10 +87,7 @@ class AutoEconomy: @autoeconomy.command(name="massregister", pass_context=True) async def massregister(self, ctx): - """ - did you install autoeconomy after a bunch of people were - already in server? now you can fix that - """ + """Mass register existing users.""" econ_cog = self.bot.get_cog('Economy') if not econ_cog: return await self.bot.say("This requires economy to be loaded.") @@ -127,7 +125,7 @@ class AutoEconomy: bank = self.bot.get_cog('Economy').bank init_balance = self.banksettings[server.id].get("REGISTER_CREDITS", 0) try: - bank.create_account(member, init_balance) + bank.create_account(member, initial_balance=init_balance) except Exception: if self.settings[server.id]["DEBUG"] and not mass_register: await self.bot.send_message(channel_object, "Economy account already exists for {}.".format(member.name))