You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.4KB

  1. import json
  2. class ServerConfig():
  3. def __init__(self):
  4. self.servers_template = {
  5. "example": {
  6. "greets": {
  7. "enabled": 0,
  8. "welcome-channel": "",
  9. "member-role": "",
  10. "custom-message": "",
  11. "default-message": "Be sure to read the rules."
  12. },
  13. "goodbyes": {
  14. "enabled": 0,
  15. "goodbye-channel": "",
  16. },
  17. "selfAssign": {
  18. "enabled": 0,
  19. "roles": []
  20. },
  21. "twitch": {
  22. "enabled": 0,
  23. "twitch-channel": "",
  24. "whitelist": {
  25. "enabled": 0,
  26. "list": []
  27. },
  28. },
  29. "mute": {
  30. "role": "",
  31. "admin-role": []
  32. }
  33. }
  34. }
  35. self.servers = self.load_config()
  36. # TODO: Move this to Checks
  37. self.no_perms_reponse = ":no_entry_sign: You do not have permission to use this command."
  38. self.delete_after = 20
  39. def load_config(self):
  40. with open('config/servers.json', 'r') as config_file:
  41. return json.load(config_file)
  42. def update_config(self, config):
  43. with open('config/servers.json', 'w') as conf_file:
  44. json.dump(config, conf_file)
  45. def error_check(self, servers):
  46. for server in servers:
  47. if server.id not in self.servers:
  48. self.servers[server.id] = self.servers_template["example"]
  49. self.update_config(self.servers)
  50. print(
  51. "WARNING: The config file for {} was not found. A template has been loaded and saved. All cogs are turned off by default.".format(
  52. server.name.upper()))
  53. else:
  54. for cog_setting in self.servers_template["example"]:
  55. for setting in self.servers_template["example"][cog_setting]:
  56. if setting not in self.servers[server.id][cog_setting]:
  57. self.servers[server.id][cog_setting][setting] = self.servers_template["example"][
  58. cog_setting][setting]
  59. self.update_config(self.servers)
  60. print(
  61. "WARNING: The config file for {} was missing the {} setting in the {} cog. This has been fixed with the template version. It is disabled by default.".format(
  62. server.name.upper(), setting.upper(), cog_setting.upper()))
  63. if cog_setting not in self.servers[server.id]:
  64. self.servers[server.id][cog_setting] = self.servers_template["example"][
  65. cog_setting]
  66. self.update_config(self.servers)
  67. print(
  68. "WARNING: The config file for {} was missing the {} cog. This has been fixed with the template version. It is disabled by default.".format(
  69. server.name.upper(), cog_setting.upper()))
  70. print("")