Updated types for channels

This commit is contained in:
2024-01-06 23:28:37 +01:00
parent 2b92750778
commit d06e15c96c
15 changed files with 43 additions and 147 deletions

View File

@@ -1,8 +1,7 @@
import { import {
SlashCommandBuilder, SlashCommandBuilder,
PermissionFlagsBits, PermissionFlagsBits,
ChannelType, TextChannel,
GuildTextBasedChannel,
} from "discord.js" } from "discord.js"
import { color } from "../../config/options.json" import { color } from "../../config/options.json"
import { Command } from "../interfaces" import { Command } from "../interfaces"
@@ -30,7 +29,7 @@ export = {
await interaction.deferReply({ ephemeral: true }) await interaction.deferReply({ ephemeral: true })
const amount = interaction.options.getInteger("amount")! const amount = interaction.options.getInteger("amount")!
const channel2 = interaction.channel! const channel = interaction.channel as TextChannel
const embedColor = Number(color.replace("#", "0x")) const embedColor = Number(color.replace("#", "0x"))
if (!amount || amount < 1 || amount > 100) { if (!amount || amount < 1 || amount > 100) {
@@ -45,20 +44,6 @@ export = {
}) })
} }
if (channel2.type !== ChannelType.GuildText) {
await interaction.editReply({
embeds: [
{
description:
"You can only clear messages in a text channel",
color: embedColor,
},
],
})
}
const channel = channel2 as GuildTextBasedChannel
channel.messages.fetch({ limit: amount }).then(async messages => { channel.messages.fetch({ limit: amount }).then(async messages => {
const messagesToDelete = messages const messagesToDelete = messages
.map(m => m) .map(m => m)

View File

@@ -1,4 +1,4 @@
import { ChatInputCommandInteraction, GuildTextBasedChannel, channelMention } from "discord.js" import { ChatInputCommandInteraction, TextChannel, channelMention } from "discord.js"
import settingsSchema from "../../schemas/settingsSchema" import settingsSchema from "../../schemas/settingsSchema"
import { color, devMessage } from "../../../config/options.json" import { color, devMessage } from "../../../config/options.json"
import mongoose from "mongoose" import mongoose from "mongoose"
@@ -6,7 +6,7 @@ import mongoose from "mongoose"
export default async function setup(interaction: ChatInputCommandInteraction): Promise<void> { export default async function setup(interaction: ChatInputCommandInteraction): Promise<void> {
await interaction.deferReply() await interaction.deferReply()
const channel = interaction.options.getChannel("channel") as GuildTextBasedChannel const channel = interaction.options.getChannel("channel") as TextChannel
const embedColor = Number(color.replace("#", "0x")) const embedColor = Number(color.replace("#", "0x"))
if (await settingsSchema.findOne({ name: "counting" })) { if (await settingsSchema.findOne({ name: "counting" })) {

View File

@@ -2,7 +2,7 @@ import {
SlashCommandBuilder, SlashCommandBuilder,
PermissionFlagsBits, PermissionFlagsBits,
ChannelType, ChannelType,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { color, devMessage } from "../../config/options.json" import { color, devMessage } from "../../config/options.json"
import { Command } from "../interfaces" import { Command } from "../interfaces"
@@ -26,7 +26,8 @@ export = {
.addChannelOption(option => .addChannelOption(option =>
option option
.setName("channel") .setName("channel")
.setDescription("The channel to send the message to."), .setDescription("The channel to send the message to.")
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
) )
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
.setDMPermission(false), .setDMPermission(false),
@@ -35,32 +36,9 @@ export = {
await interaction.deferReply({ ephemeral: true }) await interaction.deferReply({ ephemeral: true })
const message = interaction.options.getString("message")! const message = interaction.options.getString("message")!
const channel2 = const channel = (interaction.options.getChannel("channel") || interaction.channel) as TextChannel
interaction.options.getChannel("channel") ?? interaction.channel
const embedColor = Number(color.replace("#", "0x")) const embedColor = Number(color.replace("#", "0x"))
if (channel2?.type !== ChannelType.GuildText) {
await interaction.editReply({
embeds: [
{
description:
"You can only send a message to a text channel.",
color: embedColor,
footer: {
text: interaction.guild!.name + " | " + devMessage,
icon_url:
interaction.guild!.iconURL({
forceStatic: false,
}) || undefined,
},
},
],
})
return
}
const channel = channel2 as GuildTextBasedChannel
channel.send({ channel.send({
embeds: [ embeds: [
{ {

View File

@@ -5,7 +5,7 @@ import {
ActionRowBuilder, ActionRowBuilder,
ButtonStyle, ButtonStyle,
ChannelType, ChannelType,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { color, devMessage } from "../../config/options.json" import { color, devMessage } from "../../config/options.json"
import { Command } from "../interfaces" import { Command } from "../interfaces"
@@ -31,6 +31,7 @@ export = {
.setDescription( .setDescription(
"The channel to send the application to.", "The channel to send the application to.",
) )
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
.setRequired(true), .setRequired(true),
), ),
) )
@@ -44,6 +45,7 @@ export = {
.setDescription( .setDescription(
"The channel to send the application to.", "The channel to send the application to.",
) )
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
.setRequired(true), .setRequired(true),
), ),
) )
@@ -57,6 +59,7 @@ export = {
.setDescription( .setDescription(
"The channel to send the verfiy message to.", "The channel to send the verfiy message to.",
) )
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
.setRequired(true), .setRequired(true),
), ),
) )
@@ -70,6 +73,7 @@ export = {
.setDescription( .setDescription(
"The channel to send the waiting list message to.", "The channel to send the waiting list message to.",
) )
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
.setRequired(true), .setRequired(true),
), ),
) )
@@ -83,6 +87,7 @@ export = {
.setDescription( .setDescription(
"The channel to send the application to.", "The channel to send the application to.",
) )
.addChannelTypes(ChannelType.GuildText, ChannelType.GuildAnnouncement)
.setRequired(true), .setRequired(true),
), ),
) )
@@ -94,17 +99,7 @@ export = {
const embedColor = Number(color.replace("#", "0x")) const embedColor = Number(color.replace("#", "0x"))
if (subcommand === "sendguildapplication") { if (subcommand === "sendguildapplication") {
const channel2 = interaction.options.getChannel("channel")! const channel = interaction.options.getChannel("channel") as TextChannel
if (channel2.type !== ChannelType.GuildText) {
await interaction.reply({
content: "That channel is not a text channel.",
ephemeral: true,
})
return
}
const channel = channel2 as GuildTextBasedChannel
await channel.send({ await channel.send({
embeds: [ embeds: [
@@ -145,17 +140,7 @@ export = {
} }
if (subcommand === "sendstaffapplication") { if (subcommand === "sendstaffapplication") {
const channel2 = interaction.options.getChannel("channel")! const channel = interaction.options.getChannel("channel") as TextChannel
if (channel2.type !== ChannelType.GuildText) {
await interaction.reply({
content: "That channel is not a text channel.",
ephemeral: true,
})
return
}
const channel = channel2 as GuildTextBasedChannel
await channel.send({ await channel.send({
embeds: [ embeds: [
@@ -195,17 +180,7 @@ export = {
} }
if (subcommand === "sendinactivityapplication") { if (subcommand === "sendinactivityapplication") {
const channel2 = interaction.options.getChannel("channel")! const channel = interaction.options.getChannel("channel") as TextChannel
if (channel2.type !== ChannelType.GuildText) {
await interaction.reply({
content: "That channel is not a text channel.",
ephemeral: true,
})
return
}
const channel = channel2 as GuildTextBasedChannel
await channel.send({ await channel.send({
embeds: [ embeds: [
@@ -245,17 +220,7 @@ export = {
} }
if (subcommand === "sendverfiymessage") { if (subcommand === "sendverfiymessage") {
const channel2 = interaction.options.getChannel("channel")! const channel = interaction.options.getChannel("channel") as TextChannel
if (channel2.type !== ChannelType.GuildText) {
await interaction.reply({
content: "That channel is not a text channel.",
ephemeral: true,
})
return
}
const channel = channel2 as GuildTextBasedChannel
await channel.send({ await channel.send({
embeds: [ embeds: [
@@ -294,17 +259,7 @@ export = {
} }
if (subcommand === "sendwaitinglistmessage") { if (subcommand === "sendwaitinglistmessage") {
const channel2 = interaction.options.getChannel("channel")! const channel = interaction.options.getChannel("channel") as TextChannel
if (channel2.type !== ChannelType.GuildText) {
await interaction.reply({
content: "That channel is not a text channel.",
ephemeral: true,
})
return
}
const channel = channel2 as GuildTextBasedChannel
await channel.send({ await channel.send({
embeds: [ embeds: [

View File

@@ -2,7 +2,7 @@ import {
SlashCommandBuilder, SlashCommandBuilder,
PermissionFlagsBits, PermissionFlagsBits,
ChannelType, ChannelType,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { color, devMessage } from "../../config/options.json" import { color, devMessage } from "../../config/options.json"
import { Command } from "../interfaces" import { Command } from "../interfaces"
@@ -27,7 +27,8 @@ export = {
.addChannelOption(option => .addChannelOption(option =>
option option
.setName("channel") .setName("channel")
.setDescription("The channel to set the slowmode of."), .setDescription("The channel to set the slowmode of.")
.addChannelTypes(ChannelType.GuildText),
) )
.setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator)
.setDMPermission(false), .setDMPermission(false),
@@ -36,32 +37,9 @@ export = {
await interaction.deferReply({ ephemeral: true }) await interaction.deferReply({ ephemeral: true })
const seconds = interaction.options.getInteger("seconds") ?? 5 const seconds = interaction.options.getInteger("seconds") ?? 5
const channel2 = const channel = (interaction.options.getChannel("channel") || interaction.channel) as TextChannel
interaction.options.getChannel("channel") ?? interaction.channel
const embedColor = Number(color.replace("#", "0x")) const embedColor = Number(color.replace("#", "0x"))
if (channel2?.type !== ChannelType.GuildText) {
await interaction.editReply({
embeds: [
{
description:
"You can only set the slowmode of a text channel.",
color: embedColor,
footer: {
text: interaction.guild!.name + " | " + devMessage,
icon_url:
interaction.guild!.iconURL({
forceStatic: false,
}) || undefined,
},
},
],
})
return
}
const channel = channel2 as GuildTextBasedChannel
if (seconds > 21600) { if (seconds > 21600) {
await channel.setRateLimitPerUser(21600) await channel.setRateLimitPerUser(21600)
await interaction.editReply({ await interaction.editReply({

View File

@@ -2,7 +2,7 @@ import {
ActionRowBuilder, ActionRowBuilder,
ButtonStyle, ButtonStyle,
ButtonBuilder, ButtonBuilder,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { import {
color, color,
@@ -91,7 +91,7 @@ export = {
// update waiting list // update waiting list
const channel = guild.channels.cache.get( const channel = guild.channels.cache.get(
waitingListChannel, waitingListChannel,
) as GuildTextBasedChannel ) as TextChannel
const wlmessage = await channel!.messages.fetch(waitingListMessage) const wlmessage = await channel!.messages.fetch(waitingListMessage)
const wlembed = wlmessage.embeds[0] const wlembed = wlmessage.embeds[0]

View File

@@ -4,7 +4,7 @@ import {
ActionRowBuilder, ActionRowBuilder,
EmbedBuilder, EmbedBuilder,
GuildMember, GuildMember,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { color } from "../../../config/options.json" import { color } from "../../../config/options.json"
import { largeM, smallM, ignM } from "../../../config/limitmessages.json" import { largeM, smallM, ignM } from "../../../config/limitmessages.json"
@@ -537,7 +537,7 @@ export = {
const channel = guild.channels.cache.get( const channel = guild.channels.cache.get(
applicationsChannel, applicationsChannel,
) as GuildTextBasedChannel ) as TextChannel
await channel.send({ await channel.send({
embeds: [ embeds: [
{ {

View File

@@ -4,7 +4,7 @@ import {
ButtonStyle, ButtonStyle,
EmbedBuilder, EmbedBuilder,
GuildMember, GuildMember,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { import {
gm, gm,
@@ -305,7 +305,7 @@ module.exports = {
const appChannel = guild.channels.cache.get( const appChannel = guild.channels.cache.get(
inactivityLogChannel, inactivityLogChannel,
) as GuildTextBasedChannel ) as TextChannel
await appChannel.send({ await appChannel.send({
embeds: [ embeds: [

View File

@@ -4,7 +4,7 @@ import {
ActionRowBuilder, ActionRowBuilder,
EmbedBuilder, EmbedBuilder,
GuildMember, GuildMember,
GuildTextBasedChannel, TextChannel,
} from "discord.js" } from "discord.js"
import { color, staffApplicationsChannel } from "../../../config/options.json" import { color, staffApplicationsChannel } from "../../../config/options.json"
import { largeM, ignM } from "../../../config/limitmessages.json" import { largeM, ignM } from "../../../config/limitmessages.json"
@@ -464,7 +464,7 @@ export = {
const channel = guild.channels.cache.get( const channel = guild.channels.cache.get(
staffApplicationsChannel, staffApplicationsChannel,
) as GuildTextBasedChannel ) as TextChannel
await channel.send({ await channel.send({
embeds: [ embeds: [

View File

@@ -7,13 +7,13 @@ import {
import { getGuild, getIGN } from "../../utils/Hypixel" import { getGuild, getIGN } from "../../utils/Hypixel"
import { Cron, GuildData } from "../../interfaces" import { Cron, GuildData } from "../../interfaces"
import Illegitimate from "../../utils/Illegitimate" import Illegitimate from "../../utils/Illegitimate"
import { GuildTextBasedChannel } from "discord.js" import { TextChannel } from "discord.js"
const client = Illegitimate.client const client = Illegitimate.client
async function guildWeekly() { async function guildWeekly() {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
guildLogChannel, guildLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("Guild log channel not found") console.log("Guild log channel not found")

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "../Client" import { ExtendedClient as Client } from "../Client"
import { errorLogChannel, color } from "../../../config/options.json" import { errorLogChannel, color } from "../../../config/options.json"
import { Autocomplete } from "../../interfaces" import { Autocomplete } from "../../interfaces"
import { Events, GuildTextBasedChannel } from "discord.js" import { Events, TextChannel } from "discord.js"
import path = require("path") import path = require("path")
import fs = require("fs") import fs = require("fs")
type FileType = "js" | "ts" type FileType = "js" | "ts"
@@ -54,7 +54,7 @@ export default function loadAutocompleteEvents(client: Client, ft: FileType) {
if (process.env.NODE_ENV !== "dev") { if (process.env.NODE_ENV !== "dev") {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
errorLogChannel, errorLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("No error log channel found.") console.log("No error log channel found.")
} }

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "../Client" import { ExtendedClient as Client } from "../Client"
import { errorLogChannel, color } from "../../../config/options.json" import { errorLogChannel, color } from "../../../config/options.json"
import { Button } from "../../interfaces" import { Button } from "../../interfaces"
import { Events, GuildTextBasedChannel } from "discord.js" import { Events, TextChannel } from "discord.js"
import path = require("path") import path = require("path")
import fs = require("fs") import fs = require("fs")
type FileType = "js" | "ts" type FileType = "js" | "ts"
@@ -42,7 +42,7 @@ export default function loadButtonEvents(client: Client, ft: FileType) {
if (process.env.NODE_ENV !== "dev") { if (process.env.NODE_ENV !== "dev") {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
errorLogChannel, errorLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("No error log channel found.") console.log("No error log channel found.")
} }

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "../Client" import { ExtendedClient as Client } from "../Client"
import { errorLogChannel, color } from "../../../config/options.json" import { errorLogChannel, color } from "../../../config/options.json"
import { Command } from "../../interfaces" import { Command } from "../../interfaces"
import { Events, GuildTextBasedChannel } from "discord.js" import { Events, TextChannel } from "discord.js"
import path = require("path") import path = require("path")
import fs = require("fs") import fs = require("fs")
type FileType = "js" | "ts" type FileType = "js" | "ts"
@@ -43,7 +43,7 @@ export default function loadSlashCommandsEvents(client: Client, ft: FileType) {
if (process.env.NODE_ENV !== "dev") { if (process.env.NODE_ENV !== "dev") {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
errorLogChannel, errorLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("No error log channel found.") console.log("No error log channel found.")
} }

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "../Client" import { ExtendedClient as Client } from "../Client"
import { ContextMenu } from "../../interfaces" import { ContextMenu } from "../../interfaces"
import { errorLogChannel, color } from "../../../config/options.json" import { errorLogChannel, color } from "../../../config/options.json"
import { Events, GuildTextBasedChannel } from "discord.js" import { Events, TextChannel } from "discord.js"
import path = require("path") import path = require("path")
import fs = require("fs") import fs = require("fs")
type FileType = "js" | "ts" type FileType = "js" | "ts"
@@ -50,7 +50,7 @@ export default function loadContextMenuEvents(client: Client, ft: FileType) {
if (process.env.NODE_ENV !== "dev") { if (process.env.NODE_ENV !== "dev") {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
errorLogChannel, errorLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("No error log channel found.") console.log("No error log channel found.")
} }

View File

@@ -1,7 +1,7 @@
import { ExtendedClient as Client } from "../Client" import { ExtendedClient as Client } from "../Client"
import { errorLogChannel, color } from "../../../config/options.json" import { errorLogChannel, color } from "../../../config/options.json"
import { Modal } from "../../interfaces" import { Modal } from "../../interfaces"
import { Events, GuildTextBasedChannel } from "discord.js" import { Events, TextChannel } from "discord.js"
import path = require("path") import path = require("path")
import fs = require("fs") import fs = require("fs")
type FileType = "js" | "ts" type FileType = "js" | "ts"
@@ -44,7 +44,7 @@ export default function loadModalEvents(client: Client, ft: FileType) {
if (process.env.NODE_ENV !== "dev") { if (process.env.NODE_ENV !== "dev") {
const channel = client.channels.cache.get( const channel = client.channels.cache.get(
errorLogChannel, errorLogChannel,
) as GuildTextBasedChannel ) as TextChannel
if (!channel) { if (!channel) {
console.log("No error log channel found.") console.log("No error log channel found.")
} }