mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-16 20:43:50 -07:00
Compare commits
5 Commits
0.6.7-rc1
...
webhost_ot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1529c8938c | ||
|
|
70fc3e05fb | ||
|
|
d01c9577ab | ||
|
|
260bae359d | ||
|
|
3016379b85 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -45,6 +45,7 @@ EnemizerCLI/
|
||||
/SNI/
|
||||
/sni-*/
|
||||
/appimagetool*
|
||||
/VC_redist.x64.exe
|
||||
/host.yaml
|
||||
/options.yaml
|
||||
/config.yaml
|
||||
|
||||
@@ -773,7 +773,7 @@ class CommonContext:
|
||||
if len(parts) == 1:
|
||||
parts = title.split(', ', 1)
|
||||
if len(parts) > 1:
|
||||
text = parts[1] + '\n\n' + text
|
||||
text = f"{parts[1]}\n\n{text}" if text else parts[1]
|
||||
title = parts[0]
|
||||
# display error
|
||||
self._messagebox = MessageBox(title, text, error=True)
|
||||
@@ -896,6 +896,8 @@ async def server_loop(ctx: CommonContext, address: typing.Optional[str] = None)
|
||||
"May not be running Archipelago on that address or port.")
|
||||
except websockets.InvalidURI:
|
||||
ctx.handle_connection_loss("Failed to connect to the multiworld server (invalid URI)")
|
||||
except asyncio.TimeoutError:
|
||||
ctx.handle_connection_loss("Failed to connect to the multiworld server. Connection timed out.")
|
||||
except OSError:
|
||||
ctx.handle_connection_loss("Failed to connect to the multiworld server")
|
||||
except Exception:
|
||||
|
||||
@@ -46,6 +46,8 @@ app.config["SELFGEN"] = True # application process is in charge of scheduling G
|
||||
app.config["JOB_THRESHOLD"] = 1
|
||||
# after what time in seconds should generation be aborted, freeing the queue slot. Can be set to None to disable.
|
||||
app.config["JOB_TIME"] = 600
|
||||
# maximum time in seconds since last activity for a room to be hosted
|
||||
app.config["MAX_ROOM_TIMEOUT"] = 259200
|
||||
# memory limit for generator processes in bytes
|
||||
app.config["GENERATOR_MEMORY_LIMIT"] = 4294967296
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from threading import Event, Thread
|
||||
from typing import Any
|
||||
from uuid import UUID
|
||||
|
||||
from pony.orm import db_session, select, commit, PrimaryKey
|
||||
from pony.orm import db_session, select, commit, PrimaryKey, desc
|
||||
|
||||
from Utils import restricted_loads, utcnow
|
||||
from .locker import Locker, AlreadyRunningException
|
||||
@@ -129,7 +129,8 @@ def autohost(config: dict):
|
||||
with db_session:
|
||||
rooms = select(
|
||||
room for room in Room if
|
||||
room.last_activity >= utcnow() - timedelta(days=3))
|
||||
room.last_activity >= utcnow() - timedelta(
|
||||
seconds=config["MAX_ROOM_TIMEOUT"])).order_by(desc(Room.last_port))
|
||||
for room in rooms:
|
||||
# we have to filter twice, as the per-room timeout can't currently be PonyORM transpiled.
|
||||
if room.last_activity >= utcnow() - timedelta(seconds=room.timeout + 5):
|
||||
|
||||
@@ -26,7 +26,10 @@ class GenericWeb(WebWorld):
|
||||
'English', 'setup_en.md', 'setup/en', ['alwaysintreble'])
|
||||
triggers = Tutorial('Archipelago Triggers Guide', 'A guide to setting up and using triggers in your game settings.',
|
||||
'English', 'triggers_en.md', 'triggers/en', ['alwaysintreble'])
|
||||
tutorials = [setup, mac, commands, advanced_settings, triggers, plando]
|
||||
other = Tutorial('Other Games and Tools',
|
||||
'A guide to additional games and tools that can be used with Archipelago.',
|
||||
'English', 'other_en.md', 'other/en', ['Berserker'])
|
||||
tutorials = [setup, mac, commands, advanced_settings, triggers, plando, other]
|
||||
|
||||
|
||||
class GenericWorld(World):
|
||||
|
||||
24
worlds/generic/docs/other_en.md
Normal file
24
worlds/generic/docs/other_en.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Other Games and Tools
|
||||
|
||||
This guide provides information on additional community resources, tools, and games that function with Archipelago.
|
||||
|
||||
## Community Resources
|
||||
|
||||
The Archipelago community is active across several platforms where you can find support, new games, and tools.
|
||||
|
||||
### Discord Servers
|
||||
Archipelago has two primary Discord servers for community interaction, game support, and hosting public games:
|
||||
- **[Archipelago Official Discord](https://discord.gg/8Z65BR2)**: The main hub for the community, including general discussion, support, and public multiworld hosting.
|
||||
- **[Archipelago After Dark Discord](https://discord.gg/fqvNCCRsu4)**: An adults-only server for 18+ and unrated content.
|
||||
|
||||
Both servers feature an **#apworld-index** channel. These channels are repositories for "APWorlds" — additional game implementations that can be easily added to your Archipelago installation to support more games.
|
||||
|
||||
### Documentation
|
||||
- **[Archipelago Wiki](https://archipelago.miraheze.org/)**: A community-maintained wiki.
|
||||
|
||||
## Community Tools
|
||||
|
||||
These community-developed tools are frequently used alongside Archipelago to improve the player experience.
|
||||
|
||||
### PopTracker
|
||||
**[PopTracker](https://github.com/black-sliver/PopTracker)** is a universal multi-platform tracking application designed for randomizers. It supports many Archipelago games through tracker packs, providing both manual and automatic autotracking capabilities by connecting directly to an Archipelago server.
|
||||
@@ -1281,7 +1281,7 @@ exclusion_table = {
|
||||
LocationName.HadesCupTrophyParadoxCups,
|
||||
LocationName.MusicalOrichalcumPlus,
|
||||
],
|
||||
"HitlistCasual": {
|
||||
"HitlistCasual": [
|
||||
LocationName.FuturePete,
|
||||
LocationName.BetwixtandBetweenBondofFlame,
|
||||
LocationName.GrimReaper2,
|
||||
@@ -1299,7 +1299,7 @@ exclusion_table = {
|
||||
LocationName.MCP,
|
||||
LocationName.Lvl50,
|
||||
LocationName.Lvl99
|
||||
},
|
||||
],
|
||||
"Cups": {
|
||||
LocationName.ProtectBeltPainandPanicCup,
|
||||
LocationName.SerenityGemPainandPanicCup,
|
||||
|
||||
Reference in New Issue
Block a user