テキストの指示に従って、ボイスチャンネルへ移動するBOTを作りたい。(その他)
解決したいこと
暇つぶしに、PythonでDiscordのBOTを作成しています。
以下に現状作成しており詰まってしまっている部分、
今後やってみたいことを記載します。
何か、修正案、参考になるようなサイトあれば教えていただければ幸いです。
下記に記載しているコードは結構急ピッチで書いたので、
「なんかすごいところ間違ってんなぁ。。。」と思っても。。。
話を戻します。
下記に記載してある物で、太字がすぐにやりたいことです。
回答お待ちしております。
・テキストの指示に応じてボイスチャンネルに移動する
・記載されたテキストを読み上げる
・読み上げる声を自作する。
→今後やっていたいことです。
・自分で返答を考えて返答する。
→今後やってみたいことです。
import discord
# 自分のBotのアクセストークンに置き換えてください
TOKEN = ''
# 接続に必要なオブジェクトを生成
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
@client.event
async def on_message(message):
# 「BOT」で始まるか調べる
if message.content.startswith("BOT"):
# 送り主がBotだった場合反応しない
if client.user != message.author:
try:
user_name = message.author.name
text = message.content
print(text)
print(type(text))
msg = user_name + " "
# +=の場合は左辺と右辺に組み合わせる。
# = 左辺に右辺を入れる。
if text == ('BOT'):
msg = '御用ですか?'
elif text.find('ボイスチャンネル') > -1:
if message.content == "!join":
if message.author.voice is None:
await message.channel.send("あなたはボイスチャンネルに接続していません。")
return
await message.author.voice.channel.connect()
await message.channel.send("接続しました。")
# メッセージが送られてきたチャンネルへメッセージを送ります
await message.channel.send(msg)
return msg
except Exception as e:
print(e)
raise e
@client.event
async def Toking_BOT(message):
if message.content.startswith("ボイスチャンネル"):
if message.content == "!join":
if message.author.voice is None:
await message.channel.send("あなたはボイスチャンネルに接続していません。")
return
# ボイスチャンネルに接続する
await message.author.voice.channel.connect()
await message.channel.send("接続しました。")
if message.content == "!leave":
if message.guild.voice_client is None:
await message.channel.send("接続していません。")
return
await message.guild.voice_client.disconnect()
await message.channel.send("切断しました。")
client.run(TOKEN)
0