Skip to content

我的 IRC 机器人,虽然这个 Bot 能让聊天者在 IRC 里玩游戏,但除了游戏,还有其他很多功能。

Notifications You must be signed in to change notification settings

moontide/TideBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TideBot

特色

  • bot 命令不区分大小写,让机器服务于人类,而不是不让人类适应机器死板的逻辑。
  • 尽可能多的支持中文,嗯,命令名、命令选项、ht 命令的模板名、/me 命令的动作命令名 都允许使用汉字(虽然并未完全实现)
  • 支持命令别名,尽量简化用户输入。
    • 比如,game 命令下有很多游戏,则可以直接用游戏名代替 game 命令。如: 斗地主、2048
    • 再比如,ht 命令有诸多用户添加的自定义模板,则可以直接用用模板名直接执行该 ht 模板,如: ht.run 糗事百科 直接用 糗事百科 执行
    • 再比如,/me 命令也有诸多用户添加的自定义动作,则可以直接用 .动作命令 的形式直接执行,如: /me happy 直接用 .happy 执行

功能

对话框 | Dialog

对话框,原本只是实验阶段的一个产物,目的是实现在 IRC 内实现问答的功能:问用户问题、收集答案。

在功能实现后,其他一些命令就依赖此功能进行交互式处理,如:

  • 斗地主游戏抢地主时依次询问用户是否抢地主、sm 命令启用/禁用所有的定义时,询问用户 -- 是否类问题
  • 斗地主游戏询问是否出牌打过上家 -- 开放型问题(填空题)
  • /vote 管理命令询问全频道的人是否投票 -- 不限定人数的对话框

游戏功能 | Games

命令用法: game <游戏名>

三国杀 | SanGuoSha -- 啥? IRC 里也能玩三国杀?

  • game 三国杀 /p 玩家2 [玩家3]
  • game 三国杀身份 /p 玩家2 [其他玩家]...
  • game 三国杀国战 /p 玩家2 [其他玩家]...

三国杀 是一种回合制卡牌游戏。得益于三国杀官方精心设计的游戏规则、卡牌种类,使得三国杀可玩性很丰富。

目前 TideBot 已实现、准备实现的三国杀玩法有:

  • 三国杀入门 (已实现): 只有杀、闪、桃 的入门游戏,最多只允许 3 人玩(因为 3 人以内玩不用计算距离)。只适用于对三国杀不熟悉的新手玩,老司机会觉得入门游戏不好玩…
  • 三国杀身份 (TODO ... ): 想想有那么多武将(技能)、武器(技能)、防具(技能)要实现,就感觉工程量太大…
  • 三国杀国战 (TODO ... ): 除了实现身份局里的武将,还有双将以及国战特有的武将(有的武将名称相同但技能不同了,比如陆逊…)、技能预亮、杀死其他国家武将的奖励,等等不同游戏规则的实现…

斗地主 | DouDiZhu

game 斗地主 /p 玩家2 玩家3

  • 3 人玩,1 副牌
  • 抢地主: 按照腾讯游戏的斗地主游戏来抢地主: 1分 2分 3分,选 3 分立刻成为地主,否则继续问其他人
  • 大王★、小王☆可用 dw、xw 来代替,用 d、x 代替也可以,不区分大小写; 10 可用 0 或 1 代替
  • 过牌: 在批斗阶段,可用下面的任意一个来过牌: pass、 p、 n、 过、 g,在自己的回合阶段不能过牌
  • 斗地主游戏目前还实现了两个机器人玩家: 不出牌的机器人玩家、谁都打的机器人玩家,可在开始游戏时,用 @不出牌 @谁都打 来指定机器人玩家。
    • @谁都打 的别名还有 @能出牌就出牌 @能上就上 @不出牌不舒服斯基
    • 如果要添加两个相同类别的机器人,需要在机器人名称后面附加任意有效的字符串区别一下即可。比如 @不出牌不舒服斯基1 @不出牌不舒服斯基2

斗地主游戏截图 | DouDiZhu game screenshot

2048

2048 游戏截图 | 2048 game screenshot

21 点 | BlackJack

  • 与传统 21 点游戏不同,此游戏没有庄家一说
  • 每个人都是平等的:按顺序询问要不要牌,要牌的发一张牌,如果爆牌则“死亡”,爆牌后的玩家不再询问是否要牌。最后,按分数排出胜负:最接近 21 点的胜利 > 2 > 爆牌

猜数字 | GuessDigits

执行外部系统命令 | Cmd

执行外部命令,并返回 stdout 和/或 stderr 的内容。

注意,这不是 shell,所以类似的功能不支持。目前只实现了管道的功能: command1 | command2

支持自定义模板的多功能 Ht/Json 命令 | Ht/Json

这是一个多功能 Ht/Json 命令,用来通过 http 协议读取 html 或 json/javascript 数据,并返回相关数据。

  • ht 命令
  • json 命令使用 subselector 指定 javascript 代码

GitHub 日志 | GitHub commit logs

StackExchange 问答站点查询 | StackExchange

查询 IP 地址所在地理位置 - 纯真数据库 | ChunZhen IP-Location

ipl <IPv4地址>...

查询 IP 地址所在地理位置 - MaxMind 数据库 | Maxmind/GeoIP IP-Location

geoip[.语言] <IP地址>...

查询 MAC 地址所属制造商 | MAC Manufactory

macm <MAC地址>...

  • MAC 地址可按几种格式
    • AA:BB:CC
    • AA-BB-CC
    • AA:BB:CC:DD:EE:FF
    • AA-BB-CC-DD-EE-FF
  • MAC 地址不区分大小写

About

我的 IRC 机器人,虽然这个 Bot 能让聊天者在 IRC 里玩游戏,但除了游戏,还有其他很多功能。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published