104 lines
4.6 KiB
JavaScript
104 lines
4.6 KiB
JavaScript
const { Telegraf } = require("telegraf");
|
|
const {start, stop, detect, players_files, telegram_token} = require("../index");
|
|
const bds_command = require("../index").command;
|
|
const {checkUser} = require("./check");
|
|
const IsElectron = process.argv[0].includes("electron");
|
|
const {readFileSync} = require("fs");
|
|
const {resolve} = require("path");
|
|
|
|
function boot_telegram_bot(){
|
|
console.warn("Bds Maneger Core, will no longer update the telegram Bot from June 1st, 2021, after this day it will no longer be possible to call by bds maneger core.")
|
|
// Set Telegram Bot
|
|
const bot = new Telegraf(telegram_token)
|
|
bot.start((ctx) => {
|
|
const amenssagem = `Hello ${ctx.message.from.username}
|
|
We have some things still being done in the programming of the new bot more works 👍:
|
|
Commands:
|
|
/server_start
|
|
/server_stop
|
|
/server_restart
|
|
/log
|
|
/command
|
|
/list
|
|
/mcpe
|
|
/status
|
|
The messages are re-transmitted to the minecraft chat if it is already connected: ✔
|
|
Message Control: ❌`
|
|
ctx.reply(amenssagem)
|
|
})
|
|
bot.help((ctx) => ctx.reply("Use o /start"))
|
|
bot.action("delete", ({ deleteMessage }) => deleteMessage())
|
|
bot.command("server_start", (ctx) => {
|
|
if (checkUser(ctx.message.from.username)){
|
|
if (!(detect())){
|
|
if (IsElectron) document.getElementById("startButtom").click(); else start()
|
|
ctx.reply("Server Started please wait a few moments")
|
|
} else ctx.reply(`${ctx.message.from.username} already started`);
|
|
} else {
|
|
console.log(`It was not started for ${ctx.message.from.username} as it is not an administrator`);
|
|
ctx.deleteMessage()
|
|
ctx.reply(`Please contact the Server Administrator, You are not on the list, I count to add your username (${ctx.message.from.username}) on the whitelist`)
|
|
}
|
|
});
|
|
bot.command("server_stop", (ctx) => {
|
|
if (checkUser(ctx.message.from.username)){
|
|
if (detect()){stop();ctx.reply("The server is stopping, wait for a few moments")}
|
|
else ctx.reply(`Hello ${ctx.message.from.username}, the server will remain stopped`);
|
|
} else {
|
|
console.log(`It was not stoped for ${ctx.message.from.username} as it is not an administrator`);
|
|
ctx.reply(`Please contact the Server Administrator, You are not on the list, I count to add your username (${ctx.message.from.username}) on the whitelist`)
|
|
}
|
|
});
|
|
bot.command("command", (ctx) => {
|
|
let command = ctx.message.text.replace("/command", "")
|
|
if (command === "") ctx.reply("Check you command");
|
|
else if (command === " ") ctx.reply("Check you command");
|
|
else {bds_command(command);ctx.reply("Check /log")}
|
|
});
|
|
bot.command("list", (ctx) =>{
|
|
const current_user = JSON.parse(readFileSync(players_files, "utf8")),
|
|
connected = readFileSync(resolve(__dirname, "..", "static_files", "list_user.md"), "utf8")
|
|
for (let userN in current_user){
|
|
let user = current_user[userN]
|
|
let date = new Date(user.date)
|
|
ctx.replyWithMarkdown(connected
|
|
.split("@PLAYER").join(user.player)
|
|
.split("@JSON_H").join(JSON.stringify(user.update))
|
|
.split("@DATA").join(`${date.getUTCDay()}/${date.getUTCMonth()}/${date.getUTCFullYear()} ${date.getUTCHours()}:${date.getUTCMinutes()}:${date.getUTCMilliseconds()} UTC`)
|
|
.split("@CONNECTED").join(user.connected)
|
|
)
|
|
}
|
|
});
|
|
bot.command("mcpe", (ctx) =>{
|
|
ctx.replyWithMarkdown(`[Minecraft for Android Latest](https://f.sh23.org/Minecraft/Mcpe/Oficial/1.16.210.05.apk)
|
|
|
|
iPhone users are not privileged, by Sirherobrine23`)});
|
|
bot.command("status", (ctx) =>{
|
|
const current_user = JSON.parse(readFileSync(players_files, "utf8"))
|
|
var connected = 0,
|
|
player = ""
|
|
for (let con in current_user){
|
|
if (current_user[con].connected) {connected = connected + 1;player += `- ${current_user[con].player}\n\n`}
|
|
}
|
|
const text = `-------- Bds Core --------
|
|
------------ Players ------------
|
|
|
|
- Players currently logged on to the server: ${connected}
|
|
|
|
${player}`
|
|
ctx.reply(text);
|
|
});
|
|
bot.command("log", (ctx) => {
|
|
const file_log_path = require("../index").log_file;
|
|
const fs = require("fs")
|
|
if (fs.existsSync(file_log_path)){
|
|
const text = fs.readFileSync(file_log_path, "utf8")
|
|
ctx.reply(text)
|
|
} else
|
|
ctx.reply("there is no log");
|
|
});
|
|
bot.launch()
|
|
return true
|
|
}
|
|
module.exports = boot_telegram_bot
|
|
module.exports.launch = boot_telegram_bot |