darklistown.js
v1.0.0
Published
The main wrapper for Dark Bot List to post server count and shard count
Downloads
4
Readme
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 [email protected]
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.
[ Success ] 200 : [200]: Your Stats Has Been Posted.
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")