1.10.0 • Published 5 years ago
paradiseapi.js v1.10.0
Paradise Bot List API Wrapper
The official NPM Module for interacting with the Paradise API
Support
Installation
npm i paradiseapi.js@latest
or
npm i paradiseapi.js@1.10.0
or
npm i paradiseapi.js --save
Hard Coded Install
Append the Line below to your package.json
"paradiseapi.js": "^1.10.0",• Save and profit
Ratelimits
You can POST Server and Shard Count stats once every 5 minutes
Response
Error 429 :
[PBL] (429): Your are being ratelimited, 1 request per 5 mins.Error 404 :
[PBL] (404): Can't find server_count.Error 404 :
[PBL] (404): Authorization header not found.Error 400 :
[PBL] (400): server_count not integer.Error 404 :
[PBL] (404): Bot not found!Error 400 :
[PBL] (400): Incorrect authorization token.Error 404 :
[PBL] (404): Go generate auth token for your bot!Error 400 :
[PBL] (400): shard_count not integer.
Posting Stats
Constructor
PBL(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 PBL = require("paradiseapi.js")
const pbl = new PBL(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) */
pbl.post(client.guilds.cache.size) /* Will `POST` server count*/
//pbl.post(client.shard.count) /* Will `POST` shard count*/
//pbl.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 PBL = require("paradiseapi.js")
const pbl = new PBL("BOT_ID_HERE","AUTH_TOKEN_HERE")
/* Here is where we Post the stats to the Site (Only use one of these) */
pbl.post(client.guilds.cache.size) /* Will `POST` server count*/
//pbl.post(client.shard.count) /* Will `POST` shard count*/
//pbl.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 PBL = require("paradiseapi.js")
const pbl = new PBL("BOT_ID_HERE","AUTH_TOKEN_HERE")
/* Here is where we Post the stats to the Site (Only use one of these) */
pbl.post(client.guilds.cache.size) /* Will `POST` server count*/
//pbl.post(client.shard.count) /* Will `POST` shard count*/
//pbl.post(client.guilds.cache.size, client.shard.count) /* Will `POST` server and shard count*/
}
}Getting Stats
Constructor
PBL()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 PBL = require("paradisebotsapi.js")
const stats = new PBL()
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 PBL = require("paradisebotsapi.js")
const user_stats = new PBL()
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")