UNPKG

botads-api

Version:

Module to earn money on your projects by displaying ads

279 lines (215 loc) â€ĸ 8.25 kB
# Bot-Ads **Bot-Ads** is a library that allows you to share your projects and/or earn money by displaying ads in your Discord bot. With Bot-Ads you can generate advertisement links, create attractive ad embeds, and track ad clicks using unique codes. ## Installation Install the package via npm: ```bash npm install botads-api ``` ## Usage Below is an example of how to integrate Bot-Ads into your Discord bot: ```js const { Client, GatewayIntentBits } = require('discord.js'); const BotAds = require('botads-api'); // Initialize BotAds with the user ID that will receive the ad revenue. // Optionally, enable debug mode by passing 'true' as the second parameter. const adSystem = new BotAds("123456789", true); const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent ] }); client.once('ready', () => { console.log(`✅ Logged in as ${client.user.tag}`); }); client.on('messageCreate', async (message) => { // Ignore bot messages and messages outside servers. if (message.author.bot || !message.guild) return; // Command to retrieve an ad link. if (message.content.toLowerCase() === '!ad-link') { const adLinkData = await adSystem.getAdLink('uniqueCode'); if (adLinkData && adLinkData.success) { message.channel.send(`🔗 Ad Link: ${adLinkData.redirect_url}`); } else { message.channel.send(":x: Unable to retrieve an ad link at the moment."); } } // Command to generate an ad embed. if (message.content.toLowerCase() === '!ad-embed') { const adEmbedData = await adSystem.generateAdEmbed(0x0099FF, 'uniqueCode'); if (adEmbedData && adEmbedData.success) { message.channel.send({ embeds: [adEmbedData.embed] }); } else { message.channel.send(":x: Unable to generate an ad embed at the moment."); } } // Command to check if the ad has been clicked. if (message.content.toLowerCase() === '!check-ad') { const checkData = await adSystem.checkCode('uniqueCode'); if (checkData && checkData.success) { if (checkData.clicked) { message.channel.send("✅ The ad has been clicked!"); } else { message.channel.send("â„šī¸ The ad has not been clicked yet."); } } else { message.channel.send(":x: Unable to verify the ad click status at the moment."); } } }); client.login('YOUR_BOT_TOKEN'); ``` --- ## API Methods ### `getAdLink(code?: string): Promise<AdLinkResponse | null>` Retrieves an advertisement link from the Bot-Ads API. - **Parameters:** - `code` (optional): A tracking code to associate with the advertisement. - **Returns:** - On success: ```js { success: true, ad_id?: string, description?: string, redirect_url?: string } ``` - On failure: `null` --- ### `generateAdEmbed(color?: number, code?: string): Promise<AdEmbedResponse>` Generates an embed containing the advertisement. - **Parameters:** - `color` (optional): The embed color as a hexadecimal number (default is `0x0099FF`). - `code` (optional): A tracking code to associate with the advertisement. - **Returns:** - On success: ```js { success: true, link?: string, embed?: object } ``` - On failure: ```js { success: false, message: "Error message" } ``` --- ### `checkCode(code: string): Promise<CheckCodeResponse | null>` Checks if a user has clicked on the advertisement associated with the provided tracking code. - **Parameters:** - `code`: The tracking code to verify. - **Returns:** - On success: ```js { success: true, clicked?: boolean } ``` - On failure: `null` --- ### `setDebug(value: boolean): void` Enables or disables debug mode. - **Parameters:** - `value`: `true` to enable debug mode, `false` to disable it. --- ### `getUserId(): string` Returns the user ID that was used to initialize BotAds. --- ## Complete Example Below is a complete example demonstrating all available functions of Bot-Ads: ```js const { Client, GatewayIntentBits } = require('discord.js'); const BotAds = require('botads-api'); // Initialize the Discord client with necessary intents. const client = new Client({ intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent ] }); // Initialize BotAds with the user ID that will receive the revenue and enable debug mode. const adSystem = new BotAds("123456789", true); client.once('ready', () => { console.log(`✅ Logged in as ${client.user.tag}`); }); client.on('messageCreate', async (message) => { // Ignore bot messages and messages outside a server. if (message.author.bot || !message.guild) return; // Command to retrieve an ad link. if (message.content.toLowerCase() === '!ad-link') { try { const adLinkData = await adSystem.getAdLink('uniqueCode'); if (adLinkData && adLinkData.success) { message.channel.send(`🔗 Ad Link: ${adLinkData.redirect_url}`); } else { message.channel.send(":x: Unable to retrieve an ad link at the moment."); } } catch (error) { console.error("Error with getAdLink:", error); message.channel.send(":x: An error occurred while retrieving the ad link."); } } // Command to generate an ad embed. if (message.content.toLowerCase() === '!ad-embed') { try { const adEmbedData = await adSystem.generateAdEmbed(0x0099FF, 'uniqueCode'); if (adEmbedData && adEmbedData.success) { message.channel.send({ embeds: [adEmbedData.embed] }); } else { message.channel.send(":x: Unable to generate an ad embed at the moment."); } } catch (error) { console.error("Error with generateAdEmbed:", error); message.channel.send(":x: An error occurred while generating the ad embed."); } } // Command to check if the ad has been clicked. if (message.content.toLowerCase() === '!check-ad') { try { const checkData = await adSystem.checkCode('uniqueCode'); if (checkData && checkData.success) { if (checkData.clicked) { message.channel.send("✅ The ad has been clicked!"); } else { message.channel.send("â„šī¸ The ad has not been clicked yet."); } } else { message.channel.send(":x: Unable to verify the ad click status at the moment."); } } catch (error) { console.error("Error with checkCode:", error); message.channel.send(":x: An error occurred while checking the ad click."); } } }); client.login('YOUR_BOT_TOKEN'); ``` --- ## Important Notices - **User ID**: Replace `"123456789"` with the actual user ID that will receive the ad revenue. If the user ID is incorrect, please [contact support](https://discord.gg/G6kDDjYhtq). - **Tracking Codes**: Use unique tracking codes (e.g., `uniqueCode`) to monitor user interactions with your ads. - **Embed Color**: You can specify the embed color as a hexadecimal number (e.g., `0x0099FF`). A default value of `0x0099FF` is used if no color is provided. - **Debug Mode**: Enable debug mode for more detailed error logging by passing `true` as the second argument when creating a new instance of BotAds. --- ## Documentation For further details on all functionalities, please refer to our [documentation](https://wiki.bot-ads.ovh/). --- ## Author **Bot-Ads** is developed and maintained by **milleniumishere**. --- ## Contact - **Discord Support Server:** [Join Here](https://discord.gg/G6kDDjYhtq) - **Email:** [support@bot-ads.ovh](mailto:support@bot-ads.ovh) --- ## License This library is licensed under the **MIT License**. See the [LICENSE](./LICENSE) file for more details. --- This README should give users a clear understanding of how to install, configure, and utilize the Bot-Ads module within their Discord bot projects.