From e2cae8fbb835446fd7b42071f1f1561100c598f0 Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Tue, 12 Sep 2023 23:43:56 -0600 Subject: [PATCH] Ok I just had to redo the whole damn thing because it wouldnt start correctly --- index.js | 120 ++++++++++++++++++++++--------------------------------- 1 file changed, 48 insertions(+), 72 deletions(-) diff --git a/index.js b/index.js index ac25b11..369c9e6 100755 --- a/index.js +++ b/index.js @@ -1,29 +1,21 @@ const config = require("./config.json"); +const fs = require("fs"); const colors = require("colors"); const axios = require("axios"); -const fs = require("fs"); const SteamUser = require("steam-user"); const TeamFortress2 = require("tf2"); const Discord = require("discord.js"); -const { emit } = require("process"); -const bot = new Discord.Client({ intents: ["GuildMessages", "Guilds", "MessageContent"] }); -const ring_hook = new Discord.WebhookClient({ "url": config.discord.ring_webhook }); -const notif_hook = new Discord.WebhookClient({ "url": config.discord.notification_webhook }, { "allowedMentions": false }); -const pan_hook = new Discord.WebhookClient({ "url": config.discord.pan_webhook }); -let user = new SteamUser(); -let tf2 = new TeamFortress2(user); +const bot = new Discord.Client({intents: ["GuildMessages", "Guilds", "MessageContent"]}); +const ring_hook = new Discord.WebhookClient({"url": config.discord.ring_webhook}); +const notif_hook = new Discord.WebhookClient({"url": config.discord.notification_webhook}, {"allowedMentions": false}); +const pan_hook = new Discord.WebhookClient({"url": config.discord.pan_webhook}); +const user = new SteamUser(); +const tf2 = new TeamFortress2(user); -user.on("loggedOn", async (stuff) => { +user.on("loggedOn", (stuff) => { //user.setPersona(1); //Just needed this to check that it was logging in properly, and not false reporting a successful log in lol console.log(`${colors.cyan("[Steam]")} Logged into steam`) - await user.gamesPlayed([440]); - -}) - -tf2.on("connectedToGC", async (ver) => { - console.log(`${colors.yellow("[TF2]")} Connected to GC, version: ${ver}`) - // Get lang file from tf wiki https://wiki.teamfortress.com/w/images/c/cf/Tf_english.txt - console.log(`${colors.green("[Lang]")} Getting TF2 Lang File from wiki`); + user.gamesPlayed([440]); axios.get("https://wiki.teamfortress.com/w/images/c/cf/Tf_english.txt").then((res) => { console.log(`${colors.green("[Lang]")} Got TF2 Lang File from wiki`); // set lang from body @@ -45,71 +37,55 @@ tf2.on("connectedToGC", async (ver) => { console.log(`${colors.green("[Lang]")} Failed to load TF2 Lang File`); } }) - // Startup time in formatted Mm ss - const startupTime = `${Math.floor((Date.now() - initTime) / 60000)}m ${Math.floor((Date.now() - initTime) / 1000) % 60}s`; - console.log(`${colors.cyan("[INFO]")} Startup took ${startupTime}`); }) -tf2.on("disconnectedFromGC", (reason) => { - console.log(`${colors.yellow("[TF2]")} Disconnected from GC, reason: ${reason}`) +tf2.on("connectedToGC", (ver) => { + console.log(`${colors.yellow("TF2")} Connected to GC`) + console.log(`${colors.blue("[Info]")} Startup took ${Date.now() - initTime}ms`) }) tf2.on("systemMessage", (msg) => { - console.log(`${colors.yellow("[TF2]")} New System Message: ${msg}`) - notif_hook.send({ - embeds: [ - { - description: `<:Messages:1151242960655089744> ${msg}`, - color: 0x3498DB - } - ] - }) + console.log(`[TF2] New System Message: ${msg}`) + notif_hook.send({embeds: [ + { + description: msg, + color: Discord.Colors.Blue + } + ]}) }) tf2.on("itemBroadcast", (msg, username, wasDestruction, defindex) => { - console.log(`${colors.yellow("[TF2]")} New Item : ${msg}, ${username}, ${wasDestruction}, ${defindex}`); - pan_hook.send({ - content: wasDestruction ? "@everyone" : "", embeds: [ - { - description: `<:Alert:1151242961485562008> ${msg}`, - color: wasDestruction ? 0xff0000 : 0xF1C40F - } - ] - }) + console.log(`[TF2] New Item :\nMsg:${msg}\nUser:${username}\nDestroy?:${wasDestruction}`); + pan_hook.send({content: "@everyone",embeds: [ + { + description: msg, + color: wasDestruction?Discord.Colors.Red:Discord.Colors.Gold + } + ]}) + }) tf2.on("displayNotification", (title, body) => { - console.log(`${colors.yellow("[TF2]")} New Notif: ${title}: ${body}`) - ring_hook.send({ - embeds: [ - { - description: `<:Alert:1151242961485562008> ${body}`, - color: 0xF1C40F - } - ] - }) + console.log(`[TF2] New Notif: ${title}: ${body}`) + ring_hook.send({embeds: [ + { + description: body, + color: Discord.Colors.Gold + } + ]}) }) bot.on("ready", () => { - console.log(`${colors.blue("[Discord]")} Logged in as ${bot.user.tag}`); - bot.user.setPresence({ activities: [{ name: 'I am cool', type: 4 }], status: 'idle' }); - console.log(`${colors.cyan("[Steam]")} Logging into steam`); - user.logOn(config.steam); + console.log(`[Discord] Logged in as ${bot.user.tag}`); }) bot.on("messageCreate", (msg) => { - if (!msg.webhookId) return; - msg.crosspost(); + if(msg.author.bot) return; + if (config.discord.channels.includes(msg.channel.id)) { + msg.crosspost(); + } }) -const sendTestNotifications = () => { - // emit the notifications - tf2.emit("systemMessage", "Test Notification"); - tf2.emit("itemBroadcast", "Test Notification", "Test User", false, 0); - tf2.emit("displayNotification", "Test Notification", "Test Notification"); -} - - // Catch all errors process.on('uncaughtException', async (err) => { await sendLog(`${colors.red("[ERROR]")} Uncaught Exception: ${err}`); @@ -122,22 +98,22 @@ process.on('unhandledRejection', async (err) => { // Handle SIGINT gracefully -process.on('SIGINT', async () => { +process.on('SIGINT', () => { setTimeout(() => { console.log(`${colors.red("[ERROR]")} Took too long to exit, exiting forcefully...`); process.exit(1); }, 10000) - await console.log(`${colors.cyan("[INFO]")} Stop received, exiting...`); - await user.gamesPlayed([]); - await user.logOff(); - await bot.destroy(); - await console.log(`${colors.cyan("[INFO]")} Goodbye!`); + console.log(`${colors.blue("[INFO]")} Stop received, exiting...`); + bot.destroy(); + user.logOff(); + console.log(`${colors.blue("[INFO]")} Goodbye!`); process.exit(0); }); - console.log(`${colors.cyan("[INFO]")} Starting...`) // Start timer to see how long startup takes const initTime = Date.now() - -bot.login(config.discord.token); +console.log(`${colors.cyan("[Steam]")} Logging into steam`); +user.logOn(config.steam); +console.log(`${colors.cyan("[Discord]")} Logging into discord`); +bot.login(config.discord.token); \ No newline at end of file