async def verify(ctx, name): code = Util().id_generator(5) if not Player(username=name): raise PlayerNotFoundError db = Database(host=VerifyConfig().get_host(), user=VerifyConfig().get_user(), database=VerifyConfig().get_db(), passwd=VerifyConfig().get_passwd()) temp_verification = db.create_temp_verfication( id=str(ctx.author.id), code=code, uuid=Player(username=name).uuid) if temp_verification == 0: await ctx.send( "Gib zum Verifizieren folgenden Command auf einem der Server ein:\n`/verify " + code + "`\nHinweis: Es kann bis zu " + str(math.floor(int(CommonConfig().get_update_interval()) / 60)) + " Minuten dauern, bis du deinen Rang erhälst!") elif temp_verification == 1: await ctx.send("Account bereits verifiziert!") elif temp_verification == 2: new_code = Util().id_generator(5) db.delete_code(str(ctx.author.id), Player(username=name).uuid) db.create_temp_verfication(str(ctx.author.id), Player(username=name).uuid, new_code) await ctx.send( "Command wurde bereits eingegeben, deshalb musste ein neuer Command generiert werden:\n`/verify " + new_code + "`")
def accVerification(): with open('C:\\Users\HomePC\Desktop\py\\Nueva carpeta\\accounts.txt', 'r') as myfile: data = myfile.readline() account = data.split(":") mail = str(account[0]) pwd = str(account[1]) print(mail) print(pwd) myUsername = "" player = Player(username=myUsername) auth = player.authenticate(mail, pwd) return auth
async def update_roles(): guild = bot.get_guild(int(CommonConfig().get_guild_id())) roles = RolesConfig().get_roles() mc_players = Database(host=VerifyConfig().get_host(), user=VerifyConfig().get_user(), database=VerifyConfig().get_db(), passwd=VerifyConfig().get_passwd()).get_data() for mc_player in mc_players: if guild.get_member(int(mc_player['discord'])) is not None: member = guild.get_member(int(mc_player['discord'])) if mc_player['mcrole'].lower() in roles: role = guild.get_role(int(roles[mc_player['mcrole'].lower()])) if role not in member.roles: print(member.name + "'s Rollen wurden geupdatet") await member.add_roles(role) await member.send("Deine Rollen wurden aktualisiert!") verified = guild.get_role(int(CommonConfig().get_verified_role())) if verified not in member.roles: print(member.name + " hat sich verifiziert") await member.add_roles(verified) await member.send("Du wurdest erfolgreich verifiziert!") await guild.get_channel( int(CommonConfig().get_general()) ).send(member.mention + " hat sich erfolgreich verifiziert!") await member.edit(nick=Player(uuid=mc_player['uuid']).username)
async def ontime(self, ctx, name): for x in OntimeConfig().get_tables(): await ctx.send(x + ": " + Util().formatDate( Database(host=OntimeConfig().get_host(), user=OntimeConfig().get_user(), database=OntimeConfig().get_db(), passwd=OntimeConfig().get_passwd()).get_ontime( Player(username=name).uuid, x)))
async def queryScammer(self, username): try: players = Player(username=username) uuid = players.uuid name = players.username except Exception: try: players = Player(uuid=username) uuid = username name = players.username except Exception: return 'INVPLY' async with aiofiles.open(os.path.join('database', 'scammer.json'), 'r') as f: content = json.loads(await f.read()) if uuid not in content: return 'NOTSCM' scammerinfo = content[uuid] await f.close() return [ scammerinfo['uuid'], scammerinfo['reason'], scammerinfo['operated_staff'], name ]
async def removeScammer(self, *, username): try: players = Player(username=username) uuid = players.uuid name = players.username except: return None content = self.scammer content.pop(uuid) jsonwrite = json.dumps(content, indent=4, sort_keys=True) async with aiofiles.open(os.path.join('database', 'scammer.json'), 'w') as f: await f.write(jsonwrite) await f.close() self.scammer = content return 'good'
async def addScammer(self, *, username, reason, responsible_staff): try: players = Player(username=username) uuid = players.uuid name = players.username except: return None content = self.scammer content[uuid] = { 'uuid': uuid, 'reason': reason, 'operated_staff': responsible_staff } jsonwrite = json.dumps(content, indent=4, sort_keys=True) async with aiofiles.open(os.path.join('database', 'scammer.json'), 'w') as f: await f.write(jsonwrite) await f.close() self.scammer = content
async def whitelist(self, interaction: discord.Interaction, username: str): author = interaction.user if await helpers.role_helper.has_role( interaction.guild, author.id, 'sub') or await helpers.role_helper.has_role( interaction.guild, author.id, 'mod'): print(f'{author}({author.id}) executed Whitelist command.') if await is_rcon_enabled(): if await helpers.role_helper.is_role_defined('sub'): player = None try: player = Player(username=username) except: await interaction.response.send_message( embed=await helpers.embed_helper.create_error_embed( f'`{username}` is not a valid Minecraft account.' )) else: await whitelist_add_user(author.id, username) await interaction.response.send_message( embed=await helpers.embed_helper.create_success_embed( f'Set whitelist for {author.mention}: `{player.username}`', self.client.guilds[0].get_member( self.client.user.id).color)) else: await interaction.response.send_message( embed=await helpers.embed_helper.create_error_embed( 'Sub role has not been set.')) else: await interaction.response.send_message( embed=await helpers.embed_helper.create_error_embed( 'RCON has not been set up yet, please ask an admin to set it up.' ))
async def uuid(self, ctx, name): await ctx.send("UUID von " + name + ": " + Player(username=name).uuid)
print('載入資料中') file = open('message.txt', 'r') whitelist_file = open('whitelist.json', 'w') invalid_list_file = open('invalidlist.txt', 'w') data = file.read() names = data.split(',') whitelist = list() previous_name = '' duplicate = 0 invalid = 0 valid = 0 for name in names: try: player = Player(username=name) if previous_name != name: whitelist.append({'uuid': player.uuid, 'name': name}) valid += 1 print(name) print(player.uuid) else: duplicate += 1 print('玩家 ID 重複') print('玩家 ID:' + name) previous_name = name except KeyError: invalid += 1 invalid_list_file.write(name + '\n') print('玩家不存在') print('玩家 ID:' + name)