Skip to content

Commit aab9e47

Browse files
committed
BUGFIX:
- Scheduler: load mission_file did not work if full path was provided
1 parent 863ee2d commit aab9e47

File tree

2 files changed

+21
-12
lines changed

2 files changed

+21
-12
lines changed

plugins/scheduler/commands.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -303,20 +303,20 @@ async def restart_mission(self, server: Server, config: dict, rconf: dict, max_w
303303
try:
304304
mission_id = rconf.get('mission_id')
305305
if not mission_id:
306-
filename = rconf.get('mission_file')
307-
else:
308-
filename = None
309-
if not mission_id and not filename:
310-
self.log.error("You need to provide either mission_id or filename to your load configuration!")
311-
return
312-
filename = utils.format_string(filename, instance=server.instance, server=server)
313-
if not mission_id:
306+
filename = utils.format_string(rconf.get('mission_file'),
307+
instance=server.instance, server=server)
308+
if not filename:
309+
self.log.error(
310+
"You need to provide either mission_id or mission_file to your load configuration!")
311+
return
312+
if not os.path.isabs(filename):
313+
filename = os.path.join(await server.get_missions_dir(), filename)
314314
for idx, mission in enumerate(await server.getMissionList()):
315-
if os.path.basename(mission).lower() == filename.lower():
315+
if os.path.normpath(mission).lower() == os.path.normpath(filename).lower():
316316
mission_id = idx + 1
317317
break
318318
else:
319-
self.log.error(f"No mission with name {filename} found in your serverSettings.lua!")
319+
self.log.error(f"Mission {filename} not found in your serverSettings.lua!")
320320
return
321321
self.log.debug(f"Scheduler: Loading mission {mission_id} on server {server.name} ...")
322322
modify_mission = rconf.get('run_extensions', True)

plugins/scheduler/listener.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,17 @@ async def process(self, server: Server, what: dict) -> None:
118118
asyncio.create_task(self.bot.audit(f"{self.plugin_name.title()} rotated to mission "
119119
f"{server.current_mission.display_name}", server=server))
120120
elif what['command'] == 'load':
121-
if not await server.loadMission(what.get('mission_id', what.get('mission_file'))):
122-
self.log.warning(f"Mission {server.current_mission.display_name} NOT loaded.")
121+
if 'mission_id' in what:
122+
_mission = what['mission_id']
123+
elif 'mission_file' in what:
124+
_mission = what['mission_file']
125+
if not os.path.isabs(_mission):
126+
_mission = os.path.join(await server.get_missions_dir(), _mission)
127+
else:
128+
self.log.error(f"No mission_id or mission_file specified in {what}")
129+
return
130+
if not await server.loadMission(_mission):
131+
self.log.warning(f"Mission {_mission} NOT loaded.")
123132
else:
124133
message = f'loaded mission {server.current_mission.display_name}'
125134
if 'user' not in what:

0 commit comments

Comments
 (0)