From 4f2048bdc81146212c1ebb9acf78bbd21d485769 Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 25 Apr 2026 16:56:35 +0200 Subject: [PATCH] Weiter gebaut --- .classpath | 560 +---- .gitignore | 1 + .project | 4 +- bin/main/Ideen.txt | 42 +- bin/main/application-dev.properties | 2 +- bin/main/application.properties | 2 + bin/main/db/migration/V1__baseline.sql | 8 + bin/main/db/migration/V2__available_in.sql | 34 + .../de/oaa/xxx/admin/AdminController.class | Bin 35957 -> 36051 bytes bin/main/de/oaa/xxx/config/JwtFilter.class | Bin 3141 -> 3582 bytes .../xxx/config/RateLimitFilter$Window.class | Bin 1597 -> 1597 bytes .../de/oaa/xxx/config/RateLimitFilter.class | Bin 4858 -> 5360 bytes .../xxx/feed/FeedController$FeedPage.class | Bin 1722 -> 1722 bytes .../FeedController$UpdateOptionRequest.class | Bin 1593 -> 1593 bytes .../FeedController$UpdatePostRequest.class | Bin 2418 -> 2418 bytes .../xxx/feed/FeedController$VoteRequest.class | Bin 1401 -> 1401 bytes bin/main/de/oaa/xxx/feed/FeedController.class | Bin 36583 -> 41126 bytes .../repository/FeedPostLikeRepository.class | Bin 837 -> 1620 bytes .../repository/FeedPostOptionRepository.class | Bin 744 -> 958 bytes .../repository/FeedPostVoteRepository.class | Bin 1108 -> 1937 bytes .../oaa/xxx/feedback/FeedbackController.class | Bin 7469 -> 8104 bytes .../xxx/games/bdsm/BdsmGameDurchfuehren.class | Bin 17286 -> 16584 bytes .../controller/AufgabenGruppeController.class | Bin 17569 -> 17859 bytes ...smGameController$AbschliessenRequest.class | Bin 1511 -> 1511 bytes ...mGameController$AbschliessenResponse.class | Bin 1978 -> 1978 bytes ...BdsmGameController$ActiveTaskRequest.class | Bin 1739 -> 1739 bytes ...dsmGameController$ActiveTaskResponse.class | Bin 1717 -> 1717 bytes .../BdsmGameController$SperreFreigabe.class | Bin 1816 -> 1816 bytes ...BdsmGameController$ZuChastityRequest.class | Bin 1821 -> 1821 bytes .../bdsm/controller/BdsmGameController.class | Bin 38852 -> 41501 bytes .../games/chastity/cardlock/CardEnum$10.class | Bin 0 -> 695 bytes .../games/chastity/cardlock/CardEnum$11.class | Bin 0 -> 697 bytes .../games/chastity/cardlock/CardEnum$12.class | Bin 0 -> 698 bytes .../games/chastity/cardlock/CardEnum.class | Bin 2303 -> 2689 bytes ...CardLockController$AssignTaskRequest.class | Bin 1992 -> 1992 bytes .../CardLockController$FreezeRequest.class | Bin 1516 -> 1516 bytes ...ardLockController$ModifyCardsRequest.class | Bin 1911 -> 1911 bytes ...rdLockController$SpeedConfirmRequest.class | Bin 0 -> 1668 bytes .../cardlock/CardLockController.class | Bin 74238 -> 77145 bytes .../chastity/cardlock/CardLockEntity.class | Bin 3906 -> 4401 bytes .../chastity/cardlock/CardLockService.class | Bin 13236 -> 14382 bytes .../cardlock/CardLockSimulation.class | Bin 0 -> 4830 bytes ...ckTemplateController$TemplateRequest.class | Bin 3834 -> 3970 bytes .../cardlock/CardlockTemplateController.class | Bin 10608 -> 13790 bytes .../cardlock/CardlockTemplateEntity.class | Bin 2803 -> 3369 bytes .../games/chastity/cardlock/GameCard.class | Bin 0 -> 996 bytes .../games/chastity/cardlock/SlowmoCard.class | Bin 0 -> 1006 bytes .../games/chastity/cardlock/SpeedupCard.class | Bin 0 -> 1011 bytes .../common/BaseLockTemplateController.class | Bin 9757 -> 9562 bytes .../common/BaseLockTemplateEntity.class | Bin 4829 -> 5069 bytes .../chastity/common/LockGameEntity.class | Bin 0 -> 4288 bytes .../chastity/common/LockGameLockEntity.class | Bin 0 -> 2524 bytes .../chastity/common/LockGameService.class | Bin 0 -> 419 bytes ...tityGameSetController$GameSetRequest.class | Bin 0 -> 2747 bytes .../gameset/ChastityGameSetController.class | Bin 0 -> 8791 bytes .../gameset/ChastityGameSetEntity.class | Bin 0 -> 3484 bytes .../gameset/ChastityGameSetRepository.class | Bin 0 -> 671 bytes .../chastity/gameset/GameSetAufgabe.class | Bin 0 -> 1923 bytes .../GameSetAufgabeListConverter$1.class | Bin 0 -> 960 bytes .../gameset/GameSetAufgabeListConverter.class | Bin 0 -> 2493 bytes .../chastity/gameset/GameSetFinisher.class | Bin 0 -> 1540 bytes .../GameSetFinisherListConverter$1.class | Bin 0 -> 967 bytes .../GameSetFinisherListConverter.class | Bin 0 -> 2502 bytes .../chastity/gameset/GameSetZeitstrafe.class | Bin 0 -> 3011 bytes .../GameSetZeitstrafeListConverter$1.class | Bin 0 -> 981 bytes .../GameSetZeitstrafeListConverter.class | Bin 0 -> 2520 bytes ...tityTaskSetController$TaskSetRequest.class | Bin 0 -> 1952 bytes .../tasks/ChastityTaskSetController.class | Bin 0 -> 7355 bytes .../tasks/ChastityTaskSetEntity.class | Bin 0 -> 2244 bytes .../tasks/ChastityTaskSetRepository.class | Bin 0 -> 607 bytes ...ckTemplateController$TemplateRequest.class | Bin 4821 -> 4685 bytes .../timelock/TimeLockTemplateController.class | Bin 11192 -> 11107 bytes .../common/AbstractGameDurchfuehren.class | Bin 0 -> 1676 bytes .../common/aufgaben/AufgabenGruppe.class | Bin 4784 -> 4922 bytes .../aufgaben/AufgabenGruppeDisplay.class | Bin 2378 -> 2516 bytes .../games/common/aufgaben/AvailableIn.class | Bin 0 -> 1267 bytes .../common/entity/AufgabenGruppeEntity.class | Bin 9208 -> 9562 bytes .../repository/AufgabenGruppeRepository.class | Bin 2810 -> 3447 bytes .../vanilla/VanillaGameDurchfuehren.class | Bin 10437 -> 9642 bytes .../controller/VanillaAboController.class | Bin 11826 -> 6077 bytes .../VanillaAufgabenGruppeController.class | Bin 17407 -> 7594 bytes ...laGameController$AbschliessenRequest.class | Bin 1544 -> 1544 bytes ...aGameController$AbschliessenResponse.class | Bin 1764 -> 1764 bytes ...illaGameController$ActiveTaskRequest.class | Bin 1772 -> 1772 bytes ...llaGameController$ActiveTaskResponse.class | Bin 1750 -> 1750 bytes .../controller/VanillaGameController.class | Bin 24114 -> 26139 bytes .../de/oaa/xxx/gruppe/GruppeController.class | Bin 30060 -> 29882 bytes .../xxx/gruppe/GruppenbeitragController.class | Bin 26408 -> 26241 bytes .../LocationController$BatchRequest.class | Bin 1927 -> 1927 bytes ...ationController$InboxConversationDto.class | Bin 2129 -> 2129 bytes .../LocationController$InboxSummaryDto.class | Bin 2220 -> 2220 bytes .../LocationController$ReplyRequest.class | Bin 1429 -> 1429 bytes .../oaa/xxx/location/LocationController.class | Bin 38650 -> 38741 bytes bin/main/de/oaa/xxx/mail/MailService.class | Bin 2440 -> 2760 bytes .../xxx/social/NotificationController.class | Bin 6884 -> 6917 bytes .../social/ScheduledNotificationService.class | Bin 0 -> 3789 bytes .../oaa/xxx/social/SystemMessageService.class | Bin 8113 -> 8664 bytes .../oaa/xxx/social/entity/MessageEntity.class | Bin 3303 -> 3549 bytes .../repository/KommentarRepository.class | Bin 807 -> 1388 bytes .../social/repository/MessageRepository.class | Bin 4913 -> 5693 bytes .../de/oaa/xxx/user/LoginController.class | Bin 8783 -> 8878 bytes ...UserController$LocationFilterRequest.class | Bin 1943 -> 1943 bytes .../user/UserController$NewMemberDto.class | Bin 2396 -> 2396 bytes bin/main/de/oaa/xxx/user/UserController.class | Bin 35020 -> 35020 bytes bin/main/de/oaa/xxx/util/BaseController.class | Bin 0 -> 865 bytes bin/main/static/admin/admin.html | 20 +- bin/main/static/games/aufgaben/aufgaben.html | 1796 +++++++++++++++++ bin/main/static/games/aufgaben/entdecken.html | 485 +++++ bin/main/static/games/aufgaben/toys.html | 642 ++++++ bin/main/static/games/bdsm/aufgaben.html | 44 +- bin/main/static/games/bdsm/entdecken.html | 1 + bin/main/static/games/bdsm/neubdsm.html | 75 +- bin/main/static/games/bdsm/toys.html | 1 + .../static/games/chastity/activelock.html | 427 +++- .../games/chastity/entdecken-vorlagen.html | 2 +- .../static/games/chastity/meine-locks.html | 1130 ++++++++++- bin/main/static/games/vanilla/aufgaben.html | 20 +- bin/main/static/games/vanilla/entdecken.html | 1 + bin/main/static/games/vanilla/neuvanilla.html | 73 +- bin/main/static/games/vanilla/toys.html | 1 + bin/main/static/help/abonnements.html | 181 ++ bin/main/static/help/bdsm.html | 180 ++ bin/main/static/help/chastity.html | 213 ++ bin/main/static/help/community.html | 208 ++ bin/main/static/help/datenschutz.html | 168 ++ bin/main/static/help/konto.html | 194 ++ bin/main/static/help/overview.html | 49 +- bin/main/static/help/vanilla.html | 163 ++ bin/main/static/js/card-defs.js | 24 + bin/main/static/js/mobile-nav.js | 119 +- bin/main/static/js/nav.js | 69 +- bin/main/static/js/section-nav.js | 14 +- bin/main/static/js/shared.js | 21 +- bin/main/static/js/sidebar.js | 86 +- bin/test/application-test.properties | 3 +- .../games/bdsm/BdsmGameDurchfuehrenTest.class | Bin 0 -> 9721 bytes .../cardlock/CardLockServiceTest.class | Bin 0 -> 4015 bytes .../vanilla/VanillaGameDurchfuehrenTest.class | Bin 0 -> 7305 bytes .../xxx/user/AuthFlowIntegrationTest$1.class | Bin 0 -> 915 bytes .../xxx/user/AuthFlowIntegrationTest$2.class | Bin 0 -> 907 bytes .../xxx/user/AuthFlowIntegrationTest$3.class | Bin 0 -> 900 bytes .../xxx/user/AuthFlowIntegrationTest.class | Bin 0 -> 6728 bytes build.gradle.kts | 1 + src/main/java/Ideen.txt | 42 +- .../de/oaa/xxx/admin/AdminController.java | 2 +- .../java/de/oaa/xxx/config/JwtFilter.java | 9 +- .../de/oaa/xxx/config/RateLimitFilter.java | 17 +- .../java/de/oaa/xxx/feed/FeedController.java | 231 ++- .../repository/FeedPostLikeRepository.java | 9 + .../repository/FeedPostOptionRepository.java | 2 + .../repository/FeedPostVoteRepository.java | 8 + .../oaa/xxx/feedback/FeedbackController.java | 1 + .../xxx/games/bdsm/BdsmGameDurchfuehren.java | 41 +- .../controller/AufgabenGruppeController.java | 6 +- .../bdsm/controller/BdsmGameController.java | 135 +- .../xxx/games/chastity/cardlock/CardEnum.java | 22 +- .../chastity/cardlock/CardLockController.java | 60 +- .../chastity/cardlock/CardLockEntity.java | 6 + .../chastity/cardlock/CardLockService.java | 47 +- .../chastity/cardlock/CardLockSimulation.java | 88 + .../cardlock/CardlockTemplateController.java | 45 +- .../cardlock/CardlockTemplateEntity.java | 6 + .../xxx/games/chastity/cardlock/GameCard.java | 10 + .../games/chastity/cardlock/SlowmoCard.java | 10 + .../games/chastity/cardlock/SpeedupCard.java | 10 + .../common/BaseLockTemplateController.java | 6 +- .../common/BaseLockTemplateEntity.java | 3 + .../games/chastity/common/LockGameEntity.java | 46 + .../chastity/common/LockGameLockEntity.java | 39 + .../chastity/common/LockGameService.java | 27 + .../gameset/ChastityGameSetController.java | 109 + .../gameset/ChastityGameSetEntity.java | 38 + .../gameset/ChastityGameSetRepository.java | 11 + .../chastity/gameset/GameSetAufgabe.java | 16 + .../gameset/GameSetAufgabeListConverter.java | 28 + .../chastity/gameset/GameSetFinisher.java | 13 + .../gameset/GameSetFinisherListConverter.java | 28 + .../chastity/gameset/GameSetZeitstrafe.java | 20 + .../GameSetZeitstrafeListConverter.java | 28 + .../tasks/ChastityTaskSetController.java | 77 + .../chastity/tasks/ChastityTaskSetEntity.java | 30 + .../tasks/ChastityTaskSetRepository.java | 10 + .../timelock/TimeLockTemplateController.java | 7 +- .../common/AbstractGameDurchfuehren.java | 42 + .../games/common/aufgaben/AufgabenGruppe.java | 2 +- .../aufgaben/AufgabenGruppeDisplay.java | 2 +- .../games/common/aufgaben/AvailableIn.java | 7 + .../common/entity/AufgabenGruppeEntity.java | 14 +- .../repository/AufgabenGruppeRepository.java | 18 +- .../vanilla/VanillaGameDurchfuehren.java | 32 +- .../controller/VanillaAboController.java | 101 +- .../VanillaAufgabenGruppeController.java | 183 +- .../controller/VanillaGameController.java | 113 +- .../de/oaa/xxx/gruppe/GruppeController.java | 10 +- .../xxx/gruppe/GruppenbeitragController.java | 12 +- .../oaa/xxx/location/LocationController.java | 1 + .../java/de/oaa/xxx/mail/MailService.java | 12 +- .../xxx/social/NotificationController.java | 4 +- .../social/ScheduledNotificationService.java | 38 + .../oaa/xxx/social/SystemMessageService.java | 21 +- .../oaa/xxx/social/entity/MessageEntity.java | 4 + .../repository/KommentarRepository.java | 5 + .../social/repository/MessageRepository.java | 14 +- .../java/de/oaa/xxx/user/LoginController.java | 3 +- .../java/de/oaa/xxx/user/UserController.java | 1 + .../java/de/oaa/xxx/util/BaseController.java | 20 + src/main/resources/application-dev.properties | 2 +- src/main/resources/application.properties | 2 + .../resources/db/migration/V1__baseline.sql | 8 + .../db/migration/V2__available_in.sql | 34 + src/main/resources/static/admin/admin.html | 20 +- .../static/games/aufgaben/aufgaben.html | 1796 +++++++++++++++++ .../static/games/aufgaben/entdecken.html | 485 +++++ .../resources/static/games/aufgaben/toys.html | 642 ++++++ .../resources/static/games/bdsm/aufgaben.html | 44 +- .../static/games/bdsm/entdecken.html | 1 + .../resources/static/games/bdsm/neubdsm.html | 75 +- .../resources/static/games/bdsm/toys.html | 1 + .../static/games/chastity/activelock.html | 427 +++- .../games/chastity/entdecken-vorlagen.html | 2 +- .../static/games/chastity/meine-locks.html | 1130 ++++++++++- .../static/games/vanilla/aufgaben.html | 20 +- .../static/games/vanilla/entdecken.html | 1 + .../static/games/vanilla/neuvanilla.html | 73 +- .../resources/static/games/vanilla/toys.html | 1 + .../resources/static/help/abonnements.html | 181 ++ src/main/resources/static/help/bdsm.html | 180 ++ src/main/resources/static/help/chastity.html | 213 ++ src/main/resources/static/help/community.html | 208 ++ .../resources/static/help/datenschutz.html | 168 ++ src/main/resources/static/help/konto.html | 194 ++ src/main/resources/static/help/overview.html | 49 +- src/main/resources/static/help/vanilla.html | 163 ++ src/main/resources/static/js/card-defs.js | 24 + src/main/resources/static/js/nav.js | 69 +- src/main/resources/static/js/section-nav.js | 14 +- src/main/resources/static/js/sidebar.js | 86 +- .../games/bdsm/BdsmGameDurchfuehrenTest.java | 174 ++ .../cardlock/CardLockServiceTest.java | 73 + .../vanilla/VanillaGameDurchfuehrenTest.java | 142 ++ .../oaa/xxx/user/AuthFlowIntegrationTest.java | 107 + .../resources/application-test.properties | 3 +- 242 files changed, 14108 insertions(+), 1770 deletions(-) create mode 100644 bin/main/db/migration/V1__baseline.sql create mode 100644 bin/main/db/migration/V2__available_in.sql create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/CardEnum$10.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/CardEnum$11.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/CardEnum$12.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController$SpeedConfirmRequest.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockSimulation.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/GameCard.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/SlowmoCard.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/cardlock/SpeedupCard.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameEntity.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameLockEntity.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/common/LockGameService.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetController$GameSetRequest.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetController.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetEntity.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetRepository.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabe.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter$1.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisher.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter$1.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetZeitstrafe.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetZeitstrafeListConverter$1.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/gameset/GameSetZeitstrafeListConverter.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController$TaskSetRequest.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetEntity.class create mode 100644 bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetRepository.class create mode 100644 bin/main/de/oaa/xxx/games/common/AbstractGameDurchfuehren.class create mode 100644 bin/main/de/oaa/xxx/games/common/aufgaben/AvailableIn.class create mode 100644 bin/main/de/oaa/xxx/social/ScheduledNotificationService.class create mode 100644 bin/main/de/oaa/xxx/util/BaseController.class create mode 100644 bin/main/static/games/aufgaben/aufgaben.html create mode 100644 bin/main/static/games/aufgaben/entdecken.html create mode 100644 bin/main/static/games/aufgaben/toys.html create mode 100644 bin/main/static/help/abonnements.html create mode 100644 bin/main/static/help/bdsm.html create mode 100644 bin/main/static/help/chastity.html create mode 100644 bin/main/static/help/community.html create mode 100644 bin/main/static/help/datenschutz.html create mode 100644 bin/main/static/help/konto.html create mode 100644 bin/main/static/help/vanilla.html create mode 100644 bin/test/de/oaa/xxx/games/bdsm/BdsmGameDurchfuehrenTest.class create mode 100644 bin/test/de/oaa/xxx/games/chastity/cardlock/CardLockServiceTest.class create mode 100644 bin/test/de/oaa/xxx/games/vanilla/VanillaGameDurchfuehrenTest.class create mode 100644 bin/test/de/oaa/xxx/user/AuthFlowIntegrationTest$1.class create mode 100644 bin/test/de/oaa/xxx/user/AuthFlowIntegrationTest$2.class create mode 100644 bin/test/de/oaa/xxx/user/AuthFlowIntegrationTest$3.class create mode 100644 bin/test/de/oaa/xxx/user/AuthFlowIntegrationTest.class create mode 100644 src/main/java/de/oaa/xxx/games/chastity/cardlock/CardLockSimulation.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/cardlock/GameCard.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/cardlock/SlowmoCard.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/cardlock/SpeedupCard.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameEntity.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameLockEntity.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/common/LockGameService.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/ChastityGameSetController.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/ChastityGameSetEntity.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/ChastityGameSetRepository.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetAufgabe.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetFinisher.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetZeitstrafe.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/gameset/GameSetZeitstrafeListConverter.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetEntity.java create mode 100644 src/main/java/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetRepository.java create mode 100644 src/main/java/de/oaa/xxx/games/common/AbstractGameDurchfuehren.java create mode 100644 src/main/java/de/oaa/xxx/games/common/aufgaben/AvailableIn.java create mode 100644 src/main/java/de/oaa/xxx/social/ScheduledNotificationService.java create mode 100644 src/main/java/de/oaa/xxx/util/BaseController.java create mode 100644 src/main/resources/db/migration/V1__baseline.sql create mode 100644 src/main/resources/db/migration/V2__available_in.sql create mode 100644 src/main/resources/static/games/aufgaben/aufgaben.html create mode 100644 src/main/resources/static/games/aufgaben/entdecken.html create mode 100644 src/main/resources/static/games/aufgaben/toys.html create mode 100644 src/main/resources/static/help/abonnements.html create mode 100644 src/main/resources/static/help/bdsm.html create mode 100644 src/main/resources/static/help/chastity.html create mode 100644 src/main/resources/static/help/community.html create mode 100644 src/main/resources/static/help/datenschutz.html create mode 100644 src/main/resources/static/help/konto.html create mode 100644 src/main/resources/static/help/vanilla.html create mode 100644 src/test/java/de/oaa/xxx/games/bdsm/BdsmGameDurchfuehrenTest.java create mode 100644 src/test/java/de/oaa/xxx/games/chastity/cardlock/CardLockServiceTest.java create mode 100644 src/test/java/de/oaa/xxx/games/vanilla/VanillaGameDurchfuehrenTest.java create mode 100644 src/test/java/de/oaa/xxx/user/AuthFlowIntegrationTest.java diff --git a/.classpath b/.classpath index fe5de2c..8ce7b51 100644 --- a/.classpath +++ b/.classpath @@ -1,26 +1,25 @@ - - + - + - + - + @@ -28,553 +27,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/.gitignore b/.gitignore index 2d6aca8..b18b1d3 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ build # Secrets – niemals einchecken .env +src/main/resources/application-dev.properties diff --git a/.project b/.project index 3a71ae4..d9c8418 100644 --- a/.project +++ b/.project @@ -6,12 +6,12 @@ - org.eclipse.buildship.core.gradleprojectbuilder + org.eclipse.jdt.core.javabuilder - org.eclipse.jdt.core.javabuilder + org.eclipse.buildship.core.gradleprojectbuilder diff --git a/bin/main/Ideen.txt b/bin/main/Ideen.txt index 12c52cd..64b32e5 100644 --- a/bin/main/Ideen.txt +++ b/bin/main/Ideen.txt @@ -1,39 +1,11 @@ -Slomo und Speedup Card +Umsetzung des Spiels: +Der Lockee hat eine Stunde Zeit das Spiel zu starten, dies geschieht per Knopfdruck +Wenn er dies nicht schafft -> bei Keyholder, benachrichtige Keyholder und lass sie/ihn entscheiden, ansonsten freeze wie bei freeze card +Übernimm die Logik des Spiels aus dem BDSM Game. +Falls eine Zeitstrafe eine temporäre Öffnung vor oder nach der Aufgabe benötigt, öffne das Lock für 5 Minuten. Überzogene Zeit wird addiert und am Ende des Locks gefreezed +Selbiges gilt, falls der finisher eine temporäre Öffnung danach erfoldert +Benötigt der Finisher eine Öffnung davor, verwende die Logik der Cum Card, und addiere diese Zeit auf die möglicherweise schon vorhandenen Freeze Zeit am Ende des Locks -Sammeln von Erfahrung - -TODO: Im Time Lock, wenn im Spinning Wheel tasks drin sind, dürfen keine sonst keine Tasks gefordert sein und umgekehrt - -Ich kann Spieler einladen zu spielen, dann kriegt die Person eine E-Mail und muss bestätigen, dass es diese PErson ist, sie wird dann ins spiel übernommen - -- Falls fall mit Chastity auftritt wird die Spielpartnerin als Keyholder eingetragen, diese Person darf entscheiden, was für ein Lock das wird. - - - Hier ein paar Ideen für neue Kartentypen: - - Bestrafungskarten - - Straf-Karte – Lockee muss eine vorher definierte Strafe erfüllen (ähnlich Task, aber negativer konnotiert) - - Extra-Rot – Fügt sofort 2-3 rote Karten hinzu, kein Ziehen möglich - - Belohnungskarten - - Bonus-Grün – LatestOpeningTime wird auf jetzt gesetzt (sofortige Öffnungsmöglichkeit), aber nur kurz gültig (z.B. 30 Minuten Fenster) - - Karten entfernen – Lockee darf eine bestimmte Anzahl roter Karten aus dem Deck entfernen - - Ereigniskarten - - Würfel-Karte – Zufällige Aktion: 1-2 = Freeze, 3-4 = Nichts, 5-6 = Grüne Karte - - Umkehr-Karte – Die nächste Karte hat den umgekehrten Effekt (Rot → Grün, Freeze → Beschleunigung) - - Überraschungs-Karte – Community, Keyholder oder Zufalls-Task, je nachdem was gerade konfiguriert ist - - Zeitkarten - - Verlängerungs-Karte – Verschiebt die latestOpeningtime nach hinten (nur bei Keyholder-Locks sinnvoll) - - Countdown-Karte – Setzt einen Timer; wenn die Lockee innerhalb der Zeit eine Aufgabe erledigt, wird eine grüne Karte freigeschaltet - - Hygiene-Skip – Nächste Hygiene-Öffnung wird übersprungen/gezählt ohne tatsächliche Öffnung - - Soziale Karten - - Verifizierungs-Karte – Erzwingt sofort eine Verifikations-Session - - Keyholder-Wahl – Keyholder entscheidet frei was passiert (Freitext-Eingabe möglich) - - Community-Entscheid – Community stimmt nicht über eine Aufgabe ab, sondern darüber was als nächstes passiert (z.B. Freeze vs. Aufgabe) - - Die interessantesten wären wohl Würfel und Countdown, da sie mehr Spannung erzeugen ohne den Ablauf zu sehr zu unterbrechen. diff --git a/bin/main/application-dev.properties b/bin/main/application-dev.properties index 94b18e0..75437c9 100644 --- a/bin/main/application-dev.properties +++ b/bin/main/application-dev.properties @@ -6,4 +6,4 @@ app.cookie.secure=false # Klartext-Credentials für lokale DB (kein Umgebungsvariablen-Zwang) spring.mail.username=local@dev.invalid spring.mail.password=unused -jwt.keystore.password=XUR!Rv&f$j3UsqD& +jwt.keystore.password=${JWT_KEYSTORE_PASSWORD} diff --git a/bin/main/application.properties b/bin/main/application.properties index 9861494..2702739 100644 --- a/bin/main/application.properties +++ b/bin/main/application.properties @@ -6,6 +6,8 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # JPA / Hibernate spring.jpa.hibernate.ddl-auto=update +spring.flyway.baseline-on-migrate=true +spring.flyway.locations=classpath:db/migration spring.jpa.show-sql=false spring.jpa.open-in-view=false spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect diff --git a/bin/main/db/migration/V1__baseline.sql b/bin/main/db/migration/V1__baseline.sql new file mode 100644 index 0000000..7c444a0 --- /dev/null +++ b/bin/main/db/migration/V1__baseline.sql @@ -0,0 +1,8 @@ +-- Baseline marker für Flyway. +-- Diese Migration wird auf bestehenden Datenbanken nicht ausgeführt +-- (spring.flyway.baseline-on-migrate=true markiert sie als bereits angewendet). +-- Für neue Datenbanken: Schema wird von Hibernate (ddl-auto=update) angelegt, +-- da kein vollständiges CREATE-Skript vorhanden ist. +-- Sobald das Schema stabil ist, diesen Inhalt durch ein vollständiges +-- mysqldump --no-data xxx_sphere > V1__baseline.sql ersetzen +-- und ddl-auto auf validate umstellen. diff --git a/bin/main/db/migration/V2__available_in.sql b/bin/main/db/migration/V2__available_in.sql new file mode 100644 index 0000000..62e7453 --- /dev/null +++ b/bin/main/db/migration/V2__available_in.sql @@ -0,0 +1,34 @@ +-- Migration: vanillaAvailable (boolean) → availableIn (VARCHAR enum) +-- +-- BDSM_AND_VANILLA = ehemals vanilla_available = TRUE +-- BDSM_ONLY = ehemals vanilla_available = FALSE (Default) +-- CHASTITY_ONLY = neuer Wert +-- +-- Die Prozedur prüft zuerst, ob vanilla_available noch existiert, bevor +-- sie etwas tut – dadurch ist die Migration auf leeren Datenbanken ein No-op. + +DROP PROCEDURE IF EXISTS proc_migrate_available_in; + +CREATE PROCEDURE proc_migrate_available_in() +BEGIN + DECLARE col_exists INT DEFAULT 0; + SELECT COUNT(*) INTO col_exists + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'aufgaben_gruppe' + AND COLUMN_NAME = 'vanilla_available'; + + IF col_exists > 0 THEN + ALTER TABLE aufgaben_gruppe + ADD COLUMN available_in VARCHAR(50) NOT NULL DEFAULT 'BDSM_ONLY'; + UPDATE aufgaben_gruppe + SET available_in = 'BDSM_AND_VANILLA' + WHERE vanilla_available = 1; + ALTER TABLE aufgaben_gruppe + DROP COLUMN vanilla_available; + END IF; +END; + +CALL proc_migrate_available_in(); + +DROP PROCEDURE IF EXISTS proc_migrate_available_in; diff --git a/bin/main/de/oaa/xxx/admin/AdminController.class b/bin/main/de/oaa/xxx/admin/AdminController.class index 8be8adef4aa745e938d285e4ed23bbca3d270f3a..4ec3074ecad53ebbf851b5535c7e5e621f157b42 100644 GIT binary patch delta 8210 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 delta 8320 zcma($30##`_UGPndEZ+;;Qr9#A>|rk@}8+;h)8_w4t)+Z)^X zH(R;=#h;Eo4FFl9Sp&`>POcphcW`j>fToD5`Wf!(DzDd_wai`Rb(ecR4A7Y{%gR=; zM|AcmTgD)=-qY|)Dl4mDkLm1jc!`0wz|%0U%3En=``7`E?Pp+L6$Sri^pf zd#*~;*+F)Qft4u7dn#%wJ#`FXoe456J~sX^^J(l43}Sw{segb}XGd6zToxa1I;yi{ z?8)Yb;!~LA&+LT8{=#6GJWv=TcZAsFj{~FdIrhAaa?b4iqRw7oCI&V-F{^R@0(ZHm z+QwdCuWIbC4AKI7VncNH8hc%ya3=P6LuV(|4kcq@L!EoR+Hgv3_?w)UFi>94!+I;L z{6lANwbRvl>gp8T+luaAM3>R~U7fubJb6M@byfXBPo0gOQ3UTZNHFD4%fk8~z_6 zo*y{D%zh+CxZ5-}v&*E%Do<5I+dfhpWCYka*Ew<_%}EYS4r z3hJVuGYSgj+zOv?yUxRTgglpY&Jx4BYuv$Lkh~DtRSq81JyhpCcr1yURhZ3Susj{n zjnHwX-n@^-<7C$0e)5Y!f~flPehhf|N(PIa2Gx#1C6)nvpvL1FxB~2S8JE%pojgGf zPH|gYJXzyOimUSQ0aHwf&Ij=n`D%*SG=vY;cq;KvU}?>Z2UjplCflO%kqr79)b_p> zdr{3w8+Y;1Iv>NwG8iBarVWtEsog^}*-|Ud<~bT4&%jCaz2z&Z7PHQ-cK)jo|@dn#jaPhxjLWBuWtS@)yE=S$~JazE9NtFUczU}eQ9%3v)Nr%p2@ZnIlEs$ zk16OV152gH>uKb#0qPzqJlG*&kh z8Ua>Z?_S`c)7S^iyVLu#F?BlBLOw+UZ_s%o+fAOYsvqZdS1-0PGheQACo`$ll{#Og z5>zzQRV}f>7Ji-1SM%#-*swg)8l4sLwbDIox@m*XH}V^s{llucWh=i=QgPU>^9R^PiZ0KJs``fdaVr&iHs7K1o%|trXGTKLt$dfxe-BhQ zLh5R~UXK+P@jc44k1)uWEUl-^&$Qi{Ify+bQ!;B~o7s07Kg=MsBm0YsbH@`?_JKT> z`HJZne@f#|%G*bFH$BZDnuG|86i#Ee!n>u5o${9TMv-XTpZ+H};_N(8NByQ?cabQjPqFrlty z2^mbrj(@|_4Wl)TV$fH{O^WTCLwYo<)G( z*bQTK?5U`f4JLRzmF4b=#krNV!nUa8I34?_@H8v)5d#k);RUtQU&jH#o2AIJqCw#X z>ga@hZAa!*RWI-?aMPb^wUnsC>*!(-?@Y+6^rY0d-6`_o#Mn?PIxv~6je{8M?QHEX z0jnEh^PCAYm?a&DX?T@Va`5E7AvzAn5%SE$bWUm~8I98ztaj!RTAD&b<&@k>^hL;fbJs;> zs(R!Aw=%^{ouwd|e4tZanAkrqVTMA^)^QF?Bh!(OJ9*27na%Z+tC*z{=W9s!%`oy@ zf(*^G_gc_aHpui5(B0q+B@xgA7whQ7C30k5iKzycYFI0`(yk3(=&7jlP?W60+jZQm*3>PoT94v7 zuN61o78M0|G8o~M&xXfz_P!jMYHlu^vVirxPsjVAio8`*m*cJXOjHcF$qDH>utmxQa+;NqiRD~`-b4!c6?07 zwyvr?DE>O!r{jJ_Z>;Sl3uv>rpKe z9YWVVcgU$lx0p_cg}Le(gnwaMaM(f9A*+`J2uXO7#owlHT&0S&{QX38&~HboAko zFinKp@kjs{t-~L{N4O|E`0T>qM+M7o@av)Yv5RUi8Rs}YOJ~H{@maN(dcZAVAz}c7 zTp2!RxZE*2GIU_uf^g{~NhHf>XXmj*89Halw3Gnnp*sG_;GC*Bx1Baz$3GjmVI8

CLzuZ8 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 CE72eT diff --git a/bin/main/de/oaa/xxx/config/JwtFilter.class b/bin/main/de/oaa/xxx/config/JwtFilter.class index 5960bf69db4d7bc63497a21d12e4f57b4a0d82dc..4c108bf20075553bf8b725a913822e2060da9587 100644 GIT binary patch delta 1597 zcmZWpTUQfT7~Ln6%$b=CLaAIL7$Ve45@;$|)Wo|8NMorGu~d6W!VrO&Nt0mEYSW9_ zJ1srEsH+e1#6zE~iqfvS`q28&)tB}s^bd6P4?w>Ys%1ge%6#XX@4ENdGr!g^H5k7w z{qO+5L0p?PPB*I2f!^LDgACPCJC_RO(_=d(LQy-FvT~8x(X%COPcl88887T(P+I-N z49>&$sAZrMPjFN*)UD0xi6;wo?!1X=JjtM^tinn)hOMp9iTJsAC>_tFLWk4wd_Lk| z-&6-fjR_Z2hRUdjv8}Uz#JmO+G?=J|DgB#GaAIq|#d zQ>JlV{H?}X-ehPTw?h+oJ5#h0<>sOOVqw)4U%K7Rzh&*rBH64e{Wv1RP%%`9Cnt}^ zvoYC=;|uYR*3PboCOunHut{o-UWjU`sj?+SkyU8thDjo;pq-zr{OQ%~J~rIO##^*; zpq8F$*;R+S@(E~H4-ffd+6Y;NY-QjcHU)xr(HLmE3-9CP618=bzmcAsNy=VqKvTJr zZzT^tY#~2YD32$HsFaeYy3MrK9dt~F{!X;uDN5Q(Yn9wjqg9UJ@DM(e&gO!P2rz`5 z9_K^Mc$_0)?Lk+GD_!b5&U>^PwIl4Re%9k!K*s`hT}L8t2aR&OZvh9xx<_9`FQpqE z;~~Mh1Fy$eK=cN>f5hO3^u`#7o0IqOO4xlLuY25!7;|7AEn$5g-mv~XHdd!)U`C3q?!^jK7-H5`#IIQ z0ltg|=p2kA$T71Z2KX0O8#B@X delta 1206 zcmZ{i&vR2%6vsdJy_a|Mk`zj4v>^g%OCU{u*%m9LRA{ROq*$S~Siv7@8~Q6Yg{GiL zO`Tyzchb2tIyx?N)un?%p*q7(7A{ojN;9w>j^ea(g(gdCq+4BzB+hqXQCs zdNM>G&ujY4PfoM_0t4nRC*zz_46U};m=msNe)T$zh3VnN2xt7XkfaSSjnC#M1pHZs zG%qP)6?jXfnL=BCu}~1-OmTiO!pod9>w$*gNrrtsN6c@5K5vv)H5U}ew_CK>W4vY- z+#&B0Z)jdu9Nl)L0ukQiE#vCJV3=_xH529+owV~@Hh=07HT~^k@C#K_HC)O~%$?0G zjO4}(dChx@w2+y$H4A1ov{1H)`pc8WNBz}_wq%bUA<XxfwZcKl*^=V5}^9DJaJHk{OOT5FB!1l@Lqgv#C881l{b=1q(#sPUEDF!&m z1rBjhp7mwXb7WX5)65MCS(e}r>EvS$SJ=BGT*}1%vUi&qW~H5fH%CF(@vXO+m&QRp zqR4{qS1-k{a8>x~;RuVAq{=`A;x$?5ocz}XY?yZ?`xD$P5@kG%(j+xEG~=3^C^_DQ zExHLm=F_ArUQLgt)sIR3C;y)qzv|SMfcn1%)|PC!JMdTwLFT`UDq99dAR|NiZ*sXJ M-={3v6(UyPZ}nEjSpWb4 diff --git a/bin/main/de/oaa/xxx/config/RateLimitFilter$Window.class b/bin/main/de/oaa/xxx/config/RateLimitFilter$Window.class index 8927b01ea4a4777ee135f4d4a32a9620f83e162c..fc83964e4204a3ca8f1b2185187dead078b85492 100644 GIT binary patch delta 20 ccmdnXvzKSXVHQT2$wyd>7-cqpXK`Z$08S(Z#sB~S delta 20 ccmdnXvzKSXVHQTo$wyd>7$rArexV3jQWi&qO+OIz>_W+8AqTCleGv^B|r2nlr9yE{sZ~h2?Cj4j0e73;5p}o1Ov$tzYYiCdMroN_jCm>Ety|gpOO4!@S z?Xl#B_;@TS5NMa3db!pfj}6NXQBq$b;N2FU2#2EK*l?&jnTW)O-8ff34@Kj{k(e9H z1TsSjdpI(dOoWq>I7Q3lUQr;z9p)2g9v0mpw>bTdeE@=+i|j;F;%@=ZrYd80sXI*CX;)Vi^G$Dlo`0(r0wmm0W4pi(Y#m&LJGnJJWTF_CTWCd_oO4#_?G`%FDPMCo zyNl6f;Yw_hby`KGGVZa^tBf;gyvZJkC+()8p@fe`Y*toR39OYu%a!{*9{I9%&ibqI zJ_GMP9kt1^q&;Hc8eA)oGdP||*s)|!WW?@>M5B>00cRlC=7R&*SqNi5u5pD*hH$+B zn_<&+k0&G1P)B&w!Z5bVTUSX5W7_A;mV26Pl<(+!1a}qn{6MDXT0`Ir*0eny%(*tX7W`aHOc-creHd(gFj4=}* z!mS2A{I)K1kq61miAd5;SojD&D%Tlhwrb#Q7H(H%W=CR!344TvHpPZo?4*la69~4SDwU!}ADo!7@F_^PGD(ICEDy8=hwr>JBxUoU=Za&lg`a1f7X>-e1@oz?WbkyKJm4uz=U0=Jp}i?kx+w7Jt~B2Ax~xK>%N<$4R57xlGloGnI^cy* z-9+5yruTVV^X}o=1vd&&M2(-j4bb=m3iZcP-0$?A)7`K6O1t}AzOwFvC_g}z11tFS zr4JS`L?K-k@V6KhX)Vc5&ZL$+UP*cjDoUzmQCW2u!TwoPA3_b6tGGP>5bECPHHW^> zW%{M`nUnTvEx5qDu$rzkT!?zQUBk7`eAc2tCGUt*c3p8lXdY5lKckdRM zLCZAOKZ0^OmF-Wp?19g(`Sp2R0jf4mBSWiq-G|Iu4Uuo;yZ4=ZKHoKsowV(yBi*n2 zwR!Xb4aQ^WU*oQN6g7UMz&(#Gz#Imhcmk0I({Ik;h8e`Y=DjGY$q^6EVcdb5Iou@R zOU>Yx12n9gLF!|9`1tmW-Fx6yp60NNB&M@Fm9yOrY_6@QaE}uT8fO~tKK2VZkKJ0q zA}d(%N`z2}%MoA=L3DC|6)&c1D7A4ur??K|1Z)=?F^!AyMc(lb;u1W>ugW7Stj7!d zvUmk8X?#Z)a9hNe2;vLam&W`U4ZlQ;mF!-8naQ~EBEEwA(pW!-ui|T@PzcNLb;@*x zj^qCHYLpk?16&zQV+%u@wA{sXAHu^(nb=R4_ro~J^i2c8z&ZmH2JSIX%xUMIrJtnR zGnDGUlG=5qddb#tlG*5Ic&5)@n5lQl>6Cw(!7Gm^D$ZtzN0@P@lgNOWfM~#Ls`(~P zYIG)ugBqTi+GpS`t)0OkI}e`Sdy#h-k^aLN?bl}USm`Y0_t%mNq{-u(YZVF${aqNS z)g=6dC?~b6NNY7v1!?eW@J&Lg+E7ELJxm*Aslk!sWfHtZ7LypDjQ{eWq?G*mwot4* zm58CSYt9F#PHAaQsrvz>f{L>=V&B72#`*qfk{?i_;<@1PUncnaAvX>@iy!f=ocx&Y zpYT)8@IU4LXX)q9@f#-d8h(#IrdNN$U+^~^=edevDk41icaHc!a034#ginz$Z|NEM KHxFpkMg9+l!5u;X delta 2096 zcmZWqX?qh@6n<}JGLuZFq=YuKETt@^X`2!@3k@PtpirQIv4bnX;PB3fLjm| zMR3833aB86pdzxTv@GHRDk7q|Z=n7GzWBlAv7S5S!AJOzJNKS*?m6#y&p9_&ivKLs z&i>PJ62N%;xL&P5p4+8CgWDL!G$~qB^Ze{SWy>xGh_zi zW`mVT#*L&EBT-*|h51-Nt~x5*gLDi)wu-^L+EJQWh(T^J6zlLHiywEKW<&WZsc^t> zh8}hpD;BJtIcfPqvst*xz(|yb69_%Ke#tr*X%Pzau3Z*HZ#TjSzL9Ft(=WI6}A5-Wkn)sHtDz>cQABc*bG?wz+4^mn8(*RgT3#>T`Cq3b9T}#Nh=bpF`9MUjeGb7XPta6gP&h^ z`!x*)!a7VW;`5Y{(ul<>EWSk<(sKzSZZ2&x6Ul^z`|yB@`}tBeS9%Z+@%3s!X$Dqem5PTMdM`GX z81bYLOqlW3h?xvlS&^g}pU`MnQ5}z9^`Tv^wJhbrW(LpPvZ`2onGp}0VX+gXc~Qqp znABC8DW(xNy~(f8;&9fEU@6|_!OV1IL})$i=+$qoNvp#%+B$Z z-Nt$@ik|#h$J^NFQScQ%*R83~w+wo9G)lBbj6}kuj#B1W(Qs^;il6vuPYJuk_jv;R zH%|_e`5&I*lvhj_`RPvM?0^?exX=UHB*`Jk1jw`kJ(Uyi)l1&o+IrdBtG3?h?NfUQ z`3FelKmn~@+b{;G~71p<*=m`A(x#~tH zWIzsk+1P{|z3UQ6P)a8m0hE!|5ZWsQAc$cCt;0o{43ecw+cAP6BunK^Zv`F3Fr;zI zW>g+TetpP&vfL$=tGf}%bEk6D;UOhY&Qr)>3%p|2flBg$s?BiA<<8y6T&=Pknvm_C z7jvAOQCm`)##FjQ*E%o*2&qSL+bCDbVfgb@pQ{6NfOgE6a0*69%hS?Wm_|dEwiCI5 z?rd*6nj8qUgKFblmP%vAfwEFMrX&asB%96|L?Y0SYEeKL^+z627{ow&jRs*F3MuLU z%q2D!5FcS;BSw5A$zmNndYdpB+fhO79Kv4Qf+HAbm!i3go2wj(3?Idsluc|JkKu75 zQV7@L2?F7wu3CrnHlcg)B%Y$i2oj*DNv2T9YCL1_ViaHl?Nkb1foGx7&2hJ;u z&y*-hP;P)Q&9<)CA7J7f9pfE${@q+tYYe8lJ}P{nS8j zGVG^2UB&6@^-8#DJhJJvFF=(|Z~^Jb-8F)X1i{3w8~Id-^%PI=;R5>`1(cr+Fy&+d zVU{MQm}~{IR?1k6U7+j?vhvH)*l%VdW8+q2AA?bU42|`28xG~S;mCecQg0odQ+7SN zp)}CLs173t%}5)akK&V09J7&#-EpdsA=#j0IJ#$1*b`*pz)8GAUxnbDqVK!(%cayl pr1MAidKO>M`Ad9*@9;fo#UGYI+8=0Qf5gwYO#S)`$z_rm{{sFbq6h#0 diff --git a/bin/main/de/oaa/xxx/feed/FeedController$FeedPage.class b/bin/main/de/oaa/xxx/feed/FeedController$FeedPage.class index c0a0d3398f354529bd2027437ddaf93145933e60..16c6a4b33152ab34250cc469a34503e54fec4451 100644 GIT binary patch delta 20 bcmdnRyNh>&0V`wcWJ6XX#@5X#tYM4*M9T&4 delta 20 bcmdnRyNh>&0V`wEWJ6XX#-`0FtYM4*M3n{T diff --git a/bin/main/de/oaa/xxx/feed/FeedController$UpdateOptionRequest.class b/bin/main/de/oaa/xxx/feed/FeedController$UpdateOptionRequest.class index c609d7d38bd4a748cdcb2f720bb0867aa7a1bed0..c73b5879e9eb05dacad9415b773b74f91fbe0328 100644 GIT binary patch delta 20 ccmdnVvy*4Teip{|$p=`B7~400W^rQ#092j_hyVZp delta 20 ccmdnVvy*4Teip`-$p=`B7+W@fW^rQ#090rPf&c&j diff --git a/bin/main/de/oaa/xxx/feed/FeedController$UpdatePostRequest.class b/bin/main/de/oaa/xxx/feed/FeedController$UpdatePostRequest.class index bdd49c7fc2e23b53a54408e0caee33a9b9578baa..f4b3caa5e3377b4b497f377461ee0382784f4e70 100644 GIT binary patch delta 32 jcmew)^hs!gJv(E^WCwODAXyD2x3L>Bc5Hsh-pL36z77jD delta 32 jcmew)^hs!gJv(FTWCwODAXyD2x3L>Bwr+mO-pL36y;=(? diff --git a/bin/main/de/oaa/xxx/feed/FeedController$VoteRequest.class b/bin/main/de/oaa/xxx/feed/FeedController$VoteRequest.class index 9adea41168db11bd0715ad0d4668e5f28699bb4f..ff0303f758dfa12a5f2861e3adee98b5fa14a034 100644 GIT binary patch delta 14 Vcmey#^^YtoorrN+0sydr-&8Tv_Mc1a#SJA31bc%rpAw$e*=T(_uZ6$H^Gg2r}Db8+r+ z9+C@N6KmG^CZ&5MGs}TwUw_yAoF!;N*G+W>)#<*!Fo+k~#J%I`6BYY)_AI3ffJo`; zBs$yJ8f#8J7IcKSVcCo`E4vIx6|}X)eN+Z|sqo9n#l9RU6KQ~iE{r#?P1ME(4e%Cl zs^xAw8MuyBv6fY>v6ZPJL%c)+8FeRDF`?=E_Aiqa=t1kFISZ( zN!G=~R7r=MbQmhlRKe3@wXAb3I)X+E3ayN{+NxR5!NX^t9$Oo$Y=||ktenyiYiXG< zB3pxpNYEII0+c7HaCV|GKDTYnig@#)*op>BFI0YQtYJy4Il=eN!@Q&I7OE}7y~D>U z*W1bIS%$$UJe_6F5Ss4Pkf~9+RZoUS_STavKGSpQU2l=jBsZ6S?N+&L4cc|F&Xi=g zN@eN6u1j^P<+@WeEiAsN${zPzYRg+eE)|vYy{nJBFLS6X@9R!flQ&COvfW7^yDE~U zWV%~drXCrwBut7XSTvrF7BtW&rl}!whh)SO)&UbOGAYQZNfw1D%&Ey1MabgRREzSd zfK$^gDx@M#9cNK7m2hgNMWxh(Q?o59qn@0aYf&%i&8hhoMd=_;EwHE$_2twei~3Q2 zPA#!$01f2Si53l_!JJxV(GVKSsgo=^m=598DHaW*;hZ|nq7hUM&Dgps(SqK22T3ax zRy=6{3#A(2KBw$YKW~Ao(SVVj6K`FWteYQej;)Ee#+y+`xVAYSYmGB%6_oG|r>?QC zHR*x1XSBszS|`}bwkiZ!@OxCswd0uZf7{6Y(*KgJhU*evN6`$)(l;I$^Wf-kM<6buYWbI@ikLhlM^PQY0(93Xyuyt zl0-`awxPPQG1;mOHpXj=ZD%sNxGuh;az&!Ct}>R&TggK@C)U)2u>j4$+E_yyx|&xB zU!oO+2Ky^X&B_0;wgquLHTr(9^+Gw3gYXuF{mN}!#IcC+O^#m6wuLYykhPuZOuW`)s{>u*KmQQX=G}OWO ziqKhfj!9<=8r{vRy~Qm$m%fD&U%}M4&)seW`g}fJXwn6OhGe>VIRwF?i)bTDYkWO~ zrw8guqmqTKECe8UF@49RZ$tJn-&yos`ko*&(J~o0X0=8|%Q*j~7F|Y{V;mdejVoJM z=@&IT8$Yn~6sD_bi%FZ|E_g=3 z!2pwOrwQ3Cx`wVr<26^$s|QH;LNcfGBfQd%{>U)hL^qrCQ=o4@zglz){R~}cjy2XL*DwbIukv9c{O$opuPycUoxE5_CwmqIAZ~Lx3B8F?Cq9%jVAJ#2Th~zeNww zgP1eWT%3NHOL%)S&t%4g@PLJ2N0wH8Q;=%aDqEDGwO*nbX zn?d?F$V{I$Z7RS0!lEx(w%G-=<&~fAwdiXe1`AJ99ShSwAxr@S=oQV}c-InAD3)xr zc6zdzDFf1ZxyR9Co;LfQq;-XzBj;EKMF2{AF<{!jv(6c~D%LuXRof`8jUNDnwZBc(6P0<%dI+M>b%z*6&JH|ltp&P=Yj~HNyfv#@0Gt|`KIo-;??&lms zEpf0o#8wgu;)zvp^s8Ydc+)^rmPEvGu(=okn2}k14mQtp#kqeKmKe#V+Gt6fiBN_R zhgzaiAed3sn&fGAQ04UIA(81DqSvy~IT=0I~3OfeRAF+E??*4M`M++seP<7dEjd$qc+P23R&p)k~E z_@_MtU~8KJasW`YdW{CDMRt~S-%(%dh9(F#Ca%oGK&b|y4x>qn@35>UWiXO6ydajq zPYqNK_|-OtB_7g_oTFyEh8o--S(`ah#Pb)n#%fms{p+}rDQ3FLJiFg8LbeOWDxRZ) zHlu8CrY=1SSxs;mz&qHTj&Aocu%K)IU)9|`_pEPaD$;P4o2sch$91g6=49}k9$Kt* zl^XyA3x(6fB4UA9WQv7?4)bu@pR!{nir89e-iknx@tba0tZ7mN-S6in`#SPEWQq0>@SzfIDzpJO*#8 zCFOOA7`!gA0;?9?^}75NxcPOg@gb*vZz!eeR|*=DYeXF>bw|?{q_C(L2}_)=aXl=^ zymgInz;Cz!qQMetL?e(K+@M%P3)>ct^txlbEFzjjvnimf#^$QkqvhS2GvZB_Xc3VA zKJoQHfGv|ZxY=szsvGOrsI%`dBwJq6)2Dsu5zF8+h_#kj$Id`-_Pi<8i)!Z04GJh} zjqO|F;%CEaYW^$w=ZyafAzxRtb>e2Gqh~|;c0N|^bVrWtw$_+|9;d@P zl~^DFyLVsdIA&4Dd)RI@B232S3k?C5t&7*k;LI$sgGG!af#3kY~Q(P+OFb@|y zFan)0%Oq;)G+SJ^uXFmEtOZY}SU(d&Eey1?E6I=6VvE_g%+LTy2TXVhbdsr4_Eu8jp9R^Vv@;VchX@ zLJ5($))LnVgdqZ$(FPXAtd=>5RhO@CYpi8St(@*8Ff=!an@n+|Yu~f0vBXcs&A<_B zVn8tCz2vj0dF%4GmFxMLCAMnswKd5dHpS0fc&2NuZf=fk;1^+WtGErp5^+1=mbbzw zyfs31U;_JiFNixWaTjY*6|1X@ho5?c`T*m7y*W)cFd}q!*NRXaCmy9wYQ_B(xe?9saqok z@%gPKekWdlZm3N*f;9xq@z&`VHxG;YUwG%j|AxK4mn`vn@iMesYZ7Y-Et6xdwFuw3 zp;67!o~hRNor#1JudqnGDrjD|%jh>`Ief)5{K!@^CD z;$2JpP5hmec(S>bb06-l+LPH^XU1fR_rwRLc;5};>FD7cznQ+&wUI03a60L~au z!_xGTB|a9P06Dd^t>77A{EBxTHqi5CiqEhblF69<*+{{Pu=rGb&T9Azrj|)c2m0E? zSC-hz4!cZZ0U%Vb*WzpHpn$wiu&x`gV@~`TuS2$=>#U`SX<+k5yv|j5`e~pAJ~tqR z<8bGY60Xn*I)GxtrpV%jyL?xrI`>wrp@IA9+~%!`H?QQWG3pW8K=WG>E(#>DhK8~x z!fkVsyskGmqt{1!?lt4{YTHqshuqU_+~&d)r+ypYXw>F~uvujtUFejyHJrQe%R^)I ze(QG~Z8y@wtI$6^7c4Hv|+VKey z*-s8IWq(A4_Sb%0z>)(Q%Y-qE49PJ`OkuDkhiE4kEHqcIQ3P6;Jfv>FO}5*C2yXXs z9tfLph?xP6!~ILV(yaOTzvTFw|Gz>wyQiIKEG<$6m2K#0VV!x#?D(a1WrHQxNJv>;td`d@1T`Koxb~n041*VYYenVlbP6TI!nL#kGI4-cHd*ov z*$nWNsGpC`IS@j1&0+>z|Y z@C**-Nk7YyXG<6egK>IRsKIq55NZJ4#x7}OY}O(XUbA6FbF!^T!_-1g<=i$7Ml>|w zH}V3~co#i7WdIZ!?;(=~1UoOtNN$j)C|ZycqlR1YQAk6aH}K|+Ug^opUfbyeJ>^<# z6IAb&N<9yD!~PSpPG__%FG(iqw1qFSS4t|+N?_51x4Z+tC+foTQhB*4FB8+*mVVz^kuE975wxTuVJ^uA4-AD%p zc^haO7Vg-+mb_0QteICAZ@`w>P8OP$aMm4`+$lSd!|n`=g|92VIFLucyNClZ+1-}B zUp|0t*e$4L?byp16+KVddTL*7Nm$;Etr7BW`LHD)akoa;Ti~&7ChrylILED=;|WXd zaW}!SZv)1Vx6+3}`82je@B?=_s{XP2n+Mth%a0O`{tYZE<1L6StZBur68TF@KFj+@ z0(J2fZBY0lz3N+!H4kzpatwshgdx)lTY1SQJCUDg@vs}B%NiadAjND1rgm@PZfDii z>AXVeALCK_F4JUVzYGdCS7;qN<$qG%uE;~h8@}jvE4b$#8s45{S-!6MTlXZ~)&y_f z*#N#NTiW)cXcnhRyAIHQZnZE!KmY%tA=w;}D-_iIrNjAco~6Tx#|($%>)3ZJ5svk) z@a2-2tno(NS^n9Qf01tjqSwY6=OpVA^&43E@MeJh35CN*9&WaEDi%ie$-i3iZTSw! z+L|Y|N6z>8mE+fCQGhObot|gg@pnt=9f-Vzc3K@g1Z+U$=kHtc1Nl!ol;+)JIuM?N zhwGd$UOLAFru-Csi89zS`LQKG;f1IEUbXA^#GXB0B@~jMS@PfVa~Qi;C@n_aIng?d zMO^|b1PE%uefrXpU&*~N0QHFmI5CJh;1@^ zE4JLT_FbZ+r4$DNg0%>VAw<{$m8=4m%40=cWY5Cn4XG07{Jo|MVTHjnT%9wGUCt5H zunN+J_$99?p@_4cVNbq@W|cjNN%nzL|nH6kxl&#`ros7j&#g)VihcZE7Bq5wq&C9b# zdI6S?ow`D6YJ}X)QM-GC>TpC!J7wXO@rK9RTWVK94YsM#mO7F*afKR_jEv$O4+y6| zga*j*dZbws?%xHH8iCYoL(!`7mO9E+H||0;Kc8T!qt!9C0_K^s!-y^re?Gu(d7HgDhlAyK!x!!OpU{U9`I34gR)0C!|?(V)oI7Lmy1`9O>m^G(bPG$8H zvIWB4Z>OeNYC3OP&r3E>YiNnXqfy6Ms)ij0YlZ#2fwLP&vhUg!#R0}c=yx=H4bD(F*UoBDy1nRvwa3k!^ ziTI>MJ5(92M23>VY!`ENB|1*2mRf3=TCT&8&r$dK$`-mERxl`RrSusS&RD-3~aH!9$2Xn=0SD6aSr1p0G zR9g{p;%1&9bm1#YpL&X zbBf*Jv-JSRxr7c<3C?nvr7q`L=;>{73ycNNLrq-?^H`pT(SuEdWXSlY_JVHM%p?>NbR=@ZR@5kQSc=SE=59pR7um@Du z+t}=GIxf9NMEPwPLf86$M~mGZ2A*do=Rt${yoNOAaSx!i-2D2z#bPprB|3eJ-PUt( zItP?AWL=*llFm@zoY0aI{z%gKOvNtG(Y17LM5x)zZqe_;h)3I;f>!fBh!oo(Zn_p& zp$N;xf#>J+`SnauwcCOU_YBbBbL>`d*LXL^PC@aXU6y zs2v$Aa_&xXPdBu7G!+7Q12TP^40{Y<4p!}z^{J1&)kM$=A1dm`b`(!5Y&Sg1UC3y` zgs^&0jW^Xp{x9|RUllL|K5$Tv3OdNs$qXiA;*VSE3C51R1;TN`0r1t6>Sr;Kce1He=*gcVaK~1-A>L$vDBL!4jGg&O4(Moga)X;vITh? zPNk1kHH>Ba$_|NrpjvLUld`}O^{)E6ss7f@HfNs7!ZX`ZLIYt~)g$VCOMT#e4LTRw zf{3eCRHu?ukKvYEN_rj+)CWu3J%2f5C&ro|{b2ghLev!h%G zhB@}ZuSp#H0I{*RL_)m1nleL;!G?rVZ~-;VbnZ1?K=2~vYinDrktd%h$D9W!VM76r z&9BNBE? z(s} zO!g@lXPEqx>z>!wc^CVsmrMg&3=hrLi(QdI)3HbOFfWUArvd5qkJh$416S;q90w_J zDqyNRogr%OaqZR?|C4(CdnSnurbo8w2Z@2%e#rSh}Yw(dI?Iw zF2{RDJ$>$+nAQ)rSRM|!9OvWI9Hwxny#`~e1UDc&0$%z#8#2h*BkVi9Y(LI}ql~nTa_tXB1MAejMcMsO@w6LU zU!FY+x!cJDpXx9K!%ZK7sr0XZWts)wDpTf5w7<kcE}>?Bx9y!%ra(U`&3gK{9yNUGd(k%FM(uN01%#| zT2Did^rSIcsX;#~ogR%bd(_K)+!>GUJfPbQh0~3)p1H~;G!B>h=1J$v)XF@ni||o1 zeT2`E)%*BmoM0IzGWaab0-v+b2pcmD9P)OJv78+l_aibr0orM1awl8HDLhH+Q_X9h zYJc*{1y8e#m;oRZYQS_lQD>Z$IkSWY8FfJF1^`L-!jLIo&T;-P@XJ_b83}GQS86*! zi<=wx?bl(tOMMF1V`C{B_T<|)4yHyamxt}w3b$BBP3omDck)MrDG;dh415Cu^u}NvzwbMbJ#dj?lXB&)buCc@}*ghB)(Z@I!T(>aU)?6E( z4hIebGu`KN9?JTS_jcy`q9oS}B@P+XUz0d4>wy*3y9v>0_rN}VtT+M`uxPCa(#D$X z!xLM=#t)4vOyfsbKuGJ~MC01zY8=y~VFWV9>Yc-DjVq0-;926hMfZ`QXPw#9v*(nw zi60khtZRt344s`!u5NR+rFW7&s@hkO*EAjFnoYIKmv)t1m-Py(Q|%N4LKk8YenMfM z@q;2LM}XHYmQi37;=yKp^o)mh_TwpJc{4@EwGPc2EaM=f4`^OrWc1-@#x2HH(|~(Y z>7nmxr_AW4{qe7@7%byf*Q=TBd>dR-R~RsEMu^d;wYo#h7Y@+^S!DdeY4V+xF~}HP zXc~9mTu>inzw(-4e@T6yZbFf9H&=w<#C?{ro#PfE`v4hit3h|}#e%V~(wtV!8Sxwr ze37xk>Bnx%I9Lz;E@$X5#SdG?A$p1*;wh5bdD@?_jA6!b^!M=tfo)5Qj3*rezqE{U zqXGn;(I3lt=CwNm213sjiAHY8Z!F_TV+@$(`66QsdQliq5k8l~tC;j~`1MR~K<|Mn z&IG^YwD%Ru7-x(}d;g%nrSP;@6L-u3*TKsTejSO{zUGYY82tjoWxb)kPEaO=H z_Fwi}gyf8WTgK-sU>smute4Bcjh|`2;%QAL&dwqFUpnLSjb%(Ss?mh6i;QZ12I#f5 zFc6TL+NFEL<>_U>u&W3JEn|u?wJ}}6OAZ)3Vo6b;(8*kC z8FO{!5`Lz+FwomF=JDVJdbvXDfn`Jqdwwo1EMSa-)juTM~gIEaP}%0s4lJ&P*TA=BgsaW*!F6 z`7%LvQQ$~tM#fvl8AdZI0Jk+e&yKN-He+p}892JgSj*1>lL5v8*z_^dL)fn?9I#^t zn(cO=C)Jsfw%B_UG!uQ;z; zUvXNuzT&KIeZ@)L`igV9^%bXd>nqOa)>oX+t*Dcm7+o`%d3S&N{JQ~h+v$YzXwi0BS{^Ol zPRq-qCEMxb@@VOHIyK$81$O;tYMn$b(H64JekY}O?==wC~=A>lv$#Q4_pULPVuBN zdo=NZ>!8l5TB_5m(uAH3#=-9Vj3=4driqVUM~$4~iDnjR;-lA5cO2cz znE)3k#ZMW2df_LEpFa5Mho1rXsm0GA{0za*!T1@5pAq z{4^{l(L!se5zj&r50Xd_^9%Ou<#C_IP30roscG)0C#kSl{9q@wcF>uE?yhL3^Y+j| zd}*gmTd2rRT~b{7?VHKkN#9RpyJ9E(xXRc{1yzC6hv+5gVY;}= zjGB9Bdep?&Y$m*)uv_$5xLK}aFr&UP_48Z66e7emm->S(Y- z3`2V_$`fUIOuR#22kMRcwiMITm;^}bsCF@`LmV#YZp_;;G@WY17;rf2fpaxOT!tCE z96bDeyuAYNuY@FBMT=-Nq-YB`?HaJawUEK{k;+(7rxjX1jbCVG^9O249; z>21126w_8QkZu)+(9gwKY`L9Iw~2XlyEuXF5HY$_tj6(j%{YN>qUr@d>Y(AdW_xr;`%L&>l$TA~DxV&7zQ)D2@f=o-C$`NunBG zDG#9rF0$;2#c}BQg;cPYdYW`ozu+uWjM+LrR*ejHrPuNi0(B;)KnRL2*)tI1Qr84{9G4_3dI6L`kgPLOqfH)QYIlA(9HLU@FLyF*dI( zZwm|gk5WPo$!8(wi!J1KDpSbuR13MuLJszJWZxBXhvgyULCEfH(cm`G#zG#nsc9kC zBJdDPf-U5D^`tB0oR5W^FKHnULM!}1HQ$tlQeqvBhFPq`Sz;ZDMjWw@Xu2%c5zeQ@I#L#L#X91Mbx4$j zn0TgG2YHIpa(xw~@+Qc&q2>B2t=J!cd3ca|L(dGQM`#Q^M#s_Pu#S(>DLDB&Nl!w` ze~EI>LVBOW`SH)=H22@2#BY)7cX;{&y-Y9CpXep}gnlo=^s*?TKZxG+iWrJB#gC@f z#7XozWcp9y40=PHPk$Caz)|5_=uJrTTjF+{4c<;~iwEc(@ig+hf&;!8Z(PRqPJED( z_YcH;&|-Q2KubQXFj6e}3R3%ymVAST;s~)b#aWP!Q*ct?+2R~<`t^=BFri(lwKg!( z6I&Yusa=fM+8`(z9c>Uo8*Ob6Mk{S?5P>ct$P6}I=^DNT?ZNut7Ao0Gy`cj3QeRV? zc<>~MZi&cL79lO|H>LFjjuy?(8C_(Ne$}zRoUB0-IW$PVf)*f;7C8_7bj-N8z||t+ zLiACaadDB>B12eSH z4-|C>Y%z@*yTmnw^z{AN`_%IyNncuSd3 zKqqsCj#P&GeHmD;dx!_x#Y0sg1ue8%oILC7aRaw!n-4{z=c8cHFJ;?`}W#N0#ehWcG!-0!;i9a|^L)Km5HKLv3 zj~(JofeyXn4nskozN^L-mKF9rEn1*OdZ+lu*rKvR=k6vdjuw;^mKAk~e<`w+SXFUZ zQR=k`fMlq#CA-C^OQXeQB|F5wcZx6X##Gsoe2#yOKt~J8LHhZNs!ZqN>DOw|3gR)Z?my2ss8sQ2@BTN)0i?78u;Pe_C zgS-!^JhUEA2q_b7&clAFZ-C2hps%Eq3K;b+dQTd776x8Xv z6H-o_kP6x@kp*r`WTD#ffM*`!197g zssC>wO*9+7_fj!_&%@6?+Q{iHN+46}zkptzj61vhB%vV-6wbw%l9Bk)utgSkt#D+? z0Vy2%7`)7$)vPWQ&M|%Z?v$k+vNt0cfZPt*m$eS0vMNu@2C#UC93=4PN&EuRpGk|u zVOoyBUj8GoOMVO;g6nW7&~fMwo2cXL>RpDUSuR5&iBG+98u8vNgFZ*8_W~f$6mIpsYZ$ z8%iCP)X@IvCMYh3ia>)IP_b`6<1`F0v^AV8v3fK0U=3Lj&FhdOp+C*7RGfNn7(ZZr z3)iFH&EzPlAVLFLIriJwAxE=ifFWRz`C?T_&rzr>m^nS=+$zXfP)wyL{D;99rV3F* zM?n^k7PDxkm`f+2v+Kn1daAVd0H4J5={Ly=8%@wAJ!$OIZ_<;-KK&*=X$B(4 z_}q1JoE#51J&Ke(3UX}{YI0I1QMs1zAR-QhdP+ljN(Ta)==_jUC%;bVT$tRDp4?s( z*h^83AqJbW$6m^ZBo#P9RBT|bC_|8{_A}oTGUuD|f4Anl)|u~(oz6EV6Rv?gS_0^& zeS#Dh=(%R=i1|Mj*73hN-ODlECtE4){?v1JGKF68v@ifPo?wZsjFHcSKTHhqI-0ECjmG>6a*CXqlH+MPZmwg4pe_5Z1O*@Jl4nZl+i%s_ za9OzDX^iTiofvLK%EHba!>v$RxC|IB4Yw?-2=U?53h?e3;N2D) zB3i+>YiTx)&tD?eQw-@^aVD*VvOPnb4IVxRf3oddx)jeY7w6H{u$p%Rpg#a;{)+e> z{R4m~D9#rpIE(xcoJL*&Tsc8p4Y;&f^SvDj$uaOGk?_s?mFTmRn!bB&^3*|)=78Q^d zhCg93fsWDeCjubUUn@dOE5ajPx^iQR?xqyoO)gz6H@YNJ7Ar@xx~bOpcqr0N`S26yUJwBS|?k1SJ_-zv%AXV0-t>dp+arLtIOFgv=xn0L9q<~ zk>n`RezO~?>^7c)DS#82VG1sm-%hEF@3<-hfjGyBli$@UqX2N%HT~a1-SF4wR?I(# zt*dhfWLfl}=OK0(;UBy>p<-0Kykw{Rp&gV35j#%U6HOs;13=4-)Dzx)B~}T>i(52X zmfMxNYzdtFJ;wr9YZgRIj3#InRN5+rNZOIN-Wv0Sq(s9VAbEwnGS%s;a&-E~y3?Nc z7s`5K(XthFML?~*E97W*zSH;@U00Qdp{O3&F0by8*8yL`)M2Q$P#IqlAnVgEf5MQ6 z?W7yS+9t1$=C#Y8w#%Q54WjrIE)K_4ZUr<7MMLfKj?L7MUmy)4^6n0~O;T#8%Ys{| zFTdt!n`}p+u+ALrkh>)9mUlzBJ_w&S%+VwHP!vHfd3C#dG>R~{d@LFUij$AKC7y(5 z&2eh^lpV$5*tEd~5XGuk*dd=$>54JOw&%D4{vwGx0gUegFun)zkZm+Z+)Kxb?KBr| z`6{skYODjuX*bl@{q$o*c5W39(mmo4aMGjnxOj|yE%qQv^d!9@o`Pa|8h@JY8Tw58 z5`V$$SusdFr}^bf9ic3D`9+kw`~vknPClo-y>iVt9RC@jIfvsvdGc2}{&Or8B}aMl zXfC}be~o7*;@G##=b>JMP-xf4-{4sYF|3IEEfgB!R`Ix@$I0g>vP~@((Fie#K>F z`D#jjU+bEcjSiGXpiEBejFmB;f7CHo`A0YA%BjqlD|o^Y_pUjfV>0dXjf}u9N-r(> z3@r9mG>UA@U1JyX4oo0112#jYGm) zX&fRs8i$BJkVPPkcKJ<*LbSt?Ip=`^Y{4rkp$=tA;xZanJfX%S0*h*0So2*M)~Fy$ zWV=GFcdfp<;oencp^HLdEFwtlDzb+LYqFfy3Z=Xv8ZNVTDMacu+NpBaeDb6DPH;FM z`ehKpOibK~4d<6xZfrQ;jt!@fPcsXK;pR+qp|}-;w6aG?;+kVgLhwn z5Bn;dsn@7pyiVtcH(=uajDXKyuz2$(#QH6IO#Br=o_8S9?;@!4cZl&nM1gou^um$# zgAk;xz%lh>aX()C3po5E91rp_K4JL;*yCT~0`a-nh(qPC7hmE#zpupoI6?k#1Z>_w z2cB&QC5%BOW=?RTXlgt155^@i^6kRRvOv zbD%2ZI7d~?5+6INq8=Z~YgK_(_f%!<+==n@p6bbn2QYm&6vPZTYa8i$)eAT$B(A5k zRBsi9=-*GLsDtp#67SKWst@wzr(8c>1FH|4uIihj3&f+9##dBmD~*0ZJAk~G210Gb zomC=JBZ`|$`MMLf5hvme>3}f3aPU63n;g~Q6)1leKnwsP8^Mg;2LNhgrrg=^iHwb! z26dgyR6(6_FO3rWuzt`jnjz|>6O>aQs(!ifjOw4E4|Cud#G&nQQ2YMy46k=(U>bf< z`!Gy8$B2M!I@fOy(J2t00k#f6YOqcni_{RET3D(M!Od`(X2u5#p~uvr`VFrct4fJK zp$jQIY!os<2zRO@>{Ydtft|>!^RgG^$==jc9)vJr9~v$D0$KN`g>oRBEC<5#ziI?2q407sVuip$RA?`ERA539C4*X6Y4?mjM#68ABda z;rQ1keCxY$!z&nSwquQSxNENabdGDS)Z84_3Yyz4Jg>`a0gT#W07Nz4T@F!82vwed zwFY&f?YOIxG=DB+J3lGU9nRE{c|7$<5>{3(4hP(EW=b4+x?3c zAqtVlSOVC)kg0F+HYdFxvxg1`ryK*eJr?odY8oLYgKekKaY)aUQ)#}OM$6=MN+NxR zJdVzmHFOoOSIe37Q-oz6!1W9=woy)KWZkK{ruYAg~#9GKoio*)jACyJqR zsThs)7`a?j$&95&u@# z;h939_IdRa*jWQk!_U?ANCgn_xIo>YZUl6HNGw-3A!X82I49|+NCk1a)o^t)@`dOt zF+kmdXJN$V|EhildJ)+8H`G=RSBOQKlhkcU z6~UJGQMco5v9{oMAXO+nq;hp9QbpnuIz-*2-?CGnm!P;mi1pzlAnpYgYTRCIO7&t> zsuy>sdT~#x7u!<3*p%wUHn$g`=l0^>R4=xrdU2oI3!n+77bxNOVq2;g_ojNWE!B(r zoMoX&r1JM+;hooa7%A`u7RC$wU!COqx6^o@dcrxePV@zITO4Bnj~vT7j`G8w33l}R z@fZ#SmZ-G6VyD^;1^*%rAK_h0YA18MXJeuKndTM_lJib9H&$D!c8O}{795IYbBkS@ z+U3^99~IlRspZ(RX5slz2MgIJYd3uk=RxJ~q;$zYe0d_f)lP(D)nf>2;__lNgx?R0f?XWduHJ)P zELHz>?*7G_S@8DtcJ&D^aJ|&O@$)%;zUpa|<@Ge7Zz77b>@8LJE8;s01ngWNehb!m zN&bS$dbgf<>Cajeck3 zyYI9J9*1{dQ(zyqz+lgpFx7)BC-^b|yZY#2EjAE_eLxAFzcz#P1paFQLlKA>|K5ih zJ1-N=Sq3Hdp?UwKV$?;kP-nHFLPyFCh$l;VQJBAn!YnX~n~Og1B1*4{cB80Vqd0&! zqiidg{DfJ}hGX^?V%}6>Z=XRCqqh-7IFbk0Bv~>ALjv0PF3O=@i7ShLpuFAao1rtX z1tCo-U<@z@qG6K1P;v@SK)tL_Okl-!V@PK4fx0-)Ialtg98>d`L@V%#P;|3;VuU03;W#_`*l(o1 zaUvOoyi(J4i)WMGW-1c`LjWiuQ zftJGS;-=eRdRb~fmuVet00&If5IR89sni(3!l~ySefk~^HZH_dbQ>S1M&P3#u3J7IPc7;5spS5VHzW`9}{eX@3NehPR5m) zHNRYkaO@?Z+ws7|{^EVl{N@{D5jY@CH9#^lNucNW0L!7b9;_Kaam06>@bP9E6h%}v z72q-Yx$zzBcN*rKE<66tyHxfOc06DS20M(;x9RpyVCL)c=uu`l$@nzP2OV09@3nH5agzI^tovslqtoVPi&zQKPWU+K;W~c}SJ2gN!-E&BxbW2Tp2nPEzTW2r$TPTQeNp%#Tb=joQ@jl>v66awbt*tKk>Zr?* zsIo*=el($_oyO7*<0M6x&35C|aRpI(H?h`fV~cp%J4dc!Mxmwr zs|VgYLqCGe_12W(<&ec^S4@?u@Ft8{ze1vWEh)E zzH(BFslZr+XAyi6@ee1}TddMsPAuvp;zlFh=Hol0QAQFnT>u0+Sfkehx}9Fo=(T`$ z(H@Oni?FZyPK{oR>Gue+GiEKN*XU-AS$klA<|v~H&&pC^W}OS@)yW0)>g0lpSjM^* z`=au-x!nh?RhV|@;MsXSK762nxE8R5#;KxSZ|MW}-Sg6-eU}y@rWDOKw~WZ}T#|(VNMQ%Z=}Y5to4Re@x1_ z+PKEJPN#li+-TgSQ$IC+Zrr9*w;OjE_vq9%quto4Qys?r#sfO_pz(@l9w zsi%!+jbG{1uZ`atztgD~j2DgH>(tA}tHvL7>UHDK#+y3zmho5P9i4jD_=oYHPQ7n@ zVEj|3J~TcyKGCU9jW3L^bZW1$FF>3Mh=2+NbSf_p3WRkk5-121=~Qu`N1#lndIF~& zq*HwYeFObRQ z;8>lS6qp*Au2VAtGXt{&h#KRYq@ef|8)oKGZ-xD$fq77_uj4u&*Uh*dkM+DujN-t8 rNzuTLfA#u7Fe1W3M>PiFbvzL_){9M%gz4>{Xf8z literal 36583 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 QK_?8(e;Y?fzM^jUACfwfDgXcg diff --git a/bin/main/de/oaa/xxx/feed/repository/FeedPostLikeRepository.class b/bin/main/de/oaa/xxx/feed/repository/FeedPostLikeRepository.class index 1c15590f5a3a337192ade3f9646576bb15b6c417..9379a8c89c63817401db867015e5b0b8f3f39976 100644 GIT binary patch literal 1620 zcmbVM-A)rh6h2camH!GNBB&#J0f}LPiC$17DbQ+3X|c2z!;M3CS_hWhx;u;T0zQ-% zK7bEpJTq;#+od#-i|usIoS$#LZ_fGi_t$R#$ik}>BnWI+g1MZttE(&45W-@fXt};r zu6NDyxIc7#Rg~wV5}H#mLLhy{FFCWh(`4n-Gf`J57$xx5^_t9YdD3Y%Jbod5xZXLl zxZ>=r#iN<`TfCQ$z8NfoD#X(9ak2^lE zYahl#cUJA04S6#LrQfZO=~kjRi_%w_DDTEVpb&T3ifCiR+rAODb<*~UJS4*=8;F0< zOZpTD?;80}UUEA?wZ9(ain-k?wb$E%yr#S5TB*8fuhD#^d_bdbx-B2I>F1BRN-hkc zg%aItNBi_crCd9tJ72<6WTT(>P~biVHg3N`q{F^z^vqRiW=ng>Y`bOXd%D?ep7A3$@aiHjZPaur zDq3%Dtn1l8;OEUJbUXLM=FtDNe4MiF430kn_wY;NbWP%jOu>Cfz!>flFb-3=jwN6M zmr2kQbQ)&RS(}qYo6(ep2k1MCrcpea!?o}DA{09<@+x7qe delta 48 zcmcb@bCiwi)W2Q(7#J8F8N@eoNia=b##cQIu<80GAL>IWF?j*>X(*e=IHxm7MECSq6;uGB%>>`K~fVM>gi%_hoNmU7o!n7 zdjZ(?&7q8LjEu~a=P;=_a{`^n#K6zM1Eg6Q83Y&@SQr@u8H9j>!ayN521W)EAPtq~ O2CEhYlVS`Iz2X2HkUB*G delta 71 zcmdnT{(_b3)W2Q(7#J8F8ALX6`7v%5W^!g^WSSh#tfIjW6lP;!WDo$-JV4CK$iNMx Pm>2}Xq!0rqm=*>A4nYYl diff --git a/bin/main/de/oaa/xxx/feed/repository/FeedPostVoteRepository.class b/bin/main/de/oaa/xxx/feed/repository/FeedPostVoteRepository.class index a77638569230b4abe2df6cd343b5ed0968f920f5..f4d97eba68c3b57c3d8b678d424faf294af03467 100644 GIT binary patch delta 706 zcmcb@F_E9^)W2Q(7#J8F8MHQXy=1BvOwKROD=BuW^e-sM%+K>oDQ09)((uVjEKAfc zEy>K$_sJ|SvDQQvU}W$_S7d{vCN$L3#o7)-n@u!CO-^E7y1su>R%$YP2~Zg$gZ^Yg zX3hG*($u0#Adj^yF{d<@ks%}4)yLI2M4?PCAL=+A1!w0~DMhkyHS^98{X8RFavS z8kSj{nUs?nkXV$Mn_7}u54>BNN+ETDj#JfBfk3ml@1426UP5TtyvG^0s;2rMLs@HWtK zKr6wXhA@j29Q|B?zAY_IEdol|Dp)~Sj125h1(QEA9b{ymyqUSbo`sP?l0k}rg@F^8 zNSGL;8N`4zHv=Ps3=qo}GsrQ>0|j^(fjk9>h#~_oP=u9{L6Lz0s9T9a8LnFeUAHP& iw>T3*w;F=U12jmEfq|2WK@DUD5Hm5TgGmjjYcv7r_r3-I delta 48 zcmbQpe}#kV)W2Q(7#J8F8Dutcy=0oalyyHN>*Q3nejx@X21%d<6N3~3CzzH70Bq?B A$N&HU diff --git a/bin/main/de/oaa/xxx/feedback/FeedbackController.class b/bin/main/de/oaa/xxx/feedback/FeedbackController.class index 2845318c3705782544beb0bdb9535499ca0c693e..3deeb6adf6f8eba8edc4b209fddfa4acfeeeee0f 100644 GIT binary patch delta 2422 zcmZuzYjjjs75=`=hhPm7M_Z>Dr$Xz7A%D_Awf%vE!ry8R`FHE)<>&StraV^R&?JXkaVqPt(>#Z zKKp#%ew}mYX!!64{Lfw;dmO-0-m4*ps8Y|H(;lr28@HzMX%h$V8A7*Wsl?t6D@9DH zp53x5vO7{gle`j96Vs+L41yIrmUnGO|M>~UN(Z;*Cni;zV1lMYVhI<_@ah` zMDDvzoA?sGECdN_Aimpb-f5qmguinr)}88$$Lc4LX5a3`SMW6rUsX|KrsL~4q&{Ud z=nj0t#5eJPzi4FoI%xIBnwF_>Ma5t5kNQoZV}SU!U9ns^FN zN<>L3)nWCeEZh8?iSJ!ku1XBWdTix0CZ4sGnpk#P>6C#V;yDfHRhwDLAE}sGF4)hT zcmY3A2h5w@7w~fpKND|eIevj(s<+IAvj3uqU*k7wVeT!S-{NHrFO3&)|0718iQn1L zIg^pymX1HDhjXvEU%{U=ys8fSY8-#YU(^NP0_ST)Q0?~zhYegpv5wbe-5-yoBK@f) z>2!K-a_}xIVb%3WB$x1piGSEm=ZVuR1|ogYr9BBNnUp=^pC;afRM251y901SqP&E+ zO#J(L=$(>|sE+>-G<5t|Tx;w~G#O~b|4d5nQ9YE`;dRkr!lIM7L(SLn)xANln&%IV z&zfrX2Yr|Dj6sbajXF`Xe|w3`L>&$FaesLpO_RA;BY^RKjd>?d`}c6=3<5eUgtU|#Mg}XST@rg6q*b|?4I0Bl{zPBhFfiH3TLr1tN^Oiphb*F?TD2Sb z8(nfADA9p6JBXmUwq0x-pXIi*!Y;&b@+`0{;pZ{%i;o79YgIozVw791?wpz{v7 zHbY4(5ta&Umt^$~hH3Clc4>?#Z*Z2Qn>}h_@TK7$;{W)Sjz(g=^=)0dtnQTL#?PJ7 zHS9CFi0{vH^Dd%j^4-6YrmSthANy?cxXI;QA?7hZSLjU2joq5woG$OkcImcqac78V zZ|rK?7>|V;>s9O2e&=4IQhhX7sCEQ>ZjB!%O2?Pl6p5oH9`7F-l%~j*P5BCY=~lZ7 zU-2w}1~0(#$|`z#xaKjGjpBaEyK4-e1xE4t9Bg7(uRVvEvRPR>3Q5H%9?HQO4g(n+ zVFt&az{#+F8Y5dqFdFuRJRv=Uv5;p@2JIOb!^`j@R^lR7$|&%g4%=3K$gE_pzN*StxJSeQd_v2*4%v zUCbher1BT#DJ&L;b#eYIr|~9u#HCJ_vJ3{x1-u&G8ogYfvPMJWRV>!jwi3O%Rl~`5 zutUSh6&dLx=89>qgMMKS$bW$>bMU76L`hL(`ms6roSDx`NqatL<#Tpc5anDEj)~>9 z1RJ*BNI*vtH6l&Tt}CxciAvT>9AvrdIY2$j=_2cuds^x6+ZoP#5V?Z-K9L@P%X!3c zBx`9G&uwQ1dnVzQ+`uiFgzH33;k96FV8CzKH&+f9$?+~pqC@7A(%MnpLir-zlfkf6 zz^3~T4nuPuf-_6$%=XJQ%4JzfGfQ8>C0r`sfDa1Bgl3s&%0=TsPG|{*Q11RXVZF?@ z->#YrSK5innS|Ut3E9Qr7Pi`!Tx*-L4fAD|pDkP`)o7Qjt=}roJUiGa`Z~CIyXdxN z$8EIWU@vzunw17P$h)&UiR_r-ZaFhUf?p(O_MnJqeu(=J;$ozEkK2P5tn~3CZV&C| Jbc)N1{tq>t9=!kn delta 1832 zcmYLJX;@Tc6n@Wa_s*R=1Iz$31F|TK$e_3+>Od$Z;DWdSE@|2z*EB(qLFETMQ_s_n ze&+L8=90E6g@#L`K$%%CscCy@qPA#dlx=1UY3E)a>c>6bIp;gydCz)xjNchlPTcG| z2%v-(>{b>i_Q$b7!V`qlb!SqoDxSnfQRFC;P1vkr3!V}YN1kmPo{{jh*zNF|pT%?H zq@y@z8(vWHB3cQyl})AfVNJpgg6o0Mno$1g=4JKyH8qnbN_a_(PzO8PkffjuJ5}t$ zD?(E<eAu?Ks_IyJMr4X>(*VlP1sYt2>KvSv*;KcJ$sUs>L?dPSYC>{jubu9Voa zT5D-ma1e(iyg~4aRHv6SScNx*&za5;Z>e}2N5ll@NZT>IBjGp)lO|3(ZE-42;3UCb zQ(0bGQCd}6DIRvG^NpQfy{qCh&WMZ7v9|Z|p@a`aiYws!NKe%g4z1B-d?IRGH|(F` zoP@K4EFn=A<9?3wA`&wya)FRgr{%8(PU&D!%V8 zQZ*N@K3T>O1X5&N91mE#WUh^16k|oZB$;iGsNF7~E8G3sVTDmCGffy;|H_DvKvTrbGtKmdQu3 zW``OY3uQ`TO_59kIE?K2W>%!KqFAPMU2%VNAxmM7jWSfqq%1MW6G#}$Iwy}oeW;UCrjsJ?>4+#!{ z_KS&0Mrou`+xOsT6sH&?!*B1zdnU~B%SYj2MP#sF zc7Ghjr`_mbfQv!JuedKo@ugqMWd!zjxeMRwv3z%1!TPt!3}ml(62=C$DHl329*Q&rxQ~N9eOpXjoNu8%rb`Xk7gGFB5S~?NGXn^45v`e zn=%Pk`Rv71Tt@}^FpaFJBp0TW7c(dwGbsnNXgI2<2(zgKbEq71X)>P`SVT3rj}{~SWGRbqlci;qr4p(Sl+_=ZCFZeSVp_hfLxAZNd$`C7X*;UB6DOSGjEm7Ss31A za5j>7vs$T;TW*I1kI*Rop}1kiddlD-a&Ui-^Jb~!gv`MoCKtuP&LLG(EX6?~H#^UP zBUetBoeJ|n04a~TEc^3rYSUyDh+wML1$7GTPAUV3fQt5KB}QPG!K3rz%shW N=CIRzHn1>!!M_&jj1&L> diff --git a/bin/main/de/oaa/xxx/games/bdsm/BdsmGameDurchfuehren.class b/bin/main/de/oaa/xxx/games/bdsm/BdsmGameDurchfuehren.class index f18c40b1ced6c463d9a07f540ec39e46813727e0..b0434167af02bb59bae4e0bd5f47672b7d657a5f 100644 GIT binary patch literal 16584 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 JIN>pK0>{<V)2N{bZXk;g_)}*8Cabp+pq{^ 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 diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$AbschliessenRequest.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$AbschliessenRequest.class index 42d3aff344799aa1cb6cde13318079417ddfadbb..6d9509b4b0c92d1e4ae0492e82b9dbb3ceb17173 100644 GIT binary patch delta 14 VcmaFP{hWKlMi$1l&6`+E838Y@1#kcW delta 14 VcmaFP{hWKlMi$2G&6`+E838X01yuk5 diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$AbschliessenResponse.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$AbschliessenResponse.class index faefe3fb880fc1c20648b21388d871dead04cd24..902f08b1f72e91462bd8a0d02e4fc518d4d2067d 100644 GIT binary patch delta 14 VcmdnRzl(oE4jW^~=3F*kMgS;H1hN1C delta 14 VcmdnRzl(oE4jW_c=3F*kMgS+P1eX8+ diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ActiveTaskRequest.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ActiveTaskRequest.class index 36144b3443965eea0359a9ddc561b7b5f1421a95..02a5d3e7eb529e376b263ab269cfb5e62eee2d77 100644 GIT binary patch delta 20 ccmX@jdzyDcAS>gp$w90}jJr0svbr$>08Xd|%>V!Z delta 20 ccmX@jdzyDcAS>gX$w90}jB_@(vbr$>08ESqkpKVy diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ActiveTaskResponse.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ActiveTaskResponse.class index e560bb200baf701247db2bf1c9eeda2c6adcbc44..72aeccd5acbc2936218ad14ec45d8fb45fc7f271 100644 GIT binary patch delta 20 ccmdnWyOno?H7n!p$u_J;jJr4Iv$`(^b diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$SperreFreigabe.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$SperreFreigabe.class index 6a1e0458291d708c5806761b45da05423bdb581e..360f020452d9e43f8a3011676e82a8049e790258 100644 GIT binary patch delta 26 ecmbQiH-m3O6f0x<mTX9NIo$Ou9J delta 26 ecmbQiH-m3O6f0xSmTX9NIk{0H#> diff --git a/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ZuChastityRequest.class b/bin/main/de/oaa/xxx/games/bdsm/controller/BdsmGameController$ZuChastityRequest.class index 5dd16d4f36eb834771bc941a53bc1628e82cb7e1..ceb0552bc4bef610862b261e63826d27622d929d 100644 GIT binary patch delta 29 fcmbQsH~K8qNp+awP{z delta 29 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 literal 38852 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 literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardEnum.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardEnum.class index bbc46c2bf8e3540d8402d68299aa59e4025e8cb7..8d5cedfe86e86f387f512317479c525455d6bb5a 100644 GIT binary patch delta 1233 zcmZ{j%X1V}6o z{cs2ml zhc1^|f>sn=1|2u3|FA>1%W8tw72O8CXff8>-%%c@jyvpesVDf1VvoURA7JT<=dzLD zmldADucUaWDn03O*-Y@3qKCZc&T9&vhgv^pO4eZOkIXki@AAIQdlufMts7gF%Uf43 zRvI_2UEjH)xW@I?_t~%VA1OZIW@{<;yVcbi%P%+Q`b{w)Dp_Nd@Zb%Y;PT6J(&vZS zEBSiCS|KYo_%otU`~8_V10h2Z!`gp5+vbUo0}&(Ie=67J>5yVXS^H!8HkFX^hzadK zYqyyUnTnX!{&P*I&5@9qh*|B=dEz)9vJg?z{tKRXE`=;dtZM&+C!T8|CnM_GKjjtL zG(t{CY-s-_&uyba&P8l$|5dNE&H0cEp863>X99*AIva4Hp>qMnhRz3!H?$ov)zC+s zfSHE&#I_(J#$^#Po)jqroEC8d&WUseT#%I8-^u59@VdOG=xS}+qskK~#*2?R`{45!`55Un!u~miJutoPOqbN){m8s)y^fnIZb&efE6*$T zO6AFt?Y?;WY;l$07H)eR**D5PhC8_LO)B3d!z-xMYi6U^gp!!03)jG+efQF62N`OC ztq3`8)yX0112jcw;Z|EF#Qp&75%SzRlnv1lpff^&TU|P}cP%c17EMjqA#YHGIx=g=b1())6$wWrN6)cDlu7alt9HfMbUF&?z z@maaJ&BxZnh34d@O^$?#%+AcO-v>VdyudR9F@{P*Sdw#VXJ^M+=S|^R z^$qU%w!drDxoSAFzGW@Yrb?Ry>H11Kj!@$(Eg>3o{%ot}viQ;#o^K$|(7VaEx#e(o z-C7oPsTvINrfdj?eD&yR#aFhwUS>$NUEg*X1`5S)*YO2{ronK*L;^{MT-A2PQoC6b zYL(ZVz^truXN@acp97%=tyPt$3FRz_>0^c|URw28qCm5^|8 zF_3^%jINOE>5x7eC5J4NWLC2nr33T<|A6S~kf)DEz#yHqYf;c8;A`N@U+0d2MsPU< z6^JQDnyJ#%0j`{d0(I0F>1ryAR-LU}=?AWtruLC3P46SScPiyAx=F_i$@0X&FpD`1;~^g7Db1U5fSJX7fYH|U`vkA_2MfWP$p8QV literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockController.class index 36fec47aed1baf132672d41abd31914c28f9d62a..b0fbcc29a4efd8771fdb221dd8251056f0cfd12f 100644 GIT binary patch literal 77145 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 literal 74238 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 DKBE-P diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockEntity.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockEntity.class index c05654d8733ae8813a6383cfc78e166357d65778..ee5d5b45b4cc5e6cb3622b7404a3cb086427bd5b 100644 GIT binary patch literal 4401 zcmb7GYggMw5FME}2r%#PN}E1`G*M}qmI4hmhNN!HBiNxSeF}MF6lBRq4+8(GAKG)8 z({u8nKcGLVr*|ZQEz8*Ai=>_1y)%2~&aD3Z@9jTCl%ZEWl#*zWJDViDcc>U0pR8%#kRa zf2E$Ois$NvlGhz~O`^VnUN%+NvxP((4b$uS77pv<+%~<++9RM%A9x72A`W#&KQ=_h zG%Z(kb<2eFd7z)FwyP>tVLR|HOid_R%RCddABh%x3R|Mpn|S7vgfPNJ5Odc!GQ5h3 z>9l6?*OqwclVh0@br!c@6eSw2>fjsUTStZJH9@eI`! z``CfANknna@1o0dyq*y-IDX-1$3|BKG@9d(eXH+R{dr2OPtC zU9p}c-v)%{RD~#c)o|Fo&fGqdsAFOA5d3DXlIW)ndS9k@=v^?K*G;kORgQ&SSEZkf~{-X}NyS=ghMv z!XM2WR^`|_Rh|e_*vNHht&b$SFH;wFG8JDWJ=SBL?gPBX_O(@ zKH@cB$TUi05{>IlAtp**@RdyC{sQ>U#}ztz>Ai_YdHdHgP0*x7gV?@%C0L&MMy4sA zkuk%f_tnc2S($G6VPhf_kuuLdmT8)~;GD58Yr0;&4CUs^X5jB+nqlA}02gY4<*6N+ z<~daMS*TMl&+W@}+n;k9H8i%+C?OX3W~23{8e)*iXbD_YFUugkBis|Kw6EH@D_k^B zZZ=IsGZ{t^(F`N=>X=wM7mj#t0&{VZKs&HEk;Yu;qlq#YZ4kR^ir~Ibrvr!rT8Bb2;}C{`SC{I*L4AVJWeb*PYvQraoo9?2YOQnJ=PUBMOC-3A(KR^2 z_+_@GJDROmbX=&GeW)59xAd+v{*b6Qn>pCZ?`5CT9Vn~=zXJo5;ue5s4@N2Kr9QmJ z@zswN0~*ORh>szMhG9e1W56rA@gDSdpvq%56n4ypYK_@Yr!gB!G-g9#CX5i3cC~W0 z@ho%oXF=h`{Gi|(Y*QHHy1?@ePOIQ8;oY_LH@)|#fBX;dWHOkv5Al?P1@sYpj1jU# ziy%56cZu$Xt3Saz3iub@`vb-l)d15?0Tucbt6BjqCj)vwpSJ;e_2- z*4jk0p6qCk+5&AP1In}|dovl(R$>`!Cj)#^2l#DEIpmT7K5ffcJ{iz%TcEvUK+oua zI>XW_#EzJUR8m|{OLyPUJub$My4o4>YiBZ85f&pCD)%~xidY>KDqDJCc@9e#8YNns zM2GY}z#2Fld<}eA%~Ex{+GRC3VbqY1Huy&DLsV#&>+&K41Byga%h~Na(x| lueFEYO9~&{?jihbz^AB$9HdD2KMMSV^Ah7Sj(Fmb{y+Z}1@`~| literal 3906 zcmb7FSyvoY5Uw6}Y{IZ6EK%diqG=-4nn^!hiBX&oRey zeDDYOqdb1q-7wSB!%XwieQ({Wuj*EPRrlZj{{DxE3iMMC)s|rhc zntm)i-|#OqUARZ4qn~I+EXr7{+br*)PKC4fE&RZh3O#8!UM{zASRd!Q9au{%K%3YN5UwTn4bM0e#HIB@{vT>Z( z9bT=;pTp!hwnCki^_LZe22Ty-8{u4R8g}3#BO_5pOkr2GlI_cC=wMLjdSC^n@Z}CH za5v>Zp<(aX`E^%X0^BG9YSwyIrdsa0Sf7Hy$LvTLf1S?*ru^sOk= zF*Cc56c(K$*-ssGPo=x`I+9s7Y`GO!htjQZ*ho-#*?r*}ypM&Q{;`1swu(Wor&^8O z$kt$0`lSTJhi7IR5&^YBO4uqp33pe_o{E`Wvd@}ud$?>m)}eEvZAe?XDCf~qA1U;K zN?p{AniIE4N^CvbK7%;5Pj!jrAm-}m{gx^9|BuOfPz-KSrb zHN(?g!!q!)IqtqN1D>s2XS`6Tw^-O+D{mK{(>>6q1MhMl<+xGt?ZGZby^s*vCrACz zcugmj2C%s0(I8~#O>9`B8~=gO0=<}$q5V=a^i)cQZc53}NGTcGCu4-@hbzsg#=A_{ z?!xh5SmXN!ZlU3?;NLa(7rpsMc&)eaW8FQ@{`DKD1f^Y1x1t(8q0n7JkbV(Wh;J9%ci2M4z{bXffN>mfHe7 z&Ia_PZL*(c16s{YgJL$o^*X?3E$Oh44X{LCQfExm=PAH43X@~<&dtA~d8U3x9aD!w zrjAD%G4;7Ecw#72hIZ5zEa`=06Ot~B8w?7CwrCq*jf7sTcc?Y?+I0@2!4t#hL--wf z(Gq^@6)j|ik7ig5KODmEwugV16+Rk=G5lxdC}8pDr;@L#ouf1DLQ z8qzWR?GS#yeQBR&g^%Wa41Xtt|2jKmi|i%~W%&t7Qg))AvJ;`>mvxT6Nl`b^D;rrI l^NW;pJV{fvUYUgB939{mIr=tyu=t_<4*Tz+^n*t~{tpTa%~=2d diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockService.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardLockService.class index 2b5e9499ccaaf05171923113fbc3d02f77e57389..98ac737ba5b21fb161ee1e5b36e677bc37d8e5c5 100644 GIT binary patch delta 5519 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 delta 4394 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 xxbUg1t~6D#%l0YjOiA}cH{2G!cXc< zr&DLlbjA<;0sT>(KKE`yHcOzfpviWQ2Y=Z3ylsR)0n#aa>1>mmqK=+`jz z%z9y&70WG~E5i2tl7@blqBUfe+FPrk@3`fHhNDtX(W|>*u|1Iu6ORv@0S?kEV`j63%_tHp~l*wnwn#8-+dwcU23g|6g|-e$#a%%*Q<4T z??*%g8ng}GB-rwPSrJvsad`{*K-_q5Yq#vU;$cll=0e@KLdSC>@!ZaKY`0W9q2S&? zXa!RCSnPUBP7u=Yxddx|>0p;BDdrkwsXHI{=@!Qq!MgCBr;e@c(U6wMmc0`1Z1f~d zo~0$nbNSd4?K!Z&$n7EU{yGLQC_Ttmcu=oy3V+SotSHBOwpCfTd`GUE%<-1En5*ZK zyj~qF^?#rvg|wVa=@>y;!(>aGipEwr$P*WJ=s2q3NG`u2*M^Q`7?rb2I>w^eWgX)< zDtT9QWaQ~gOP(^h>7X0?m_55l%Kli#1dhwubsZ-#N((5k7auFPNZ_YBPU0QuSTFKQ zh8aGu;|6YOuycn9`yV-8=o$oRR*fwg2 zWVOR_;}B=JtAmQ1{JN%{`A=JWO~B48y&39l+`Q+Ud!rW`#t|&(xQ}HO*Xyj%%Oc$J zN{=j`EiDv2LvVQ2tNXUN=g3lb=HPC5S$024xZ`Vn=J_%UdBD>xG%hIVMeF#TW+Z$f~h6X+pf1_PCa!;P%2InxVBpp z3nH+6rxtpCGfdTiV#NxAIHM`!aV#dgXzwT%&FmZ<#7Y`$qQA?(fa9VM|RSIXg7a4bUAM{)j zdLafKITU(637w8Xb!A}E(CH-PVhnN&Ihvb<#!LgJj7triGiDn&Z)E!$m^LN{8ps=ygAL3W*;E6wMmF7mX=H~Q zxN1xeH*n3!jx;d$QeCN?FKv4taA$UedBz7JjgX|$W27mE>Pu#hQ`; diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardlockTemplateController.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardlockTemplateController.class index 10416fab4f17f69f6c8a6aaf3dd47b7c7d5d4550..abfaa875c424771ae3c9a57b8ededa5bd9388430 100644 GIT binary patch literal 13790 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 QJIY-JjtY!-g1vkG11{hZBLDyZ delta 3458 zcmaJ@33!y%6+L%m^8YiFmrV8zl0bkglZ3E?L6#VHN!Yglg=rWDlD43 z+_lP8*5a>kD4SgG^AC?jGkiL{g!p?S0+nd8qJ@y+m2G;mRjs*NV2wPeXJ23(-OA|t{2#Vjq-wCA)BpdX#2@B+c>g4hJ8Br61vIj_LSDEdW=9T9+yY#leGPK zQpXeW6MJsf0rVx<_@uLZZtuh;u{emQbsXxvUF*wso^}||$okm9)@FP~;90cE)3L?c zR|THO*W^dBE3~8dhK^%$f#`020WZpRqSE#)ysYCTwYf7cOY;dF#|inND6t;JNr6*% zRd$OTrL`lZqeCu^D>0wOYbW={T{GFj_>qnu5~@1U&8iTXglao}j0-y6AtXlNYH)e# z$|idJ?mD+u;36(D-t`{;Y*#~zn_w<1nrKHm-WB*MekRirC)zIKmpXny7$~P@r^vH$ z$#QC<;LH6Azn0G?4$BYYiopFC9gBXrD)3v(B#$R-NMCd1Ls2?x;F+PzmCKX%TaZTVl{wl8|jVt^+FFCh#tk>J* zwc?+IxQ6=1dVi_c?W$eoX6!HH-va-^f92$4mc~tiTevOHCHK)tkcrIldUBifAjJsM zNSB9F29Zs^lj0}G$uX(DO&rM-ltta-%JgAcHm>TFBVS5Sx3*IcK|Lu?zMVeF)|+9V zK7=7r7{+HLTC=G@P$3n`#Th-j6$>g+s!;l!vfAVJ+9{s;3M!+1Cl6;FAl~RcLFF`D z4$mqmY^M=|Mp7QD$kSBW#Ef|Sc7$oPzz~$PJm~>Jl{7|voSmaN`Ofv+gVy1G>5;U9UaBA_K zirU(i#+C+`-#xXyR^^+eu%>9XI>kJJ1;+UKf)=RpsXTthvZmG3-Hon#Prav3ZOC~W zrY{M&l+c{CSdfdiOvvq-7N%N(rH0!rXemu2MyqIzPOAxpoD5m=T5f`4 zEpY|VrdL#tnNme?%Ig`-cMpeM9bvto4YW~K_82KIJcj#nIKu>wGFfWE4C-jjyh3V2!+98`QK^}*AR9L1ARf6$ zMh|52M4NM|?NgZf15U0r&gTQ?U@s1$;V85YtPG*dj5#Gqes-h3yzVb{Rj@m;;q;mwRN5JT!VeApe>$q40f+k{=%%~oUY9<~nt zwz1d3cBu0dQj4bt@n{gTiaW_AAv|S52uD~Qr|}%P`E?UI@XZijG2twlt4li&RQQ`C z_@^O;+hZ7@v3$L8=+AZl#>4DdAhW8XG#v6E(cO1ZD&*IxW^A4nj=R54_JpAjt z7~#A49uGAR|NZFU&vEQ6{@P4DZEzd!8 z;3pycoN%0d@127~nGk+MT%7O56a=Lq{LTb!rE}{KCb))L(k$G~EDhpMTlYVWyhJ+K zflrhEW;ugx^UO*Am=VIi%zU-W#s;s!IjlX) zBN+=u!Vt3(!YQ&-EW@RoiVhPme=I_WnWxt9!w|a~cn9f-Ms9G&8=N!A+} zV~KEMGm)KFiSR=Slz4|9N{a9k529rLrpyQVC^f=UAjQm{H0AYC`aPU2X2um~ZH!4O zL!{(at}sq64pD{);N~*6l>a!@alKi_+$_f;F5}D4fOTlZ z7Bn#=D{&yef6){v6O5}yD@+@M@n(dRwg@{W9@7?K$IOfGkFaCmEp||UQVBAM7gaS$ zi>8ec8^|$LiBh56hD50w`Z?<2ImPZW zXVi=jSUf7%YZPaUqvEW(3uP8XNmt4O$CW3aIb*&`zerc-++kc^=zfD_UfuvZDt$4sD%j$^AdOZ1iTsKwa}>Ja4LqpA=Yv$O z!qbB^Q`xyes!?`fkQOQX24O%p6JWRSBXNnsq^7uU#Bb; zHdCQ3VnyBN-T0|7p1QDl>eQ3BHWKOb+}(*Z&*Mnoo|mvQM5{UhR_|0qmocP-YNCfD zYE0tRCXQ^5D)JH9!f}3pX*bNYhaRQJXfJ#6n7uH2_aTE?NzxOXGMCX#Pii*m&Gvxc M##21d!nqdy4BQFNHUIzs diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/CardlockTemplateEntity.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/CardlockTemplateEntity.class index 3688e277dab0f31901daaa2a6c19501486d19fba..0437bf6b910ba441397c1fd1d9d76f2b3f0a3f73 100644 GIT binary patch literal 3369 zcma)7TT|Os5MG%(6^SumN=bT4F9zDEZCVmAAt8nkHzuJN+zxLC`NW)JNvHH|&dDrz)QRSjGCfh#py?cUvpmQ7(djH>S{yHV`0lx<%& zq+8qs$ie|4C`;Cqr%sx3%eEa~_{y<8jqc*inQ(n!w501P&zH6-jgn)ZOV?)tX7njt zjn*qSWZGG%FeM}q!+?fHcdiN43@jVlS<~UKZTUvoin(bte7N(|VRw?rQ=_56QVl7ToVuK(A$nh@ z_h^wjtZexzuui0VD9{TKf-pq0CS1kq*f{K;D)1_%EjUZGTU=byhV(hX4uMSI%Rn?2kzXp zu0GGTnTDEgE1ZvgrPDO!&=Tcs^>!VdIA))3b(*1BG+TMqga+8*p-yw`kXPP8A3dS%vT}GVE;Isk6u$O;(-2HRW@~cWtr%6u-|?_qquc4SHNBj+&g5+sZRt zWho44$E}HGAmKW4&L0|$m$nYJE3Zp0=_7P|2)~?h%CP$J9K$Mu^#tCt_?m>rJ0|Hg zg^ybv-G&WUA*CnOk7JBAiuY8A4Yen15O~4{MJH^~ZNdhr_SmMe##qDi4k8+OYj}?= z|3!EI2q}DkClexE&kym`BL|e@W2`i~N1vc9Q7Jy9&tPNk&++aC{F4g5! zdE8cwcGCx5NgJ4_KzHD5XW(oY_yv`bMXyfRJ2N$U@8orvM#Ch|YdVDgo?hMvzxb9O zq=k>>QVc&6!dC{vucn2MMqCU(7sBrihF?nyA5F^`J|DurqSrST2P%7<7CsuhG5mZ8 mzdyLOPt(FjGdzZ00DOjifPOP{5dJ*)r&GoH5Q01MsP;d_Qd=wl literal 2803 zcma)8+j1L45bcrVD{>;swnA{iJs>+F8wfbDWekq&1cMAI+ohuXHeOBS!P;4|7bE`@ z4^TylDjxU%K8oV>?z)h)vb-<5vpqehyHB5K>7Rf9`kRQh>DwvF30iL{%azjV^?FuY zI?A`~Q|SjfxUg*LwK}eSX4R9$k#f2n8K_;u`%_d9^kmF&*Ku59J(Ip_0A=v7pgD%G zyP*mEeQgBYZ2Tn8r4U}yVhsfGl6O= zueJq{+XslC9o5vnKIy1!W86Rn+BLqQyEt@r_N%lZeSKDX1Nbdri zg#n0J7*RL;q-}>z$jy3*6R1@j3o84k?k@+*kqBej+*NEWdg|v;d&+MrPruT3M2?`z zP0nRYP`Fh6Y-aJGGFnXj(Ih4<;@>98%kN|qCq?3wcsIw?0gu5;p^Sud1P9yo2)W=POS zMVg?=RC=<8L6b71=4}&Mb6-?#BnlB^86oZu{p8*0n7<;FfD^!npZwY&8#suAheH2lGW)I!av(y6TR{qY@hCeABaLNBg#?9gQ*PdQI606_BhRJNOdxE(*>kCB9D|B;Ft5 zJqY**-TMv39Q_YCHxlsU%z)KwfU9&LVaH|mAREv_@G~Ch(XW|G{Onqw$Jv0sxE5$F z8_-i)r$W-jjTBc6l%3&2fzH9 z9%Y4(Z+8N}5WzpY9{zDw_;^qx@JkVV{d)Mdtnl&7N#HAh&(RJPkfYsbi1F}yj_(&} J**8Az{RcdZ5d8oE diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/GameCard.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/GameCard.class new file mode 100644 index 0000000000000000000000000000000000000000..18c7bb18cb577859c6e3230cefe854a1edc46e1c GIT binary patch literal 996 zcma)5T~8B16g{_JYs+G>BKWQNMGMhMjBiU!YC&F#5KBmWGSls(9cXvW?3UDjr942Q z2|s`zMYyx2k;IpI*qOO^?>Td3?wO0rKj#3NsC&o})_Y3CQi{oBBKmTq5)lq$lIrxQ z2&L%_x~0Kp%wR3 z1$oT*@NkPzZR<#V8IQWk?91*@5o+x?l*0pQw2iNmg>;}3!rQjP#xwl^VeW^CLzN^` zE#0~c+}5&$qmDAiI#fZ!6|}j(8+f=&SaT3*cVR#o_pt0?$*nUMv=xmo!eYJA{^yZSYIM|R{u)+nhhGpr zIp4ZHTJS$v<{Rrw!Uxx0+>pyQSlChNAnxr+!;({F*h!U6JT{^FtgYqdXO?+qPl6S& zUHL2W!^!c?M&+^0k>HtlF0P%S@;m$O^H|D~dCc?LpBCUYsvPm&xWgnC+(Lm@K=m(b s-%hZ&eu{@@c>ar1Ifl(>yo_dPT6#^xAiTsYrhCnGMdHA6zsaDhR~AnVXaE2J literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/SlowmoCard.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/SlowmoCard.class new file mode 100644 index 0000000000000000000000000000000000000000..ac057368e60b9f14fda6bd24e36d6ed6f0624185 GIT binary patch literal 1006 zcma)5+iuf95IvKd+tiQ}+H${?OPjQUl@M=1NF{|Qm!P^T;t6e>RkE#PqqS4gzXBep z1QH*>M6g|K`iPo#)tG8Dc3k&1E;HNvI?k)4p9d@XNM{5QI24{w&><{+GHIl; zY}QS`+0&BGdD+Y$6SnT&m0#|@q? z40`YPdLO$x`@4L-u6mcsI$%17zooir@{Tp89=JxnJiQg5^sUSlqt zr*;;sgJsKKm7h?FEen>{MfL<+Vq4uhL;Y*<+vl}b1k1R@dw-UI%V@C2)p3PMEVzpb y?|{ZnG(UX9%Jz5MJj4Aj94ayFAB|Vgtj$u-X&8iuc*Jy%Ij>6WSniDiy7?DjD-u-z literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/cardlock/SpeedupCard.class b/bin/main/de/oaa/xxx/games/chastity/cardlock/SpeedupCard.class new file mode 100644 index 0000000000000000000000000000000000000000..02eb83820a2dd80502f9d8a98a7c80c927ecd8ee GIT binary patch literal 1011 zcma)5+iuf95IvKdX=+FsO1WQJC{0??MToZ`q>_ZEK%=@;;;Gu$t7O~6j%=q2e+4{H ziAwzdJ_<4G6cLG+eellCdd`_M>*HU)e_jIEL)}4+up1~5NhxNtnHb2iN`ya@NvhK? z!k2L{iu_aIO_U0zlNRR=3WVy3Jd5UF``j(KdH;xE} zRurf*@>q7^;2NRQ)uH-09rsmyDElKtsC6S>j*eukO@4J)NQXKhyzE*uUKpWCSf0d@ zuaaagr(d^WFtx1W)Kl@9_EocC3u+(kHyzw0Y+L9wT^O*0Te$6Djj&@0>V(s=i#xbW zaJ^oq)Be;uZtWek2`_Ag8j5Ba_wmrd1HvoI&I^~~;t?JboMdho!fL(I{bv?0jdeKS z7B#G!PrX5SXMOjXy8p>C0~wbRUfT}3pqR~2{h-oe6!c`w_D@yJmMVMEH1^edZM;`q z@XoFo2J2w!@>AshD94da%j*(nf+KM(Zl9z4Eqm?qTFMUdxXycbUVs~@aK`jlVG;vw zp};$!a)H|C?^xaWfqUn8@|BNr4EsytWHf8@(kmJU;VGUm-6q!+i4(*9JcDli0hY%T A;{X5v literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/common/BaseLockTemplateController.class b/bin/main/de/oaa/xxx/games/chastity/common/BaseLockTemplateController.class index d292deba48e84e38747762d1532999fe0978e14c..f7f375298fcf79a773a1804d4bf82fdb00edc81f 100644 GIT binary patch delta 1353 zcmZuxSxj7I7(E9DX5n^Y8OqRFN@u_VEk&tX+)828DIgTaHnmB^Ah+dqhC9=_LtETX zE5)rY{4TXhBM-)BLu{)U(0i~ac3!`5kkrRx@rx2kG?VBHR4^=Rxw)ELzx zW{+WxWpqmldAr6t)E<8za2K&sH;3(ly@q8BCFH0@?$p?>CjE62_lVy15k97;$Mf{} zX^hZAlwH4b{=SD@(sa}??J%r9J>3}_x1088yx-QW5skFU+x4(d!m?6^X&UC?eIvS_ z2%DL-p*LsE_G=tKKT#>df&Ug+C5Z9?4Po@F-b%AP)>;tJZCYf4Q%<0uk$xtJvsi!*DU86Qizd3J85dcfu50t)2=Tvfks_+Z0_h!aH;sl zgA=F}P()EdcCO+Z=@+oyxfLYXQ>8Jn*=EB#rFwd6pXfSVl8 zHw)VCpxXqsIp|J7ciR^n%w4%mm|f2PT0tESS}&;6L197nI%v0`ZU^-W+Vd%V_VONz zFEXmWuMM$Q`8JtHCSgF~2xbw-$4FoSqw-@iaSciQh7^l%lx0Z&6DuonvC7*Ley~I2 zihswNWpc5$px`gesWrh)?+(eWK$1MG4hCDx_8=x0zXSZ4bOr{@unyo1<{? zWOlw!W1Xy}GU-W~?diq8ly-x$7xLcYRR`5IprCLrhyzR9;xg)eZLZx?%U JLDrdK@81eOMQi{7 delta 1394 zcmZ8fYfM{Z7=E6%YY*k<5DG}yGA;$iWfvSeob!UvIR+JkDw#{niao9sIK`f_fm2bZ zySX{t=XJ^)Cd+;-8qMOyG%owKsDHd9#!h3xV$8x1lO-npbNC(#l`SXvzVCUy_x3#J z`*q7i=Pln||MCKW7Jlr3Lw&!bN&QCe=N;R9E0?4q)_~>3Pb||}jvhkWVWh$~nTs$h zbp+9)u}b~uD|OZAT&b@4miy}n-A-(cB%`53)Ufj#bgtrRRa1DOz_v*Y)brt#j z4-mH+X4DRNEN;d72c>(O59(}Hdy1;pZi zQRhq8OXS9_?gd`s9>QzI61!SPQn5tRj(b(-UR7I?cE8RyJUpU2{u<|-JgOS~)2_or zwfa~0t8PuN&f{BNknieDaCoVk@8oe<{%5;s8p+ndh-Dd;haaj)X&sNBIaJ!~@;cmb z$_LD-nH66&T!Od$ELWU@dx{n3G2ldBLjeQARZn4GmZ%k?UVU8_?Dz&-aT$-}Dz?EV zWy&(eP>3QyQWn$r17aGka1AElz;R*qEHf$0Rbh_6twQBbIA`&s>MpNmSe-8SkFP~8 z;0Rxk z>)QqO2D5Ovz)cx(|#g7aH-z|wYz80Y>T*fgBW=x^OQ)n^${-alPm}KW0~yvaykI;pj11#4Yc?g n4+$?%kqS<}&G+~|j|t-!^Z_UM5lZj_4)cUN2j^s;bm#mB3iV4l diff --git a/bin/main/de/oaa/xxx/games/chastity/common/BaseLockTemplateEntity.class b/bin/main/de/oaa/xxx/games/chastity/common/BaseLockTemplateEntity.class index b91f9354de95ce19a6046b53c850cbdae82d9918..dd00661cfc0754895d93c82e3732472587dd323f 100644 GIT binary patch literal 5069 zcmb7HS$ES$6uxpck|>ZJLXw6pV9eq+P@oB=WCKi{rLjpNr3J+vY!O=uk{pum`|?Zr z(w@`yG^gkEp^ts&kLu}nM-z|}$5J0+Ni+9;_s(~>$v^-8`4@x> z&a^6?z+rm=Iw=c23kOOARZ6oP!r6j`DK(lr!(D@BkkvF;f?8|FELetDap24~A6Syk z+t<_khgc#ev%sCW0hr-^Sg_!SG?TOCD^qbP5-d9~y`uyRojFPAjCjJQ0w3ToJ9|H? zQLiJORZK^?%fd0Am^sOoM%oHkXE*2UJPwzLWR+!^71qlLk5jRAy|P*|-J-yIn_IM> zPgcC5jdL7wE30nKF;|5%Z6h~f@~%eB*V(@t8a2evF2l!ZAhuBho!2Q&XItqaz1l)a zjp9+bWp{LXjZOe}X>xvMVXhUqb4jP;bb{Yr*Xa};rg>>oC(v0llRF!A3s|MkI8jq?kKuD zGM53zJ3Xbn2pRjYc4Pr*4(@RYC03DPz2&QxEl`%y(l1i zEEg6tbUMj&wwvza%hJ(JHxnqHZfIq8*AEP#f;!yl==a2T2cHY8b55WP^NWUqhJVaw}gva@B2+x|003TGgx!%NItOJQNrcp(ayC(qvJKDQ&tgk!!vMW zfX--`jGF#>CN+OMJ^Ls-IhCH(i2Kvt3&@Pg^Py~Fz}lD*>Ppb+yM@4M)Rhm4Ft$c# z!m*SS&6(^H+`u%zxWTnTrx>?4e6`@K4{HbT~)Q;^Ae8#xhDUo(OJMedCg*vf; z)}}UCz!yfV+OvkPv}X-11PDi@fdOg17vD!AH<+U#X=T`@SFna2vPT>9Os(y537uq* zFh*W&;nDpzFc52Luy+{B_)Wm?2jEM?b1?A-olE>i7q)3E(XdUI`R7Wab(^mJDvvjg z-=px0XqXx?o!jXu=o<&&Z(@CzCa|OXP;?z@eBZl4Zz(e=JlRZl;&&SRo7(vCBQ?X` zFIa5=4#_hU-3%agE2Nv)#r6B(R10nr8ZP5gV02ok%;3o>B`Sx(FGhv;M~{NYHd?qTqKgAS$pM-|E^gHa;~(*8_nMj8xYMH%jwhF$XN(l)qF52K#TpRWpjM8a2Sqb@vBb}TBq zKdKe{aS8uCJY^q8h4%-(f55`HTj{z_DM{|2JqMGogx z(w@`yl+$zi(8oUXNA>g@=@MixmimAt&7JvX?l*U4F8}=d=U+rLML)DqLZOL*&@5fo zwzjskqFxb>mM`g!Yq;B5-l|kAQ=8Tuk+JgYIZ@dt>#mqHd9{Ta73zGUZ|YiEH;dZR z+6$3)6>4*(TDpMsjIZFiMp=9KFg-h|(BQHM`-)gG9Am94rcBdvb=R;=N1*|zuj{s} zYa7CL4968_UTEn8%+A(anir<95mI4AFM9%NM;w>Gi`x+v@R!@(V2ehMOQGSK_%l}7 ztC-MgvR=Ux@J+8=))99DC?r^$piH6eV4pq_S=TnqB5a0B+eO0^OB=$3VAexmaJyib zo-44~o{&x2M9jj5(O{L)+@`R%VPW_dO|I^&!!pcj1}wp>HER@2-Sun)b3Fj|N$2HT znZr};BWgL|PTmI0$RRA4h{Jc2xBOS8VmuZs2Qag11P`5gpVC?JoOcC2z+rCgaZaIL zTfFoPTR1DiHl7=KpDl%yRj|%sE?5O@E)~lw>oO}F-dfpkN&-i*%_&*0raZS~A@*aA zx8~$+V@=pI7S1Ew+*7Fe7RPj3p@!sz6~r|Ils0Ohiz=O`WGh`Jt%a^Al#IhChoI6s zbQ-wJQ;V}p3#~XW@2Yf)PV?JUmCn#fetS=)v%%YSmCn)I2rq+kv*=Y2UXBkNA22Jg zmsfP#;BP5xbV~+~!;LzW)Gc8!bgU>`&i;&U7XpGWB`?&$+dD6k;*PAV=hqkX4H;7h z1BN<4H{cHRfFaof(&lE3F3_DRTa`6yU3*jAlT6c`N=?*^!vGIUT#YQetI|;xwm`V( zmtya(!*DUOYDT3l>Q-nJs(0&FW?vP=Zf!Eg1C@HH7p1))BV4Ggm{qBd6**Yu7ip?y zLe}lgU046VTG`EGmHO$pLj8ubT(f#`l2=*rW0gkfq(bd7o*>ulhVx*rLR7=ahH9i6 zs@eTz0z4E-hf|&8p5*=x)E*d)MfT5o|WDKuC#`>gnIALr*3XS@S z>JMA)=7~**_nU_E6NDkNQWd(N6t%u4dDV^O?D4xvA;QoI>1p4qhf^ z4et9D1H;ln@0a7fH3$otQmCsCR$**~&PQX(AeyteWrTq)k1>KPLOUh6ZQ-j0Uwx1r z!IMj}O<+-_4tyrKiAj}qJUj4rY?V5(fR-f}SRqhG3pyY}w>cm~YXHK4?_kjP-;3`P z&>PCruDIZ#ZC$IVENLLc-Xpy?`lJdjUhO*1`aU7_9icfEb^E8wJmy)E|^e z{YIB|Xe`yRL*x8&E!Db16TkXfxq;sk;EQO48fgqHUIkSXAonKZBlsoo>O;{a-NKhb z@6&DRCXFYrb*Fx(vA?N}A3stv{QUxH12H;NO|aQR>Xt|!K#ptk(dic41{C@b*XRUI zOOqKqc_*55(FE*SMoolJkB3m3-o$q&5@D>`X~};IUZ1s z9wI-%abBrQ`lEP&PiQq_i%)-wmAy}Jy6PW;v3L=E8X3`eyojDf0$qy-^cm?jx0dir zgirXy&#^dKqdc;=zf^7lJOTUW)Wsc|-K+1Q0tftB=?^qyt#EY)4YdHfCj4uL;#WvS z!_UWs51O%rKkCCjr(#s}_v69`EnUKQ`S2w&qTrX}!Uxkq!uR;_FQVa>1AKyB0VF|N{;eg2)3uH7&yoKwhrXaM@q+8qSM)W#h8ASs L(6@rVqwoI%%HovL diff --git a/bin/main/de/oaa/xxx/games/chastity/common/LockGameEntity.class b/bin/main/de/oaa/xxx/games/chastity/common/LockGameEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..7ffadf82e0ed4cd18c946c3c5073f3221b09aaf8 GIT binary patch literal 4288 zcmbuBeRI=B5XM)|yCV{l5FjL!LTQ_Xf=b_L38gh8qy|H1?4&?n=*2!e!m<>kQ-<_Y zwKHXyp)>se{ZO4gE1iiPJC$bmBi7yC?eF&Pp54no|Gxg4h>8@BP|hH$E-g<8>&1%~ zR#UWPVAXa+plr2o)x37wbFH#hYpr2q)n)4l4H{HJmZn{E+zBFhp z5iAeiC}%zqULZb|<(r_M>l^I4E34jp;qGI`Xj|;=%KEK+MC`zsLmz5LRogkr`wkCQ z_je_{hgOSgs~gym2pdhYE!~H{SC)IyF=#s8M06u1SIMUI*};iNXFCqXuu*KOP&$rm zYtPZnm_btsNJaU!+XSOfiw=85Hf-1C3o~f2y85VU(9CbrRt?cop8o``K>4B}F`UG# zcp+{Zn2GpGsv>CJ4H$Avp;=M5c3Ce%KeO@TtPxh6a8`tpRrKII5=a&9M)!P!qqu3% zz{27dBDw9=Wu69T(WLk3gAuxfqd3rB(f7qZ-)WwfXmN}Tx?<8XnlNaxY`gM7*xr_Y zRUkr+nit&?zRi7Y98^0t6m&JaB(xk1GMiFW4pL%jVKLrdGAZVCQk2}iK4~#kcD(ks z*Rs~6D}9_seVMoLrAb3H3=Ly}%}D-iT{bDt)(KdPN%eOxto2{&istQ9Kg}!l2y&*g zLYE{t(px5-qSMF)_(d9IAP&7;I% zI*YWAT)Ta>VA=PfN$2QYgO2l3(UEr4%cB*O&NI1yQMMEDCDGGyGtO<8O3y6oaPgrJ#v5u62quRNubsM^G;*d5qIC^ zqOYD^jx)IH%5mbb9lGdwy<(qxW=b9&l}_c#SG>@#$vZX|n`s@wxBL`gw0U~ffe##Fy6NSdLO=pmIgfI%@7ncQPT()QSpncCJ_{A@t)0E)Eh znT%xXKN+diGZ}ew$aV^Syb$>P5PQ0XgE8DQzQ)f+_(nQ@Eh|2L zKQ#VKgm2PL+Tq;GijSWnjh~C~Ha$zjuV=-_51PiGi}0=V=r^+Bj^hXBC3%D;o43yHTMGSE z?MxkK+L``<{-{pR-CbZKp^5!K_PuxSo_p@O_rB%tfByK3h*s!jni2-xYf94*!aO)Q zFk7M{J+rYZJZ*GSE3DWQE=8uU0ujm=Bd(?W##3xB62>Qb3M zNw@ur^jnKXV9oXj_Z zl4fa?vIdP+EhX3ePF=b|mK@G$2zyJo7H1tD4(VMBc|GV+h`!?lw&SQJV2|gF^PQMq z2osBs&rCEv6}8`EfF`Q8)2Tacvn*BAhMdcTETw1|{U1fCH2L(~EM@pK6P*TA(;YOL znd_2cenZAGeFjf# zuK+GsT!k4`$A;q{#bG066~EVU`V>qJJoAP3bffSm&Aon43-74#TfpK={N{pOrorSo zxJ=VmILn6b&}}lYGw2T8MXax}<|y~@WNZ^_#!eM}r~AKRkstI(YROk_j z#X^SN^%U==@ByMclwIu)|8P+Fut_8MOaT9kO6Y`8*R@kwRO49$J(P@<{H!dv?+q#= zi?FYT@r}sgBnmtl1pb~X{bVZ+npZd!5&SIR6Z9O>6ZAtcDPvewv3~&$n5XrB0fnn2 APyhe` literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/common/LockGameService.class b/bin/main/de/oaa/xxx/games/chastity/common/LockGameService.class new file mode 100644 index 0000000000000000000000000000000000000000..71ebaae2a36a8d58f53f4d760bcf07874149ea80 GIT binary patch literal 419 zcmb7AJx>Bb5Pi$1A_@{4OFOi1jV;E6m}qm+L=63MjK=`COZFB#ewLMqg+IU_Wt_WE z+1b4Lc$1m;=KJUK3&0S)CMpV7Q_{{Do#(kuOiG!KXC@0AwmNoc>a31jym%01M1I3D zHBnRO&dtW?rLl>An#?H<3XL1K9Bvh={qwOx?aoc9g(~*jsH36KiP+NPI-QVzF_R@J z^klPHj*aJ{-Zg7s#+kx(^j}>Ah1STeeN6XUY(M#<`?8R%aQeKqfm0fD#&UINtqUfw zvvRZ_IiKik<=G~$UM#;kztCAAPcCd%q<1eE;0)qZz6gn`@F&=mN|!ZIzxcr3yEH0j b2^KUYI}mJ_d0paR$sd*2L04iicMSXjNo;F6 literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetController$GameSetRequest.class b/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetController$GameSetRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..6b1a56669a119508d2f6515be2eef1669362c70f GIT binary patch literal 2747 zcmb_eT~`xF7=8v4Hozhz)gma`Do7I4wYGlLrC1H0HbRehxUe^!BtuwTcIocKgZ`#o z)N{)594`6;`ak+Ndiw6{CQK3m8@-t9&O7rw@4N43{{HvyF946QVW5xUNljQj=hpuI zzE$VDBDAVIJd}=n6K{pIN{L{FjyHuY`JN1X*A>BZB6%i$Ylu)9NHL7PVh;f?J&uLzHj@p(f!u2ptINvDIGPTk|O5fFT_<9NP& zy5)&|k76D60#OdX6^;yLz_%lvE4`DxXz?iC%(mk>;f@FxmU<^$PDm8x*?b{pQr>L2 zELHMrVi4p|6KM=EjFufwtT%QmB6!X#u5z_s_oM_(^HtBQ^FLw!h@@r(yc@qXQ z3~Qf4+2+-V^@54vh;`*tST(msoR>_DM4TDv$6n1*L40lEGOjTEn*WHz`q+}NKN!Ib z71T}?MTY)-VJ*^r&BRsAGHiTa?Q0AJRGi!m8P4UkY}%;26jf;#UPQ|0OyqH$fqz!z zAJRtV%u|ZX1*#I=oFutB3dcTeU)W;!=X9Q)Qo2L;|KMoL;ofPqq%CX>p&#FvxPjX$ zXXv}fo(j3+*M8;!byq0@itx~;-w3K=*@=39X&?YV0L3)mvKZ zA|*+H&)@8cMG;m5XHWWp4k@`j40S=0Ilpw1=-S)rFvrA;XnuKH1GdWNQP$ zZZ`E%hAgddT9dS<7|b=#6M-^Ega(!w?9=Dbu_0kN(>Y72bZ3sjaDqn-{6x_{`6|_2 z?0#x`>olrY{ZNuDp3t~OJ+YtqKnl5NqR?9|YULyyr1w4y(Vm)cYj4t?8fa^OM!lyo zN|G@`%+Qn3GhO@>**_G;7xX)zgx7FZNkBUT=ZHR5@?{rvyc0UBL5DTyL>F|j6Pnkc zBO3H#7j&u* zo;3B*%}jCb5XF;Fp#E@^A{jf>QYs%1HcjZs;(OdG&K)3IyncZ3;*A3mO{5Mm_3l_J zzNM3FO2G|!9i}xxD~<2yw-0x4m!3H?^9L2%1^h^VD<7kTMJ10Mw1gF$$10wnj0rqd WxFxL9^ERbhoNVo>)}Cl>Y4#u6bFCNtyAn*dr{ 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 literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetEntity.class b/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..76d3e053233fb6a6035eea4ddbcb811d3c110955 GIT binary patch literal 3484 zcmbtVZBrXn6h0dWp-IYX!M1?3wJK2UYSq>@2&DmHY6`UpvC}V|O>zm_CcB;84T8T) zXLOwLgFnC@<@lVtH|!=2$x1$u<=%VF^PIQm-hcl6>u)03qL&GZY4o5bblWiWlamv@ zZZw6fSC0(WGrd!PDLg%^HgY&F3U9~a(*%ubH1)3jLw_e6*K|E$RfV3f!R>a> zqnxmWV|b!gHX1DfvvJqsb^UaJ2lz^-@7QCM2 zhqbRbos}pcGn`&3nsv+YS`OT|eRo+XK3*>j zZii~amd}yd0OZm+Sy;!yk(50mnDr- zzX;RgRvdEfxr-I_Hb_au7EfoFHv;~cJg#5LHtcx1Z@M8@?vdR%S4?x@DrxriGY zjjXJeQOK-a6G!XIG6z*>Fr=tIbjG$b^y}MhK{< zoYB^JU3fg{Gb^j1@+kQ(DEa2C;~oN@DKzY6#eS=w2{UsE8u=nkaT?Po3FLiWNWA@3 znkINVf$cr1qAP96u#VXDL7Jv%27?7tHSid$&Iq}p2!FSYF`Sr~bv;e9bVZ{HumFzAg+|)DS9oe<#hJ$8! zxPj3zIH-=HPgwYUnp6JaHZej97D0PDSY&tDCKu-B-3#4yj5OaV0Nm$F1QQ4&s51KX zbO_D>2*qqC*{-if-wy%ZMp3}YqTO<;V%KDKU+*c;yZoM>_geW6G9<8o?!Nzy%HrU3 zx~kss*Zj`EMy=>3rjXyWF^aKLu}WYyhrMxpc}A0hQk164SjJej$|QyFW&BOPqA46e zqrDFxBOK33?|BK%>knXjwMy3{#C4Yzum>faSuS;3ei*jIM4wsS=(fBWSaN*0Lh*YW z{5rlGzVWp`>EqvIK%e556CxzGg5R`nK&!Ndl}2~yGZ1~QtnT953G_SZzhW~+0Z_6h z(3b;&?nMLon!Xtj(fw#Z-_k=g+3(AvzA0v+0e%+(+~^Cq84YkN1o)&cU^W`y4(%f4 z?ruIpJ!9PAwL5>1-aQv7+0J?2Ld^xwjIWg({NlJ=ApzV6gW>N*h4*!);3p(}o}Lbh z{(e+=U#$v$TEhQ81sYZJ@a(-J6~aZzFwID4=FckY*b>tnL3G==|(`j4B{9SQIHswM& K!)V&2pZ){q`s>jE literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetRepository.class b/bin/main/de/oaa/xxx/games/chastity/gameset/ChastityGameSetRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..cc4f3146eb282a849d11fcea2591aff799dbf44f GIT binary patch literal 671 zcmbVK%}&BV5T31K1r<>*o;-Nci+l1^Ln8hKQpHF(dRW_~Y{lJXI~DpKK8*(-z=twU zfdGjyMh=_J%zX3neKVh5?;ikg4!bTm47^ZsBLp9fMm!QPGUY*Eq^K~Tm=gKL)Nw=M zj>HFLJ6g*A@x3dzw zm56yk2Kzmw!$#g7YH6Ec+lJCM@;fTP;PA*Fx5`irc(>cU^o|!CzDm(!Q0}Nm3(PDf zJpP$*=Kq`hl`gdL>eS0MlPO7qTZw%W-iv}NN}DpM1}4)uW5QtX=QJ$_m5#}5Ag|Sc z20r*z>63yvgSQFc1+hJUDWR7qz99K{2X&9O&0vLIiO$NQi*R8b94HqSRA7_-5`zsW Tj%5p~1f07Fu|3Asrudz2s$|ek literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabe.class b/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabe.class new file mode 100644 index 0000000000000000000000000000000000000000..b7c350d32d2453ec07323c024a7d634d011f737c GIT binary patch literal 1923 zcmb7EZBG+H5T5OO%UNm*^#v3Wgi@44doAKzw$6mjBsUSh5JY;CTe`triDB6qHwBfR zgISkHu6IMg-75C*Noto1F82t;D{ChN60htg%RwAU8caihz_h^yd+W99%sHm@pdGtG ztrO~S_1$$QWQ$|`-*L%Q5S|5VoX>J4{+M zEW2H|Kj{ZdFo#Ok+{prgTN)%GMIevxuLoqSt2-K`)m09!j(W_`4(0A~ufmr#$UrtI z)KEew=c)!d<ZDTyCF~*~&O4N~^*VlP$aXo;o;= zk~v649$$re#SYQY@30&O>NTj4R5HIYYzL2_c1qnRgKkv(>Zte9c2s297#fy~v);hu zYPRPz*c+}!sx-V%8){!*5!s02UM3-?gv3)!speah!?&n_Z;>*LzT%(rNFdHF6!7;d zdUUh|ZL<0uieLPY8T?K8&K%6*Sv^*X%5V)Wf$MMsliln_&7mCz`U>-((HVmQQ07vg z+Y^Bnq5&nz!#{>6km!o}bW8&ytiifU6Aw-P-!uqz@)<@4>y^U2%nuSz`H7$7bqrqo E0f%=xr~m)} literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter$1.class b/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e28f7ef06145b3846033067ddb25ac306d677fc3 GIT binary patch literal 960 zcmbtTOK%e~5dNG;(}abF@@jZBha6H6m`dCdib7N#(o!K3_3msY8<&lZyxuCk@s~It zBo6!leiUMyaN>YeWmle;#xwKHjDP+9@e{xR?HWn~FQ+7}QgXRm%2X{Vm&sh^Ui*u+ zN?yKU^N9SQn5Ak$vCjR_nsaiVT<5Tciolb^F64}_ky|b@d8U$2xivDej-Nl0MJ&vo8;#@XYI()T!2UmNX@1YUJFjCF7-P#M}O)gf>tLKRyLlyNme4c7$9 z-QchjYeOf+VnS}LCK+SdjcuZ`Q{{Bf{~9X+puk|Wk~)VBu=$?++)h6z$7A3IbJ)hn z7A~RJI^=KvXFN~O)VUI+&;YQaNI?NqYzXAmZAhcgBz# zW-8B#+q->2xqoYOk2Y^YnIDU2Hp4muiBApND51{MbLJ)HjYp5aG5L<@D{Cd}Fx^`D zw$NlbTFDJu$1ZC(_*4a|UqaBEtdwvIw^#fQ_Lx`D!aY1>slgXR%JA*;DWUZTC%G1? literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter.class b/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetAufgabeListConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..ce9ba8a2d76386ae51b820812be9b56a47a76714 GIT binary patch literal 2493 zcmb_dZBrXn6n-vm3t@R_=?kE>R1tx+-Bv4BL#g4Vh$gfW8pUrn$psdYU1s;D!gqf` zzx7{4oq^HLIQ`@Yf0W~MH`^pIv`TAcb~oqlJ?A|4InO!!*WbVY0U(XhT7E!byI0)naeq))78x_Sx^}_)C<1%La=veSe%0iz&@(hs@urXj`5D8+L zjRN*S;JghB-2wv{*Hf$2N}WB8b_@`J-gZNQ`F@|dbmK!cr_VhtipC1g*AJ`bjhotbwz||@*%T<*Q>!7Ka z7-x%;PRnZHBY~l&=9c!0YEQd9$>}JQ5DM}nMFN66Tx=n#;Y6-39k1uXUcIIQizni| z5pM#0IZY)~wy}N&vr2FKrAIPgV^Ql=%y6ULOP=YyMxQhb-df+d9Ibqm(0dzahd0tcGtq^FAEbPO9z2GFcMARE(R>jvNPVQF~)Bvkiwkl)%ybT zlV_IkvDuZH${R_hZOmhV9TO;7iWDjExK)X9PrYI|75zXtnwoLed0SJPDln7om~iV; zF=b&%;6k%g*wSTAODfk8v}}&`mB2`Aw>GyBE%m*_d1wYuQ~iyO|F`amK_ocZvNnb> zV*Wj}aSOKv5;?yb6x9RQ%(t=E4E&oWv%u391aV-l{Fiw@`+xLQOZNEubL``hwJMvZ zqVjI&axkYo&)3q>%Lco8D!j&5h~D;!=c!l<(hm${L{0wY8-8U=eN%Kj4*wbLF={s}wz8{QRohE7rY1?Q57c)ykvHTn%i z5hlWvY!FM;g(v9{$v20-i4y{hX zR|X_y)d2Z%1oA0~GazROGC^3MJTq+FC0k$A%+r8A%%jP()*1)O}2Hs#okomtv~`H zalr%dP>5M4%?T=-8;^HA^X)(Xj{NKQkDmb0gvV)!F?edDDLFTX!=c&bee_MM$9*N# zr_mCXxlh||RC~e|eh$e_@gerqdFxZNEF%QpI! zC(f0SE`zed{`m*jk=EHRo=6W5@#8>vXfs%ysos^+LGDud`m~^VqR^Y>r(TdO^^!rn zRzGHtcqMJjLL62MSO$Z^N=vwSFz9#CJK~*@K5231n0rF6$D0Y&6F!4yt^c-z)MdJ; zjz-O|)#@`1Oxmv=4qPSr_{O~uzMx~9t}7MSZqTWPmLvNed1mgTiyl{K?<@g>8wMmH z#UMxc*HioSr<(?(^{1*n`ARQ~b7C&t)b)1^$iNbV%3S@NwL0yt0a=}v@h1%yYk&8r zjnBVD)syyn?$NZ+4N+S;s+!SFYBlCcwWV3|rC5!w%$3cFWRPvkfoI{K&{w;*Fse`V zB*G?j5~q<*KujA-Z!zs&5XprgQkxWY&onjkyhbaNBBPjWe23hZAT3YNRIr(W>-4Tu zDFF(wN|6LWk>I6q);h&`&{rsbrp*{kL8*U&DxsiiG|(-$9inI>8fY^Vv=t3>5AM@- zEPC{uRK~P#jqPtxUUWMhm{b~NjNR5Zp|6v{1FB2X4~Sf4@Gu--jf&S(GQp<Nld|_3%ybnE>Ai$8SZ&>zSV5vjKiP7`{h;0QQ6jo&W#< literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter$1.class b/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter$1.class new file mode 100644 index 0000000000000000000000000000000000000000..d96797165d70c3f2e76d89ac0e7d31ec5dc4b88f GIT binary patch literal 967 zcmbtTOK%e~5dOS*HDRHlyc(WG${_`Tsl+W&M2T8JS}H`M-kr@faoO0&>y6SIe~AM^ z;=m8!MGGgvcR*{&gB{3Be$Gq@?52#a%*I29Z7%jndFGc zM>-=%CMAKYpXt2)g3~9Phk9z1FC6h}5P-W{1Vv$;0Y zHKH2s3iLNyff)DkKwvjr@8rlHnXtZx-a9=mJi~2w)&MePrgF$;GwtsGgNcia-x))0 zkf}T;?(o(L<^HYBJ@$ATO8jO-vl&(*NPKG8LWDX?FPTTo8&95oWAYvGSJonIGp(+C zTWGQzujB@j1a`PID literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter.class b/bin/main/de/oaa/xxx/games/chastity/gameset/GameSetFinisherListConverter.class new file mode 100644 index 0000000000000000000000000000000000000000..e7ac63daf14ad029cd8c4f176ed521f79674963c GIT binary patch literal 2502 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 L^DFY{Fyp@g&J~v( literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController$TaskSetRequest.class b/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController$TaskSetRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..95b2909ee141f7aeca33a617788f4dac1b44d59e GIT binary patch literal 1952 zcmb_cTTc@~6#k~P^x{IHT*MoA0ci`ecn69o)EGz#8cKN3L^EwCWntN^yHf)H$p=X! zCOr59{87fUm!?Z;fd?MC(>Zg_`ObXj%=h=-=^p^g$VU-kSgi=vZT~0R)ryK zP*#Rip?Or4mS$9Q3=tQC!o0(})O59=*^-XpMXhRZS+^*5uH|^Ka9Pn#X}KjzGnme_ z0}kiSiim@uS3v~b49S9Kh>iMwNmyIFq`L*1Wv*{?OLO)OV85+S30xiVBb}63-=h-uM>NXp_>MU z>o&tsI?$7krCm{$xy)w=`hkK`JY@KGjnM6|sF+2~(Bu-sM6eitGF#>?m)UmNI5)v9 zephaLW;=l{Oe%PUw97l??^_pg$EdgwR6psX2&uv|D{N3p;#f0>AMB%EZURr}u1AT>#DQ*nc@DBe;pFLtHr z^vESq*dS?LHEl^YPf;;Tn$bmXC4`itUGy*I2nbo@t~Eh6l2+WHuR@jyS{bd8>@W2E zbX}74b)0}<^tl$$E{c9i>Lp2?3mxbj+D}^5K%1l#PU2|xl#-)0h{n{%>nD-9O|DLf z!Js?957(txWH4wHV}4MYkV51c%TAr*{zXxscQ#I(c~_foAytZXSWISr<8gNC1U=d5 z6AT=8gwD`OJVdhY>7d3Ge8_%Wlj( OR%jijbFY7Ay7wQE2lL4Q literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController.class b/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetController.class new file mode 100644 index 0000000000000000000000000000000000000000..3fb47d4984cb1a4d6f70480ee5a7ad464b524141 GIT binary patch literal 7355 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 U$^S=tn9qOl`ESmPa?Za00#CkazyJUM literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetEntity.class b/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..d341ded2d19ff35991f151f44b6ba8b56eda2a5c GIT binary patch literal 2244 zcmb7EYflqV5S=ZLLMc+7@>Ee&Ua}}6ND;*XhNOa#LX2O?rM;Gg?Jn89Mfg{mXiWUz z5Aa7B&)nUb77HyO+TFQ#=FH5QGyD6`&tF8eN*hs%7&M=grYnSbc6MgwMM3&z_E7lB zQs<@;{;_YSLNfzvN2+y)@1oRbP~u3O3ey%&-rPPol38U?#LD43tuKnovd!Jy&9$UK z1MiE7E66>|w+?K%>Nu_v%5ojwpnkX?3r`92M0&pEE9qpVxtT-QSk*`nO88lZHEEkX}1tCKst2tPcpDf4XIicmu`iG1`&C7hUVo<~Q#2!vlZcfIif$qd< zm_`ihNL!BFDi#i;mtn$~BsVMUJ>gkwhlh>o(8BB&YF1ZOe#~-SDxOT&_(U0zq1=W- zxotY9RRq_Sw%x*kdu;v_QnD2@os3fxH5(KI@^&zIK7JIZ8+;ta@s^%?Pbp>j+}ZVU zoI0rsYJn>c3k_D57s_C%1aSS~bDC#y>ZTr0;0F|Rk6&bfCzE(9)uEevCp;9buvzE~ z0byt82S(6OZx~PlM{-#i~o4wK=)`2mO=OF0e~NdUgLOH0)3;2FF1^#Q)`ycYakt)~Ra{5twO*1Ayrp2T!Ku@y^}nkp$uIx_ literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetRepository.class b/bin/main/de/oaa/xxx/games/chastity/tasks/ChastityTaskSetRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..85da82f73fa1c7e7100ea87506a6049130bda846 GIT binary patch literal 607 zcmbV~y-ve05XaAj5?a1GGBGg0!c7b)s1oHvDhd=)Ix!uIo4PG=WVLywXTX2audS| zkAEhd2LJSanasHOO|InWd5=usM!JEH?r3JzNn-`nyLw_md8NkO$KJ01k7kAhyv}`; y82Z6d{Fe1o;#h!f`aD7bE4-@wQv{FMgLSAtjiUn>H83O}GgP?1NCl5^s^<4`|(N>K7EW zs1R30o0j3yO`Fzjr2awYs)37ho|$uociy)<-w8d1R4lVm6AXQ0l|nYj!5N7bvr|! zY=;@(Yo*=SE_Yx3%oC5_Y=`DUNmBLq(7uL- z-iF(D4;Omu*B|i-=JYi=^#(xXjcl;3H}p|Wqi>|6>s-Zg^eo~lrh-hdJ{ue26q7?l z8pS0~62-egUQ;DcKH%WMTte0|p;;alM8`yTL{}}3GuX9!&f>xHk+IDloAN?yF-NFJ zIB8+9XgGIGK4$DLcJXX=Z~X>f#rae4r8Lvh1>dF~jm zCMG7DF%$IWMdLw@|A2|{s3$Kj7p)FpFfV!4RrS@YufDF{nlIH)-=_r9VnMfYvlFYR zOQ)DUHhY;V*bPo>%RnNPS|P*3t!i_k9aW*`)|lgZ@H!jEEVHubHVDJRp=Phd-RMMD z20OfT$mRg$!U%m$s|ICLX)>3r@hQzVEkw){E4xe>Sy)tgAlMcxX^n-NN-9HcY|&7n z#4KEW{{M_kD-prhQXhX~y-b#9yvz1wRL|75a>$kr$YTh z!l-`8|AT#&6E+Qf$Szw>nQuASqtDnh5%G%8+0rfNg)y#qW@VZCIoa{j+}`BOaU_#V z8hH$70;8D7I3^j%chco8NqXS7iR6b%Ur>@n&GeB$e}a7jPQ5z&2b@NA!mmm9%p+2I zIcV}G@9&&XDrID{fP5BG!Xg&ysbmS;SxP<2a4F{m0WPzgN37sED|y8#KC+rmtl=wb z`AG#iN@ijoCFPu_o|5A>cM$FIox9w_$9;|3{~|rZH1t42v+@1mp$QcDC2GP2&a~+I z8NIxFs;MN#>z&0Az1M5)2L0Zs1sj;drueUd3YlH4;cZM+$^mw;j-6~(yNz8c`EI&( z0k0EOBDFkZACIYvyHjgrN+ZJvtD?=iSS^$ip-PvdK_~9gT{ur0w`h<5p0-3Xk7|eG zjHQzz6=RJ8HgU>S79CEj(Fwf&&|^Ln%_~euyMKB@4kzTOXFC&e(zB;kc+d0+pOCX= zL2*^*In||`4DB?Q3##2k3c18ARl1BTs`^z`_L>fH9fupr)F`W)ioB)XZB_ElAkBOJ qY2MSXxl)ozlHV_I8OcAWu_*rI@wE^Olj|Sqi-t^we~bzE+y4UbWZKpM delta 1037 zcmZ9K$xl;J6vltI6ke?l0uoRWR4OVh8XOY`P*hM+P&5i^RCv@1WmH-~5UdC&IOB8H z$P(jc+JRap^zc!UWH21&8;Nd+#~-4Bz*i`>k@KYW!0|C_ZQe8Us!| zRO{4WC>(XZ;33PYn3L-+YcM*D{Pv)~DZk7g2yUK@7oWx{Mbf`FI;X8{TkB~D^@?Px zZb^r)t*hMM(jN3hTQul2Qlv=z-J+z!%+mC=%~Gt{-x6(F;cF{4x-2}cI%lll6bY6Z zf89E0GmmQv5`sGI7-p}Q5&o>bwkvP=s%}f(Vo0_+r>id2Eo=faY*KUoC*!VkGO2oW z>M634F6b&`PGn{l^yxImT>ZKlP{J!k>imnsO1-SpMzr6Mu7<6Ca|33dmL4w1dSg$^ zz|KNuv4|uVlS(%8ahZuOpVJmkoct)w>~S@3dxtYG!pSibCa8TyejHUR=G2MHKW#LL z(K2nE6(bPK3B+>DtR?lK4LI0H8k=yjnS2W5FQkku9A&Far-+Me;|AM#%nn{s%v(zM z#7@4li|_2_2c;^WJ!FCaj^ZOrD9EQY?(+ZMC&`Wf{i= z^Ktfag2S>O;UslbGlaniwSvgYGfwdWUwFr|TD7!^L|R1WR(U~ZSjSn)2}nwiOLQ@dW4Fw=earRUcX+HUJ+64F{LA_Gf%AZ z5!Gw$7bEJDwGYOE2B(9rm_Oa+p&?Ogm}IU>musTvb#g`jRooQaZwav5!fAvC?#L@L z>E^D0yeFLQGb-zt=sYtCo=;CgPO(V{K9#Lpzh$o=A*A7%vY>0$xI9`8lh~{SUgN*3 KKR4zV&#hm%MCbqj diff --git a/bin/main/de/oaa/xxx/games/common/AbstractGameDurchfuehren.class b/bin/main/de/oaa/xxx/games/common/AbstractGameDurchfuehren.class new file mode 100644 index 0000000000000000000000000000000000000000..147597a0c8b161dabc2b87fd1dcadc48925e05d4 GIT binary patch literal 1676 zcmb7DQE%H+6#j1F#A)hwZQ3rhv_NTTQm38AMgeJn6m1#`%b-%KO7PSh_b&13#Km!{ ziV2Co!V@n%3~2?42OdG<$M6#<-?g2sVXd^uiO;$Bp7WjWe&_h_e}Df2Kph{O$Ozm# zR8AnJb9#E}bYxEr95?9og1%F4528@I(dXQ}Hw@kGqoL}Cs&B#&n0YKuq~pte$N8%L zSh}=hQDG+#%-ZU^fh!>O}bhq9Ks;6Mu1Z%(VJZG*rH? zdTCt#6R+<@p9$<#U$bnZ(b(JIR3q zGGsp@6%wb=QBf)Y=~Aj?Zj3~|M5SU|x<`9K^Tgi~D7szc9;NA1t%yet<#9@MS_AdJ zQ(i~ysZ)0Ii)!;l$6Hb8^*eW7WoPr{paLoaC}2~-d{Td~*VzBQh#Iy{Y>mxTQpLgz zIE)O{u`gW;d+#EXyImQ!)VD*`chyBcWBZqKc%Sk;*{!!)EYJ2w@hwX)v*rBBqsTiE z$REqWKs&`&z|TS5_jI3Eu4>s0t(URNamn&)Gcd2`DE2r-vE>ZKmJ>vqXUrrlWH80m z541VjCHpr_+qE;y+RJB{vsccrU@sVFDF4FK3>I}vjB7D}hI2WKX_PR>XOT6Rc>Y0x zgg3Fwm5$d;*aLc+OD6U-8_je{Pc*Ss=+7E)s!4Z(|04eaZ{cmeHA#n7!{qE|SooPv z!Y9GL9@n;#fV8&2JC`Px|DRmGG zI_qhjwK!g^F?b#Ck+W9qA42HlO6@P?OB+vXrRvt7Ft>g}uC(zh?9$C`F1JU^r!j`^ zb5e7IJ*%LMDmG|!O*?^0YZ4f@a67(Jg}uKW_qT!_dRejrddQjQRK_qNOw^JeGKoEB i;`l-KdCWOw96x)7qz+5dsdb#JH%T2!Cvj{c~`sdIjevF`}-dvTB29I)TNMCG&Eb+wbRp6 zt)y2BS1Z_+ifw6n?XaZh4NF_9Kdd>mYSrkaghIo|`iZWUb*rR3%^w>DPoY#vbX)61 zbmv5W%`?l|-roA-IfW7y*a~I*9x-#rb4;s*J~eN+g(Jr>^EIoaQ1^*#DU__ahQqLd zs$-t$p5eD`&bMc&Qz;Wa(bbf#7^(Dcn7ulYQU0MWA|J&(RMJtY_}> zAiN;v);U$faXRIQxq{PoXj-OwWH<^fTz)~T^~nO2$eU$s?~q%|y9LM08_tSdvv88i zhC=DE6+`-Q*k)PJmyLC7#EiraHpXKQlk<@E7ICoI$$dCs#V#6Y>ZW&8dYf)x1v%3) zwrUluV3$SMC3ZnC@9U1q^?GB%J2G8`W+mjC49f;98J=$+Vb4rV zp~Kh>l|~uMdlQ6$LJvDxZZI8@#N;iN#+l4MSVmZJ+czp*;}gvA-n7OTj%$Ml?WuH~ z-hx9-Hyk5of2-02pW`5AFEzpmKEiV2Q&?k$Sl{<5-JqM0ahn2RB-shAiJa?A3Auk1D(*oEF)-vaXX>~z74h}Fq}e<`j%olk@yYaNvG&p5dIhgd7cnVHgrF!9JScBsEN(3P-$qSCsi5qc`it)TiH9zF7yn7o*iY}_S@j3d`}6^7 z3VldfjGC;EnnHOSzXs@xrvE@g6qLFU^fArEfHXPKY%J)m9O$!H&^zu z=3@3}{x_-3UZjUGhcd1j|kG02hIeUCZ2N$j=$PQ=pLhjXmpdaD0*6i>A@GiVj za%%dVrd#t&TBL_@e?&dca1P?csnAcD*Q1~^jLOfX$Kf?uJm=#O-z)I>c>G;iJg4~( zpAz^&JpP_6o^Ov3pBDIH{NCS}#q*^U;`;^Opu@I%KXFd;vUtAhLcA*QB|4%6p7`o8 zUvp3{>Yyc->5kk~Z*q`-l^$cXe~Tq?Azx_-4+`Oz5#e%s;U}`f{+%5a&d^9hI3t8B z5n-#n@Vcz9|8Wo%9;LB{@Td^BBf{18!keQKxh$SP%0m2vz}M*H!qrDo=L=ap Qf9r+#8v_5U*w@ql0k!Ec{{R30 literal 4784 zcmbW3YjfK~6o!u+$BrH4Qs>f^w3KpnQiuo?3gmtvX@Z-CrZF^JWm|ES+LDoEPxwzT z12gR~!v}rfitV{)dQGsgB=Y}f0yrRmM%s$McIZMFTfy; zmhKt8yh6&6LIc6#E@~A_*8?weU{)>NYdR2Ih%AM>7Yef9JHG@}+Vvd$*uZ+`uMWZo zVs4w$FdU~>j+iSr1IMOix+jLC(Bjn>wAr34P|1>6!}gB2&5~Po%#z`(+f556sq83} z4O{s*Te@Y|YWiwRH*0#ShHXtP0Oc*=u=3MIobI|^F|yQ0cU8JguY+1JEn~M?2la_R zBUiA?dabBCCfD1IN$m~b{wq;m`1BX@SGo;WxmHH`#qldt*FztB2j@p)oYAU5^0AGut zYY`7~-$yECxG#miqHS^0Cn{yRDTAg%;cjmIOr=5A8!_Gei%!Sh9`T3;l~fv1Xb|&) zV8rr+Rf#ZbTYu@L#w!_~)mBv+rV&^GYQBTv{>5Inq5m2CrAoOF8w5jd*dQDjyRFhV zV|i}^dn>fu%W{M1hz=${QfZRO?1MFg3b*a6bc0VY$9vNmH#n{x9`r<|oAeqSYP#VV zG5Z^pruZClrd#ZYD4utu(k<>*-3!hh%Xb=^BX0DO;hor(ecgdYJ;Q;Y)0pQQcA`Bc z>Q|mLf)P=l!kuV=JK;&Z_?`qC?;Tc5=8qUKh@Nu?URaqhAdgv&uJ_6*mkE;>Q^l{1 zAYEi3A6jy$2c6K7EF)-v6MLcsMhvzlaF9YPJuEJm4gWEakCS}|zwl>wx-FUC;ZZ}; zK8zhhz0+Ly)C0Tel#NZ3bN5(qf`0m(<-3~h!hn7FEf}T*r$4+UIJb!sc}$c@UZO<0 z5+#z7D3LBOdsMt%!#u=!SRX?j0UFjPP)AsW_3Nl3q{LiAjVKW$qC_;Hyp6HAQ}Dcl znubzA*+26az450Q_9mVw(KtwN;a&9y(A)G5Y6`te??EKr9yN{fBIr5I{DH;I!@)2i%DOzv>Ds$N_g_?Xf2Z`kEeJda8+bEIy}$-=$9VFxDPL zIeUB?3wkOC`i{Pb&pNXMn>c|lO3mDRK{K6sCM(jzq(7paXE+CO;#BAd%KM(7Y_3@467L3cNwbl*Aif9o3f{RERogg=P987tE_1-!WQF~| zkf`t^T|XC|6vB3V0PL|~^ylGKXUo4ip@nV;e1m?u)S-Q7<>Yhc1s%xZ`R^&j-xPQ! gJ^+fcc>XC1@lyit#^ayL;`v`M#NQHlPwZ>+e{@6uH2?qr diff --git a/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class b/bin/main/de/oaa/xxx/games/common/aufgaben/AufgabenGruppeDisplay.class index 2141bbc01f1ced153b76e5fe3ace177659f68d39..41831f2fe4f049567b4ea57e0c50ac4ac432d575 100644 GIT binary patch literal 2516 zcmb7^TT|0e5XU#Aw6p|T%Eb$cilXHr5mZFLO95e+smO@%z+2iL%fU8b(xijm$p@X0 zamEKffFH{7zbCb{l_B9JdoFu^oBi*e^ZU=wUqqCn%{WCgS||y_HcjK?!wjLt+Mg1a3qSZMv1cWvbIXt z&Z~XTl@()eZ)<&7qo{=t8fE+)b#m8rq*cbAUJ$k7p(A9$v&tI9yqa(r(|7F1y6Fl( zzDC*sI0ae3R#)A&H0s4)$ckC0h%L-!^T8RN`6F&@MOxB*30ih?ALuo^B$Cuc!#WL6 zMx#_-T4LL)7KHPGgYfU$MYFPRI+Ev&#i)BIYZ@(v2!EcSEI?Vfev(SQOm^~r0Y~3^ zmMg2sv@UBB(Q}q%yQV8`3&At_id`+(pNvgm2?v^$mJ_7WEuFe4rcoRLwp9U!{;^w2 zz^-?7ic=4ghU;oeJ$UcFP6^&iU~f+qhgTFkldoz&%L#?d?D!$UPQ8;B$EM-w4WuYzX z07$qa_zq%bz-qAFQ$J|vn{pe$H>MVobOmGGcc80u4Kw^EjUxDshSyElcF=bk`-;T~ zoq>AJ1>Htg7lX#bf$jx@Cc=Rp1g4e^2b!YkfYfHbgwkj>Ff}9GAI$}V=EH%W(9?j_ z7Q%rR={Z`uvyYYlk8p2IO`pR3svO;BB@Y%iwml*-L}p$p=j& zCO-H9{7}YoW^08?+>I}L=5pqD_Wz&DkDuSZ13(G3(vV=VTob0lxp{JOV%B*>cxKgU zG#q8};9Z?tLYbv@W7`dyO|d1trp-U3A;}FxvHD5tz%L38D#1@OYPKfx~%5| zU)tuu!OqqygQUU|3<}|lUb*kPQq^(Ju!L7Va)q=4RcDY2JmC^%py|pM_eEHr0XsyF zC2gGQX*mk(w78PC%}XsVZEo3EAhjly^w%+?I9tK=O{XTZ&;ug|g5p5>*#|_~Y7=LUHzQQzqU7%9jnXqgv9FSiPi_ z<8xm+3X2!Yw$rej_vW@x!bKlys~KQ$&46A=F-T*9U2W>fZ}wSRDfOlSY3M`In7VPs zW172dK!)ZrICr28r_rJTS%T-Jw|Cxr^z)E1?i$b!Mp%9W_kzYu0|tndLRQ65H1xoL zK^iJZuhO+iH2uhc98nDKoJ+&SZj)#e^RI+|g?fAN z;`Kp-b`Dz!+7=yg3v@)&bwq1*L_2jv4|PPdFb*LJPceQA*fTLQjJ)_KGzZ#97j*F)Y+`(rwel6OZ znYeg*7drT?#y^Agf0{FK3iEOC^xSmt{Tlx~+MI>BczVS;_yLW75shDri>Jr2gCErR VQnWcsaq;x#cJMik-_RF-^B1lYI#B=s diff --git a/bin/main/de/oaa/xxx/games/common/aufgaben/AvailableIn.class b/bin/main/de/oaa/xxx/games/common/aufgaben/AvailableIn.class new file mode 100644 index 0000000000000000000000000000000000000000..7a8f211e5ff47b46ad3e6605906bfa35b4e120c7 GIT binary patch literal 1267 zcmb7D%TC)s6g`8TCkE2crsdIhT9QCSBqkU+cI7w-cKxI_ zEI_S_y6#6+z2l_dO&76bkI&4#=brnR-+#Ve1JJM*!x+O-%T!&?)w8oRwaq(bS8ckT zj_atrchu$$(^0ikZrQwHn`I{knPKvTpK{gaPFvk^dL4$u=C)Be+^gz!hGl&ez9K^^ zaMr5Zhc&HQ)^&|xV(YzT?3efJL(cJ?>Om!2)AWNKgF*c?YKVBLXIB$!1Y>| z!)?-8G5uq=^^tpY?3*6hM^CxkGwEj~mmjexNh}~ALymYu$)0z8v!kGZMQSSdJbvDE zKc6!c!X?>joS03&SPoU`-xigLAr`3GJ7U-jyA3OuAFX+!K&pZzyk=Mp({0(j+bxDP z-0&1-~8U=~2 znY=M0W(J^@#wA#3Qh?N~m=j?^lQRy5>?a6y2#ZJi0ai~>N|%_rz;poa$pOd&;6Wq+ zGtr-9C-pIH)a5=hMm^HUjB$avZ$vVNhxAPclrqsrFiW8qNZ6y`R9MjP(^rIEp?x7a zR#=?B#N%6nC~3pcN$4aKJP|qIIlYN7JWT=5=uIGt7sEu>D4Jl)^f6ceAQi6bB_XvU z&0XQ;(pNees2h;88$}6f_N$?y0<9ukGR+ECSpEg}e?K85LRaC7Abu0jzs0*?UHuDc CE+9t$ literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class b/bin/main/de/oaa/xxx/games/common/entity/AufgabenGruppeEntity.class index f1d78b377975a903be9149578e0a1d00c6e885da..bd4426d7a3c5cd2cff676c466d153634953d9213 100644 GIT binary patch literal 9562 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 literal 9208 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 diff --git a/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class b/bin/main/de/oaa/xxx/games/common/repository/AufgabenGruppeRepository.class index 12ad477546e703090da490e799cd60ce3d9578d1..87961e79202abc7eb971cb77b625a080ee18309b 100644 GIT binary patch delta 715 zcmew*`dy0a)W2Q(7#J8F8FV*tO<`d?F?l|Vi+5sKVrEWaQckL8o`S7HN~&IdVxnF} zMTK5^Vs2`&UUGhJZhoF#Vrg1>Vp3|Jo+CoJo|8+kZ@iT#MZ~8D&HnSQt2gQOm?2#=s4vxfvK4cz~FymY7G29wUW$0Qv@I;2_l&4Kq-(>yvz)OKnlc#7^#8J VNLNkL%>;T$3urnMgErKIIsk92uo3_O delta 271 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 diff --git a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaAufgabenGruppeController.class index 8c670c8356207a6df481ff9abb7119851a07715a..15a72528f1a4f65fe3a59ff9f03b7a1f4e5dfcb8 100644 GIT binary patch delta 2942 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 delta 14 VcmeC+>EPLLiG@*r^JNxOMgS$l1fKu^ diff --git a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaGameController$AbschliessenResponse.class b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaGameController$AbschliessenResponse.class index 105f898748b4cd02d842e8942cc71f70826cd2ea..8c52405267ffb1717082784098e0f047a4f47975 100644 GIT binary patch delta 14 VcmaFD`-FGHJXS`Z>7Z838S51t0(b delta 14 VcmaFD`-FGHJXS`7>7Z838Q71q1*9 diff --git a/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaGameController$ActiveTaskRequest.class b/bin/main/de/oaa/xxx/games/vanilla/controller/VanillaGameController$ActiveTaskRequest.class index 8dc6a683bf0bfcde2b4797493f0b7e41076e8235..d3bf5f430b2f8dbdd9b94f4b535c6d3f9ddd2bfd 100644 GIT binary patch delta 20 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 literal 24114 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

DbsuH>X$`nN{eIu$pOxBL`V{ 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 literal 30060 zcmd6Q31C#!)&Dv7C7DU`2r;ZdML<*tiBSYuf@nfmf@~5%!F7@hVIY}_GZQwYTI*6# zsi<|gb*tLCFGK=bal-{$t=+3FYFleRwX|B>YPEd7bMKosZ!#|-F8%+%wqfpj@7{CI zJ^MNLzSkH3v+ajORBin^K#FNZQ@An~3RSLMySB19-rm+0uAHfVrp2Pkc&w!*91lQH4%DB4^(zhPy#G0BuSXa3BY(-$(8%!$RDD-$it$E~cK6Kie`$Ez^FKwB7Y zizOn-SbQB*<(%xv;_h>2-t+(fDQS%)n_D8`ru1E=iM;_6%^nGO`-P&*fp=Wr8y3wqGLb6y}G7^h=fgRm5u*I!^=V^LSz@7(Yieazu>`te8p3E7Qr9C~5%0#h? zru00tTb1w*>z(9#NBBv(@AH&Uk6uzh7FF0(Mngr~Ds2i-P+CXYlurfHI?AR(vZXcN zran|8tqC^urDADKvS~jmkye#W{iwgRjd#z2zs;1(**%pS+Y!4@r8cbCIBw?XV^|T0PI37;KT2_bWuB&Te8siY!mv`D~YHBTBTvrPy zOX#Ekod`Rrjc=DV`*78!rL;_B2jpr8u_lhHb1d(^$BwLtHLa^@kF+!)NGhaL=(GTx z3I*xq)ZXDXola+f<_!W(*4%3(FmVGl1*nm!;&Vl0Hic<9)6nG*f|_;nAo-$TA^3}E zb6s;Z77tGgCBXlYK7u~Fi>JQ;?x zAL$+J>FkA(DJi1on{B#+u4GcNRd6v52v1J)xhy+F)=JD0GziCQz~qY=(4GQD)^zYO zMDSj%+E^8P$e@V{A{i$Zh0pRl)Vz}*Q0HfLO)x!0EgAfl7%!8iAQ>!Udke&OU}mtl zt}PYtP4bM9Is6<50&MYtMi3n5CQf8T*4Xs?dNI;zvZoUm?R8kXk9jP<2N)I$x!1eOs0d{0Nt5kWn@;NKjLAgT1O6ic+`7~%Czn)0OO@h zZ`UdW&aITC6wd9>$u{O)QXO%oBfP4n`Q=qIEtDmQ03Q|u z@(5zHUKtQC2tR|7Lmf6fN?RqygF#~&=5JLO#KTRIM#zgc6WeUsPLDz6mq%I<;32g1 z;_l9q9^^$M(_EAwXS%S2^5|ldb{WZMTI7Z3k=`#UJ!}38VEyzsTT^l?&x$l{fXwtd z2wMSd=3Tnzs!HvNQN1#*aSXT;j0KyESws<%JvpMz*$41z56mp1*1ehpcT#izGO&~#|`)bbJ#`q_xkCmBvj^<#@ozo$RI z?nMz^Gxbl|J#UOrKyTAK0s0f-1Fb5aXEyzr{s$36BvFIA2y;+pS|%#+o=xx5UziFS zLa3(dGzv-h=THJ~<`SU4q5_reWqiVf0@_0r1#|~}Xw%>6BOnkDMVn%+#s_D{)Y_iP zfPdQbFZvj1T_T(`G!uK$&#V2$6QTID zA~mU8yur$5O9tBw;Y8z#csSC4(j}aM0#_J!3bE@BkhZ;DM|>hXKffg4DKcwZfQvhM`~=ICejuFIYgWbc{NG_CKDD z7n^5s9heh|E{}C_z>d_PY~pFJOA)>^A8+#V?QKmSAAD(+W%2=;wUEUg7+_Ob$QhJR<&jD51K z-mn+|Sjj&@`KJX=f>Goekm2WRVzHKRC<+4<<1+({D$agsNAEneIW7yg8%*CNQhE(C z7Cgeou)xfORwdg*EhzSe<4Lg~t8HGxsBh&qg&W$N)47r-m~d3vYb*S$M=$l(Pu$&d z2Eui)%0qrPen+Lo=eD0%`DwYN$97Y=1qFY@9H!;naQVxma8Bl~DYYaPY0{;O3B3+H zYc+x>SLi}|A%C5}5#aN%U6Sq3JiC}?LD^f$HlHtf{0NhYnO=2G^W(^2YSy`-KrLb# z)L{8Sn=j&T!ofw5GE2n`rJ|HDYQe8_?pGD^M!qz_sN#7twA53ZFB6^1iH6rE1B_ao zPiZ-WK`Fea>(WvIZ{p21Um+5l7BkIDhei z(-+LIUsTAq^Bn>H9z2={X0P@DZN8K5LMUfMW>F{(7A!)EusYggF0$pPI)VLzagHu! z8x4=m^r){c7X|nSh)uFlbi~8moHvpotGdVLd-*;%dBepn@w{WxM=ucpeZb}iwL@4D zO3Z^SiZVTH^CKbz#VH|3=|mxS@WTOq6q%3*on~_m#-nLkXnYTWNIdtj#Kqfe-YzH> zq~@q=3i9LF4)C|e&Eb}(JCJZ_Q~ZR4ZEKOG@sl<`C54LoXiOp=Pz3D;eaIx-3}3|! z{>Nw>(q&4Ep&tyO)eu4YRN$VJ5I{%`%e+B~BPI@@E<6B?>MmT|rvc8?Z*35JtZ(*= zz|^V$|0tCiWm{?(o|TBOnayxS80e9M9|$H zK?&88Jv0&JpWFNk{w1z~oy9eX^I=C2;Dd6t|0iZS!y3tT>#2 zyh(~vB%1hJn|~*h56X00?z{nh1Ja+(PDf_DDyb3w0^ZGU+5CG(0ww2XurZ)_Z4ZWz z%LY|#&WD*!Rr&ljzY}28Sq|DqSDXLL2*wJk7uVM>nm%j#yjpC$?Grw5lT>&&zi;zj z#6U@|?x2877*CP$?&it@{(%1;;17Ls?Vg0$=8q(C%#Vgp+K9l~2)KXR{4c3h$Yk@p z4?eN^-;%EuX)Kz1wia;!z>_0a1Q@rkGzzV+puuWCTa_r(mr7H9$VYv9k>@N4ssY_PuhrqW95@rw7J$lg!*Zr9 z!E{qMW+B^N_kO1}+h?RLO?opiJO1z{Epp&R5`jL3R;>nKq1F&v?Ju!%QKrc$p&&h+ z$t|-V_r>OhuEoQxF&t0PGcz@HL#TAnWaQ+_5Dx2I{r_MZUoSH-gV2>{wd=ja4G7>& zE2u`|#EQSEgy*}N@>%H zIG{LJcEhMI!~bl>$+p%~mg{O`Q2cY$rO41#f&`f11WdUaXRGlFHaOcwr@R98f7420 zYAD(BX1ZB#tl;b?=ZpH~06h@LoBkUu%m&!~LZI77tK(2Uhup5bq}Ek=7Fu;p8!DZC zD2eDBSTF5F2%wI&)p6q8^Jh+~-Y9Np$23p;T1;fP^VoZTGy{F9BtD6unlK$64S7Yiri$0!|ks? zP_@CH6T?A5(T{=pq%kI{bmpyWlo?B?fI3R3P%XCA5_KZ z0Y!5)0b#~wdzq>M--u%mwk2I*Pido_*fB|qVxjv zffyL9xUCXmum%_hZ`2DJg)vtpR3wI`@0v(*MN>Sq#?`WZnWj&luPLFvYOSr-sr90s zjg4U`SvK}c;<8L)n(<~I)6>BfDo8Atk8`4^X{)nswLyIivKU#8<13OjVgJfk7Tsa; ze!*$pE?vp1r=FUj4(W)hYbfHgUpQ6HaPldI>O6IRKz#%8ReD(fWUC9*g>u*qBDr5i zMG+6H0tz)pQ`Oc}%?c$};C_L+h$>LCQJ2{2QgxYg*wh?rbW4}%oD@QsaXv}A53l;^ z8zoe%z9pQy92u0CB7%swcQ);@LUo0$t`yn_mgB4j5~c$6ZFNmRT@3~Hc%pV#ZvB2p zy?GnNR@bWQV4y^&kYkJF$%eb(w6DGN1Lj2h1?mP>8&Eeg4e7pD3C_{4$CiQmu9yUr z76)Qm+03U6L26e48A-EqhEQVQ+iZ2a`X01E8;CS*eK*`^3qkI*)m`fQaL|d!dcRA|x_$42Mlb-JX}&Vwz+J`vXL8s$_J7HkQ% zHZ+As9;x?n(`wmWKn8n~b-vTDK9WIxSlrY+W4oM;6UFk$lrx9#v%}~*Va)Tkx`jTH z){C~~R{If{BpEE=nvrhhU|t&T>tBwHbV^`A@vz&N&`qjN~uM^dB% zD!wTyAH}rP&);NluWPp9$Ht5SDHDSe3rLhwbHQh(niJB^iA)XI`r$E2#;{cSP0;J} zb{@H!gu?R|SaDk5jjQ>6s&edv8PQeYCfDJ-MHNBywuCn6Lnu5_y<@9COH|$mh9Z4D zMFj3$TfHX&XSKB_gK7khdMMPQa3U&Kzc4G;AK2@$>gPl_&BYX>v#+Et9MhbW= zy%kjd#5gI?%6Sn1_OY!#5wVw?Q7YB?9Etjrb_UdEnP*;HAC%r`Dxm=iyK&=K%wpA=o z#W{FOqgIJ+^%E8p;X!pYT^hBNH2{9Y8i*G$vh^Y@h8{nnS>U<;yne+n(#Ke6htZDO zy_ZX_L^urba1=Hh=V`O)ouRu~)&y@pxiSHJ^aUWyE}?<69{al1LAEu_8V+Wd;9Ltu zsJX7G4&|NH;bBd#X>xi?zekf1uIb)Yc`Ki0UaIlMlG{%Lf_9+7^(IAt-ad=HL+_;ERm*w5!Fo`ILh zmCQ>j9`LXw(|h2AV-r*6IFk`wBH0v$$ASd4UkavU20ds(ys^LixtZe8kg?->UTIeb z`7G5ztAO98x6-&B2@YjtGG0`>>iy^?L2Ekvirkkogh6X2Bv!5*^XGvLC!g`+L^r`) zhMh=Zj%kjUT>+h6n6tM9^|AJNV|WHkE%I=~+;lbOa8WNgLF9Lo-tUk$Ua>_0occHg zT-4_os>>T#kMqK6(D~*CWWN~MQ8Iy#IkcJAgcAi;y|p-CEkcH=Er1rhNOW~<6<$-) z(KR}TmOC%#TT84Hb*%2*VtUE(2;Pwf_^eR0sU@5kIVTod)s9FxJwdiJcBV7~W{*oqZcaVr_H;K)2h5rcZdw%RQu zAc1HsIO2c4YNpKGh%>eZi<#`*$V{Z8!$*5~6L z>t0XftHVBTP*)XO7dZ%_%=3nN6BBJLR&P4@F1IbR827$aY_X6AEc&)>m0Clv@~eui zA>EL1cCmG>^u58h_O}ke`0IGwU`8mar;F8z#D{=l{lu@1%9 z?-yH#7V~`q?|$1l+^WPqQ_;wlK*thxXU&%sTMs&*w%FED);KKV5vk7jIL*=M{HTM= zcH5d{O-AQ!#nxo!-VWQUvZmnP6UEjPXKl~g)-l#p+(YB7Yj>Ekdiml_E z$zQgu8fzNv{TQW{45ns#i(>01fCO#7yjK}mgZU0l_gepR2ZvwV)-0M$uHrpH0)tI z^g&!G8ijxJ^rOM(B6kQ^Wi$pY3}YL=f=q4Mqf}ltW(yr&R=$OfD67~)W6Mf&w$Qk; z(%da{bXjTM7MfUA8rVXU%SwY=Xi8aW{uY{AR$8!yjw>rI+(I?!8IQ)-K!^^d96A!; z3K@%K9)%L(IDF@0JZ3$b4xtIaU?QGQLTfS|Lsc}5rf3Y;8+@pirUM2r)8v!I)yj8A z^a^U_yCa&+wesB&%p*^QjPl`tTKVpXCVj1ZcLd|*o)A;mP%GaZ0VHV&L4_r?^4$@@ zoPl;lp&lR|3h^fk>5ISp@YfH21MoKpf2H`_AAdMaK(jDy9omX!)A9H%!reLen|m^G zg67eD+{;(Eu>cLybUzK)3pVGLm3Pny^D3UBzWed!t+cq4PG)+b>=8PAOecjDbrNcY z{i(H+Viqot2Tsl@&Cz$a(K^Dd4bn;O=Ymxo^!3Sk&hxU0ZFGUtqcm?DeN)<(rg{fT z16%3x2Y^G4mJ-9W8KB!tP^ylGVKHOzI}S^lga0m~xpXoX(~RXLaJ3fK>uIs(*+R1x z(9!VhT)K+BjrC%EbTwTA!sMavwR9a;Jr1z0ryDTq9JFslD;Lnp=_dM)?v+R1#k~OC zjL~K2W%}RZ_P^Ebf1BI?cJ%)q`Ui`o@=5abL z$G^>VCO*cofm-Q2T%S)-&8%5wg)Xx;Y8JuVp@*TkDBzXB2kAIh&t%St@Lsy{gl!C#SU5`Dqv|97y=xL+VSsdP&V_p?;10*o%Sq!l>R0bV=H~oLH{VtF}*(NpwFbu zIL3#EXaqXAKsWkya51`b{|+8fnp4riL&X@ur0{S>CvNAFOCRM!C+C*t3Pe7vG#4Vx zWgT2mnv2edm*zgiM|SW8JQomE7<@!&ZYNL0;D_kYetc}+<76$hD(aVF;tsB^Uuq!K zcXF)-Gy4LJAk+k~W_R*Dg>M(6*t0|%->-ud=Yc)nfZ$&MW?V?sbP;UPH}Nv;#SpuV z5cx~+EtX5c#LLk0Te!NMuB6Qn-zy+3SJK@u3lGCSJpo?41$K?b3{wq(UDkfYC-6ee z+K*h;?r~T<3Ev{9=S2{POK2r8<|W{yup1xDGS;U!=-3}V0k<{7`9wY`#c*Dl5^!E7 zvaG#?5%B&NZny%@l$L?bm`*IyuCfYPCgEtdZ4#FOK^Nw9@X1;bjG#XtH%{9@dnV_V zjS;FhTrd9SO4r|%ckuF^R4P9ZAv`S2Gi?zRv?4pn*0&;%7hJDQU9W`L;Cj_gXUM7! zjzWO6$mAK3(OgeJwmP{zhY&~z0<$wroAEujV1c*7H{Xu0;(ZU1!W}SacfrH_fa2iU zd2|o>cQ2mYM-S5d;NF8CbGFOn+%8uscY%lNbiA-j^H5CtGn$7vnBh)d&u4)p$I_*m zo5q~kpuc%`w!_uI6!??|!>4>o2Lx!>r*u$&_8ic+Z;9q{A4`e_VYq=8=2!FNWWbn6a4D_WdQ!!#3h<>h-h)%u$F+$)@I;S+y$rm&2 z;7te>@;dnP$w73TQX1^!D`6%dp^4JGRyU89<_)?zS(@L`&8hwP7P-33qRIKC`37|1 zoiwDh&;kAZ$prv3wX~pqu-X)VC8xVLOeW$KbObM@+T@Va1cwLQf%Fd78ckK3z=D zLiKkdz<3^p-~|ZN^AMyL@qvq7^eTQ|NB_6!$MjcvnLeRcIEQ}1MR;vvfBKmgwdE2l z^2n5^q2<_rw45-9hdM@L1S>6IIl$r-ep-h)E!4)(@Uy@*f$wAOgzpGq{tA8$PxFCA zAwSPAV2+!i=fmKW42-iO7a9h?2$9tNc^CSN$w`QCO2A`;v;SVirojL)?gaQH`ImMD zU=Rbmk!UY1BRl(HfH&c>?(1|MxEJ8N1(S-cTxZ5V=9gXD_DV|T;mjP{#y`l;9p%QhVDAo(22aib{*XS=^Lwiy$%sZ zD6D%9li$;J@a_(N^CAA@9hpP7^KQ7lcP9r+gWC1IR~m%h+*2A9d-m7TVEIlGQ}{RN zF}&(O&`TWP$E87l>fldhM(B)!LDG&;u{MbiYUA@9kL~zZ9i40c8o(qKr2(1b@Y29T z$`a=q@Hkg!RLZ$3*jA$`UYH=T3Gvq>TO{x$0KYOA-?JD=Z^F#J1rzuOI)VO(xbjbk z8vhKb`X9K@cOl8|(=GHDM9zC4cYj5^^fyT92hffW>6iHG!|&-M-1!H6M*reGyys9v zpKyQrH}vIGKA1k^G4vmvKzs30s^q7H7*zD<1Xq7faP{W|K0yV=RO6{=5==GEPMK=1 zNSSJUVnH0Q=+8!#5Az)Wey6AcRY*Z#aJ;hNj7{n=5YR^Ikz&Yof7J)iL~B-dHR*@J zq<;!Ipj~?r@a3m;ogzDRE zw0jd+DM9FjZk@ytV=6jTv8C;%>hEJWO{_Z*R3Q%H1G4!vkPB%zN&$y+AI&Ed=T1oR z2`PFi&Yh65b4cAyIw$nZO1oUspa!N_ss_2H!A*|U;BHs?K7;@$(y|^`YP1}_Fe99S zuECF}Qa4XiD42LMWjN4`_~TG*dHRDGs1oo%I*bR=QCvzjJcQ=*p|lX~MSPeh&NzdW zOPpmcahAEnS>zB$L{+lc9J(1Rk=R1tQ3v9V5H6pv-7n_*fGne`hN^=wQyqFKH7rFr zb^{4D+}Eg@*intZFiDPn3Iv3Rr*&&oeZxUbzw)#g9c*Iu(i{ZsqU0CB7*6I5B}5+pXfi z=P3T-ZWOkaM4Gi( z(f6F_40ijtR7D{>;*r7o2zs*hW46@Lxf%Mg0{RhweypO&+(O55E38lyU*(M<_HLug z@R^NUQJuY;lQ=5gPMy4(p5`_9%*a}lhSt$;K3lWhls4aS+5V2p_IK12$6~$X>d>2x z4o#-})C{ddi|I-opX4Eh9p{NpM6Yx&L?uSA22hTxS0>ZEQUZ>20D<|OYJ!^SCnO%{ zFsnC0ax8>IN(!6)YeG`zCnR&SO`V#T=}e5NGa7mUSa~5>c@bE7F<7|~th@xQycDdw z46NKl7x1?LQm_i(FPsa#(dUsA3p|XD)-hhEEve&zc44 zLbE!-$M7xGj(HngojB%My(%(NeyLKJ^{{^mxUAqC4yP1x~^>KWQrj`lvX1Uawr70t2;2KRCDFX-93KfAl7PFrj z@lzcv;1mZE6h)^y(~cna4Fr`@|`K$E0 z5hc;ov)gb_R1t-gKHB&|3va}=l8@!%Uy1nZ@hc-s#ym&4EE|b6V>;AT9qRgYAzg2x z;^0{x|4CzH<|=V9DsjZdnJX_fmqgl1KCb1=wF;QXT83-KUap<`Hg%KUW3jfX@5ufN z$50WzM+WLG7DJSGQR;e+`tkcTjNkPTWw?vNaCHmljk*C1cS2S1gZT=#Nk{!8U$rxM zpo(532^?Lk@xX3Gr@B>9jb@NsNeQ%5-NAIhgxpk@6t+Lm*s|UVdV6w!QQiqWM`h?X z7KN8Gbc1MaQ+JD8-m^{JpV2+IT|KZ=y5X-HWPS*LThM+Dzgve7%thHI_^8^Rro7(6 z?DTeDa`7^k=|Ik(V zl}d_nb=SJ&x>o%Vp{tPVT1U}~P$79jiSa&|+SLxUa$(q)s3)=U5x_QWy?P3*pq8g0 z#Cz#X3h25A3LSUku>PXiQacfgH_p0G$m$xfqQD2p#G<{JqerUb0Z29xxA9Lp_H-_l^|5D>~FGX^|?@ zGPnS7-wD_cU8rX@&aGVi3}r>3N;yA+mO`H)>KE#l7;y*%)UVLW!IE&0%fX}$eMEZ( zfd7XBk=OKwijj^zT^AVgEO3CkzyU~}mJkChPGt3tQq3Mfew4y7uCI_%5l~?z*1zft zPzr~~989J<%r7v^cifei|LZ)fDsahD;P79``7j68(+;eYx2v~cTK_P&yr23bsQ;%< z^*`8C#?||{`ipzD2UmaVP#?KB{(&3+GFM>Sai;UXwPF5`DDGL>EE`WURAOF~D1&?e zJjsD55)P&Dd=O3JVYHM-YNU;cKG{Y3WW!UaOTEWLi}%!b)Lv4>N)ES~1#tz;kr>9~ z9c-p`Dqy3EbO{kDDJ9hrf_Tp@1(qbR=#tE-IN?gk0Si-_o&rBZA0`f zHJ=EdauTAQr3eC+A<{XSX5w0GgF*gy7y09%1%*It03B@&vIaxG#jbCpoW0mVwM6Gp ztW-FL5u^e5AJpIc4~z0X&g=3R=3y^VXb%A29`IJ_DFWFr0H(M=&Hx(H!7_nRz^}Lr zJVwdn4hrOe6qe|_VPKv-M^Gzk6&8q95|typu3S<@$3gq#sGtM#Nr03P#Bm5vYHXmVz@i8zr8V0+ zOk_W$y4GmX0{03Iz$$XD#)#~@Y7Kjgp0dGRzRjxeSL?^1){jH2e+Z^LL1TFbJnNJA z{@PO-W1|@-xfq}1XhskRv(k~5QES|B)EZ|*oz<)Y^F@$GV6)Y15DgK6K|+o&`;^v^ zV-PT4ms^g)c>~v1r~tcQ{rOeY+09;}q234=mk}Bl!+gYd!@+W#D0L=o05F+&@EB|C z4!UFRn4Gc3Iil1r7BYSE&cs*0L(aS#viSxL;x|1@A8d`cjt0yC6^FeC!$#Wx+o!Hy0jfKdib74%KByNVSyZLb)b&LuRsk7RG9BB{uH55TBU;q z6tKb(SZBOP@E!8|n}&})aEdiqGfYE)oS@A{iQnw7s=K1}i3e2BfC5T5ZR?Dm55|b% z99Y)Rs)c-Fe^2;DD)_3$1VJ*2UJP)@8c2 z$=YmPp<7p4S6kQU)^*m6)=j$g9qShBR^7VIy2H9tx9+m;w(ilbd#wkohji;u1(4bnBPaZ>-lXIbk&x zIpG^P|BX#hgyC%M#&0uz-vB+{w0>{>5l0G6p(WPadHLA*Ut;|!FW-6xpZ1)QQ diff --git a/bin/main/de/oaa/xxx/gruppe/GruppenbeitragController.class b/bin/main/de/oaa/xxx/gruppe/GruppenbeitragController.class index e2602320cef5322db47564e3abf68a40056fb6be..824ef2ea6edb40345ca2ca942e92347aad1326d1 100644 GIT binary patch literal 26241 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 literal 26408 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 delta 34 qcmca8a8Y1`9UJ4b$@XkUlkM1eCfBm5GrpL-l+B3o<>nh~m5cz>`3x2S diff --git a/bin/main/de/oaa/xxx/location/LocationController$InboxSummaryDto.class b/bin/main/de/oaa/xxx/location/LocationController$InboxSummaryDto.class index ebb4f2f79c6ecae42c7e6ef3acb578d54b14cee7..3b45058ee56e6be03b7f2f7c70532789f8ba117b 100644 GIT binary patch delta 50 tcmZ1@xJGb;JlkYBcCN{qY?@#?21@s{X)->UypzocNWKA)o8{Si83Ar@4?zF` delta 50 ucmZ1@xJGb;JR9Sq$qH;nKr$Fiwy_yamS^Lce1uIMOn(Q{T$?r6TNnYI7!N-H diff --git a/bin/main/de/oaa/xxx/location/LocationController$ReplyRequest.class b/bin/main/de/oaa/xxx/location/LocationController$ReplyRequest.class index 251909f7cc7e33db14e0c61d6d42955a1d706fa3..e70d79892167af350949aa84c1bac1a14ec7dcbb 100644 GIT binary patch delta 14 VcmbQrJ(YVyJPYI7%?T`~i~uE?1djj! delta 14 VcmbQrJ(YVyJPYHS%?T`~i~uE+1dadz diff --git a/bin/main/de/oaa/xxx/location/LocationController.class b/bin/main/de/oaa/xxx/location/LocationController.class index 7334dca138f39d0892600f3c7fdace524745d896..a1cabf9d628de3945bd5e27637c033fbac106140 100644 GIT binary patch literal 38741 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 K1?pMx?EeE0Q63!t diff --git a/bin/main/de/oaa/xxx/mail/MailService.class b/bin/main/de/oaa/xxx/mail/MailService.class index e99e26663caaedcd4c457be895efacf131cc3054..a633150212a5be3fb5576d264801bc27098fe072 100644 GIT binary patch delta 1289 zcmYLI-BTM?6#v~_l3kLeVE7a$h4K|hLfT3#ln)#Es0a&|q!g^!F5wauLP9qSO=~sv zqqfz);2j^F@x>WueCbPDOA99K_bNDL^W z-VwZ}VN_gGy8WjRV^9)v3?1TkwZrej7$!7~OD3MNT91KAoEFcOkY0x=18-tloK>g1 zCgwEEif`2}^(~wczp3&5F~kidaGF6+aW`SRJne&t1q0_K!@eAM<2x%GJn2gJl7Y8z zUfe7To*cunfp=x1CKGwy)p3y+bV-Y@yIbj@*5tb7Q2xk{yA~Oc=_>}3SQUSk4Tjbj zjKzpaMB151!b<5_XYgmT5!WGR>`Y3=Zy4A_T9}@J`V2$WVkB;_L}IS%*eg3O&*|6} zUwfML6L1XlBPX7ELf#!**03x7_H+#9Wp~xo-Ap!Fy6{z#?#W7VKd$1MhW7|F>!hN& z^jiN$bS9fhaRPcD9|+TXo3#hVNrIRK)9#@J10cVN&OdI7{A^A{M3jPT)cjRye=|sUqxfU@MR%DFMQdaY;eh zUGqL_!bP}bUm^UvB?_l$4|ZNqQ#eKh0PWOY2l3KLe{L7e)J=T{F-WAuh?Z%h#Uv(X z5y5%%mFDZEX{p=)=36EzuM@odZ$89FG}SCBDgR^AB&j;sbC?Qs+am6(ejG|kk?&Azf%Csjf+f1uS;IM`x zILe^rO?zT#cHW$``BUa=QP9ue&17@tVtTo|P$)$5i&xB?8NFmWX#*OLV~{^^1-wxV zYZ!5WWe3pK^D0ooA??iA-3tksjO5S+h&FnOAU;q4t(R{(;`eM)7rBY1bcLqZB>T3^BQ0Zr>SS}N_I&#C z?)mniY$|2uG+af7Ps#TMX7W#RD}N$Xb3wVzZu4a&wj#jqESg?}4jBqbkxma(+H3_` zZ6uw~qq8+=FQ7joL%=3F-Q}w)c*`D;Rg2AZ=cM(K6iBMU*YE{Hui*cmw}DCkHIN8p z#Y5>1K<%G!G@y|zN-TH7u!VFNt%C%S#@4_1UkSrONd{lSzm9DT!{O)H5h@|FhFvA> z3zK@Ngx;{;M-DMw!ZF7+q>q*`7S^ZqlO>!A>nrE<3#2$G;dLYhNUOuop@&PjM7Bjm zR?93$F-D^o%e>>zsB#^(=!XyW)Kde!>qc}?vj?fiqvRRIHp(zCj%HlI_A=|zH9(T{7$5w&qtArG6hB??u*zGFm@ z1S@!hFDky$crTavn4X<4>yrmEkRSr+_I-e(c^~KZ(KJf?(=9ppg>of_);zjJoqD`T{i?TzgA;JQ;r{ru!@G%q?4g14&Gy_y7O^ delta 946 zcmZXQ%TE(g6vn?hopziu6ak^70s%o<3W7WeLV1;kS}at{Lj?s#Iu@|B+LcWBt2$Zey9p=V~OGHQYw=)hBu?y zlD4w0r9-h`GB&lT8`|20rt4~4qkB|SV?iUNPi7Jch7(8o3d}W*+o2&YfhLo0ETJaj zt>IKMu3#A}4AQ!q$Y>FYmwLyurSd*2u*1N*gpAqWWzp>K0XF!kSZ|?m^3QgaMY4Sb zWdif_XyIFy&K5h$S;Gc{9M_B~EolS|)8geZ>@$dIVzlEq-YIxbHWNiYww&E48nO+( zfJh(E?R$l?rX8Hxfp>z=#m$!E_Fc5>q0@pr^fLHfV+eE{73eq4FnMMdll(`Sd#e(s zQHusNqXTWILpwU*B2Qo585MBTjcQ;TGhk5AgjrmLKrgMhhU>6kj^YZ%^2$6ZCrPm~ zN&(3?P(^0dbQW+EHMBcOt);avzXhga5rrhiD9=KB^?%)nd$?u6E@A||O)msEb0+5N z9;zH5#@-xtP2S;HU7z=TpSk|$2Y3Ds z-~#@vAtP|QA`RCxjg5^B!*|P;X&VdWRapsbS($SKt7?_az;c}h>8)F3sUa)Scf(va z4cl~9jQQmovK$EPuSwrGSL790cYP~xy-k5fORcuO=D9I@uSP*2=le48B=B$>{e|W^ zr901Cjukv1@bqvS(Oq4&kx!W(SrW(=-HObi13fzSVxK_A@W|3$Fnb+)(5Y5=9U8g> zdP|lg=fc{u^cKx!Tk@pjmQ8!f^epw9Y-WR1%Wn_MZjdw4zF8Tpx|OF)&#cKndbDz| z9{Q_Op-k6^+x=HUC$MUA$?`3FzTh}+5Y>-o6D8MMG5oq`IV)9V>89(g8Gc-C?iprN zdbZnEt*$HS z2^}BBSvIvFc+#w;FpG5KU1K3SEaX{)$90?o%d^L<*KHaaYG546S3{?)=GM5BEQs^R z@uUWh%fNO>iP@rS+ni(9^L2az7g+NZ&kgHrib+~7B#7)_IGy~x_6S4~7d1>Z8l^QE z9hdM)B2tcH;DDsvwHQpirP!ySVOpSPJE>W-p67UeN=FH^MAR&oWt}8-qa95&E1#aE zgo6tARq!U%lUC7n{IDiHrhOUnI-bJQ%&h8q7tQjjz|nMO?bHwnj%K zB+2x}f)S!o(+M29n|C(r4emL2kL>w21SrWI!DfS(FGf#=C)i;<3xQc)BdQ6Jb=hWZ zxndq?cb{tqXna{`aFz9-t5(D4O4%V<_)a7C7-wJyEs3c2>K zzK=``2%>b~p$RlHdQ9N_{~G@Y@5s$Pm=;Es6em@6tboNHD7)n1s}85R(n{3h=~hTt zYbDac$c*BL8#>ltv-V7%b`vtG#JNPc6 zQ}0lLvpbX`3MPT8H9R${ouME1V0sjj4(v*9M0|~P#-Oq*XVldoBC51;((Qs9dS!XZ zQkRD#yHV0cel8_M1A&sPt-hL*UpB&9}|!BUJl6XLZ_fq*t^}UXgtbe-t>;QoVLH z(C{v=(z}bYMdO0u2*c~(jz~#}gJD35sFqeS}JsX97G|KlOKJ_!-0R}qAupj0Pb%MgRI|k_#u0#fk7;#Fv#LZ)XCt-QFT>nKjHI>{5{0opHbp< Z{0hI0R=>sX@D>vT@fG+3-oc;H|6iHJA7=mn literal 0 HcmV?d00001 diff --git a/bin/main/de/oaa/xxx/social/SystemMessageService.class b/bin/main/de/oaa/xxx/social/SystemMessageService.class index 6f47d2a3f9803dd79f505bec2a625752125e4e56..3a22d5f88ddd013163814673d8174b5203daf20d 100644 GIT binary patch delta 2098 zcmZuyX>e0j6#h<=zL&hdH0f*F^rf^FskBXs1q6hG#aap?-RMH8Y=-tVw3JkvRIM`_ zK^=cM`osIf(O-^?6UP}H3QQ>C;HXe{SzJIx#eLs*#pT>biZhNs-aX$r=iYPf`R=** zjW0dfpgsTBV+R4$)7EiqlU7#TJ3Jaobj3!jNZ+zit7SMb&_B={Nem3f;)H5(G$$ZB z-TpnhwEG=-p12k3>*(EL^^Fc$eT3U>_lcZ}yZx#-o?RhY++~%=b-aQdgxt85I5)RG zLCA?ut(2O{lljXnRo>9?5Z)9cxxJxxbeMRT;H<1#w^BnJ-qZ0uJ|L*WBYgw0$PmF% zS+&xIk3^f-pVwlITIV$m#D*e$qp_$9pNMjAm_B1)Iej5Uy*2cec+gu#--sjLYWhx` z@rLLJQQ@0MKZ*6e64#ITMMoum72AC^^t%}M1$<}Z4uUfEUpoFKh?BlW#gwI!1DynS zV{>EsipG|P9yi)3TPHs4xcNswrT}ox*C!<^m&~%;77iIZH%gS}U zg;N>@Xr@jTxSrr*k~;?y){tCZrBjH?IA7FCv_!U9ZV*-L$cJB}3u(4WHG~;rj&lY_ zpF?xS&ipY>eXU0G>0*@@5Q^F97j^y|Wg+jQvPp~^1NaIA!Ry-bwS~*lt4Jutm@C}bdYvM!w^9F00hNDqyM5krcxaVho9x1D-L#1}% zDXegGQkS^6@N`uh!CzU`G#I%yQZp2ZMQd6&4_dv6#XjoRc>h=G>reD#e{fX@QS=3Hr)d%o=GJip1kqT&1XZHxP0T5K6`Ug#l4s zlpyz>dy7nRXF){{IFdMEuB9>I4|X{wFeV0ro#(-=0@>NG}7bygaq(leGu(o~&k++wO`b{e;{P}p|NbWTEJ zg467{nZGWuk_#luKNW7@9GR z9$d|{ud(TDKfC2AIypjyPDYZ>B=gBI!zZH*pN!7(DZQ`aHRdybR+~jta>u9S@Zb!t zknBnVP33?uzdE6&zbza0YWf#u?%BA7P4H#l{d0n&IjGjvIFa}iRD#X`8Jj@T!$OTBiyCalit7i z-jPaPIe4&24o&Bft^UX6)8rd-mJn|1ESp3n6rLbM9z~Yj>WWQMtxYqN?8}m`PiD_&M$Ei#?bw0J*V>cqI6x{m+ZON3HZKe(J$aR0e6pDw4BoVo!9T|uiD$@X_6 z>lf6kv?L!+YLfe>W)!gG3aEvTyp=IG3ax>I*3vrKV53d6nfl0LpL|^VX$uX){0HHv Buh9Si delta 1632 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 le6DrqBr~los28q$@Z6fZ-!t zyEV}dFn)^PV7x7lKwR9JIrp6VIGI=fPcZoP`~C?4X`pXGzYvSo&91@ij8j&u2IFO? z!_tO20J3Tm*z3=dXgIIgJekNhm7XGYxu%O=fwgRKgO9)>EP)RK_*Vif!wTMWKp=#%YC{;-FcA_Etq(FTIebQ79?5`!1ppBY M0XDodI&8Q32TTc)k^lez delta 48 zcmaFEwVaLX)W2Q(7#J8F8N@bnu`x~NVA;*cJoyNVrw{`ZgD_Bni9v*c6HJQ&07z&F AX8-^I diff --git a/bin/main/de/oaa/xxx/social/repository/MessageRepository.class b/bin/main/de/oaa/xxx/social/repository/MessageRepository.class index 9334187f3afe3203d922ef0c6ef659215eeebcbc..d4efe12816ed08fff1ebff36d6a20b0211be99a7 100644 GIT binary patch delta 648 zcmb7>O-lk%6o${eGg0PDnHfg)@?*GmuIYfj`0E5YZ-R z7ww{5P^(taBIs8H{f6kMiD_+G95^5Mea?Bgx4wsw*5}XrM*z?udfWQoWG1>;H-1R# za)?3kyEtZVc&hA7YB62-Go#tWo@wOMrlIA;%9e<2N26k6Q`8T_5fQZP!y$ZE;{D!) zowst^)`7We=y@|{=Tga3VmFtvtt^9)@|qXbBd;>J!Ks!IJ}Ew2YV%;Rr78N~jSRYy zDa(kNhv_3)wpG2Bf$m33>cv9SFt@6yANN^+U6DT@PPBQ~8qICQD+Wv6|8yvRPo_mM zd0=Po)zQ_=KrZEXXR4bs_3pa;f){!uVBn%qvk td)We>yT{lfj(7BRE|nPrKg=!TrQ0jW&oT)ID`McVLK%nE@-ZCNz5tkgi$wqc delta 328 zcmdn1vr&!f)W2Q(7#J8F8QeE=?d6_q#4a@Pm@QM8#>8!2ld~Ch8Rt#T=U1C7&u20@ zkT*EOAUVG@uf(Y`C^b1Xvn;j9GsQ74CAhMne0()40v;4MbhwOL$1h>4MBvzE|IrZ7Gx21W(}Am%M* zumZYG1c*7Az)WEV1{OvJYX%#jERwJ-SlEuio`IQx8>m_sNNWOVEg&g50oJ6e|8FH}6#BNR(Il!&U$Hc(M zD9XUdaJraLjDdkc9Edv@m>8IWw4u&%27W=ti8~n1?qs;g$gp9ulY&YlGlK$9PK<#S zNTxCfFr+a^F{CpnF=Q|p0NIK_Q3Z%@1``HTAP;B`qZp$)&V a0R}T5gOdqt^R3NG6yz8g(;V8oLMpNV delta 170 zcmZ4IdfsKjWnn>U4WF#UvPAvTlFS_a&`?j8$pTy|lXtUl3I=19@nu!qJX7QVw=@qU z10$m-10%!fVn#6raRvs4L36#TeCrhM57`tc;9eo0%2m7#Y(hD=GB=0HK*5TmS$7 diff --git a/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class b/bin/main/de/oaa/xxx/user/UserController$LocationFilterRequest.class index b4e9d51ee27c5583da7573d28241f7530879e3ba..935520270edaa33c5fa74c3efa4225a1d9c7233f 100644 GIT binary patch delta 32 hcmbQvKb?QW6jnz5$x~U4faD1<`5Q!T)?>?L1OT1x2;Bex delta 32 hcmbQvKb?QW6jnyQ$x~U4faD1<`5Q!T)?>?L1OT0~2-yGt diff --git a/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class b/bin/main/de/oaa/xxx/user/UserController$NewMemberDto.class index 8f40b45ac0b89b5e751da7af177974c61b90a6d8..c54e7c70efd8c7ba2349c669708fc069c6c4827d 100644 GIT binary patch delta 76 zcmca3bVq1|E8FCIY&??#+0?;w3zXgtq*t+XO@6_q38I-98F(iLvWreOW)}pD`>|^> R{+L|BZp8Rw^J?~ui~#3J84dsd delta 72 zcmca3bVq1|D;wk2$!=^$K(Z1{u3U7=1HMezYgf2azTN6Gf=~0&Jn&$@j zq*+EEF>bPkeyX^|Zfl4G@sPWXLa!<$Tr1TJ*yDkRKRx?^23RKx_wR+{L)6|wVmI| z*txm2fBa*?uYXm}Kdm>Z($F?D?X-Ly@cluH2Aj^WqGW}_R-j@l)H*BDR$Hk?zxKCpw3N51 z;GJrDuibpqUOuUTj1Ia!%xAUoMO}OiGR;wzO)A8c^7*C$zB|zmkN;E|(^|tXZDb}9 zJvP1Kw>$p$^{-0#r&Y|V+@uYLHd&6g`F@Ax25XNOQYMsr~W(%pt!rJcEItvHSV_Ehe09tuP diff --git a/bin/main/de/oaa/xxx/util/BaseController.class b/bin/main/de/oaa/xxx/util/BaseController.class new file mode 100644 index 0000000000000000000000000000000000000000..8b3505f7e75a3b2ca745a93d91e3ba706f003310 GIT binary patch literal 865 zcmaJ}*s16()*_ z55AiCql|Z#q7bAH^Ks{%d(QosU%$Wq0PqS=ZR7~+L+M3Ac$3M*ONL>+)SfncU@SW)dqYCA-p)D@OFz-doOt_Mg}xezpw&3{ zWS#5v_TIEgxQk^Q_Xw*qdg5ROtC`HFL}{6Ji|~Aw%>T&VhK93Y$u&H%u})aI8RcLD zn}p(lG^tuzmRrA;Jp)D;wGozYESpg28sUHJh|#p&rEZjHU+$`OAh)l6qGxIMtWBO_ zo_`);F&!k|aAktuelles Bild – neues wählen zum Ersetzen -

@@ -1269,7 +1271,7 @@ function openGruppeModal(editId) { document.getElementById('gName').value = g.name || ''; document.getElementById('gVon').value = g.von || ''; document.getElementById('gDesc').value = g.beschreibung || ''; - document.getElementById('gVanilla').checked = g.vanillaAvailable || false; + document.getElementById('gAvailableIn').value = g.availableIn || 'BDSM_ONLY'; const imgWrap = document.getElementById('gCurrentImgWrap'); if (g.bild) { document.getElementById('gCurrentImg').src = 'data:image/png;base64,' + g.bild; imgWrap.style.display = 'flex'; } else imgWrap.style.display = 'none'; @@ -1278,7 +1280,7 @@ function openGruppeModal(editId) { document.getElementById('gName').value = ''; document.getElementById('gVon').value = ''; document.getElementById('gDesc').value = ''; - document.getElementById('gVanilla').checked = false; + document.getElementById('gAvailableIn').value = 'BDSM_ONLY'; document.getElementById('gCurrentImgWrap').style.display = 'none'; } gruppeModal.classList.add('open'); @@ -1357,7 +1359,7 @@ gruppeModalSave.addEventListener('click', async () => { let bildBase64 = null; const fi = document.getElementById('gBild'); if (fi.files.length > 0) bildBase64 = await toBase64(fi.files[0]); - const payload = { name, von: document.getElementById('gVon').value.trim() || null, beschreibung: document.getElementById('gDesc').value.trim() || null, vanillaAvailable: document.getElementById('gVanilla').checked, bild: bildBase64 }; + const payload = { name, von: document.getElementById('gVon').value.trim() || null, beschreibung: document.getElementById('gDesc').value.trim() || null, availableIn: document.getElementById('gAvailableIn').value, bild: bildBase64 }; const isEdit = currentEditGruppeId != null; fetch(isEdit ? `/admin/aufgabengruppen/${currentEditGruppeId}` : '/admin/aufgabengruppen', { method: isEdit ? 'PUT' : 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(payload) diff --git a/bin/main/static/games/aufgaben/aufgaben.html b/bin/main/static/games/aufgaben/aufgaben.html new file mode 100644 index 0000000..5085716 --- /dev/null +++ b/bin/main/static/games/aufgaben/aufgaben.html @@ -0,0 +1,1796 @@ + + + + + + + Aufgabenverwaltung – xXx Sphere + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+

Meine Aufgabengruppen

+
+ + + + +
+
+
+
Wird geladen…
+
+ +
+ + +
+
+

Abonnierte Aufgabengruppen

+
+ + +
+
+
+
Wird geladen…
+
+ +
+ + +
+
+

System-Aufgabengruppen

+
+ +
+
+
+
Wird geladen…
+
+ +
+ +
+
+ + + + + + diff --git a/bin/main/static/games/aufgaben/entdecken.html b/bin/main/static/games/aufgaben/entdecken.html new file mode 100644 index 0000000..9ca94d1 --- /dev/null +++ b/bin/main/static/games/aufgaben/entdecken.html @@ -0,0 +1,485 @@ + + + + + + + Entdecken – xXx Sphere + + + + + + +
+
+ +
Wird geladen…
+
+ +
+
+ + + + + + diff --git a/bin/main/static/games/aufgaben/toys.html b/bin/main/static/games/aufgaben/toys.html new file mode 100644 index 0000000..a2b3e67 --- /dev/null +++ b/bin/main/static/games/aufgaben/toys.html @@ -0,0 +1,642 @@ + + + + + + + Toys – xXx Sphere + + + + + + + + + +
+
+ + +
+
+

Meine Toys

+
+ + + +
+
+
+
+ +
+
+ + +
+
+

System-Toys

+
+ +
+
+
+
+ +
+
+ +
+
+ + + + + + diff --git a/bin/main/static/games/bdsm/aufgaben.html b/bin/main/static/games/bdsm/aufgaben.html index c37af00..3e25004 100644 --- a/bin/main/static/games/bdsm/aufgaben.html +++ b/bin/main/static/games/bdsm/aufgaben.html @@ -3,6 +3,7 @@ + Aufgaben – BDSM – xXx Sphere @@ -96,6 +97,7 @@ .gruppe-badge-private { background: rgba(233,69,96,0.15); color: var(--color-primary); } .gruppe-badge-public { background: rgba(46,204,113,0.15); color: var(--color-success); } .gruppe-badge-vanilla { background: #e8f5e9; color: #2e7d32; border: 1px solid #a5d6a7; } + .gruppe-badge-chastity { background: rgba(155,89,182,0.15); color: #9b59b6; border: 1px solid rgba(155,89,182,0.4); } .gruppe-toggle { font-size: 0.75rem; color: var(--color-muted); flex-shrink: 0; transition: transform 0.2s; } .gruppe-card.open .gruppe-toggle { transform: rotate(90deg); } @@ -368,12 +370,14 @@ Gruppe veröffentlichen (für alle sichtbar) - +
+ + +
+ +
+
Simulation
+

Simuliert 100 Durchläufe mit der aktuellen Konfiguration und zeigt die erwartete Sperrdauer. Die Simulation basiert auf dem Idealfall, dass jede Karte sofort gezogen wird, sobald sie verfügbar ist – die tatsächliche Sperrdauer wird in der Praxis höher ausfallen.

+ + + +
+
+ + + + + + + + + + + + @@ -555,8 +839,14 @@ let editId = null; let editType = null; // 'CARDLOCK' | 'TIMELOCK' – beim Bearbeiten fest let isDirty = false; - let taskCtr = 0; let wheelCtr = 0; + + // ── Aufgaben-Sets ── + let _taskSets = []; + let _taskSetEditId = null; + let _taskSetTaskCtr = 0; + let _taskSetCallerType = null; // 'card' | 'timelock' | null + let _taskSetIsDirty = false; let pageNum = 0; let isLastPage = false; let isLoading = false; @@ -605,7 +895,7 @@ const type = currentModalType(); document.getElementById('sectionCardlock').style.display = type === 'CARDLOCK' ? '' : 'none'; document.getElementById('sectionTimelock').style.display = type === 'TIMELOCK' ? '' : 'none'; - updateTaskModeVisibility(); + document.getElementById('simSection').style.display = type === 'CARDLOCK' ? '' : 'none'; } // ── Karten-Grid ── @@ -767,46 +1057,316 @@ document.getElementById('rowPenaltyValue').style.display = needsVal ? '' : 'none'; } - // ── Aufgaben ── - function addTask(data) { - const id = ++taskCtr; - const titleVal = (data?.title||data?.text||'').replace(/"/g,'"'); - const descVal = (data?.description||'').replace(//g,'>'); + // ── Aufgaben-Sets: Seite ── + async function loadTaskSets() { + try { + const res = await fetch('/chastity/task-sets'); + if (!res.ok) return; + _taskSets = await res.json(); + renderTaskSetList(); + populateTaskSetSelects(); + } catch(e) { console.error(e); } + } + + function renderTaskSetList() { + const list = document.getElementById('taskSetList'); + list.innerHTML = ''; + if (!_taskSets.length) { document.getElementById('taskSetEmpty').style.display = ''; return; } + document.getElementById('taskSetEmpty').style.display = 'none'; + _taskSets.forEach(s => appendTaskSetCard(s)); + } + + function appendTaskSetCard(s) { + const list = document.getElementById('taskSetList'); + const card = document.createElement('div'); + card.className = 'template-card'; + card.style.cursor = 'pointer'; + const preview = s.tasks.length + ? s.tasks.slice(0,3).map(t => esc(t.title)).join(', ') + (s.tasks.length > 3 ? ' …' : '') + : 'Keine Aufgaben'; + card.innerHTML = ` +
+
+ 📋 +
+
+
${esc(s.name)}
+
${s.tasks.length} Aufgabe(n): ${preview}
+
+
+ +
+
`; + card.addEventListener('click', () => openTaskSetModal(s.id)); + list.appendChild(card); + } + + // ── Aufgaben-Sets: Modal ── + function openTaskSetModal(id, callerType) { + _taskSetEditId = id || null; + _taskSetCallerType = callerType || null; + _taskSetTaskCtr = 0; + document.getElementById('taskSetTaskList').innerHTML = ''; + document.getElementById('taskSetError').style.display = 'none'; + document.getElementById('taskSetModalTitle').textContent = id ? 'Aufgaben-Set bearbeiten' : 'Aufgaben-Set erstellen'; + if (id) { + const set = _taskSets.find(s => s.id === id); + if (set) { document.getElementById('fTaskSetName').value = set.name; (set.tasks||[]).forEach(t => addTaskSetTask(t)); } + } else { + document.getElementById('fTaskSetName').value = ''; + } + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + alignModalToContent(); + document.getElementById('taskSetModalBackdrop').classList.add('open'); + _taskSetIsDirty = false; + setTimeout(() => { + document.getElementById('taskSetModalBackdrop').querySelectorAll('input, textarea, select').forEach(el => { + el.addEventListener('input', () => { _taskSetIsDirty = true; }, { passive: true }); + el.addEventListener('change', () => { _taskSetIsDirty = true; }, { passive: true }); + }); + }, 0); + document.getElementById('fTaskSetName').focus(); + } + + function tryCloseTaskSetModal() { + if (_taskSetIsDirty) { + const confirm = document.getElementById('taskSetDiscardConfirm'); + confirm.style.display = 'flex'; + confirm.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } else { + closeTaskSetModal(); + } + } + + function cancelTaskSetDiscard() { + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + } + + function closeTaskSetModal() { + document.getElementById('taskSetModalBackdrop').classList.remove('open'); + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + _taskSetIsDirty = false; + _taskSetEditId = null; _taskSetCallerType = null; + } + + function toggleTaskAccItem(id) { + const target = document.getElementById('ts-' + id); + if (!target) return; + const isOpen = target.classList.contains('is-open'); + document.querySelectorAll('#taskSetTaskList .task-acc-item').forEach(el => el.classList.remove('is-open')); + if (!isOpen) target.classList.add('is-open'); + } + + function addTaskSetTask(data) { + const id = ++_taskSetTaskCtr; + const titleVal = (data?.title || '').replace(/"/g, '"'); + const descVal = (data?.description || '').replace(//g, '>'); const minVal = data?.minutes != null ? data.minutes : ''; const div = document.createElement('div'); - div.className = 'task-item'; div.id = 'mt-' + id; + div.className = 'task-acc-item'; div.id = 'ts-' + id; div.innerHTML = ` -
-
Titel *
-
-
Minuten
-
- +
+ + +
- `; - const containerId = currentModalType() === 'CARDLOCK' ? 'modalCardTaskList' : 'modalTaskList'; - document.getElementById(containerId).appendChild(div); - updateTaskModeVisibility(); +
+
+ + +
+
+ + +
+
`; + document.getElementById('taskSetTaskList').appendChild(div); + _taskSetIsDirty = true; } - function removeTask(id) { document.getElementById('mt-'+id)?.remove(); updateTaskModeVisibility(); } - function updateTaskModeVisibility() { - const type = currentModalType(); - if (type === 'CARDLOCK') { - const hasCardTasks = document.querySelectorAll('#modalCardTaskList .task-item').length > 0; - document.getElementById('sectionCardTaskMode').style.display = hasCardTasks ? '' : 'none'; - } - // For TimeLock: sectionTaskMode is always visible when taskTimingFields is open - } - function collectTasks() { - return Array.from(document.querySelectorAll('.task-item')).map(item => { - const id = item.id.replace('mt-',''); - const title = document.getElementById('mt-title-'+id)?.value.trim(); - const desc = document.getElementById('mt-desc-' +id)?.value.trim(); - const mins = parseInt(document.getElementById('mt-min-' +id)?.value); + + function removeTaskSetTask(id) { document.getElementById('ts-'+id)?.remove(); _taskSetIsDirty = true; } + + function collectTaskSetTasks() { + return Array.from(document.querySelectorAll('#taskSetTaskList .task-acc-item')).map(item => { + const id = item.id.replace('ts-',''); + const title = document.getElementById('ts-title-'+id)?.value.trim(); + const desc = document.getElementById('ts-desc-' +id)?.value.trim(); + const mins = parseInt(document.getElementById('ts-min-' +id)?.value); return title ? { title, description: desc||null, minutes: isNaN(mins)?null:mins } : null; }).filter(Boolean); } + async function saveTaskSet() { + const name = document.getElementById('fTaskSetName').value.trim(); + const errEl = document.getElementById('taskSetError'); + if (!name) { errEl.textContent = 'Name ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + const tasks = collectTaskSetTasks(); + const url = _taskSetEditId ? `/chastity/task-sets/${_taskSetEditId}` : '/chastity/task-sets'; + const method = _taskSetEditId ? 'PUT' : 'POST'; + try { + const res = await fetch(url, { method, headers:{'Content-Type':'application/json'}, body:JSON.stringify({name, tasks}) }); + if (!res.ok) { errEl.textContent = 'Fehler beim Speichern.'; errEl.style.display = ''; return; } + const saved = await res.json(); + const caller = _taskSetCallerType; + closeTaskSetModal(); + await loadTaskSets(); + if (caller) { + const sel = document.getElementById(caller === 'card' ? 'fCardTaskSetId' : 'fTimelockTaskSetId'); + if (sel) { sel.value = saved.id; onTaskSetChange(caller); markDirty(); } + } + } catch(e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteTaskSet(id, name) { + if (!confirm(`Aufgaben-Set „${name}" wirklich löschen?`)) return; + const res = await fetch(`/chastity/task-sets/${id}`, { method:'DELETE' }); + if (res.ok || res.status === 204) await loadTaskSets(); + } + + const GS_TOOLS = [ + { value: 'UMSCHNALLDILDO', label: 'Strap-on' }, + { value: 'MUND', label: 'Oral' }, + { value: 'ANUS', label: 'Anal' }, + ]; + function gsGetChecked(prefix) { + return GS_TOOLS.filter(t => document.getElementById(prefix + t.value)?.checked).map(t => t.value); + } + function gsSetChecked(prefix, values) { + GS_TOOLS.forEach(t => { + const el = document.getElementById(prefix + t.value); + if (el) el.checked = (values || []).includes(t.value); + }); + } + + const GAME_SPIELDAUER = [ + { label: 'Sehr kurz' }, + { label: 'Kurz' }, + { label: 'Mittel' }, + { label: 'Lang' }, + { label: 'Sehr lang' }, + ]; + + function populateGameSetSelect() { + const sel = document.getElementById('fGameSetId'); + if (!sel) return; + const cur = sel.value; + sel.innerHTML = ''; + _gameSets.forEach(s => { + const opt = document.createElement('option'); + opt.value = s.id; opt.textContent = s.name; + sel.appendChild(opt); + }); + sel.value = cur; + } + + function onGameSetChange() { + const val = document.getElementById('fGameSetId')?.value; + document.getElementById('gameSetSpieldauerRow').style.display = val ? '' : 'none'; + } + + function updateGameSpieldauer(val) { + document.getElementById('valGameSpieldauer').textContent = GAME_SPIELDAUER[val]?.label || ''; + } + + function populateTaskSetSelects() { + for (const selId of ['fCardTaskSetId', 'fTimelockTaskSetId']) { + const sel = document.getElementById(selId); + if (!sel) continue; + const cur = sel.value; + sel.innerHTML = ''; + _taskSets.forEach(s => { + const opt = document.createElement('option'); + opt.value = s.id; opt.textContent = `${s.name} (${s.tasks.length} Aufgabe${s.tasks.length !== 1 ? 'n' : ''})`; + sel.appendChild(opt); + }); + sel.value = cur; + } + } + + function onTaskSetChange(type) { + const selId = type === 'card' ? 'fCardTaskSetId' : 'fTimelockTaskSetId'; + const previewId = type === 'card' ? 'cardTaskSetPreview' : 'timelockTaskSetPreview'; + const val = document.getElementById(selId)?.value; + const preview = document.getElementById(previewId); + if (!preview) return; + if (!val) { preview.style.display = 'none'; preview.innerHTML = ''; return; } + const set = _taskSets.find(s => s.id === val); + if (!set || !set.tasks.length) { preview.style.display = 'none'; preview.innerHTML = ''; return; } + preview.style.display = ''; + preview.innerHTML = set.tasks.map(t => ` +
+ ${esc(t.title)} + ${t.minutes ? `${t.minutes} Min.` : ''} + ${t.description ? `
${esc(t.description)}
` : ''} +
`).join(''); + } + + // ── Simulation ── + async function runSimulation() { + const cardCountsMin = {}, cardCountsMax = {}; + CARD_DEFS.forEach(c => { + const mn = parseInt(document.getElementById('min_' + c.id)?.value) || 0; + const mx = parseInt(document.getElementById('max_' + c.id)?.value) || 0; + if (mn > 0) cardCountsMin[c.id] = mn; + if (mx > 0) cardCountsMax[c.id] = mx; + }); + + const btn = document.getElementById('simBtn'); + btn.disabled = true; + document.getElementById('simRunning').style.display = ''; + document.getElementById('simResult').style.display = 'none'; + document.getElementById('simProgressBar').style.width = '0%'; + document.getElementById('simProgressText').textContent = '0 von 100'; + + try { + const res = await fetch('/cardlock/templates/simulate', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + cardCountsMin, + cardCountsMax, + pickEveryMinute: tpToMinutes('pe'), + accumulatePicks: document.getElementById('fAccumulate').checked + }) + }); + if (!res.ok) return; + + const reader = res.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ''; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + buffer += decoder.decode(value, { stream: true }); + let pos; + while ((pos = buffer.indexOf('\n\n')) !== -1) { + const chunk = buffer.slice(0, pos); + buffer = buffer.slice(pos + 2); + let eventName = '', data = ''; + for (const line of chunk.split('\n')) { + if (line.startsWith('event:')) eventName = line.slice(6).trim(); + else if (line.startsWith('data:')) data = line.slice(5).trim(); + } + if (eventName === 'progress') { + const p = JSON.parse(data); + document.getElementById('simProgressBar').style.width = (p.done / p.total * 100) + '%'; + document.getElementById('simProgressText').textContent = `${p.done} von ${p.total}`; + } else if (eventName === 'result') { + const r = JSON.parse(data); + document.getElementById('simMin').textContent = fmtMinutes(r.min); + document.getElementById('simAvg').textContent = fmtMinutes(r.avg); + document.getElementById('simMax').textContent = fmtMinutes(r.max); + document.getElementById('simRunning').style.display = 'none'; + document.getElementById('simResult').style.display = ''; + } + } + } + } finally { + btn.disabled = false; + } + } + // ── Fehler ── function clearErr(rowId) { const r = document.getElementById(rowId); r?.classList.remove('field-error'); r?.querySelector('.field-error-msg')?.remove(); } function setErr(rowId, msg) { @@ -826,8 +1386,8 @@ function alignModalToContent() { const rect = document.querySelector('.content')?.getBoundingClientRect(); if (!rect) return; - const box = document.querySelector('.modal-box'); - box.style.width = Math.min(rect.width, 720) + 'px'; + document.getElementById('modalBackdrop').querySelector('.modal-box').style.width = Math.min(rect.width, 720) + 'px'; + document.getElementById('taskSetModalBackdrop').querySelector('.modal-box').style.width = Math.min(rect.width, 900) + 'px'; } function openModal(template) { @@ -837,11 +1397,10 @@ document.getElementById('modalTitle').textContent = editId ? 'Vorlage bearbeiten' : 'Vorlage erstellen'; document.getElementById('modalError').style.display = 'none'; document.getElementById('modalSaveBtn').disabled = false; - document.getElementById('modalTaskList').innerHTML = ''; document.getElementById('fSpinToggle').checked = false; toggleWheel(false); document.getElementById('errGreen').style.display = 'none'; - taskCtr = 0; wheelCtr = 0; + wheelCtr = 0; // Typ-Auswahl: nur beim Erstellen sichtbar document.getElementById('sectionTypeSelect').style.display = editId ? 'none' : ''; @@ -903,13 +1462,27 @@ toggleHygiene(hygieneOn); if (hygieneOn) { tpFromMinutes('he', template.hygineOpeningEveryMinites); tpFromMinutes('hd', template.hygineOpeningDurationMinutes||30); } - // Aufgaben - (template?.tasks||[]).forEach(t => addTask(t)); + // Task mode const mode = template?.taskMode || template?.taskCardMode || 'RANDOM'; const radioName = type === 'CARDLOCK' ? 'modalCardTaskMode' : 'modalTaskMode'; const radioEl = document.querySelector(`input[name="${radioName}"][value="${mode}"]`); if (radioEl) radioEl.checked = true; - updateTaskModeVisibility(); + + // Aufgaben-Set + populateTaskSetSelects(); + const taskSetId = template?.taskSetId || ''; + document.getElementById('fCardTaskSetId').value = taskSetId; + document.getElementById('fTimelockTaskSetId').value = taskSetId; + onTaskSetChange('card'); + onTaskSetChange('timelock'); + + // Spiel-Set + populateGameSetSelect(); + document.getElementById('fGameSetId').value = template?.gameSetId || ''; + onGameSetChange(); + const sdIdx = template?.gameSpieldauerIdx ?? 2; + document.getElementById('sldGameSpieldauer').value = sdIdx; + updateGameSpieldauer(sdIdx); alignModalToContent(); document.getElementById('modalBackdrop').classList.add('open'); @@ -953,9 +1526,17 @@ document.getElementById('modalBackdrop').addEventListener('click', e => { if (e.target===e.currentTarget) tryCloseModal(); }); document.addEventListener('keydown', e => { - if (e.key === 'Escape' && document.getElementById('modalBackdrop').classList.contains('open')) { - e.preventDefault(); - tryCloseModal(); + if (e.key !== 'Escape') return; + if (document.getElementById('gsItemModal').classList.contains('open')) { + e.preventDefault(); closeGsItemModal(); + } else if (document.getElementById('gsSetModal').classList.contains('open')) { + e.preventDefault(); closeGsSetModal(); + } else if (document.getElementById('gsEditModal').classList.contains('open')) { + e.preventDefault(); closeGsEditModal(); + } else if (document.getElementById('taskSetModalBackdrop').classList.contains('open')) { + e.preventDefault(); tryCloseTaskSetModal(); + } else if (document.getElementById('modalBackdrop').classList.contains('open')) { + e.preventDefault(); tryCloseModal(); } }); window.addEventListener('resize', () => { if (document.getElementById('modalBackdrop').classList.contains('open')) alignModalToContent(); }); @@ -972,7 +1553,6 @@ if (!name) { setErr('rowName','Name ist ein Pflichtfeld.'); firstError = document.getElementById('rowName'); } else clearErr('rowName'); - const tasks = collectTasks(); const hygieneOn = document.getElementById('fHygieneToggle').checked; const hygieneEvery = hygieneOn ? tpToMinutes('he') : null; const hygieneDur = hygieneOn ? tpToMinutes('hd') : null; @@ -1007,7 +1587,9 @@ const totalMax = CARD_DEFS.reduce((s,c)=>s+(parseInt(document.getElementById('max_'+c.id).value)||0),0); if (totalMax===0) { showModalError('Das Deck muss mindestens eine Karte enthalten.'); firstError=firstError||document.getElementById('modalError'); } const hasTaskCards = (parseInt(document.getElementById('min_TASK').value)||0)>0 || (parseInt(document.getElementById('max_TASK').value)||0)>0; - if (hasTaskCards && tasks.length===0) { showModalError('Aufgaben-Karten konfiguriert, aber keine Aufgaben definiert.'); firstError=firstError||document.getElementById('modalError'); } + if (hasTaskCards && !document.getElementById('fCardTaskSetId').value) { showModalError('Aufgaben-Karten konfiguriert, aber kein Aufgaben-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } + const hasGameCards = (parseInt(document.getElementById('min_GAME_CARD').value)||0)>0 || (parseInt(document.getElementById('max_GAME_CARD').value)||0)>0; + if (hasGameCards && !document.getElementById('fGameSetId').value) { showModalError('Spiel-Karten konfiguriert, aber kein Spiel-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } if (firstError) { firstError.scrollIntoView({behavior:'smooth',block:'center'}); return; } @@ -1024,8 +1606,11 @@ showRemainingCards: document.getElementById('fShowRemaining').checked, hygineOpeningEveryMinites: hygieneEvery, hygineOpeningDurationMinutes: hygieneDur, - tasks, requiresVerification: document.getElementById('fRequiresVerification').checked, + taskSetId: document.getElementById('fCardTaskSetId').value || null, + requiresVerification: document.getElementById('fRequiresVerification').checked, taskMode: document.querySelector('input[name="modalCardTaskMode"]:checked')?.value||'RANDOM', + gameSetId: document.getElementById('fGameSetId').value || null, + gameSpieldauerIdx: parseInt(document.getElementById('sldGameSpieldauer').value) || 2, }; } else { // TimeLock @@ -1038,7 +1623,7 @@ if (hasTaskTiming) { taskEvery = tpToMinutes('te'); if (taskEvery < 1) { showModalError('Aufgaben-Intervall muss mindestens 1 Minute betragen.'); firstError=firstError||document.getElementById('modalError'); } - if (tasks.length === 0) { showModalError('Aufgaben-Timing aktiviert, aber keine Aufgaben definiert.'); firstError=firstError||document.getElementById('modalError'); } + if (!document.getElementById('fTimelockTaskSetId').value) { showModalError('Aufgaben-Timing aktiviert, aber kein Aufgaben-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } const mt = parseInt(document.getElementById('fMinTasks').value); minTasksPerDay = isNaN(mt)||mt<1 ? null : mt; } @@ -1100,7 +1685,8 @@ endTimeVisible: document.getElementById('fEndTimeVisible').checked, hygineOpeningEveryMinites: hygieneEvery, hygineOpeningDurationMinutes: hygieneDur, - tasks, taskEveryMinutes: taskEvery, minTasksPerDay, + taskSetId: document.getElementById('fTimelockTaskSetId').value || null, + taskEveryMinutes: taskEvery, minTasksPerDay, spinningWheelEntries: wheelEntries, spinsEveryMinutes: spinsEvery, minSpinsPerDay, requiresVerification: document.getElementById('fRequiresVerification').checked, taskMode: document.querySelector('input[name="modalTaskMode"]:checked')?.value||'RANDOM', @@ -1145,7 +1731,8 @@ const hygText = t.hygineOpeningEveryMinites ? `alle ${fmtMinutes(t.hygineOpeningEveryMinites)}, ${fmtMinutes(t.hygineOpeningDurationMinutes)} offen` : 'Keine'; - const metaLine = `Hygiene: ${hygText} · Verif.: ${t.requiresVerification ? 'Ja' : 'Nein'}${t.taskCount ? ' · ' + t.taskCount + ' Aufgabe(n)' : ''}`; + const setName = t.taskSetId ? (_taskSets.find(s => s.id === t.taskSetId)?.name || 'Set') : null; + const metaLine = `Hygiene: ${hygText} · Verif.: ${t.requiresVerification ? 'Ja' : 'Nein'}${setName ? ' · Set: ' + esc(setName) : ''}`; const publishedBadge = t.published ? `🌐 Veröffentlicht` : ''; @@ -1194,10 +1781,11 @@ } } - function resetList() { + async function resetList() { pageNum = 0; isLastPage = false; isLoading = false; document.getElementById('templateList').innerHTML = ''; document.getElementById('listEmpty').style.display = 'none'; + await loadTaskSets(); loadNextPage(); loadSubscribedTemplates(); } @@ -1296,6 +1884,10 @@ if (res.ok || res.status === 204) resetList(); } + document.getElementById('taskSetModalBackdrop').addEventListener('click', e => { + if (e.target === e.currentTarget) tryCloseTaskSetModal(); + }); + // ── IntersectionObserver für Infinite Scroll ── const observer = new IntersectionObserver(entries => { if (entries[0].isIntersecting) loadNextPage(); @@ -1303,6 +1895,426 @@ observer.observe(document.getElementById('scrollSentinel')); resetList(); + loadGameSets(); + + // ════════════════════════════════════════════════ + // Spiel-Sets + // ════════════════════════════════════════════════ + + let _gameSets = []; + let _gsEditSetId = null; // set being renamed + let _gsSetCaller = null; // 'template' when opened from the template modal + let _gsOpenSetId = null; // set currently open in the content popup + let _gsItemType = null; // 'aufgabe' | 'zeitstrafe' | 'finisher' + let _gsItemSetId = null; + let _gsItemIdx = null; // null = new, number = editing + + async function loadGameSets() { + try { + const res = await fetch('/chastity/game-sets'); + if (!res.ok) return; + _gameSets = await res.json(); + renderGameSetList(); + populateGameSetSelect(); + if (_gsOpenSetId) renderGsEditModalContent(_gsOpenSetId); + } catch (e) { console.error(e); } + } + + function renderGameSetList() { + const list = document.getElementById('gameSetList'); + list.innerHTML = ''; + document.getElementById('gameSetEmpty').style.display = _gameSets.length ? 'none' : ''; + document.getElementById('btnNewGameSet').disabled = _gameSets.length >= 5; + + _gameSets.forEach(s => { + const aufgaben = s.aufgaben || []; + const zeitstrafen = s.zeitstrafen || []; + const finisher = s.finisher || []; + const levelCounts = [1,2,3,4,5].map(l => aufgaben.filter(a => a.level === l).length); + + const lvlBadges = levelCounts.map((c, i) => { + const cls = c >= 3 ? 'gs-badge gs-badge-neutral' : 'gs-badge'; + return `L${i+1}: ${c}`; + }).join(''); + const finBadgeCls = finisher.length >= 1 ? 'gs-badge gs-badge-neutral' : 'gs-badge'; + + const card = document.createElement('div'); + card.className = 'gs-card'; + card.id = 'gscard_' + s.id; + card.addEventListener('click', () => openGsEditModal(s.id)); + card.innerHTML = ` +
+
+
${esc(s.name)}
+
+ ${lvlBadges} + Zeitstrafen: ${zeitstrafen.length} + Finisher: ${finisher.length} +
+
+
+ + +
+
`; + list.appendChild(card); + }); + } + + function toggleGsListItem(id) { + document.getElementById(id)?.classList.toggle('open'); + } + + // ── Set content popup ────────────────────────── + + function openGsEditModal(setId) { + _gsOpenSetId = setId; + renderGsEditModalContent(setId); + document.getElementById('gsEditModal').classList.add('open'); + } + + function closeGsEditModal() { + document.getElementById('gsEditModal').classList.remove('open'); + _gsOpenSetId = null; + } + + function renderGsEditModalContent(setId) { + const container = document.getElementById('gsEditModalContent'); + if (!container) return; + const s = _gameSets.find(x => x.id === setId); + if (!s) { closeGsEditModal(); return; } + document.getElementById('gsEditModalTitle').textContent = s.name; + const aufgaben = s.aufgaben || []; + const zeitstrafen = s.zeitstrafen || []; + const finisher = s.finisher || []; + let html = ''; + for (let l = 1; l <= 5; l++) { + const items = aufgaben.map((a, i) => ({...a, _gi: i})).filter(a => a.level === l); + const warnCls = items.length < 3 ? ' gs-sub-warn' : ''; + const itemsHtml = items.map(a => gsAufgabeRowHtml(s.id, a._gi, a)).join('') || + '
'; + html += `
+
+ Level ${l} (${items.length}/3+) + +
+
${itemsHtml}
`; + } + const zeitHtml = zeitstrafen.map((z, i) => gsZeitstrafeRowHtml(s.id, i, z)).join('') || + '
'; + html += `
+
+ Zeitstrafen (${zeitstrafen.length}) + +
+
${zeitHtml}
`; + const finWarnCls = finisher.length < 1 ? ' gs-sub-warn' : ''; + const finHtml = finisher.map((f, i) => gsFinisherRowHtml(s.id, i, f)).join('') || + '
'; + html += `
+
+ Finisher (${finisher.length}/1+) + +
+
${finHtml}
`; + container.innerHTML = html; + } + + // ── Row HTML helpers ─────────────────────────── + + function gsAufgabeRowHtml(setId, gi, a) { + const toolLabels = (a.benoetigt || []).map(v => GS_TOOLS.find(t => t.value === v)?.label).filter(Boolean); + const badges = [ + a.minutes ? `${a.minutes} Min.` : '', + ...toolLabels.map(l => `${l}`), + ].join(''); + const desc = a.description ? `
${esc(a.description)}
` : ''; + return `
+
+ ${esc(a.title)} +
${badges}
+
+
${desc} +
+ + + +
+
`; + } + + function gsZeitstrafeRowHtml(setId, idx, z) { + const timeStr = (z.minMinutes != null ? z.minMinutes : '?') + '–' + (z.maxMinutes != null ? z.maxMinutes : '?') + ' Min.'; + const sperrtLabels = (z.sperrt || []).map(v => GS_TOOLS.find(t => t.value === v)?.label).filter(Boolean); + const badges = [ + z.level ? `L${z.level}` : '', + `${timeStr}`, + ...sperrtLabels.map(l => `🔒 ${l}`), + z.releaseText ? `📝 Aufhebung` : '', + z.tempUnlockBeforeRequired ? `🔓 Vorher` : '', + z.tempUnlockAfterRequired ? `🔓 Nachher` : '', + ].join(''); + const releaseRow = z.releaseText ? `
Bei Aufhebung:
${esc(z.releaseText)}
` : ''; + const desc = z.description ? `
${esc(z.description)}
` : ''; + return `
+
+ ${esc(z.title)} +
${badges}
+
+
${desc}${releaseRow} +
+ + + +
+
`; + } + + function gsFinisherRowHtml(setId, idx, f) { + const badges = [ + f.tempUnlockBeforeRequired ? `🔓 Vorher` : '', + f.tempUnlockAfterRequired ? `🔓 Nachher` : '', + ].join(''); + const desc = f.description ? `
${esc(f.description)}
` : ''; + return `
+
+ ${esc(f.title)} +
${badges}
+
+
${desc} +
+ + + +
+
`; + } + + // ── Set create / rename modal ────────────────── + + function openGsSetModal(id, caller) { + _gsEditSetId = id || null; + _gsSetCaller = caller || null; + document.getElementById('gsSetModalTitle').textContent = id ? 'Spiel-Set umbenennen' : 'Neues Spiel-Set'; + document.getElementById('gsSetName').value = id ? (_gameSets.find(s => s.id === id)?.name || '') : ''; + document.getElementById('gsSetError').style.display = 'none'; + document.getElementById('gsSetModal').classList.add('open'); + setTimeout(() => document.getElementById('gsSetName').focus(), 50); + } + + function closeGsSetModal() { + document.getElementById('gsSetModal').classList.remove('open'); + _gsEditSetId = _gsSetCaller = null; + } + + async function saveGsSet() { + const name = document.getElementById('gsSetName').value.trim(); + const errEl = document.getElementById('gsSetError'); + if (!name) { errEl.textContent = 'Name ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + errEl.style.display = 'none'; + const set = _gsEditSetId ? _gameSets.find(s => s.id === _gsEditSetId) : null; + const url = _gsEditSetId ? `/chastity/game-sets/${_gsEditSetId}` : '/chastity/game-sets'; + const method = _gsEditSetId ? 'PUT' : 'POST'; + const body = { name, + aufgaben: set?.aufgaben || [], + zeitstrafen: set?.zeitstrafen || [], + finisher: set?.finisher || [] }; + try { + const res = await fetch(url, { method, headers: {'Content-Type':'application/json'}, body: JSON.stringify(body) }); + if (res.ok) { + const saved = await res.json().catch(() => null); + const caller = _gsSetCaller; + closeGsSetModal(); + await loadGameSets(); + if (caller === 'template' && saved?.id) { + document.getElementById('fGameSetId').value = saved.id; + onGameSetChange(); + markDirty(); + } + return; + } + const b = await res.json().catch(() => ({})); + errEl.textContent = b.error || 'Fehler.'; errEl.style.display = ''; + } catch (e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteGameSet(id, name) { + if (!confirm(`Spiel-Set „${name}" wirklich löschen?`)) return; + const res = await fetch(`/chastity/game-sets/${id}`, { method: 'DELETE' }); + if (res.ok || res.status === 204) loadGameSets(); + } + + // ── Item modal ───────────────────────────────── + + function openGsItemModal(type, setId, itemIdx, contextLevel) { + _gsItemType = type; + _gsItemSetId = setId; + _gsItemIdx = itemIdx !== null && itemIdx !== undefined ? itemIdx : null; + + const titles = { aufgabe: 'Aufgabe', zeitstrafe: 'Zeitstrafe', finisher: 'Finisher' }; + document.getElementById('gsItemModalTitle').textContent = + (_gsItemIdx !== null ? 'Bearbeiten: ' : 'Neu: ') + titles[type]; + + // Reset fields + document.getElementById('gsItemTitle').value = ''; + document.getElementById('gsItemDesc').value = ''; + document.getElementById('gsItemMinutes').value = ''; + document.getElementById('gsItemMinMin').value = ''; + document.getElementById('gsItemMaxMin').value = ''; + document.getElementById('gsItemReleaseText').value = ''; + document.getElementById('gsItemBefore').checked = false; + document.getElementById('gsItemAfter').checked = false; + document.getElementById('gsItemAufgabeLevel').value = contextLevel || 1; + document.getElementById('gsItemZeitstrafeLevel').value = 1; + document.getElementById('gsItemError').style.display = 'none'; + gsSetChecked('gsItemBen_', []); + gsSetChecked('gsItemSperr_', []); + + // Show/hide type-specific rows + document.getElementById('gsItemAufgabeRow').style.display = type === 'aufgabe' ? '' : 'none'; + document.getElementById('gsItemBenoetigtRow').style.display = type === 'aufgabe' ? '' : 'none'; + document.getElementById('gsItemZeitstrafeRow').style.display = type === 'zeitstrafe' ? '' : 'none'; + document.getElementById('gsItemSperrtRow').style.display = type === 'zeitstrafe' ? '' : 'none'; + document.getElementById('gsItemUnlockRow').style.display = (type === 'zeitstrafe' || type === 'finisher') ? '' : 'none'; + + // Pre-fill when editing + if (_gsItemIdx !== null) { + const set = _gameSets.find(s => s.id === setId); + if (set) { + let item; + if (type === 'aufgabe') item = set.aufgaben[_gsItemIdx]; + if (type === 'zeitstrafe') item = set.zeitstrafen[_gsItemIdx]; + if (type === 'finisher') item = set.finisher[_gsItemIdx]; + if (item) { + document.getElementById('gsItemTitle').value = item.title || ''; + document.getElementById('gsItemDesc').value = item.description || ''; + if (type === 'aufgabe') { + document.getElementById('gsItemAufgabeLevel').value = item.level || 1; + document.getElementById('gsItemMinutes').value = item.minutes || ''; + gsSetChecked('gsItemBen_', item.benoetigt || []); + } + if (type === 'zeitstrafe') { + document.getElementById('gsItemZeitstrafeLevel').value = item.level || 1; + document.getElementById('gsItemMinMin').value = item.minMinutes ?? ''; + document.getElementById('gsItemMaxMin').value = item.maxMinutes ?? ''; + document.getElementById('gsItemReleaseText').value = item.releaseText || ''; + gsSetChecked('gsItemSperr_', item.sperrt || []); + } + if (type === 'zeitstrafe' || type === 'finisher') { + document.getElementById('gsItemBefore').checked = !!item.tempUnlockBeforeRequired; + document.getElementById('gsItemAfter').checked = !!item.tempUnlockAfterRequired; + } + } + } + } + + document.getElementById('gsItemModal').classList.add('open'); + setTimeout(() => document.getElementById('gsItemTitle').focus(), 50); + } + + function closeGsItemModal() { + document.getElementById('gsItemModal').classList.remove('open'); + _gsItemType = _gsItemSetId = _gsItemIdx = null; + } + + async function saveGsItem() { + const title = document.getElementById('gsItemTitle').value.trim(); + const errEl = document.getElementById('gsItemError'); + if (!title) { errEl.textContent = 'Titel ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + errEl.style.display = 'none'; + + const set = _gameSets.find(s => s.id === _gsItemSetId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + + const desc = document.getElementById('gsItemDesc').value.trim() || null; + let item; + if (_gsItemType === 'aufgabe') { + const min = parseInt(document.getElementById('gsItemMinutes').value); + const ben = gsGetChecked('gsItemBen_'); + item = { title, description: desc, + level: parseInt(document.getElementById('gsItemAufgabeLevel').value) || 1, + minutes: isNaN(min) ? null : min, + benoetigt: ben.length ? ben : null }; + if (_gsItemIdx !== null) updated.aufgaben[_gsItemIdx] = item; + else updated.aufgaben.push(item); + } else if (_gsItemType === 'zeitstrafe') { + const minMin = parseInt(document.getElementById('gsItemMinMin').value); + const maxMin = parseInt(document.getElementById('gsItemMaxMin').value); + const sperrt = gsGetChecked('gsItemSperr_'); + const releaseText = document.getElementById('gsItemReleaseText').value.trim() || null; + item = { title, description: desc, + level: parseInt(document.getElementById('gsItemZeitstrafeLevel').value) || 1, + minMinutes: isNaN(minMin) ? null : minMin, + maxMinutes: isNaN(maxMin) ? null : maxMin, + releaseText, + tempUnlockBeforeRequired: document.getElementById('gsItemBefore').checked, + tempUnlockAfterRequired: document.getElementById('gsItemAfter').checked, + sperrt: sperrt.length ? sperrt : null }; + if (_gsItemIdx !== null) updated.zeitstrafen[_gsItemIdx] = item; + else updated.zeitstrafen.push(item); + } else if (_gsItemType === 'finisher') { + item = { title, description: desc, + tempUnlockBeforeRequired: document.getElementById('gsItemBefore').checked, + tempUnlockAfterRequired: document.getElementById('gsItemAfter').checked }; + if (_gsItemIdx !== null) updated.finisher[_gsItemIdx] = item; + else updated.finisher.push(item); + } + + try { + const res = await fetch(`/chastity/game-sets/${_gsItemSetId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) { closeGsItemModal(); await loadGameSets(); } + else { const b = await res.json().catch(()=>({})); errEl.textContent = b.error||'Fehler.'; errEl.style.display = ''; } + } catch (e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteGsItem(type, setId, idx) { + if (!confirm('Eintrag wirklich löschen?')) return; + const set = _gameSets.find(s => s.id === setId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + if (type === 'aufgabe') updated.aufgaben.splice(idx, 1); + if (type === 'zeitstrafe') updated.zeitstrafen.splice(idx, 1); + if (type === 'finisher') updated.finisher.splice(idx, 1); + const res = await fetch(`/chastity/game-sets/${setId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) loadGameSets(); + } + + async function duplicateGsItem(type, setId, idx) { + const set = _gameSets.find(s => s.id === setId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + if (type === 'aufgabe') updated.aufgaben.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.aufgaben[idx]))); + if (type === 'zeitstrafe') updated.zeitstrafen.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.zeitstrafen[idx]))); + if (type === 'finisher') updated.finisher.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.finisher[idx]))); + const res = await fetch(`/chastity/game-sets/${setId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) loadGameSets(); + } + + document.getElementById('gsSetModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsSetModal(); }); + document.getElementById('gsItemModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsItemModal(); }); + document.getElementById('gsEditModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsEditModal(); }); diff --git a/bin/main/static/games/vanilla/aufgaben.html b/bin/main/static/games/vanilla/aufgaben.html index ec355e0..41e2d67 100644 --- a/bin/main/static/games/vanilla/aufgaben.html +++ b/bin/main/static/games/vanilla/aufgaben.html @@ -3,6 +3,7 @@ + Aufgaben – Vanilla – xXx Sphere @@ -629,8 +630,13 @@ .then(user => { if (!user) return; loadUserGruppen(); loadAboGruppen(); loadSystemGruppen(); }) .catch(() => { window.location.href = '/login.html'; }); + // ── Cross-tab notification ── + let _notifyOnLoad = false; + const gruppenBc = new BroadcastChannel('vanilla-gruppen-updated'); + // ── Load ── function loadUserGruppen() { + if (_notifyOnLoad) { _notifyOnLoad = false; try { gruppenBc.postMessage(1); } catch (_) {} } resetSelection(); document.getElementById('userLoading').style.display = 'block'; fetch(apiUrl(`/gruppe/list/user`) + `?page=${userPage}&size=${PAGE_SIZE}`) @@ -924,7 +930,7 @@ openItemId = null; pendingExpandId = gruppenId; pendingExpandType = 'user'; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else { document.getElementById('userActionError').textContent = 'Fehler beim Löschen (HTTP ' + r.status + ').'; } @@ -1131,7 +1137,7 @@ pendingExpandType = 'user'; } userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 409) { showModalError('Limit erreicht: maximal 10 eigene Aufgabengruppen möglich.'); } else { @@ -1157,7 +1163,7 @@ .then(r => { if (r.ok || r.status === 202) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 403) { document.getElementById('userActionError').textContent = 'Keine Berechtigung.'; btn.disabled = false; @@ -1179,7 +1185,7 @@ .then(r => { if (r.ok || r.status === 201) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); document.getElementById('systemActionError').textContent = ''; } else { document.getElementById('systemActionError').textContent = 'Fehler beim Kopieren (HTTP ' + r.status + ').'; @@ -1198,7 +1204,7 @@ .then(r => { if (r.ok || r.status === 201) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); document.getElementById('aboActionError').textContent = ''; } else if (r.status === 409) { document.getElementById('aboActionError').textContent = 'Limit erreicht: maximal 10 eigene Aufgabengruppen möglich.'; @@ -1628,7 +1634,7 @@ pendingExpandId = currentItemGruppeId; pendingExpandType = 'user'; userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 409) { showItemError('Limit erreicht: maximal 100 Einträge pro Gruppe möglich.'); } else { @@ -1724,7 +1730,7 @@ pendingExpandId = selectedGruppeId; pendingExpandType = 'user'; userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else { const errEl = document.getElementById('publishError'); errEl.textContent = 'Fehler beim Veröffentlichen (HTTP ' + r.status + ').'; diff --git a/bin/main/static/games/vanilla/entdecken.html b/bin/main/static/games/vanilla/entdecken.html index 9ca94d1..a65f1d3 100644 --- a/bin/main/static/games/vanilla/entdecken.html +++ b/bin/main/static/games/vanilla/entdecken.html @@ -3,6 +3,7 @@ + Entdecken – xXx Sphere diff --git a/bin/main/static/games/vanilla/neuvanilla.html b/bin/main/static/games/vanilla/neuvanilla.html index 27a9699..fc0fa25 100644 --- a/bin/main/static/games/vanilla/neuvanilla.html +++ b/bin/main/static/games/vanilla/neuvanilla.html @@ -69,13 +69,36 @@ .card-field:last-child { margin-bottom: 0; } .card-field > label { font-size: 0.8rem; color: #aaa; margin: 0 0 0.5rem 0; display: block; } .check-group { display: flex; flex-wrap: wrap; gap: 0.5rem; } - .check-group--two-col { display: grid; grid-template-columns: 1fr 1fr; } - .check-item { display: inline-flex; align-items: flex-start; gap: 0.45rem; background: var(--color-secondary); border: 1px solid transparent; border-radius: 6px; padding: 0.4rem 0.7rem; cursor: pointer; transition: border-color 0.15s; user-select: none; } + .check-group--two-col { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); } + .check-item { display: inline-flex; align-items: flex-start; gap: 0.45rem; background: var(--color-secondary); border: 1px solid transparent; border-radius: 6px; padding: 0.4rem 0.7rem; cursor: pointer; transition: border-color 0.15s; user-select: none; position: relative; } .check-item.is-checked { border-color: var(--color-primary); } .check-item.is-disabled { opacity: 0.5; pointer-events: none; cursor: default; } .check-item input { accent-color: var(--color-primary); width: auto; margin-top: 0.15rem; cursor: pointer; flex-shrink: 0; } - .check-item-label { font-size: 0.88rem; color: var(--color-text); line-height: 1.3; } - .check-item-desc { display: block; font-size: 0.72rem; color: var(--color-muted); margin-top: 0.1rem; } + .check-item-label { font-size: 0.88rem; color: var(--color-text); line-height: 1.3; display: flex; align-items: center; gap: 0.2rem; flex-wrap: wrap; } + .check-item-desc { display: none; } + .check-item-tooltip { + display: none; position: absolute; bottom: calc(100% + 6px); left: 0; + background: var(--color-card); border: 1px solid var(--color-secondary); + border-radius: 6px; padding: 0.4rem 0.65rem; + font-size: 0.78rem; color: var(--color-muted); line-height: 1.4; + width: max-content; max-width: 210px; + z-index: 50; pointer-events: none; + box-shadow: 0 4px 12px rgba(0,0,0,0.35); + } + .check-item:hover .check-item-tooltip { display: block; } + .check-item-info-btn { + display: none; background: none; border: 1px solid var(--color-muted); + border-radius: 50%; width: 1.1rem; height: 1.1rem; font-size: 0.62rem; + color: var(--color-muted); cursor: pointer; padding: 0; line-height: 1; + flex-shrink: 0; font-style: normal; font-weight: normal; + align-items: center; justify-content: center; + } + .check-item-info-btn.active { border-color: var(--color-primary); color: var(--color-primary); } + .check-item-desc-mobile { display: none; font-size: 0.72rem; color: var(--color-muted); margin-top: 0.25rem; line-height: 1.4; } + @media (max-width: 679px) { + .check-item:hover .check-item-tooltip { display: none; } + .check-item-info-btn { display: inline-flex; } + } .field-error { font-size: 0.78rem; color: var(--color-primary); margin-top: 0.3rem; display: none; } .add-player-btn { width: 100%; background: transparent; border: 1px dashed var(--color-secondary); color: var(--color-muted); padding: 0.7rem; border-radius: 8px; font-size: 0.88rem; font-weight: normal; cursor: pointer; transition: border-color 0.15s, color 0.15s; margin-top: 0.5rem; } .add-player-btn:hover { border-color: var(--color-primary); color: var(--color-text); background: transparent; } @@ -163,7 +186,6 @@
📰 Feed & Profil
Beiträge teilen, Profile entdecken und die Community kennenlernen.
🏆 Community Votes
Verifikationen bewerten und an Community-Abstimmungen teilnehmen.
@@ -200,15 +204,16 @@
🔐 Sicherheit & Datenschutz
Wie deine Daten gespeichert werden und welche Sicherheitsmaßnahmen wir treffen.
🐛 Fehler melden
Hast du einen Fehler gefunden oder einen Verbesserungsvorschlag?
diff --git a/bin/main/static/help/vanilla.html b/bin/main/static/help/vanilla.html new file mode 100644 index 0000000..a1fdfad --- /dev/null +++ b/bin/main/static/help/vanilla.html @@ -0,0 +1,163 @@ + + + + + + + Hilfe Vanilla Game – xXx Sphere + + + + + +
+
+ + ‹ Zurück zur Hilfe-Übersicht + +
+

⚪ Vanilla Game

+

Leichtere, verspielte Sessions ohne strenge Regeln – für den entspannten Einstieg.

+
+ +
+
+ 📖 Was ist das Vanilla Game? + +
+
+

+ Das Vanilla Game ist der entspannte Einstieg in die Spielwelt von xXx Sphere. Es gibt keine festen Rollen und keine strikten Regeln – stattdessen ziehen beide Parteien abwechselnd Karten und erfüllen lockere Aufgaben. +

+

+ Das Spiel eignet sich besonders für Paare, die etwas Neues ausprobieren möchten, ohne sich auf ein intensiveres Regelwerk einzulassen. +

+
+ Tipp: Du kannst jederzeit eigene Aufgaben erstellen und den Schwierigkeitsgrad für jede Session selbst bestimmen. +
+
+
+ +
+
+ 🚀 Session starten + +
+
+

So startest du eine Vanilla-Session:

+
    +
  1. 1Navigiere zu Vanilla → Neue Session.
  2. +
  3. 2Wähle einen Aufgaben-Pool (eigene Aufgaben oder Community-Vorlagen).
  4. +
  5. 3Lege fest, ob ihr abwechselnd zieht oder eine Person die Aufgaben stellt.
  6. +
  7. 4Lade deinen Mitspieler per Nutzername oder Einladungslink ein.
  8. +
  9. 5Starte die Session – der erste Spieler zieht die erste Karte.
  10. +
+
+
+ +
+
+ 🃏 Karten und Aufgaben + +
+
+

+ Im Vanilla Game werden Karten aus einem gemeinsam gewählten Pool gezogen. Jede Karte beschreibt eine Aufgabe, die von einer oder beiden Personen erfüllt wird. Nach Erfüllung zieht die andere Person. +

+ + + + + + + +
AufgabentypBeschreibung
SoloNur die ziehende Person führt die Aufgabe aus.
GemeinsamBeide Personen führen die Aufgabe zusammen aus.
WahlDie ziehende Person entscheidet, wer die Aufgabe übernimmt.
+

+ Eigene Aufgaben kannst du unter Vanilla → Aufgaben verwalten. +

+
+
+ +
+
+ ❓ Kann ich eine Session pausieren? + +
+
+

+ Ja. Eine laufende Session kann von beiden Spielern jederzeit pausiert werden. Sie bleibt für 24 Stunden gespeichert und kann danach fortgesetzt werden. Nach 24 Stunden Inaktivität wird die Session automatisch beendet. +

+
+
+ +
+
+ ❓ Unterschied zwischen Vanilla und BDSM Game? + +
+
+

+ Das Vanilla Game hat keine festen Rollen, kein Protokoll und keine Strafmechanismen. Es eignet sich als Einstieg oder für entspannte Abende. Das BDSM Game hat explizite Rollen (Dom/Sub), ein Aufgaben- und Strafprotokoll sowie striktere Regeln. +

+
+ Du kannst beide Spiele unabhängig voneinander nutzen – deine Aufgaben-Sets lassen sich zwischen den Spielen teilen. +
+
+
+ +
+
+ + + + + + diff --git a/bin/main/static/js/card-defs.js b/bin/main/static/js/card-defs.js index 765fc0f..4726869 100644 --- a/bin/main/static/js/card-defs.js +++ b/bin/main/static/js/card-defs.js @@ -78,6 +78,30 @@ const CARD_DEFS = [ defMin: 0, defMax: 0, }, + { + id: 'SLOWMO_CARD', + img: '/img/card_slowmo.png', + name: 'Slow Motion', + desc: 'Alle gestarteten Aktionen (Hygiene-Öffnung, Freeze, Kartenintervall) dauern bis zum gewählten Zeitpunkt viermal so lange.', + defMin: 0, + defMax: 0, + }, + { + id: 'SPEEDUP_CARD', + img: '/img/card_speedup.png', + name: 'Speed Up', + desc: 'Alle gestarteten Aktionen (Hygiene-Öffnung, Freeze, Kartenintervall) dauern bis zum gewählten Zeitpunkt viermal so kurz.', + defMin: 0, + defMax: 0, + }, + { + id: 'GAME_CARD', + img: '/img/card_game.png', + name: 'Spiel-Karte', + desc: 'Ein Minispiel wird gestartet.', + defMin: 0, + defMax: 0, + }, ]; /** Lookup-Objekt für Konsumenten, die nach ID auf Name/Bild/Beschreibung zugreifen. */ diff --git a/bin/main/static/js/mobile-nav.js b/bin/main/static/js/mobile-nav.js index 6e97bd7..03dd981 100644 --- a/bin/main/static/js/mobile-nav.js +++ b/bin/main/static/js/mobile-nav.js @@ -4,7 +4,8 @@ const path = window.location.pathname; const I = window.IC || function () { return ''; }; - const TOPBAR_H = '4.875rem'; + const TOPBAR_H = '4.875rem'; + const BOT_NAV_H = '3.75rem'; // ── CSS ────────────────────────────────────────────────────────────────── const style = document.createElement('style'); @@ -82,7 +83,7 @@ display: none; position: fixed; top: ${TOPBAR_H}; - left: 0; right: 0; bottom: 0; + left: 0; right: 0; bottom: ${BOT_NAV_H}; background: rgba(0,0,0,0.55); z-index: 998; } @@ -93,7 +94,7 @@ position: fixed; top: ${TOPBAR_H}; right: 0; - bottom: 0; + bottom: ${BOT_NAV_H}; width: min(80%, 360px); background: var(--color-card); border-left: 1px solid var(--color-secondary); @@ -155,10 +156,54 @@ .mnav-link--danger { color: var(--color-primary); } .mnav-link--danger:hover { background: rgba(var(--color-primary-rgb,233,69,96),0.1); color: var(--color-primary); } + /* ── Bottom Navigation Bar ── */ + .mob-bottom-nav { + display: none; + position: fixed; + bottom: 0; left: 0; right: 0; + height: ${BOT_NAV_H}; + background: var(--color-card); + border-top: 1px solid var(--color-secondary); + box-shadow: 0 -2px 12px rgba(0,0,0,0.3); + z-index: 500; + align-items: stretch; + } + .mob-bn-tab { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 0.18rem; + text-decoration: none; + color: var(--color-muted); + font-size: 1.25rem; + line-height: 1; + cursor: pointer; + background: none; + border: none; + padding: 0.25rem 0; + transition: color 0.12s; + -webkit-tap-highlight-color: transparent; + } + .mob-bn-tab.active { color: var(--color-primary); } + .mob-bn-tab:hover { color: var(--color-text); } + .mob-bn-label { + font-size: 0.6rem; + font-weight: 600; + line-height: 1; + letter-spacing: 0.01em; + } + /* ── Show only on mobile ── */ @media (max-width: 768px) { .mobile-topbar { display: flex; } - body.app { padding-top: ${TOPBAR_H}; } + .mob-bottom-nav { display: flex; } + body.app { + padding-top: ${TOPBAR_H}; + padding-bottom: ${BOT_NAV_H}; + } + #mobMenuToggle { display: none; } } `; document.head.appendChild(style); @@ -322,6 +367,35 @@ document.body.appendChild(backdropEl); document.body.appendChild(panelEl); + // ── Bottom Navigation Bar ───────────────────────────────────────────────── + const onGames = path.startsWith('/games/'); + const bottomNavEl = document.createElement('nav'); + bottomNavEl.className = 'mob-bottom-nav'; + bottomNavEl.id = 'mobBottomNav'; + bottomNavEl.innerHTML = ` + + ${I('HOME') || '🏠'} + Home + + + ${I('GROUPS') || '👥'} + Community + + + ${I('DATING') || '♥'} + Dating + + + + ${I('SETTINGS') || '⚙️'} + Konto + + `; + document.body.appendChild(bottomNavEl); + // ── Accordion (nur eine Sektion gleichzeitig offen) ────────────────────── panelEl.querySelectorAll('.mnav-section-header').forEach(h => { h.addEventListener('click', () => { @@ -333,7 +407,13 @@ }); // ── Open / Close ────────────────────────────────────────────────────────── - function openMenu() { + function openMenu(focusSectionLabel) { + if (focusSectionLabel) { + panelEl.querySelectorAll('.mnav-section').forEach(s => { + const label = s.querySelector('.mnav-section-header span')?.textContent?.trim(); + s.classList.toggle('open', label === focusSectionLabel); + }); + } panelEl.classList.add('open'); backdropEl.classList.add('open'); } @@ -352,6 +432,22 @@ l.addEventListener('click', () => { if (l.getAttribute('href') !== '#') closeMenu(); }); }); + // ── Games-Tab öffnet Panel mit Games-Sektionen ──────────────────────────── + document.getElementById('mobBnGamesTab').addEventListener('click', e => { + e.stopPropagation(); + if (panelEl.classList.contains('open')) { + closeMenu(); + } else { + // Ersten aktiven Game-Bereich öffnen, sonst Vanilla Game als Default + const gameLabels = ['Vanilla Game', 'BDSM Game', 'Chastity Game']; + const activeLabel = gameLabels.find(lbl => { + const prefix = { 'Vanilla Game': '/games/vanilla/', 'BDSM Game': '/games/bdsm/', 'Chastity Game': '/games/chastity/' }[lbl]; + return path.startsWith(prefix); + }) || 'Vanilla Game'; + openMenu(activeLabel); + } + }); + // ── Badges ──────────────────────────────────────────────────────────────── function setBadge(id, n) { const el = document.getElementById(id); @@ -406,13 +502,14 @@ if (el) el.style.display = ''; } - // Dating + // Dating (Panel-Link + Bottom-Nav-Tab) + const datingHref = user.datingAktiv + ? '/dating/dating.html' + : '/konto/einstellungen.html#sec-dating'; const datingLink = document.getElementById('mnavDatingLink'); - if (datingLink) { - datingLink.href = user.datingAktiv - ? '/dating/dating.html' - : '/konto/einstellungen.html#sec-dating'; - } + if (datingLink) datingLink.href = datingHref; + const bnDatingTab = document.getElementById('mobBnDatingTab'); + if (bnDatingTab) bnDatingTab.href = datingHref; const hide = id => { const el = document.getElementById(id); if (el) el.style.display = 'none'; }; const show = id => { const el = document.getElementById(id); if (el) el.style.display = ''; }; diff --git a/bin/main/static/js/nav.js b/bin/main/static/js/nav.js index 1a44fb6..fac9c88 100644 --- a/bin/main/static/js/nav.js +++ b/bin/main/static/js/nav.js @@ -16,9 +16,9 @@ margin-right: 0.5rem; line-height: 1; } - .nav-burger:hover { border-color: var(--color-primary); color: var(--color-primary); } + .nav-burger:hover { border-color: var(--color-primary); color: #fff; } .nav-burger-icon { - font-size: 1.05rem; line-height: 1; + font-size: 1.575rem; line-height: 1; position: relative; display: inline-flex; align-items: center; justify-content: center; width: 1.2em; height: 1.2em; @@ -91,16 +91,16 @@ } .nav-col:last-child { border-right: none; } - /* Überschrift: auf Desktop ausgeblendet, auf Mobile als Accordion-Toggle */ .nav-col-header { - display: none; + display: flex; align-items: center; justify-content: space-between; - padding: 0.75rem 1.1rem; - font-size: 0.85rem; font-weight: 600; + padding: 0.75rem 1.1rem 0.5rem; + font-size: 1.275rem; font-weight: 700; color: var(--color-text); - cursor: pointer; + cursor: default; + border-bottom: 1px solid var(--color-secondary); } - .nav-col-arrow { font-size: 0.65rem; transition: transform 0.2s; } + .nav-col-arrow { display: none; font-size: 0.65rem; transition: transform 0.2s; } .nav-col-body { padding: 0.35rem 0; } @@ -158,7 +158,8 @@ .nav-col { border-right: none; border-bottom: 1px solid var(--color-secondary); } .nav-col:last-child { border-bottom: none; } - .nav-col-header { display: flex; } + .nav-col-header { font-size: 0.85rem; font-weight: 600; cursor: pointer; padding: 0.75rem 1.1rem; border-bottom: none; } + .nav-col-arrow { display: block; } .nav-col.col-open .nav-col-arrow { transform: rotate(90deg); } .nav-col-body { display: none; padding: 0; } @@ -256,23 +257,18 @@ ${link('/dating/matches.html', '', 'Matches' )} `; + const bdsmActive = ['/games/bdsm/neubdsm.html', '/games/bdsm/bdsmingame.html', '/games/bdsm/bdsmplayers.html'].some(p => path.startsWith(p)) ? ' active' : ''; + const vanillaActive = ['/games/vanilla/neuvanilla.html', '/games/vanilla/vanillaingame.html', '/games/vanilla/vanillawarten.html'].some(p => path.startsWith(p)) ? ' active' : ''; + const col4Html = ` - ${gameGroup('VANILLA', 'Vanilla Game', [ - { href: '/games/vanilla/neuvanilla.html', icon: 'PLAY_NEW', label: 'Neue Session', id: 'navVanillaNeu' }, - { href: '#', icon: 'WAITING', label: 'Aktive Session', id: 'navVanillaAktiv' }, - { href: '/games/vanilla/vanillaingame.html', icon: 'PLAY_ACTIVE', label: 'Im Spiel', id: 'navVanillaImSpiel' }, - { href: '/games/vanilla/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, - { href: '/games/vanilla/toys.html', icon: 'TOYS', label: 'Toys' }, - { href: '/games/vanilla/entdecken.html', icon: 'DISCOVER', label: 'Entdecken' }, - ])} - ${gameGroup('BDSM', 'BDSM Game', [ - { href: '/games/bdsm/neubdsm.html', icon: 'PLAY_NEW', label: 'Neue Session', id: 'navBdsmNeu' }, - { href: '#', icon: 'WAITING', label: 'Aktive Session', id: 'navBdsmAktiv' }, - { href: '/games/bdsm/bdsmingame.html', icon: 'PLAY_ACTIVE', label: 'Im Spiel', id: 'navBdsmImSpiel' }, - { href: '/games/bdsm/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, - { href: '/games/bdsm/toys.html', icon: 'TOYS', label: 'Toys' }, - { href: '/games/bdsm/entdecken.html', icon: 'DISCOVER', label: 'Entdecken' }, - ])} + + ${I('VANILLA') || ''} + Vanilla Game + + + ${I('BDSM') || ''} + BDSM Game + ${gameGroup('CHASTITY', 'Chastity Game', [ { href: '/games/chastity/neulock.html', icon: 'NEW_LOCK', label: 'Neues Lock', id: 'navChastityNeu' }, { href: '#', icon: 'ACTIVE_LOCK', label: 'Aktives Lock', id: 'navChastityAktiv' }, @@ -283,6 +279,11 @@ { href: '/games/chastity/keyholder.html', icon: 'KEY', label: 'Keyholder' }, { href: '/games/chastity/unlock-history.html', icon: 'HISTORY', label: 'Code-Historie' }, ])} + ${gameGroup('CHECK', 'Aufgabenverwaltung', [ + { href: '/games/aufgaben/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, + { href: '/games/aufgaben/toys.html', icon: 'TOYS', label: 'Toys' }, + { href: '/games/aufgaben/entdecken.html',icon: 'DISCOVER', label: 'Entdecken' }, + ])} `; // ── Dropdown-HTML ──────────────────────────────────────────────────────── @@ -306,7 +307,7 @@ ])} ${column('colDating', 'Dating', col3Html, ['/dating/'])} ${column('colGames', 'Games', col4Html, [ - '/games/vanilla/', '/games/bdsm/', '/games/chastity/', + '/games/vanilla/', '/games/bdsm/', '/games/chastity/', '/games/aufgaben/', ])} - - +
+ + +
+ +
+
Simulation
+

Simuliert 100 Durchläufe mit der aktuellen Konfiguration und zeigt die erwartete Sperrdauer. Die Simulation basiert auf dem Idealfall, dass jede Karte sofort gezogen wird, sobald sie verfügbar ist – die tatsächliche Sperrdauer wird in der Praxis höher ausfallen.

+ + + +
+
+ + + + + + + + + + + + @@ -555,8 +839,14 @@ let editId = null; let editType = null; // 'CARDLOCK' | 'TIMELOCK' – beim Bearbeiten fest let isDirty = false; - let taskCtr = 0; let wheelCtr = 0; + + // ── Aufgaben-Sets ── + let _taskSets = []; + let _taskSetEditId = null; + let _taskSetTaskCtr = 0; + let _taskSetCallerType = null; // 'card' | 'timelock' | null + let _taskSetIsDirty = false; let pageNum = 0; let isLastPage = false; let isLoading = false; @@ -605,7 +895,7 @@ const type = currentModalType(); document.getElementById('sectionCardlock').style.display = type === 'CARDLOCK' ? '' : 'none'; document.getElementById('sectionTimelock').style.display = type === 'TIMELOCK' ? '' : 'none'; - updateTaskModeVisibility(); + document.getElementById('simSection').style.display = type === 'CARDLOCK' ? '' : 'none'; } // ── Karten-Grid ── @@ -767,46 +1057,316 @@ document.getElementById('rowPenaltyValue').style.display = needsVal ? '' : 'none'; } - // ── Aufgaben ── - function addTask(data) { - const id = ++taskCtr; - const titleVal = (data?.title||data?.text||'').replace(/"/g,'"'); - const descVal = (data?.description||'').replace(//g,'>'); + // ── Aufgaben-Sets: Seite ── + async function loadTaskSets() { + try { + const res = await fetch('/chastity/task-sets'); + if (!res.ok) return; + _taskSets = await res.json(); + renderTaskSetList(); + populateTaskSetSelects(); + } catch(e) { console.error(e); } + } + + function renderTaskSetList() { + const list = document.getElementById('taskSetList'); + list.innerHTML = ''; + if (!_taskSets.length) { document.getElementById('taskSetEmpty').style.display = ''; return; } + document.getElementById('taskSetEmpty').style.display = 'none'; + _taskSets.forEach(s => appendTaskSetCard(s)); + } + + function appendTaskSetCard(s) { + const list = document.getElementById('taskSetList'); + const card = document.createElement('div'); + card.className = 'template-card'; + card.style.cursor = 'pointer'; + const preview = s.tasks.length + ? s.tasks.slice(0,3).map(t => esc(t.title)).join(', ') + (s.tasks.length > 3 ? ' …' : '') + : 'Keine Aufgaben'; + card.innerHTML = ` +
+
+ 📋 +
+
+
${esc(s.name)}
+
${s.tasks.length} Aufgabe(n): ${preview}
+
+
+ +
+
`; + card.addEventListener('click', () => openTaskSetModal(s.id)); + list.appendChild(card); + } + + // ── Aufgaben-Sets: Modal ── + function openTaskSetModal(id, callerType) { + _taskSetEditId = id || null; + _taskSetCallerType = callerType || null; + _taskSetTaskCtr = 0; + document.getElementById('taskSetTaskList').innerHTML = ''; + document.getElementById('taskSetError').style.display = 'none'; + document.getElementById('taskSetModalTitle').textContent = id ? 'Aufgaben-Set bearbeiten' : 'Aufgaben-Set erstellen'; + if (id) { + const set = _taskSets.find(s => s.id === id); + if (set) { document.getElementById('fTaskSetName').value = set.name; (set.tasks||[]).forEach(t => addTaskSetTask(t)); } + } else { + document.getElementById('fTaskSetName').value = ''; + } + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + alignModalToContent(); + document.getElementById('taskSetModalBackdrop').classList.add('open'); + _taskSetIsDirty = false; + setTimeout(() => { + document.getElementById('taskSetModalBackdrop').querySelectorAll('input, textarea, select').forEach(el => { + el.addEventListener('input', () => { _taskSetIsDirty = true; }, { passive: true }); + el.addEventListener('change', () => { _taskSetIsDirty = true; }, { passive: true }); + }); + }, 0); + document.getElementById('fTaskSetName').focus(); + } + + function tryCloseTaskSetModal() { + if (_taskSetIsDirty) { + const confirm = document.getElementById('taskSetDiscardConfirm'); + confirm.style.display = 'flex'; + confirm.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); + } else { + closeTaskSetModal(); + } + } + + function cancelTaskSetDiscard() { + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + } + + function closeTaskSetModal() { + document.getElementById('taskSetModalBackdrop').classList.remove('open'); + document.getElementById('taskSetDiscardConfirm').style.display = 'none'; + _taskSetIsDirty = false; + _taskSetEditId = null; _taskSetCallerType = null; + } + + function toggleTaskAccItem(id) { + const target = document.getElementById('ts-' + id); + if (!target) return; + const isOpen = target.classList.contains('is-open'); + document.querySelectorAll('#taskSetTaskList .task-acc-item').forEach(el => el.classList.remove('is-open')); + if (!isOpen) target.classList.add('is-open'); + } + + function addTaskSetTask(data) { + const id = ++_taskSetTaskCtr; + const titleVal = (data?.title || '').replace(/"/g, '"'); + const descVal = (data?.description || '').replace(//g, '>'); const minVal = data?.minutes != null ? data.minutes : ''; const div = document.createElement('div'); - div.className = 'task-item'; div.id = 'mt-' + id; + div.className = 'task-acc-item'; div.id = 'ts-' + id; div.innerHTML = ` -
-
Titel *
-
-
Minuten
-
- +
+ + +
- `; - const containerId = currentModalType() === 'CARDLOCK' ? 'modalCardTaskList' : 'modalTaskList'; - document.getElementById(containerId).appendChild(div); - updateTaskModeVisibility(); +
+
+ + +
+
+ + +
+
`; + document.getElementById('taskSetTaskList').appendChild(div); + _taskSetIsDirty = true; } - function removeTask(id) { document.getElementById('mt-'+id)?.remove(); updateTaskModeVisibility(); } - function updateTaskModeVisibility() { - const type = currentModalType(); - if (type === 'CARDLOCK') { - const hasCardTasks = document.querySelectorAll('#modalCardTaskList .task-item').length > 0; - document.getElementById('sectionCardTaskMode').style.display = hasCardTasks ? '' : 'none'; - } - // For TimeLock: sectionTaskMode is always visible when taskTimingFields is open - } - function collectTasks() { - return Array.from(document.querySelectorAll('.task-item')).map(item => { - const id = item.id.replace('mt-',''); - const title = document.getElementById('mt-title-'+id)?.value.trim(); - const desc = document.getElementById('mt-desc-' +id)?.value.trim(); - const mins = parseInt(document.getElementById('mt-min-' +id)?.value); + + function removeTaskSetTask(id) { document.getElementById('ts-'+id)?.remove(); _taskSetIsDirty = true; } + + function collectTaskSetTasks() { + return Array.from(document.querySelectorAll('#taskSetTaskList .task-acc-item')).map(item => { + const id = item.id.replace('ts-',''); + const title = document.getElementById('ts-title-'+id)?.value.trim(); + const desc = document.getElementById('ts-desc-' +id)?.value.trim(); + const mins = parseInt(document.getElementById('ts-min-' +id)?.value); return title ? { title, description: desc||null, minutes: isNaN(mins)?null:mins } : null; }).filter(Boolean); } + async function saveTaskSet() { + const name = document.getElementById('fTaskSetName').value.trim(); + const errEl = document.getElementById('taskSetError'); + if (!name) { errEl.textContent = 'Name ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + const tasks = collectTaskSetTasks(); + const url = _taskSetEditId ? `/chastity/task-sets/${_taskSetEditId}` : '/chastity/task-sets'; + const method = _taskSetEditId ? 'PUT' : 'POST'; + try { + const res = await fetch(url, { method, headers:{'Content-Type':'application/json'}, body:JSON.stringify({name, tasks}) }); + if (!res.ok) { errEl.textContent = 'Fehler beim Speichern.'; errEl.style.display = ''; return; } + const saved = await res.json(); + const caller = _taskSetCallerType; + closeTaskSetModal(); + await loadTaskSets(); + if (caller) { + const sel = document.getElementById(caller === 'card' ? 'fCardTaskSetId' : 'fTimelockTaskSetId'); + if (sel) { sel.value = saved.id; onTaskSetChange(caller); markDirty(); } + } + } catch(e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteTaskSet(id, name) { + if (!confirm(`Aufgaben-Set „${name}" wirklich löschen?`)) return; + const res = await fetch(`/chastity/task-sets/${id}`, { method:'DELETE' }); + if (res.ok || res.status === 204) await loadTaskSets(); + } + + const GS_TOOLS = [ + { value: 'UMSCHNALLDILDO', label: 'Strap-on' }, + { value: 'MUND', label: 'Oral' }, + { value: 'ANUS', label: 'Anal' }, + ]; + function gsGetChecked(prefix) { + return GS_TOOLS.filter(t => document.getElementById(prefix + t.value)?.checked).map(t => t.value); + } + function gsSetChecked(prefix, values) { + GS_TOOLS.forEach(t => { + const el = document.getElementById(prefix + t.value); + if (el) el.checked = (values || []).includes(t.value); + }); + } + + const GAME_SPIELDAUER = [ + { label: 'Sehr kurz' }, + { label: 'Kurz' }, + { label: 'Mittel' }, + { label: 'Lang' }, + { label: 'Sehr lang' }, + ]; + + function populateGameSetSelect() { + const sel = document.getElementById('fGameSetId'); + if (!sel) return; + const cur = sel.value; + sel.innerHTML = ''; + _gameSets.forEach(s => { + const opt = document.createElement('option'); + opt.value = s.id; opt.textContent = s.name; + sel.appendChild(opt); + }); + sel.value = cur; + } + + function onGameSetChange() { + const val = document.getElementById('fGameSetId')?.value; + document.getElementById('gameSetSpieldauerRow').style.display = val ? '' : 'none'; + } + + function updateGameSpieldauer(val) { + document.getElementById('valGameSpieldauer').textContent = GAME_SPIELDAUER[val]?.label || ''; + } + + function populateTaskSetSelects() { + for (const selId of ['fCardTaskSetId', 'fTimelockTaskSetId']) { + const sel = document.getElementById(selId); + if (!sel) continue; + const cur = sel.value; + sel.innerHTML = ''; + _taskSets.forEach(s => { + const opt = document.createElement('option'); + opt.value = s.id; opt.textContent = `${s.name} (${s.tasks.length} Aufgabe${s.tasks.length !== 1 ? 'n' : ''})`; + sel.appendChild(opt); + }); + sel.value = cur; + } + } + + function onTaskSetChange(type) { + const selId = type === 'card' ? 'fCardTaskSetId' : 'fTimelockTaskSetId'; + const previewId = type === 'card' ? 'cardTaskSetPreview' : 'timelockTaskSetPreview'; + const val = document.getElementById(selId)?.value; + const preview = document.getElementById(previewId); + if (!preview) return; + if (!val) { preview.style.display = 'none'; preview.innerHTML = ''; return; } + const set = _taskSets.find(s => s.id === val); + if (!set || !set.tasks.length) { preview.style.display = 'none'; preview.innerHTML = ''; return; } + preview.style.display = ''; + preview.innerHTML = set.tasks.map(t => ` +
+ ${esc(t.title)} + ${t.minutes ? `${t.minutes} Min.` : ''} + ${t.description ? `
${esc(t.description)}
` : ''} +
`).join(''); + } + + // ── Simulation ── + async function runSimulation() { + const cardCountsMin = {}, cardCountsMax = {}; + CARD_DEFS.forEach(c => { + const mn = parseInt(document.getElementById('min_' + c.id)?.value) || 0; + const mx = parseInt(document.getElementById('max_' + c.id)?.value) || 0; + if (mn > 0) cardCountsMin[c.id] = mn; + if (mx > 0) cardCountsMax[c.id] = mx; + }); + + const btn = document.getElementById('simBtn'); + btn.disabled = true; + document.getElementById('simRunning').style.display = ''; + document.getElementById('simResult').style.display = 'none'; + document.getElementById('simProgressBar').style.width = '0%'; + document.getElementById('simProgressText').textContent = '0 von 100'; + + try { + const res = await fetch('/cardlock/templates/simulate', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + cardCountsMin, + cardCountsMax, + pickEveryMinute: tpToMinutes('pe'), + accumulatePicks: document.getElementById('fAccumulate').checked + }) + }); + if (!res.ok) return; + + const reader = res.body.getReader(); + const decoder = new TextDecoder(); + let buffer = ''; + + while (true) { + const { done, value } = await reader.read(); + if (done) break; + buffer += decoder.decode(value, { stream: true }); + let pos; + while ((pos = buffer.indexOf('\n\n')) !== -1) { + const chunk = buffer.slice(0, pos); + buffer = buffer.slice(pos + 2); + let eventName = '', data = ''; + for (const line of chunk.split('\n')) { + if (line.startsWith('event:')) eventName = line.slice(6).trim(); + else if (line.startsWith('data:')) data = line.slice(5).trim(); + } + if (eventName === 'progress') { + const p = JSON.parse(data); + document.getElementById('simProgressBar').style.width = (p.done / p.total * 100) + '%'; + document.getElementById('simProgressText').textContent = `${p.done} von ${p.total}`; + } else if (eventName === 'result') { + const r = JSON.parse(data); + document.getElementById('simMin').textContent = fmtMinutes(r.min); + document.getElementById('simAvg').textContent = fmtMinutes(r.avg); + document.getElementById('simMax').textContent = fmtMinutes(r.max); + document.getElementById('simRunning').style.display = 'none'; + document.getElementById('simResult').style.display = ''; + } + } + } + } finally { + btn.disabled = false; + } + } + // ── Fehler ── function clearErr(rowId) { const r = document.getElementById(rowId); r?.classList.remove('field-error'); r?.querySelector('.field-error-msg')?.remove(); } function setErr(rowId, msg) { @@ -826,8 +1386,8 @@ function alignModalToContent() { const rect = document.querySelector('.content')?.getBoundingClientRect(); if (!rect) return; - const box = document.querySelector('.modal-box'); - box.style.width = Math.min(rect.width, 720) + 'px'; + document.getElementById('modalBackdrop').querySelector('.modal-box').style.width = Math.min(rect.width, 720) + 'px'; + document.getElementById('taskSetModalBackdrop').querySelector('.modal-box').style.width = Math.min(rect.width, 900) + 'px'; } function openModal(template) { @@ -837,11 +1397,10 @@ document.getElementById('modalTitle').textContent = editId ? 'Vorlage bearbeiten' : 'Vorlage erstellen'; document.getElementById('modalError').style.display = 'none'; document.getElementById('modalSaveBtn').disabled = false; - document.getElementById('modalTaskList').innerHTML = ''; document.getElementById('fSpinToggle').checked = false; toggleWheel(false); document.getElementById('errGreen').style.display = 'none'; - taskCtr = 0; wheelCtr = 0; + wheelCtr = 0; // Typ-Auswahl: nur beim Erstellen sichtbar document.getElementById('sectionTypeSelect').style.display = editId ? 'none' : ''; @@ -903,13 +1462,27 @@ toggleHygiene(hygieneOn); if (hygieneOn) { tpFromMinutes('he', template.hygineOpeningEveryMinites); tpFromMinutes('hd', template.hygineOpeningDurationMinutes||30); } - // Aufgaben - (template?.tasks||[]).forEach(t => addTask(t)); + // Task mode const mode = template?.taskMode || template?.taskCardMode || 'RANDOM'; const radioName = type === 'CARDLOCK' ? 'modalCardTaskMode' : 'modalTaskMode'; const radioEl = document.querySelector(`input[name="${radioName}"][value="${mode}"]`); if (radioEl) radioEl.checked = true; - updateTaskModeVisibility(); + + // Aufgaben-Set + populateTaskSetSelects(); + const taskSetId = template?.taskSetId || ''; + document.getElementById('fCardTaskSetId').value = taskSetId; + document.getElementById('fTimelockTaskSetId').value = taskSetId; + onTaskSetChange('card'); + onTaskSetChange('timelock'); + + // Spiel-Set + populateGameSetSelect(); + document.getElementById('fGameSetId').value = template?.gameSetId || ''; + onGameSetChange(); + const sdIdx = template?.gameSpieldauerIdx ?? 2; + document.getElementById('sldGameSpieldauer').value = sdIdx; + updateGameSpieldauer(sdIdx); alignModalToContent(); document.getElementById('modalBackdrop').classList.add('open'); @@ -953,9 +1526,17 @@ document.getElementById('modalBackdrop').addEventListener('click', e => { if (e.target===e.currentTarget) tryCloseModal(); }); document.addEventListener('keydown', e => { - if (e.key === 'Escape' && document.getElementById('modalBackdrop').classList.contains('open')) { - e.preventDefault(); - tryCloseModal(); + if (e.key !== 'Escape') return; + if (document.getElementById('gsItemModal').classList.contains('open')) { + e.preventDefault(); closeGsItemModal(); + } else if (document.getElementById('gsSetModal').classList.contains('open')) { + e.preventDefault(); closeGsSetModal(); + } else if (document.getElementById('gsEditModal').classList.contains('open')) { + e.preventDefault(); closeGsEditModal(); + } else if (document.getElementById('taskSetModalBackdrop').classList.contains('open')) { + e.preventDefault(); tryCloseTaskSetModal(); + } else if (document.getElementById('modalBackdrop').classList.contains('open')) { + e.preventDefault(); tryCloseModal(); } }); window.addEventListener('resize', () => { if (document.getElementById('modalBackdrop').classList.contains('open')) alignModalToContent(); }); @@ -972,7 +1553,6 @@ if (!name) { setErr('rowName','Name ist ein Pflichtfeld.'); firstError = document.getElementById('rowName'); } else clearErr('rowName'); - const tasks = collectTasks(); const hygieneOn = document.getElementById('fHygieneToggle').checked; const hygieneEvery = hygieneOn ? tpToMinutes('he') : null; const hygieneDur = hygieneOn ? tpToMinutes('hd') : null; @@ -1007,7 +1587,9 @@ const totalMax = CARD_DEFS.reduce((s,c)=>s+(parseInt(document.getElementById('max_'+c.id).value)||0),0); if (totalMax===0) { showModalError('Das Deck muss mindestens eine Karte enthalten.'); firstError=firstError||document.getElementById('modalError'); } const hasTaskCards = (parseInt(document.getElementById('min_TASK').value)||0)>0 || (parseInt(document.getElementById('max_TASK').value)||0)>0; - if (hasTaskCards && tasks.length===0) { showModalError('Aufgaben-Karten konfiguriert, aber keine Aufgaben definiert.'); firstError=firstError||document.getElementById('modalError'); } + if (hasTaskCards && !document.getElementById('fCardTaskSetId').value) { showModalError('Aufgaben-Karten konfiguriert, aber kein Aufgaben-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } + const hasGameCards = (parseInt(document.getElementById('min_GAME_CARD').value)||0)>0 || (parseInt(document.getElementById('max_GAME_CARD').value)||0)>0; + if (hasGameCards && !document.getElementById('fGameSetId').value) { showModalError('Spiel-Karten konfiguriert, aber kein Spiel-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } if (firstError) { firstError.scrollIntoView({behavior:'smooth',block:'center'}); return; } @@ -1024,8 +1606,11 @@ showRemainingCards: document.getElementById('fShowRemaining').checked, hygineOpeningEveryMinites: hygieneEvery, hygineOpeningDurationMinutes: hygieneDur, - tasks, requiresVerification: document.getElementById('fRequiresVerification').checked, + taskSetId: document.getElementById('fCardTaskSetId').value || null, + requiresVerification: document.getElementById('fRequiresVerification').checked, taskMode: document.querySelector('input[name="modalCardTaskMode"]:checked')?.value||'RANDOM', + gameSetId: document.getElementById('fGameSetId').value || null, + gameSpieldauerIdx: parseInt(document.getElementById('sldGameSpieldauer').value) || 2, }; } else { // TimeLock @@ -1038,7 +1623,7 @@ if (hasTaskTiming) { taskEvery = tpToMinutes('te'); if (taskEvery < 1) { showModalError('Aufgaben-Intervall muss mindestens 1 Minute betragen.'); firstError=firstError||document.getElementById('modalError'); } - if (tasks.length === 0) { showModalError('Aufgaben-Timing aktiviert, aber keine Aufgaben definiert.'); firstError=firstError||document.getElementById('modalError'); } + if (!document.getElementById('fTimelockTaskSetId').value) { showModalError('Aufgaben-Timing aktiviert, aber kein Aufgaben-Set ausgewählt.'); firstError=firstError||document.getElementById('modalError'); } const mt = parseInt(document.getElementById('fMinTasks').value); minTasksPerDay = isNaN(mt)||mt<1 ? null : mt; } @@ -1100,7 +1685,8 @@ endTimeVisible: document.getElementById('fEndTimeVisible').checked, hygineOpeningEveryMinites: hygieneEvery, hygineOpeningDurationMinutes: hygieneDur, - tasks, taskEveryMinutes: taskEvery, minTasksPerDay, + taskSetId: document.getElementById('fTimelockTaskSetId').value || null, + taskEveryMinutes: taskEvery, minTasksPerDay, spinningWheelEntries: wheelEntries, spinsEveryMinutes: spinsEvery, minSpinsPerDay, requiresVerification: document.getElementById('fRequiresVerification').checked, taskMode: document.querySelector('input[name="modalTaskMode"]:checked')?.value||'RANDOM', @@ -1145,7 +1731,8 @@ const hygText = t.hygineOpeningEveryMinites ? `alle ${fmtMinutes(t.hygineOpeningEveryMinites)}, ${fmtMinutes(t.hygineOpeningDurationMinutes)} offen` : 'Keine'; - const metaLine = `Hygiene: ${hygText} · Verif.: ${t.requiresVerification ? 'Ja' : 'Nein'}${t.taskCount ? ' · ' + t.taskCount + ' Aufgabe(n)' : ''}`; + const setName = t.taskSetId ? (_taskSets.find(s => s.id === t.taskSetId)?.name || 'Set') : null; + const metaLine = `Hygiene: ${hygText} · Verif.: ${t.requiresVerification ? 'Ja' : 'Nein'}${setName ? ' · Set: ' + esc(setName) : ''}`; const publishedBadge = t.published ? `🌐 Veröffentlicht` : ''; @@ -1194,10 +1781,11 @@ } } - function resetList() { + async function resetList() { pageNum = 0; isLastPage = false; isLoading = false; document.getElementById('templateList').innerHTML = ''; document.getElementById('listEmpty').style.display = 'none'; + await loadTaskSets(); loadNextPage(); loadSubscribedTemplates(); } @@ -1296,6 +1884,10 @@ if (res.ok || res.status === 204) resetList(); } + document.getElementById('taskSetModalBackdrop').addEventListener('click', e => { + if (e.target === e.currentTarget) tryCloseTaskSetModal(); + }); + // ── IntersectionObserver für Infinite Scroll ── const observer = new IntersectionObserver(entries => { if (entries[0].isIntersecting) loadNextPage(); @@ -1303,6 +1895,426 @@ observer.observe(document.getElementById('scrollSentinel')); resetList(); + loadGameSets(); + + // ════════════════════════════════════════════════ + // Spiel-Sets + // ════════════════════════════════════════════════ + + let _gameSets = []; + let _gsEditSetId = null; // set being renamed + let _gsSetCaller = null; // 'template' when opened from the template modal + let _gsOpenSetId = null; // set currently open in the content popup + let _gsItemType = null; // 'aufgabe' | 'zeitstrafe' | 'finisher' + let _gsItemSetId = null; + let _gsItemIdx = null; // null = new, number = editing + + async function loadGameSets() { + try { + const res = await fetch('/chastity/game-sets'); + if (!res.ok) return; + _gameSets = await res.json(); + renderGameSetList(); + populateGameSetSelect(); + if (_gsOpenSetId) renderGsEditModalContent(_gsOpenSetId); + } catch (e) { console.error(e); } + } + + function renderGameSetList() { + const list = document.getElementById('gameSetList'); + list.innerHTML = ''; + document.getElementById('gameSetEmpty').style.display = _gameSets.length ? 'none' : ''; + document.getElementById('btnNewGameSet').disabled = _gameSets.length >= 5; + + _gameSets.forEach(s => { + const aufgaben = s.aufgaben || []; + const zeitstrafen = s.zeitstrafen || []; + const finisher = s.finisher || []; + const levelCounts = [1,2,3,4,5].map(l => aufgaben.filter(a => a.level === l).length); + + const lvlBadges = levelCounts.map((c, i) => { + const cls = c >= 3 ? 'gs-badge gs-badge-neutral' : 'gs-badge'; + return `L${i+1}: ${c}`; + }).join(''); + const finBadgeCls = finisher.length >= 1 ? 'gs-badge gs-badge-neutral' : 'gs-badge'; + + const card = document.createElement('div'); + card.className = 'gs-card'; + card.id = 'gscard_' + s.id; + card.addEventListener('click', () => openGsEditModal(s.id)); + card.innerHTML = ` +
+
+
${esc(s.name)}
+
+ ${lvlBadges} + Zeitstrafen: ${zeitstrafen.length} + Finisher: ${finisher.length} +
+
+
+ + +
+
`; + list.appendChild(card); + }); + } + + function toggleGsListItem(id) { + document.getElementById(id)?.classList.toggle('open'); + } + + // ── Set content popup ────────────────────────── + + function openGsEditModal(setId) { + _gsOpenSetId = setId; + renderGsEditModalContent(setId); + document.getElementById('gsEditModal').classList.add('open'); + } + + function closeGsEditModal() { + document.getElementById('gsEditModal').classList.remove('open'); + _gsOpenSetId = null; + } + + function renderGsEditModalContent(setId) { + const container = document.getElementById('gsEditModalContent'); + if (!container) return; + const s = _gameSets.find(x => x.id === setId); + if (!s) { closeGsEditModal(); return; } + document.getElementById('gsEditModalTitle').textContent = s.name; + const aufgaben = s.aufgaben || []; + const zeitstrafen = s.zeitstrafen || []; + const finisher = s.finisher || []; + let html = ''; + for (let l = 1; l <= 5; l++) { + const items = aufgaben.map((a, i) => ({...a, _gi: i})).filter(a => a.level === l); + const warnCls = items.length < 3 ? ' gs-sub-warn' : ''; + const itemsHtml = items.map(a => gsAufgabeRowHtml(s.id, a._gi, a)).join('') || + '
'; + html += `
+
+ Level ${l} (${items.length}/3+) + +
+
${itemsHtml}
`; + } + const zeitHtml = zeitstrafen.map((z, i) => gsZeitstrafeRowHtml(s.id, i, z)).join('') || + '
'; + html += `
+
+ Zeitstrafen (${zeitstrafen.length}) + +
+
${zeitHtml}
`; + const finWarnCls = finisher.length < 1 ? ' gs-sub-warn' : ''; + const finHtml = finisher.map((f, i) => gsFinisherRowHtml(s.id, i, f)).join('') || + '
'; + html += `
+
+ Finisher (${finisher.length}/1+) + +
+
${finHtml}
`; + container.innerHTML = html; + } + + // ── Row HTML helpers ─────────────────────────── + + function gsAufgabeRowHtml(setId, gi, a) { + const toolLabels = (a.benoetigt || []).map(v => GS_TOOLS.find(t => t.value === v)?.label).filter(Boolean); + const badges = [ + a.minutes ? `${a.minutes} Min.` : '', + ...toolLabels.map(l => `${l}`), + ].join(''); + const desc = a.description ? `
${esc(a.description)}
` : ''; + return `
+
+ ${esc(a.title)} +
${badges}
+
+
${desc} +
+ + + +
+
`; + } + + function gsZeitstrafeRowHtml(setId, idx, z) { + const timeStr = (z.minMinutes != null ? z.minMinutes : '?') + '–' + (z.maxMinutes != null ? z.maxMinutes : '?') + ' Min.'; + const sperrtLabels = (z.sperrt || []).map(v => GS_TOOLS.find(t => t.value === v)?.label).filter(Boolean); + const badges = [ + z.level ? `L${z.level}` : '', + `${timeStr}`, + ...sperrtLabels.map(l => `🔒 ${l}`), + z.releaseText ? `📝 Aufhebung` : '', + z.tempUnlockBeforeRequired ? `🔓 Vorher` : '', + z.tempUnlockAfterRequired ? `🔓 Nachher` : '', + ].join(''); + const releaseRow = z.releaseText ? `
Bei Aufhebung:
${esc(z.releaseText)}
` : ''; + const desc = z.description ? `
${esc(z.description)}
` : ''; + return `
+
+ ${esc(z.title)} +
${badges}
+
+
${desc}${releaseRow} +
+ + + +
+
`; + } + + function gsFinisherRowHtml(setId, idx, f) { + const badges = [ + f.tempUnlockBeforeRequired ? `🔓 Vorher` : '', + f.tempUnlockAfterRequired ? `🔓 Nachher` : '', + ].join(''); + const desc = f.description ? `
${esc(f.description)}
` : ''; + return `
+
+ ${esc(f.title)} +
${badges}
+
+
${desc} +
+ + + +
+
`; + } + + // ── Set create / rename modal ────────────────── + + function openGsSetModal(id, caller) { + _gsEditSetId = id || null; + _gsSetCaller = caller || null; + document.getElementById('gsSetModalTitle').textContent = id ? 'Spiel-Set umbenennen' : 'Neues Spiel-Set'; + document.getElementById('gsSetName').value = id ? (_gameSets.find(s => s.id === id)?.name || '') : ''; + document.getElementById('gsSetError').style.display = 'none'; + document.getElementById('gsSetModal').classList.add('open'); + setTimeout(() => document.getElementById('gsSetName').focus(), 50); + } + + function closeGsSetModal() { + document.getElementById('gsSetModal').classList.remove('open'); + _gsEditSetId = _gsSetCaller = null; + } + + async function saveGsSet() { + const name = document.getElementById('gsSetName').value.trim(); + const errEl = document.getElementById('gsSetError'); + if (!name) { errEl.textContent = 'Name ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + errEl.style.display = 'none'; + const set = _gsEditSetId ? _gameSets.find(s => s.id === _gsEditSetId) : null; + const url = _gsEditSetId ? `/chastity/game-sets/${_gsEditSetId}` : '/chastity/game-sets'; + const method = _gsEditSetId ? 'PUT' : 'POST'; + const body = { name, + aufgaben: set?.aufgaben || [], + zeitstrafen: set?.zeitstrafen || [], + finisher: set?.finisher || [] }; + try { + const res = await fetch(url, { method, headers: {'Content-Type':'application/json'}, body: JSON.stringify(body) }); + if (res.ok) { + const saved = await res.json().catch(() => null); + const caller = _gsSetCaller; + closeGsSetModal(); + await loadGameSets(); + if (caller === 'template' && saved?.id) { + document.getElementById('fGameSetId').value = saved.id; + onGameSetChange(); + markDirty(); + } + return; + } + const b = await res.json().catch(() => ({})); + errEl.textContent = b.error || 'Fehler.'; errEl.style.display = ''; + } catch (e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteGameSet(id, name) { + if (!confirm(`Spiel-Set „${name}" wirklich löschen?`)) return; + const res = await fetch(`/chastity/game-sets/${id}`, { method: 'DELETE' }); + if (res.ok || res.status === 204) loadGameSets(); + } + + // ── Item modal ───────────────────────────────── + + function openGsItemModal(type, setId, itemIdx, contextLevel) { + _gsItemType = type; + _gsItemSetId = setId; + _gsItemIdx = itemIdx !== null && itemIdx !== undefined ? itemIdx : null; + + const titles = { aufgabe: 'Aufgabe', zeitstrafe: 'Zeitstrafe', finisher: 'Finisher' }; + document.getElementById('gsItemModalTitle').textContent = + (_gsItemIdx !== null ? 'Bearbeiten: ' : 'Neu: ') + titles[type]; + + // Reset fields + document.getElementById('gsItemTitle').value = ''; + document.getElementById('gsItemDesc').value = ''; + document.getElementById('gsItemMinutes').value = ''; + document.getElementById('gsItemMinMin').value = ''; + document.getElementById('gsItemMaxMin').value = ''; + document.getElementById('gsItemReleaseText').value = ''; + document.getElementById('gsItemBefore').checked = false; + document.getElementById('gsItemAfter').checked = false; + document.getElementById('gsItemAufgabeLevel').value = contextLevel || 1; + document.getElementById('gsItemZeitstrafeLevel').value = 1; + document.getElementById('gsItemError').style.display = 'none'; + gsSetChecked('gsItemBen_', []); + gsSetChecked('gsItemSperr_', []); + + // Show/hide type-specific rows + document.getElementById('gsItemAufgabeRow').style.display = type === 'aufgabe' ? '' : 'none'; + document.getElementById('gsItemBenoetigtRow').style.display = type === 'aufgabe' ? '' : 'none'; + document.getElementById('gsItemZeitstrafeRow').style.display = type === 'zeitstrafe' ? '' : 'none'; + document.getElementById('gsItemSperrtRow').style.display = type === 'zeitstrafe' ? '' : 'none'; + document.getElementById('gsItemUnlockRow').style.display = (type === 'zeitstrafe' || type === 'finisher') ? '' : 'none'; + + // Pre-fill when editing + if (_gsItemIdx !== null) { + const set = _gameSets.find(s => s.id === setId); + if (set) { + let item; + if (type === 'aufgabe') item = set.aufgaben[_gsItemIdx]; + if (type === 'zeitstrafe') item = set.zeitstrafen[_gsItemIdx]; + if (type === 'finisher') item = set.finisher[_gsItemIdx]; + if (item) { + document.getElementById('gsItemTitle').value = item.title || ''; + document.getElementById('gsItemDesc').value = item.description || ''; + if (type === 'aufgabe') { + document.getElementById('gsItemAufgabeLevel').value = item.level || 1; + document.getElementById('gsItemMinutes').value = item.minutes || ''; + gsSetChecked('gsItemBen_', item.benoetigt || []); + } + if (type === 'zeitstrafe') { + document.getElementById('gsItemZeitstrafeLevel').value = item.level || 1; + document.getElementById('gsItemMinMin').value = item.minMinutes ?? ''; + document.getElementById('gsItemMaxMin').value = item.maxMinutes ?? ''; + document.getElementById('gsItemReleaseText').value = item.releaseText || ''; + gsSetChecked('gsItemSperr_', item.sperrt || []); + } + if (type === 'zeitstrafe' || type === 'finisher') { + document.getElementById('gsItemBefore').checked = !!item.tempUnlockBeforeRequired; + document.getElementById('gsItemAfter').checked = !!item.tempUnlockAfterRequired; + } + } + } + } + + document.getElementById('gsItemModal').classList.add('open'); + setTimeout(() => document.getElementById('gsItemTitle').focus(), 50); + } + + function closeGsItemModal() { + document.getElementById('gsItemModal').classList.remove('open'); + _gsItemType = _gsItemSetId = _gsItemIdx = null; + } + + async function saveGsItem() { + const title = document.getElementById('gsItemTitle').value.trim(); + const errEl = document.getElementById('gsItemError'); + if (!title) { errEl.textContent = 'Titel ist ein Pflichtfeld.'; errEl.style.display = ''; return; } + errEl.style.display = 'none'; + + const set = _gameSets.find(s => s.id === _gsItemSetId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + + const desc = document.getElementById('gsItemDesc').value.trim() || null; + let item; + if (_gsItemType === 'aufgabe') { + const min = parseInt(document.getElementById('gsItemMinutes').value); + const ben = gsGetChecked('gsItemBen_'); + item = { title, description: desc, + level: parseInt(document.getElementById('gsItemAufgabeLevel').value) || 1, + minutes: isNaN(min) ? null : min, + benoetigt: ben.length ? ben : null }; + if (_gsItemIdx !== null) updated.aufgaben[_gsItemIdx] = item; + else updated.aufgaben.push(item); + } else if (_gsItemType === 'zeitstrafe') { + const minMin = parseInt(document.getElementById('gsItemMinMin').value); + const maxMin = parseInt(document.getElementById('gsItemMaxMin').value); + const sperrt = gsGetChecked('gsItemSperr_'); + const releaseText = document.getElementById('gsItemReleaseText').value.trim() || null; + item = { title, description: desc, + level: parseInt(document.getElementById('gsItemZeitstrafeLevel').value) || 1, + minMinutes: isNaN(minMin) ? null : minMin, + maxMinutes: isNaN(maxMin) ? null : maxMin, + releaseText, + tempUnlockBeforeRequired: document.getElementById('gsItemBefore').checked, + tempUnlockAfterRequired: document.getElementById('gsItemAfter').checked, + sperrt: sperrt.length ? sperrt : null }; + if (_gsItemIdx !== null) updated.zeitstrafen[_gsItemIdx] = item; + else updated.zeitstrafen.push(item); + } else if (_gsItemType === 'finisher') { + item = { title, description: desc, + tempUnlockBeforeRequired: document.getElementById('gsItemBefore').checked, + tempUnlockAfterRequired: document.getElementById('gsItemAfter').checked }; + if (_gsItemIdx !== null) updated.finisher[_gsItemIdx] = item; + else updated.finisher.push(item); + } + + try { + const res = await fetch(`/chastity/game-sets/${_gsItemSetId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) { closeGsItemModal(); await loadGameSets(); } + else { const b = await res.json().catch(()=>({})); errEl.textContent = b.error||'Fehler.'; errEl.style.display = ''; } + } catch (e) { errEl.textContent = 'Netzwerkfehler.'; errEl.style.display = ''; } + } + + async function deleteGsItem(type, setId, idx) { + if (!confirm('Eintrag wirklich löschen?')) return; + const set = _gameSets.find(s => s.id === setId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + if (type === 'aufgabe') updated.aufgaben.splice(idx, 1); + if (type === 'zeitstrafe') updated.zeitstrafen.splice(idx, 1); + if (type === 'finisher') updated.finisher.splice(idx, 1); + const res = await fetch(`/chastity/game-sets/${setId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) loadGameSets(); + } + + async function duplicateGsItem(type, setId, idx) { + const set = _gameSets.find(s => s.id === setId); + if (!set) return; + const updated = { + name: set.name, + aufgaben: JSON.parse(JSON.stringify(set.aufgaben || [])), + zeitstrafen: JSON.parse(JSON.stringify(set.zeitstrafen || [])), + finisher: JSON.parse(JSON.stringify(set.finisher || [])), + }; + if (type === 'aufgabe') updated.aufgaben.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.aufgaben[idx]))); + if (type === 'zeitstrafe') updated.zeitstrafen.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.zeitstrafen[idx]))); + if (type === 'finisher') updated.finisher.splice(idx + 1, 0, JSON.parse(JSON.stringify(set.finisher[idx]))); + const res = await fetch(`/chastity/game-sets/${setId}`, { + method: 'PUT', headers: {'Content-Type':'application/json'}, body: JSON.stringify(updated) + }); + if (res.ok) loadGameSets(); + } + + document.getElementById('gsSetModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsSetModal(); }); + document.getElementById('gsItemModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsItemModal(); }); + document.getElementById('gsEditModal').addEventListener('click', e => { if (e.target === e.currentTarget) closeGsEditModal(); }); diff --git a/src/main/resources/static/games/vanilla/aufgaben.html b/src/main/resources/static/games/vanilla/aufgaben.html index ec355e0..41e2d67 100644 --- a/src/main/resources/static/games/vanilla/aufgaben.html +++ b/src/main/resources/static/games/vanilla/aufgaben.html @@ -3,6 +3,7 @@ + Aufgaben – Vanilla – xXx Sphere @@ -629,8 +630,13 @@ .then(user => { if (!user) return; loadUserGruppen(); loadAboGruppen(); loadSystemGruppen(); }) .catch(() => { window.location.href = '/login.html'; }); + // ── Cross-tab notification ── + let _notifyOnLoad = false; + const gruppenBc = new BroadcastChannel('vanilla-gruppen-updated'); + // ── Load ── function loadUserGruppen() { + if (_notifyOnLoad) { _notifyOnLoad = false; try { gruppenBc.postMessage(1); } catch (_) {} } resetSelection(); document.getElementById('userLoading').style.display = 'block'; fetch(apiUrl(`/gruppe/list/user`) + `?page=${userPage}&size=${PAGE_SIZE}`) @@ -924,7 +930,7 @@ openItemId = null; pendingExpandId = gruppenId; pendingExpandType = 'user'; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else { document.getElementById('userActionError').textContent = 'Fehler beim Löschen (HTTP ' + r.status + ').'; } @@ -1131,7 +1137,7 @@ pendingExpandType = 'user'; } userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 409) { showModalError('Limit erreicht: maximal 10 eigene Aufgabengruppen möglich.'); } else { @@ -1157,7 +1163,7 @@ .then(r => { if (r.ok || r.status === 202) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 403) { document.getElementById('userActionError').textContent = 'Keine Berechtigung.'; btn.disabled = false; @@ -1179,7 +1185,7 @@ .then(r => { if (r.ok || r.status === 201) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); document.getElementById('systemActionError').textContent = ''; } else { document.getElementById('systemActionError').textContent = 'Fehler beim Kopieren (HTTP ' + r.status + ').'; @@ -1198,7 +1204,7 @@ .then(r => { if (r.ok || r.status === 201) { userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); document.getElementById('aboActionError').textContent = ''; } else if (r.status === 409) { document.getElementById('aboActionError').textContent = 'Limit erreicht: maximal 10 eigene Aufgabengruppen möglich.'; @@ -1628,7 +1634,7 @@ pendingExpandId = currentItemGruppeId; pendingExpandType = 'user'; userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else if (r.status === 409) { showItemError('Limit erreicht: maximal 100 Einträge pro Gruppe möglich.'); } else { @@ -1724,7 +1730,7 @@ pendingExpandId = selectedGruppeId; pendingExpandType = 'user'; userPage = 0; - loadUserGruppen(); + _notifyOnLoad = true; loadUserGruppen(); } else { const errEl = document.getElementById('publishError'); errEl.textContent = 'Fehler beim Veröffentlichen (HTTP ' + r.status + ').'; diff --git a/src/main/resources/static/games/vanilla/entdecken.html b/src/main/resources/static/games/vanilla/entdecken.html index 9ca94d1..a65f1d3 100644 --- a/src/main/resources/static/games/vanilla/entdecken.html +++ b/src/main/resources/static/games/vanilla/entdecken.html @@ -3,6 +3,7 @@ + Entdecken – xXx Sphere diff --git a/src/main/resources/static/games/vanilla/neuvanilla.html b/src/main/resources/static/games/vanilla/neuvanilla.html index 27a9699..fc0fa25 100644 --- a/src/main/resources/static/games/vanilla/neuvanilla.html +++ b/src/main/resources/static/games/vanilla/neuvanilla.html @@ -69,13 +69,36 @@ .card-field:last-child { margin-bottom: 0; } .card-field > label { font-size: 0.8rem; color: #aaa; margin: 0 0 0.5rem 0; display: block; } .check-group { display: flex; flex-wrap: wrap; gap: 0.5rem; } - .check-group--two-col { display: grid; grid-template-columns: 1fr 1fr; } - .check-item { display: inline-flex; align-items: flex-start; gap: 0.45rem; background: var(--color-secondary); border: 1px solid transparent; border-radius: 6px; padding: 0.4rem 0.7rem; cursor: pointer; transition: border-color 0.15s; user-select: none; } + .check-group--two-col { display: grid; grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); } + .check-item { display: inline-flex; align-items: flex-start; gap: 0.45rem; background: var(--color-secondary); border: 1px solid transparent; border-radius: 6px; padding: 0.4rem 0.7rem; cursor: pointer; transition: border-color 0.15s; user-select: none; position: relative; } .check-item.is-checked { border-color: var(--color-primary); } .check-item.is-disabled { opacity: 0.5; pointer-events: none; cursor: default; } .check-item input { accent-color: var(--color-primary); width: auto; margin-top: 0.15rem; cursor: pointer; flex-shrink: 0; } - .check-item-label { font-size: 0.88rem; color: var(--color-text); line-height: 1.3; } - .check-item-desc { display: block; font-size: 0.72rem; color: var(--color-muted); margin-top: 0.1rem; } + .check-item-label { font-size: 0.88rem; color: var(--color-text); line-height: 1.3; display: flex; align-items: center; gap: 0.2rem; flex-wrap: wrap; } + .check-item-desc { display: none; } + .check-item-tooltip { + display: none; position: absolute; bottom: calc(100% + 6px); left: 0; + background: var(--color-card); border: 1px solid var(--color-secondary); + border-radius: 6px; padding: 0.4rem 0.65rem; + font-size: 0.78rem; color: var(--color-muted); line-height: 1.4; + width: max-content; max-width: 210px; + z-index: 50; pointer-events: none; + box-shadow: 0 4px 12px rgba(0,0,0,0.35); + } + .check-item:hover .check-item-tooltip { display: block; } + .check-item-info-btn { + display: none; background: none; border: 1px solid var(--color-muted); + border-radius: 50%; width: 1.1rem; height: 1.1rem; font-size: 0.62rem; + color: var(--color-muted); cursor: pointer; padding: 0; line-height: 1; + flex-shrink: 0; font-style: normal; font-weight: normal; + align-items: center; justify-content: center; + } + .check-item-info-btn.active { border-color: var(--color-primary); color: var(--color-primary); } + .check-item-desc-mobile { display: none; font-size: 0.72rem; color: var(--color-muted); margin-top: 0.25rem; line-height: 1.4; } + @media (max-width: 679px) { + .check-item:hover .check-item-tooltip { display: none; } + .check-item-info-btn { display: inline-flex; } + } .field-error { font-size: 0.78rem; color: var(--color-primary); margin-top: 0.3rem; display: none; } .add-player-btn { width: 100%; background: transparent; border: 1px dashed var(--color-secondary); color: var(--color-muted); padding: 0.7rem; border-radius: 8px; font-size: 0.88rem; font-weight: normal; cursor: pointer; transition: border-color 0.15s, color 0.15s; margin-top: 0.5rem; } .add-player-btn:hover { border-color: var(--color-primary); color: var(--color-text); background: transparent; } @@ -163,7 +186,6 @@
📰 Feed & Profil
Beiträge teilen, Profile entdecken und die Community kennenlernen.
🏆 Community Votes
Verifikationen bewerten und an Community-Abstimmungen teilnehmen.
@@ -200,15 +204,16 @@
🔐 Sicherheit & Datenschutz
Wie deine Daten gespeichert werden und welche Sicherheitsmaßnahmen wir treffen.
🐛 Fehler melden
Hast du einen Fehler gefunden oder einen Verbesserungsvorschlag?
diff --git a/src/main/resources/static/help/vanilla.html b/src/main/resources/static/help/vanilla.html new file mode 100644 index 0000000..a1fdfad --- /dev/null +++ b/src/main/resources/static/help/vanilla.html @@ -0,0 +1,163 @@ + + + + + + + Hilfe Vanilla Game – xXx Sphere + + + + + +
+
+ + ‹ Zurück zur Hilfe-Übersicht + +
+

⚪ Vanilla Game

+

Leichtere, verspielte Sessions ohne strenge Regeln – für den entspannten Einstieg.

+
+ +
+
+ 📖 Was ist das Vanilla Game? + +
+
+

+ Das Vanilla Game ist der entspannte Einstieg in die Spielwelt von xXx Sphere. Es gibt keine festen Rollen und keine strikten Regeln – stattdessen ziehen beide Parteien abwechselnd Karten und erfüllen lockere Aufgaben. +

+

+ Das Spiel eignet sich besonders für Paare, die etwas Neues ausprobieren möchten, ohne sich auf ein intensiveres Regelwerk einzulassen. +

+
+ Tipp: Du kannst jederzeit eigene Aufgaben erstellen und den Schwierigkeitsgrad für jede Session selbst bestimmen. +
+
+
+ +
+
+ 🚀 Session starten + +
+
+

So startest du eine Vanilla-Session:

+
    +
  1. 1Navigiere zu Vanilla → Neue Session.
  2. +
  3. 2Wähle einen Aufgaben-Pool (eigene Aufgaben oder Community-Vorlagen).
  4. +
  5. 3Lege fest, ob ihr abwechselnd zieht oder eine Person die Aufgaben stellt.
  6. +
  7. 4Lade deinen Mitspieler per Nutzername oder Einladungslink ein.
  8. +
  9. 5Starte die Session – der erste Spieler zieht die erste Karte.
  10. +
+
+
+ +
+
+ 🃏 Karten und Aufgaben + +
+
+

+ Im Vanilla Game werden Karten aus einem gemeinsam gewählten Pool gezogen. Jede Karte beschreibt eine Aufgabe, die von einer oder beiden Personen erfüllt wird. Nach Erfüllung zieht die andere Person. +

+ + + + + + + +
AufgabentypBeschreibung
SoloNur die ziehende Person führt die Aufgabe aus.
GemeinsamBeide Personen führen die Aufgabe zusammen aus.
WahlDie ziehende Person entscheidet, wer die Aufgabe übernimmt.
+

+ Eigene Aufgaben kannst du unter Vanilla → Aufgaben verwalten. +

+
+
+ +
+
+ ❓ Kann ich eine Session pausieren? + +
+
+

+ Ja. Eine laufende Session kann von beiden Spielern jederzeit pausiert werden. Sie bleibt für 24 Stunden gespeichert und kann danach fortgesetzt werden. Nach 24 Stunden Inaktivität wird die Session automatisch beendet. +

+
+
+ +
+
+ ❓ Unterschied zwischen Vanilla und BDSM Game? + +
+
+

+ Das Vanilla Game hat keine festen Rollen, kein Protokoll und keine Strafmechanismen. Es eignet sich als Einstieg oder für entspannte Abende. Das BDSM Game hat explizite Rollen (Dom/Sub), ein Aufgaben- und Strafprotokoll sowie striktere Regeln. +

+
+ Du kannst beide Spiele unabhängig voneinander nutzen – deine Aufgaben-Sets lassen sich zwischen den Spielen teilen. +
+
+
+ +
+
+ + + + + + diff --git a/src/main/resources/static/js/card-defs.js b/src/main/resources/static/js/card-defs.js index 765fc0f..4726869 100644 --- a/src/main/resources/static/js/card-defs.js +++ b/src/main/resources/static/js/card-defs.js @@ -78,6 +78,30 @@ const CARD_DEFS = [ defMin: 0, defMax: 0, }, + { + id: 'SLOWMO_CARD', + img: '/img/card_slowmo.png', + name: 'Slow Motion', + desc: 'Alle gestarteten Aktionen (Hygiene-Öffnung, Freeze, Kartenintervall) dauern bis zum gewählten Zeitpunkt viermal so lange.', + defMin: 0, + defMax: 0, + }, + { + id: 'SPEEDUP_CARD', + img: '/img/card_speedup.png', + name: 'Speed Up', + desc: 'Alle gestarteten Aktionen (Hygiene-Öffnung, Freeze, Kartenintervall) dauern bis zum gewählten Zeitpunkt viermal so kurz.', + defMin: 0, + defMax: 0, + }, + { + id: 'GAME_CARD', + img: '/img/card_game.png', + name: 'Spiel-Karte', + desc: 'Ein Minispiel wird gestartet.', + defMin: 0, + defMax: 0, + }, ]; /** Lookup-Objekt für Konsumenten, die nach ID auf Name/Bild/Beschreibung zugreifen. */ diff --git a/src/main/resources/static/js/nav.js b/src/main/resources/static/js/nav.js index 1a44fb6..fac9c88 100644 --- a/src/main/resources/static/js/nav.js +++ b/src/main/resources/static/js/nav.js @@ -16,9 +16,9 @@ margin-right: 0.5rem; line-height: 1; } - .nav-burger:hover { border-color: var(--color-primary); color: var(--color-primary); } + .nav-burger:hover { border-color: var(--color-primary); color: #fff; } .nav-burger-icon { - font-size: 1.05rem; line-height: 1; + font-size: 1.575rem; line-height: 1; position: relative; display: inline-flex; align-items: center; justify-content: center; width: 1.2em; height: 1.2em; @@ -91,16 +91,16 @@ } .nav-col:last-child { border-right: none; } - /* Überschrift: auf Desktop ausgeblendet, auf Mobile als Accordion-Toggle */ .nav-col-header { - display: none; + display: flex; align-items: center; justify-content: space-between; - padding: 0.75rem 1.1rem; - font-size: 0.85rem; font-weight: 600; + padding: 0.75rem 1.1rem 0.5rem; + font-size: 1.275rem; font-weight: 700; color: var(--color-text); - cursor: pointer; + cursor: default; + border-bottom: 1px solid var(--color-secondary); } - .nav-col-arrow { font-size: 0.65rem; transition: transform 0.2s; } + .nav-col-arrow { display: none; font-size: 0.65rem; transition: transform 0.2s; } .nav-col-body { padding: 0.35rem 0; } @@ -158,7 +158,8 @@ .nav-col { border-right: none; border-bottom: 1px solid var(--color-secondary); } .nav-col:last-child { border-bottom: none; } - .nav-col-header { display: flex; } + .nav-col-header { font-size: 0.85rem; font-weight: 600; cursor: pointer; padding: 0.75rem 1.1rem; border-bottom: none; } + .nav-col-arrow { display: block; } .nav-col.col-open .nav-col-arrow { transform: rotate(90deg); } .nav-col-body { display: none; padding: 0; } @@ -256,23 +257,18 @@ ${link('/dating/matches.html', '', 'Matches' )} `; + const bdsmActive = ['/games/bdsm/neubdsm.html', '/games/bdsm/bdsmingame.html', '/games/bdsm/bdsmplayers.html'].some(p => path.startsWith(p)) ? ' active' : ''; + const vanillaActive = ['/games/vanilla/neuvanilla.html', '/games/vanilla/vanillaingame.html', '/games/vanilla/vanillawarten.html'].some(p => path.startsWith(p)) ? ' active' : ''; + const col4Html = ` - ${gameGroup('VANILLA', 'Vanilla Game', [ - { href: '/games/vanilla/neuvanilla.html', icon: 'PLAY_NEW', label: 'Neue Session', id: 'navVanillaNeu' }, - { href: '#', icon: 'WAITING', label: 'Aktive Session', id: 'navVanillaAktiv' }, - { href: '/games/vanilla/vanillaingame.html', icon: 'PLAY_ACTIVE', label: 'Im Spiel', id: 'navVanillaImSpiel' }, - { href: '/games/vanilla/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, - { href: '/games/vanilla/toys.html', icon: 'TOYS', label: 'Toys' }, - { href: '/games/vanilla/entdecken.html', icon: 'DISCOVER', label: 'Entdecken' }, - ])} - ${gameGroup('BDSM', 'BDSM Game', [ - { href: '/games/bdsm/neubdsm.html', icon: 'PLAY_NEW', label: 'Neue Session', id: 'navBdsmNeu' }, - { href: '#', icon: 'WAITING', label: 'Aktive Session', id: 'navBdsmAktiv' }, - { href: '/games/bdsm/bdsmingame.html', icon: 'PLAY_ACTIVE', label: 'Im Spiel', id: 'navBdsmImSpiel' }, - { href: '/games/bdsm/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, - { href: '/games/bdsm/toys.html', icon: 'TOYS', label: 'Toys' }, - { href: '/games/bdsm/entdecken.html', icon: 'DISCOVER', label: 'Entdecken' }, - ])} + + ${I('VANILLA') || ''} + Vanilla Game + + + ${I('BDSM') || ''} + BDSM Game + ${gameGroup('CHASTITY', 'Chastity Game', [ { href: '/games/chastity/neulock.html', icon: 'NEW_LOCK', label: 'Neues Lock', id: 'navChastityNeu' }, { href: '#', icon: 'ACTIVE_LOCK', label: 'Aktives Lock', id: 'navChastityAktiv' }, @@ -283,6 +279,11 @@ { href: '/games/chastity/keyholder.html', icon: 'KEY', label: 'Keyholder' }, { href: '/games/chastity/unlock-history.html', icon: 'HISTORY', label: 'Code-Historie' }, ])} + ${gameGroup('CHECK', 'Aufgabenverwaltung', [ + { href: '/games/aufgaben/aufgaben.html', icon: 'CHECK', label: 'Aufgaben' }, + { href: '/games/aufgaben/toys.html', icon: 'TOYS', label: 'Toys' }, + { href: '/games/aufgaben/entdecken.html',icon: 'DISCOVER', label: 'Entdecken' }, + ])} `; // ── Dropdown-HTML ──────────────────────────────────────────────────────── @@ -306,7 +307,7 @@ ])} ${column('colDating', 'Dating', col3Html, ['/dating/'])} ${column('colGames', 'Games', col4Html, [ - '/games/vanilla/', '/games/bdsm/', '/games/chastity/', + '/games/vanilla/', '/games/bdsm/', '/games/chastity/', '/games/aufgaben/', ])}