Skip to content

Commit

Permalink
🎨 [1.4.0] - New embeds design
Browse files Browse the repository at this point in the history
- Updated embeds design + fixed missing icons
- Updated replit settings
- Support for custom status command texts
- Added randomColor setting to config (every embed command will have random color)
- Added more default command aliases
- Fixed a bug - using ,LIST (or any other command with caps) will pc recognize as normal ,list command
- Installed math package (for randomColor setting)
- Fixed a grammar error
- Removed useless constant
- Updated settings organization in config - simple view
- New first auto status message style in setting phase
  • Loading branch information
PetyXbronCZ committed Dec 9, 2021
1 parent 848516b commit 5665e23
Show file tree
Hide file tree
Showing 12 changed files with 215 additions and 81 deletions.
3 changes: 1 addition & 2 deletions .replit
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
run = "npm start"
onBoot = "npm install"
ignoredPaths=[".gitignore"]
language = "js"
language = "nodejs"
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This code could not be created without **Minecraft server util package**

* <s>Auto changing status message</s>
* <s>Status command</s>
* <s>IP adress command</s>
* <s>IP address command</s>
* <s>Minecraft version command</s>
* <s>Player list command</s>
* <s>Vote link command</s>
Expand All @@ -31,7 +31,7 @@ This code could not be created without **Minecraft server util package**
* Send custom message/announcement command
* <s>Custom reply for ip, test and version command</s>
* <s>Installation with repl.it</s>
* Better test command (shows more information about bot process)
* Better test command variables (more process info - like uptime)
* <s>More text languages (or custom)</s>
* Create threads from every message in voting channel
* <s>Bot status (activity) for players online number</s>
Expand Down
6 changes: 4 additions & 2 deletions commands/ip.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ module.exports.run = async (bot, message, args) => {

if(text.ip.title === "" || text.ip.description === "") {
const ipEmbed = new Discord.MessageEmbed()
.setTitle((config.server.name ? config.server.name : message.guild.name) + ' IP:', icon)
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("IP address:")
.setDescription(`\`${server.ip}\`:\`${server.port}\``)
.setColor(config.embeds.color);
message.channel.send({ embeds: [ipEmbed] });
Expand All @@ -32,7 +33,8 @@ module.exports.run = async (bot, message, args) => {
text.ip.description = text.ip.description.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))

const ipEmbed = new Discord.MessageEmbed()
.setTitle(text.ip.title, icon)
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle(text.ip.title)
.setDescription(text.ip.description)
.setColor(config.embeds.color);
message.channel.send({ embeds: [ipEmbed] });
Expand Down
30 changes: 24 additions & 6 deletions commands/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ module.exports.run = async (bot, message) => {
const trueList = result.players.sample ? "\n\`\`\`" + result.players.sample.map(p => ` ${p.name} `).join('\r\n') + "\`\`\`":""

const serverEmbed = new Discord.MessageEmbed()
.setTitle(config.server.name ? config.server.name : message.guild.name + " list:")
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Online player list:")
.setDescription(`**${result.players.online}**/**${result.players.max}**` + trueList)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
Expand All @@ -55,18 +56,35 @@ module.exports.run = async (bot, message) => {
}

const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle(text.list.title)
.setDescription(text.list.description + (trueList ? `\n${trueList}` : ""))
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
}
})
.catch((error) => {
const errorEmbed = new Discord.MessageEmbed()
.setTitle(config.server.name ? config.server.name : message.guild.name + " list:")
.setDescription(':x: **OFFLINE**')
.setColor(config.embeds.error)
message.channel.send({ embeds: [errorEmbed] });
if (text.list.title === "" || text.list.description === "" || text.list.listFormat === "") {
const errorEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Online player list:")
.setDescription(`:x: **OFFLINE**\n\n:information_source: \`${server.ip}\`:\`${server.port}\``)
.setColor(config.embeds.error)
message.channel.send({ embeds: [errorEmbed] });
} else {
text.list.title = text.list.title.replace('{serverIp}', server.ip)
text.list.title = text.list.title.replace('{serverPort}', server.port)
text.list.title = text.list.title.replace('{serverName}', config.server.name ? config.server.name : message.guild.name)
text.list.title = text.list.title.replace('{voteLink}', config.server.vote)
text.list.title = text.list.title.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))

const errorEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Online player list:")
.setDescription(`:x: **OFFLINE**\n\n:information_source: \`${server.ip}\`:\`${server.port}\``)
.setColor(config.embeds.error)
message.channel.send({ embeds: [errorEmbed] });
}

