UNPKG

ultrax

Version:

UltraX Package is a unique package that allows you to create cool things using simple functions and make it faster, for example there is an invite logger, discord buttons paginator, etc...

434 lines (280 loc) â€ĸ 11.2 kB
<div align="center"> <h1>UltraX</h1> </div> ### â„šī¸ || About <div align="center"> <p>UltraX a unique package that gives you multiple useful usages using functions and events.</p> <p> <a href="https://www.npmjs.com/package/discord-buttons"><img src="https://img.shields.io/npm/v/ultrax?maxAge=3600" alt="NPM version" /></a> <a href="https://www.npmjs.com/package/discord-buttons"><img src="https://img.shields.io/npm/dt/ultrax?maxAge=3600" alt="NPM downloads" /></a> </p> <p> <a href="https://nodei.co/npm/ultrax/"><img src="https://nodei.co/npm/ultrax.png?downloads=true&stars=true" alt="NPM info" /></a> </p> </div> ## đŸ“Ĩ || Installation To install UltraX package you need: - You need to install [**Node.js**](https://nodejs.org/en/download/). - You need to install [**discord.js**](https://npmjs.com/package/discord.js). - You need to install [**node-fetch**](https://npmjs.com/package/node-fetch) to use the [`Bin()`](https://npmjs.com/package/ultrax#welcomeImage) and [`Wikipedia()`](https://npmjs.com/package/ultrax#wikipedia) functions. - You need to install [**canvas**](https://npmjs.com/package/canvas) to use the [`welcomeImage()`](https://npmjs.com/package/ultrax#welcomeimage). Then you can open your application's terminal and type: ``` $ npm install ultrax ``` ## 📜 || Table of content ### functions: - [`sleep()`](https://www.npmjs.com/package/ultrax#sleep) - Functions that creates timeout easily and fast. - [`passGen()`](https://www.npmjs.com/package/ultrax#passgen) - Function to create passwords made by letters and numbers randomly with specified length. - [`bin()`](https://www.npmjs.com/package/ultrax#bin) - Function that allows you to bin codes. - [`ButtonPaginator()`](https://www.npmjs.com/package/ultrax#button-paginator) - Function to create embed pages using buttons easily. - [`welcomeImage()`](https://npmjs.com/package/ultrax#welcomeimage) - Function that creates a welcome image fully customizable using canvas. - [`Wikipedia()`](https://npmjs.com/package/ultrax#wikipedia) - Function that allows users to search wikipedia and return results for a query. ### Events: - [`inviteJoin`](https://www.npmjs.com/package/ultrax#invite-logger-event) allows you to get some informations about the invite such as the inviter, etc... <hr> <br> <br> # || Functions: ## sleep sleep is a simple function, where is make it easier and faster to make a timeout in your code. **Example:** ```js // Defining the package const ultrax = require('ultrax') // Getting the sleep function from the package const sleep = ultrax.sleep // this will log "Start!" once i run the application console.log('Start!') // using the package sleep function to set a timeout sleep(5000) // sleep(milliseconds) // after the 5 seconds (5000 milliseconds) it will log "5 Seconds passed" console.log('5 Seconds passed') ``` > sleep(ms: Number) ## passGen this is a simple function that can generate passwords using letters and numbers and the password length is custom so you can change it to any length you want! **Example:** ```js // Defining the package const ultrax = require('ultrax') // getting the passGen function from the package const passGen = ultrax.passGen // passGen(6) that mean it will generate a password from 6 characters. console.log(passGen(6)) ``` > passGen(Length: Number) ## Bin This function is used to bin your code. **Example:** ```js // Defining the package const ultrax = require('ultrax') // if it's empty it returns a message saying "what do you want to bin?" if (!args.join(' ')) return message.channel.send('What do you want to bin?'); // else if everything works fine, we will make a new varible called "bin" else { // it will be used to bin the args.join(' ') also known as the message.content const bin = await ultrax.bin(args.join(' '), true); // then here we will send the results! console.log('Here i binned the code ' + bin) } ``` > bin(String) `ultrax.bin(args.join(' '), true/false)` if its true that mean the bin is editable, else if its false that means no one can edit it. ## Button Paginator Button Paginator function allows you to create embed pages easily and fast. > Styles: `red`, `grey`, `blurple`, `green`, `url` **Example:** ```js // Defining the package const ultrax = require('ultrax') // getting the MessageEmbed from discord.js const { MessageEmbed } = require("discord.js") // creating embeds const embed1 = new MessageEmbed() .setTitle("1st page embed"); const embed2 = new MessageEmbed() .setTitle("2nd page embed"); const embed3 = new MessageEmbed() .setTitle("3rd page embed"); const embed4 = new MessageEmbed() .setTitle("4th page embed"); // creating the buttons pages await ultrax.ButtonPaginator(message, [embed1, embed2, embed3, embed4], [{ style: 'red', label: 'Backwards', emoji: { name: '◀', animated: false }, id: 'back' // don't change this line }, { style: 'green', label: 'Forward', emoji: { name: 'â–ļ', animated: false }, id: 'next' // don't change this line } ]); ``` > Don't change the id of the buttons otherwise, don't expect it to work. ## welcomeImage This function is used to create a welcome image using [canvas](https://npmjs.com/package/canvas), fully customizable and fast! The function returns a [Promise(\<Attachment\>)](https://discord.js.org/#/docs/main/stable/class/DataResolver?scrollTo=resolveFileAsBuffer) to Buffer the image and make it an [Attachment](https://discord.js.org/#/docs/main/stable/class/MessageAttachment), so you need to await it. ```js await welcomeImage() ``` As we mentioned before its fully customizable, so lets see the parameters and the options available. **Parameters (Required)**: - background - avatar - text_1 (Title) - text_2 (Subtitle) - text_3 (Footer) - color **Options (Optional):** - `font` { default: "San Serif" } - `attachmentName` { default: "welcome" } - `text1_fontSize` { default: "72 pixels" } - `text2_fontSize` { default: "42 pixels" } - `text3_fontSize` { default: "32 pixels" } <br> So now lets talk about the correct Syntax for it! ```js await welcomeImage(background, avatar, text_1, text_2, text_3, color) ``` > The background must be a PNG image, local images and URL images are supported. > The color must be a HEX color's code. As example this HEX:[`#FFFFFF`](https://www.color-hex.com/color/ffffff) <br> In case you will use the options: > You don't have to use all options you can just use the ones you want to use, and you are not obligate of using them at all they are **optional**. ```js await welcomeImage(background, avatar, text_1, text_2, text_3, color { font: String, attachmentName: String, text1_fontSize: Number, text2_fontSize: Number, text3_fontSize: Number }) ``` > the `attachmentName` is always PNG, so whatever name you will put it will end with `.png` automatically. > > Example: > attachmentName: "Hello" > returns: "Hello.png" **Example:** ```js // Getting registerFont() from canvas const { registerFont } = require('canvas') // Registering the font registerFont('ShadowsIntoLight-Regular.ttf', { family: "Shadows Into Light" }); ``` > To use custom fonts, you need to install the font (ttf/otf) yourself and use [`registerFont()`](https://github.com/Automattic/node-canvas#registerfont) to register the font and be able to use it. > >This is an example font, if you used this without install the font you will get an error. <br> <br> After all these explanations and examples, lets see a full and nice welcome image function working inside of an [`guildMemberAdd`](https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildMemberAdd) event! **Example:** ```js // defining the package const ultrax = require('ultrax') // Getting registerFont() from canvas const { registerFont } = require('canvas') // Registering the custom font registerFont('ShadowsIntoLight-Regular.ttf', { family: "Shadows Into Light" }); // Event Client.on('guildMemberAdd', async member => { // defining the background as bg let bg = 'https://cdn.discordapp.com/attachments/850808002545319957/859359637106065408/bg.png' // defining the member's avatar with "PNG" as format. let avatar = member.user.displayAvatarURL({ format: "png" }) // defining text_1 (title) let text1 = "welcome" // defining text_2 (subtitle) let text2 = member.user.tag // defining text_3 (footer) let text3 = `You're the ${member.guild.memberCount}th member` // defining the color, here its white let color = '#ffffff' // defining the options and setting them (Those are optional) const options = { font: "Shadows Into Light", attachmentName: `welcome-${member.id}`, text1_fontSize: 80, text2_fontSize: 50, text3_fontSize: 30 } // creating the image const image = await ultrax.welcomeImage(bg, avatar, text1, text2, text3, color, options) //channel#send(image) }); ``` ## Sussybaka Makes a sussybaka image with a image url **Example** ```js const ultrax = require("ultrax"); const { Client } = require("discord.js"); const client = new Client(); client.on("message", (message) => { if(message.content === "!sussybaka"){ const theSussyBaka = new ultrax.sussyBaka(image); //It will return a Discord attachment! const Image = theSussyBaka.get(); return message.channel.send(Image); } }); ``` ### Output ![sussybaka](https://cdn.discordapp.com/attachments/716221150929092648/860530758263635978/love.png) ## wikipedia A simple function to allow you to fetch a topic from wikipedia **Example** ```js // defining the package const ultrax = require('ultrax') // we will be searching earth let query = 'earth' // Inistigating the wikipedia class const res = new ultrax.Wikipedia({ message: message, // The message color: "RED", // Color of embed that will be sent query: query // what the search query is }) res.fetch() // fetching the result from wikipedia ``` <br> # Events: ## Invite Logger Event This event is for logging invite uses. This is same as [`guildMemberAdd`](https://discord.js.org/#/docs/main/stable/class/Client?scrollTo=e-guildMemberAdd) event but this is custom event which has 3 parameters: - member - invite - inviter **Example:** ```js // Defining the package const ultrax = require("ultrax") //defining discord const discord = require('discord.js') // new discord client const client = new discord.Client() // To Get The new event working we need to initilize it by: ultrax.inviteLogger(client) // now below event will work client.on('inviteJoin', (member, invite, inviter) => { // results console.log(`${member.user.tag} joined using invite code ${invite.code} from ${inviter.tag}. Invite was used ${invite.uses} times since its creation.`) }); ``` > `ultrax.inviteLogger(client) ` put here your discord client. without it, the event won't emit. ----- ## ⎝đŸ”ļ⎠ Contact us In case you have idea's to improve the package, or maybe you found some bugs or you need help, you can contact us from our discord server! <a href="https://discord.gg/Qk6j2fpeat"><img src="https://discord.com/api/guilds/716216764769239083/widget.png?style=banner1"></a>