9
0
mirror of https://github.com/WiIIiam278/HuskSync.git synced 2025-12-19 14:59:21 +00:00
Files
HuskSync/test
William 904c65ba39 feat: rework locked maps syncing (#464)
* Better maps syncing (#2)

* Do not create new views for maps from current world

* Fix maps in shulkers not converting

* Add bundle support for map conversion

* Rework map sync

* Fix empty statements in database

* Fix missing imports

* Rename connectMapIds -> bindMapIds

* Use data adapter to save maps

* Split Mongo readMapData

* Split MySQL readMapData

* Split Postgres readMapData

* Update database schemas

Use server names instead of world UUIDs

* Update Database class

* Update MongoDbDatabase class

* Update MySqlDatabase class

* Update PostgresDatabase class

* Update BukkitMapPersister class

Use server names instead of world UUIDs

* Remove unused code

* Add my nickname to contributors :)

* Start implementing Redis map caching

* Continue implementing Redis map caching

* Bind map ids on Redis before writing to DB

* Finish implementing Redis map data caching

* refactor: decouple new map logic Redis caching from DB

* test: enable debug logging in test suite

* docs: update docs with new username method

* feat: adjust a method name

---------

Co-authored-by: Sóla Lusøt <60041069+solaluset@users.noreply.github.com>
2025-03-07 16:06:27 +00:00
..
2025-03-07 14:26:10 +00:00
2025-03-07 14:26:10 +00:00

Testing HuskSync

This is a rudimentary Python script for running a little Proxy network of servers for quickly testing HuskSync.

Run the script to spin up a Velocity proxy and a pair of Paper servers for testing HuskSync.

  • Useful for development & feature testing
  • Not useful for stress or integration testing.
  • Only works on Windows (as it deals with bash scripts)
  • Only spins up Paper servers at the moment ()

If you don't want to do this you can also run a single-server test with the various runServer tasks in the Bukkit/Fabric modules.

PRs to improve testing are welcomed with open arms & cups of tea!

Requirements

  • Windows
  • Python 3.14
  • MySQL DB running locally
  • Redis running locally

How to run

  1. Edit spin_network.py to your liking (change the MC version, add your name/UUID as a server operator)
  2. Configure HuskSync to point to your local MySQL/Redis DB (edit ~/test/config.yml)
  3. Run `pip install -r requirements.txt
  4. From the repository route, open terminal and run cd ./test, then python3 ./spin_network.py

Tips

  • Delete ~/test/servers and ~/test/HuskSync each time you want to download Paper/Velocity & re-create worlds, etc.
  • Create an IntelliJ Run & Debug Python task to do this with a Run Gradle Task before to clean build the project before.