@MadelineTheSlayer

Как создать бота для Discord, который имеет шанс временно выдать роль?

Здравствуйте всем, мне нужна помощь в создании бота для дискорда с одной единственной функцией.

Он должен с определенным шансом (1-2%) после любого сообщения пользователя (в определенном канале) выдавать на 2 минуты определенную роль и после этого отвечать пользователю что он был отправлен в подвал.

Я полный 0 в этом деле, но ситуация горит :(
  • Вопрос задан
  • 639 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Chaka_1
Python'щик
Ну лааадно... Вот мое решение, самое простое... Вероятность сам подкрутишь.
import asyncio
import random
import discord
from discord.ext import commands

intents = discord.Intents.all()

client = commands.Bot(command_prefix='!', intents=intents)

w1 = [0,1,0,0,0,1] #(можешь еще добавить, сколько душе угодно(0, 2, 3, 4... - Не даст роль, 1 - даст роль))
@client.event
async def on_message(message):
    if message.channel != ЗДЕСЬ ID ТВОЕГО "ОПРЕДЕЛЕННОГО" КАНАЛА:
        return
    if message.author == py.user: # (проверка на сообщение от бота(игнорируем))
        return
    w2 = random.choice(w1)
    if w2 == 1:
        guild = message.guild
        channel = message.channel
        user = message.author # (чисто для удобства упрощаем вид)
        await guild.get_member(user.id).add_roles(guild.get_role(А ЗДЕСЬ ID РОЛИ))
        await channel.send('ТЫ ПОПАЛ В ПОДВАЛ, ХА-ХА-ХА')
        await asyncio.sleep(120)

Вроде ошибок не вижу, если будут - отпишешь здесь...
И.. Так сказать, на будущее. Твой вопрос решается 2-3 запросами в гугл.... Если горит - делай.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы