chore: Update JavaScript plugins (#19)

chore: update JavaScript plugins

Co-authored-by: EvolutionX-10 <EvolutionX-10@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2022-08-01 08:50:39 +05:30
committed by GitHub
parent e0ffe1d2b1
commit bd27624e38

66
JavaScript/nsfwOnly.js Normal file
View File

@@ -0,0 +1,66 @@
//@ts-nocheck
/**
* @author: @NeoYaBoi
* @version: 1.0.0
* @description: This plugin checks if the channel is nsfw and responds to user with a specified response if not nsfw
* @license: Null
* @example:
* ```ts
* import { nsfwOnly } from "../plugins/nsfwOnly"; //(change if need be)
* import { sernModule, CommandType } from "@sern/handler";
* export default commandModule({
* plugins: [ nsfwOnly('response', true/false) ],
* execute: (ctx) => {
* //your code here
* }
* })
* ```
*/
import { ChannelType } from "discord.js";
import { PluginType } from "@sern/handler";
function isGuildText(channel) {
return (
channel?.type == ChannelType.GuildPublicThread ||
channel?.type == ChannelType.GuildPrivateThread
);
}
export function nsfwOnly(onFail, ephemeral) {
return {
type: PluginType.Event,
description: "Checks if the channel is nsfw or not.",
async execute(event, controller) {
const [ctx] = event; //checking if command was executed in dms
if (ctx.guild === null) {
await ctx.reply({
content: onFail,
ephemeral,
});
return controller.stop();
} //channel is thread (not supported by nsfw)
if (isGuildText(ctx.channel) == true) {
await ctx.reply({
content: onFail,
ephemeral,
});
return controller.stop();
}
if (!ctx.channel.nsfw) {
//channel is not nsfw
await ctx.reply({
content: onFail,
ephemeral,
});
return controller.stop();
} //continues to command if nsfw
return controller.next();
},
};
}