[英]Trying to program a python discord bot that bans all users. The bot only bans people without a role?
[英]Discord Bot in Python - Im trying to pick a random person from all the people with a specific role
因此,我正在嘗試使用Python創建Discord Bot。 我只是想制作一個可以打“打”角色的隨機機器人。 我已經做好了所有准備工作,但我不知道該如何招募一個隨機成員。 並盡可能將其限制為當前在線的用戶。 我相當擅長python,但對於不和諧的機器人還是陌生的。 如果您能幫忙,id會感激不盡。 我的密碼
import time
import discord
import random
from discord.ext import commands
bot = commands.Bot(command_prefix=',', description='Enjoy Being Slapped
Randomly')
intervalM = random.randint(5,15)
#intervalS = integerM * 60
@bot.event
async def on_ready():
print('Logged in as')
print(bot.user.name)
@bot.command()
async def slapInt(integer):
await bot.say("Time Between Slaps is now... " + str(integer) + "min")
intervalM = integer
@bot.command()
"""manually slap someone"""
async def slapMan(intervalM, user):
#debug - await bot.say("oof " + str(intervalM))
intervalS = float(intervalM) * 60
await bot.say("Slapping someone in " + str(intervalS) + " seconds")
for i in range(0,int(intervalS)+1):
if i == int(intervalS):
await bot.say(" just got slapped!")
intervalM = random.randint(5,15)
slap(intervalM)
else:
#await bot.say(i)
time.sleep(1)
def slap(intervalM):
intervalS = float(intervalM) * 60
print("Slapping someone in " + str(intervalS) + " seconds")
for i in range(0,int(intervalS)+1):
if i == int(intervalS):
print(" just got slapped!")
intervalM = random.randint(5,15)
slap(intervalM)
else:
#await bot.say(i)
time.sleep(1)
bot.run('~~~~~~~~~')
slap(intervalM)
您可以嘗試以下方法:
server = discord.Server(id='your_server_id')
def slap(intervalM):
intervalS = float(intervalM) * 60
print("Slapping someone in " + str(intervalS) + " seconds")
for i in range(0,int(intervalS)+1):
if i == int(intervalS):
roleMembers = []
for member in server.members:
for role in member.roles:
if role.name == 'your_role_name' and member.status == 'online':
roleMembers.append(member)
memberCount = len(roleMembers)
randomNumber = random.randint(0, (memberCount -1)
await bot.say(roleMembers[randomNumber].name + ' just got slapped!')
intervalM = random.randint(5,15)
slap(intervalM)
else:
#await bot.say(i)
time.sleep(1)
(代碼未經測試)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.