Greasy Fork is available in English.

[bot]Discord限定bot

埋め込み機能があるDiscordならではの機能を搭載しました。?指定のコマンドで動きます。

// ==UserScript==
// @name         [bot]Discord限定bot
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  埋め込み機能があるDiscordならではの機能を搭載しました。?指定のコマンドで動きます。
// @author       You
// @match        https://discordapp.com/*
// @require      https://greasyfork.org/scripts/387509-yaju1919-library/code/yaju1919_library.js?version=719796
// @require      https://greasyfork.org/scripts/387372-chatbot/code/Chatbot.js?version=719862
// @grant        GM.setValue
// @grant        GM.getValue
// @grant        GM.xmlHttpRequest
// ==/UserScript==
(function () {
  'use strict';
    const yaju1919 = yaju1919_library;
    const get = (url, callback) => {
        yaju1919.get(url,{
            success: callback,
            fail: () => g_wait()(null)
        });
    };
    let g_name, // 相手の名前
        g_text, // 相手の発言内容
        g_wait, // 非同期処理関数
        g_log, // 会話ログ
        g_myName; // 自分の名前
    const Discord_Command = {};
    const nop = () => {
        const say = g_wait();
        setTimeout(()=>say(null),100);
    };
    win.Chatbot["Discord限定bot"] = {
        main: ({name,text,wait,log,myName}) => {
            g_name = name;
            g_text = text;
            g_wait = wait;
            g_log = log;
            g_myName = myName;
            const m = text.match(/\?([^ ]+)(.*)$/);
            if(!m) return;
            const command = m[1] ? m[1] : "";
            const argument = m[2] ? m[2].slice(1) : "";
            const f = Discord_Command[command];
            if(!f) return nop();
            return f(argument);
        },
        priority: 24
    };
    get("https://raw.githubusercontent.com/yaju1919/Chatbot/master/Type_of_Dictionary/Discord",r=>eval(r));
})();