0.0.19 • Published 7 days ago

kakashi-test-handler v0.0.19

Weekly downloads
-
License
-
Repository
github
Last release
7 days ago

KAKASHI SELF HANDLER

Dev info

Status: On test mode Mongo: Removed Cooldown not working on buttons Fixed

Bug Found? Please contact us or issue on github you can also provide suggestions

Installation

  npm install kakashi-self-handler

Documentation

  • Index.js
const { Client, Partials, GatewayIntentBits } = require("discord.js");

/// Requiring the handler
const {Kakashi} = require('kakashi-self-handler');

/// creating the client
const client = new Client(
  {
    intents: [GatewayIntentBits.Guilds,GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMembers],
    partials: [Partials.Channel, Partials.Message, Partials.User, Partials.GuildMember, Partials.Reaction],
    allowedMentions: {
      parse: ['users']
    },
  }
);

const clientID = client.user.id;
/// Using the Handlers

client.kakashi = Kakashi.Create(client, {
  vote: {
    url: 'https://top.gg/bot/760923630212874251/vote', // your bot vote url
    webhook: {
      token: 'topggwebtoken', // your topgg token
      path: '/dblwebhook', // web path
      port: 8081, // web port
      auth: 'kakashi-self-handler' // web auth
    },
    // vote embed is for customizing vote embed message which will be sent when user is required to vote before using command
    embed: {
      enabled: true, // To use embed or not
      message: 'Hey please vote first', // your custom vote message to send this will overwrite emoji you should use emoji inside message if you want
      emoji: '<:emoji_24:959075020217405550>', //custom emoji for default embed message
      footer: false, //whether to send footer
    },
    // vote button is for customizing vote button emoji and whether to send the button or not
    button: {
      enabled: true, // whether to send vote url button with mesage
      emoji: '1158760255476486225' // custom emoji id for button
    }
  },
  Events: {
    path: './src/events/' // your path to events
  },
  GuildCommands : {
    path: './src/scommands', // your path to guildcommands
    clientId: '1230503138629259418', // your bot id
    guildId: '761857421701414912', // your guild id to register slash commands in that guild
    token: process.env.hyperzone // your bot token
  },
  MessageCommands: {
    path: './src/commands' // your path to Messagecommand
  },
  // cooldown is for customizing cooldown message and button
  cooldown: {
      // embed is for customizing your embed or rather not to send embed
    embed: {
      enabled: true, // To use embed or not
      message: 'Please wait remainingtime to use this command again', // your custom cooldown message to send this will overwrite emoji you should use emoji inside message if you want
// please use remainingtime text to send time
      footer: true, //whether to send footer
      emoji: '<:emoji_24:959075020217405550>', // custom emoji for default embed message
    },
    // cooldown button is for customizing support server button emoji and whether to send the button or not
    button: {
      enabled: true, // enable support server button or not
    },
  },
  //support is for defining your server url and support server button customization
  support: {
    server: 'https://discord.gg/mTxBX87Bdr', // your support server url
    button: {
      enabled: true, // here enabling this button the handler will send support server button on perms error and vote message
      emoji: '1128799007452430387' // custom emoji id for button
    }
  },
  Components: {
    path: './src/interaction'
  },
})
client.login(process.env.TOKEN)
  • Interaction Event
module.exports = {
  name: "interactionCreate",
  async execute(interaction, client) {
    try{
    await client.kakashi.Interaction(interaction)
    } catch(err) {
      return console.log(err)
    }
  },
};
  • Message Event
const prefix = '!'; /// prefix for bot
module.exports = {
  name: "messageCreate",
  async execute(message, client) {
    try{
    await client.kakashi.MessageEvents(message, prefix)
    } catch(err) {
      return console.log(err)
    }
  },
};
  • Slash command Example
const {SlashCommandBuilder} = require('discord.js')
module.exports = {
    data: new SlashCommandBuilder()
        .setName('ping')
        .setDescription('Get pong reply'),
        category: 'Bot', /// optional can be usefull in help command
        cooldown: '7', /// 7 second cooldown the cooldown is optional.
        voteonly: true, /// sets this command to only run when user has voted
        defer: true, /// whether to defer reply or not
        ephemeral: true, //if defer that ephemeral true or false
    async execute(interaction, client) {
        interaction.editReply({
            content: 'pong',
            ephemeral: true
        })
    }
}
  • Message Command Example
const { EmbedBuilder } = require('discord.js')
module.exports = {
  name: 'embed',
  description: 'Return embed',
  aliases: ['embed-create', 'em'],
  botPerms: ['EmbedLinks'],
  userPerms: ['ManageMessages'],
  category: 'Bot',
  cooldown: '9',
  voteonly: false, /// it will run if user hasnt voted
  async execute(message, client, args) {
    const embed = new EmbedBuilder()
      .setColor('Green')
      .setTitle(`${message.author.username}`)
      .setDescription(`this is an embed`);
    await message.reply({
      embeds: [embed],
    })

  }
}
  • Button Example
module.exports = {
  data: {
    name: 'ok-button', /// customID 
    cooldown: '15' /// 15 second cooldown the cooldown is optional.
    voteonly: true, /// it wil only run this button if the user has voted
  },
  async execute(interaction, client) {
    interaction.reply({
      content: 'This button is working',
      ephemeral: true
    })
  }
}

Information

For other components like select menu and other handler same use customID on name

The handler only handles mongo schemas so you need to connect to mongo yourself

If you dont want cooldowns on your command dont put the cooldown: '7' part on your commands, buttons

Screenshots

  • vote button with everything customized npm.io
  • Normal vote message without embed and without server button

npm.io

  • Vote message with embed and without server button

npm.io

  • Cooldown Embed without server button

Cooldown embed screenshot

  • Permission Message and without server button

npm.io

Authors

Discord

Support

Discord

0.0.19

7 days ago

0.0.17

8 days ago

0.0.18

8 days ago

0.0.12

9 days ago

0.0.13

9 days ago

0.0.14

9 days ago

0.0.15

9 days ago

0.0.16

9 days ago

0.0.10

10 days ago

0.0.11

10 days ago

0.0.9

10 days ago

0.0.8

10 days ago

0.0.7

10 days ago

0.0.6

15 days ago

0.0.5

18 days ago

0.0.4

18 days ago

0.0.2

19 days ago

0.0.1

23 days ago