Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コーディング規約に準拠 #1

Merged
merged 1 commit into from
Aug 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 7 additions & 8 deletions src/agenda.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import Agenda from "agenda";
import 'dotenv/config'
import { client } from './bot'
import "dotenv/config";

export const agenda = new Agenda({ db: { address: process.env.mongodb ?? '' } });
export const agenda = new Agenda({ db: { address: process.env.mongodb ?? "" } });

agenda.on("ready", async ()=> {
agenda.start()
agenda.purge()
console.log(new Date(), 'agenda started');
})
agenda.on("ready", async () => {
agenda.start();
agenda.purge();
console.log(new Date(), "agenda started");
});
16 changes: 6 additions & 10 deletions src/bot.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import { GatewayIntentBits, Options } from "discord.js"
import { ExtendedClient } from "./structures/Client"
import { GatewayIntentBits } from "discord.js";
import { ExtendedClient } from "./structures/Client";

export const client: ExtendedClient = new ExtendedClient({
shards: 'auto',
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildVoiceStates
],
shards: "auto",
intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildVoiceStates],
rest: { timeout: 60000 },
})
});

client.start()
client.start();
22 changes: 11 additions & 11 deletions src/commands/contextmenu/deleteAfter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ import { fetchAllMessages } from "../../utils/FetchAllMessages";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('これ以降を削除')
.setName("これ以降を削除")
.setType(ApplicationCommandType.Message)
.setDefaultMemberPermissions(0)
.setDMPermission(false),
execute: async ({ interaction }) => {
if (!interaction.isMessageContextMenuCommand()) return
await interaction.deferReply({ ephemeral: true })
if (!interaction.isMessageContextMenuCommand()) return;
await interaction.deferReply({ ephemeral: true });

const message = interaction.targetMessage
const { channel } = message
const after: Snowflake | undefined = message.id
const message = interaction.targetMessage;
const { channel } = message;
const after: Snowflake | undefined = message.id;

const messages = await fetchAllMessages(channel, { after })
await deleteMultiMessages(channel, messages)
const messages = await fetchAllMessages(channel, { after });
await deleteMultiMessages(channel, messages);

await reply(interaction, "メッセージを削除しました")
}
})
await reply(interaction, "メッセージを削除しました");
},
});
22 changes: 11 additions & 11 deletions src/commands/contextmenu/deleteBefore.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,21 @@ import { fetchAllMessages } from "../../utils/FetchAllMessages";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('これ以前を削除')
.setName("これ以前を削除")
.setType(ApplicationCommandType.Message)
.setDefaultMemberPermissions(0)
.setDMPermission(false),
execute: async ({ interaction }) => {
if (!interaction.isMessageContextMenuCommand()) return
await interaction.deferReply({ ephemeral: true })
if (!interaction.isMessageContextMenuCommand()) return;
await interaction.deferReply({ ephemeral: true });

const message = interaction.targetMessage
const { channel } = message
const before: Snowflake | undefined = message.id
const message = interaction.targetMessage;
const { channel } = message;
const before: Snowflake | undefined = message.id;

const messages = await fetchAllMessages(channel, { before })
await deleteMultiMessages(channel, messages)
const messages = await fetchAllMessages(channel, { before });
await deleteMultiMessages(channel, messages);

await reply(interaction, "メッセージを削除しました")
}
})
await reply(interaction, "メッセージを削除しました");
},
});
15 changes: 7 additions & 8 deletions src/commands/contextmenu/edit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,17 @@ import { reply } from "../../utils/Reply";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('メッセージを編集')
.setName("メッセージを編集")
.setType(ApplicationCommandType.Message)
.setDefaultMemberPermissions(0)
.setDMPermission(false),
execute: async ({ interaction, args }) => {
if (!interaction.isMessageContextMenuCommand()) return
if (!interaction.isMessageContextMenuCommand()) return;

const message = interaction.targetMessage
const message = interaction.targetMessage;

if (!message.editable) return reply(interaction, 'このメッセージは編集できません')
if (!message.editable) return reply(interaction, "このメッセージは編集できません");


await interaction.showModal(editModal.build({ message }))
}
})
await interaction.showModal(editModal.build({ message }));
},
});
19 changes: 9 additions & 10 deletions src/commands/contextmenu/fix_archive.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
import { ApplicationCommandType, ContextMenuCommandBuilder, Embed, EmbedBuilder } from "discord.js";
import { ContextMenu } from "../../structures/ContextMenu";
import editModal from "../../components/modal/editModal";
import { reply } from "../../utils/Reply";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('/archiveを修正')
.setName("/archiveを修正")
.setType(ApplicationCommandType.Message)
.setDefaultMemberPermissions(0)
.setDMPermission(false),
execute: async ({ interaction, args }) => {
if (!interaction.isMessageContextMenuCommand()) return
if (!interaction.isMessageContextMenuCommand()) return;

const message = interaction.targetMessage
const message = interaction.targetMessage;

const embed_old: Embed = message.embeds[0]
const embed_old: Embed = message.embeds[0];

const embed: EmbedBuilder = new EmbedBuilder(embed_old.toJSON());

if (!message.editable || !embed_old?.description) return reply(interaction, 'このメッセージは編集できません')
if (!message.editable || !embed_old?.description) return reply(interaction, "このメッセージは編集できません");

embed.setDescription(embed_old?.description.replace(/\[\\?\# /g, "[_#_ "))
embed.setDescription(embed_old?.description.replace(/\[\\?\# /g, "[_#_ "));

message.edit({ embeds: [embed] });

reply(interaction, '修正が完了しました');
}
})
reply(interaction, "修正が完了しました");
},
});
17 changes: 9 additions & 8 deletions src/commands/contextmenu/resetNickname.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@ import { reply } from "../../utils/Reply";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('ニックネームをリセット')
.setName("ニックネームをリセット")
.setType(ApplicationCommandType.User)
.setDefaultMemberPermissions(PermissionFlagsBits.ChangeNickname)
.setDMPermission(false),
execute: async ({ interaction }) => {
if (!interaction.isUserContextMenuCommand()) return
if (!interaction.isUserContextMenuCommand()) return;

const member = interaction.targetMember as GuildMember
const member = interaction.targetMember as GuildMember;

await member.setNickname(null)
.then(async () => await reply(interaction, 'ニックネームをリセットしました'))
.catch(async () => await reply(interaction, 'ニックネームを変更できませんでした'))
}
})
await member
.setNickname(null)
.then(async () => await reply(interaction, "ニックネームをリセットしました"))
.catch(async () => await reply(interaction, "ニックネームを変更できませんでした"));
},
});
41 changes: 27 additions & 14 deletions src/commands/contextmenu/transferContext.ts
Original file line number Diff line number Diff line change
@@ -1,28 +1,41 @@
import { ApplicationCommandType, CategoryChannel, ChannelType, ContextMenuCommandBuilder, discordSort, GuildTextBasedChannel, NewsChannel, TextChannel } from "discord.js";
import {
ApplicationCommandType,
CategoryChannel,
ChannelType,
ContextMenuCommandBuilder,
discordSort,
GuildTextBasedChannel,
NewsChannel,
TextChannel,
} from "discord.js";
import { ContextMenu } from "../../structures/ContextMenu";
import transferListImmed from "../../components/selectmenu/transferListImmed";
import { reply } from "../../utils/Reply";

