https://github.com/dastormer/starify-discord
⭐Customizable framework to create and manage starboards with discord.js⭐
https://github.com/dastormer/starify-discord
customizable discord discord-bot discord-starboards discordjs framework fun starboard
Last synced: about 1 year ago
JSON representation
⭐Customizable framework to create and manage starboards with discord.js⭐
- Host: GitHub
- URL: https://github.com/dastormer/starify-discord
- Owner: DaStormer
- License: mit
- Created: 2021-11-06T21:21:53.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-02-24T01:14:35.000Z (about 3 years ago)
- Last Synced: 2025-03-12T12:17:44.597Z (about 1 year ago)
- Topics: customizable, discord, discord-bot, discord-starboards, discordjs, framework, fun, starboard
- Language: JavaScript
- Homepage: https://starify-discord.js.org
- Size: 1 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🌟 Starify Discord 🌟
starify-discord is a node.js module with a customizable framework that makes it easy to create and manage starboards!
[Click here to view on NPM!](https://www.npmjs.com/package/starify-discord)
## ✨ Features
- very customizable!
- very easy to use!
- support for multiple databases (SQLite, Postgres, MySQL, Microsoft SQL Server, MariaDB)!
- ability to have "secret" starboards that only work in specific channels!
- ability to restrict starboards to members with a certain role or ignore a certain role!
- and more!
## Installation
```
npm install starify-discord
```
## Example Usage
### Setup:
```js
const Discord = require("discord.js");
const { StarboardsManager } = require("starify-discord");
const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILDS, Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILD_MESSAGE_REACTIONS] });
client.starboardManager = new StarboardsManager(client, {
storage: {
type: "sqlite",
file: "./starboards.sqlite",
name: "database",
username: "user",
password: "password",
host: "localhost",
},
default: {
emoji: "⭐",
color: "#f0ec0e",
selfStar: false,
botStar: false,
ignoreMembers: null,
ignoreMessages: null,
},
});
```
### Create a starboard:
```js
client.starboardManager.create({
channelID: message.channelId,
emoji: "⭐",
threshold: 10,
color: "#f0ec0e",
selfStar: false,
botStar: false,
ignoreMembers: null,
ignoreMessages: null,
});
```
### Delete a starboard:
```js
const starboardID = client.starboardManager.starboards.find(starboard => starboard.channelID == "" && starboard.emoji == "").id;
client.starboardManager.delete(starboardID);
```
### Create a secret starboard:
This `ignoreMessages` function will ignore all messages that aren't from the specified channels!
```js
client.starboardManager.create({
channelID: message.channelId,
emoji: "⭐",
threshold: 10,
color: "#f0ec0e",
selfStar: false,
botStar: false,
ignoreMembers: null,
ignoreMessages: (message => !["channel 1 ID, "channel 2 ID"].includes(message.channelId)),
});
```
### Blacklist a role from starboard:
This `ignoreMembers` function will not count star reactions from members who have the specified role!
```js
client.starboardManager.create({
channelID: message.channelId,
emoji: "⭐",
threshold: 10,
color: "#f0ec0e",
selfStar: false,
botStar: false,
ignoreMembers: (member => member.roles.cache.has("role ID")),
ignoreMessages: null,
});
```
### Events:
```js
// Fired when a message is added to a starboard
client.starboardManager.on("starboardMessagePosted", (message, starboard) => {
console.log(message); // the message that was posted to the starboard channel
console.log(starboard); // the starboard that triggered this
}
// Fired when a starboard is created
client.starboardManager.on("starboardCreated", (starboard) => {
console.log(starboard); // the starboard that was created
}
// Fired when a starboard is deleted
client.starboardManager.on("starboardDeleted", (starboard) => {
console.log(starboard); // the starboard that was deleted
}
```
## Coming Soon!
- ability to edit starboard options easily
- leaderboard for top starboard messages