* server: added limit to max chat message (related to #11285);
* gui: fixed possible error after auto-submit deck;
* gui: fixed possible error after end game dialog;
* refactor: other code improves;
* server: fixed that a critical errors ignored in user commands threads (now it will be added to the logs);
* network: fixed frozen user responses in some use cases;
* network: fixed accidental and incorrect user responses (only latest response will be used now);
* network: improved freeze logs, added problem method name and code's line number;
* cheats: removed outdated deck and card load logic (only init.txt commands supports now);
* cheats: fixed wrong priority after add card dialog (closes#11437);
* cheats: improved stability and random errors on cheat executes (related to #11437);
* docs: added details on network and thread logic, human feedback life cycle, etc (see HumanPlayer, ThreadExecutorImpl);
* UI Changes
* Add new buffer time options
* Main functionality
* Final implementation
Also added player UI for when they are using their buffer time (timer turns green)
* Added Goldberry
* Slight optimizaztion
* Happy Path Test
* More unhappy tests
* Sanity check for Goldberry's counter choices
* Updated player.getMultiAmount to support individual constraints
* Some cleanup
Also modified ResourcefulDefense to use new multi amount api
* Updated logging
* Added hint for number of counters
* Fixed issue with Resourceful Defense
* Improvements to defaults
Default list will properly make sure to stay within individual maximums
If a player is asked for a choice that isn't actually a choice because each choice's min and max are equal, instead the default response is immediately returned. This helps with situations like moving a counter off of Goldberry when she only has one counter on her.
* -1/-1 Counter test
* Fixed issue with -1/-1 counters
* Adjusted dialog to properly enforce constraints
* Implemented chooseTargetAmount and new GUI dialog (distribute damage, distribute mana)
* Added tests and AI support;
* Test framework: added aliases support in TargetAmount dialogs;
Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
* Added hotkeys to select options (1-9 for choice, SPACE/ENTER for done, ESC for cancel);
* "Up to" modes choose dialog - added "done" button in dialog;
* "Up to" modes choose dialog - fixed that user can't cancel if already selected one mode;
* Added extra info about source object, selected and remaining modes to select, ability number for hotkey;
* Fixed that mode choose dialog doesn't close on cancel (#6199);
* improved /fix command to support disconnected/freezed players;
* added chat messages about connection problem with opponents (checks players status every minute);
* reduced timeout before remove disconnected player from waiting game dialog (from 4 to 2 minutes);
* reduced timeout between client's pings (from 60 secs to 20 secs);
* fixed https://sonarcloud.io/project/issues?id=org.xmage%3Amage-root&issues=AWIlv32RgrzAwlaaQ7rP&open=AWIlv32RgrzAwlaaQ7rP
* ensure closing of scanner if it was opened
* Refactored method in EmpyrialArchAngel to not always return same value.
* Refactored method in FalkenrathAristocrat to not always return same value.
* Refactored method in GilderBairn to not always return the same value.
* fixed left open resources, ensured quiet closing of the streams
* Refactored method in IceCave to not always return same value.
* Refactored method in KjeldoranRoyalGuard to not always return same value.
* Refactored method in LegionsInitiative to not always return same value.
* Refactored method in NaturesWill to not always return same value.
* added quiet closing method in new streamutils class, used to clean up the connectdialog
* Fix small typo
* added quiet closing to saveobjectutil
* closed resources in savegame method of gamecontroller
* properly close resources in loadGame method of GameReplay class
* further proper resource closing in ServerMessagesUtil
* fixed unclosed resources in copy method in mage framework Copier
* closed unclosed resources in copyCompressed method in Copier
* ensure closing of filewriter in manasymbols
* ensure proper closing of Stream in arcane UI
* ensure closing of datagram socket in arcane Util
* ensure resource closing in deckimport from clipboard
* ensure closing of plugin classloader
* ensured closing of zipinputstream resource
* ensure closing of fileoutputstream in ScryfallSymbolsSource
* ensure closing resources after finishing/canceling download of pictures
* remove commented code
* move locks to try block to ensure unlocking along all execution paths
* remove dangerous instance of double-checked locking
* removed dangerous instance of double checked locking in settingsmanager
* Removed dangerous instance of double-checked locking in ThemePluginImpl
* close resource which did not happen certainly
* close another stream
* ensure closing of inputstream