Releases: Quasky/bridgeipelago
Pre-Release Bridigeipealgo v3.0.0-pr3
!!! Formal Windows OS support has been removed from v3.0.0-pr3 onward !!!
This was not a decision I took lightly. :(
I spent the last two months on-and-off trying to get Windows happy enough to run correctly, but in the end, it was WAY more trouble than it's worth. So I've decided to drop Windows support for the time being. I have plans to 'add' it back in eventually. But for now, you should use a Linux host, or WSL on Windows to run Bridgeipelago.
I've linked the Microsoft WSL documentation in the Setup Doc. It may seem daunting, but honestly, it's REALLY easy.
What's Changed
- Core: Wrapped all the core-setup items into defs and called them from Main() to prevent thread spawning shenanigans.
- Core: Properly renamed DiscordClient to discord_client (becuase it looks better)
- Core: Replaced tracker+hint.start() methods with _ConnectionStrings to make it more clear on what is used to connect to AP
- Fix: Removed redundant arguments on HintClient call that were preventing the class from initialize correctly.
- Docs: Lots of spellchecks on the docs
PRs
- Core: Allow bot to send its own slot messages in #59
- Bridgeipelago now has the option to relay chat messages when you connect with a non-dedicated-bot-slot, toggleable via a config option. Previously it ignored all messages from that slot, so a nice improvement! Thanks @Orangestar12 !
- Core: Deathlink message standardization in #57
- Deathlink now 'properly' displays
Causefields when flavor is enabled. Thanks @soreikomori !
- Deathlink now 'properly' displays
- Fix: Update Docker to work with the new config.json requirement in #58
- I'm a dummy and didn't really think about Docker very much, and you can thank @JacksonVirgo for putting some more thought into it!
Full Changelog: pre-v3.0.0-pr2...pre-v3.0.0-pr3
Remaining action items for v3.0.0
(who knows if they'll all be done)
Big:
- snoozing games/items by slot
- subscription (ping) for slots
QOL:
- Alias' reporting to discord
- wildcard'ing $registration commands
- $clearreg parameters
Pre-Release Bridigeipealgo v3.0.0-pr2
What's Changed
-
Big Feature: Added in the ability to pass the config as an argument to the script for more versatile running configurations
python3 bridgeipelago.py config.json- or
python3 bridgeipelago.py subfolder/containing/configfiles/config.json- In any case, it must directly point to the config file you're using
- If no argument is passed, it assumes
config.jsonis in the same directory
-
Core: Renamed
$setenvto$setconfigto reflect the ditching of .env tables -
Core: Got rid of
$reloaddataas it's no longer necessary now that the helpers read directly from the files, rather than memory. -
Fix: Tracker port not correctly pulls from the config when it spins up.
- Accidentally made it static when the tracker spawns (oops)
-
Fix: Added Freeze_Support to make windows clients happy
-
Fix: Made lookup helpers read the datapackage directly, rather than relying on variable black magic to pass updates.
- This will increase the processing time of checks by a few nanoseconds each time, but shouldn't impact anything TOO badly.
- If this becomes an issue, I'll find some other inventive way to read the datapackage into memory so it doesn't have to read the file every time.
-
Docs: Updated Readme to reflect changed commands and config.json keys
-
Docs: Updated Setup for better clarification of the setup process, and updated for new json config language
Remaining action items for v3.0.0
(who knows if they'll all be done)
big:
- Flavortext generation for Deathlink
- snoozing games/items by slot
- subscription (ping) for slots
QOL:
- Alias' reporting to discord
- wildcard'ing $registration commands
- $clearreg parameters
Full Changelog: pre-v3.0.0-pr1...pre-v3.0.0-pr2
Pre-Release Bridigeipealgo v3.0.0-pr1
Welcome to Bridgeipelago v3.0.0!
This release is a pre-release with some MAJOR rewrites of the core-code related to mostly internal processes, but also stability.
I decided to make the full jump to v3.0 rather than v2.1 because of the absolute overhaul that is the config storage method and the other items planned.
I am also planning on integrating the API further into Bridgeipelago to allow for some more responsive requests that come in.
!!! This release switches from .env configuration files to .json configs !!!
You'll find a new config.json.template in the repo, it will behave exactly like the old .env for changing options.
However now it's dynamic within the script. So we can make more changes than before :)
To run the bot, copy config.json.template to config.json and fill it out as you would fill the old .env.
Setup docs will be updated soon™
What's Changed
-
Big Feature: Changed the headder/logo in the script. (ok its a big feature to me)
-
Big Feature: Changed from .env configs to dynamic .json config loading.
- This config data is shared across threads/processes, so I don't need to do variable black magic to get things to work.
-
Big Feature: Global shared event toggles to further interconnect threads/processes.
-
Core: Adds the ability to use Passwords on AP rooms
-
Core: All APClient commands (!commands) are now switchable in the config
-
Core: Added the ability to
$hint <slot> | <item>, and the output will be relayed to discord -
Core: Added slot refused messages to be relayed to Discord for better visibility
-
Core: Reflowed ChatQueue processing to allow for more than just AP messages to be relayed
-
Core: Added 'cause' field to Deathlinks
- There is also a PR in to improve this functionality
- There is also a RR in to improve Favortext generation
-
Core: Allows the bot to try and connect to a room
up to 7 times3 times, before the tracker is shutdown.- When the tracker is in its 'disabled' state, running $reloadtracker in discord, or the API discovering a new Port assignment, will re-enable the tracker to connect again.
-
Fix: Fully completed bridgeipelago-docker.yaml
- only for it to break again because the data storage changed lol
-
Fix: Removed redundant tracker function calls
-
Fix: Removed old debugging lines (I do love me some print() statements)
-
Fix: Fixed outstanding bug >2.0.0 related to PrintJSON message handling
-
Fix: Wrong typecasting on Roomcheck port assignments. (three commits to fix it, oops lol)
PRs
- Core: Automatically re-assign port number if we detect a change by @silasary in #45
- Core: Adds ability to use passwords with AP rooms by @Quasky in #46
- Core: Allows users to filter $ketchmeup messages by @Quasky in #48
- Core: Enables Snoozing games that have goal completion, and skipping their checks to discord by @Quasky in #49
- Fix: Add missing UniqueID to bridgeipelago-docker.yaml by @dgowing95 in #53
Full Changelog: live-v2.0.0...pre-v3.0.0-pr1
Bridgeipelago v2.0.0
Welcome to Bridgeipelago v2.0.0! It's a long time coming, with lots of new features, fixes, and improvements.
!!! This release publishes a new .env.template. !!!
!!! Please update your existing .env with the new template. !!!
What's Changed in v2.0.0 (pr1 - pr3)
-
Big Features: Bridging discord chat to AP is now a toggleable option in the .env
-
Big Features: Added QueueOverclock to speed up processing of queues by Discord
-
Updated to
websocketsinstead ofwebsocket-client -
Core: Added in CycleDiscord .env option for users who have issues with DiscordBot connectivity.
- Setting this value to greater than 0 will cause the discord bot to restart every X seconds.
- Good for unstable connections that cause Discord to break.
-
Core: Added in reload commands for tracker and discord
- $reloadtracker and $reloaddiscord can be used to reload the processes if you notice the bot gets stuck not processing things.
- It's good to refresh the tracker first (when no checks are coming in), then discord second.
- Data is preserved in this manner, and should allow the queued-checks to flow freely.
-
Core: Removed $reloadbot command in favor of $reloadtracker
-
Core: Overhauled error logging to /logs/errorlog.txt
-
Core: $setenv <key> <value> to dynamically change the tracker's configuration within discord.
- Running $reloadtracker should set the tracker to the new values
- More options will be added in v2.1+
- ArchData will be replaced when the bot detects the changes in datapackages,
-
Core: Expanded $setenv commands to allow for swapping rooms via discord
- You can read about this process here: SWAPPING ROOMS IN DISCORD
-
Core: Converted to JSON storage for RegistrationData
-
Core: Added UniqueID identifier concept for data storage
- See UniqueID for details
-
Core: Allow for dynamic reloading of room data
-
Core: Renamed room data variables to be a little more clear
-
Fix: Solved phantom non-reconnect issues for the tracker.
- It should now reload properly if the room sleeps.
-
Fix: Reflowed checkcount process to prevent 2000 character error
-
Docs: Modified setup docs to include DiscordBridge, UniqueID, Swap Process
-
Docs: Modified readme to include new .envs options and swap process
-
Docs: Updated docs for new commands, and readability
-
And probably more that I don't remember or didn't document properly lol
Dependencies change
- Due to the switch from
websocket-clienttowebsockets, you will need to run the pip install bits again. - See PIP INSTALL
.env
Last update of the .env was v2.0.0 - If your version of the bot is older, please update with the new .env.template
Known issues:
- None! (for now)
Full Changelog: live-v1.3.0...live-v2.0.0
Pre-Release Bridigeipealgo v2.0.0-pr3
This is a pre-release of 2.0, some features may be incomplete or unstable. Please use at your own risk.
If you explode your room, please don't come crying to me. (because I'll cry too)
No additional features will be considered for v2.0. All other features in milestones have been moved to a v2.X release.
!!! This release publishes a new .env.template. !!!
!!! Please update your existing .env with the new template. !!!
What's Changed in pr3
- Fix: Solved phantom non-reconnect issues for the tracker.
- It should now reload properly if the room sleeps.
- Core: Bridging discord chat to AP is now a toggleable option in the .env
- Core: Added UniqueID identifier concept for data storage
- See UniqueID for details
- Core: Expanded $setenv commands to allow for swapping rooms via discord
- You can read about this process here: SWAPPING ROOMS IN DISCORD
- Core: Allow for dynamic reloading of room data
- Core: Renamed room data variables to be a little more clear
- Docs: Modified setup docs to include DiscordBridge, UniqueID, Swap Process
- Docs: Modified readme to include new .envs options and swap process
.env
Last update of the .env was v2.0.0-pr3 - If your version of the bot is older, please update with the new .env.template
Known issues:
- None right now! :)
- It'll probably break somehow lol use at your own risk.
Full Changelog: pre-v2.0.0-pr2...pre-v2.0.0-pr3
Pre-Release Bridigeipealgo v2.0.0-pr2
This is a pre-release of 2.0, some features may be incomplete or unstable. Please use at your own risk.
If you explode your room, please don't come crying to me. (because I'll cry too)
The datapackage reloading (see below), and manually clearing the internal directories, will be addressed in a pr3 / full 2.0 release.
I also plan (I hope) to have Discord -> AP chat running in time for 2.0.
No additional features will be considered for v2.0. All other features in milestones have been moved to a v2.X release.
!!! This release publishes a new .env.template. !!!
!!! Please update your existing .env with the new template. !!!
What's Changed in pr1 + pr2
- Core: Removed unused core dependencies
- Core: Reflowed global queue variables a bit
- Core: Added datapackage verification
- Datapackages will now be verified when the bot connects to a room. This will make sure you have the correct datapackage for the room the bot is connected to.
- If the datapackage is incorrect, it will fetch a new copy.
- If an error is detected (unable to verify datapackage) the bot will exit.
- Core: Added in CycleDiscord .env option for users who have issues with DiscordBot connectivity.
- Setting this value to greater than 0 will cause the discord bot to restart every X seconds.
- Good for unstable connections that cause Discord to break.
- Core: Added in reload commands for tracker and discord
- $reloadtracker and $reloaddiscord can be used to reload the processes if you notice the bot gets stuck not processing things.
- It's good to refresh the tracker first (when no checks are coming in), then discord second.
- Data is preserved in this manner, and should allow the queued-checks to flow freely.
- Core: Removed $reloadbot command in favor of $reloadtracker
- Core: Overhauled error logging to /logs/errorlog.txt
- Core: $setenv <key> <value> to dynamically change the tracker's configuration within discord.
- Running $reloadtracker should set the tracker to the new values
- More options will be added in v2.1+
- KNOWN ISSUE: Swapping rooms / ports doesn't clear the ItemQueues, RegistrationData, or current loaded datapackage
- ArchData will be replaced when the bot detects the changes in datapackages, but it does not LOAD the new packages (yet)
- Core: Converted to JSON storage for RegistrationData
- Core: Added QueueOverclock to speed up processing of queues by Discord
- Core: Updated to
websocketsinstead ofwebsocket-clientby @pyrox0 in #12 - Docs: Updated docs for new commands, env options, and readability (from pr1)
Dependencies change
- Due to the switch from
websocket-clienttowebsockets, you will need to run the pip install bits again.- I forgot to say that in pr1. Oops.
.env
Last update of the .env was v2.0.0-pr2 - If your version of the bot is older, please update with the new .env.template
Known issues:
- Swapping rooms / ports doesn't clear the ItemQueues or RegistrationData directories causing cross-room issues, or reload datapackages into memory.
- You'll need to clear the directories yourself. Restarting Bridgeipelago entirely will reload the datapackages into memory.
- This may/will cause issues with the datapackage and ItemQueues since you cant clear those in Discord at the moment
- Registration data can be cleared for yourself by running $clearreg
- It'll probably break somehow lol use at your own risk.
Pre-Release Bridigeipealgo v2.0.0-pr1
This is a pre-release of 2.0, some features may be incomplete or unstable. Please use at your own risk.
If you explode your room, please don't come crying to me. (because I'll cry too)
!!! This release publishes a new .env.template. !!!
!!! Please update your existing .env with the new template. !!!
What's Changed
- Add in JSON storage for registration data by @Quasky
- Added QueueOverclock to speed up processing + .envtemplate change by @Quasky
- use
websocketsinstead ofwebsocket-clientby @pyrox0 in #12- This fixes the compression warning :)
- Added Dynamic config /w discord by @Quasky
New Contributors
.env
Last update of the .env was v2.0.0-pr1 - If your version of the bot is older, please update with the new .env.template
Full Changelog: live-v1.3.0...pre-v2.0.0
Commands in Discord for 2.0:
Because I really don't want to write a whole article for a pre-release till I have more features, here are the commands you can run for 2.0;
- $setenv ArchipelagoPort XXXX
- Sets the ArchPort variable so you can swap rooms
- $reloadbot
- Forces a reload of the tracker
Known issues:
- Swapping rooms / ports doesn't clear the ItemQueues, RegistrationData, or ArchData.
- You'll need to do this yourself.
- This may/will cause issues with the datapackage and ItemQueues since you cant clear those in Discord at the moment
- Registration data can be cleared for yourself by running $clearreg
- It'll probably break somehow lol use at your own risk.
Bridgeapelago v1.3.0
"The Berserker Update"
What's Changed for v1.3.0
- Core: Added in re-connection timer to keep Bridgeipelago from constantly hammering the AP server
** The timer starts at 5 seconds, and will increment by 5 seconds to a maximum of 120 seconds. - Core: Updated console output to better reflect what's going on
- Core: Fixed datapackage download so it only fetches it once upon first connection
- Core: Cleared Games variable after data manipulation to free up some 1s and 0s
- Core: Reworked first pre-data-load, and added second reoccurring-on-retart, Seppuku checks
- Fix: Updated client websocket reported version to comply with Archipelago client standards
- Fix: Properly wrapped CheckArchHost()'s function to actually skip code if using SelfHostNoWeb
- Fix: Updated the Tracker's verbose option to be tied to DebugMode
- Fix: Updated bridgeipelago.yaml to a {dict} rather than a [list] (thanks Black Sliver)
- Docs: Correct typo in setup guide. by @heyitsbench in #32
- Extra: Added code review quote from the AP Core team
Known Issues:
- Compression warning in AP log
- "Warning: your client does not support compressed websocket connections! It may stop working in the future. If you are a player, please report this to the client's developer."
.env
Last update of the .env was v1.2.5 - If your version of the bot is older, please update with the new .env.template
Full Changelog: live-v1.2.5...live-v1.3.0
Bridgeapelago v1.2.5
!!! This release publishes a new .env.template. !!!
!!! Please update your existing .env with the new template. !!!
A whole slew of new features :)
What's Changed for v1.2.5
- Feature: Version checking for release notices by @Quasky in #20
- Feature: Discord message item color formatting by @Quasky in #29
- Feature: Added flavortext for deathlinks by @Quasky in #24
- Feature: Decoupled webhosting options for selfhosting by @Quasky in #30
- Docs: Added windows-specific setup docs setps to make it a little easier by @Quasky in #23
- Docs: Small dev env improvements by @mkogerd in #25
- Fix: Cast deathlink to string to prevent TypeErrors on mis-formatted responses by @Quasky in #21
Known Issues:
- Compression warning in AP log
- "Warning: your client does not support compressed websocket connections! It may stop working in the future. If you are a player, please report this to the client's developer."
.env
Last update of the .env was v1.2.5 - If your version of the bot is older, please update with the new .env.template
Full Changelog: live-v1.2.4...live-v1.2.5
Release Bridgeapelago v1.2.4
What's Changed for v1.2.4
Known Issues:
- Compression warning in AP log
- "Warning: your client does not support compressed websocket connections! It may stop working in the future. If you are a player, please report this to the client's developer."
.env
Last update of the .env was v1.2 - If your version of the bot is older, please update with the new .env.template
Full Changelog: live-v1.2.3...live-v1.2.4