Release 0.9.0
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
from bot import loaded_modules_dict
|
||||
from os import path, pardir
|
||||
|
||||
module_name = path.basename(path.normpath(path.join(path.abspath(__file__), pardir, pardir)))
|
||||
widget_name = path.basename(path.abspath(__file__))[:-3]
|
||||
|
||||
|
||||
def main_widget(*args, **kwargs):
|
||||
module = args[0]
|
||||
dispatchers_steamid = kwargs.get("dispatchers_steamid", None)
|
||||
|
||||
template_frontend = module.templates.get_template('gameserver_status_widget/view_frontend.html')
|
||||
|
||||
server_is_online = module.dom.data.get("module_telnet", {}).get("server_is_online", True)
|
||||
active_dataset = module.dom.data.get("module_game_environment", {}).get("active_dataset", None)
|
||||
shutdown_in_seconds = (
|
||||
module.dom.data
|
||||
.get("module_game_environment", {})
|
||||
.get(active_dataset, {})
|
||||
.get("shutdown_in_seconds", None)
|
||||
)
|
||||
data_to_emit = module.template_render_hook(
|
||||
module,
|
||||
template=template_frontend,
|
||||
server_is_online=server_is_online,
|
||||
shutdown_in_seconds=shutdown_in_seconds
|
||||
)
|
||||
|
||||
module.webserver.send_data_to_client_hook(
|
||||
module,
|
||||
payload=data_to_emit,
|
||||
data_type="widget_content",
|
||||
clients=[dispatchers_steamid],
|
||||
target_element={
|
||||
"id": "gameserver_status_widget",
|
||||
"type": "div",
|
||||
"selector": "body > header > div > div"
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def update_widget(*args, **kwargs):
|
||||
module = args[0]
|
||||
updated_values_dict = kwargs.get("updated_values_dict", None)
|
||||
|
||||
template_frontend = module.templates.get_template('gameserver_status_widget/view_frontend.html')
|
||||
|
||||
server_is_online = module.dom.get_updated_or_default_value(
|
||||
"module_telnet", "server_is_online", updated_values_dict, True
|
||||
)
|
||||
|
||||
shutdown_in_seconds = module.dom.get_updated_or_default_value(
|
||||
"module_game_environment", "shutdown_in_seconds", updated_values_dict, None
|
||||
)
|
||||
|
||||
data_to_emit = module.template_render_hook(
|
||||
module,
|
||||
template=template_frontend,
|
||||
server_is_online=server_is_online,
|
||||
shutdown_in_seconds=shutdown_in_seconds
|
||||
)
|
||||
|
||||
module.webserver.send_data_to_client_hook(
|
||||
module,
|
||||
payload=data_to_emit,
|
||||
data_type="widget_content",
|
||||
clients=module.webserver.connected_clients.keys(),
|
||||
target_element={
|
||||
"id": "gameserver_status_widget",
|
||||
"type": "div",
|
||||
"selector": "body > header > div > div"
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
widget_meta = {
|
||||
"description": "shows gameserver status, shut it down. or don't ^^",
|
||||
"main_widget": main_widget,
|
||||
"handlers": {
|
||||
"module_telnet/server_is_online": update_widget,
|
||||
"module_game_environment/%map_identifier%/shutdown_in_seconds": update_widget,
|
||||
"module_game_environment/%map_identifier%/cancel_shutdown": update_widget,
|
||||
"module_game_environment/%map_identifier%/force_shutdown": update_widget
|
||||
},
|
||||
"enabled": True
|
||||
}
|
||||
|
||||
loaded_modules_dict["module_" + module_name].register_widget(widget_name, widget_meta)
|
||||
Reference in New Issue
Block a user