Release 0.9.0
This commit is contained in:
82
bot/modules/locations/actions/edit_location.py
Normal file
82
bot/modules/locations/actions/edit_location.py
Normal file
@@ -0,0 +1,82 @@
|
||||
from bot import loaded_modules_dict
|
||||
from os import path, pardir
|
||||
module_name = path.basename(path.normpath(path.join(path.abspath(__file__), pardir, pardir)))
|
||||
action_name = path.basename(path.abspath(__file__))[:-3]
|
||||
|
||||
|
||||
def main_function(module, event_data, dispatchers_steamid):
|
||||
location_identifier = event_data[1].get("location_identifier", None)
|
||||
active_dataset = module.dom.data.get("module_game_environment", {}).get("active_dataset", None)
|
||||
|
||||
event_data[1]["action_identifier"] = action_name
|
||||
event_data[1]["fail_reason"] = []
|
||||
|
||||
location_owner = event_data[1].get("location_owner", dispatchers_steamid)
|
||||
location_name = event_data[1].get("location_name", None)
|
||||
if location_identifier is None or location_identifier == "":
|
||||
location_identifier = ''.join(e for e in location_name if e.isalnum())
|
||||
|
||||
location_shape = event_data[1].get("location_shape", module.default_options.get("standard_location_shape", None))
|
||||
location_types = event_data[1].get("location_type", [])
|
||||
location_coordinates = event_data[1].get("location_coordinates", {})
|
||||
location_teleport_entry = event_data[1].get("location_teleport_entry", {})
|
||||
location_dimensions = event_data[1].get("location_dimensions", {})
|
||||
location_enabled = event_data[1].get("is_enabled", False)
|
||||
last_changed = event_data[1].get("last_changed", False)
|
||||
|
||||
if all([
|
||||
location_name is not None and len(location_name) >= 3,
|
||||
location_identifier is not None,
|
||||
location_shape is not None,
|
||||
active_dataset is not None,
|
||||
location_owner is not None
|
||||
]):
|
||||
module.dom.data.upsert({
|
||||
module.get_module_identifier(): {
|
||||
"elements": {
|
||||
active_dataset: {
|
||||
str(location_owner): {
|
||||
location_identifier: {
|
||||
"name": location_name,
|
||||
"identifier": location_identifier,
|
||||
"dataset": active_dataset,
|
||||
"shape": location_shape,
|
||||
"type": location_types,
|
||||
"coordinates": location_coordinates,
|
||||
"teleport_entry": location_teleport_entry,
|
||||
"dimensions": location_dimensions,
|
||||
"owner": str(location_owner),
|
||||
"is_enabled": location_enabled,
|
||||
"selected_by": [],
|
||||
"last_changed": last_changed
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}, dispatchers_steamid=dispatchers_steamid, max_callback_level=4)
|
||||
module.callback_success(callback_success, module, event_data, dispatchers_steamid)
|
||||
return
|
||||
|
||||
event_data[1]["fail_reason"].append("not all conditions met!")
|
||||
module.callback_fail(callback_fail, module, event_data, dispatchers_steamid)
|
||||
|
||||
|
||||
def callback_success(module, event_data, dispatchers_steamid, match=None):
|
||||
pass
|
||||
|
||||
|
||||
def callback_fail(module, event_data, dispatchers_steamid):
|
||||
pass
|
||||
|
||||
|
||||
action_meta = {
|
||||
"description": "manages location entries",
|
||||
"main_function": main_function,
|
||||
"callback_success": callback_success,
|
||||
"callback_fail": callback_fail,
|
||||
"requires_telnet_connection": False,
|
||||
"enabled": True
|
||||
}
|
||||
|
||||
loaded_modules_dict["module_" + module_name].register_action(action_name, action_meta)
|
||||
Reference in New Issue
Block a user