
(以前是“ Twitch_monitor_discord_bot”)
Nedry是一个带有模块化插件系统的自托管不和谐机器人。有很多有用的行为可用,但是您还可以安装插件来扩展Nedry的行为,甚至可以编写自己的插件。
一些开箱即用的功能包括:
上面提到的所有功能均在nedry/builtin_plugins目录中作为模块化插件实现,该目录是插件作者的有用参考。
要立即开始,请参阅快速启动部分。
目录
helpinfoquotetimezonestreamersaddstreamersremovestreamersclearallstreamersphrasestestphrasesaddphraseremovephrasesnocompetitioncmdhistorysaypluginsplugsonplugsoffpluginfotwitchclientidannouncechanneljokewikimockapologizeapologisescheduleunscheduleremindmeunremindtriviatriviascoresstorysocialcredit 项目名称更改了,但是“ twitch_monitor_discord_bot”中存在的所有功能仍然存在于“ nedry”中。要切换到“ Nedry”将需要以下步骤:
就是这样!
使用pip安装Python(仅支持Python 3.9倍或更高):
Python -M PIP安装Nedry
将软件包作为一个没有参数的模块运行,该模块将在当前目录中创建一个空的配置文件,称为default_bot_config.json并立即退出。
$ Python -M Nedry 创建默认配置文件'default_bot_config.json',请添加必需的参数
该机器人的大多数行为可以通过启动和运行时通过Discord消息进行配置,但是首先需要在配置文件中设置一些参数,以使该机器人与Discord Server交谈。在.json文件中填充这些必需的参数:
discord_bot_api_token :必须以字符串输入Discord Bot API令牌。创建一个新的bot应用程序,并在“ bot”页面上生成/复制令牌(注意:确保为您的bot应用程序启用所有特权网关意见)。discord_server_id :Discord Server ID(您希望要连接到的服务器)以整数输入。如何查找Discord用户/服务器/消息IDdiscord_admin_users :可以在此处输入整数的Discord用户ID列表。管理员用户可以访问机器人可以接受的完整不和谐命令。至少,您可能需要在此处添加自己的Discord用户ID,以便对机器人完全控制。如何查找Discord用户/服务器/消息ID一旦所有必需的参数都设置在.json文件中,请再次将软件包运行作为模块,但是这次将您的配置文件作为参数传递:
$ python -m nedry default_bot_config.json
如果配置正确,则机器人现在应连接到您的Discord服务器。您已经完成了编辑配置文件的编辑!
每当您的机器人在Discord Server中在线时,您都可以通过在消息开头(在DM或任何频道中访问该机器人可以访问机器人可以访问,例如@BotName !command 。您真正需要知道的唯一命令是help命令;如果您说@BotName !help ,那么机器人将向您显示可用的命令,并向您展示如何在单个命令中获得更具体的帮助。
除了您在上一节中的机器人配置文件中设置的前3件事外,有关机器人行为的其他所有内容都可以通过将消息/命令发送到Discord上的bot来配置。您可能想要以这种方式进行配置的一件事是如何监视Twitch流媒体以进行流公告。
需要以下步骤来启用Twitch流公告:
设置要监视的抽气流板
发送带有一个或多个参数的“ AddStreamers”命令,每个参数必须是现有Twitch频道的名称。例如“ @botname!addstreamers channel1 channel2”:

对流媒体列表的更改保存在配置文件中。
有关如何查看正在监视的流媒体列表以及如何从列表中删除流媒体列表的信息,请使用“ @botname!help Starters”和“ @botname!help!help removEstreamers”命令。
设置流公告的不和谐频道
将一个参数发送“公告”命令,该命令应该是您希望将流公告发送到的Discord频道的名称。例如“ @botname!sublecechannel channel-name”:

流公告频道名称保存在配置文件中。
为流公告设置自定义短语
这是可选的,但是只有1个默认流公告短语,因此您可能需要添加一些自己的内容。每次流媒体上线时,您的一个流公告短语都会随机选择以进行公告。短语可能包含格式令牌(有关格式令牌的更多信息,请参见“ @botname!help addphrase”命令)。例如“ @botname!addphrase一些自定义短语”:

作为参考,上一张图片中的短语会产生以下流公告,当时名为“ Ohmlab”的流媒体在星期三开始流式传输:

所有流公告短语都保存在配置文件中。
设置Twitch客户ID和客户端秘密
在带有bot中的bot或任何公共渠道中的bot的DM中,将“ TwitchClientID”命令发送两个参数,例如“ @botname!twitchclientid xxxx yyyy”。
用Twitch客户端ID替换“ XXXX”,然后用Twitch客户端秘密替换“ Yyyy”。您必须有一个Twitch帐户并注册一个申请,以获取您的应用程序的客户ID和客户秘密。说明在这里。

您可以使用同一命令随时更改客户端ID和客户端秘密。您使用此命令提供的客户端ID和客户端秘密保存在配置文件中,因此每次启动bot时都无需重新介绍一下。
使用github上可用的nedry.Service文件快速创建用于运行Nedry的SystemCtl服务。
注意:此服务在/home/ubuntu/nedry_config.json上加载一个配置文件,您可能需要编辑“ execstart”行并将该路径更改为配置文件位置。
注意:此服务加载了名为“ Ubuntu”的用户的环境,您可能需要编辑“用户”行并将用户名更改为您自己的用户名。
为了使用插件,您必须在配置文件中plugin_directories列表中添加至少一个目录路径。插件是通过将Python文件直接放置在plugin_directories中列出的任何目录的最高级别(不在subdirectory!)中来安装的。如果在启动plugin_directories时列出的任何目录中都存在任何有效的插件,则将加载并用于使用。
默认情况下启用了所有加载插件。要查看所有插件的列表,请启用和禁用,请使用!plugins命令。要禁用/启用插件,请使用!plugson和!plugsoff命令。例如,要禁用内置的knock_knock_jokes插件,请使用@BotName !plugsoff knock_knock_jokes 。
要开始写插件,请参见此示例功能插件和此插件模板文件(复制,粘贴和修改以制作自己的插件)。
另外,请参阅这个更复杂的内置插件
以下是与不和谐中的bot的其他命令 /响应相互作用的屏幕截图。本节并非旨在作为所有可用命令的全面参考(请参阅最后的“ bot命令参考”部分),而是快速说明与不符合中的bot相互作用的样子。







本节介绍了所有配置文件参数,包括快速启动部分未涵盖的配置参数。配置文件必须是以下表格的.json文件:
{
“ twitch_client_id”:“ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x”,
“ twitch_client_secret”:“ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x”,
“ discord_bot_api_token”:“ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx x
“ discord_server_id”:123456789123456789,
“ discord_channel_name”:“ my-discord-channel”,
“ poll_period_seconds”:60,
“ host_streamer”:“ my-twitch-streamer-name”,
“ silent_when_host_streaming”:是的,
“ plugin_data”:{},
“ plugin_directories”:[/home/user/user/nedry_plugins],
“ discord_admin_users”:[422222187366187010,487222187346187011],
“ discord_joke_tellers”:[422222187366187010,4872222187346187011],
“笑话”:[],
“时区”:{},
“ command_log_file”:“/home/user/twitch_monitor_bot_command_log.txt”,
“ startup_message”:“你好!我是一个可以为您监视Twitch流的机器人。
“流ers_to_monitor”:[
“ Mrsketi”,
“ nonto_of_many”
],,
“ stream_start_messages”:[
“ {arterer_name}现在正在流中!在这里观看:{stream_url}”,
“ {arterer_name}正在做某事,请在这里查看:{stream_url}”
这是给出的
}
twitch_client_id :在此处输入您的Twitch客户端ID。discord_bot_api_token :在此处输入您的Diskord Bot应用程序的API令牌。discord_server_id :输入您希望机器人连接到此处的服务器的服务器ID。discord_channel_name :输入您希望bot连接到此处的频道的名称。poll_period_seconds :在检查所有流媒体是否在此处进行播放之间输入所需的延迟(以秒为单位)。host_streamer :在此处输入您自己的Twitch频道的名称(可选)。silent_when_host_streaming :如果是真的,当主机流媒体是实时时,将不会发布有关其他流的公告。plugin_directories :搜索插件的目录名称列表以在启动上加载plugin_data :保留插件的持久数据,由插件名称键入dictdiscord_admin_users :可以在此处添加多个Discord用户ID号。此处添加的用户将被允许通过在Discord中发送命令来配置BOT。discord_joke_tellers :可以在此处添加多个Discord用户ID号。此列表中的Discord用户向机器人讲述的任何敲门声笑话都将被“记住”(存储在“笑话”列表中),并且可以在请求笑话时稍后将其告知其他Discord用户。jokes :从不和谐用户中记住的任何笑话都将在此处存储。timezones :dex,将MAP DISCORD用户ID编号归为他们所处时区的IANA名称。当您使用“ TimeZone”命令告诉机器人时,这就是存储的位置。command_log_file :输入所需的文件名到从Discord消息接收到的日志命令。如果您不想记录命令,请设置为“ null”。startup_message :输入您希望该机器人在此处启动后在线时发送的消息。消息可能包含以下格式令牌:{botname} :用其他Discord用户看到的bot名称代替{date} :将以DD/mm/yyy格式以当前日期替换{times} :将用HH中的当前时间替换:MM:SS格式{time} :将用HH的当前时间替换:MM格式{day} :将被当前工作日的名称替换(例如“星期一”){month} :将被当月的名称替换(例如“一月”){year} :将被当年替换(例如“ 2022”)streamers_to_monitor :输入在此处监视的流式名称列表。stream_start_messages :可以在此处定义多个消息,以用作流媒体上线的公告。消息可能包含以下格式令牌:{streamer_name} :将用流媒体的名称代替{stream_url} :将被Twitch.com上的流url替换{botname} :用其他Discord用户看到的bot名称代替{date} :将以DD/mm/yyy格式以当前日期替换{times} :将用HH中的当前时间替换:MM:SS格式{time} :将用HH的当前时间替换:MM格式{day} :将被当前工作日的名称替换(例如“星期一”){month} :将被当月的名称替换(例如“一月”){year} :将被当年替换(例如“ 2022”) 如果您正在编写插件,则可能需要订阅某些事件(如本示例插件所示)。本节列举了nedry.event_types.events中的可用事件类型,以及他们的预期论点和简短描述:
| 事件 | 事件参数 | 事件描述 |
|---|---|---|
| discord_message_received | (信息) “消息”是Discord.py消息对象(请参阅Discord.py Docs) | 每当收到任何不和谐消息时发出,要么在机器人可以访问的公共渠道中,要么在带有机器人的DM中发出。 |
| discord_bot_mention | (消息,text_without_mention) “消息”是discord.py消息对象(请参阅Discord.py Docs)。 “ text_without_mention”是带有机器人提及的消息文本。 | 每当收到机器人不和谐名称的任何不符合消息时,都会发出,要么在机器人可以访问的公共渠道中,要么在带有机器人的DM中。此处仅包括不遵循命令的提及,有一个单独的命令事件,bot_command_received |
| new_discord_member | (成员) “成员”是加入成员的discord.py用户对象(请参阅Discord.py文档)。 | 每当新用户加入Discord服务器时发出。 |
| discord_conned | 没有争论 | 每当将机器人连接到配置的Discord服务器时都会出现(启动后最多需要几秒钟) |
| bot_command_received | (消息,text_without_mention) “消息”是discord.py消息对象(请参阅discord.py docs)“ text_without_mention”是带有bot提及的消息文本。 | 每当从机器人提及开始的消息开始时发出,然后收到命令前缀字符(“!”),要么在机器人可以访问的公共渠道中,要么在带有机器人的DM中。在处理命令之前发出事件。 |
| bot_sending_message | (频道,消息_TEXT) “频道”是该通道的Discord.py通道对象,该消息正在发送(请参阅Discord.py Docs)。 “ Message_Text”是将发送到频道的消息。 | 每当机器人即将向公共渠道或DM发送消息时发出。 |
| twitch_stream_started | (名称,URL) “名称”是开始流式传输的流媒体的抽搐名称。 “ URL”是开始流的抽搐URL。 | 每当配置用于监视的流媒体之一开始流式传输时发出。 |
| Twitch_stream_ended | (名称,URL) “名称”是停止流式传输的流媒体的抽搐名称。 “ URL”是流的抽搐URL。 | 每当配置用于监视的流媒体之一停止流媒体时发出。 |
| host_stream_started | 没有争论 | 当配置的主机流媒体开始流式传输时发射 |
| host_stream_ended | 没有争论 | 当配置的主机流媒体停止流媒体时发出 |
如果您发现问题或错别字,请通过在Github上创建新问题来报告它。
欢迎捐款,请在Github上打开拉动请求。
help帮助[命令] 显示有关给定命令的有用信息。将[命令]替换为 命令您需要帮助。 例子: @botname!帮助Wiki 所有Discord用户都可以使用此命令。
info信息 显示有关机器人的一般信息,包括但不限于; - Python软件包版本 - 正常运行时间(机器人已经运行多长时间) - 已安装的插件,启用和禁用 例子: @botname!帮助信息 所有Discord用户都可以使用此命令。
quote引用 显示随机著名的报价 例子: @botname!QUOTE 所有Discord用户都可以使用此命令。
timezoneTimeZone [TimeZone_name] 为不和谐消息的作者设置时区,允许这样做 Discord用户在其本地时区提供/查看日期和时间。 [timezone_name]应替换为来自IANA的时区的名称 时区数据库或某些子字符串,例如“伦敦”或“洛杉矶”。如果你 住在一个大城市,然后通常只是在这里输入城市的名字 足够的。但是,如果您有问题,请尝试选择您的区域 这张IANA时区地图,并使用所示的国家/城市名称 下拉式选择框:https://kevalbhatt.github.io/timezone-picker 在没有参数的情况下发送此命令将查询当前的时区 分配给Discord消息的作者。 例子: @botname!timezone#Query TimeZone设置此Discord用户 @botname!时区伦敦#为此不和谐用户设置了“欧洲/伦敦”的时区 所有Discord用户都可以使用此命令。
streamers流媒体 显示当前正在监视的流媒体列表。 例子: @botname!流媒体 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
addstreamersAddStreamer [名称] ... 在监视的流媒体列表中添加了一个或多个新的流媒体。代替 [名称]带有您要监视的流媒体的Twitch名称。 例子: @botname!addstreamers streamer1 streamer2 streamer3 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
removestreamersremovestreamer [name] ... 从要监视的流媒体列表中删除一个或多个流媒体。替换[名称] 使用要删除的流媒体的Twitch名称。 例子: @botname!removEstreamers。 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
clearallstreamersClearallStreams 清除目前正在监视的流媒体列表。 例子: @botname!clearallStreamers 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
phrases短语 显示当前用于流公告的短语列表。 例子: @botname!短语 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
testphrases测试源 显示当前正在用于流公告的所有短语,并带有格式令牌 填充了,因此您可以看到他们发布到Discord频道时的样子。 例子: @botname!testphrases 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
addphrase addphrase [短语]
添加了一个新短语,用于流annnouncements。以下格式
代币可以在短语中使用:
{arterer_name}:替换为流媒体的抽搐名称
{stream_url}:替换为Twitch.tv上的流url
{botname}:用其他Discord用户看到的bot名称代替
{date}:以DD/mm/yyy格式替换为当前日期
{times}:用HH中的当前时间替换:MM:SS格式
{time}:用HH的当前时间替换:MM格式
{day}:替换为当前工作日的名称(例如“星期一”)
{月}:替换为本月的名称(例如“一月”)
{年}:替换为当年(例如“ 2022”)
例子:
@botname!addphrase“ {arterer_name}现在正在{stream_url}!”
只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
removephrases删除词[number] [number] ... 从用于流公告的短语列表中删除一个或多个短语。 [数字]必须用所需短语的数字代替,如图所示 由“短语”命令产生的编号列表。换句话说,为了删除 一句话,您必须首先查看“词组”命令的输出才能获取 您要删除的短语数量。 例子: @botname!removephrases 3 4 5 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
nocompetitionnoctetition [启用] [启用]必须用“ true”或“ false”代替。如果是真的,那就不 主机流媒体流媒体流中时,将发布有关其他流的公告。 如果是错误的,那么即使主机流媒体正在流式传输,也将始终发布公告。 (要检查是否启用了nocetition,请在没有true/false参数的情况下运行命令) 示例: @botname!nocetetition true(启用noctetition) @botname!nocetetition false(启用noctetition) @botname!nocetition(检查当前状态) 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
cmdhistorycmdhistory [entry_count] 在命令日志文件中显示最后几个条目。如果没有计数,则 显示了最后25个条目。 示例: @botname!cmdhistory(显示最后25个条目) @botname!cmdhistory 5(显示最后5个条目) 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
say说[说话] 使机器人立即在公告频道中发送消息,包含 无论您输入什么代替[要说的话]。 例子: @botname!早上好 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
plugins插件 显示所有已加载的插件,并显示当前启用哪些插件 例子: @botname!帮助Wiki 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
plugsonPuginson [Plugin_name] [Plugin_name] ... 按名称启用 /打开一个或多个插件(可以在插件名称中看到 “插件”命令的输出,被方形支架包围,例如“ []”)。 例子: @botname!pluginon knock_knock_jokes other_plugin 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
plugsoff插件[plugin_name] [plugin_name] ... 按名称禁用 /关闭一个或多个插件(可以在插件名称中看到 “插件”命令的输出,被方形支架包围,例如“ []”)。 例子: @botname!pluginoff stock_knock_jokes other_plugin 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
pluginfopluginfo [plugin_name] 查询有关已加载插件的信息。 例子: @botname!pluginfo oknet_knock_jokes 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
twitchclientidTwitchClientID [client_id_string] [client_secret_string] 设置用于与Twitch API交互的客户ID和客户端秘密。 为您的Twitch应用程序替换[client_id_string]用客户端ID字符串替换。 将[client_secret_string]替换为Twitch应用程序的客户端秘密字符串。 例子: @botname!帮助TwitchClientID xxxxxxxxxxxx yyyyyyyyyyyyyyy 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
announcechannelusecechannel [discord_channel_name] 设置将发布流公告的Discord频道。如果没有不和谐 提供了频道名称,然后是当前流公告频道的名称 将退还。 例子: @botname!sublecechannel#查询当前频道名称 @botname!sublecechannel my-channel#将公告频道设置为“ my-channel” 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
joke开玩笑 讲一个互动的敲门笑话。 您也可以 *告诉 *敲门笑话的笑话,它将记住新的笑话 在发送此命令时,请稍后告诉他们回到您。 任何不和谐用户都可以向机器人讲笑话,但是只有列出的用户讲的笑话 将记住在配置文件中的“ discord_joke_tellers”中。 例子: @botname!笑话 所有Discord用户都可以使用此命令。
wikiWiki [搜索文本] 使用Wikipedia的公共API搜索提供的文本,然后返回摘要文本 (通常是第一段)搜索结果中的第一页。如果没有搜索 提供文本,然后选择随机的Wikipedia文章。 示例: @botname!Wiki Python语言(显示Python编程语言的Wiki页面摘要) @botname!wiki(随机Wiki页面显示摘要) 所有Discord用户都可以使用此命令。
mock模拟[提及] 重复特定用户以“模拟”音调所说的最后一件事。替换[提及] 提及要模拟的Discord用户。 例子: @botname!mock @discord_user 所有Discord用户都可以使用此命令。
apologize道歉[提及] 向特定用户道歉,以嘲笑他们。替换[提及] 提及您要道歉的Discord用户。 例子: @botname!道歉@discord_user 所有Discord用户都可以使用此命令。
apologise道歉[提及] 向特定用户道歉,以嘲笑他们。替换[提及] 提及您要道歉的Discord用户。 例子: @botname!道歉@discord_user 所有Discord用户都可以使用此命令。
schedulescheped [channel_name] [message_text] in | on | at [time_description] 在特定之后,机器人在特定的不一度渠道中设置一条消息 时间延迟。 [channel_name]应用您的不和谐通道的名称代替您 希望发送消息。 [Message_Text]应替换为您想在Discord消息中发送的任何文本。 [time_description]应替换为所需时间的描述 该消息已传递到频道。时间可以通过以下方式描述: - 使用数字(例如“ 5”)而不是用英语编写的绝对延迟期 数字值的单词(例如“五”)。例如:“ 1分钟”,“ 2小时3分钟”, “ 2小时3分”,“ 2小时3分钟” - 以以下格式之一编写的特定日期和时间: * dd/mm/yyyy HH:mm * yyyy/mm/dd HH:mm * HH:MM DD/mm/yyyy * HH:mm yyyy/mm/dd 注意:如果您使用的是特定的日期/时间,则应首先告诉bot TimeZone您正在使用“!时区”命令。这样,您可以提供日期/时间 在您的本地时区。您只需要设置一次时区,机器人将 记住它(有关如何设置时区的更多详细信息,请参见“ @botname!help timezone”)。 没有参数的命令发送命令将返回当前计划的消息的列表。 示例: @botname!时间表#查询当前计划的消息 @botname!计划笑话哈哈!在2小时内#在2小时内安排给“笑话”的消息 @botname!计划新闻下雨:( 1h&10m#在1小时内到“新闻”的时间表10分钟 @botname!Sught General Howdy!在17:02 23/10/2025#在特定日期和时间安排给“常规”消息 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
unschedule启示[message_number] [message_number] ... 全部不安排 最后一个 按数字删除一条或多个计划的消息。 [Message_number]应更换 您要删除的消息数,如运行的输出所示 '!subly'命令没有参数。 另外,您可以通过“全部”的单个参数,而不是传递数字 一次删除所有计划的消息,或“最后”以删除最近 添加了计划的消息。 示例: @botname!unschedule最后#删除最后添加的消息 @botname!unschedule aster last use#删除所有消息 @botname!unschedule 2#删除消息#2 @botname!unschedule 5 6#删除消息5和6 只有在bot配置文件中的“ discord_admin_users”中注册的Discord用户可以使用此命令。
remindmeremindme [reminder_text] in | on | [time_description] 设置提醒。指定时间后,机器人将向您发送DM 您为[Reminder_Text]提供的文字。 [REMINDER_TEXT]应在提醒消息中替换您想要的任何文本, 例如,您想想起的东西。 [time_description]应替换为所需时间的描述 提醒已交付。时间可以通过以下方式描述: - 使用数字(例如“ 5”)而不是用英语编写的绝对延迟期 数字值的单词(例如“五”)。例如:“ 1分钟”,“ 2小时3分钟”, “ 2小时3分”,“ 2小时3分钟” - 以以下格式之一编写的特定日期和时间: * dd/mm/yyyy HH:mm * yyyy/mm/dd HH:mm * HH:MM DD/mm/yyyy * HH:mm yyyy/mm/dd 注意:如果您使用的是特定的日期/时间,则应首先告诉bot TimeZone您正在使用“!时区”命令。这样,您可以提供日期/时间 在您的本地时区。您只需要设置一次时区,机器人将 remember it (see "@BotName !help timezone" for more details about how to set your timezone). Sending the command with no arguments returns the list of active reminders for the user that sent the command. 示例: @BotName !remindme # Query current reminders for me @BotName !remindme To take out the trash... in 12 hours # schedule reminder in 12 hours @BotName !remindme to take a shower :D in 1 day and 5 mins # Schedule reminder in 1 day and 5 minutes @BotName !remindme to brush my teeth on 22/4/2025 14:30 # Schedule reminder at specific date & time All discord users may use this command.
unremindunremind [reminder_number] [reminder_number] ... unremind all unremind last Remove one or more reminders by number. [reminder_number] should be replaced with the number of the reminder you want to remove, as shown by the output of running the '!remindme' command with no arguments. Alternatively, instead of passing numbers, you can pass a single argument of "all" to remove all reminders at once, or "last" to remove the last reminder that you scheduled. 示例: @BotName !unremind last # Remove last added reminder @BotName !unremind all # Remove all reminders @BotName !unremind 2 # Remove reminder #2 @BotName !unremind 5 6 # Remove reminders 5 and 6 All discord users may use this command.
triviatrivia [time_limit] Fetch a trivia question from opentdb.com and allow all discord users to provide an answer until the time limit is up. Whoever provides the correct answer first gets 2 points, and any other correct answers that came after that get 1 point. If the correct answer is not provided, then no points are awarded. [time_limit] should be replaced with the desired time limit for the question, in seconds. This parameter is optional; if no time limit is provided then a time limit of 60 seconds will be used. 例子: @BotName !trivia All discord users may use this command.
triviascorestriviascores Shows total score for all discord users who have ever answered a trivia question correctly. The first correct answer to a trivia question gets 2 points, and all other correct answers get 1 point. 例子: @BotName !triviascores All discord users may use this command.
story story new|add|continue|show|stop [optional story contribution text]
Interact with the story being written on the current discord channel.
The first argument to this command may be one of the following 5 operations:
new - Start a new story in this channel.
add - Contribute the next part of the story being written on this channel.
[optional story contribution text] should be replaced with your desired
text for the next part of the story.
continue - Instead of starting a new story with a random prompt, add to an existing
story by providing the whole story. [optional story contribution text]
should be replaced with the text of the story that you want to continue.
(Note: if your story is too large to fit in a single discord message,
you may need to start with a smaller portion of the story, and afterwards
add the remaining text using the '!story add' command)
show - Show the current story as written so far.
stop - Stop the story writing session, and show the story as written so far.
示例:
@BotName !story new (Provide a random prompt to start a new story)
@BotName !story add And then he fell down... (Contribute to the current story)
@BotName !story continue Call me Ishmael (Start new story with provided text, no prompt)
@BotName !story show (Show the story as written so far)
@BotName !story stop (Stop the story)
All discord users may use this command.
socialcreditsocialcredit [top] Show your social credit score. The scoring algorithm is designed to favour users who interact regularly with the server, as long as those interactions are not "spread thinly" throughout the server. For example, posting a lot of messages in a single channel every day may make your score go up, but posting one message in all channels very infrequently may make your score go down. Using the command with no arguments shows your own social credit score. Using the command with a single argument of "top" (eg "!socialcredit top") shows the 10 users with the highest social credit score. 例子: @BotName !socialcredit # Show your social credit score @BotName !socialcredit top # Show highest 10 scores All discord users may use this command.