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.

77 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. "nsfw": {
  34. "enabled": 0
  35. }
  36. }
  37. }
  38. self.servers = self.load_config()
  39. # TODO: Move this to Checks
  40. self.no_perms_reponse = ":no_entry_sign: You do not have permission to use this command."
  41. self.delete_after = 20
  42. def load_config(self):
  43. with open('config/servers.json', 'r') as config_file:
  44. return json.load(config_file)
  45. def update_config(self, config):
  46. with open('config/servers.json', 'w') as conf_file:
  47. json.dump(config, conf_file)
  48. def error_check(self, servers):
  49. for server in servers:
  50. if server.id not in self.servers:
  51. self.servers[server.id] = self.servers_template["example"]
  52. self.update_config(self.servers)
  53. print(
  54. "WARNING: The config file for {} was not found. A template has been loaded and saved. All cogs are turned off by default.".format(
  55. server.name.upper()))
  56. else:
  57. for cog_setting in self.servers_template["example"]:
  58. for setting in self.servers_template["example"][cog_setting]:
  59. if setting not in self.servers[server.id][cog_setting]:
  60. self.servers[server.id][cog_setting][setting] = self.servers_template["example"][
  61. cog_setting][setting]
  62. self.update_config(self.servers)
  63. print(
  64. "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(
  65. server.name.upper(), setting.upper(), cog_setting.upper()))
  66. if cog_setting not in self.servers[server.id]:
  67. self.servers[server.id][cog_setting] = self.servers_template["example"][
  68. cog_setting]
  69. self.update_config(self.servers)
  70. print(
  71. "WARNING: The config file for {} was missing the {} cog. This has been fixed with the template version. It is disabled by default.".format(
  72. server.name.upper(), cog_setting.upper()))
  73. print("")