refactor(ActionsManager): register actions without using class name (#11047)

This commit is contained in:
J4C0B3Y
2025-08-19 18:51:52 +10:00
committed by GitHub
parent 7710decf6a
commit b1d96e251f
2 changed files with 57 additions and 45 deletions

View File

@@ -39,12 +39,12 @@ async function writeClientActionImports() {
const actionName = file.slice(0, -3); const actionName = file.slice(0, -3);
lines.push(` this.register(require('./${file}').${actionName}Action);`); lines.push(` this.${actionName} = this.load(require('./${file}').${actionName}Action);`);
} }
lines.push(' }\n'); lines.push(' }\n');
lines.push(' register(Action) {'); lines.push(' load(Action) {');
lines.push(" this[Action.name.replace(/Action$/, '')] = new Action(this.client);"); lines.push(' return new Action(this.client);');
lines.push(' }'); lines.push(' }');
lines.push('}\n'); lines.push('}\n');
lines.push('exports.ActionsManager = ActionsManager;\n'); lines.push('exports.ActionsManager = ActionsManager;\n');

View File

@@ -13,50 +13,62 @@ class ActionsManager {
constructor(client) { constructor(client) {
this.client = client; this.client = client;
this.register(require('./ChannelCreate.js').ChannelCreateAction); this.ChannelCreate = this.load(require('./ChannelCreate.js').ChannelCreateAction);
this.register(require('./ChannelDelete.js').ChannelDeleteAction); this.ChannelDelete = this.load(require('./ChannelDelete.js').ChannelDeleteAction);
this.register(require('./ChannelUpdate.js').ChannelUpdateAction); this.ChannelUpdate = this.load(require('./ChannelUpdate.js').ChannelUpdateAction);
this.register(require('./GuildChannelsPositionUpdate.js').GuildChannelsPositionUpdateAction); this.GuildChannelsPositionUpdate = this.load(
this.register(require('./GuildEmojiCreate.js').GuildEmojiCreateAction); require('./GuildChannelsPositionUpdate.js').GuildChannelsPositionUpdateAction,
this.register(require('./GuildEmojiDelete.js').GuildEmojiDeleteAction); );
this.register(require('./GuildEmojiUpdate.js').GuildEmojiUpdateAction); this.GuildEmojiCreate = this.load(require('./GuildEmojiCreate.js').GuildEmojiCreateAction);
this.register(require('./GuildEmojisUpdate.js').GuildEmojisUpdateAction); this.GuildEmojiDelete = this.load(require('./GuildEmojiDelete.js').GuildEmojiDeleteAction);
this.register(require('./GuildMemberRemove.js').GuildMemberRemoveAction); this.GuildEmojiUpdate = this.load(require('./GuildEmojiUpdate.js').GuildEmojiUpdateAction);
this.register(require('./GuildMemberUpdate.js').GuildMemberUpdateAction); this.GuildEmojisUpdate = this.load(require('./GuildEmojisUpdate.js').GuildEmojisUpdateAction);
this.register(require('./GuildRoleCreate.js').GuildRoleCreateAction); this.GuildMemberRemove = this.load(require('./GuildMemberRemove.js').GuildMemberRemoveAction);
this.register(require('./GuildRoleDelete.js').GuildRoleDeleteAction); this.GuildMemberUpdate = this.load(require('./GuildMemberUpdate.js').GuildMemberUpdateAction);
this.register(require('./GuildRolesPositionUpdate.js').GuildRolesPositionUpdateAction); this.GuildRoleCreate = this.load(require('./GuildRoleCreate.js').GuildRoleCreateAction);
this.register(require('./GuildScheduledEventDelete.js').GuildScheduledEventDeleteAction); this.GuildRoleDelete = this.load(require('./GuildRoleDelete.js').GuildRoleDeleteAction);
this.register(require('./GuildScheduledEventUserAdd.js').GuildScheduledEventUserAddAction); this.GuildRolesPositionUpdate = this.load(require('./GuildRolesPositionUpdate.js').GuildRolesPositionUpdateAction);
this.register(require('./GuildScheduledEventUserRemove.js').GuildScheduledEventUserRemoveAction); this.GuildScheduledEventDelete = this.load(
this.register(require('./GuildSoundboardSoundDelete.js').GuildSoundboardSoundDeleteAction); require('./GuildScheduledEventDelete.js').GuildScheduledEventDeleteAction,
this.register(require('./GuildStickerCreate.js').GuildStickerCreateAction); );
this.register(require('./GuildStickerDelete.js').GuildStickerDeleteAction); this.GuildScheduledEventUserAdd = this.load(
this.register(require('./GuildStickerUpdate.js').GuildStickerUpdateAction); require('./GuildScheduledEventUserAdd.js').GuildScheduledEventUserAddAction,
this.register(require('./GuildStickersUpdate.js').GuildStickersUpdateAction); );
this.register(require('./GuildUpdate.js').GuildUpdateAction); this.GuildScheduledEventUserRemove = this.load(
this.register(require('./InteractionCreate.js').InteractionCreateAction); require('./GuildScheduledEventUserRemove.js').GuildScheduledEventUserRemoveAction,
this.register(require('./MessageCreate.js').MessageCreateAction); );
this.register(require('./MessageDelete.js').MessageDeleteAction); this.GuildSoundboardSoundDelete = this.load(
this.register(require('./MessageDeleteBulk.js').MessageDeleteBulkAction); require('./GuildSoundboardSoundDelete.js').GuildSoundboardSoundDeleteAction,
this.register(require('./MessagePollVoteAdd.js').MessagePollVoteAddAction); );
this.register(require('./MessagePollVoteRemove.js').MessagePollVoteRemoveAction); this.GuildStickerCreate = this.load(require('./GuildStickerCreate.js').GuildStickerCreateAction);
this.register(require('./MessageReactionAdd.js').MessageReactionAddAction); this.GuildStickerDelete = this.load(require('./GuildStickerDelete.js').GuildStickerDeleteAction);
this.register(require('./MessageReactionRemove.js').MessageReactionRemoveAction); this.GuildStickerUpdate = this.load(require('./GuildStickerUpdate.js').GuildStickerUpdateAction);
this.register(require('./MessageReactionRemoveAll.js').MessageReactionRemoveAllAction); this.GuildStickersUpdate = this.load(require('./GuildStickersUpdate.js').GuildStickersUpdateAction);
this.register(require('./MessageReactionRemoveEmoji.js').MessageReactionRemoveEmojiAction); this.GuildUpdate = this.load(require('./GuildUpdate.js').GuildUpdateAction);
this.register(require('./MessageUpdate.js').MessageUpdateAction); this.InteractionCreate = this.load(require('./InteractionCreate.js').InteractionCreateAction);
this.register(require('./StageInstanceCreate.js').StageInstanceCreateAction); this.MessageCreate = this.load(require('./MessageCreate.js').MessageCreateAction);
this.register(require('./StageInstanceDelete.js').StageInstanceDeleteAction); this.MessageDelete = this.load(require('./MessageDelete.js').MessageDeleteAction);
this.register(require('./StageInstanceUpdate.js').StageInstanceUpdateAction); this.MessageDeleteBulk = this.load(require('./MessageDeleteBulk.js').MessageDeleteBulkAction);
this.register(require('./ThreadCreate.js').ThreadCreateAction); this.MessagePollVoteAdd = this.load(require('./MessagePollVoteAdd.js').MessagePollVoteAddAction);
this.register(require('./ThreadMembersUpdate.js').ThreadMembersUpdateAction); this.MessagePollVoteRemove = this.load(require('./MessagePollVoteRemove.js').MessagePollVoteRemoveAction);
this.register(require('./TypingStart.js').TypingStartAction); this.MessageReactionAdd = this.load(require('./MessageReactionAdd.js').MessageReactionAddAction);
this.register(require('./UserUpdate.js').UserUpdateAction); this.MessageReactionRemove = this.load(require('./MessageReactionRemove.js').MessageReactionRemoveAction);
this.MessageReactionRemoveAll = this.load(require('./MessageReactionRemoveAll.js').MessageReactionRemoveAllAction);
this.MessageReactionRemoveEmoji = this.load(
require('./MessageReactionRemoveEmoji.js').MessageReactionRemoveEmojiAction,
);
this.MessageUpdate = this.load(require('./MessageUpdate.js').MessageUpdateAction);
this.StageInstanceCreate = this.load(require('./StageInstanceCreate.js').StageInstanceCreateAction);
this.StageInstanceDelete = this.load(require('./StageInstanceDelete.js').StageInstanceDeleteAction);
this.StageInstanceUpdate = this.load(require('./StageInstanceUpdate.js').StageInstanceUpdateAction);
this.ThreadCreate = this.load(require('./ThreadCreate.js').ThreadCreateAction);
this.ThreadMembersUpdate = this.load(require('./ThreadMembersUpdate.js').ThreadMembersUpdateAction);
this.TypingStart = this.load(require('./TypingStart.js').TypingStartAction);
this.UserUpdate = this.load(require('./UserUpdate.js').UserUpdateAction);
} }
register(Action) { load(Action) {
this[Action.name.replace(/Action$/, '')] = new Action(this.client); return new Action(this.client);
} }
} }