summaryrefslogtreecommitdiff
path: root/ATRI/plugins/utils
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-02-20 08:19:41 +0800
committerKyomotoi <[email protected]>2021-02-20 08:19:41 +0800
commitae7ea2d379ec7fb0edb8e333145bb141106a2fd2 (patch)
tree3243cb1dd668d36f92f17e958ff2a38e7b2c450c /ATRI/plugins/utils
parent3d16960b487f8911fb3817c2abcdb252ad848f58 (diff)
downloadATRI-ae7ea2d379ec7fb0edb8e333145bb141106a2fd2.tar.gz
ATRI-ae7ea2d379ec7fb0edb8e333145bb141106a2fd2.tar.bz2
ATRI-ae7ea2d379ec7fb0edb8e333145bb141106a2fd2.zip
✨ 更新插件,埋下bug
- 更新插件: - call-owner - code-runner - status - anime-search - tex(待修复) - 埋下bug: - service中limit作为机器人服务中的开关,目前写入文件亟待修复
Diffstat (limited to 'ATRI/plugins/utils')
-rw-r--r--ATRI/plugins/utils/__init__.py51
-rw-r--r--ATRI/plugins/utils/data_source.py35
2 files changed, 84 insertions, 2 deletions
diff --git a/ATRI/plugins/utils/__init__.py b/ATRI/plugins/utils/__init__.py
index e69de29..1bf1461 100644
--- a/ATRI/plugins/utils/__init__.py
+++ b/ATRI/plugins/utils/__init__.py
@@ -0,0 +1,51 @@
+import re
+
+from nonebot.plugin import on_command
+from nonebot.adapters.cqhttp import Bot, MessageEvent
+
+from ATRI.rule import (
+ is_in_banlist,
+ is_in_dormant,
+ is_in_service
+)
+from .data_source import roll_dice
+
+
+__plugin_name__ = "roll"
+
+roll = on_command(
+ "/roll",
+ rule=is_in_banlist() & is_in_dormant()
+ & is_in_service(__plugin_name__)
+)
+
+async def _roll(bot: Bot, event: MessageEvent, state: dict) -> None:
+ args = str(event.message).strip()
+ if args:
+ state['resu'] = args
+
[email protected]("resu", prompt="roll 参数不能为空~!\ndemo:1d10 或 2d10+2d10")
+async def _(bot: Bot, event: MessageEvent, state: dict) -> None:
+ resu = state['resu']
+ match = re.match(r'^([\dd+\s]+?)$', resu)
+
+ if not match:
+ await roll.finish("请输入正确的参数!!\ndemo:1d10 或 2d10+2d10")
+
+ await roll.finish(roll_dice(resu))
+
+
+# __plugin_name__ = "fakemsg"
+
+# fakemsg = on_command(
+# "/fakemsg",
+# rule=is_in_banlist() & is_in_dormant()
+# & is_in_service(__plugin_name__)
+# )
+
+# @fakemsg.handle()
+# async def _fakemsg(bot: Bot, event: MessageEvent, state: dict) -> None:
+# ...
+
+# @fakemsg.got() \ No newline at end of file
diff --git a/ATRI/plugins/utils/data_source.py b/ATRI/plugins/utils/data_source.py
index b83cd33..f41a1d1 100644
--- a/ATRI/plugins/utils/data_source.py
+++ b/ATRI/plugins/utils/data_source.py
@@ -1,3 +1,34 @@
-from nonebot.adapters.cqhttp.message import MessageSegment
+import re
+import random
-MessageSegment. \ No newline at end of file
+
+def roll_dice(par: str) -> str:
+ result = 0
+ proc = ''
+ proc_list = []
+ p = par.split("+")
+
+ for i in p:
+ args = re.findall(r"(\d{0,10})(?:(d)(\d{1,10}))", i)
+ args = list(args[0])
+
+ args[0] = args[0] or 1
+ if int(args[0]) >= 5000 or int(args[2]) >= 5000:
+ return "阿...好大......"
+
+ for a in range(1, int(args[0]) + 1):
+ rd = random.randint(1, int(args[2]))
+ result = result + rd
+
+ if len(proc_list) <= 10:
+ proc_list.append(rd)
+
+ if len(proc_list) <= 10:
+ proc += "+".join(map(str, proc_list))
+ elif len(proc_list) > 10:
+ proc += "太长了不展示了就酱w"
+ else:
+ proc += str(result)
+
+ result = f"{par}=({proc})={result}"
+ return result