Fabian Dill
061de66397
MultiServer: don't mark a slot as having Activity if a location check was done through Collect
2022-01-09 23:15:50 +01:00
Fabian Dill
f8893a7ed3
WebHost: check uploads against zip magic number instead of .zip
2022-01-01 17:18:48 +01:00
Fabian Dill
994621372c
MultiServer: finish removing prompt toolkit
2021-12-03 05:24:43 +01:00
Fabian Dill
7b0b243607
MultiServer: remove promp_toolkit
2021-11-28 04:06:30 +01:00
Fabian Dill
c381df6563
MultiServer: filter new locations via sets, instead of if and only echo new checks
2021-11-23 20:16:48 +01:00
Fabian Dill
26b336d6db
MultiServer: fix IncompatibleVersion not triggering
2021-11-22 20:32:59 +01:00
Fabian Dill
50264993b0
MultiServer: allow null exclusions on GetDataPackage
2021-11-21 18:11:51 +01:00
CaitSith2
3d19c39001
Include number of death_link connected clients in status.
2021-11-21 01:37:23 -08:00
Fabian Dill
97f6003582
MultiServer: fix legacy argument passing in websockets
2021-11-15 20:55:21 +01:00
Fabian Dill
650fd5d792
LttP: refine DeathLink handling.
2021-11-11 16:09:08 +01:00
Fabian Dill
43323e59ce
Logging Revamp
2021-11-10 15:35:43 +01:00
Fabian Dill
ca9bf48ffa
Network: document ConnectUpdate
2021-11-08 16:58:41 +01:00
Fabian Dill
b9941e40c1
LttP: Allow DeathLink to be adjusted post-gen
2021-11-08 16:34:54 +01:00
Fabian Dill
e8639988ce
MultiServer: original_cmd to InvalidPacket
2021-11-08 16:07:37 +01:00
Fabian Dill
666e3b5333
MultiServer: add JSONMessagePart["player"]
2021-11-07 14:42:05 +01:00
Fabian Dill
2b124aaff4
MultiServer: add time to RoomInfo
2021-11-07 11:37:58 +01:00
Fabian Dill
f43475f33b
MultiServer: declare spectators as default goal-finished
2021-11-06 08:19:10 +01:00
Fabian Dill
e756a77c70
MultiServer: implement Tracker tag
...
Docs: add InvalidPacket
Docs: add known Tags
Docs: add DeathLink
LttPClient: potentially fix DeathLink chaining
2021-11-04 13:23:13 +01:00
Fabian Dill
bcfa5d0a7e
MultiServer: remove accidental loop from !status
2021-11-04 09:01:14 +01:00
Fabian Dill
45f92536a6
MultiServer: add !status command
2021-11-04 08:57:27 +01:00
Sandra
cb8da2e757
Marks player names with a pair of asterisks if they have completed their goal.
2021-11-03 04:56:54 +00:00
Fabian Dill
e64d5c5f17
Network: implement new packet: ConnectUpdate
2021-11-01 20:00:55 +01:00
Fabian Dill
4472ef20fe
Factorio: add DeathLink option
2021-10-25 09:58:08 +02:00
Fabian Dill
c152790011
MultiServer: fix a refactor mistake
2021-10-25 08:24:32 +02:00
Fabian Dill
4e3b8a5178
MultiServer: allow sending another Connect, to update tags, uuid, team etc.
2021-10-25 06:57:06 +02:00
Fabian Dill
6af1f98c88
CommonClient.py UI: add progressbar representing % of checks done.
...
CommonClient.py UI: add Commands button that points out /help and !help
CommonClient.py: track permissions
CommonClient.py: track missing locations and checked locations in lib
2021-10-22 05:25:09 +02:00
Fabian Dill
8e35372aad
Network: add RoomInfo -> Games
...
Allows clients to only download relevant parts of the datapackage, or to keep ID lookups per-game, and for Bounce to tell if there will be a receiving end.
2021-10-22 04:46:00 +02:00
CaitSith2
17833a0bfc
documentation corrections
2021-10-20 12:13:25 -07:00
Fabian Dill
be070b79af
MultiServer: add !checked command, as it may be useful for coop.
2021-10-20 19:58:07 +02:00
Fabian Dill
6b4bdf569c
MultiServer: coop support
...
Just connect multiple clients to the same slot
2021-10-20 05:56:28 +02:00
Fabian Dill
89c05cfcae
FactorioClient: Fix bridge not sending, and limit bridge to run up to once a second.
...
Setup: Fix LttP Adjuster needs to be installed with generator/lttp
MultiServer: fix duplicate !forfeits
2021-10-19 01:47:11 +02:00
Fabian Dill
34eba2655e
MultiServer: add !collect and collect_mode
...
CommonClient: make missing and checked location lookups faster
FactorioClient: implement reverse grant technologies for collect/forfeit/coop
2021-10-18 22:58:29 +02:00
Fabian Dill
66e198cbb6
Merge branch 'rip_compat' into Archipelago_Main
...
# Conflicts:
# MultiServer.py
2021-10-18 08:18:28 +02:00
Fabian Dill
b57306beac
MultiServer: Don't send password required indicator if the password is empty string (user intention is likely no password)
2021-10-15 22:08:24 +02:00
CaitSith2
ca4b0acd92
Add !hint_location command.
...
As it turns out, because factorio location names are 100% identical to factorio item names, it is impossible without a command that explicitly hints locations to hint a specific factorio location, or any other game where location names match item names.
2021-10-09 20:47:12 -07:00
Fabian Dill
62db9ad982
MultiServer: send RoomUpdate -> permissions if permissions change
2021-10-09 15:24:08 +02:00
Fabian Dill
f56bf0db73
MultiServer: remove legacy datapackage keys
...
MultiServer: remove warning about legacy datapackage use
MultiServer: remove legacy permission flags
Options: add "random" option to all Choices
LttP: remove random special handling from HeartColor
2021-09-30 13:22:25 +02:00
Fabian Dill
952a155003
MultiServer: move permissions to an IntEnum
2021-09-26 09:06:12 +02:00
Fabian Dill
8e569a1d1f
AutoWorld: split remote_start_inventory out from remote_items
2021-09-23 03:48:37 +02:00
Fabian Dill
b780257098
MultiServer: fix IgnoreGame missing 'not'
2021-09-17 04:35:38 +02:00
Fabian Dill
b82e3f2a8a
MultiServer: Split InvalidSlot out into InvalidGame and document all error codes.
2021-09-17 04:32:09 +02:00
Fabian Dill
071b0eeb77
MultiServer: add datapackage legacy warning
2021-09-11 22:37:24 +02:00
Fabian Dill
411d4434a3
MultiServer: update to websockets 10 and implement new websockets.broadcast
2021-09-09 18:56:52 +02:00
Fabian Dill
01f1545b3e
AutoWorld: add forced_auto_forfeit and set it for StS
2021-08-31 16:04:54 +02:00
Fabian Dill
f4f043ac87
MultiServer: categorize methods
2021-08-26 16:19:37 +02:00
Fabian Dill
bb15d0636e
Network: implement Bounce and Bounced
2021-08-02 01:35:24 +02:00
Fabian Dill
2cc7d8395b
MultiServer: fix loading old savegames
2021-08-01 22:47:56 +02:00
Fabian Dill
2f2e039356
MultiServer: Limit !hint to a single new result if costs are on.
2021-08-01 17:09:10 +02:00
Fabian Dill
0cd388ca66
MultiServer: seeded !hint selected
2021-08-01 17:02:38 +02:00
Fabian Dill
7ef1fe81f6
MultiServer: move !hint point counting to end of message
2021-08-01 16:48:25 +02:00
Fabian Dill
4dde466364
MultiServer: print which game is being played.
2021-07-29 16:21:11 +02:00
black-sliver
eb0e5b7438
MultiServer: don't extract .zip
2021-07-27 16:01:55 +00:00
Fabian Dill
d2c420a1fd
fix MultiServer file dailog ending targeting
2021-07-25 03:17:22 +02:00
Fabian Dill
fc7d37def4
MultiServer.py: when loading a .zip, create the .archipelago next to it to consistently load the same savegame.
2021-07-23 02:27:45 +02:00
Fabian Dill
f6b3dfe5ba
MultiServer: allow loading a .zip containing a .archipelago directly.
2021-07-23 02:19:41 +02:00
Fabian Dill
2fc4006dfa
RIP: MultiMystery and Mystery, now there's just Generate
...
Other changes:
host.yaml Multi Mystery options were moved and changed
generate_output now has an output_directory argument
MultiWorld.get_game_players(<game>) now replaces <game>_player_ids
Python venv should now work properly
2021-07-21 18:08:15 +02:00
Fabian Dill
bceb8540a1
assorted fixes
2021-07-20 21:19:53 +02:00
Fabian Dill
54b3a57f46
fix GetDataPackage exclusions
2021-07-14 10:35:00 +02:00
Fabian Dill
4f998a6880
Documentation: now in repository. Programming documentation should be in /docs, player/user documentation should be in /WebHostLib/static/assets/tutorial.
...
Network: implement InvalidPacket, remove InvalidArguments and InvalidCmd
Datapackage: implement per-game versions and per-game package retrieval
2021-07-14 10:02:39 +02:00
Fabian Dill
f456dba993
newstyle DataPackage. Both versions in merged format for compatibility for now.
2021-07-12 18:05:46 +02:00
Fabian Dill
50a21fbd74
MultiServer: remove message that could never trigger in current protocol
2021-07-12 15:40:31 +02:00
Fabian Dill
768ae584d3
AutoWorld: add hint_blacklist, automatically generated all_names
...
MultiServer: revamp hint commands with AutoWorld
2021-07-12 15:33:20 +02:00
Fabian Dill
9821e05386
Fix: When sending items via send or getitem, only consider items that belong to that world
...
Fix: Allow cheat-sending items into unconnected slots
2021-07-12 14:35:44 +02:00
Fabian Dill
60972e026b
send packed NetworkItem in PrintJSON
2021-06-30 20:57:00 +02:00
Fabian Dill
4d4af9d74e
WebHost: Guard each Room via file-lock
2021-06-29 03:11:48 +02:00
Fabian Dill
f870bb3fad
MultiServer:
...
implement a hint recheck that triggers on get_save()
Still torn if I want a single hint list per team and filter on demand, or have filtered lists and re_check on demand.
2021-06-25 21:04:37 +02:00
Fabian Dill
f4a2f344a7
format MultiServer.py
2021-06-19 03:03:06 +02:00
Fabian Dill
a08d7bb1b2
Settings: add requires
2021-06-18 22:15:54 +02:00
Fabian Dill
3e1941a561
allow Factorio Client to recognize if it's trying to connect to the wrong multiworld.
2021-05-16 00:21:00 +02:00
Fabian Dill
b2f3fd56f4
bunch of fixes after testing round
2021-05-14 01:25:41 +02:00
Fabian Dill
c4ea879651
"precollect" visible Factorio tech tree as hints, so points are never spent on what was visible.
2021-05-13 02:10:37 +02:00
Fabian Dill
8cdf9d2ddc
faster .apsave loading and saving
2021-05-13 01:58:53 +02:00
Fabian Dill
d5cdff5ec9
filter hints to whom they concern
2021-05-13 01:37:50 +02:00
Kono Tyran
f24a81fdaf
fix !remaining command to look beyond ALTTP
2021-05-11 21:38:44 +00:00
Fabian Dill
a231850911
Make hint costs relative
2021-05-11 23:08:50 +02:00
Fabian Dill
f06d160615
don't check the AP tag anymore
2021-05-10 01:18:57 +02:00
Fabian Dill
909172cbad
Factorio, Minecraft & Hollow Knight: add startinventory support
2021-05-09 21:22:21 +02:00
Fabian Dill
60f64cc46b
rename get_location_name_from_address to get_location_name_from_id
2021-04-28 15:48:11 +02:00
KonoTyran
5087b78c28
fixed !missing to point to location table not item. ( #2 )
2021-04-28 15:46:54 +02:00
Fabian Dill
2dd6dcab20
remote now unneccessary line
2021-04-17 22:01:34 +02:00
Fabian Dill
4494207717
generalize LocationScout and make LttP remote items break entirely
2021-04-17 22:00:45 +02:00
Fabian Dill
501c55cc26
add per-slot data and embed HK options in it
2021-04-17 21:03:57 +02:00
Fabian Dill
2df7e4e537
add seed_name to multidata and RoomInfo
2021-04-12 09:36:45 +02:00
Fabian Dill
3858a12f26
MultiServer: check for correct game
2021-04-10 21:08:01 +02:00
Fabian Dill
f0a6b5a8e4
Factorio:
...
add visibility option
fix tech_cost using the wrong variable name
fix yaml defaults not init'ing the Option class
LttP:
fix potential pathing confusion in maseya palette shuffler
Server:
Minimum version per team made no sense, removed
2021-04-08 19:53:24 +02:00
Fabian Dill
443fc03700
Send actual NetworkPlayer on Connected too
2021-04-07 02:49:36 +02:00
Fabian Dill
6567f14415
add log_network Server argument
2021-04-07 02:37:21 +02:00
Fabian Dill
32560eac92
send actual NetworkPlayers
2021-04-07 02:20:03 +02:00
Fabian Dill
20b72369d8
allow basic WebHost functionality to work
2021-04-04 03:18:19 +02:00
Fabian Dill
250099f5fd
Small adjustments
2021-04-03 20:02:15 +02:00
Fabian Dill
91bcd59940
implement Factorio options max_science_pack and tech_cost
...
also give warnings about deprecated LttP options
also fix FactorioClient.py getting stuck if send an unknown item id
also fix !missing having an extra newline after each entry
also default to no webui
2021-04-03 14:47:49 +02:00
Fabian Dill
dc73fa0f33
Factorio integration
2021-04-01 11:40:58 +02:00
Fabian Dill
7402143c73
turn it around~
2021-03-19 04:32:17 +01:00
Fabian Dill
cdc330629b
allow more HK names in console commands
2021-03-19 04:30:19 +01:00
Fabian Dill
8d6bec8b9a
allow cheating Hollow Knight items
2021-03-19 04:21:53 +01:00
Fabian Dill
218fb0298f
Some .Net compatibility
2021-03-19 04:14:59 +01:00
Fabian Dill
a528ed5e9e
Client now uses location_id consistently internally, instead of switching on a dime all the time
...
And some smaller changes
2021-03-07 22:05:07 +01:00
Fabian Dill
78ba31444e
additional cleanup
2021-03-03 01:57:12 +01:00
Fabian Dill
0917f21384
revert PrintJSON to use key data, to match with documented behaviour
2021-03-02 22:36:50 +01:00
Fabian Dill
7871555620
Implement PrintJSON
...
Remove deprecated network packets
Make Client send new locations checked only once
Simplify register_location_checks
Rip out Server savegame compatibility
2021-03-02 22:31:44 +01:00
Fabian Dill
1849693353
Make object hook more dynamic; ignoring unknown arguments
2021-02-28 20:32:15 +01:00
Fabian Dill
f19291aaed
Remove Fake Hollow Knight Items and Locations
...
Add GetDataPackage Network system
2021-02-25 02:07:28 +01:00
Fabian Dill
fe17fc6320
log misunderstood network commands
2021-02-21 23:54:08 +01:00
Fabian Dill
cbbdb2948d
attach command to args dict
2021-02-21 23:46:05 +01:00
Fabian Dill
ff9b24e88e
Hollow Knight integration
...
(prototype status)
2021-02-21 20:17:24 +01:00
Fabian Dill
1da1e4eac6
Sample implemention of JSONtoTextParser
2021-01-31 11:33:39 +01:00
Fabian Dill
2553b1d2ee
Merge branch 'main' into breaking_changes
2021-01-30 23:40:25 +01:00
Fabian Dill
c988ec24b6
update item table offsets
2021-01-30 23:40:01 +01:00
Fabian Dill
a646594f08
Merge branch 'main' into breaking_changes
...
# Conflicts:
# BaseClasses.py
# Fill.py
# MultiClient.py
# MultiServer.py
# Utils.py
# test/dungeons/TestDungeon.py
# test/inverted/TestInverted.py
# test/inverted_minor_glitches/TestInvertedMinor.py
# test/inverted_owg/TestInvertedOWG.py
# test/minor_glitches/TestMinor.py
# test/owg/TestVanillaOWG.py
# test/vanilla/TestVanilla.py
# worlds/alttp/ItemPool.py
# worlds/alttp/Main.py
# worlds/alttp/Rom.py
2021-01-30 23:29:32 +01:00
CaitSith2
6163ddd374
Use names listed in Regions.lookup_name_to_id for location names.
2021-01-22 04:40:09 -08:00
CaitSith2
8d63e13ca7
Revert "Multidata is now able to provide items/location IDs to server."
...
This reverts commit f47a85d435
.
2021-01-21 22:43:07 -08:00
CaitSith2
67119f8858
Revert "Get remaining things for better client/server interactions."
...
This reverts commit 6c1d3cb60d
.
2021-01-21 22:41:19 -08:00
CaitSith2
6c1d3cb60d
Get remaining things for better client/server interactions.
2021-01-21 16:57:31 -08:00
CaitSith2
f47a85d435
Multidata is now able to provide items/location IDs to server.
2021-01-21 16:23:56 -08:00
CaitSith2
8754c63d4e
client/server changes
...
* Server now includes checked locations as a separate list.
* If client connects to a server that sends checked checks, client can now give accurate information on checked locations, and not show "New Check: seed-unknown-location (total/216)" and instead accurately show "New check: 'seed-known-location' (total_checked/seed_total)"
/missing now accurately reports what was previously checked.
* client now attempts to translate "Unknown Location ID: 'ID'" into an actual location, if server is unaware of the location, but the client is.
2021-01-21 16:21:51 -08:00
Fabian Dill
c604dfe509
move networks commands to [str, Optional[dict]] across the board
...
and some other updates
PrintHTML is an experiment and is unlikely the solution I'll go with
2021-01-21 23:37:58 +01:00
Fabian Dill
514cd19367
Merge branch 'main' into breaking_changes
...
# Conflicts:
# BaseClasses.py
# Mystery.py
# WebHostLib/downloads.py
# WebHostLib/models.py
# WebHostLib/templates/macros.html
# WebHostLib/upload.py
# worlds/alttp/ItemPool.py
# worlds/alttp/Main.py
2021-01-17 06:50:25 +01:00
Fabian Dill
5afe44f9cb
use multidata locations to get missing checks (in server)
2021-01-15 03:22:56 +01:00
Fabian Dill
10b7c83f1d
Just use locations in the multidata, not static IDs, for forfeits
...
Should also work better for *other* games
2021-01-10 14:50:38 +01:00
Fabian Dill
233e9e6208
expand forfeit to forfeit out anything that is in multidata, so forfeits works with not yet implemented locations
2021-01-10 12:52:23 +01:00
Fabian Dill
e03841794b
Add Client warning when forfeit is set to automatic and client can't send required information
2021-01-04 22:41:18 +01:00
Fabian Dill
8ebd36b5a7
update Archipelago
2021-01-03 14:32:32 +01:00
Fabian Dill
08ca4245c1
Merge branch 'main' into breaking_changes
...
# Conflicts:
# Adjuster.py
# AdjusterMain.py
# BaseClasses.py
# MultiClient.py
# MultiServer.py
# Mystery.py
# Utils.py
# WebHostLib/downloads.py
# WebHostLib/generate.py
# dumpSprites.py
# test/TestBase.py
# worlds/alttp/EntranceRandomizer.py
# worlds/alttp/Main.py
# worlds/alttp/Rom.py
2021-01-03 13:13:59 +01:00
Fabian Dill
e25a03173b
Implement "minimum version" checks into server and clients
2020-12-29 19:23:14 +01:00
Fabian Dill
5128657349
allow setting remaining_mode from server options
2020-11-30 21:07:02 +01:00
Fabian Dill
f56efbc9e3
improve handling of embedded server options:
...
use whitelist
attempt to set, skip otherwise
attempt to convert data type
2020-11-15 15:21:41 +01:00
CaitSith2
7e3e2134e0
Add option to client for actually forcing item sending safety off.
2020-10-27 16:27:39 -07:00
CaitSith2
66894dbd86
Add further safeties to sending of location checks.
...
This safety is able to be turned off, but has to be done so on EVERY connection explicitly.
2020-10-27 16:24:21 -07:00
CaitSith2
6ff4b20d81
Only save reported locations that actually exist in the multidata.
2020-10-27 02:20:56 -07:00
CaitSith2
83db79815a
Make multiclient/multiserver/tracker keydropshuffle aware
2020-10-27 00:53:32 -07:00
Fabian Dill
1d58f54101
move ALTTP to its own world folder
2020-10-24 05:38:56 +02:00
Fabian Dill
4f8c737eec
squashed commit of many breaking changes
...
Dropping Support for Python 3.7; adding support for Python 3.9
2020-10-19 08:26:31 +02:00
Fabian Dill
add0762114
more compat removal
2020-10-18 23:18:54 +02:00
Fabian Dill
94dafa3c55
Open Breaking changes
2020-10-18 23:07:48 +02:00
CaitSith2
119a5a2b66
Allow client side login and remote issuing of server side commands.
...
Disabled by default. Requires a password to be set for it to be enabled.
2020-09-21 22:11:43 -07:00
CaitSith2
e77cd7c38a
Add command to allow or forbid a specific player from using the !forfeit command despite server restrictions on the command.
...
Allows for allowing a player to forfeit if they are under a time restriction where they have to leave the game, without allowing the command globally.
2020-09-02 02:23:31 -07:00
Fabian Dill
bca1a2d9e0
WebHost: Automatic !hint tracking
2020-07-27 19:30:31 +02:00
Fabian Dill
789d0245cc
MultiServer: supposed to restart savefile on older formats too
2020-07-24 14:14:45 +02:00
Fabian Dill
88ba7b55d2
Multiserver: [0,1] == (0,1) -> False, turns out.
2020-07-24 14:00:59 +02:00
Berserker66
35e2b2d20d
set_save adjustments for older DB savegames
2020-07-22 12:02:09 +02:00
Fabian Dill
78c85cce14
WebHost: List Rooms in a sortable table
2020-07-21 23:15:19 +02:00
Fabian Dill
ac238d9b14
WebHost: Don't count exit saving as activity, thereby creating a hosting loop
2020-07-20 14:17:05 +02:00
Fabian Dill
1d036c0d3c
add compatibility server setting
2020-07-16 16:57:38 +02:00
Fabian Dill
626b6b0521
fix loading old savegames from ponyorm DB
2020-07-16 02:29:36 +02:00
Fabian Dill
93ecf5988b
implement secrets.SystemRandom() for --race
2020-07-14 07:01:51 +02:00
Fabian Dill
59a71dbb05
restore multidata backwards compatibility
2020-07-14 05:06:25 +02:00
Fabian Dill
ea9e103cb0
update rom name handling
2020-07-14 04:48:56 +02:00
Fabian Dill
ead9a0ef15
use modern formatting for joined message
2020-07-13 03:38:19 +02:00
Fabian Dill
baba4b7c02
!hint now properly gives you prior collection info without needing enough to pay for another hint
2020-07-13 03:21:28 +02:00
caitsith2
319a315ec5
Fix !countdown and actually make !options work
2020-07-11 13:20:16 -07:00