Команда для Twitchbot на основе сообщения пользователя - PullRequest
1 голос
/ 03 октября 2019

Я относительно новичок в node.js, и я решил создать собственный бот Twitch для канала друга. Мне нужно сделать что-то вроде команды! Nuke, где пользователи могут напечатать что-то вроде «! Nuke Kappa 40», а затем, скажем, в течение 5 минут, любой, кто введет Kappa в чат, получит тайм-аут на 40 секунд.

Я не совсем уверен, как это сделать и как его кодировать. Кто-нибудь может помочь?

Вот код, который у меня есть до сих пор

const tmi = require("tmi.js");
const tchannel = "testchannel";

const config = {
  options: {
    debug: true
  },
  connection: {
    cluster: "aws",
    reconnect: true
  },
  identity: {
    username: "testbot",
    password: "oauth:code"
  },
  channels: [tchannel]
};

const client = new tmi.client(config);
client.connect();
client.on("connected", (address, port) => {
  console.log("Address: " + address + " Port: " + port);
  client.color();
  client.action(tchannel, "Hello. Welcome to the chat. :D");
});

client.on("message", (channel, userstate, message, self) => {
  if (self) return;

 let sender = user["display-name"];

// THE NUKE CODE 
 const nukepost = null;

  if (userstate["mod"] === false) {
    if (message.startsWith("!nuke ")) {
      const nukepost = message.split("!nuke ").join("");
      console.log("TEST " + nukepost);
      if (message.includes(nukepost)) {
        client.timeout(channel, sender, 10, "nuked!");
      }
    }
  }

  // timeout when link posted
  if (user["mod"] === false) {
    if (message.includes("www.") || message.includes(".com")) {
      client.timeout(channel, sender, 10, "Link detection system triggered.");
    }
  }

  switch (userstate["message-type"]) {
    case "action":
      break;
    case "chat":
      switch (message.toLowerCase()) {
        case "!discord":
          client.say(tchannel, "https://discord.gg/xyz");
          break;
        case "!twitter":
          client.say(tchannel, "https://twitter.com/xyz");
          break;
        case "!hello":
          client.say(
            tchannel,
            "Hello, welcome to the chat. :)"
          );
          break;
      }
  }
});
...