當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript Robot.on方法代碼示例

本文整理匯總了TypeScript中hubot.Robot.on方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Robot.on方法的具體用法?TypeScript Robot.on怎麽用?TypeScript Robot.on使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在hubot.Robot的用法示例。


在下文中一共展示了Robot.on方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: stats

export = (robot: Robot) => {
    robot.respond(/sniperino stats( me)?/i, res => {
        const { stats } = loadState(robot.brain);
        const message = Object.values(stats)
            .filter(<T>(x?: T): x is T => x !== undefined)
            .map(stat => ({ ...stat, winRate: calculateWinRate(stat) }))
            .sort((a, b) => b.winRate - a.winRate)
            .map(({ userId, winRate }) => `${robot.brain.userForId(userId).name}: ${winRate}%`)
            .join('\n');

        res.send(message);
    });

    robot.respond(/sniperino( me)?$/i, res => {
        const state = loadState(robot.brain);
        const { name, id } = res.message.user;
        if (state.games[id] !== undefined) {
            res.send(stringFns[GameEvent.Dupe]({ name }));
            return;
        }

        const snipe = Math.floor(Math.random() * 99) + 1;
        state.games[id] = snipe;
        res.send(stringFns[GameEvent.New]({ name, snipe }));
    });

    robot.on('roll', (res: Response, roll: number, max: number) => {
        // If someone rolled out of something other than 100, they are
        // either not playing sniperino or trying to cheat.
        if (max !== 100) {
            return;
        }

        // If there are no active games then this was just an ordinary roll
        const state = loadState(robot.brain);
        const { name, id } = res.message.user;
        const snipe = state.games[id];
        if (snipe === undefined) {
            return;
        }

        const {
            gamesPlayed = 0,
            gamesWon = 0
        } = state.stats[id] || {};

        // Play game
        const event = playGame(roll, snipe);
        state.stats[id] = {
            gamesPlayed: (event !== GameEvent.Draw ? gamesPlayed + 1 : gamesPlayed),
            gamesWon: (event === GameEvent.Win ? gamesWon + 1 : gamesWon),
            userId: id,
        };

        res.send(stringFns[event]({ name, roll }));

        delete state.games[id];
    });
};
開發者ID:mattvperry,項目名稱:DonkeyBot,代碼行數:59,代碼來源:sniperino.ts

示例2:

import * as Hubot from "hubot";

const robot = new Hubot.Robot<{}>(
  'src/adapters',
  'slack',
  false,
  'hubot',
);
robot; // $ExpectType Robot<{}>
robot.adapter; // $ExpectType {}
robot.hear(/hello/, () => null); // $ExpectType void
robot.on('test', () => null); // $ExpectType Robot<{}>
robot.emit('test', 'arg'); // $ExpectType boolean

const brain = new Hubot.Brain(robot);
brain; // $ExpectType Brain<{}>
brain.userForName('someone'); // $ExpectType User
brain.get('test'); // $ExpectType any
brain.set('test', 'test'); // $ExpectType Brain<{}>
開發者ID:Flarna,項目名稱:DefinitelyTyped,代碼行數:19,代碼來源:hubot-tests.ts


注:本文中的hubot.Robot.on方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。