2017-11-12 4 views
0

私はPythonでDiscord Botを作ろうとしています。私はちょうど "たたかれた"役割を持つランダムな人を叩くボットを作ろうとしています。私はすべてを稼働させましたが、役割を持つランダムメンバーを呼び出す方法を理解できません。 また可能であれば、現在オンラインになっているユーザーにも制限してください。 私はまともにPythonを使っていますが、ボットを狂わせるのは新しいです。あなたが助けることができたら、私は感謝します。 PythonのDiscord Bot - 特定の役割を持つすべての人々からランダムな人物を選んでいます。

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) 
+3

あなたがプログラミングを開始し、あなたがトラブルに遭遇したとき、いくつかのサンプルを追加することができます(コードがテストされていませんか)? –

+0

あなたは何を意味しているのか分かりませんが、変化する人数から選択したいので、一人の人が去ったり仲間になれば、私はそれを混乱させたくありません。 –

+0

あなたのトークンを交換してください!あなたは、あなたのボットに完全にアクセスできるように気を配っている人を与えました。それを修正することは、SOが編集履歴を追跡するのに十分ではないので、あなたもそれを変更する必要があります。 – squaswin

答えて

0

あなたはこれを試みることができる私のコード:

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) 

関連する問題