[V3 Bank/Economy] Fix #1404 and an issue with [p]bank reset (#1407)

* [V3 Bank] fix an issue with checks

* [V3 Economy] fix issues with [p]bank reset
This commit is contained in:
palmtree5 2018-03-12 15:10:46 -08:00 committed by Will
parent 4fcf32b5e9
commit 22a342d36d
2 changed files with 9 additions and 12 deletions

View File

@ -1,3 +1,5 @@
import discord
from redbot.core import checks, bank from redbot.core import checks, bank
from redbot.core.i18n import CogI18n from redbot.core.i18n import CogI18n
from discord.ext import commands from discord.ext import commands
@ -17,6 +19,8 @@ def check_global_setting_guildowner():
if await ctx.bot.is_owner(author): if await ctx.bot.is_owner(author):
return True return True
if not await bank.is_global(): if not await bank.is_global():
if not isinstance(ctx.channel, discord.abc.GuildChannel):
return False
permissions = ctx.channel.permissions_for(author) permissions = ctx.channel.permissions_for(author)
return author == ctx.guild.owner or permissions.administrator return author == ctx.guild.owner or permissions.administrator
@ -33,6 +37,8 @@ def check_global_setting_admin():
if await ctx.bot.is_owner(author): if await ctx.bot.is_owner(author):
return True return True
if not await bank.is_global(): if not await bank.is_global():
if not isinstance(ctx.channel, discord.abc.GuildChannel):
return False
permissions = ctx.channel.permissions_for(author) permissions = ctx.channel.permissions_for(author)
is_guild_owner = author == ctx.guild.owner is_guild_owner = author == ctx.guild.owner
admin_role = await ctx.bot.db.guild(ctx.guild).admin_role() admin_role = await ctx.bot.db.guild(ctx.guild).admin_role()

View File

@ -216,16 +216,7 @@ class Economy:
) )
) )
else: else:
if await bank.is_global(): await bank.wipe_bank()
# Bank being global means that the check would cause only
# the owner and any co-owners to be able to run the command
# so if we're in the function, it's safe to assume that the
# author is authorized to use owner-only commands
user = ctx.author
else:
user = ctx.guild.owner
success = await bank.wipe_bank()
if success:
await ctx.send(_("All bank accounts of this guild have been " await ctx.send(_("All bank accounts of this guild have been "
"deleted.")) "deleted."))