mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
Ya'll are gonna hate me. * Initial modifications * Add initial setup.py * working setup py help * Modify setup file to package stuff * Move a bunch of shit and fix imports * Fix or skip tests * Must add init files for find_packages to work * Move main to scripts folder and rename * Add shebangs * Copy over translation files * WORKING PIP INSTALL * add dependency information * Hardcoded version for now, will need to figure out a better way to do this * OKAY ITS FINALLY FUCKING WORKING * Add this guy * Fix stuff * Change readme to rst * Remove double sentry opt in * Oopsie * Fix this thing * Aaaand fix test * Aaaand fix test * Fix core cog importing and default cog install path * Adjust readme * change instance name from optional to required * Ayyy let's do more dependency injection
64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
from typing import Tuple
|
|
from discord.ext import commands
|
|
|
|
import discord
|
|
|
|
|
|
class AliasEntry:
|
|
def __init__(self, name: str, command: Tuple[str],
|
|
creator: discord.Member, global_: bool=False):
|
|
super().__init__()
|
|
self.has_real_data = False
|
|
self.name = name
|
|
self.command = command
|
|
self.creator = creator
|
|
|
|
self.global_ = global_
|
|
|
|
self.guild = None
|
|
if hasattr(creator, "guild"):
|
|
self.guild = creator.guild
|
|
|
|
self.uses = 0
|
|
|
|
def inc(self):
|
|
"""
|
|
Increases the `uses` stat by 1.
|
|
:return: new use count
|
|
"""
|
|
self.uses += 1
|
|
return self.uses
|
|
|
|
def to_json(self) -> dict:
|
|
try:
|
|
creator = str(self.creator.id)
|
|
guild = str(self.guild.id)
|
|
except AttributeError:
|
|
creator = self.creator
|
|
guild = self.guild
|
|
|
|
return {
|
|
"name": self.name,
|
|
"command": self.command,
|
|
"creator": creator,
|
|
"guild": guild,
|
|
"global": self.global_,
|
|
"uses": self.uses
|
|
}
|
|
|
|
@classmethod
|
|
def from_json(cls, data: dict, bot: commands.Bot=None):
|
|
ret = cls(data["name"], data["command"],
|
|
data["creator"], global_=data["global"])
|
|
|
|
if bot:
|
|
ret.has_real_data = True
|
|
ret.creator = bot.get_user(int(data["creator"]))
|
|
guild = bot.get_guild(int(data["guild"]))
|
|
ret.guild = guild
|
|
else:
|
|
ret.guild = data["guild"]
|
|
|
|
ret.uses = data.get("uses", 0)
|
|
return ret
|