export default new ContextMenu({
data: new ContextMenuCommandBuilder()
.setName('メッセージを転送')
.setName("メッセージを転送")
.setType(ApplicationCommandType.Message)
.setDefaultMemberPermissions(0)
.setDMPermission(false),
execute: async ({ interaction }) => {
if (!interaction.isMessageContextMenuCommand()) return
if (!interaction.isMessageContextMenuCommand()) return;

const channel = interaction.channel as GuildTextBasedChannel
const category = channel?.parent?.parent ?? channel?.parent as CategoryChannel
const channels = category?.children.cache ?? interaction.guild?.channels.cache
.filter((channel): channel is TextChannel | NewsChannel =>
!channel.parent && (channel.type == ChannelType.GuildText || channel.type == ChannelType.GuildNews))
const channel = interaction.channel as GuildTextBasedChannel;
const category = channel?.parent?.parent ?? (channel?.parent as CategoryChannel);
const channels =
category?.children.cache ??
interaction.guild?.channels.cache.filter(
(channel): channel is TextChannel | NewsChannel =>
!channel.parent &&
(channel.type == ChannelType.GuildText || channel.type == ChannelType.GuildAnnouncement)
);

if (!channels) return
if (!channels) return;

await reply(interaction, {
content: '転送先のチャンネルを選択してください',
components: transferListImmed.build([...discordSort(channels).values()], interaction.targetMessage)
})
}
})
content: "転送先のチャンネルを選択してください",
components: transferListImmed.build([...discordSort(channels).values()], interaction.targetMessage),
});
},
});
Loading