diff --git a/MultiServer.py b/MultiServer.py index b4ddb936..b0307cb8 100644 --- a/MultiServer.py +++ b/MultiServer.py @@ -126,6 +126,7 @@ class Context: location_names: typing.Dict[int, str] = Utils.KeyedDefaultDict(lambda code: f'Unknown location (ID:{code})') all_item_and_group_names: typing.Dict[str, typing.Set[str]] forced_auto_forfeits: typing.Dict[str, bool] + non_hintable_names: typing.Dict[str, typing.Set[str]] def __init__(self, host: str, port: int, server_password: str, password: str, location_check_points: int, hint_cost: int, item_cheat: bool, forfeit_mode: str = "disabled", collect_mode="disabled", @@ -196,7 +197,7 @@ class Context: self.item_name_groups = {} self.all_item_and_group_names = {} self.forced_auto_forfeits = collections.defaultdict(lambda: False) - self.non_hintable_names = {} + self.non_hintable_names = collections.defaultdict(frozenset) self._load_game_data() self._init_game_data() diff --git a/WebHostLib/customserver.py b/WebHostLib/customserver.py index da7b54ba..6272633f 100644 --- a/WebHostLib/customserver.py +++ b/WebHostLib/customserver.py @@ -1,15 +1,16 @@ from __future__ import annotations -import functools -import websockets import asyncio +import collections +import datetime +import functools +import logging +import pickle +import random import socket import threading import time -import random -import pickle -import logging -import datetime +import websockets import Utils from .models import db_session, Room, select, commit, Command, db @@ -49,6 +50,8 @@ class DBCommandProcessor(ServerCommandProcessor): class WebHostContext(Context): + room_id: int + def __init__(self, static_server_data: dict): # static server data is used during _load_game_data to load required data, # without needing to import worlds system, which takes quite a bit of memory @@ -62,6 +65,8 @@ class WebHostContext(Context): def _load_game_data(self): for key, value in self.static_server_data.items(): setattr(self, key, value) + self.forced_auto_forfeits = collections.defaultdict(lambda: False, self.forced_auto_forfeits) + self.non_hintable_names = collections.defaultdict(frozenset, self.non_hintable_names) def listen_to_db_commands(self): cmdprocessor = DBCommandProcessor(self)