Commit graph

152 commits

Author SHA1 Message Date
Oleg Agafonov
960e896903
Network upgrade and new reconnection mode (#11527)
Network upgrade and new reconnection mode:
* users can disconnect or close app without game progress loose now;
* disconnect dialog will show active tables stats and additional options;
* all active tables will be restored on reconnect (tables, tourneys, games, drafts, sideboarding, constructing);
* user must use same server and username on next connection;
* there are few minutes for reconnect until server kick off a disconnected player from all player's tables (concede/loose);
* now you can safety reconnect after IP change (after proxy/vpn/wifi/router restart);

Other improvements and fixes:
* gui: main menu - improved switch panel button, added stats about current tables/panels;
* gui: improved data sync and updates (fixes many use cases with empty battlefield, not started games/drafts/tourneys, not updatable drafts, etc);
* gui: improved stability on game updates (fixes some random errors related to wrong threads);
* server: fixed miss messages about player's disconnection problems for other players in the chat;
* refactor: simplified and improved connection and network related code, deleted outdated code, added docs;
* tests: improved load test to support lands only set for more stable performance/network testing (set TEST_AI_RANDOM_DECK_SETS = PELP and run test_TwoAIPlayGame_Multiple);
2023-12-07 20:56:52 +04:00
Oleg Agafonov
53add71826 Improved network stability and other related fixes:
* 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);
2023-11-24 21:22:16 +04:00
Oleg Agafonov
5691ffa40e Merge fix 2023-11-23 09:32:07 +04:00
Oleg Agafonov
75958e3710 refactor: improved and reorganized client-server api, added additional logs, fixed miss admin checks for some commands 2023-11-23 09:12:02 +04:00
Oleg Agafonov
11528e7d35 server: removed useless fastDbMode, improved db stats logs on updating 2023-09-17 22:16:12 +04:00
Oleg Agafonov
c515ff383c server: added support of property settings (can use launcher to setup params like -Dxmage.testMode=true) 2023-09-17 21:46:17 +04:00
Susucre
5062c84098
Refactor: removed server side objects from a client side game's data (#10788)
* Clean original values transmitted with CardView.originalObject
* Move RateCard to mage.Common, support cardView as argument.
* Clean PermanentView constructor for TestCardRenderDialog
2023-08-24 12:04:07 +04:00
Artemis Kearney
d199640fb5
respect testMode=false in development builds (#10376) 2023-05-16 22:53:12 +04:00
Oleg Agafonov
1f4dfd08ce docs: added some comments about tokens, verify, test mode, etc 2023-05-09 12:27:18 +04:00
Oleg Agafonov
013f14c699 dev: enabled server's test mode by default in developer builds (example: fast games, deck valid skip, cheats, etc) 2023-05-09 00:53:53 +04:00
Oleg Agafonov
bc79b5f5d1 dev: enabled debug main menu by default in developer builds (example: test render dialog) 2023-05-09 00:49:46 +04:00
Oleg Agafonov
301539d75b Server improves:
* Server: improved messages on register/reset dialogs;
* Tests: added database compatible tests on new code or libs (auth db);
2021-10-01 21:52:09 +04:00
Oleg Agafonov
7670619fc6 Server: added loaded plugins stats and error message on outdated config.xml; 2021-02-07 04:39:48 +04:00
Francesco Burato
6e3750d50a [app-wiring-refactor]: Apply review comments:
- Add reference to original library in `FluentBuilder`.
- Change `I<Name>` notation to `<Name>Impl` notation.
- Move error config to test resources
- Add comment with config instruction
- Add config to the documentation
2020-11-12 20:12:50 +00:00
Francesco Burato
e8bb8ae24b [app-wiring-refactor]: Externalise configuration path 2020-11-12 20:12:49 +00:00
Francesco Burato
d0c2135e17 [app-wiring-refactor]: Remove static initialisation
- Remove all enum static managers
- Introduce interfaces for the managers
- Define new application wiring class (`ManagerFactory`)
- Externalise the configuration
2020-11-12 20:12:48 +00:00
Oleg Agafonov
b610d0a31a Added default charset information in startup logs 2020-08-28 07:33:42 +04:00
Oleg Agafonov
6787688610 Tests: fixed random failed test testMysteryBooster1, removed redundant logs; 2020-08-26 14:20:39 +04:00
Oleg Agafonov
de4befb9c2 * Sideboarding: fixed that it possible to auto-submit 40 cards deck instead 60 in constructed formats (#5579);
Sideboarding: fixed that cheated deck with sideboard can be used instead lose the game;
2019-04-01 07:34:46 +04:00
Oleg Agafonov
c29b68f030 Disabled cards rating and classes preloading on startup (lags problem); 2019-02-09 16:09:07 +04:00
Oleg Agafonov
7eba755666 Refactor card ratings, fixed rare error exception "comparison method violates its general contract" (different ratings in same card); 2019-02-01 17:41:29 +04:00
Oleg Agafonov
91a3328907 * UI: added cell hints to player's list in lobby, fixed header hints; 2019-01-21 01:10:01 +04:00
Ingmar Goudt
50f28a2bf7 add some Java8 magic to the server 2019-01-19 09:31:50 +01:00
Oleg Agafonov
f01b3d3ca3 Improved new version cleanup and more:
* fixed db cleanup on new version (sets + cards);
 * fixed empty sets list after update;
 * fixed NPE errors in sets list on new install/version;
 * added joke sets filter to deckeditor.
2019-01-06 15:41:30 +04:00
Oleg Agafonov
0a2f312da7 Added build time to version info, cleanup manifest files; 2018-12-15 18:29:10 +04:00
Ingmar Goudt
188a09b8fb change keyset to entryset 2018-09-27 22:16:00 +02:00
GrayedFox
3953f3dbdd
remove all MIT copyright notices from files 2018-06-02 17:59:49 +02:00
LevelX2
8ad957447e Some minor changes to server connect handling and logging. 2017-04-17 18:28:35 +02:00
LevelX2
35791ac6b7 Set SocketWriteTimeout to 10 seconds. 2017-04-17 00:01:39 +02:00
ingmargoudt
211d433ea9 playertype, enum singleton 2017-04-02 22:09:20 +02:00
ingmargoudt
ff6c6405aa rewrites to optionals 2017-03-19 19:48:32 +01:00
ingmargoudt
234cfe9519 rewrote singleton to enum where applicable 2017-03-14 16:32:47 +01:00
vraskulin
498c8cf60c Made utility classes final to explicitly forbid it's inheritance 2017-02-27 17:03:38 +03:00
vraskulin
a15220d51e Bugfixes with != instead of equals and default toString calls 2017-02-15 19:52:20 +03:00
vraskulin
f1ef3bf68b Narrowed variables scope. 2017-02-15 16:05:18 +03:00
vraskulin
f60ebfbb1f All 1-character strings converted to primitives
"b" + "r" now changed to 'b' + 'w'.  It's more straight-forward, and may cause perfomance improvements - character primitives allocation is faster and less expensive than string creation.
2017-02-06 14:32:51 +03:00
igoudt
f98afdf4ad Introducing Optionals 2017-01-14 21:52:40 +01:00
vraskulin
46d369c8ed Big refactoring (server)
I used Intellij IDEA to automatically refactor code to achive 3 goals.
1) get rid of anonymouse classes, and replace the with lamba to get more readeable and clean code (like in TableWaitingDialog).
2) make effectively final  variables actually final to avoid inadvertent changes on it in further releases and keep objects as immutable, as possible.
3)  Get rid of unused imports (most of the changes) in whole project classes.
2017-01-09 19:47:03 +03:00
LevelX2
c98671282f * Cursed Rack - Fixed that the hand size modification was applied to the controller of the cursed rack instead of the chosen opponent. 2016-11-01 23:36:42 +01:00
LevelX2
1791b809db Added some more info to some logger and game messages. Removed unused method. 2016-11-01 23:02:11 +01:00
LevelX2
c46f75ac28 Added chat mute and user (de)activation actions to the Mage server console. 2016-10-05 00:59:51 +02:00
Lymia Aluysia
48e14a1765
Rename stuff. Names are hard. 2016-09-25 14:45:06 -05:00
Lymia Aluysia
51b9d5ba38
Improved debug output slightly. 2016-09-24 17:34:30 -05:00
Lymia Aluysia
d678fc1a59
Add custom set loader code. 2016-09-24 15:16:20 -05:00
Fenhl
430ae503c7 Change all line endings to LF 2016-04-14 16:18:01 +00:00
Me Car
5029806baa Update user stats DB on every table completion. 2016-01-24 14:55:19 +09:00
LevelX2
dcbe2da0e6 Changed that mailgun or smtp server can be used to send mails from server. 2016-01-22 17:46:57 +01:00
Me Car
8a5461d73b Cache UserStats to User. 2016-01-21 00:44:50 +09:00
Me Car
550648ccbe Record game histories. Compute user stats and show them in the user panel. 2016-01-20 12:47:58 +09:00
LevelX2
45b8a254e6 Updated server start log info. 2016-01-13 23:44:16 +01:00