boton-luxz
v1.0.1
Published
Funcion para boton de Seguridad HomeBase
Downloads
8
Maintainers
Readme
Nuggies
A utility package for Discord Bots!
Installation
Table of content:
- installation
- database connect
- Giveaways
- Button Roles
- Dropdown Roles
- handle interactions
- applications
npm:
npm i nuggies
yarn:
yarn add nuggies
connect to database
features like giveaways require a database connection, you can connect to database using
Nuggies.connect(mongodburi)
params
uri - the mongoDB connection string
Giveaways
click here for giveaways bot code using nuggies package
Preview
Usage
connect
You can connect to the mongoDB database
const Nuggies = require('nuggies');
Nuggies.connect(mongURI);
params
mongoURI: the mongo URI
Create
You can create giveaways with .create
Example code can be found below
const Nuggies = require('nuggies')
Nuggies.giveaways.create({
message: message,
prize: 'test',
host: message.author.id,
winners: 1,
endAfter: '10s',
requirements: { enabled: false },
channel: message.channel.id,
});
options
message: Discord Message
prize: String, prize of the giveaway
host: the host of the giveaway
winners: Number, the winners count
endAfter: String, The time after the giveaway will end
requirements: Object, the requirements for the giveaway. example: requirements: {enabled: true, roles: ['role']}
channel: the channel ID the embed will be sent to
drop
you can create drops with .drop
, first to click the button gets the win!
example:
Nuggies.giveaways.drop({
message: message,
prize: 'test',
channel: message.channel.id,
host: message.author.id,
});
options
message: Discord Message
prize: String, prize of the giveaway
host: the host of the giveaway
channel: The channel where the drop will be sent
End
End is a function which will help you end giveaways easily
You can end giveaways with .end
Nuggies.giveaways.end(message, data, giveawaymsg);
params
message: Discord Message
data: data from the database, can be obtained by using the .getByMessageID
property
giveawaymsg: fetched giveaway message
Reroll
You can reroll giveaways easily with .reroll
You can simply use this function by writing a line of code.
(async () => {
const win = await Nuggies.giveaways.reroll(client, messageID);
}()
params
client: The Discord Client
messageID: The message ID of the giveaway
startTimer
you can start the timer again after restart, note that it automatically starts the timer when the giveaway start.
You can simply use this function by writing a line of code.
await Nuggies.giveaways.startTimer(message, data);
params
message: Discord Message
data: mongoose document, can be obtained by using .getByMessageID
GotoGiveaway
returns a url button leading to the giveaway.
(async () => {
const button = await Nuggies.giveaways.gotoGiveaway(data);
}()
params:
data: mongoose document, can be obtained by using .getByMessageID
getByMessageID
This gets the mongoose document for the giveaway
(async () => {
const doc = await Nuggies.giveaways.getByMessageID(messageID);
}()
params
messageID: the message ID of the giveaway
startAgain
starts the giveaway again after restart, put this in ready event to start All the giveaways again.
Nuggies.giveaways.startAgain(client)
params
client: Discord Client
Customize Messages
customize the messages that users see
const Nuggies = require('nuggies');
Nuggies.giveaways.Messages(client, {
dmWinner: true,
giveaway: '🎉🎉 **GIVEAWAY MOMENT** 🎉🎉',
giveawayDescription: '🎁 Prize: **{prize}**\n🎊 Hosted by: {hostedBy}\n⏲️ Winner(s): \`{winners}\`\n\nRequirements: {requirements}',
endedGiveawayDescription : '🎁 Prize: **{prize}**\n🎊 Hosted by: {hostedBy}\n⏲️ Winner(s): {winners}',
giveawayFooterImage: 'https://cdn.discordapp.com/emojis/843076397345144863.png',
winMessage: '{winners} you won {prize} Congratulations! Hosted by {hostedBy}',
rerolledMessage: 'Rerolled! {winner} is the new winner of the giveaway!', // only {winner} placeholder
toParticipate: '**Click the Enter button to enter the giveaway!**',
newParticipant: 'You have successfully entered for this giveaway', // no placeholders | ephemeral
alreadyParticipated: 'you already entered this giveaway!', // no placeholders | ephemeral
nonoParticipants: 'There are not enough people in the giveaway!', // no placeholders
nonoRole: 'You do not have the required role(s)\n{requiredRoles}\n for the giveaway!', // only {requiredRoles} | ephemeral
dmMessage: 'You have won a giveaway in **{guildName}**!\nPrize: [{prize}]({giveawayURL})',
noWinner: 'Not enough people participated in this giveaway.', // no {winner} placerholder
alreadyEnded: 'The giveaway has already ended!', // no {winner} placeholder
dropWin: '{winner} Won The Drop!!' // only {winner} placeholder
})
params
dmWinner - Boolean - If bot should dm the winners of giveaway
giveaway - String - Title text of giveaway message
giveawayDescription - String - Giveaway embed description
endedGiveawayDescription - String - Ended giveaway embed description
giveawayFooterImage - String - Image/Gif in embed footer
winMessage - String - Message to send when winner is declared
rerolledMessage - String - Message to send when giveaway is rerolled
toParticipate - String - Instruction on how to participate the giveaway
newParticipant - String - Ephemeral message that participant sees when they participate
alreadyParticipated - String - Ephemeral message that participant sees if they have already participated
nonoParticipants - String - Message when there are not enough participants for giveaway
nonoRole - String - Ephemeral message when participants doesn't have required roles
dmMessage - String - Message to send to winners of giveaway (only works in dmWinner is true
)
noWinner - String - Message when giveaway is ended/rerolled and there are not enough participants
alreadyEnded - String - If giveaway is already ended
dropWin - String - Message sent when drop winner is declared
Placeholders - {guildName}, {prize}, {giveawayURL}, {hostedBy}, {winners}, {requiredRoles}(only works for nonoRole)
Button Roles
click here for fully functional button-roles bot
constructor
constructor. use .setrole() on it to create buttons
const something = new Nuggies.buttonroles().addrole({
color: 'red',
label: 'test',
role: '781061040514269185',
});
options
color: the button color. Optional. Defaults to grey
label: Button label
role: role that would be added on click
emoji: ID of the emoji on the button, optional.
create
creates the button roles
Nuggies.buttonroles.create({
message: message,
role: something, /*buttonroles constructor*/
content: new Discord.MessageEmbed().setTitle('xd').setDescription('xdxd') });
options
message: Discord Message
role: The object recieved from the buttonroles constructor.
content: content, can be a string or a Discord Embed
dropdown roles
constructor. use .setrole() on it to create dropdown options
const something = new Nuggies.dropdownroles().addrole({
label: 'test',
role: 'roleID',
emoji: 'emojiID'
});
options
label: dropdown option label
role: role that would be added on click
emoji: ID of the emoji on the dropdown option, optional.
create
creates the dropdown roles
Nuggies.dropdownroles.create({
message: message,
role: role, /*dropdownroles constructor*/
content: new Discord.MessageEmbed().setTitle('xd').setDescription('xdxd') });
handle interactions
features including buttons and dropdown menus require certain functions to handle the interaction
handleInteractions
Nuggies.handleInteractions(client)
params
client: Discord Client
Applications
Applications help you make your life easier with different types of applications you might have to handle! Here's how you can implement it click here for a fully function applications bot
setup
a pre made template for your bot.
Nuggies.applications.setup(message)
params
message: message callback from message event
addApplication
Creates a application for which anyone can make a response.
Nuggies.applications.addApplication(
{ guildID, questions, name, emoji, channel, description, label, maxApps, cooldown, responseChannelID },
)
params
guildID: The ID of the guild in which the application is to be added
questions: An array of questions to be asked in DM, Example:
js
['How old are you?', 'How much time would you devote to it?'];
name: The name of the application\
emoji: The emoji to be put in the menu
channel: The ID of the channel in which the message is to be sent
description: The description of the application
label: The label of the application in the menu
maxApps: The maximum amount of application 1 can create before it gets accepted/declined
cooldown: The cooldown before creating another response
responseChannelID: The channel to send responses in
deleteApplication
Deletes an application for the guild
Nuggies.applications.deleteapplication({ guildID, name });
params
guildID: The ID of the guild name: The name of the application to remove
create
Creates/Initializes the application system for the guild
Nuggies.applications.create({ guildID, content, client })
params
guildID: The ID of the guild to be created in content: The content of message to be sent in the channel client: The discord.js client used
getDataByGuild
Gets the data from database for you
Nuggies.applications.getDataByGuild(guildID);
params
guildID: The ID of the guild
License
Nuggies npm licensed under the terms of Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International ("CC-BY-NC-SA-4.0"). Commercial use is not allowed under this license. This includes any kind of revenue made with or based upon the software, even donations.
The CC-BY-NC-SA-4.0 allows you to:
- [x] Share -- copy and redistribute the material in any medium or format
- [x] Adapt -- remix, transform, and build upon the material
Under the following terms:
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- NonCommercial — You may not use the material for commercial purposes.
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
More information can be found here.