1.0.0 • Published 2 years ago
darklistown.js v1.0.0
Dark Bot List API Wrapper
The official NPM Module for interacting with the Paradise API
Support
Installation
npm i darklistown.js@latest
or
npm i darklistown.js@1.0.0
or
npm i darklistown.js --save
Hard Coded Install
Append the Line below to your package.json
"darklistown.js": "^1.0.0",
• Save and profit
Ratelimits
You can POST Server and Shard Count stats once every 5 minutes
Response
Error 429 :
[Dlt] (429): Your are being ratelimited, 1 request per 5 mins.
Error 404 :
[Dlt] (404): Can't find server_count.
Error 404 :
[Dlt] (404): Authorization header not found.
Error 400 :
[Dlt] (400): server_count not integer.
Error 404 :
[Dlt] (404): Bot not found!
Error 400 :
[Dlt] (400): Incorrect authorization token.
Error 404 :
[Dlt] (404): Go generate auth token for your bot!
Error 400 :
[Dlt] (400): shard_count not integer.
Posting Stats
Constructor
DLT(client, token)
Arguments
Parameter | Type | Optional | Description |
---|---|---|---|
token | String | No | The API Auth Token found on your bots page. |
client | Snowflake | No | The Client ID for the bot you want to post stats to. |
Discord.js v12 Example
const Discord = require("discord.js")
const client = new Discord.Client()
const prefix = "!";
const DLT = require("darklistown.js")
const dlt = new DLT(client.user.id,"bot-auth-token")
client.on("ready", () => {
console.log(`Logged in as ${client.user.tag}.`)
setInterval(() => {
/* Here is where we Post the stats to the Site (Only use one of these) */
dlt.post(client.guilds.cache.size) /* Will `POST` server count*/
//dlt.post(client.shard.count) /* Will `POST` shard count*/
//dlt.post(client.guilds.cache.size, client.shard.count) /* Will `POST` server and shard count*/
})
}, 300000) //5 Minutes in MS
client.on("message", message => {
if(message.author.bot) return
if(message.content == prefix + "ping"){
message.reply(`Pong! it took ${client.ws.ping}`)
}
})
client.login("token")
Discord.js v12 Example (Wtih event handler
module.exports = class extends EventClass {
constructor() {
super('ready', {
emitter: 'client',
event: 'ready'
});
}
exec() {
const DLT = require("darklistown.js")
const dlt = new DLT("BOT_ID_HERE","AUTH_TOKEN_HERE")
/* Here is where we Post the stats to the Site (Only use one of these) */
dlt.post(client.guilds.cache.size) /* Will `POST` server count*/
//dlt.post(client.shard.count) /* Will `POST` shard count*/
//dlt.post(client.guilds.cache.size, client.shard.count) /* Will `POST` server and shard count*/
}
}
(Discord Akairo) Example
const Discord = require('discord.js');
const { Listener } = require('discord-akairo');
const request = require('superagent');
const fetch = require("node-fetch")
const Client = new Discord.Client()
module.exports = class ReadyListener extends Listener {
constructor() {
super('ready', {
emitter: 'client',
event: 'ready'
});
}
exec() {
const DLT = require("darklistown.js")
const dlt = new DLT("BOT_ID_HERE","AUTH_TOKEN_HERE")
/* Here is where we Post the stats to the Site (Only use one of these) */
dlt.post(client.guilds.cache.size) /* Will `POST` server count*/
//dlt.post(client.shard.count) /* Will `POST` shard count*/
//dlt.post(client.guilds.cache.size, client.shard.count) /* Will `POST` server and shard count*/
}
}
Getting Stats
Constructor
DLT()
Arguments
Parameter | Type | Optional | Description |
---|---|---|---|
username | String | Yes | The bots username. |
botid | Snowflake | Yes | The bots ID. |
owner | Snowflake | Yes | The bot owners ID. |
additionalOwners | String | Yes | The IDs of all additional owners (if any). |
Prefix | String | Yes | The bots listed prefix(s). |
shortDescription | String | Yes | The bots short description (Shown on cards). |
longDescription | String | Yes | The bots long description (Can be markdown). |
votes | Number | Yes | The bots total number of upvotes. |
usersVoted | String | Yes | IDs of the last 10 users who voted (May return less). |
usersVotedTotal | Number | Yes | Total number of Individual Users who have voted (Each user = 1). |
server | String | Yes | Link to the bots support server. |
website | String | Yes | Link to the bots website. |
github | String | Yes | Link to the bots github. |
donate | String | Yes | Link to donate to the bot. |
tags | String | Yes | List of the bots tags. |
library | String | Yes | The library the bot was made with. |
servers | Number | Yes | Number of total servers the bot is in. |
shards | Number | Yes | Number of total shards the bot has. |
Example
const Discord = require("discord.js")
const client = new Discord.Client()
const prefix = "!";
const DLT = require("darklistown.js")
const stats = new DLT()
client.on("ready", () => { // ready listenerconsole.log(`Logged in as ${client.user.tag}`)})
client.on("message", message => { // message listener
if(message.author.bot) return;
if(message.channel.type !== "text") return;
if(!message.content.toLowerCase().startsWith(prefix)) return;
if(message.content == (prefix + "ping")){
message.reply(`Pong ${client.ws.ping}ms`)
}
if(message.content == (prefix + "stats")){
stats.get(client.user.id, function(data){
let embed = new MessageEmbed()
.setTitle(data.username)
.setDescription(`Vote here: https://paradisebots.net/api/v1/bots/${client.user.id}`)
.addField("Total Votes", data.votes);
message.channel.send(embed)
})
}
})
client.login("token")
Example (GET User)
const Discord = require("discord.js")
const client = new Discord.Client()
const prefix = "!";
const DLT = require("darklistown.js")
const user_stats = new DLT()
client.on("ready", () => { // ready listenerconsole.log(`Logged in as ${client.user.tag}`)})
client.on("message", message => { // message listener
if(message.author.bot) return;
if(message.channel.type !== "text") return;
if(!message.content.toLowerCase().startsWith(prefix)) return;
if(message.content == (prefix + "ping")){
message.reply(`Pong ${client.ws.ping}ms`)
}
if(message.content == (prefix + "stats")){
user_stats.getUser("SOME_USER_ID", function(data){ // USER ID Should be String
let embed = new MessageEmbed()
.setTitle(data.userName)
.setDescription('The info here is fetched from the Paradise Bots API')
.addField("User ID", data.userID, true)
.addField("Bio", data.bio, true)
.addField("Certified User?", data.certifiedUser, true)
.addField("Vote Banned?", data.voteBanned, true)
.setFooter(`Requested By: ${message.author.username}`)
message.channel.send(embed)
})
}
})
client.login("token")
1.0.0
2 years ago