如何在 Discord.py 中创建“设置静音角色”命令?

时间:2021-05-09 00:54:11

标签: discord discord.py

我知道这个问题听起来有点含糊,但请听我说!

我已经知道如何创建静音命令,但是当我计划向公众发布我的 Discord 机器人时,我被困在一个问题上:如何创建一个设置静音角色的命令? 基本上,每个静音角色都有不同的 ID。基本上我想要它,这样如果这个人说“?setmuterole {role id}”,它就会为服务器设置静音角色。

问题是,我不知道该怎么做。 有人能帮我吗?我尝试了很多次,但最终都失败了。

1 个答案:

答案 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