मेरे पास यह कोड है:

import discord
from discord.ext import commands, tasks
import random
from itertools import cycle
from discord.utils import get
import os

bot = commands.Bot(command_prefix='-')


TOKEN = ''


@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')



@bot.command()
@commands.has_role('Admin')
async def test(ctx):
    await ctx.send(":smiley: :wave: Hello, there! :heart: ")

bot.run(TOKEN)

मैं एक अस्वीकार संदेश कैसे सेट कर सकता हूं? मेरा मतलब है कि अगर कोई उस आदेश का उपयोग करता है लेकिन उसके पास व्यवस्थापक भूमिका नहीं है, तो बॉट कुछ ऐसा कहेगा "आप व्यवस्थापक मित्र नहीं हैं!"

मैंने यह कोशिश की है लेकिन काम नहीं किया

@bot.command()
@commands.has_role('Admin')
async def test(ctx):
    await ctx.send(":smiley: :wave: Hello, there! :heart: ")
    else:
        await ctx.send("You can't use this!")
0
Durlax GB 27 अक्टूबर 2019, 13:36

2 जवाब

सबसे बढ़िया उत्तर

जब कोई उपयोगकर्ता टेस्ट कमांड को कॉल करता है और उनके पास 'एडमिन' की भूमिका नहीं होती है, तो एक कमांड। मिसिंग रोल एरर फेंका जाता है। आप इसे त्रुटि प्रबंधन से पकड़ सकते हैं।

import discord
from discord.ext import commands, tasks
import random
from itertools import cycle
from discord.utils import get
import os

TOKEN = ''

bot = commands.Bot(command_prefix='-')

@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')

@bot.command()
@commands.has_role('Admin')
async def test(ctx):
    await ctx.send(":smiley: :wave: Hello, there! :heart: ")

@test.error
async def test_error(ctx, error):
    if isinstance(error, commands.MissingRole):
        await ctx.send('''You aren't admin buddy!''')

bot.run('TOKEN')
1
Kyle Sacco 30 अक्टूबर 2019, 01:30

यह आपको उपयोगकर्ता को एक संदेश देने देगा यदि उनकी कोई भूमिका नहीं है। आपके पास व्यवस्थापक के बजाय कई भूमिकाएँ भी हो सकती हैं।

@bot.command()
async def test(ctx):
    if "Admin" in ctx.author.roles:
        await ctx.send(":smiley: :wave: Hello, there! :heart: ")
    else:
        await ctx.send("You are not an admin!")
-1
FluxedScript 29 अक्टूबर 2019, 21:56