first_commit .gitignore

This commit is contained in:
hibiki
2021-05-20 18:37:51 +08:00
parent df4e3aea45
commit 155f62c08a
947 changed files with 26899 additions and 0 deletions
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+78
View File
@@ -0,0 +1,78 @@
from nonebot import on_command
from services.log import logger
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
from nonebot.typing import T_State
from util.utils import get_message_text, is_number
from models.bag_user import UserBag
from services.db_context import db
from nonebot.adapters.cqhttp.permission import GROUP
__plugin_name__ = '商店购买'
__plugin_usage__ = '格式:购买 名称或序号 数量(选填,默认为1)\n\t示例:购买 好感双倍加持卡Ⅰ\n\t示例:购买 1 4'
buy = on_command("购买", aliases={'购买道具'}, priority=5, block=True, permission=GROUP)
goods = [
'好感双倍加持卡Ⅰ\t\t售价:30金币\n\t\t今日双倍好感度的概率 + 10%(谁才是真命天子?)(同类道具将覆盖)',
'好感双倍加持卡Ⅱ\t\t售价:140金币\n\t\t今日双倍好感度的概率 + 20%(平平庸庸~)(同类道具将覆盖)',
'好感双倍加持卡Ⅲ\t\t售价:250金币\n\t\t今日双倍好感度的概率 + 30%(金币才是真命天子!)(同类道具将覆盖)'
]
glist = []
plist = []
for i in range(len(goods)):
glist.append(goods[i].split('\t\t')[0])
plist.append(int(goods[i].split('\t\t')[1].split(':')[1].split('金币')[0]))
@buy.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
if get_message_text(event.json()) in ['', '帮助']:
await buy.finish(__plugin_usage__)
if get_message_text(event.json()) in ['神秘药水']:
await buy.finish("你们看看就好啦,这是不可能卖给你们的~", at_sender=True)
msg = get_message_text(event.json()).strip().split(' ')
index = -1
num = 1
if len(msg) > 1:
if is_number(msg[1]):
num = int(msg[1])
print(msg, num)
if is_number(msg[0]):
msg = int(msg[0])
if msg > len(goods) or msg < 1:
await buy.finish('请输入正确的商品id!', at_sender=True)
index = msg - 1
else:
if msg[0] in glist:
for i in range(len(glist)):
if msg == glist[i]:
index = i
break
else:
await buy.finish('请输入正确的商品名称!', at_sender=True)
async with db.transaction():
if index != -1:
if (await UserBag.get_gold(event.user_id, event.group_id)) < plist[index] * num:
await buy.finish('您的金币好像不太够哦', at_sender=True)
if await UserBag.spend_glod(event.user_id, event.group_id, plist[index] * num):
for _ in range(num):
await UserBag.add_props(event.user_id, event.group_id, glist[index])
await buy.send(f'花费 {plist[index]*num} 金币购买 {glist[index]} ×{num} 成功!', at_sender=True)
logger.info(f'USER {event.user_id} GROUP {event.group_id} '
f'花费 {plist[index]*num} 金币购买 {glist[index]} ×{num} 成功!')
else:
await buy.send(f'{glist[index]} 购买失败!', at_sender=True)
logger.info(f'USER {event.user_id} GROUP {event.group_id} '
f'花费 {plist[index]*num} 金币购买 {glist[index]} ×{num} 失败!')
+26
View File
@@ -0,0 +1,26 @@
from nonebot import on_command
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
from nonebot.typing import T_State
from models.bag_user import UserBag
from nonebot.adapters.cqhttp.permission import GROUP
__plugin_name__ = '我的金币'
my_gold = on_command("我的金币", priority=5, block=True, permission=GROUP)
@my_gold.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
await my_gold.finish(await UserBag.get_my_total_gold(event.user_id, event.group_id))
+46
View File
@@ -0,0 +1,46 @@
from nonebot import on_command
from services.log import logger
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
from nonebot.typing import T_State
from models.bag_user import UserBag
from nonebot.adapters.cqhttp.permission import GROUP
__plugin_name__ = '商店基础显示'
my_props = on_command("我的道具", priority=5, block=True, permission=GROUP)
@my_props.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
props = await UserBag.get_props(event.user_id, event.group_id)
if props:
pname_list = []
pnum_list = []
rst = ''
props = props[:-1].split(',')
for p in props:
if p != '':
if p in pname_list:
pnum_list[pname_list.index(p)] += 1
else:
pname_list.append(p)
pnum_list.append(1)
for i in range(len(pname_list)):
rst += f'{i+1}.{pname_list[i]}\t×{pnum_list[i]}\n'
await my_props.send('\n' + rst[:-1], at_sender=True)
logger.info(f'USER {event.user_id} GROUP {event.group_id} 查看我的道具')
else:
await my_props.finish('您的背包里没有任何的道具噢~', at_sender=True)
+41
View File
@@ -0,0 +1,41 @@
from util.utils import scheduler
from models.bag_user import UserBag
from services.log import logger
# 重置每日金币
@scheduler.scheduled_job(
'cron',
# year=None,
# month=None,
# day=None,
# week=None,
# day_of_week="mon,tue,wed,thu,fri",
hour=0,
minute=1,
# second=None,
# start_date=None,
# end_date=None,
# timezone=None,
)
async def _():
try:
user_list = await UserBag.get_user_all()
if user_list:
for user in user_list:
await user.update(
get_today_gold=0,
spend_today_gold=0,
).apply()
except Exception as e:
logger.error(f'重置每日金币错误 e:{e}')
+41
View File
@@ -0,0 +1,41 @@
from nonebot import on_command
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
from nonebot.typing import T_State
from util.img_utils import CreateImg
from configs.path_config import IMAGE_PATH
from util.init_result import image
__plugin_name__ = '商店'
shop_help = on_command("商店", priority=5, block=True)
goods = [
'好感双倍加持卡Ⅰ\t\t售价:30金币\n\t\t下次签到双倍好感度的概率 + 10%(谁才是真命天子?)(同类商品将覆盖)',
'好感双倍加持卡Ⅱ\t\t售价:150金币\n\t\t下次签到双倍好感度的概率 + 20%(平平庸庸~)(同类商品将覆盖)',
'好感双倍加持卡Ⅲ\t\t售价:250金币\n\t\t下次签到双倍好感度的概率 + 30%(金币才是真命天子!)(同类商品将覆盖)'
]
result = ''
for i in range(len(goods)):
result += f'{i + 1}.{goods[i]}\n'
shop = CreateImg(1000, 1000, background=IMAGE_PATH + 'other/shop.png', font_size=20)
shop.text((100, 170), '注【通过 数字 或者 商品名称 购买】')
shop.text((20, 230), result)
shop.text((20, 900), '神秘药水\t\t售价:9999999金币\n\t\t鬼知道会有什么效果~')
shop.save(IMAGE_PATH + 'shop.png')
@shop_help.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
await shop_help.send(image('shop.png'))
+61
View File
@@ -0,0 +1,61 @@
from nonebot import on_command
from services.log import logger
from nonebot.adapters.cqhttp import Bot, GroupMessageEvent
from nonebot.typing import T_State
from util.utils import is_number, get_message_text
from models.bag_user import UserBag
from nonebot.adapters.cqhttp.permission import GROUP
from services.db_context import db
from .data_source import effect
__plugin_name__ = '使用道具'
__plugin_usage__ = '输入 “使用道具 xxx(序号 或 道具名称)“ 即可使用道具\n【注】序号以我的道具序号为准,更推荐使用道具名称使用道具(怕出错)'
use_props = on_command("使用道具", priority=5, block=True, permission=GROUP)
@use_props.handle()
async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
msg = get_message_text(event.json())
if msg in ['', '帮助']:
await use_props.finish(__plugin_usage__)
props = await UserBag.get_props(event.user_id, event.group_id)
if props:
async with db.transaction():
pname_list = []
props = props[:-1].split(',')
for p in props:
if p != '':
if p not in pname_list:
pname_list.append(p)
if is_number(msg):
if 0 < int(msg) <= len(pname_list):
name = pname_list[int(msg) - 1]
else:
await use_props.finish('仔细看看自己的道具仓库有没有这个道具?', at_sender=True)
else:
if msg not in pname_list:
await use_props.finish('道具名称错误!', at_sender=True)
name = msg
if await UserBag.del_props(event.user_id, event.group_id, name) and\
await effect(event.user_id, event.group_id, name):
await use_props.send(f'使用道具 {name} 成功!', at_sender=True)
logger.info(f'USER {event.user_id} GROUP {event.group_id} 使用道具 {name} 成功')
else:
await use_props.send(f'使用道具 {name} 失败!', at_sender=True)
logger.info(f'USER {event.user_id} GROUP {event.group_id} 使用道具 {name} 失败')
else:
await use_props.send('您的背包里没有任何的道具噢~', at_sender=True)
Binary file not shown.
Binary file not shown.
+40
View File
@@ -0,0 +1,40 @@
from models.sigin_group_user import SignGroupUser
async def effect(user_id: int, group_id: int, name: str) -> bool:
print(name)
# try:
if name == '好感双倍加持卡Ⅰ':
user = await SignGroupUser.ensure(user_id, group_id)
await user.update(
add_probability=0.1
).apply()
if name == '好感双倍加持卡Ⅱ':
user = await SignGroupUser.ensure(user_id, group_id)
await user.update(
add_probability=0.2
).apply()
if name == '好感双倍加持卡Ⅲ':
user = await SignGroupUser.ensure(user_id, group_id)
print(user.user_qq)
await user.update(
add_probability=0.3
).apply()
return True
# except Exception:
# return False