black-sliver
fa3925cd74
Ui: add open_filename helper
...
* native look & feel on Linux (Gnome and KDE)
* falls back to tkinter
2022-06-04 21:12:45 +02:00
Fabian Dill
ff608b72a2
Tests: add test to check for typo'd item name group definitions ( #594 )
...
* Tests: add test to check for typo'd item name group definitions
Factorio: item *name* group was pointing to IDs instead.
Server: prevent crash when using Event-filled item name group
* Server: prevent crash when /hint'ing for an item name group with events
2022-06-01 08:25:40 -07:00
Fabian Dill
19c3c8056b
Server: remove compat to ~0.2 unversioned save data
...
If the savegame was loaded in the last few months, it will have already been upgraded.
2022-06-01 08:21:54 -07:00
Fabian Dill
aa9f43dea1
Fuzzy: switch to damerau_levenshtein_distance with ignored case
2022-05-10 19:09:07 -07:00
Fabian Dill
513ab62ce7
Fuzzy: replace thefuzz with jellyfish
...
GPL -> BSD2Clause and should be faster though I haven't tested it myself and just trusted people on the internet.
Jellyfish also allows us access to many more algorithms should they be any better. Trying out Jaro distance now instead of Levenshtein.
2022-05-10 19:09:07 -07:00
CaitSith2
517e72f442
Add options to generate page ( #450 )
...
* Add Item cheat permission to generate page.
* Indicate that both remaining_mode and item cheat are disabled in race mode.
* Add server_password
* refine tooltips and help for server_password and !admin command.
* Add Plando options to generation page.
* Remove debugging code
* Style adjustments and HTML formatting and tag fixes with the goal of making the page nicer looking and not as vertical.
Co-authored-by: Chris Wilson <chris@legendserver.info>
2022-05-04 20:03:19 -07:00
Fabian Dill
5eab07d8d6
Network: add games argument to GetDataPackage ( #473 )
2022-04-30 04:39:08 +02:00
Alchav
50eaf712a9
Remove outdated disclaimer
2022-04-29 00:29:21 +02:00
CaitSith2
8e68aa0ccd
Add group collect ( #424 )
...
* Add group collect
* code cleanup
2022-04-10 14:08:54 -07:00
black-sliver
42fecc7491
Core: change how required versions work, deprecate IgnoreGame ( #426 )
...
`AutoWorld.World`s can set required_server_version and required_client_version properties. Drop `get_required_client_version()`.
`MultiServer` will set an absolute minimum client version based on its capability (protocol level).
`IgnoreVersion` tag is replaced by using `Tracker` or `TextOnly` with empty or null `game`.
Ignoring game will also ignore game's required_client_version (and fall back to server capability).
2022-04-08 11:16:36 +02:00
Fabian Dill
0db1660369
MultiServer: fix crash when hint_location hits a location that can exist, but did not exist in this multiworld.
2022-03-30 19:59:34 -07:00
Fabian Dill
e4ab10fe92
MultiServer: try to import tkinter, then provide some feedback ( #329 )
...
* MultiServer: try to import tkinter, then provide some feedback
TK may not be installed alongside python on some systems, like minimal linux installations.
* specify tkinter package
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
Co-authored-by: Hussein Farran <hmfarran@gmail.com>
2022-03-23 08:53:35 -04:00
Fabian Dill
14633724f2
MultiServer: don't count groups as players in status message
2022-03-14 20:31:57 +01:00
Fabian Dill
69721d2d04
MultiServer: remove no longer needed value check from Set packet
2022-03-04 22:48:27 +01:00
Fabian Dill
7ca6f24e6c
MultiServer: allow multiple, ordered operations
...
MultiServer: rename "data" on Get, Retrieved and SetNotify to "keys"
MultiServer: add some more operators
SniClient: some pep8 cleanup
2022-03-04 21:36:18 +01:00
Alchav
3b68c6902c
Save game options with server save data ( #294 )
2022-03-02 00:39:58 +01:00
Fabian Dill
534ce179ec
MultiServer: fix sending items_handling warning
2022-02-23 03:35:24 +01:00
Fabian Dill
53ab224fba
MultiServer: rip Store, Modify -> Set, Retrieve -> Get, Modified -> SetReply, ModifyNotify -> SetNotify
2022-02-22 12:17:21 +01:00
Fabian Dill
5faf1f27de
MultiServer: add network commands Store, Retrieve, Modify and ModifyNotify
2022-02-22 11:48:08 +01:00
Fabian Dill
ad75ee8c50
Multiserver: warn about missing items_handling
2022-02-20 04:17:27 +01:00
Fabian Dill
71ea8d7148
Multiserver: provide compat for 0.2.3 and somewhat older multidata
2022-02-19 17:50:56 +01:00
CaitSith2
fd8cace362
Reworked hints for item_link
2022-02-18 13:03:55 -08:00
Fabian Dill
14448ad97e
Multidata: allow SoE/SM/LttP to connect via player name for use in Tracker/Text clients
2022-02-09 21:06:50 +01:00
black-sliver
ed607bdc37
Fix wrong message when loading apsave
...
from doubling received_items that happened when moving from world-based to client-based remote_items
2022-02-06 12:28:46 +01:00
Fabian Dill
279b682ac2
ItemLink: hopefully fix coop functionality
2022-02-05 17:35:12 +01:00
Fabian Dill
28201a6c38
Core: implement first version of ItemLinks
2022-02-05 15:49:19 +01:00
Jarno Westhof
9fd6d1b81f
[Server] Broadcast hint_cost and location_check_points update changes via RoomUpdate
2022-02-03 13:09:59 +01:00
Fabian Dill
dc4b064c73
Options: change displayname to display_name
2022-02-02 16:29:29 +01:00
Fabian Dill
6333cc3bea
Server: optimize send_multiple
2022-01-31 19:05:00 +01:00
N00byKing
00bf9c569a
Add send_multiple command
2022-01-31 18:56:46 +01:00
Fabian Dill
e0628ec6c9
WebHost: correct some texts
2022-01-31 10:11:39 +01:00
Fabian Dill
8c638bcfd8
Server: allow LocationScouts to create free hints
2022-01-30 14:14:49 +01:00
Fabian Dill
0bd252e7f5
Server: add slot_info key to Connected
2022-01-30 13:57:12 +01:00
Fabian Dill
25dd89ed17
MultiServer: delete unused function
2022-01-28 09:29:29 +01:00
CaitSith2
6b1c555d38
Fix inconsistency in parameter name now that !hint only hints items, not locations.
2022-01-23 22:09:06 -08:00
black-sliver
f0cfe30a36
Move remote_items and _start_inventory from world to client ( #227 )
2022-01-23 06:38:46 +01:00
Jarno Westhof
929c684977
[Bug] fixed collect
2022-01-21 23:13:14 +01:00
black-sliver
0c46cc6843
Add per-client remote_item settings + TextOnly Tag
...
* Tracker tag will receive all items via server (including local)
* TextOnly tag will receive no items
* TextClient sends TextOnly tag
* precollected items / start_inventory does not get an "Order received" number anymore
* local items do always get an "Order received" number now
* multisave changed, includes version number now, upgrade works for games (not trackers)
2022-01-21 22:42:59 +01:00
Fabian Dill
80a7e4175b
MultiServer: update FuzzyWuzzy to TheFuzz
2022-01-19 06:14:13 +01:00
Fabian Dill
a6cca3094d
WebHost: give proper incompatible version error message.. in the future when this is deployed for next time.
2022-01-18 08:23:38 +01:00
Fabian Dill
5c1d2b3393
Network: unify flags docs and implementation
2022-01-18 06:45:09 +01:00
Fabian Dill
028207022a
Factorio: support new colors in-game
...
Various: cleanup and comments
2022-01-18 06:16:16 +01:00
Jarno Westhof
c9fa49d40f
[Network_Item] Add item flags to network item so client can distinct some details ( #210 )
2022-01-18 05:52:29 +01:00
Fabian Dill
e74333cbd3
MultiServer: remove location hinting from !hint and /hint; add /hint_location
2022-01-16 02:20:37 +01:00
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