This repository has been archived on 2024-01-16. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Maneger/scripts/telegram_bot.js

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