move interaction

This commit is contained in:
Skillet 2023-04-26 15:11:54 -04:00
parent 40dd8e0c45
commit c9c4aca402
3 changed files with 21 additions and 13 deletions

View File

@ -1,12 +1,14 @@
import discord import discord
import random import random
import logging import logging
import mysql.connector
from autowl import config from autowl import config
from autowl.bot import Bot from autowl.bot import Bot
from discord.ext import commands from discord.ext import commands
from discord import app_commands from discord import app_commands
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -15,6 +17,7 @@ class Group(commands.Cog, name="group"):
self.client = client self.client = client
async def baseperm(self, interaction: discord.Interaction, role: discord.Role, perms: str): async def baseperm(self, interaction: discord.Interaction, role: discord.Role, perms: str):
await interaction.response.send_message("Whitelist group successfully added/updated") await interaction.response.send_message("Whitelist group successfully added/updated")
if role.id in self.client.whitelistGrps.keys(): if role.id in self.client.whitelistGrps.keys():
self.client.whitelistGrps[role.id].squadPerms = perms self.client.whitelistGrps[role.id].squadPerms = perms
@ -25,11 +28,13 @@ class Group(commands.Cog, name="group"):
name=role.name, roleID=role.id, permissions=perms name=role.name, roleID=role.id, permissions=perms
) )
squadjs = mysql.connector.connect(user='squadjs', password=self.client.mysqlpass,
host='asgard.orion-technologies.io', database='squadjs', use_pure=False)
membsup = [] membsup = []
for memb in role.members: for memb in role.members:
membsup.append(memb.id) membsup.append(memb.id)
if len(membsup) > 0: if len(membsup) > 0:
memupcur = self.client.squadjs.cursor(buffered=True) memupcur = squadjs.cursor(buffered=True)
in_params = ','.join(['%s'] * len(membsup)) in_params = ','.join(['%s'] * len(membsup))
sqlstate = "SELECT * FROM DBLog_SteamUsers WHERE discordID IN (%s)" % in_params sqlstate = "SELECT * FROM DBLog_SteamUsers WHERE discordID IN (%s)" % in_params
log.info(sqlstate) log.info(sqlstate)
@ -39,13 +44,14 @@ class Group(commands.Cog, name="group"):
for data in udata: for data in udata:
self.client.whitelistGrps[role.id].addMember(config.WhitelistMember(data[2], data[1], data[0])) self.client.whitelistGrps[role.id].addMember(config.WhitelistMember(data[2], data[1], data[0]))
self.client.squadjs.commit() squadjs.commit()
squadjs.close()
@app_commands.command() @app_commands.command()
async def add( async def add(
self, self,
interaction: discord.Interaction, interaction: discord.Interaction,
role: discord.Role, role: discord.Role,
): ):
await self.baseperm(interaction, role, "reserve") await self.baseperm(interaction, role, "reserve")
@ -60,9 +66,9 @@ class Group(commands.Cog, name="group"):
@app_commands.command() @app_commands.command()
async def remove( async def remove(
self, self,
interaction: discord.Interaction, interaction: discord.Interaction,
role: discord.Role, role: discord.Role,
): ):
if not self.client.whitelistGrps.get(role.id): if not self.client.whitelistGrps.get(role.id):
await interaction.response.send_message( await interaction.response.send_message(

View File

@ -18,12 +18,13 @@ class Whitelist(commands.Cog):
@app_commands.command() @app_commands.command()
async def link(self, interaction: discord.Interaction, steam64: str): async def link(self, interaction: discord.Interaction, steam64: str):
squadjs = mysql.connector.connect(user='squadjs', password=self.client.mysqlpass, host='asgard.orion-technologies.io', database='squadjs', use_pure=False)
if not interaction.guild: if not interaction.guild:
await interaction.response.send_message( await interaction.response.send_message(
"This command must be ran within a discord server!" "This command must be ran within a discord server!"
) )
return return
updatecur = self.client.squadjs.cursor(buffered=True) updatecur = squadjs.cursor(buffered=True)
try: try:
updatecur.execute(self.client.squadjs_updateDiscordID, (interaction.user.id, steam64)) updatecur.execute(self.client.squadjs_updateDiscordID, (interaction.user.id, steam64))
rowsaffected = updatecur.rowcount rowsaffected = updatecur.rowcount
@ -37,7 +38,7 @@ class Whitelist(commands.Cog):
self.client.whitelistGrps[urole.id].members[f"{interaction.user.id}"].steam64 = steam64 self.client.whitelistGrps[urole.id].members[f"{interaction.user.id}"].steam64 = steam64
self.client.whitelistGrps[urole.id].updateGroup() self.client.whitelistGrps[urole.id].updateGroup()
await interaction.response.send_message("SteamID already linked, roles updated.") await interaction.response.send_message("SteamID already linked, roles updated.")
self.client.squadjs.commit() squadjs.commit()
return return
except mysql.connector.Error as err: except mysql.connector.Error as err:
log.error("MYSQL error!") log.error("MYSQL error!")
@ -47,5 +48,6 @@ class Whitelist(commands.Cog):
if urole.id in self.client.whitelistGrps.keys(): if urole.id in self.client.whitelistGrps.keys():
disusername = interaction.user.nick if interaction.user.nick is not None else interaction.user.name disusername = interaction.user.nick if interaction.user.nick is not None else interaction.user.name
self.client.whitelistGrps[urole.id].addMember(config.WhitelistMember(interaction.user.id, disusername, steam64)) self.client.whitelistGrps[urole.id].addMember(config.WhitelistMember(interaction.user.id, disusername, steam64))
self.client.squadjs.commit() squadjs.commit()
squadjs.close()
await interaction.response.send_message(f"discord is linked to steamID, roles updated.") await interaction.response.send_message(f"discord is linked to steamID, roles updated.")

View File

@ -39,7 +39,7 @@ class Bot(commands.Bot):
intents=intents, intents=intents,
help_command=commands.DefaultHelpCommand(dm_help=True), help_command=commands.DefaultHelpCommand(dm_help=True),
) )
self.squadjs = mysql.connector.connect(user='squadjs', password=mysqlpass, host='asgard.orion-technologies.io', database='squadjs', use_pure=False) self.mysqlpass = mysqlpass
async def on_command(self, ctx: commands.Context): async def on_command(self, ctx: commands.Context):
log.info(f"{ctx.author} ({ctx.author.id}) invoked command: {ctx.command.name}, {ctx.message}") log.info(f"{ctx.author} ({ctx.author.id}) invoked command: {ctx.command.name}, {ctx.message}")