Bombsquad-Ballistica-Modded.../dist/ba_root/mods/custom_hooks.py
2021-12-29 13:23:22 +05:30

157 lines
4 KiB
Python

import ba
import _ba
from chatHandle import handlechat
import setting
from tools import servercheck
from tools import ServerUpdate
import _thread
from stats import mystats
from datetime import datetime
from ba import _activity
from typing import Optional, Any
from spazmod import modifyspaz
from bastd.activity import dualteamscore
from bastd.activity import multiteamscore
from bastd.activity import drawscore
from bastd.actor.zoomtext import ZoomText
from tools import TeamBalancer
from bastd.activity.coopscore import CoopScoreScreen
from ba import _hooks
from tools import Logger
from playersData import pdata
# from bastd.activity.multiteamvictory import
# from tools import fireflies
settings = setting.get_settings_data()
def filter_chat_message(msg, client_id):
return handlechat.filter_chat_message(msg, client_id)
def on_app_launch():
bootstraping()
servercheck.checkserver().start()
ServerUpdate.check()
#something
def score_screen_on_begin(_stats):
pass
#stats
def playerspaz_init(player):
pass
#add tag,rank,effect
def bootstraping():
#_ba.disconnect_client=new_disconnect
_ba.set_server_device_name(settings["HostDeviceName"])
_ba.set_server_name(settings["HostName"])
_ba.set_transparent_kickvote(settings["ShowKickVoteStarterName"])
_ba.set_kickvote_msg_type(settings["KickVoteMsgType"])
_thread.start_new_thread(mystats.refreshStats,())
if settings["elPatronPowerups"]["enable"]:
from tools import elPatronPowerups
elPatronPowerups.enable()
if settings["mikirogQuickTurn"]["enable"]:
from tools import wavedash
if settings["whitelist"]:
pdata.loadWhitelist()
if settings["discordbot"]["enable"]:
from tools import discordbot
discordbot.token=settings["discordbot"]["token"]
discordbot.liveStatsChannelID=settings["discordbot"]["liveStatsChannelID"]
discordbot.logsChannelID=settings["discordbot"]["logsChannelID"]
discordbot.liveChat=settings["discordbot"]["liveChat"]
discordbot.BsDataThread()
discordbot.init()
def new_disconnect(clid,duration=120):
print("new new_disconnect")
_ba.ban_client(clid,duration)
org_begin=ba._activity.Activity.on_begin
def new_begin(self):
org_begin(self)
night_mode()
ba._activity.Activity.on_begin=new_begin
org_end=ba._activity.Activity.end
def new_end(self,results:Any=None,delay:float=0.0,force:bool=False):
act=_ba.get_foreground_host_activity()
if isinstance(act,CoopScoreScreen):
TeamBalancer.checkToExitCoop()
org_end(self,results,delay,force)
ba._activity.Activity.end=new_end
org_player_join=ba._activity.Activity.on_player_join
def on_player_join(self, player) -> None:
TeamBalancer.on_player_join()
org_player_join(self,player)
ba._activity.Activity.on_player_join=on_player_join
def night_mode():
if(settings['autoNightMode']['enable']):
start=datetime.strptime(settings['autoNightMode']['startTime'],"%H:%M")
end=datetime.strptime(settings['autoNightMode']['endTime'],"%H:%M")
now=datetime.now()
if now.time() > start.time() or now.time() < end.time():
activity = _ba.get_foreground_host_activity()
activity.globalsnode.tint = (0.5, 0.7, 1.0)
# if settings['autoNightMode']['fireflies']:
# fireflies.factory()
from tools import dualteamscore as newdts
if settings["newResultBoard"]:
dualteamscore.TeamVictoryScoreScreenActivity= newdts.TeamVictoryScoreScreenActivity
multiteamscore.MultiTeamScoreScreenActivity.show_player_scores = newdts.show_player_scores
drawscore.DrawScoreScreenActivity=newdts.DrawScoreScreenActivity
def scoreScreenBegin():
TeamBalancer.balanceTeams()
def kick_vote_started(by,to):
Logger.log(by+" started kick vote for "+to)
_hooks.kick_vote_started=kick_vote_started
def on_kicked(id):
Logger.log(id+" kicked by kickvotes")
_hooks.on_kicked=on_kicked
def on_kick_vote_end():
Logger.log("Kick vote End")