iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

Python Discord Bot(DC機器人)系列 第 22

Python Discord Bot#22 - 做中學-建立頻道

  • 分享至 

  • xImage
  •  

這個是我一個朋友許願的功能,
他想要有個能顯示人數的頻道,
所以我就來試做看看。

而在我的觀察下,看到很多人是使用「語音頻道」並把標題改成要顯示的文字並設定鎖定權限。
所以....以下。

建立頻道

https://ithelp.ithome.com.tw/upload/images/20230921/201060712Q0mSw0SP1.png

使用

await guild.create_voice_channel
code:

def main(Bot):
    
    @Bot.slash_command(name="channel", description="建立YT人數頻道")
    async def create_channel(ctx):
        try:
            guild = Bot.get_guild(ctx.guild.id) 
          
            channel = await guild.create_voice_channel(f"Member Count: {guild.member_count}")
            await ctx.respond("Setup finished!", ephemeral=True)
        except Exception as errors:
            print(f"Bot Error: {errors}")

建立頻道(私密頻道)

確定能建立頻道後,為了單純顯示文字,而非使用頻道功能,需要鎖定。
在上面 create_voice_channel 加入參數,也就是他的設定內容,針對"所有人" 都無法連接。

ctx.guild.default_role: discord.PermissionOverwrite(connect=False)

並將上面的宣告成 overwrites 並塞入 create_voice_channel中。

await guild.create_voice_channel(f"Member Count: {guild.member_count}", overwrites={ctx.guild.default_role: discord.PermissionOverwrite(connect=False)})

執行結果:

你看到的
https://ithelp.ithome.com.tw/upload/images/20230921/20106071VpXNFnAh5P.png

別人看到的
https://ithelp.ithome.com.tw/upload/images/20230921/20106071A0jEjGAFBp.png

在伺服器中,也可以直接設定頻道:
https://ithelp.ithome.com.tw/upload/images/20230922/20106071jodDCZKSp4.png
https://ithelp.ithome.com.tw/upload/images/20230922/20106071ufumbRKMLv.png


上一篇
Python Discord Bot#21 - 做中學-指令限定
下一篇
Python Discord Bot#23 - 做中學-人數顯示(一)
系列文
Python Discord Bot(DC機器人)31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言