Skip to content

Commit

Permalink
Merge branch 'dev' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
BenSegal855 committed Dec 16, 2023
2 parents 8961771 + da5efd3 commit f27057a
Show file tree
Hide file tree
Showing 5 changed files with 930 additions and 725 deletions.
22 changes: 11 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@
"dependencies": {
"@discordjs/collection": "2.0.0",
"@octokit/rest": "20.0.2",
"@sapphire/decorators": "6.0.2",
"@sapphire/discord-utilities": "3.2.0",
"@sapphire/discord.js-utilities": "7.1.2",
"@sapphire/fetch": "2.4.1",
"@sapphire/decorators": "6.0.3",
"@sapphire/discord-utilities": "3.2.1",
"@sapphire/discord.js-utilities": "7.1.3",
"@sapphire/fetch": "2.4.2",
"@sapphire/framework": "^4.7.2",
"@sapphire/pieces": "3.10.0",
"@sapphire/plugin-editable-commands": "3.1.0",
"@sapphire/plugin-logger": "3.0.7",
"@sapphire/plugin-subcommands": "^5.0.0",
"@sapphire/stopwatch": "1.5.0",
"@sapphire/time-utilities": "1.7.10",
"@sapphire/type": "2.4.1",
"@sapphire/utilities": "3.13.0",
"@sapphire/stopwatch": "1.5.1",
"@sapphire/time-utilities": "1.7.11",
"@sapphire/type": "2.4.3",
"@sapphire/utilities": "3.14.0",
"@skyra/env-utilities": "^1.2.1",
"axios": "1.6.2",
"canvas": "2.11.2",
Expand All @@ -34,7 +34,7 @@
"common-tags": "1.8.2",
"discord.js": "14.14.1",
"module-alias": "2.2.3",
"mongodb": "4.17.1",
"mongodb": "4.17.2",
"node-cron": "3.0.3",
"parse-duration": "1.1.0",
"pdf2json": "^3.0.3",
Expand All @@ -51,8 +51,8 @@
"@types/node": "17.0.45",
"@types/node-cron": "3.0.11",
"@types/ws": "8.5.10",
"@typescript-eslint/eslint-plugin": "6.13.1",
"@typescript-eslint/parser": "6.13.1",
"@typescript-eslint/eslint-plugin": "6.13.2",
"@typescript-eslint/parser": "6.13.2",
"eslint": "8.55.0",
"eslint-plugin-deprecation": "1.5.0",
"npm-run-all": "4.1.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@ import { sendLoadingMessage } from '@lib/utils';
import { HerdMentalityManager } from '@lib/HerdMentality';

@ApplyOptions<CommandOptions>({
description: 'hm',
aliases: ['hm'],
preconditions: ['OwnerOnly'],
runIn: 'GUILD_TEXT',
enabled: false
description: 'Start a game of Herd Mentality',
aliases: ['herd', 'hm'],
runIn: 'GUILD_TEXT'
})
export class UserCommand extends SteveCommand {

Expand Down
56 changes: 53 additions & 3 deletions src/interaction-handlers/herdMentality.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { ApplyOptions } from '@sapphire/decorators';
import { InteractionHandler, InteractionHandlerOptions, InteractionHandlerTypes } from '@sapphire/framework';
import { ActionRowBuilder, ButtonInteraction, ModalBuilder, ModalSubmitInteraction, TextInputBuilder, TextInputStyle } from 'discord.js';
import { ActionRowBuilder, ButtonInteraction, ModalBuilder, ModalSubmitInteraction, StringSelectMenuInteraction, TextInputBuilder, TextInputStyle } from 'discord.js';

@ApplyOptions<InteractionHandlerOptions>({
name: 'HerdMentalityButtonHandler',
Expand Down Expand Up @@ -35,6 +35,7 @@ export class HerdMentalityButtonHandler extends InteractionHandler {
await manager.addPlayer(interaction.user.id);
break;
case 'Start':
case 'Next':
if (!args.includes(interaction.user.id)) {
await interaction.reply({
content: 'I\'m sorry, but I can\'t let you do that',
Expand All @@ -60,6 +61,17 @@ export class HerdMentalityButtonHandler extends InteractionHandler {
))
);
break;
case 'EndRound':
if (!args.includes(interaction.user.id)) {
await interaction.reply({
content: 'I\'m sorry, but I can\'t let you do that',
ephemeral: true
});
break;
}

await manager.endRound();
break;
case 'End':
if (!args.includes(interaction.user.id)) {
await interaction.reply({
Expand All @@ -76,8 +88,8 @@ export class HerdMentalityButtonHandler extends InteractionHandler {
break;

default:
interaction.reply({ content: 'Something went wrong!', ephemeral: true });
break;
await interaction.reply({ content: 'Something went wrong!', ephemeral: true });
throw new Error(`HMUnknownAction: ${action}`);
}
}

Expand Down Expand Up @@ -115,3 +127,41 @@ export class HerdMentalityModalHandler extends InteractionHandler {
}

}

@ApplyOptions<InteractionHandlerOptions>({
name: 'HerdMentalitySelectHandler',
interactionHandlerType: InteractionHandlerTypes.SelectMenu
})
export class HerdMentalitySelectHandler extends InteractionHandler {

public parse(interaction: StringSelectMenuInteraction) {
if (!interaction.customId.startsWith('Herd|')) {
return this.none();
}

const manager = this.container.hmGames.get(interaction.customId.split('|').at(-1) ?? '');

if (!manager) {
interaction.reply({
content: 'I don\'t know how you managed it but somehow, you submitted an answer to a game that\'s over',
ephemeral: true
});
throw new Error(`NoHerdFound\nNo HerdMentalityManager found for ${interaction.customId}`);
}

return this.some(manager);
}

public async run(interaction: StringSelectMenuInteraction, manager: InteractionHandler.ParseResult<this>) {
if (!interaction.customId.includes(interaction.user.id)) {
await interaction.reply({
content: 'Sorry but you can\'t use this select menu',
ephemeral: true
});
return;
}
await interaction.deferUpdate();
await manager.chooseWinners(interaction.values);
}

}
Loading

0 comments on commit f27057a

Please sign in to comment.