feature (topgg): Add guild whitelist.

This commit is contained in:
2022-03-19 17:08:31 +02:00
parent 9ea40e5433
commit fa09266d3a
3 changed files with 28 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
from data.interfaces import RowTable from data.interfaces import RowTable, Table
topggvotes = RowTable( topggvotes = RowTable(
'topgg', 'topgg',
@@ -6,3 +6,4 @@ topggvotes = RowTable(
'voteid' 'voteid'
) )
guild_whitelist = Table('topgg_guild_whitelist')

View File

@@ -45,6 +45,8 @@ async def topgg_reply_wrapper(func, ctx: LionContext, *args, suggest_vote=True,
pass pass
elif ctx.cmd.name in boostfree_commands or ctx.cmd.group in boostfree_groups: elif ctx.cmd.name in boostfree_commands or ctx.cmd.group in boostfree_groups:
pass pass
elif ctx.guild and ctx.guild.id in ctx.client.settings.topgg_guild_whitelist.value:
pass
elif not get_last_voted_timestamp(ctx.author.id): elif not get_last_voted_timestamp(ctx.author.id):
upvote_info_formatted = upvote_info.format(lion_yayemote, ctx.best_prefix, lion_loveemote) upvote_info_formatted = upvote_info.format(lion_yayemote, ctx.best_prefix, lion_loveemote)

View File

@@ -1,10 +1,14 @@
from settings.user_settings import UserSettings, UserSetting from cmdClient.checks import is_owner
from settings.setting_types import Boolean
from settings import UserSettings, UserSetting, AppSettings
from settings.base import ListData, Setting
from settings.setting_types import Boolean, GuildIDList
from modules.reminders.reminder import Reminder from modules.reminders.reminder import Reminder
from modules.reminders.data import reminders from modules.reminders.data import reminders
from .utils import create_remainder, remainder_content, topgg_upvote_link from .utils import create_remainder, remainder_content, topgg_upvote_link
from .data import guild_whitelist
@UserSettings.attach_setting @UserSettings.attach_setting
@@ -48,3 +52,21 @@ class topgg_vote_remainder(Boolean, UserSetting):
return ( return (
"I will no longer send you voting reminders." "I will no longer send you voting reminders."
) )
@AppSettings.attach_setting
class topgg_guild_whitelist(GuildIDList, ListData, Setting):
attr_name = 'topgg_guild_whitelist'
write_ward = is_owner
category = 'Topgg Voting'
display_name = 'topgg_hidden_in'
desc = "Guilds where the topgg vote prompt is not displayed."
long_desc = (
"A list of guilds where the topgg vote prompt will be hidden."
)
_table_interface = guild_whitelist
_id_column = 'appid'
_data_column = 'guildid'
_force_unique = True