Skip to content

Commit

Permalink
新增KOOK在玩游戏/听音乐状态设置
Browse files Browse the repository at this point in the history
  • Loading branch information
lunzhiPenxil committed Oct 17, 2023
1 parent f80cdea commit 15088a7
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 6 deletions.
2 changes: 2 additions & 0 deletions OlivaDiceOdyssey/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,5 @@
OlivaDiceOdyssey_ver = '3.0.9'
OlivaDiceOdyssey_svn = 10
OlivaDiceOdyssey_ver_short = '%s(%s)' % (str(OlivaDiceOdyssey_ver), str(OlivaDiceOdyssey_svn))

gProc = None
9 changes: 7 additions & 2 deletions OlivaDiceOdyssey/msgCustom.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
dictConsoleSwitchTemplate = {
'default' : {
'odysseyRulesItemLimit': 8,
'odysseyKOOKBotMarketPulseEnable': 0
'odysseyKOOKBotMarketPulseEnable': 0,
'odysseyKOOKPlayGameMode': 1,
'odysseyKOOKPlayGameMusicSoftware': 0
}
}

Expand All @@ -35,7 +37,10 @@
'strOdysseyRulesList': '规则速查找到如下待选结果:\n{tResult}\n输入序号以查看对应结果',
'strOdysseyRulesSplit': '\n',
'strOdysseyRulesError': '规则速查发生错误:\n{tResult}',
'strOdysseyKOOKBotMarketPulseUUID': '-'
'strOdysseyKOOKBotMarketPulseUUID': '-',
'strOdysseyKOOKPlayGameMusicName': '-',
'strOdysseyKOOKPlayGameMusicSinger': '-',
'strOdysseyKOOKPlayGameID': '6',
}