if (warns) console.log(warn(`Error when using command ${module.exports.config.name}! Error:\n`) + error)
});
Expand Down
150 changes: 116 additions & 34 deletions commands/status.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const { commands, settings } = require("../config");
const { commands } = require("../config");
const util = require('minecraft-server-util');
const Discord = require('discord.js');
const c = require('chalk')
const c = require('chalk');
const { Console } = require("console");

module.exports.config = {
name: "status", //Name of command - RENAME THE FILE TOO!!!
Expand All @@ -11,7 +12,7 @@ module.exports.config = {
};

module.exports.run = async (bot, message) => {
const { server, config } = bot,
const { server, config, text } = bot,
settings = config.settings,
warn = c.keyword('yellow').bold,
warns = config.settings.warns
Expand All @@ -26,7 +27,6 @@ module.exports.run = async (bot, message) => {
if(server.type === 'java') {
util.status(ip1, port1)
.then((result) => {
const description11 = result.motd.clean
const versionOriginal = result.version.name
if(settings.split) {
if(versionOriginal.includes("Spigot")) {
Expand All @@ -39,51 +39,133 @@ module.exports.run = async (bot, message) => {
}
const version = versionAdvanced ? versionAdvanced : versionOriginal

const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, 'attachment://logo.png')
.setDescription(`:white_check_mark: **ONLINE**`)
.addFields(
{ name: "Description", value: `${description11}` , inline: false },
{ name: "IP Address", value: `\`${server.ip}\`:\`${server.port}\`` , inline: false },
{ name: "Version", value: `JAVA **${version}**` , inline: true },
{ name: "Players", value: `**${result.players.online}**/**${result.players.max}**` , inline: true },
)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
if (text.status.title === "" || text.status.description === "") {
const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Server status:")
.setDescription(`:white_check_mark: **ONLINE**
**Description**
${result.motd.clean}
**IP Address**
\`${server.ip}\`:\`${server.port}\`
**Version**
${config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1)} ${version}
**Players**
**${result.players.online}**/**${result.players.max}**`)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
} else {
text.status.title = text.status.title.replace('{serverIp}', server.ip)
text.status.title = text.status.title.replace('{serverPort}', server.port)
text.status.title = text.status.title.replace('{serverName}', config.server.name ? config.server.name : message.guild.name)
text.status.title = text.status.title.replace('{voteLink}', config.server.vote)
text.status.title = text.status.title.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))
text.status.title = text.status.title.replace('{playersOnline}', result.players.online)
text.status.title = text.status.title.replace('{playersMax}', result.players.max)
text.status.title = text.status.title.replace('{motd}', result.motd.clean)
text.status.title = text.status.title.replace('{serverVersion}', version)

text.status.description = text.status.description.replace('{serverIp}', server.ip)
text.status.description = text.status.description.replace('{serverPort}', server.port)
text.status.description = text.status.description.replace('{serverName}', config.server.name ? config.server.name : message.guild.name)
text.status.description = text.status.description.replace('{voteLink}', config.server.vote)
text.status.description = text.status.description.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))
text.status.description = text.status.description.replace('{playersOnline}', result.players.online)
text.status.description = text.status.description.replace('{playersMax}', result.players.max)
text.status.description = text.status.description.replace('{motd}', result.motd.clean)
text.status.description = text.status.description.replace('{serverVersion}', version)

const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle(text.status.title)
.setDescription(text.status.description)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
}
})
.catch((error) => {
const errorEmbed = new Discord.MessageEmbed()
.setAuthor(`${ip1}:${port1}`, 'https://www.planetminecraft.com/files/image/minecraft/project/2020/224/12627341-image_l.jpg')
.setDescription(':x: **OFFLINE**')
.setColor(config.embeds.error)
const errorEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Server status:")
.setDescription(`:x: **OFFLINE**\n\n:information_source: \`${server.ip}\`:\`${server.port}\``)
.setColor(config.embeds.error)
message.channel.send({ embeds: [errorEmbed] });

if (warns) console.log(warn(`Error when using command ${module.exports.config.name}! Error:\n`) + error)
});
} else {
util.statusBedrock(ip1, port1)
.then((result) => {
const description11 = result.motd.clean
const versionOriginal = result.version.name
if(settings.split) {
if(versionOriginal.includes("Spigot")) {
var versionAdvanced = versionOriginal.replace("Spigot", "")
} else if (versionOriginal.includes("Paper")) {
var versionAdvanced = versionOriginal.replace("Paper", "")
} else if (versionOriginal.includes("Tuinity")) {
var versionAdvanced = versionOriginal.replace("Tuinity", "")
}
}
const version = versionAdvanced ? versionAdvanced : versionOriginal

const version = result.version.name
if (text.status.title === "" || text.status.description === "") {
const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle("Server status:")
.setDescription(`:white_check_mark: **ONLINE**
**Description**
${result.motd.clean}
**IP Address**
\`${server.ip}\`:\`${server.port}\`
**Version**
${config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1)} ${version}
**Players**
**${result.players.online}**/**${result.players.max}**`)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
} else {
text.status.title = text.status.title.replace('{serverIp}', server.ip)
text.status.title = text.status.title.replace('{serverPort}', server.port)
text.status.title = text.status.title.replace('{serverName}', config.server.name ? config.server.name : message.guild.name)
text.status.title = text.status.title.replace('{voteLink}', config.server.vote)
text.status.title = text.status.title.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))
text.status.title = text.status.title.replace('{playersOnline}', result.players.online)
text.status.title = text.status.title.replace('{playersMax}', result.players.max)
text.status.title = text.status.title.replace('{motd}', result.motd.clean)
text.status.title = text.status.title.replace('{serverVersion}', version)

text.status.description = text.status.description.replace('{serverIp}', server.ip)
text.status.description = text.status.description.replace('{serverPort}', server.port)
text.status.description = text.status.description.replace('{serverName}', config.server.name ? config.server.name : message.guild.name)
text.status.description = text.status.description.replace('{voteLink}', config.server.vote)
text.status.description = text.status.description.replace('{serverType}', config.server.type.charAt(0).toUpperCase() + config.server.type.slice(1))
text.status.description = text.status.description.replace('{playersOnline}', result.players.online)
text.status.description = text.status.description.replace('{playersMax}', result.players.max)
text.status.description = text.status.description.replace('{motd}', result.motd.clean)
text.status.description = text.status.description.replace('{serverVersion}', version)

const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setDescription(`:white_check_mark: **ONLINE**`)
.addFields(
{ name: "Description", value: `${description11}` , inline: false },
{ name: "IP Address", value: `\`${server.ip}\`:\`${server.port}\`` , inline: false },
{ name: "Version", value: `BEDROCK **${version}**` , inline: true },
{ name: "Players", value: `**${result.players.online}**/**${result.players.max}**` , inline: true },
)
.setColor('#77fc03')
message.channel.send({ embeds: [serverEmbed] });
const serverEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setTitle(text.status.title)
.setDescription(text.status.description)
.setColor(config.embeds.color)
message.channel.send({ embeds: [serverEmbed] });
}
})
.catch((error) => {
const errorEmbed = new Discord.MessageEmbed()
.setAuthor(config.server.name ? config.server.name : message.guild.name, icon)
.setDescription(':x: **OFFLINE**')
.setColor('#f53636')
.setTitle("Server status:")
.setDescription(`:x: **OFFLINE**\n\n:information_source: \`${server.ip}\`:\`${server.port}\``)
.setColor(config.embeds.error)
message.channel.send({ embeds: [errorEmbed] });

if (warns) console.log(warn(`Error when using command ${module.exports.config.name}! Error:\n`) + error)
Expand Down
Loading

0 comments on commit 5665e23

Please sign in to comment.