Как остановить рассылку спама ботом в дискорде

@client.command(aliases=['Guess', 'guess'])
async def _Guess(ctx, *, Input):

Hold = 1
start_time = time.time()

input = int(Input)
a = input/2
a = math.floor(a)
b = input + input/2
b = math.floor(b)

gNum = 0


while (Hold == 1):
  guess = randint(a,b)
  await ctx.send(guess)
  await discord.TextChannel.last_message.delete()
  gNum + 1
  await ctx.send(gNum)
  await discord.TextChannel.last_message.delete()
  if (guess == input):
    await ctx.send ("The number you picked was...")
    await ctx.send (guess)
    Hold = Hold +1
    await ctx.send("It took %s seconds to find your number." % (time.time() - start_time))

Я хотел бы удалить только что отправленное сообщение, чтобы оно не спамило чат. Как бы я это сделал? Я знаю, что это неправильный способ сделать это (await discord.TextChannel.last_message.delete()), но вы просто хотели поместить его туда в качестве заполнителя.

Не могли бы вы исправить форматирование? Кажется, есть несколько проблем с отступами, а также странная строка gNum = 0 ''', которая разбивает два блока кода.

kenntnisse 21.03.2022 19:07

Так жаль, что я только что увидел это. Одну секунду

Ezekiel White 21.03.2022 19:09

Извините за это снова. Только что исправил.

Ezekiel White 21.03.2022 19:12

Быстрый поиск в Google показывает это — кажется, что второй пример поможет больше всего, но я не пробовал его, чтобы увидеть, работает ли он.

kenntnisse 21.03.2022 19:24

Я думаю, я понял, спасибо!

Ezekiel White 21.03.2022 19:28

Оформление ужасное

chess_lover_6 22.03.2022 17:56
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
6
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете сохранять сообщения, которые отправляет бот. если у вас есть объекты сообщения, вы можете легко удалить их (даже с задержкой, если хотите).

ваш код будет выглядеть так:

@client.command(aliases=['Guess', 'guess'])
async def _Guess(ctx, *, Input):

Hold = 1
start_time = time.time()

input = int(Input)
a = input/2
a = math.floor(a)
b = input + input/2
b = math.floor(b)

gNum = 0


while (Hold == 1):
  guess = randint(a,b)
  message = await ctx.send(guess)
  await message.delete()
  gNum + 1
  message = await ctx.send(gNum)
  await message.delete()
  if (guess == input):
    await ctx.send("The number you picked was...")
    await ctx.send(guess)
    Hold = Hold +1
    await ctx.send("It took %s seconds to find your number." % (time.time() - start_time))

вы можете установить задержку в атрибуте delete() с помощью delay=10 на 10 секунд. также есть документация.

Другие вопросы по теме