summaryrefslogtreecommitdiff
path: root/packages/interactions/discord/commands/index.ts
blob: b3d0d84117ed77d4476b6c8407290d153f214475 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import type { DiscordCommand } from "../interfaces.ts";
import {
  DISCORD_APPLICATION_COMMAND_OPTION_TYPES,
  DISCORD_INTERACTION_CONTEXTS,
} from "../../constants.ts";

export type { DiscordCommand };

export const HOT_COMMAND: DiscordCommand = {
  name: "hot",
  description: "Fetch a random hot post from r/okbuddyumamusume",
};

export const ROLEPLAY_COMMAND: DiscordCommand = {
  name: "roleplay",
  description: "Fetch a random hot roleplay post from r/okbuddyumamusume",
};

export const NSFW_COMMAND: DiscordCommand = {
  name: "nsfw",
  description:
    "Fetch a random NSFW post from r/okbuddyumamusume (NSFW channels only)",
};

export const TOP_COMMAND: DiscordCommand = {
  name: "top",
  description:
    "Fetch a random top post from r/okbuddyumamusume (defaults to today)",
  options: [
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.STRING,
      name: "time",
      description: "Time period for top posts (defaults to today)",
      required: false,
      choices: [
        {
          name: "Now",
          value: "hour",
        },
        {
          name: "Today",
          value: "day",
        },
        {
          name: "This Week",
          value: "week",
        },
        {
          name: "This Month",
          value: "month",
        },
        {
          name: "This Year",
          value: "year",
        },
        {
          name: "All Time",
          value: "all",
        },
      ],
    },
  ],
};

export const COMPLAIN_COMMAND: DiscordCommand = {
  name: "complain",
  description: "Submit a complaint to the moderators",
  contexts: [
    DISCORD_INTERACTION_CONTEXTS.GUILD,
    DISCORD_INTERACTION_CONTEXTS.BOT_DM,
  ],
  options: [
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.STRING,
      name: "message",
      description: "Your complaint message",
      required: true,
    },
  ],
};

export const APPEAL_COMMAND: DiscordCommand = {
  name: "appeal",
  description: "Submit an appeal to the moderators",
  contexts: [
    DISCORD_INTERACTION_CONTEXTS.GUILD,
    DISCORD_INTERACTION_CONTEXTS.BOT_DM,
  ],
  options: [
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.STRING,
      name: "message",
      description: "Your appeal message",
      required: true,
    },
  ],
};

export const COLOURS_COMMAND: DiscordCommand = {
  name: "colours",
  description: "Show the distribution of colour roles in the server",
};

export const ROLEPLAY_VERIFY_COMMAND: DiscordCommand = {
  name: "roleplay-verify",
  description:
    "Manage the verified roleplay role (Admin/Roleplay Curator only)",
  options: [
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.STRING,
      name: "action",
      description: "Action to perform on the role",
      required: true,
      choices: [
        {
          name: "Add Role",
          value: "add",
        },
        {
          name: "Remove Role",
          value: "remove",
        },
        {
          name: "Toggle Role",
          value: "toggle",
        },
      ],
    },
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.USER,
      name: "user",
      description: "User to perform the action on",
      required: true,
    },
  ],
};

export const TOGGLE_PRIVILEGED_ACCESS_COMMAND: DiscordCommand = {
  name: "toggle-privileged-access",
  description: "Toggle privileged access role (Staff only)",
  options: [
    {
      type: DISCORD_APPLICATION_COMMAND_OPTION_TYPES.USER,
      name: "user",
      description: "User to toggle privileged access for",
      required: true,
    },
  ],
};