Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge AP Main to Shivers Fork Changes #14

Closed
wants to merge 112 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
76266f2
Core: Launcher: can drag-and-drop patch on Launcher window (#3442)
beauxq Jun 4, 2024
6a60a93
Zillion: fix some game over bugs (#3466)
beauxq Jun 5, 2024
da2f0f9
HK: lower max egg cost (#3463)
qwint Jun 5, 2024
afe4b29
Setup: rename ArchipelagoLauncher(DEBUG) to ArchipelagoLauncherDebug …
Berserker66 Jun 5, 2024
04ec2f3
Setup: delete old world folders (#3469)
Berserker66 Jun 5, 2024
be03dca
Core: add unit tests and more documentation for numeric options (#2926)
alwaysintreble Jun 5, 2024
c554c3f
A Short Hike: Add new options and option groups (#3410)
chandler05 Jun 5, 2024
93cd137
Launcher: handle apworld installation (#3472)
Berserker66 Jun 5, 2024
911eba3
WebHost: update dependencies (#3476)
black-sliver Jun 5, 2024
afb6d9c
MultiServer, customserver, CI, Test: Fix problems in room hosting and…
black-sliver Jun 5, 2024
86da3eb
Remove all functools lru cache (#3446)
NewSoupVi Jun 6, 2024
7f1e95c
Core: gitignore custom_worlds (#3479)
beauxq Jun 6, 2024
808f2a8
Core: update dependencies (#3477)
black-sliver Jun 6, 2024
6bb1cce
Core: hot reload components from installed apworld (#3480)
beauxq Jun 6, 2024
31419c8
TUNIC: Remove rule for west Quarry bomb wall (#3481)
ScipioWright Jun 6, 2024
223f2f5
A Short Hike: Update installation instructions (#3474)
chandler05 Jun 6, 2024
d72afe7
Update setup_en.md (#3483)
silent-destroyer Jun 7, 2024
8c61486
Bomb Rush Cyberfunk: Fix missing location (#3475)
TRPG0 Jun 7, 2024
b053fee
HK: adds schema to validate plando charm costs (#3471)
qwint Jun 7, 2024
b3a2473
Docs: Fixing subject-verb agreement (#3491)
Exempt-Medic Jun 8, 2024
39deef5
Fix Choice and TextChoice options crashing WebHost if the option's de…
LegendaryLinux Jun 8, 2024
89d584e
WebHost: allow getting checksum-specific datapackage via /api/datapac…
Berserker66 Jun 8, 2024
a0653cd
HK: adds split movement items to skills item group (#3462)
qwint Jun 8, 2024
302017c
Test: hosting: handle writes during start_room (#3492)
black-sliver Jun 8, 2024
0d9fce2
Core: load frozen decompressed worlds (#3488)
Berserker66 Jun 8, 2024
76804d2
Core: explicitly import importlib.util (#3224)
Berserker66 Jun 8, 2024
c478e55
Generate: improve logging capture (#3484)
Berserker66 Jun 9, 2024
2198a70
Core: CommonClient: command history and echo (#3236)
MatthewMarinets Jun 9, 2024
5f8a8e6
Update Rom.py (#3498)
jamesbrq Jun 9, 2024
84a6d50
sc2: Fixed sc2 client's /received command breaking after PR 1933 merg…
MatthewMarinets Jun 9, 2024
0a91280
SC2: update inno_setup.iss to remove old sc2wol world folder (#3495)
MatthewMarinets Jun 10, 2024
35617bd
Tests: Add checksum validation to the postgen datapackage test (#3456)
alwaysintreble Jun 10, 2024
4840826
Adventure: Update to use new options api (#3326)
JusticePS Jun 10, 2024
75bef3d
Various: fix absolute imports in worlds (#3489)
Berserker66 Jun 10, 2024
ccfffa1
CODEOWNERS: Replace @ThePhar with @qwint as Hollow Knight maintainer.…
ThePhar Jun 10, 2024
54531c6
Muse Dash: Remove regions for a decent speed gain in generating world…
DeamonHunter Jun 11, 2024
87d24eb
Aquaria: Add entrance rule and fix start_inventory_from_pool (#3473)
tioui Jun 11, 2024
e755f1a
SC2: don't close all SC2 instances when one quits (#3507)
Berserker66 Jun 12, 2024
7299891
Allow worlds to add options to prebuilt groups (#3509)
nex3 Jun 12, 2024
b9e454a
TS: add indirect connections (#3490)
Silvris Jun 12, 2024
3b9b935
WebHost: delete old docs files (#3503)
Berserker66 Jun 12, 2024
2daccde
Core: don't lock progression (#3501)
Berserker66 Jun 12, 2024
acf85eb
Speedups: remove dependency on c++ (#2796)
black-sliver Jun 12, 2024
c108845
CI: more checks in build and rework compression (#3336)
black-sliver Jun 12, 2024
da34800
Fix Incorrect Link Syntax in SA2B Linux Setup (#3524)
JoshuaEagles Jun 13, 2024
f6e3113
WebHost: Fix "Add" button for custom option values causing a weird re…
NewSoupVi Jun 13, 2024
2ae5136
WebHost: Fix default values that are 2 or more words in Weighted Opti…
NewSoupVi Jun 13, 2024
533395d
WebHost: Fix Named Range displays on Player Options page (#3521)
NewSoupVi Jun 13, 2024
e9ad7cb
WebHost: fix option doc indent (#3513)
Berserker66 Jun 13, 2024
1fe3d84
CI: Install specific inno version (#3526)
black-sliver Jun 14, 2024
3972b1b
Options: fix yaml export corner case (#3529)
Berserker66 Jun 14, 2024
c61505b
WebHost/Core/Lingo: Render option documentation as reStructuredText i…
nex3 Jun 14, 2024
e796f0a
Core: Expose option aliases (#3512)
hatkirby Jun 15, 2024
0354315
Pokemon Emerald: Remove README (#3532)
Zunawe Jun 15, 2024
df94271
LttP: fix single-player no-logic generation (#3454)
Berserker66 Jun 15, 2024
92023a2
Pokemon RB: Add new options to slot_data (#3538)
coveleski Jun 15, 2024
2a11d61
The Witness: Fix Shuffle Postgame always thinking it's Challenge Vict…
NewSoupVi Jun 15, 2024
e8542b8
Generate: split ERmain out of main (#3515)
Berserker66 Jun 16, 2024
753eb86
Pokemon Red/Blue: Replaces link to R&B Poptracker with a new one (#3516)
palex00 Jun 16, 2024
1d31437
LADX: Moved ROM requirement from generate_output to stage_assert_gene…
mrkssr Jun 16, 2024
c622240
Tunc: Update plando connections description (#3545)
ScipioWright Jun 16, 2024
1f685b4
CommonClient: Use lookup_in_game instead of lookup_in_slot in case o…
ThePhar Jun 16, 2024
898509e
CODEOWNERS: Remove @zig-for as world maintainer for LADX. (#3525)
ThePhar Jun 16, 2024
af213c9
LADX: Converted to new options API (+other small refactors) (#3542)
hatkirby Jun 18, 2024
67a0a04
Tests: minor: update tests base for Options API (#2516)
chesslogic Jun 18, 2024
19d0054
TUNIC: Add note about bushes to logic section of game info page (#3555)
ScipioWright Jun 18, 2024
b6191ff
Shivers: Adds missing indirect conditions. (#3558)
korydondzila Jun 18, 2024
240d1a3
LADX: Adding 'Option Groups' to the player options page. (#3560)
mrkssr Jun 19, 2024
9bb3947
Doom 2, Heretic: fix missing items (Doom2 Megasphere, Heretic Torch) …
KScl Jun 19, 2024
903a0ba
Docs: Change setup_en.md to use Latest releases page (#3543)
eudaimonistic Jun 19, 2024
f515a08
The Messenger: Fix missing rules for Double Swing Saws (#3562)
alwaysintreble Jun 19, 2024
4f514e5
Muse Dash: Song name change (#3572)
DeamonHunter Jun 20, 2024
ce37bed
WebHost: fix accidental robots.txt capture (#3502)
Berserker66 Jun 21, 2024
40c9dfd
Undertale: Fixes a major logic bug, and updates Undertale to use the …
jonloveslegos Jun 21, 2024
d00abe7
OOT: Adds Options to slot_data for poptracker-pack (#3570)
StripesOO7 Jun 22, 2024
60a2692
LADX: Probably fix generation error that palex had
mrkssr Jun 22, 2024
5ca3153
Tests: give seed on default tests and fix execnet error (#3520)
Silvris Jun 22, 2024
1ab1aef
Core: update required_server_version to 0.5.0 (#3580)
Berserker66 Jun 23, 2024
935c94d
Installer: Fix .apworld registration (#3588)
remyjette Jun 25, 2024
07dd8f0
LTTP: Add Missing Blind's Cell rule (#3589)
Alchav Jun 25, 2024
6c54b35
Yoshi's Island: Fix client giving victory randomly (#3586)
PinkSwitch Jun 26, 2024
5882ce7
Various worlds: Fix more absolute world imports (#3510)
black-sliver Jun 27, 2024
77304a8
TUNIC: Update game info page with more tips (#3591)
ScipioWright Jun 27, 2024
b8f78af
TUNIC: Fix minor logic bug in upper Zig (#3576)
ScipioWright Jun 27, 2024
e07a266
SC2 Tracker: Migrate icons away from sc2legacy (#3595)
Ziktofel Jun 27, 2024
d4c00ed
CommonClient: fix /received with items from Server (#3597)
Berserker66 Jun 29, 2024
1c817e1
Muse Dash: Update installation guides to recommend installing v0.6.1.…
DeamonHunter Jun 29, 2024
6191ff4
LADX: Fixed Display Names In Options Page (#3584)
mrkssr Jun 29, 2024
2424fb0
Muse Dash: 6th Anniversary Song update (#3593)
DeamonHunter Jun 29, 2024
55cb81d
TUNIC: Update victory condition (#3579)
silent-destroyer Jun 29, 2024
192f1b3
Update Raft option text, setup guide text (#3272)
SunnyBat Jun 29, 2024
31bd5e3
OOT: Add keys item_name_group (#3218)
ScipioWright Jun 29, 2024
52a13d3
Tests: fix error reporting in test_default_all_state_can_reach_everyt…
Silvris Jul 1, 2024
e95bb5e
WebHost: Better host room (#3496)
black-sliver Jul 1, 2024
401606e
Docs: Clarify docs for `create_items` stage (#3600)
EmilyV99 Jul 1, 2024
b6925c5
WebHost: Log: handle FileNotFoundError (#3603)
black-sliver Jul 1, 2024
93617fa
The Witness: mypy compliance (#3112)
NewSoupVi Jul 2, 2024
95110c4
The Witness: Fix door shuffle being completely broken
NewSoupVi Jul 2, 2024
50f7a79
Zillion: new map generation feature (#3604)
beauxq Jul 3, 2024
f673574
Core: Fix !remaining (#3611)
remyjette Jul 3, 2024
315e0c8
Docs: Lastest -> Latest (#3616)
ScipioWright Jul 3, 2024
d4d0a3e
TUNIC: Make the shop checks require a sword
ScipioWright Jul 5, 2024
ca76628
sc2: Fixing typo in itemgroups.py causing spurious item groups with 2…
MatthewMarinets Jul 5, 2024
4054a9f
Aquaria: Renaming some locations for consistency (#3533)
tioui Jul 5, 2024
e7a8e19
TUNIC: Use fewer parameters in helper functions (#3356)
ScipioWright Jul 5, 2024
bfac100
MLSS: Fix for missing cutscene trigger
jamesbrq Jul 5, 2024
f99ee77
The Witness: Add some unit tests (#3328)
NewSoupVi Jul 6, 2024
9b22458
Stardew Valley 6.x.x: The Content Update (#3478)
agilbert1412 Jul 7, 2024
c96c554
Tests, WebHost: add tests for host_room and minor cleanup (#3619)
black-sliver Jul 7, 2024
8c86139
ALTTP: Bombable Wall to Crystaroller Room Logic (#3627)
Alchav Jul 10, 2024
1e3a4b6
Zillion: more rooms added to map_gen option (#3634)
beauxq Jul 11, 2024
eaec41d
TUNIC: Fix event region for Quarry fuse (#3635)
ScipioWright Jul 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 54 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,15 @@ jobs:
run: |
Invoke-WebRequest -Uri https://github.com/Ijwu/Enemizer/releases/download/${Env:ENEMIZER_VERSION}/win-x64.zip -OutFile enemizer.zip
Expand-Archive -Path enemizer.zip -DestinationPath EnemizerCLI -Force
choco install innosetup --version=6.2.2 --allow-downgrade
- name: Build
run: |
python -m pip install --upgrade pip
python setup.py build_exe --yes
if ( $? -eq $false ) {
Write-Error "setup.py failed!"
exit 1
}
$NAME="$(ls build | Select-String -Pattern 'exe')".Split('.',2)[1]
$ZIP_NAME="Archipelago_$NAME.7z"
echo "$NAME -> $ZIP_NAME"
Expand All @@ -49,12 +54,6 @@ jobs:
Rename-Item "exe.$NAME" Archipelago
7z a -mx=9 -mhe=on -ms "../dist/$ZIP_NAME" Archipelago
Rename-Item Archipelago "exe.$NAME" # inno_setup.iss expects the original name
- name: Store 7z
uses: actions/upload-artifact@v4
with:
name: ${{ env.ZIP_NAME }}
path: dist/${{ env.ZIP_NAME }}
retention-days: 7 # keep for 7 days, should be enough
- name: Build Setup
run: |
& "${env:ProgramFiles(x86)}\Inno Setup 6\iscc.exe" inno_setup.iss /DNO_SIGNTOOL
Expand All @@ -65,11 +64,38 @@ jobs:
$contents = Get-ChildItem -Path setups/*.exe -Force -Recurse
$SETUP_NAME=$contents[0].Name
echo "SETUP_NAME=$SETUP_NAME" >> $Env:GITHUB_ENV
- name: Check build loads expected worlds
shell: bash
run: |
cd build/exe*
mv Players/Templates/meta.yaml .
ls -1 Players/Templates | sort > setup-player-templates.txt
rm -R Players/Templates
timeout 30 ./ArchipelagoLauncher "Generate Template Options" || true
ls -1 Players/Templates | sort > generated-player-templates.txt
cmp setup-player-templates.txt generated-player-templates.txt \
|| diff setup-player-templates.txt generated-player-templates.txt
mv meta.yaml Players/Templates/
- name: Test Generate
shell: bash
run: |
cd build/exe*
cp Players/Templates/Clique.yaml Players/
timeout 30 ./ArchipelagoGenerate
- name: Store 7z
uses: actions/upload-artifact@v4
with:
name: ${{ env.ZIP_NAME }}
path: dist/${{ env.ZIP_NAME }}
compression-level: 0 # .7z is incompressible by zip
if-no-files-found: error
retention-days: 7 # keep for 7 days, should be enough
- name: Store Setup
uses: actions/upload-artifact@v4
with:
name: ${{ env.SETUP_NAME }}
path: setups/${{ env.SETUP_NAME }}
if-no-files-found: error
retention-days: 7 # keep for 7 days, should be enough

build-ubuntu2004:
Expand Down Expand Up @@ -110,23 +136,44 @@ jobs:
echo -e "setup.py dist output:\n `ls dist`"
cd dist && export APPIMAGE_NAME="`ls *.AppImage`" && cd ..
export TAR_NAME="${APPIMAGE_NAME%.AppImage}.tar.gz"
(cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -czvf ../dist/$TAR_NAME Archipelago && mv Archipelago "$DIR_NAME")
(cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -cv Archipelago | gzip -8 > ../dist/$TAR_NAME && mv Archipelago "$DIR_NAME")
echo "APPIMAGE_NAME=$APPIMAGE_NAME" >> $GITHUB_ENV
echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
# - copy code above to release.yml -
- name: Build Again
run: |
source venv/bin/activate
python setup.py build_exe --yes
- name: Check build loads expected worlds
shell: bash
run: |
cd build/exe*
mv Players/Templates/meta.yaml .
ls -1 Players/Templates | sort > setup-player-templates.txt
rm -R Players/Templates
timeout 30 ./ArchipelagoLauncher "Generate Template Options" || true
ls -1 Players/Templates | sort > generated-player-templates.txt
cmp setup-player-templates.txt generated-player-templates.txt \
|| diff setup-player-templates.txt generated-player-templates.txt
mv meta.yaml Players/Templates/
- name: Test Generate
shell: bash
run: |
cd build/exe*
cp Players/Templates/Clique.yaml Players/
timeout 30 ./ArchipelagoGenerate
- name: Store AppImage
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPIMAGE_NAME }}
path: dist/${{ env.APPIMAGE_NAME }}
if-no-files-found: error
retention-days: 7
- name: Store .tar.gz
uses: actions/upload-artifact@v4
with:
name: ${{ env.TAR_NAME }}
path: dist/${{ env.TAR_NAME }}
compression-level: 0 # .gz is incompressible by zip
if-no-files-found: error
retention-days: 7
54 changes: 54 additions & 0 deletions .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Run CMake / CTest C++ unit tests

name: ctest

on:
push:
paths:
- '**.cc?'
- '**.cpp'
- '**.cxx'
- '**.hh?'
- '**.hpp'
- '**.hxx'
- '**.CMakeLists'
- '.github/workflows/ctest.yml'
pull_request:
paths:
- '**.cc?'
- '**.cpp'
- '**.cxx'
- '**.hh?'
- '**.hpp'
- '**.hxx'
- '**.CMakeLists'
- '.github/workflows/ctest.yml'

jobs:
ctest:
runs-on: ${{ matrix.os }}
name: Test C++ ${{ matrix.os }}

strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]

steps:
- uses: actions/checkout@v4
- uses: ilammy/msvc-dev-cmd@v1
if: startsWith(matrix.os,'windows')
- uses: Bacondish2023/setup-googletest@v1
with:
build-type: 'Release'
- name: Build tests
run: |
cd test/cpp
mkdir build
cmake -S . -B build/ -DCMAKE_BUILD_TYPE=Release
cmake --build build/ --config Release
ls
- name: Run tests
run: |
cd test/cpp
ctest --test-dir build/ -C Release --output-on-failure
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
echo -e "setup.py dist output:\n `ls dist`"
cd dist && export APPIMAGE_NAME="`ls *.AppImage`" && cd ..
export TAR_NAME="${APPIMAGE_NAME%.AppImage}.tar.gz"
(cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -czvf ../dist/$TAR_NAME Archipelago && mv Archipelago "$DIR_NAME")
(cd build && DIR_NAME="`ls | grep exe`" && mv "$DIR_NAME" Archipelago && tar -cv Archipelago | gzip -8 > ../dist/$TAR_NAME && mv Archipelago "$DIR_NAME")
echo "APPIMAGE_NAME=$APPIMAGE_NAME" >> $GITHUB_ENV
echo "TAR_NAME=$TAR_NAME" >> $GITHUB_ENV
# - code above copied from build.yml -
Expand Down
31 changes: 30 additions & 1 deletion .github/workflows/unittests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ on:
- '.github/workflows/unittests.yml'

jobs:
build:
unit:
runs-on: ${{ matrix.os }}
name: Test Python ${{ matrix.python.version }} ${{ matrix.os }}

Expand Down Expand Up @@ -60,3 +60,32 @@ jobs:
- name: Unittests
run: |
pytest -n auto

hosting:
runs-on: ${{ matrix.os }}
name: Test hosting with ${{ matrix.python.version }} on ${{ matrix.os }}

strategy:
matrix:
os:
- ubuntu-latest
python:
- {version: '3.11'} # current

steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python.version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python.version }}
- name: Install dependencies
run: |
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python ModuleUpdate.py --yes --force --append "WebHostLib/requirements.txt"
- name: Test hosting
run: |
source venv/bin/activate
export PYTHONPATH=$(pwd)
python test/hosting/__main__.py
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ Output Logs/
/installdelete.iss
/data/user.kv
/datapackage
/custom_worlds

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down Expand Up @@ -177,6 +178,7 @@ dmypy.json
cython_debug/

# Cython intermediates
_speedups.c
_speedups.cpp
_speedups.html

Expand Down
10 changes: 5 additions & 5 deletions AdventureClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def __init__(self, server_address, password):
self.local_item_locations = {}
self.dragon_speed_info = {}

options = Utils.get_options()
options = Utils.get_settings()
self.display_msgs = options["adventure_options"]["display_msgs"]

async def server_auth(self, password_requested: bool = False):
Expand All @@ -102,7 +102,7 @@ def _set_message(self, msg: str, msg_id: int):
def on_package(self, cmd: str, args: dict):
if cmd == 'Connected':
self.locations_array = None
if Utils.get_options()["adventure_options"].get("death_link", False):
if Utils.get_settings()["adventure_options"].get("death_link", False):
self.set_deathlink = True
async_start(self.get_freeincarnates_used())
elif cmd == "RoomInfo":
Expand All @@ -112,7 +112,7 @@ def on_package(self, cmd: str, args: dict):
if ': !' not in msg:
self._set_message(msg, SYSTEM_MESSAGE_ID)
elif cmd == "ReceivedItems":
msg = f"Received {', '.join([self.item_names.lookup_in_slot(item.item) for item in args['items']])}"
msg = f"Received {', '.join([self.item_names.lookup_in_game(item.item) for item in args['items']])}"
self._set_message(msg, SYSTEM_MESSAGE_ID)
elif cmd == "Retrieved":
if f"adventure_{self.auth}_freeincarnates_used" in args["keys"]:
Expand Down Expand Up @@ -415,8 +415,8 @@ async def atari_sync_task(ctx: AdventureContext):


async def run_game(romfile):
auto_start = Utils.get_options()["adventure_options"].get("rom_start", True)
rom_args = Utils.get_options()["adventure_options"].get("rom_args")
auto_start = Utils.get_settings()["adventure_options"].get("rom_start", True)
rom_args = Utils.get_settings()["adventure_options"].get("rom_args")
if auto_start is True:
import webbrowser
webbrowser.open(romfile)
Expand Down
13 changes: 11 additions & 2 deletions CommonClient.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

from MultiServer import CommandProcessor
from NetUtils import (Endpoint, decode, NetworkItem, encode, JSONtoTextParser, ClientStatus, Permission, NetworkSlot,
RawJSONtoTextParser, add_json_text, add_json_location, add_json_item, JSONTypes)
RawJSONtoTextParser, add_json_text, add_json_location, add_json_item, JSONTypes, SlotType)
from Utils import Version, stream_input, async_start
from worlds import network_data_package, AutoWorldRegister
import os
Expand Down Expand Up @@ -225,6 +225,9 @@ def lookup_in_game(self, code: int, game_name: typing.Optional[str] = None) -> s
def lookup_in_slot(self, code: int, slot: typing.Optional[int] = None) -> str:
"""Returns the name for an item/location id in the context of a specific slot or own slot if `slot` is
omitted.

Use of `lookup_in_slot` should not be used when not connected to a server. If looking in own game, set
`ctx.game` and use `lookup_in_game` method instead.
"""
if slot is None:
slot = self.ctx.slot
Expand Down Expand Up @@ -493,6 +496,11 @@ def on_user_say(self, text: str) -> typing.Optional[str]:
"""Gets called before sending a Say to the server from the user.
Returned text is sent, or sending is aborted if None is returned."""
return text

def on_ui_command(self, text: str) -> None:
"""Gets called by kivy when the user executes a command starting with `/` or `!`.
The command processor is still called; this is just intended for command echoing."""
self.ui.print_json([{"text": text, "type": "color", "color": "orange"}])

def update_permissions(self, permissions: typing.Dict[str, int]):
for permission_name, permission_flag in permissions.items():
Expand Down Expand Up @@ -854,7 +862,8 @@ async def process_server_cmd(ctx: CommonContext, args: dict):
ctx.team = args["team"]
ctx.slot = args["slot"]
# int keys get lost in JSON transfer
ctx.slot_info = {int(pid): data for pid, data in args["slot_info"].items()}
ctx.slot_info = {0: NetworkSlot("Archipelago", "Archipelago", SlotType.player)}
ctx.slot_info.update({int(pid): data for pid, data in args["slot_info"].items()})
ctx.hint_points = args.get("hint_points", 0)
ctx.consume_players_package(args["players"])
ctx.stored_data_notification_keys.add(f"_read_hints_{ctx.team}_{ctx.slot}")
Expand Down
6 changes: 3 additions & 3 deletions Fill.py
Original file line number Diff line number Diff line change
Expand Up @@ -483,15 +483,15 @@ def mark_for_locking(location: Location):
if panic_method == "swap":
fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool,
swap=True,
on_place=mark_for_locking, name="Progression", single_player_placement=multiworld.players == 1)
name="Progression", single_player_placement=multiworld.players == 1)
elif panic_method == "raise":
fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool,
swap=False,
on_place=mark_for_locking, name="Progression", single_player_placement=multiworld.players == 1)
name="Progression", single_player_placement=multiworld.players == 1)
elif panic_method == "start_inventory":
fill_restrictive(multiworld, multiworld.state, defaultlocations, progitempool,
swap=False, allow_partial=True,
on_place=mark_for_locking, name="Progression", single_player_placement=multiworld.players == 1)
name="Progression", single_player_placement=multiworld.players == 1)
if progitempool:
for item in progitempool:
logging.debug(f"Moved {item} to start_inventory to prevent fill failure.")
Expand Down
Loading