我试图在discord中扮演一个全新的角色(使用discord.py),但我尝试的一切都不起作用。我已经试过了
await guild.create_role(name("R3KT")) #NameError: name 'guild' not defined
和
author = ctx.message.author
await client.create_role(author.server, name="role name") #NameError: name 'ctx' not defined
我试着把ctx和公会改成“客户”,但还是不起作用。如果需要,我会发送整个代码(没有不一致的名称和bot密钥)
以下是整个代码:
import discord
token = "bot-key"
client = discord.Client()
@client.event
async def on_ready():
print("Bot is online and connected to Discord")
@client.event
async def on_message(message):
message.content = message.content.upper()
if message.author == client.user:
return
if message.content.startswith("AS HELLO"):
await message.channel.send("works")
elif message.content.startswith("AS CREATEROLE"):
if str(message.author) == "myDiscName#6969":
author = message.author
await discord.create_role(author.server, name="R3KT")
elif message.content.startswith("AS GIVEROLE"):
if str(message.author) == "myDiscName#6969":
print("give role")
client.run(token)
您不想按名称和编号进行检查(因为如果您有nitro,您可以更改它),您应该按ID进行检查,该ID对每个用户都是唯一的,并且是不可变的。
还要注意的是,server
在discord中被称为
。guild
。py
elif message.content.startswith("AS CREATEROLE"):
if message.author.id == YOUR_ID_GOES_HERE: # find your id by right clicking on yourself and selecting "copy id" at the bottom of the menu of options
author = message.author
# create a role named "R3KT" that has the permissions "Administrator" that has the color "white" that is not displayed separately and is not mentionable by everyone
await message.guild.create_role(name="R3KT", permissions=discord.Permissions(8), colour=discord.Colour.from_rgb(255, 255, 255), hoist=False, mentionable=False)
权限整数计算器
不和谐。公会创建角色
给自己一个角色:
elif message.content.startswith("AS GIVEROLE"):
if message.author.id == YOUR_ID_GOES_HERE:
user = message.author
await user.add_roles(message.guild.get_role(ROLE_ID_GOES_HERE), reason='Someone did a giverole bot command') # left click on the role and click "copy id"
〈代码〉不和。Member.add_roles
不和谐。公会获取角色
在您提供的第二个示例中,看起来您在旧d.py(0.16. x
)docs和d.py重写(1. x
)之间使用了mish-mash。
确保安装了最新版本(重写),因为异步不再被维护。
下面是命令装饰器的一个例子(用法:!新角色成员
@client.command()
async def newrole(ctx, *, rolename=None):
if not rolename:
await ctx.send("You forgot to provide a name!")
else:
role = await ctx.guild.create_role(name=rolename, mentionable=True)
await ctx.author.add_roles(role)
await ctx.send(f"Successfully created and assigned {role.mention}!")
kwarg不是强制性的——如果没有指定,它默认为
False
——我只是把它设置为True
。还可以为角色编写自己的权限。
另一个例子是在消息上使用
,
,建议改用命令装饰器,因为arg更容易处理
async def on_message(message):
args = message.content.split(" ")[2:] # 2: because prefix contains space
if message.content.lower().startswith("as createrole"):
role = await message.guild.create_role(name=" ".join(args))
await message.author.add_roles(role)
await message.channel.send(f"Successfully created and assigned {role.mention}!")
参考文献:
discord.py重写文档
Guild.create_role 不和谐。权限
Member.add_roles discord.on_message
我目前正在使用Discord JDA by dv8tion在Java中编写Discord机器人。在那里,我有一个在公会中创建角色的巨大问题。当我尝试创建一个角色时,它被卡住了,没有创建角色,但是没有错误。我尝试过使用两种不同的方法来创建角色。第一个: 第二个是: 通过在每一行代码之后在控制台中打印一些东西,我注意到它会卡在其中有g.create角色()的行之后。我不知道那里发生了什么,或者这是JD
您可在添加员工是分配角色,具体请详见【如何导入员工】 除此之外,您可在【角色】页面通过“管理成员”进行角色分配。(主管,初始管理员除外) 分配角色 点击角色右侧“管理成员”按钮(主管、初始超管除外) 您可在此添加或移除角色成员。 设置主管 您可在部门或项目模块进行主管设置,具体请详见【通过部门、项目管理员工】 设置初始管理员 初始管理员为默认角色,为企业唯一,若需修改,请详见【如何移交初始管理员】
我正在编写一个Discord机器人,当新用户加入我的Discord公会时,它会为他们分配一个角色。假设这个角色被称为“朋友”。 机器人是用Python编写的,使用Discord.py库。 我正在覆盖on_member_join()函数。 @bot.eventasync defon_member_join(成员): 将成员分配给好友角色 我看到成员类中有一个add_roles()函数,但在这种情况下
好的,多亏了~slothiful~,我终于让表情符号起作用了。 我没有试图让bot根据对作为服务器规则发布的消息的反应来分配角色。 谢谢你的回答
本文向大家介绍postgresql 创建角色和匹配的数据库,包括了postgresql 创建角色和匹配的数据库的使用技巧和注意事项,需要的朋友参考一下 示例 为了支持给定的应用程序,您通常会创建一个新角色并与之匹配。 要运行的shell命令如下: 假定pg_hba.conf已经正确配置,可能看起来像这样:
创建角色 进入角色管理界面,点击添加角色,打开添加角色面板,输入角色名称,选择对应的权限,点击确定,完成角色创建。