I am looking for a way to direct message everyone in a discord server using discord.py with a certain role with a custom message of my choice (Preselected) I have tried numerous different methods, none of which have worked. Please help me!
Asked
Active
Viewed 5,588 times
0
-
2What exactly have you tried? \ – Mick_ Apr 03 '18 at 22:28
-
Possible duplicate of [How to DM everyone with a bot - discord.py](https://stackoverflow.com/questions/45785727/how-to-dm-everyone-with-a-bot-discord-py) – Mick_ Apr 03 '18 at 22:34
1 Answers
3
Iterate over all the Member
s on the Server
, and check if they have the specified role.
from discord.ext import commands
import discord
bot = commands.Bot(command_prefix='!')
@bot.command(pass_context=True)
async def message_role(ctx, role: discord.Role, *, message):
for member in ctx.message.server.members:
if role in member.roles:
await bot.send_message(member, message)
bot.run('TOKEN')
This would be invoked like
!message_role messageable Hi everybody!
That would send Hi everybody!
to everyone with the messageable
role.

Patrick Haugh
- 59,226
- 13
- 88
- 96
-
i recieve this error discord.ext.commands.errors.CommandInvokeError: Command raised an exception: Att ributeError: 'Context' object has no attribute 'server' – Logicsx Apr 05 '18 at 20:12
-