Factorio: Fix 500 error on Factorio multi-tracker. (#3184)

* Factorio: Fix 500 error on Factorio multi-tracker.

* Hopefully this also fixes the webhost test failures.
This commit is contained in:
Zach Parks 2024-04-20 18:39:33 -05:00 committed by GitHub
parent 532cff1334
commit a45fa84382
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 6 deletions

View File

@ -1,7 +1,7 @@
import datetime import datetime
import collections import collections
from dataclasses import dataclass from dataclasses import dataclass
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, NamedTuple from typing import Any, Callable, Dict, List, Optional, Set, Tuple, NamedTuple, Counter
from uuid import UUID from uuid import UUID
from flask import render_template from flask import render_template
@ -422,11 +422,11 @@ from worlds import network_data_package
if "Factorio" in network_data_package["games"]: if "Factorio" in network_data_package["games"]:
def render_Factorio_multiworld_tracker(tracker_data: TrackerData, enabled_trackers: List[str]): def render_Factorio_multiworld_tracker(tracker_data: TrackerData, enabled_trackers: List[str]):
inventories: Dict[TeamPlayer, Dict[int, int]] = { inventories: Dict[TeamPlayer, collections.Counter[str]] = {
(team, player): { (team, player): collections.Counter({
tracker_data.item_id_to_name["Factorio"][item_id]: count tracker_data.item_id_to_name["Factorio"][item_id]: count
for item_id, count in tracker_data.get_player_inventory_counts(team, player).items() for item_id, count in tracker_data.get_player_inventory_counts(team, player).items()
} for team, players in tracker_data.get_all_slots().items() for player in players }) for team, players in tracker_data.get_all_slots().items() for player in players
if tracker_data.get_player_game(team, player) == "Factorio" if tracker_data.get_player_game(team, player) == "Factorio"
} }
@ -501,7 +501,7 @@ if "A Link to the Past" in network_data_package["games"]:
total: int total: int
checked: int checked: int
def prepare_inventories(team: int, player: int, inventory: collections.Counter[str], tracker_data: TrackerData): def prepare_inventories(team: int, player: int, inventory: Counter[str], tracker_data: TrackerData):
for item, (prog_item, level) in non_progressive_items.items(): for item, (prog_item, level) in non_progressive_items.items():
if item in inventory: if item in inventory:
inventory[prog_item] = min(max(inventory[prog_item], level), progressive_item_max[prog_item]) inventory[prog_item] = min(max(inventory[prog_item], level), progressive_item_max[prog_item])
@ -525,7 +525,7 @@ if "A Link to the Past" in network_data_package["games"]:
inventory["Triforce"] = 1 inventory["Triforce"] = 1
def render_ALinkToThePast_multiworld_tracker(tracker_data: TrackerData, enabled_trackers: List[str]): def render_ALinkToThePast_multiworld_tracker(tracker_data: TrackerData, enabled_trackers: List[str]):
inventories: Dict[Tuple[int, int], collections.Counter[str]] = { inventories: Dict[Tuple[int, int], Counter[str]] = {
(team, player): collections.Counter({ (team, player): collections.Counter({
tracker_data.item_id_to_name["A Link to the Past"][code]: count tracker_data.item_id_to_name["A Link to the Past"][code]: count
for code, count in tracker_data.get_player_inventory_counts(team, player).items() for code, count in tracker_data.get_player_inventory_counts(team, player).items()