Parcourir la source

Bare bones menu class sorted. Needs some like functionality but other than that looking good

tags/v1.8.0
Roxie Gibson il y a 6 ans
Parent
révision
c00dbd45f8
1 fichiers modifiés avec 112 ajouts et 10 suppressions
  1. +112
    -10
      roxbot/settings/settings.py

+ 112
- 10
roxbot/settings/settings.py Voir le fichier

import discord import discord
from discord.ext import commands from discord.ext import commands


# TODO: yes the menu system fucking sucks and will be fixed in the next version I just cba right now.
# TODO: Module the menu system

# TODO: Display the settings your changing in the menu as yu change them. # TODO: Display the settings your changing in the menu as yu change them.


class Menu():
def __init__(self, name, *params, **options):
self.name = name
self.params = params
if options is None:
options = {"type": "values"}

self.title = "'Roxbot Settings: {}'\n".format(self.name)

self.content = self._format_content(self.title, self.params, "```python", "```")

@staticmethod
def _format_content(title, params, prefix="", suffix=""):
separator = "—————————————————————————————"
choices = "\n"
for x, setting in enumerate(params):
if setting != "convert":
if "Enable" in setting or "Disable" in setting:
choices += "[{}] {}\n".format(x + 1, setting)
else:
choices += "[{}] Edit '{}'\n".format(x+1, setting)
choices += "[0] Exit\n"
return prefix + title + separator + choices + suffix

@staticmethod
def _parse_params(settings, name):
params = [*settings.keys()]
params_copy = settings.copy().keys()
# Enable/Disable Parse
for param in params_copy:
if settings["convert"].get(param) == "bool":
if param == "enabled":
enable_options = ["Enable '{}'".format(name), "Disable '{}'".format(name)]
else:
enable_options = ["Enable '{}'".format(param), "Disable '{}'".format(param)]
params.remove(param)
params = [*enable_options, *params]

return params

@classmethod
def nsfw(cls, guild):
name = "NSFW"
params = guild_settings.get(guild).nsfw.keys()
return cls(name, *params)

@classmethod
def self_assign(cls, guild):
name = "Self Assign"
params = guild_settings.get(guild).self_assign.keys()
return cls(name, *params)

@classmethod
def twitch(cls, guild):
name = "Twitch"
params = guild_settings.get(guild).twitch.keys()
return cls(name, *params)

@classmethod
def perm_roles(cls, guild):
name = "Perm Roles"
params = guild_settings.get(guild).perm_roles.keys()
return cls(name, *params)

@classmethod
def logging(cls, guild):
name = "Logging"
params = guild_settings.get(guild).logging.keys()
return cls(name, *params)

@classmethod
def voice(cls, guild):
name = "Voice"
params = guild_settings.get(guild).voice.keys()
return cls(name, *params)

@classmethod
def greets(cls, guild):
name = "Greets"
params = guild_settings.get(guild).greets.keys()
return cls(name, *params)

@classmethod
def goodbyes(cls, guild):
params = guild_settings.get(guild).goodbyes.keys()
return cls("Goodbyes", *params)

@classmethod
def join_leave(cls):
name = "JoinLeave"
params = ["goodbyes", "greets"]
options = {"type": "menu"}
return cls(name, *params, **options)

@classmethod
def base(cls, params):
name = "Base Menu"
params = params
options = {"type": "menu"}
return cls(name, *params, **options)


class Settings: class Settings:
""" """
Settings is a mix of settings and admin stuff for the bot. OWNER OR ADMIN ONLY. Settings is a mix of settings and admin stuff for the bot. OWNER OR ADMIN ONLY.
greets = self.guild_settings.greets greets = self.guild_settings.greets
goodbyes = self.guild_settings.goodbyes goodbyes = self.guild_settings.goodbyes


if changes == "greets":
if selection == "enable":
if selection == "greets":
if changes == "enable":
greets["enabled"] = 1 greets["enabled"] = 1
await ctx.send("'greets' was enabled!") await ctx.send("'greets' was enabled!")
elif selection == "disable":
elif changes == "disable":
greets["enabled"] = 0 greets["enabled"] = 0
await ctx.send("'greets' was disabled :cry:") await ctx.send("'greets' was disabled :cry:")


elif changes == "goodbyes":
if selection == "enable":
elif selection == "goodbyes":
if changes == "enable":
goodbyes["enabled"] = 1 goodbyes["enabled"] = 1
await ctx.send("'goodbyes' was enabled!") await ctx.send("'goodbyes' was enabled!")
elif selection == "disable":
elif changes == "disable":
goodbyes["enabled"] = 0 goodbyes["enabled"] = 0
await ctx.send("'goodbyes' was disabled :cry:") await ctx.send("'goodbyes' was disabled :cry:")


Example: Example:
;settings nsfw addchannel #nsfw_stuff ;settings nsfw addchannel #nsfw_stuff
""" """
# TODO: Menu
menu = Menu.nsfw(ctx.guild)
print(menu.content)
selection = selection.lower() selection = selection.lower()
nsfw = self.guild_settings.nsfw nsfw = self.guild_settings.nsfw



if selection == "enable": if selection == "enable":
nsfw["enabled"] = 1 nsfw["enabled"] = 1
await ctx.send("'nsfw' was enabled!") await ctx.send("'nsfw' was enabled!")
Example: Example:
;settings voice enable skipvoting ;settings voice enable skipvoting
""" """
# TODO: Menu
setting = setting.lower() setting = setting.lower()
change = change.lower() change = change.lower()
voice = self.guild_settings.voice voice = self.guild_settings.voice

Chargement…
Annuler
Enregistrer