2021-10-03 14:24:07 +08:00
|
|
|
|
from typing import Type
|
2021-05-20 19:23:32 +08:00
|
|
|
|
from nonebot import on_command
|
2021-10-03 14:24:07 +08:00
|
|
|
|
from nonebot.matcher import Matcher
|
2022-02-19 18:20:19 +08:00
|
|
|
|
from utils.utils import scheduler, is_number
|
|
|
|
|
|
from nonebot.adapters.onebot.v11.permission import GROUP
|
2021-05-20 19:23:32 +08:00
|
|
|
|
from nonebot.typing import T_State
|
2022-02-19 18:20:19 +08:00
|
|
|
|
from nonebot.adapters.onebot.v11 import GroupMessageEvent, MessageEvent, Message
|
2021-05-20 19:23:32 +08:00
|
|
|
|
from nonebot.permission import SUPERUSER
|
|
|
|
|
|
import random
|
|
|
|
|
|
from nonebot.plugin import MatcherGroup
|
2021-11-04 16:11:50 +08:00
|
|
|
|
from configs.path_config import IMAGE_PATH
|
2022-02-19 18:20:19 +08:00
|
|
|
|
from nonebot.params import CommandArg
|
2021-07-30 21:21:51 +08:00
|
|
|
|
from .open_cases_c import (
|
|
|
|
|
|
open_case,
|
|
|
|
|
|
total_open_statistics,
|
|
|
|
|
|
group_statistics,
|
|
|
|
|
|
my_knifes_name,
|
|
|
|
|
|
open_shilian_case,
|
|
|
|
|
|
)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
from .utils import util_get_buff_price, util_get_buff_img, update_count_daily
|
2021-12-16 11:16:28 +08:00
|
|
|
|
from configs.config import Config
|
2021-10-03 14:24:07 +08:00
|
|
|
|
|
|
|
|
|
|
__zx_plugin_name__ = "开箱"
|
|
|
|
|
|
__plugin_usage__ = """
|
|
|
|
|
|
usage:
|
|
|
|
|
|
看看你的人品罢了
|
|
|
|
|
|
模拟开箱,完美公布的真实概率,只想看看替你省了多少钱
|
|
|
|
|
|
指令:
|
|
|
|
|
|
开箱 ?[武器箱]
|
|
|
|
|
|
[1-30]连开箱 ?[武器箱]
|
|
|
|
|
|
我的开箱
|
|
|
|
|
|
我的金色
|
|
|
|
|
|
群开箱统计
|
|
|
|
|
|
* 不包含[武器箱]时随机开箱 *
|
|
|
|
|
|
目前支持的武器箱:
|
|
|
|
|
|
1.狂牙大行动武器箱
|
|
|
|
|
|
2.突围大行动武器箱
|
|
|
|
|
|
3.命悬一线武器箱
|
|
|
|
|
|
4.裂空武器箱
|
|
|
|
|
|
5.光谱武器箱
|
|
|
|
|
|
示例:开箱 命悬一线
|
|
|
|
|
|
""".strip()
|
|
|
|
|
|
__plugin_superuser_usage__ = """
|
|
|
|
|
|
usage:
|
|
|
|
|
|
更新皮肤指令
|
|
|
|
|
|
指令:
|
|
|
|
|
|
更新开箱图片 ?[武器箱]
|
|
|
|
|
|
更新开箱价格 ?[武器箱]
|
|
|
|
|
|
* 不指定武器箱时则全部更新 *
|
|
|
|
|
|
* 过多的爬取会导致账号API被封 *
|
|
|
|
|
|
""".strip()
|
|
|
|
|
|
__plugin_des__ = "csgo模拟开箱[戒赌]"
|
|
|
|
|
|
__plugin_cmd__ = [
|
|
|
|
|
|
"开箱 ?[武器箱]",
|
|
|
|
|
|
"[1-30]连开箱 ?[武器箱]",
|
|
|
|
|
|
"我的开箱",
|
|
|
|
|
|
"我的金色",
|
|
|
|
|
|
"群开箱统计",
|
|
|
|
|
|
"更新开箱图片 ?[武器箱] [_superuser]",
|
|
|
|
|
|
"更新开箱价格 ?[武器箱] [_superuser]",
|
|
|
|
|
|
]
|
|
|
|
|
|
__plugin_type__ = ("抽卡相关", 1)
|
|
|
|
|
|
__plugin_version__ = 0.1
|
|
|
|
|
|
__plugin_author__ = "HibiKier"
|
|
|
|
|
|
__plugin_settings__ = {
|
|
|
|
|
|
"level": 5,
|
|
|
|
|
|
"default_status": True,
|
|
|
|
|
|
"limit_superuser": False,
|
|
|
|
|
|
"cmd": ["csgo开箱", "开箱"],
|
|
|
|
|
|
}
|
|
|
|
|
|
__plugin_task__ = {"open_case_reset_remind": "每日开箱重置提醒"}
|
|
|
|
|
|
__plugin_cd_limit__ = {"rst": "着什么急啊,慢慢来!"}
|
2021-11-04 16:11:50 +08:00
|
|
|
|
__plugin_resources__ = {f"cases": IMAGE_PATH}
|
|
|
|
|
|
__plugin_configs__ = {
|
|
|
|
|
|
"INITIAL_OPEN_CASE_COUNT": {"value": 20, "help": "初始每日开箱次数", "default_value": 20},
|
|
|
|
|
|
"EACH_IMPRESSION_ADD_COUNT": {
|
|
|
|
|
|
"value": 3,
|
|
|
|
|
|
"help": "每 * 点好感度额外增加开箱次数",
|
|
|
|
|
|
"default_value": 3,
|
|
|
|
|
|
},
|
|
|
|
|
|
"COOKIE": {
|
|
|
|
|
|
"value": None,
|
|
|
|
|
|
"help": "BUFF的cookie",
|
|
|
|
|
|
},
|
|
|
|
|
|
"BUFF_PROXY": {"value": None, "help": "使用代理访问BUFF"},
|
|
|
|
|
|
}
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
2021-12-16 11:16:28 +08:00
|
|
|
|
Config.add_plugin_config(
|
|
|
|
|
|
"_task",
|
|
|
|
|
|
"DEFAULT_OPEN_CASE_RESET_REMIND",
|
|
|
|
|
|
True,
|
|
|
|
|
|
help_="被动 每日开箱重置提醒 进群默认开关状态",
|
|
|
|
|
|
default_value=True,
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2021-07-30 21:21:51 +08:00
|
|
|
|
cases_name = ["狂牙大行动", "突围大行动", "命悬一线", "裂空", "光谱"]
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
cases_matcher_group = MatcherGroup(priority=5, permission=GROUP, block=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k_open_case = cases_matcher_group.on_command("开箱")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@k_open_case.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: GroupMessageEvent, arg: Message = CommandArg()):
|
|
|
|
|
|
case_name = arg.extract_plain_text().strip()
|
2021-10-03 14:24:07 +08:00
|
|
|
|
case_name = case_name.replace("武器箱", "").strip()
|
2021-05-20 19:23:32 +08:00
|
|
|
|
if case_name:
|
|
|
|
|
|
result = await open_case(event.user_id, event.group_id, case_name)
|
|
|
|
|
|
else:
|
2021-07-30 21:21:51 +08:00
|
|
|
|
result = await open_case(
|
|
|
|
|
|
event.user_id, event.group_id, random.choice(cases_name)
|
|
|
|
|
|
)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
await k_open_case.finish(result, at_sender=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-30 21:21:51 +08:00
|
|
|
|
total_case_data = cases_matcher_group.on_command(
|
|
|
|
|
|
"我的开箱", aliases={"开箱统计", "开箱查询", "查询开箱"}
|
|
|
|
|
|
)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@total_case_data.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: GroupMessageEvent):
|
2021-05-20 19:23:32 +08:00
|
|
|
|
await total_case_data.finish(
|
|
|
|
|
|
await total_open_statistics(event.user_id, event.group_id),
|
|
|
|
|
|
at_sender=True,
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
group_open_case_statistics = cases_matcher_group.on_command("群开箱统计")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@group_open_case_statistics.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: GroupMessageEvent):
|
2021-05-20 19:23:32 +08:00
|
|
|
|
await group_open_case_statistics.finish(await group_statistics(event.group_id))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my_kinfes = on_command("我的金色", priority=1, permission=GROUP, block=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@my_kinfes.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: GroupMessageEvent):
|
2021-07-30 21:21:51 +08:00
|
|
|
|
await my_kinfes.finish(
|
|
|
|
|
|
await my_knifes_name(event.user_id, event.group_id), at_sender=True
|
|
|
|
|
|
)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
2022-02-19 18:20:19 +08:00
|
|
|
|
open_shilian: Type[Matcher] = cases_matcher_group.on_regex("(.*)连开箱(.*?)")
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@open_shilian.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: GroupMessageEvent, state: T_State):
|
|
|
|
|
|
num = state["_matched_groups"][0].strip()
|
|
|
|
|
|
if is_number(num) or num_dict.get(num):
|
|
|
|
|
|
try:
|
|
|
|
|
|
num = num_dict[num]
|
|
|
|
|
|
except KeyError:
|
|
|
|
|
|
num = int(num)
|
|
|
|
|
|
if num > 30:
|
|
|
|
|
|
await open_shilian.finish("开箱次数不要超过30啊笨蛋!", at_sender=True)
|
|
|
|
|
|
if num < 0:
|
|
|
|
|
|
await open_shilian.finish("再负开箱就扣你明天开箱数了!", at_sender=True)
|
|
|
|
|
|
else:
|
|
|
|
|
|
await open_shilian.finish("必须要是数字切不要超过30啊笨蛋!中文也可!", at_sender=True)
|
|
|
|
|
|
case_name = state["_matched_groups"][1].strip()
|
|
|
|
|
|
case_name = case_name.replace("武器箱", "").strip()
|
|
|
|
|
|
if not case_name:
|
|
|
|
|
|
case_name = random.choice(cases_name)
|
|
|
|
|
|
elif case_name not in cases_name:
|
|
|
|
|
|
await open_shilian.finish("武器箱未收录!", at_sender=True)
|
|
|
|
|
|
await open_shilian.finish(
|
|
|
|
|
|
await open_shilian_case(event.user_id, event.group_id, case_name, num),
|
|
|
|
|
|
at_sender=True,
|
|
|
|
|
|
)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
num_dict = {
|
2021-07-30 21:21:51 +08:00
|
|
|
|
"一": 1,
|
|
|
|
|
|
"二": 2,
|
|
|
|
|
|
"三": 3,
|
|
|
|
|
|
"四": 4,
|
|
|
|
|
|
"五": 5,
|
|
|
|
|
|
"六": 6,
|
|
|
|
|
|
"七": 7,
|
|
|
|
|
|
"八": 8,
|
|
|
|
|
|
"九": 9,
|
|
|
|
|
|
"十": 10,
|
|
|
|
|
|
"十一": 11,
|
|
|
|
|
|
"十二": 12,
|
|
|
|
|
|
"十三": 13,
|
|
|
|
|
|
"十四": 14,
|
|
|
|
|
|
"十五": 15,
|
|
|
|
|
|
"十六": 16,
|
|
|
|
|
|
"十七": 17,
|
|
|
|
|
|
"十八": 18,
|
|
|
|
|
|
"十九": 19,
|
|
|
|
|
|
"二十": 20,
|
|
|
|
|
|
"二十一": 21,
|
|
|
|
|
|
"二十二": 22,
|
|
|
|
|
|
"二十三": 23,
|
|
|
|
|
|
"二十四": 24,
|
|
|
|
|
|
"二十五": 25,
|
|
|
|
|
|
"二十六": 26,
|
|
|
|
|
|
"二十七": 27,
|
|
|
|
|
|
"二十八": 28,
|
|
|
|
|
|
"二十九": 29,
|
|
|
|
|
|
"三十": 30,
|
2021-05-20 19:23:32 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-03 14:24:07 +08:00
|
|
|
|
update_price = on_command("更新开箱价格", priority=1, permission=SUPERUSER, block=True)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@update_price.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _( event: MessageEvent):
|
2021-05-20 19:23:32 +08:00
|
|
|
|
await update_price.send(await util_get_buff_price(str(event.get_message())))
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-03 14:24:07 +08:00
|
|
|
|
update_img = on_command("更新开箱图片", priority=1, permission=SUPERUSER, block=True)
|
2021-05-20 19:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@update_img.handle()
|
2022-02-19 18:20:19 +08:00
|
|
|
|
async def _(event: MessageEvent):
|
2021-05-20 19:23:32 +08:00
|
|
|
|
await update_img.send(await util_get_buff_img(str(event.get_message())))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 重置开箱
|
|
|
|
|
|
@scheduler.scheduled_job(
|
2021-07-30 21:21:51 +08:00
|
|
|
|
"cron",
|
2022-02-20 11:06:04 +08:00
|
|
|
|
hour=10,
|
|
|
|
|
|
minute=22,
|
2021-05-20 19:23:32 +08:00
|
|
|
|
)
|
|
|
|
|
|
async def _():
|
|
|
|
|
|
await update_count_daily()
|