dictStrConst = {
Expand Down
3 changes: 2 additions & 1 deletion OlivaDiceOdyssey/msgReply.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ def unity_init(plugin_event, Proc):
pass

def data_init(plugin_event, Proc):
OlivaDiceOdyssey.data.gProc = Proc
OlivaDiceOdyssey.msgCustomManager.initMsgCustom(Proc.Proc_data['bot_info_dict'])
if 'replyContextPrefixFliter' in OlivaDiceCore.crossHook.dictHookList:
OlivaDiceCore.crossHook.dictHookList['replyContextPrefixFliter'].append('rules')
OlivaDiceCore.crossHook.dictHookList['replyContextPrefixFliter'].append('rule')
OlivaDiceOdyssey.webTool.initKOOKBotMarketPulseThread(Proc.Proc_data['bot_info_dict'])
OlivaDiceOdyssey.webTool.initKOOKManageThread(Proc.Proc_data['bot_info_dict'])

def unity_reply(plugin_event, Proc):
OlivaDiceCore.userConfig.setMsgCount()
Expand Down
137 changes: 134 additions & 3 deletions OlivaDiceOdyssey/webTool.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@Desc : None
'''

import OlivOS
import OlivaDiceCore
import OlivaDiceOdyssey

Expand All @@ -22,6 +23,7 @@
import json
import time
import threading
import hashlib

def getCnmodsReq(title = None, page = None):
res = None
Expand Down Expand Up @@ -91,11 +93,14 @@ def sendKOOKBotMarketPulse(token:str):



def sendKOOKBotMarketPulseThread(botDict:dict):
def sendKOOKManageThread(botDict:dict):
dictTimerCount = {}
dictPlayGameReg = {}
listPlayGameMusicSoftware = ['cloudmusic', 'qqmusic', 'kugou']
checkF = 5
while True:
for botHash in botDict:
# KOOKBotMarketPulse
flag_odysseyKOOKBotMarketPulseEnable = OlivaDiceCore.console.getConsoleSwitchByHash(
'odysseyKOOKBotMarketPulseEnable',
botHash
Expand Down Expand Up @@ -127,10 +132,136 @@ def sendKOOKBotMarketPulseThread(botDict:dict):
dictTimerCount[botHash] = 0
else:
dictTimerCount[botHash] = 0

# KOOK在玩游戏/听音乐状态
flag_odysseyKOOKPlayGameMode = OlivaDiceCore.console.getConsoleSwitchByHash(
'odysseyKOOKPlayGameMode',
botHash
)
str_strOdysseyKOOKPlayGameMusicName = OlivaDiceCore.msgCustom.dictStrCustomDict.get(botHash, {}).get('strOdysseyKOOKPlayGameMusicName', '听啥咧')
str_strOdysseyKOOKPlayGameMusicSinger = OlivaDiceCore.msgCustom.dictStrCustomDict.get(botHash, {}).get('strOdysseyKOOKPlayGameMusicSinger', '谁唱的')
flag_odysseyKOOKPlayGameMusicSoftware = OlivaDiceCore.console.getConsoleSwitchByHash(
'odysseyKOOKPlayGameMusicSoftware',
botHash
)
str_strOdysseyKOOKPlayGameMusicSoftware = listPlayGameMusicSoftware[0]
if flag_odysseyKOOKPlayGameMusicSoftware < len(listPlayGameMusicSoftware) \
and flag_odysseyKOOKPlayGameMusicSoftware >= 0:
str_strOdysseyKOOKPlayGameMusicSoftware = listPlayGameMusicSoftware[flag_odysseyKOOKPlayGameMusicSoftware]
str_strOdysseyKOOKPlayGameID = OlivaDiceCore.msgCustom.dictStrCustomDict.get(botHash, {}).get('strOdysseyKOOKPlayGameID', '0')
int_strOdysseyKOOKPlayGameID = 1521178
try:
int_strOdysseyKOOKPlayGameID = int(str_strOdysseyKOOKPlayGameID)
except:
pass
dictPlayGameReg.setdefault(botHash, {
'data_type': -1,
'id': -1,
'music_name': None,
'singer': None,
'software': None
})
hash_playgame_old_obj = hashlib.new('md5')
for key in dictPlayGameReg[botHash]:
hash_playgame_old_obj.update(('|' + key + ':' + str(dictPlayGameReg[botHash][key]) + '|').encode('utf-8'))
hash_playgame_old = hash_playgame_old_obj.hexdigest()
if 0 == flag_odysseyKOOKPlayGameMode:
dictPlayGameReg[botHash].update({
'data_type': 0,
'id': -1,
'music_name': None,
'singer': None,
'software': None
})
elif 1 == flag_odysseyKOOKPlayGameMode:
dictPlayGameReg[botHash].update({
'data_type': 1,
'id': 1521178,
'music_name': None,
'singer': None,
'software': None
})
elif 2 == flag_odysseyKOOKPlayGameMode:
dictPlayGameReg[botHash].update({
'data_type': 2,
'id': -1,
'music_name': str_strOdysseyKOOKPlayGameMusicName,
'singer': str_strOdysseyKOOKPlayGameMusicSinger,
'software': str_strOdysseyKOOKPlayGameMusicSoftware
})
elif 3 == flag_odysseyKOOKPlayGameMode:
dictPlayGameReg[botHash].update({
'data_type': 1,
'id': int_strOdysseyKOOKPlayGameID,
'music_name': None,
'singer': None,
'software': None
})
hash_playgame_new_obj = hashlib.new('md5')
for key in dictPlayGameReg[botHash]:
hash_playgame_new_obj.update(('|' + key + ':' + str(dictPlayGameReg[botHash][key]) + '|').encode('utf-8'))
hash_playgame_new = hash_playgame_new_obj.hexdigest()
if hash_playgame_old != hash_playgame_new:
if 0 == flag_odysseyKOOKPlayGameMode:
fake_plugin_event = OlivOS.API.Event(
OlivOS.contentAPI.fake_sdk_event(
bot_info = OlivaDiceOdyssey.data.gProc.Proc_data['bot_info_dict'][botHash],
fakename = 'OlivaDice高阶模块'
),
OlivaDiceOdyssey.data.gProc.log
)
try:
if fake_plugin_event.indeAPI.hasAPI('set_playgame_delete_activity_all'):
fake_plugin_event.indeAPI.set_playgame_delete_activity_all()
except:
pass
elif 1 == flag_odysseyKOOKPlayGameMode:
fake_plugin_event = OlivOS.API.Event(
OlivOS.contentAPI.fake_sdk_event(
bot_info = OlivaDiceOdyssey.data.gProc.Proc_data['bot_info_dict'][botHash],
fakename = 'OlivaDice高阶模块'
),
OlivaDiceOdyssey.data.gProc.log
)
try:
if fake_plugin_event.indeAPI.hasAPI('set_playgame_activity_game'):
fake_plugin_event.indeAPI.set_playgame_activity_game(1521178)
except:
pass
elif 2 == flag_odysseyKOOKPlayGameMode:
fake_plugin_event = OlivOS.API.Event(
OlivOS.contentAPI.fake_sdk_event(
bot_info = OlivaDiceOdyssey.data.gProc.Proc_data['bot_info_dict'][botHash],
fakename = 'OlivaDice高阶模块'
),
OlivaDiceOdyssey.data.gProc.log
)
try:
if fake_plugin_event.indeAPI.hasAPI('set_playgame_activity_music'):
fake_plugin_event.indeAPI.set_playgame_activity_music(
str_strOdysseyKOOKPlayGameMusicName,
str_strOdysseyKOOKPlayGameMusicSinger,
str_strOdysseyKOOKPlayGameMusicSoftware
)
except:
pass
elif 3 == flag_odysseyKOOKPlayGameMode:
fake_plugin_event = OlivOS.API.Event(
OlivOS.contentAPI.fake_sdk_event(
bot_info = OlivaDiceOdyssey.data.gProc.Proc_data['bot_info_dict'][botHash],
fakename = 'OlivaDice高阶模块'
),
OlivaDiceOdyssey.data.gProc.log
)
try:
if fake_plugin_event.indeAPI.hasAPI('set_playgame_activity_game'):
fake_plugin_event.indeAPI.set_playgame_activity_game(int_strOdysseyKOOKPlayGameID)
except:
pass
time.sleep(checkF)

def initKOOKBotMarketPulseThread(botDict:dict):
def initKOOKManageThread(botDict:dict):
threading.Thread(
target = OlivaDiceOdyssey.webTool.sendKOOKBotMarketPulseThread,
target = OlivaDiceOdyssey.webTool.sendKOOKManageThread,
args = (botDict, )
).start()

0 comments on commit 15088a7

Please sign in to comment.