seyfert
Version:
The most advanced framework for discord bots
120 lines (119 loc) • 3.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Locales = Locales;
exports.LocalesT = LocalesT;
exports.GroupsT = GroupsT;
exports.Groups = Groups;
exports.Group = Group;
exports.Options = Options;
exports.AutoLoad = AutoLoad;
exports.Middlewares = Middlewares;
exports.Declare = Declare;
const Permissions_1 = require("../structures/extra/Permissions");
const types_1 = require("../types");
function Locales({ name: names, description: descriptions, }) {
return (target) => class extends target {
name_localizations = names ? Object.fromEntries(names) : undefined;
description_localizations = descriptions ? Object.fromEntries(descriptions) : undefined;
};
}
function LocalesT(name, description) {
return (target) => class extends target {
__t = { name, description };
};
}
function GroupsT(groups) {
return (target) => class extends target {
__tGroups = groups;
groupsAliases = {};
constructor(...args) {
super(...args);
for (const i in groups) {
for (const j of groups[i].aliases ?? []) {
this.groupsAliases[j] = i;
}
}
}
};
}
function Groups(groups) {
return (target) => class extends target {
groups = groups;
groupsAliases = {};
constructor(...args) {
super(...args);
for (const i in groups) {
for (const j of groups[i].aliases ?? []) {
this.groupsAliases[j] = i;
}
}
}
};
}
function Group(groupName) {
return (target) => class extends target {
group = groupName;
};
}
function Options(options) {
return (target) => class extends target {
options = Array.isArray(options)
? options.map(x => new x())
: Object.entries(options).map(([name, option]) => {
return {
name,
...option,
};
});
};
}
function AutoLoad() {
return (target) => class extends target {
__autoload = true;
};
}
function Middlewares(cbs) {
return (target) => class extends target {
middlewares = cbs;
};
}
function Declare(declare) {
return (target) => class extends target {
name = declare.name;
nsfw = declare.nsfw;
props = declare.props;
contexts = declare.contexts?.map(i => types_1.InteractionContextType[i]) ??
Object.values(types_1.InteractionContextType).filter(x => typeof x === 'number');
integrationTypes = declare.integrationTypes?.map(i => types_1.ApplicationIntegrationType[i]) ?? [
types_1.ApplicationIntegrationType.GuildInstall,
];
defaultMemberPermissions = declare.defaultMemberPermissions
? Permissions_1.PermissionsBitField.resolve(declare.defaultMemberPermissions)
: declare.defaultMemberPermissions;
botPermissions = declare.botPermissions
? Permissions_1.PermissionsBitField.resolve(declare.botPermissions)
: declare.botPermissions;
description = '';
type = types_1.ApplicationCommandType.ChatInput;
guildId;
ignore;
aliases;
handler;
constructor(...args) {
super(...args);
if ('description' in declare)
this.description = declare.description;
if ('type' in declare)
this.type = declare.type;
if ('guildId' in declare)
this.guildId = declare.guildId;
if ('ignore' in declare)
this.ignore = declare.ignore;
if ('aliases' in declare)
this.aliases = declare.aliases;
if ('handler' in declare)
this.handler = declare.handler;
// check if all properties are valid
}
};
}