* change to persist all hints to ctx.hints regardless of found status
* remove if not found entirely as it seems like it was added to not double charge hint points
9842399d8b
* Core: downgrade websockets to 13.x
14.x currently doesn't work for MultiServer.
14.x is not supported with py3.8, so updating to 14.x should be scheduled for AP 0.6.0.
* CI: 5min timeout for hosting test
* MultiServer: properly shutdown even if ctx is invalid
* CI: increase hosting test timeout to 10min
this is 4x expected time, just to be safe.
* Test: add hosting simulation test
* WebHost: add weak typing to get_app()
* MultiServer: add typing to auto_saver_thread
* MultiServer: don't cancel task, properly end it
* customserver: stop auto-save thread from saving after shutdown
and make sure it stops, another potential memory leak
* MultiServer, customserver: make datapackage small again
* customserver: collect/finish room tasks
Hopefully fixes the memory leak we are seeing
* CI: test hosting
* Test: hosting: verify autohoster saves on Ctrl+C
* customserver: save when stopping via Ctrl+C
* Make the hint info show up in a better order
* Change how old_hints is modified/done
---------
Co-authored-by: NewSoupVi <57900059+NewSoupVi@users.noreply.github.com>
* Add better "verbs" on joining msg, and improve leaving msgs
* Add 'HintGame' tag, for projects like BKSudoku/APSudoku/HintMachine
* data in one place instead of 3
* Clean up 'ignore_game' loop to use any() instead
---------
Co-authored-by: beauxq <beauxq@yahoo.com>
* MultiServer: speed up location commands
Adds optimized pure python wrapper around locations dict
Adds optimized cython implementation of the wrapper, saving cpu time and 80% memory use
* Speedups: auto-build on import and build during setup
* Speedups: add requirements
* CI: don't break with build_ext
* Speedups: use C++ compiler for pyximport
* Speedups: cleanup and more validation
* Speedups: add tests for LocationStore
* Setup: delete temp in-place build modules
* Speedups: more tests and safer indices
The change has no security implications, but ensures that entries[IndexEntry.start] is always valid.
* Speedups: add cython3 compatibility
* Speedups: remove unused import
* Speedups: reformat
* Speedup: fix empty set in test
* Speedups: use regular dict in Locations.get_for_player
* CI: run unittests with beta cython
now with 2x nicer names
* notify clients of their amount of hint points on initial connection and when hinting
* send in connect packet instead of sending a RoomUpdate on connect
* send hint_points update in `on_new_hint`
* add to connected packet docs
* hint_points isn't a new variable on RoomUpdate now
* note roomupdate can contain connected members
* add the hint point stuff to commonclient
* only show hint points when relevant and default to 0
* Revert "note roomupdate can contain connected members"
* remove hint_points from roomupdate args list and condense explanation of possible packet args
* updates from phar's review
* Small tweak to wording in RoomUpdate
---------
Co-authored-by: Fabian Dill <Berserker66@users.noreply.github.com>
Co-authored-by: Phar <zach@alliware.com>