我知道这个问题听起来有点含糊,但请听我说!
我已经知道如何创建静音命令,但是当我计划向公众发布我的 Discord 机器人时,我被困在一个问题上:如何创建一个设置静音角色的命令? 基本上,每个静音角色都有不同的 ID。基本上我想要它,这样如果这个人说“?setmuterole {role id}”,它就会为服务器设置静音角色。
问题是,我不知道该怎么做。 有人能帮我吗?我尝试了很多次,但最终都失败了。
答案 0 :(得分:1)
您必须将数据存储在一个文件中,例如一个 json 文件:
export const Boxes = ({}) => {
const [users, setUsers] = useState([]);
const [selectedId, setSelectedId] = useState('');
const changeSelectedId = (e, id) => {
if (e.target.checked) {
setSelectedId(id)
}
}
useEffect(() => {
axios.get('https:jsonplaceholder.typicode.com/users')
.then(response => {
console.log(response.data);
setUsers(response.data);
})
.catch(error => {
console.log('Error .....')
})
}, []);
return (
<>
{users.map((item, index) => (
<div className='boxes' key={index}>
<h4>Name:- {item.name}</h4>
<input
type='radio'
names='Userradio'
checked={item.id === selectedId}
onChange={(e) => changeSelectedId(e, item.id)}
/>
</div>
)}
</>
);
};
并在您的静音命令中通过以下方式获取角色 ID:
@client.command #could be bot.command for you or something else
async def set_mute_role(ctx, role_id:int):
json_file = open("your_json_file.json", "r") #open the json file you have to create before running this
role_ids = json.load(json_file) #load the json to a dict
role_ids[ctx.guild.id] = role_id #add the role id to the dict
json_file.close()
json_file = open("your_json_file.json", "w")
json.dump(role_ids, json_file) #save the dict as json file
json_file.close() #close the json file again