diff --git a/src/bot.mjs b/src/bot.mjs index 515e7d1..2c99ade 100644 --- a/src/bot.mjs +++ b/src/bot.mjs @@ -15,7 +15,7 @@ const timeout = 1000; this.level = args.level || 0; this.active = args.hasOwnProperty("active") ? args.active : true; this.set = args.set || "all"; // uwe, nxy, f0ck, all - this.clients = args.clients || [ "irc", "tg" ]; + this.clients = args.clients || [ "irc", "tg", "slack" ]; this.f = args.f; }, bot: await new cuffeo(config.clients) diff --git a/src/inc/events/message.mjs b/src/inc/events/message.mjs index b4e0d4b..19a4b94 100644 --- a/src/inc/events/message.mjs +++ b/src/inc/events/message.mjs @@ -32,7 +32,7 @@ export default async bot => { console.log(`triggered > ${t[0]}`); } catch(error) { - e.reply("An error occured."); + e.reply(`${t[0]}: An error occured.`); logger.error(`${e.network} -> ${e.channel} -> ${e.user.nick}: ${error.toString ? error : JSON.stringify(error)}`); } }); diff --git a/src/inc/trigger/chatbot.mjs b/src/inc/trigger/chatbot.mjs index 6595478..f4935d0 100644 --- a/src/inc/trigger/chatbot.mjs +++ b/src/inc/trigger/chatbot.mjs @@ -5,6 +5,7 @@ export default async bot => { name: "chatbot", call: /^(?![!./[])(.*uw(e|i).*)/i, set: "uwe", + active: false, f: async e => { const res = await cleverbot.ask(e.message .replace(/uw(e|i)/gi, "") diff --git a/src/inc/trigger/lib/cleverbot.mjs b/src/inc/trigger/lib/cleverbot.mjs index 2afdb28..9acac2b 100644 --- a/src/inc/trigger/lib/cleverbot.mjs +++ b/src/inc/trigger/lib/cleverbot.mjs @@ -19,7 +19,7 @@ export default new class cleverbot { fetch(`${this.api}/create`, options) .then(res => res.json()) .then(res => this.nick = res.status === "success" ? res.nick: "uwibot") - .catch(err => console.log(err)); + .catch(err => console.log("cleverbot is offline or whatever lol")); } ask(msg) { @@ -37,7 +37,7 @@ export default new class cleverbot { fetch(`${this.api}/ask`, options) .then(res => res.json()) .then(res => res.status === "success"?resolve(res):reject(res.status)) - .catch(err => reject(err)); + .catch(err => reject("cleverbot is offline or whatever lol")); }); } }; diff --git a/src/inc/trigger/mcversion.mjs b/src/inc/trigger/mcversion.mjs new file mode 100644 index 0000000..36b7b1d --- /dev/null +++ b/src/inc/trigger/mcversion.mjs @@ -0,0 +1,22 @@ +import fetch from "flumm-fetch-cookies"; + +const baseurl = "https://launchermeta.mojang.com/mc/game/version_manifest.json"; + +export default async bot => { + return [{ + name: "mcversion", + call: /^(\.|\/)mcv$/i, + f: async e => { + const res = await (await fetch(baseurl)).json(); + const latest = { + release: res.versions.filter(a => a.id === res.latest.release)[0], + snapshot: res.versions.filter(a => a.id === res.latest.snapshot)[0] + }; + + e.reply([ + `Release: [b]${latest.release.id}[/b] (${new Date(latest.release.releaseTime).toLocaleString()})`, + `Snapshot: [b]${latest.snapshot.id}[/b] (${new Date(latest.snapshot.releaseTime).toLocaleString()})` + ]); + } + }] +}; diff --git a/src/inc/trigger/ts.mjs b/src/inc/trigger/ts.mjs new file mode 100644 index 0000000..e5679b7 --- /dev/null +++ b/src/inc/trigger/ts.mjs @@ -0,0 +1,36 @@ +import net from "net"; + +const ts = async () => new Promise(resolve => { + const sock = net.connect({ + host: "f0ck.space", + port: 10011 + }).setEncoding("utf-8"); + sock.write("use sid=1\n"); + sock.write("clientlist\n"); + sock.on("data", e => { + if(!e.match(/clid/)) return; + sock.destroy(); + return resolve(e + .split("|") + .filter(f => f.match(/client_type=0/)) + .map(f => f + .split(" ") + .filter(g => g.match(/client_nickname/)) + .map(g => g.split("=")[1]) + ) + .flat() + ); + }); +}); + +export default async bot => { + return [{ + name: "ts", + call: /^(\.|\/)ts$/i, + f: async e => { + const user = await ts(); + + e.reply(`aktuell sind ${user.length} Nasen mit f0ck.space verbunden: ${user.join``}`); + } + }] +};