簡體   English   中英

Discord.py --> channel.mention

[英]Discord.py --> channel.mention

我正在嘗試為 Discord 服務器制作一個機器人,它只是偵聽特定消息,刪除它們,然后將用戶引向不同的文本頻道(在可點擊的鏈接中提及它)

這是我現在所擁有的:

import Discord
import asyncio


client = discord.Client()


@client.event
async def on_message(message):
    msg = '{0.author.mention}\nWrong text channel\nUse '.format(message)
    if message.content.startswith('!p'):
        await client.delete_message(message)
        await client.send_message(message.channel, msg)
    return


client.run('')

理想情況下,我還想用startswith()而不是('!p') & 來搜索一個列表,以忽略來自特定文本頻道的所有消息,但我也不知道該怎么做

不知道您的問題是否已解決,但對於所有未來的開發人員來說,正在查看此線程。 讓機器人提及頻道的超級簡單方法是這樣的......

<#channelID>

如果頻道 ID 是您要提及的特定頻道的不和諧 ID。

在一個例子中

await message.channel.send("Please go to <#channelID>")

老實說,我有點困惑,這個線程上沒有人已經提到過這一點,所以我覺得我錯過了你們都已經知道的東西,哈哈。

當然,只需添加text_channel = client.get_channel('1234567890')並使用text_channel.mention引用其提及(其中1234567890是您要鏈接到的頻道的 ID)

所以代碼最終會看起來像這樣

@client.event
async def on_message(message):
  text_channel = client.get_channel('1234567890')
  msg = '{0.author.mention}\nWrong text channel\nUse {1.mention}'.format(message,text_channel)
  if message.content.startswith('!p'):
      await client.delete_message(message)
      await client.send_message(message.channel, msg)
  return

關於你的第二個問題,你可以做這樣的事情

  arr = ['!p','!a','!b']
  for a in arr:
    if message.content.startswith(a):
      break
  else:
    return

並刪除if message.content.startswith('!p'):完全

要忽略特定頻道,請執行if message.channel.id == "9876543210":在函數的頂部( 9876543210是您要忽略命令的頻道的 ID)
通過這些更改,代碼看起來像這樣

@client.event
async def on_message(message):
  if message.channel.id == "9876543210":
    return
  arr = ['!p','!a','!b']
  for a in arr:
    if message.content.startswith(a):
      break
  else:
    return
  text_channel = client.get_channel('1234567890')
  msg = '{0.author.mention}\nWrong text channel\nUse {1.mention}'.format(message,text_channel)
  await client.delete_message(message)
  await client.send_message(message.channel, msg)
  return

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM