From 6d0913fa0c0f60bda67e8c4bcc007f24cef9ba68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 4 Apr 2025 20:08:53 +0200 Subject: [PATCH 01/72] splittet project to core and common functionalities --- build.gradle | 81 ++++++------------- common/build.gradle | 33 ++++++++ .../gameplay/antiSignEdit/AntiSignEdit.java | 8 +- .../antiSignEdit/OnSignEditListener.java | 4 +- .../antiSignEdit/SignEditSetting.java | 10 +-- .../gameplay/autoShulker/AutoShulker.java | 6 +- .../autoShulker/AutoShulkerSetting.java | 10 +-- .../autoShulker/ItemPickupListener.java | 8 +- .../customAdvancements/Advancements.java | 2 +- .../ApplyPendingAdvancementsListener.java | 4 +- .../CustomAdvancements.java | 6 +- .../CustomAdvancementsListener.java | 4 +- .../gameplay/doubleDoor/DoubleDoor.java | 6 +- .../doubleDoor/DoubleDoorSetting.java | 10 +-- .../doubleDoor/OnDoorInteractListener.java | 6 +- .../fleischerchest/Fleischerchest.java | 4 +- .../FleischerchestCraftItemListener.java | 4 +- .../glowingBerries/GlowingBerries.java | 4 +- .../gameplay/glowingBerries/OnBerryEaten.java | 4 +- .../gameplay/hotbarRefill/HotbarRefill.java | 8 +- .../hotbarRefill/HotbarRefillListener.java | 6 +- .../hotbarRefill/HotbarRefillSetting.java | 10 +-- .../gameplay/knockDoor/KnockDoor.java | 10 +-- .../gameplay/knockDoor/KnockDoorListener.java | 4 +- .../gameplay/knockDoor/KnockDoorSetting.java | 10 +-- .../outlawed/OutlawChangeNotPermitted.java | 2 +- .../gameplay/outlawed/Outlawed.java | 16 ++-- .../gameplay/outlawed/OutlawedCommand.java | 4 +- .../outlawed/OutlawedReminderListener.java | 4 +- .../OnCraftingTableUseListener.java | 4 +- .../portableCrafting/PortableCrafting.java | 6 +- .../PortableCraftingSetting.java | 10 +-- .../snowballKnockback/SnowballKnockback.java | 4 +- .../SnowballKnockbackListener.java | 4 +- .../appliances/internal/debug/Debug.java | 20 +++++ .../debug/command/AppliancesCommand.java | 10 +-- .../debug/command/UserInfoCommand.java | 6 +- .../internal/titleClear/TitleClear.java | 4 +- .../titleClear/TitleClearListener.java | 4 +- .../metaGameplay/adminMarker/AdminMarker.java | 4 +- .../metaGameplay/afkTag/AfkResetListener.java | 4 +- .../metaGameplay/afkTag/AfkTag.java | 8 +- .../metaGameplay/chatMention/ChatMention.java | 8 +- .../chatMention/ChatMentionListener.java | 12 +-- .../chatMention/ChatMentionSetting.java | 10 +-- .../chatMessages/ChatMessages.java | 6 +- .../chatMessages/ChatMessagesListener.java | 8 +- .../ShowJoinAndLeaveMessagesSetting.java | 10 +-- .../metaGameplay/displayName/DisplayName.java | 20 ++--- .../DisplayNameUpdateListener.java | 4 +- .../event/ApplyPendingRewardsListener.java | 4 +- .../appliances/metaGameplay/event/Event.java | 36 ++++----- .../event/command/EventAdvertiseCommand.java | 6 +- .../event/command/EventCommand.java | 6 +- .../event/command/EventEndSessionCommand.java | 6 +- .../command/EventOpenSessionCommand.java | 6 +- .../command/MoveEventVillagerCommand.java | 6 +- .../metaGameplay/feedback/Feedback.java | 14 ++-- .../feedback/FeedbackCommand.java | 8 +- .../feedback/RequestFeedbackCommand.java | 6 +- .../appliances/metaGameplay/help/Help.java | 28 +++++++ .../help/command/DiscordCommand.java | 6 +- .../help/command/HelpCommand.java | 6 +- .../help/command/SpawnCommand.java | 6 +- .../help/command/TeamspeakCommand.java | 6 +- .../appliances/metaGameplay/infoBars/Bar.java | 4 +- .../metaGameplay/infoBars/InfoBarCommand.java | 4 +- .../metaGameplay/infoBars/InfoBars.java | 14 ++-- .../infoBars/ShowPreviousBarsListener.java | 4 +- .../metaGameplay/infoBars/bars/MsptBar.java | 8 +- .../infoBars/bars/PlayerCounterBar.java | 10 +-- .../metaGameplay/infoBars/bars/TpsBar.java | 6 +- .../metaGameplay/optionLinks/OptionLinks.java | 6 +- .../optionLinks/UpdateLinksListener.java | 4 +- .../packSelect/ChangePackCommand.java | 4 +- .../packSelect/PackConfiguration.java | 8 +- .../PackConfigurationInventory.java | 14 ++-- .../metaGameplay/packSelect/PackSelect.java | 16 ++-- .../packSelect/PackSelectSetting.java | 10 +-- .../packSelect/ResourcePackInfoFactory.java | 4 +- .../listeners/ClickPackInventoryListener.java | 6 +- .../listeners/ClosePackInventoryListener.java | 6 +- .../listeners/SetPacksOnJoinListener.java | 8 +- .../metaGameplay/playtime/Playtime.java | 8 +- .../playtime/PlaytimeCommand.java | 6 +- .../privateMessage/PrivateMessage.java | 14 ++-- .../commands/PrivateMessageCommand.java | 6 +- .../commands/PrivateReplyCommand.java | 6 +- .../metaGameplay/report/Report.java | 12 +-- .../metaGameplay/report/ReportCommand.java | 6 +- .../metaGameplay/report/ReportsCommand.java | 8 +- .../settings/CategorizedSetting.java | 5 ++ .../settings/SettingCategory.java | 7 ++ .../metaGameplay/settings/Settings.java | 14 ++-- .../settings/SettingsCommand.java | 4 +- .../settings/SettingsShortcutSetting.java | 4 +- .../settings/datatypes/ActionSetting.java | 2 +- .../settings/datatypes/BoolSetting.java | 4 +- .../settings/datatypes/MultiBoolSetting.java | 4 +- .../settings/datatypes/SelectSetting.java | 4 +- .../settings/datatypes/Setting.java | 8 +- .../OpenSettingsShortcutListener.java | 6 +- .../listeners/SettingsInventoryListener.java | 6 +- .../sleepTag/SleepStateChangeListener.java | 4 +- .../metaGameplay/sleepTag/SleepTag.java | 8 +- .../metaGameplay/tablist/Tablist.java | 18 ++--- .../metaGameplay/tablist/TablistListener.java | 4 +- .../tablist/TechnicalTablistSetting.java | 10 +-- .../MoveWorldMuseumVillagerCommand.java | 4 +- .../metaGameplay/worldmuseum/WorldMuseum.java | 16 ++-- .../metaGameplay/yearRank/YearRank.java | 10 +-- .../yearRank/YearRankCommand.java | 4 +- .../appliances/tooling/acInform/AcInform.java | 6 +- .../tooling/acInform/AcInformCommand.java | 4 +- .../tooling/adminChat/AdminChat.java | 6 +- .../tooling/adminChat/AdminChatCommand.java | 4 +- .../appliances/tooling/chatMute/ChatMute.java | 6 +- .../tooling/chatMute/ChatMuteListener.java | 6 +- .../tooling/chatMute/MuteCommand.java | 4 +- .../tooling/endPrevent/EndPrevent.java | 8 +- .../tooling/endPrevent/EndPreventCommand.java | 4 +- .../PreventEnderEyeUseListener.java | 4 +- .../common}/appliances/tooling/kick/Kick.java | 8 +- .../appliances/tooling/kick/KickCommand.java | 4 +- .../LightningFireControl.java | 4 +- .../LightningFireListener.java | 6 +- .../tooling/maintenance/Maintenance.java | 8 +- .../maintenance/MaintenanceCommand.java | 4 +- .../PreventMaintenanceJoinListener.java | 6 +- .../appliances/tooling/panicBan/PanicBan.java | 8 +- .../tooling/panicBan/PanicBanCommand.java | 4 +- .../panicBan/PanicBanJoinListener.java | 4 +- .../tooling/playerlimit/PlayerLimit.java | 8 +- .../playerlimit/PlayerLimiterListener.java | 6 +- .../playerlimit/SetPlayerLimitCommand.java | 4 +- .../tooling/projectStart/ProjectStart.java | 34 ++++---- .../command/ProjectStartCancelCommand.java | 6 +- .../command/ProjectStartCommand.java | 6 +- .../command/ProjectStartResetCommand.java | 6 +- .../listener/NoAdvancementsListener.java | 6 +- .../listener/PlayerInvincibleListener.java | 6 +- .../tooling/restart/CancelRestartCommand.java | 4 +- .../appliances/tooling/restart/Restart.java | 10 +-- .../restart/ScheduleRestartCommand.java | 4 +- .../spawnpoint/SetSpawnpointCommand.java | 4 +- .../spawnpoint/SpawnAtSpawnpointListener.java | 4 +- .../tooling/spawnpoint/Spawnpoint.java | 6 +- .../tooling/whitelist/PlayerJoinListener.java | 6 +- .../tooling/whitelist/Whitelist.java | 20 ++--- {src => common/src}/main/resources/plugin.yml | 2 +- core/build.gradle | 11 +++ .../java/eu/mhsl/craftattack/core}/Main.java | 12 +-- .../core}/api/client/HttpRepository.java | 4 +- .../core}/api/client/Repository.java | 4 +- .../core}/api/client/RepositoryLoader.java | 2 +- .../craftattack/core}/api/client/ReqResp.java | 2 +- .../client/repositories/EventRepository.java | 8 +- .../repositories/FeedbackRepository.java | 8 +- .../client/repositories/ReportRepository.java | 8 +- .../repositories/WhitelistRepository.java | 8 +- .../core}/api/server/HttpServer.java | 6 +- .../core}/appliance/Appliance.java | 10 +-- .../core}/appliance/ApplianceCommand.java | 4 +- .../core}/appliance/ApplianceListener.java | 2 +- .../appliance/CachedApplianceSupplier.java | 4 +- .../core}/appliance/IApplianceSupplier.java | 2 +- .../craftattack/core}/config/ConfigUtil.java | 2 +- .../core}/config/Configuration.java | 4 +- .../craftattack/core}/util/IteratorUtil.java | 2 +- .../craftattack/core}/util/NumberUtil.java | 2 +- .../core}/util/api/EventApiUtil.java | 4 +- .../core}/util/api/HttpStatus.java | 2 +- .../core}/util/api/WebsiteApiUtil.java | 4 +- .../core}/util/entity/DisplayVillager.java | 8 +- .../core}/util/entity/PlayerUtils.java | 2 +- .../core}/util/inventory/HeadBuilder.java | 2 +- .../core}/util/inventory/ItemBuilder.java | 4 +- .../util/inventory/PlaceholderItems.java | 2 +- .../DismissInventoryOpenFromHolder.java | 2 +- .../PlayerInteractAtEntityEventListener.java | 2 +- .../core}/util/server/Floodgate.java | 2 +- .../core}/util/server/PluginMessage.java | 4 +- .../core}/util/statistics/NetworkMonitor.java | 4 +- .../core}/util/statistics/ServerMonitor.java | 2 +- .../core}/util/text/ColorUtil.java | 4 +- .../core}/util/text/ComponentUtil.java | 6 +- .../core}/util/text/Countdown.java | 4 +- .../core}/util/text/DataSizeConverter.java | 2 +- .../core}/util/text/DisconnectInfo.java | 4 +- .../core}/util/text/NumberAbbreviation.java | 2 +- .../core}/util/text/RainbowComponent.java | 2 +- .../core}/util/world/BlockCycle.java | 2 +- .../core}/util/world/ChunkUtils.java | 2 +- .../core}/util/world/InteractSounds.java | 2 +- {src => core/src}/main/resources/config.yml | 0 gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 +- gradlew.bat | 20 ++--- settings.gradle | 41 ++++++++++ .../appliances/internal/debug/Debug.java | 20 ----- .../appliances/metaGameplay/help/Help.java | 28 ------- .../settings/CategorizedSetting.java | 5 -- .../settings/SettingCategory.java | 7 -- 203 files changed, 780 insertions(+), 726 deletions(-) create mode 100644 common/build.gradle rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/antiSignEdit/AntiSignEdit.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/antiSignEdit/OnSignEditListener.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/antiSignEdit/SignEditSetting.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/autoShulker/AutoShulker.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/autoShulker/AutoShulkerSetting.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/autoShulker/ItemPickupListener.java (70%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/customAdvancements/Advancements.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java (69%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/customAdvancements/CustomAdvancements.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java (92%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/doubleDoor/DoubleDoor.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/doubleDoor/DoubleDoorSetting.java (61%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/doubleDoor/OnDoorInteractListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/fleischerchest/Fleischerchest.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/glowingBerries/GlowingBerries.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/glowingBerries/OnBerryEaten.java (74%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/hotbarRefill/HotbarRefill.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/hotbarRefill/HotbarRefillListener.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java (71%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/knockDoor/KnockDoor.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/knockDoor/KnockDoorListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/knockDoor/KnockDoorSetting.java (75%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java (66%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/outlawed/Outlawed.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/outlawed/OutlawedCommand.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/outlawed/OutlawedReminderListener.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/portableCrafting/PortableCrafting.java (74%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/portableCrafting/PortableCraftingSetting.java (62%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/snowballKnockback/SnowballKnockback.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java (82%) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/internal/debug/command/AppliancesCommand.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/internal/debug/command/UserInfoCommand.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/internal/titleClear/TitleClear.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/internal/titleClear/TitleClearListener.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/adminMarker/AdminMarker.java (75%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/afkTag/AfkResetListener.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/afkTag/AfkTag.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMention/ChatMention.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMention/ChatMentionListener.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMention/ChatMentionSetting.java (71%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMessages/ChatMessages.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMessages/ChatMessagesListener.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java (62%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/displayName/DisplayName.java (77%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java (72%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/ApplyPendingRewardsListener.java (69%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/Event.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/command/EventAdvertiseCommand.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/command/EventCommand.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/command/EventEndSessionCommand.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/command/EventOpenSessionCommand.java (75%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java (70%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/feedback/Feedback.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/feedback/FeedbackCommand.java (77%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/feedback/RequestFeedbackCommand.java (81%) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/help/command/DiscordCommand.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/help/command/HelpCommand.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/help/command/SpawnCommand.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/help/command/TeamspeakCommand.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/Bar.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/InfoBarCommand.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/InfoBars.java (85%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/bars/MsptBar.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/infoBars/bars/TpsBar.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/optionLinks/OptionLinks.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/optionLinks/UpdateLinksListener.java (67%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/ChangePackCommand.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/PackConfiguration.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/PackConfigurationInventory.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/PackSelect.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/PackSelectSetting.java (67%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java (95%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java (73%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java (63%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/playtime/Playtime.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/playtime/PlaytimeCommand.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/privateMessage/PrivateMessage.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java (69%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/Report.java (95%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/ReportCommand.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/ReportsCommand.java (74%) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/Settings.java (92%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/SettingsCommand.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/SettingsShortcutSetting.java (82%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/datatypes/ActionSetting.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/datatypes/BoolSetting.java (92%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/datatypes/SelectSetting.java (95%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/datatypes/Setting.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java (70%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/sleepTag/SleepTag.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/Tablist.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/TablistListener.java (67%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/TechnicalTablistSetting.java (62%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/worldmuseum/WorldMuseum.java (77%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/yearRank/YearRank.java (92%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/yearRank/YearRankCommand.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/acInform/AcInform.java (96%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/acInform/AcInformCommand.java (82%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/adminChat/AdminChat.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/adminChat/AdminChatCommand.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/chatMute/ChatMute.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/chatMute/ChatMuteListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/chatMute/MuteCommand.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/endPrevent/EndPrevent.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/endPrevent/EndPreventCommand.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/kick/Kick.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/kick/KickCommand.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/lightningFireControl/LightningFireControl.java (75%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/lightningFireControl/LightningFireListener.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/maintenance/Maintenance.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/maintenance/MaintenanceCommand.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/panicBan/PanicBan.java (86%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/panicBan/PanicBanCommand.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/panicBan/PanicBanJoinListener.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/playerlimit/PlayerLimit.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/playerlimit/PlayerLimiterListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/playerlimit/SetPlayerLimitCommand.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/ProjectStart.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java (79%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/command/ProjectStartCommand.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/command/ProjectStartResetCommand.java (68%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/listener/NoAdvancementsListener.java (75%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/restart/CancelRestartCommand.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/restart/Restart.java (85%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/restart/ScheduleRestartCommand.java (78%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/spawnpoint/SetSpawnpointCommand.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java (81%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/spawnpoint/Spawnpoint.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/whitelist/PlayerJoinListener.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/tooling/whitelist/Whitelist.java (90%) rename {src => common/src}/main/resources/plugin.yml (96%) create mode 100644 core/build.gradle rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/Main.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/HttpRepository.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/Repository.java (87%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/RepositoryLoader.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/ReqResp.java (54%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/repositories/EventRepository.java (72%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/repositories/FeedbackRepository.java (76%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/repositories/ReportRepository.java (85%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/client/repositories/WhitelistRepository.java (73%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/api/server/HttpServer.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/appliance/Appliance.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/appliance/ApplianceCommand.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/appliance/ApplianceListener.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/appliance/CachedApplianceSupplier.java (80%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/appliance/IApplianceSupplier.java (65%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/config/ConfigUtil.java (96%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/config/Configuration.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/IteratorUtil.java (98%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/NumberUtil.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/api/EventApiUtil.java (85%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/api/HttpStatus.java (91%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/api/WebsiteApiUtil.java (89%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/entity/DisplayVillager.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/entity/PlayerUtils.java (95%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/inventory/HeadBuilder.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/inventory/ItemBuilder.java (96%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/inventory/PlaceholderItems.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/listener/DismissInventoryOpenFromHolder.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/listener/PlayerInteractAtEntityEventListener.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/server/Floodgate.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/server/PluginMessage.java (83%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/statistics/NetworkMonitor.java (96%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/statistics/ServerMonitor.java (84%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/ColorUtil.java (88%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/ComponentUtil.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/Countdown.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/DataSizeConverter.java (97%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/DisconnectInfo.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/NumberAbbreviation.java (90%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/text/RainbowComponent.java (95%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/world/BlockCycle.java (94%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/world/ChunkUtils.java (93%) rename {src/main/java/eu/mhsl/craftattack/spawn => core/src/main/java/eu/mhsl/craftattack/core}/util/world/InteractSounds.java (95%) rename {src => core/src}/main/resources/config.yml (100%) delete mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java delete mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java delete mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java delete mode 100644 src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java diff --git a/build.gradle b/build.gradle index f324caf..eed3beb 100644 --- a/build.gradle +++ b/build.gradle @@ -1,68 +1,37 @@ plugins { - id 'com.github.johnrengelman.shadow' version '8.1.1' id 'java' } -group = 'eu.mhsl.craftattack' -version = '1.0' +allprojects { + group = 'de.mhsl.craftattack' + version = '1.0.0' -repositories { - mavenCentral() - maven { - name = "papermc-repo" - url = "https://repo.papermc.io/repository/maven-public/" - } - maven { - name = "sonatype" - url = "https://oss.sonatype.org/content/groups/public/" - } - maven { - url = uri("https://repo.opencollab.dev/main/") + repositories { + mavenCentral() + maven { + name = "papermc-repo" + url = "https://repo.papermc.io/repository/maven-public/" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/groups/public/" + } + maven { + url = uri("https://repo.opencollab.dev/main/") + } } } -dependencies { - compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' - compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' - implementation 'org.apache.httpcomponents:httpclient:4.5.14' - implementation 'com.sparkjava:spark-core:2.9.4' - implementation 'org.reflections:reflections:0.10.2' -} +subprojects { + apply plugin: 'java' -def targetJavaVersion = 21 -java { - def javaVersion = JavaVersion.toVersion(targetJavaVersion) - sourceCompatibility = javaVersion - targetCompatibility = javaVersion - if (JavaVersion.current() < javaVersion) { - toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) + java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } } -} -tasks.withType(JavaCompile).configureEach { - if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { - options.release = targetJavaVersion + tasks.withType(JavaCompile).configureEach { + options.release = 21 } -} - -configurations { - shadowImplementation.extendsFrom implementation -} - -shadowJar { - configurations = [project.configurations.shadowImplementation] -} - -tasks.register('copyJarToServer', Exec) { - dependsOn shadowJar - mustRunAfter shadowJar - - commandLine 'scp', 'build/libs/spawn-1.0-all.jar', 'root@10.20.6.1:/home/minecraft/server/plugins' -} - -tasks.register('copyJarToTestServer', Exec) { - dependsOn shadowJar - mustRunAfter shadowJar - - commandLine 'cp', 'build/libs/spawn-1.0-all.jar', '/home/elias/Dokumente/mcTestServer/plugins/spawn-1.0-all.jar' -} +} \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle new file mode 100644 index 0000000..b831872 --- /dev/null +++ b/common/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'java' + id("com.gradleup.shadow") version "8.3.5" +} + +dependencies { + implementation project(':core') + + compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' +} + +configurations { + shadowImplementation.extendsFrom implementation +} + +shadowJar { + configurations = [project.configurations.shadowImplementation] + archiveClassifier.set('') + + relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' + relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' + + mergeServiceFiles() +} + +jar { + enabled = false +} + +build.dependsOn shadowJar diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java index f490848..2a8aac6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java index 5196b03..82d0386 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import io.papermc.paper.event.player.PlayerOpenSignEvent; import org.bukkit.block.sign.SignSide; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java index e66988c..d56c3a4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.Material; import org.bukkit.NamespacedKey; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java index 8dcd1e4..a6594fb 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java index 799b00b..010ae53 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.Material; import org.bukkit.NamespacedKey; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java similarity index 70% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java index 2775dc5..f84704f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityPickupItemEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java index 96c7c31..ee12a66 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; public class Advancements { public static String searchTrouble = "search_trouble"; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java similarity index 69% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java index 58bb76b..059ab3c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java index f7ef1b8..32a4e76 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import org.bukkit.advancement.Advancement; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java similarity index 92% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java index 3875a41..6f15ea4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java index b759456..de20645 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.BlockData; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java similarity index 61% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java index 8c87d46..7c8a479 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting; import org.bukkit.Material; public class DoubleDoorSetting extends BoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java index 031b202..beb66d6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java index e744fba..59e55b8 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java index 61ce722..0d9f21a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.PrepareItemCraftEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java index d4b51bc..f367624 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.util.Ticks; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java similarity index 74% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java index 73cd323..4141a55 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerItemConsumeEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java index a5a34d1..d1aed2a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java index f279a59..a807650 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java similarity index 71% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java index b0d2398..d1ea474 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.MultiBoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.MultiBoolSetting; import org.bukkit.Material; public class HotbarRefillSetting extends MultiBoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java index cd94f2e..d1d6f36 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java index 9b063bd..ca48d09 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.GameMode; import org.bukkit.block.Block; import org.bukkit.block.data.type.Door; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java similarity index 75% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java index 21c41f1..c848901 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.Material; import org.bukkit.NamespacedKey; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java similarity index 66% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java index 3f42709..959be74 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; class OutlawChangeNotPermitted extends Exception { public OutlawChangeNotPermitted(String message) { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java index 2708b5f..8b49439 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java @@ -1,12 +1,12 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName; -import eu.mhsl.craftattack.spawn.appliances.tooling.whitelist.Whitelist; -import eu.mhsl.craftattack.spawn.config.Configuration; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist.Whitelist; +import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java index 0834785..4c8fc3b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java index 394a966..3ab5da3 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java index 69033aa..aedc4e6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java similarity index 74% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java index 2b91e07..b60a2fc 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java similarity index 62% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java index 8cd7e77..bfb19ca 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting; import org.bukkit.Material; public class PortableCraftingSetting extends BoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java index 0c92ea2..6e0b552 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java similarity index 82% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java index fe692fa..42996a1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback; +package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java new file mode 100644 index 0000000..bbf0510 --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java @@ -0,0 +1,20 @@ +package eu.mhsl.craftattack.spawn.common.appliances.internal.debug; + +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.AppliancesCommand; +import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.UserInfoCommand; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class Debug extends Appliance { + @Override + @NotNull + protected List> commands() { + return List.of( + new UserInfoCommand(), + new AppliancesCommand() + ); + } +} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java index 3a81c07..213fcc6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.internal.debug.command; +package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java index fe33aa6..8bdf75b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.internal.debug.command; +package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java index 91c58ca..274fa86 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.internal.titleClear; +package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java index 1841aed..f655f4f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.internal.titleClear; +package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java similarity index 75% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java index acc5106..582097f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.format.TextColor; import org.bukkit.Color; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java index 05906a4..08ca667 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import io.papermc.paper.event.player.AsyncChatEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java index dd0b0ea..4994e96 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java index 8c08711..4290931 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.sound.Sound; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java index 2aeef66..86c6ef1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java @@ -1,10 +1,10 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import io.papermc.paper.event.player.AsyncChatDecorateEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java similarity index 71% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java index 5cbf186..bba73b4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.MultiBoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.MultiBoolSetting; import org.bukkit.Material; public class ChatMentionSetting extends MultiBoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java index f2d24f4..55c8c62 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.HoverEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java index 29ecf21..5773bc8 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.util.IteratorUtil; import io.papermc.paper.event.player.AsyncChatEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java similarity index 62% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java index 2e3b68b..272d491 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting; import org.bukkit.Material; public class ShowJoinAndLeaveMessagesSetting extends BoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java similarity index 77% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java index 5c7df4e..da1766c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed.Outlawed; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker.AdminMarker; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag.AfkTag; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag.SleepTag; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank.YearRank; -import eu.mhsl.craftattack.spawn.util.server.Floodgate; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker.AdminMarker; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag.AfkTag; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag.SleepTag; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank.YearRank; +import eu.mhsl.craftattack.core.util.server.Floodgate; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java similarity index 72% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java index b394b05..c4ab190 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java similarity index 69% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java index fae533b..6b6462b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java index 23cefc0..d8814d3 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java @@ -1,22 +1,22 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.api.client.repositories.EventRepository; -import eu.mhsl.craftattack.spawn.api.server.HttpServer; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.Advancements; -import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.CustomAdvancements; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command.*; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.util.api.HttpStatus; -import eu.mhsl.craftattack.spawn.util.entity.DisplayVillager; -import eu.mhsl.craftattack.spawn.util.listener.DismissInventoryOpenFromHolder; -import eu.mhsl.craftattack.spawn.util.listener.PlayerInteractAtEntityEventListener; -import eu.mhsl.craftattack.spawn.util.server.PluginMessage; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; -import eu.mhsl.craftattack.spawn.util.text.Countdown; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.api.client.repositories.EventRepository; +import eu.mhsl.craftattack.core.api.server.HttpServer; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements; +import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.core.util.api.HttpStatus; +import eu.mhsl.craftattack.core.util.entity.DisplayVillager; +import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder; +import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener; +import eu.mhsl.craftattack.core.util.server.PluginMessage; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command.*; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java index dcf8eeb..a372eee 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java index 7703ddb..5d2f51a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java index 838b06a..af2a8e3 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java similarity index 75% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java index bbaf9a1..3f50814 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java similarity index 70% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java index 5c94380..7e10d5d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java index a0caef7..c01442b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.api.client.repositories.FeedbackRepository; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.api.HttpStatus; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.api.client.repositories.FeedbackRepository; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.api.HttpStatus; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java similarity index 77% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java index 9bb77d9..8259389 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java index 7baf8ab..f7ccb6f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java new file mode 100644 index 0000000..e3969d3 --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java @@ -0,0 +1,28 @@ +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help; + +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.DiscordCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.HelpCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.SpawnCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.TeamspeakCommand; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class Help extends Appliance { + public Help() { + super("help"); + } + + @Override + @NotNull + protected List> commands() { + return List.of( + new HelpCommand(), + new SpawnCommand(), + new TeamspeakCommand(), + new DiscordCommand() + ); + } +} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java index 169f981..f54a4c7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java index b4cd910..fa6901d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java index 813ab77..e9cc2f0 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java index 952cd1e..6d2bd71 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java index 2b67577..71a46cc 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.util.Ticks; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java index a631496..e00bc8b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java similarity index 85% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java index eb2c304..682665e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.MsptBar; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.PlayerCounterBar; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.TpsBar; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.MsptBar; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.PlayerCounterBar; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.TpsBar; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java index f8513fd..5898d4e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java index 2682676..c764793 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; -import eu.mhsl.craftattack.spawn.util.statistics.ServerMonitor; -import eu.mhsl.craftattack.spawn.util.text.ColorUtil; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; +import eu.mhsl.craftattack.core.util.statistics.ServerMonitor; +import eu.mhsl.craftattack.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java index 550ba13..8daf9a1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; -import eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit.PlayerLimit; -import eu.mhsl.craftattack.spawn.util.text.ColorUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit.PlayerLimit; +import eu.mhsl.craftattack.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java index 8c88b50..ea3d71d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; -import eu.mhsl.craftattack.spawn.util.text.ColorUtil; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; +import eu.mhsl.craftattack.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java index 44767ac..86bdbbb 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java similarity index 67% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java index 40cc169..fc33089 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java index c7a6e51..ccf0a97 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java index 5ea748b..d73575b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java @@ -1,10 +1,10 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import eu.mhsl.craftattack.spawn.appliance.CachedApplianceSupplier; -import eu.mhsl.craftattack.spawn.util.inventory.HeadBuilder; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier; +import eu.mhsl.craftattack.core.util.inventory.HeadBuilder; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java index 4c4e807..81dc788 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.CachedApplianceSupplier; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.util.inventory.ItemBuilder; -import eu.mhsl.craftattack.spawn.util.inventory.PlaceholderItems; -import eu.mhsl.craftattack.spawn.util.world.InteractSounds; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier; +import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.core.util.inventory.ItemBuilder; +import eu.mhsl.craftattack.core.util.inventory.PlaceholderItems; +import eu.mhsl.craftattack.core.util.world.InteractSounds; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java index 7093524..aecb902 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java @@ -1,12 +1,12 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.resource.ResourcePackRequest; import net.kyori.adventure.text.Component; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java similarity index 67% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java index c7338c7..0cb1931 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.ActionSetting; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.ActionSetting; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.ClickType; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java index 36675c8..482362e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.resource.ResourcePackInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java similarity index 73% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java index 4070f03..199640a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java index 506ae14..25b681c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryCloseEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java similarity index 63% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java index 3eb3046..f2e5ab6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java index 161d25d..57018fb 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.DataSizeConverter; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.DataSizeConverter; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java index 323759c..3bfbd02 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java index c3a4e35..2e305e5 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java similarity index 69% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java index 47d11fe..39766fd 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java index f018f0b..5c5a0d8 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index 7964e90..00f560a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -1,10 +1,10 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.api.client.repositories.ReportRepository; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.api.client.repositories.ReportRepository; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java index 09b1c3b..d1eee37 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java similarity index 74% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java index a748413..14d185e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java new file mode 100644 index 0000000..8fa1ad8 --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java @@ -0,0 +1,5 @@ +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; + +public interface CategorizedSetting { + SettingCategory category(); +} diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java new file mode 100644 index 0000000..0b45420 --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java @@ -0,0 +1,7 @@ +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; + +public enum SettingCategory { + Gameplay, + Visuals, + Misc, +} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java similarity index 92% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index 02443c6..002744a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.Setting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.SettingsInventoryListener; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.Setting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.SettingsInventoryListener; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java index 14b9469..c68aa7e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java similarity index 82% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java index 8c7ff01..4737ba4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting; import org.bukkit.Material; public class SettingsShortcutSetting extends BoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java index 81e83ac..573704f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java similarity index 92% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java index 8f22caf..3386975 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java index 702f8b9..24d3024 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; import com.google.gson.Gson; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java index 4607cf3..4b6a7d6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java index ee3eadb..a9bd678 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java similarity index 70% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java index 93b58a3..17c5b91 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerSwapHandItemsEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java index 7a2d06e..776a3c7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java index d0b4783..915f87c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java index cfcad05..a6c76bc 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java index e5ccc12..0218cfc 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java @@ -1,13 +1,13 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.report.Report; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.util.statistics.NetworkMonitor; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; -import eu.mhsl.craftattack.spawn.util.text.RainbowComponent; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report.Report; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.util.text.RainbowComponent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java similarity index 67% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java index c914731..0828c41 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java similarity index 62% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java index 43cb690..9e69ffa 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting; import org.bukkit.Material; public class TechnicalTablistSetting extends BoolSetting implements CategorizedSetting { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java index 35d9e77..e98397b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.worldmuseum; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java similarity index 77% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java index 7c8d90b..d80991f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java @@ -1,12 +1,12 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.worldmuseum; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.entity.DisplayVillager; -import eu.mhsl.craftattack.spawn.util.listener.DismissInventoryOpenFromHolder; -import eu.mhsl.craftattack.spawn.util.listener.PlayerInteractAtEntityEventListener; -import eu.mhsl.craftattack.spawn.util.server.PluginMessage; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.entity.DisplayVillager; +import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder; +import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener; +import eu.mhsl.craftattack.core.util.server.PluginMessage; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Location; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java similarity index 92% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java index f927b02..fc1e14e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java index 13529b0..344a3f1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java similarity index 96% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java index c6eae0d..544aa2b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.acInform; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java similarity index 82% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java index 091dc70..8892b49 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.acInform; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java index 30fccca..8cf1d85 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java index 8b1de97..47c205a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java index fcaebd3..60f43d0 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java index e6a1cb4..76d9f99 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.util.text.DataSizeConverter; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.util.text.DataSizeConverter; import io.papermc.paper.event.player.AsyncChatEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java index 0d3324b..724099f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java index 9a92cbd..085cb39 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java index 5401467..f62c28f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java index 4f638d9..425a527 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java index 2a9155e..6c96b9e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.kick; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java index 3072970..6eaaf7c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.kick; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java similarity index 75% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java index 6210c0c..17cf178 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.lightningFireControl; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.block.Block; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java index dfaa1fa..2ca2644 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.lightningFireControl; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java index d47882e..ab1f3c7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java index 3e292d1..e3b9a0e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java index f1c298e..b311cea 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerLoginEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java similarity index 86% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java index 1342941..2d3ba0f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java index aa74436..874eb1b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java index aa52aa7..62a3a96 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java index 99b606e..8a00d55 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java index 8a2b804..7c30fc6 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java index 8d7d87f..5d81279 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java index 951604a..6a7b338 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java @@ -1,21 +1,21 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.Advancements; -import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.CustomAdvancements; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartCancelCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartResetCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener.NoAdvancementsListener; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener.PlayerInvincibleListener; -import eu.mhsl.craftattack.spawn.config.Configuration; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.util.entity.PlayerUtils; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; -import eu.mhsl.craftattack.spawn.util.text.Countdown; -import eu.mhsl.craftattack.spawn.util.world.BlockCycle; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCancelCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartResetCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.NoAdvancementsListener; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.PlayerInvincibleListener; +import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.core.util.entity.PlayerUtils; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.util.text.Countdown; +import eu.mhsl.craftattack.core.util.world.BlockCycle; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java similarity index 79% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java index ed7058c..c120e56 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java index 84916fc..d29e321 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java similarity index 68% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java index ac3aea1..e6094fe 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java similarity index 75% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java index bd81c80..ebb5999 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; import org.bukkit.advancement.Advancement; import org.bukkit.advancement.AdvancementProgress; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java index cf57ac1..95fcca3 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java index 04d3f2f..37be852 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.restart; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java similarity index 85% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java index e18d536..4a7ae71 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.restart; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.util.text.Countdown; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.core.util.text.Countdown; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java similarity index 78% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java index d427641..731ff55 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.restart; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java index bf7b694..ffea3a5 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java similarity index 81% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java index 98f779c..bef5717 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java index fd71f03..c5fa827 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.NamespacedKey; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java index 92131e9..8958a73 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.whitelist; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist; -import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerLoginEvent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java index 6a00293..508395e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.appliances.tooling.whitelist; +package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.api.client.repositories.WhitelistRepository; -import eu.mhsl.craftattack.spawn.api.server.HttpServer; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed.Outlawed; -import eu.mhsl.craftattack.spawn.util.api.HttpStatus; -import eu.mhsl.craftattack.spawn.util.server.Floodgate; -import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.api.client.repositories.WhitelistRepository; +import eu.mhsl.craftattack.core.api.server.HttpServer; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed; +import eu.mhsl.craftattack.core.util.api.HttpStatus; +import eu.mhsl.craftattack.core.util.server.Floodgate; +import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/src/main/resources/plugin.yml b/common/src/main/resources/plugin.yml similarity index 96% rename from src/main/resources/plugin.yml rename to common/src/main/resources/plugin.yml index 3d13bc6..c2f12b1 100644 --- a/src/main/resources/plugin.yml +++ b/common/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: spawn author: olischma, muelleel version: '1.0' -main: eu.mhsl.craftattack.spawn.Main +main: eu.mhsl.craftattack.core.Main api-version: '1.21' commands: moveWorldMuseumVillager: diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 0000000..49dc380 --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'java' +} + +dependencies { + compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' + implementation 'org.reflections:reflections:0.10.2' +} \ No newline at end of file diff --git a/src/main/java/eu/mhsl/craftattack/spawn/Main.java b/core/src/main/java/eu/mhsl/craftattack/core/Main.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/Main.java rename to core/src/main/java/eu/mhsl/craftattack/core/Main.java index 4c460bb..d2d84f0 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/Main.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/Main.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn; +package eu.mhsl.craftattack.core; -import eu.mhsl.craftattack.spawn.api.client.RepositoryLoader; -import eu.mhsl.craftattack.spawn.api.server.HttpServer; -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.api.client.RepositoryLoader; +import eu.mhsl.craftattack.core.api.server.HttpServer; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; @@ -44,7 +44,7 @@ public final class Main extends JavaPlugin { Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size())); Main.logger().info("Loading appliances..."); - Reflections reflections = new Reflections(this.getClass().getPackageName()); + Reflections reflections = new Reflections("eu.mhsl.craftattack.spawn"); Set> applianceClasses = reflections.getSubTypesOf(Appliance.class); this.appliances = applianceClasses.stream() diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java index 3cf1e77..d993aae 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.api.client; +package eu.mhsl.craftattack.core.api.client; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import org.apache.http.client.utils.URIBuilder; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java similarity index 87% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java index b45e360..91c02bd 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.api.client; +package eu.mhsl.craftattack.core.api.client; import com.google.gson.Gson; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import org.bukkit.Bukkit; import java.net.URI; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java index 29d6578..b6c67c0 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.api.client; +package eu.mhsl.craftattack.core.api.client; import org.apache.commons.lang3.NotImplementedException; import org.reflections.Reflections; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java similarity index 54% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java index 2bb3f3f..d6fadbb 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.api.client; +package eu.mhsl.craftattack.core.api.client; public record ReqResp(int status, TData data) { } \ No newline at end of file diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java similarity index 72% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java index b3a6ada..2112307 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.api.client.repositories; +package eu.mhsl.craftattack.core.api.client.repositories; -import eu.mhsl.craftattack.spawn.api.client.HttpRepository; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.util.api.EventApiUtil; +import eu.mhsl.craftattack.core.api.client.HttpRepository; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.util.api.EventApiUtil; import java.util.UUID; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java similarity index 76% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java index b896f2f..cddedf1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.api.client.repositories; +package eu.mhsl.craftattack.core.api.client.repositories; import com.google.common.reflect.TypeToken; -import eu.mhsl.craftattack.spawn.api.client.HttpRepository; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.core.api.client.HttpRepository; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; import java.lang.reflect.Type; import java.util.List; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java similarity index 85% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java index be92875..87a3227 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.api.client.repositories; +package eu.mhsl.craftattack.core.api.client.repositories; -import eu.mhsl.craftattack.spawn.api.client.HttpRepository; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.core.api.client.HttpRepository; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java similarity index 73% rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java index 9b889f9..6ba3be4 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.api.client.repositories; +package eu.mhsl.craftattack.core.api.client.repositories; -import eu.mhsl.craftattack.spawn.api.client.HttpRepository; -import eu.mhsl.craftattack.spawn.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.core.api.client.HttpRepository; +import eu.mhsl.craftattack.core.api.client.ReqResp; +import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; import java.util.UUID; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java b/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java rename to core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java index dec1ff9..a3ba31a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.api.server; +package eu.mhsl.craftattack.core.api.server; import com.google.gson.Gson; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.appliance.Appliance; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.configuration.ConfigurationSection; import spark.Request; import spark.Spark; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java index 8dfe391..f99eb1d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.appliance; +package eu.mhsl.craftattack.core.appliance; -import eu.mhsl.craftattack.spawn.Main; -import eu.mhsl.craftattack.spawn.api.client.Repository; -import eu.mhsl.craftattack.spawn.api.server.HttpServer; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.api.client.Repository; +import eu.mhsl.craftattack.core.api.server.HttpServer; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.command.PluginCommand; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java index 4f16c82..1bfc16d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliance; +package eu.mhsl.craftattack.core.appliance; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java index 29eb370..4478bbb 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.appliance; +package eu.mhsl.craftattack.core.appliance; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java similarity index 80% rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java index 72cafe6..da5601e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.appliance; +package eu.mhsl.craftattack.core.appliance; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; public class CachedApplianceSupplier implements IApplianceSupplier { private final T appliance; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java similarity index 65% rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java index 8c8bbde..add0939 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.appliance; +package eu.mhsl.craftattack.core.appliance; public interface IApplianceSupplier { T getAppliance(); diff --git a/src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java similarity index 96% rename from src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java index a2cf7b4..8eee7b1 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.config; +package eu.mhsl.craftattack.core.config; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java b/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java rename to core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java index d7ee8e2..169384d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.config; +package eu.mhsl.craftattack.core.config; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java similarity index 98% rename from src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java index 57b07ad..f582d7e 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util; +package eu.mhsl.craftattack.core.util; import org.bukkit.Bukkit; import org.bukkit.GameRule; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java index 269effb..45898b9 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util; +package eu.mhsl.craftattack.core.util; public class NumberUtil { public static double map(double oldValue, double oldMin, double oldMax, double newMin, double newMax) { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java similarity index 85% rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java index ff69ec5..af069e8 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.api; +package eu.mhsl.craftattack.core.util.api; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.config.Configuration; import org.bukkit.configuration.ConfigurationSection; import java.net.URI; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java similarity index 91% rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java index 658cd20..cb61e32 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.api; +package eu.mhsl.craftattack.core.util.api; public class HttpStatus { public static final int OK = 200; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java similarity index 89% rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java index 091c467..927d0a0 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.api; +package eu.mhsl.craftattack.core.util.api; -import eu.mhsl.craftattack.spawn.config.Configuration; +import eu.mhsl.craftattack.core.config.Configuration; import org.apache.http.client.utils.URIBuilder; import org.bukkit.configuration.ConfigurationSection; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java index f3bfc2e..ef4aa3a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.util.entity; +package eu.mhsl.craftattack.core.util.entity; -import eu.mhsl.craftattack.spawn.config.ConfigUtil; -import eu.mhsl.craftattack.spawn.config.Configuration; -import eu.mhsl.craftattack.spawn.util.world.ChunkUtils; +import eu.mhsl.craftattack.core.config.ConfigUtil; +import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.core.util.world.ChunkUtils; import org.bukkit.Location; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.EntityType; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java index 6e156a5..1d14bcf 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.entity; +package eu.mhsl.craftattack.core.util.entity; import org.bukkit.Material; import org.bukkit.Statistic; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java index 98def19..46fe7e7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.inventory; +package eu.mhsl.craftattack.core.util.inventory; import com.destroystokyo.paper.profile.PlayerProfile; import com.destroystokyo.paper.profile.ProfileProperty; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java similarity index 96% rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java index abcbed8..c761632 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.inventory; +package eu.mhsl.craftattack.core.util.inventory; -import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; +import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java index 65080f5..32e0a2d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.inventory; +package eu.mhsl.craftattack.core.util.inventory; import net.kyori.adventure.text.Component; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java index 6c798a1..df9b66c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.listener; +package eu.mhsl.craftattack.core.util.listener; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java index b8c4e7e..56361ec 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.listener; +package eu.mhsl.craftattack.core.util.listener; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java b/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java index 815137c..53c5795 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.server; +package eu.mhsl.craftattack.core.util.server; import org.bukkit.entity.Player; import org.geysermc.cumulus.form.SimpleForm; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java b/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java similarity index 83% rename from src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java index 5becb22..54ce0a9 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.util.server; +package eu.mhsl.craftattack.core.util.server; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import org.bukkit.entity.Player; public class PluginMessage { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java similarity index 96% rename from src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java index 5ad276f..250db58 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.statistics; +package eu.mhsl.craftattack.core.util.statistics; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitTask; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java similarity index 84% rename from src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java index 6c3fc89..a2124b8 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.statistics; +package eu.mhsl.craftattack.core.util.statistics; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java similarity index 88% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java index 2fd9f47..ccec20f 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; -import eu.mhsl.craftattack.spawn.util.NumberUtil; +import eu.mhsl.craftattack.core.util.NumberUtil; import net.kyori.adventure.text.format.TextColor; import java.awt.*; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java index aa1cbdc..3f75262 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; -import eu.mhsl.craftattack.spawn.util.statistics.NetworkMonitor; -import eu.mhsl.craftattack.spawn.util.statistics.ServerMonitor; +import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; +import eu.mhsl.craftattack.core.util.statistics.ServerMonitor; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java index 0b5a8a4..700bc9c 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java similarity index 97% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java index a987a4b..5b55814 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; public class DataSizeConverter { public static String convertBytesPerSecond(long bytes) { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java index 2573fbd..95be233 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; -import eu.mhsl.craftattack.spawn.Main; +import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java similarity index 90% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java index c814296..c84b68a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; public class NumberAbbreviation { public static > String abbreviateNumber(T number) { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java index fc3a554..34a4f5d 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.text; +package eu.mhsl.craftattack.core.util.text; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java similarity index 94% rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java index 5659299..c96b758 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.world; +package eu.mhsl.craftattack.core.util.world; import org.bukkit.Location; import org.bukkit.Material; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java similarity index 93% rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java index 869127d..0ac5f7b 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.world; +package eu.mhsl.craftattack.core.util.world; import org.bukkit.Chunk; import org.bukkit.Location; diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java similarity index 95% rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java index d49c3c9..44b7057 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.util.world; +package eu.mhsl.craftattack.core.util.world; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; diff --git a/src/main/resources/config.yml b/core/src/main/resources/config.yml similarity index 100% rename from src/main/resources/config.yml rename to core/src/main/resources/config.yml diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a441313..1af9e09 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index b740cf1..1aa94a4 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. diff --git a/gradlew.bat b/gradlew.bat index 25da30d..93e3f59 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. goto fail diff --git a/settings.gradle b/settings.gradle index d602ff8..378bf80 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,42 @@ +/*pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + maven { + name = "papermc-repo" + url = "https://repo.papermc.io/repository/maven-public/" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/groups/public/" + } + maven { + url = uri("https://repo.opencollab.dev/main/") + } + } +}*/ +/* +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) + repositories { + mavenCentral() + maven { + name = "papermc-repo" + url = "https://repo.papermc.io/repository/maven-public/" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/groups/public/" + } + maven { + url = uri("https://repo.opencollab.dev/main/") + } + } +}*/ + rootProject.name = 'spawn' + +include 'core' +include 'common' +include 'craftattack' + diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java deleted file mode 100644 index e5ab922..0000000 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java +++ /dev/null @@ -1,20 +0,0 @@ -package eu.mhsl.craftattack.spawn.appliances.internal.debug; - -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.AppliancesCommand; -import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.UserInfoCommand; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class Debug extends Appliance { - @Override - @NotNull - protected List> commands() { - return List.of( - new UserInfoCommand(), - new AppliancesCommand() - ); - } -} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java deleted file mode 100644 index 5fb3258..0000000 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java +++ /dev/null @@ -1,28 +0,0 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help; - -import eu.mhsl.craftattack.spawn.appliance.Appliance; -import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.DiscordCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.HelpCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.SpawnCommand; -import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.TeamspeakCommand; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class Help extends Appliance { - public Help() { - super("help"); - } - - @Override - @NotNull - protected List> commands() { - return List.of( - new HelpCommand(), - new SpawnCommand(), - new TeamspeakCommand(), - new DiscordCommand() - ); - } -} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java deleted file mode 100644 index c8310e0..0000000 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java +++ /dev/null @@ -1,5 +0,0 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; - -public interface CategorizedSetting { - SettingCategory category(); -} diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java deleted file mode 100644 index 76de3ac..0000000 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java +++ /dev/null @@ -1,7 +0,0 @@ -package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; - -public enum SettingCategory { - Gameplay, - Visuals, - Misc, -} From 4592d53d226e68ea1e3572fc82c25223614af58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 4 Apr 2025 21:35:07 +0200 Subject: [PATCH 02/72] splittet project to craftattack and varo flavors --- build.gradle | 8 ---- common/build.gradle | 23 ----------- .../src/main/resources/plugin.yml | 0 craftattack/build.gradle | 28 +++++++++++++ .../gameplay/antiSignEdit/AntiSignEdit.java | 2 +- .../antiSignEdit/OnSignEditListener.java | 2 +- .../antiSignEdit/SignEditSetting.java | 2 +- .../gameplay/autoShulker/AutoShulker.java | 2 +- .../autoShulker/AutoShulkerSetting.java | 2 +- .../autoShulker/ItemPickupListener.java | 2 +- .../customAdvancements/Advancements.java | 2 +- .../ApplyPendingAdvancementsListener.java | 2 +- .../CustomAdvancements.java | 2 +- .../CustomAdvancementsListener.java | 2 +- .../gameplay/doubleDoor/DoubleDoor.java | 2 +- .../doubleDoor/DoubleDoorSetting.java | 2 +- .../doubleDoor/OnDoorInteractListener.java | 2 +- .../fleischerchest/Fleischerchest.java | 2 +- .../FleischerchestCraftItemListener.java | 2 +- .../glowingBerries/GlowingBerries.java | 2 +- .../gameplay/glowingBerries/OnBerryEaten.java | 2 +- .../gameplay/hotbarRefill/HotbarRefill.java | 2 +- .../hotbarRefill/HotbarRefillListener.java | 2 +- .../hotbarRefill/HotbarRefillSetting.java | 2 +- .../gameplay/knockDoor/KnockDoor.java | 2 +- .../gameplay/knockDoor/KnockDoorListener.java | 2 +- .../gameplay/knockDoor/KnockDoorSetting.java | 2 +- .../outlawed/OutlawChangeNotPermitted.java | 2 +- .../gameplay/outlawed/Outlawed.java | 6 +-- .../gameplay/outlawed/OutlawedCommand.java | 2 +- .../outlawed/OutlawedReminderListener.java | 2 +- .../OnCraftingTableUseListener.java | 2 +- .../portableCrafting/PortableCrafting.java | 2 +- .../PortableCraftingSetting.java | 2 +- .../snowballKnockback/SnowballKnockback.java | 2 +- .../SnowballKnockbackListener.java | 2 +- .../metaGameplay/adminMarker/AdminMarker.java | 2 +- .../metaGameplay/afkTag/AfkResetListener.java | 2 +- .../metaGameplay/afkTag/AfkTag.java | 4 +- .../metaGameplay/displayName/DisplayName.java | 12 +++--- .../DisplayNameUpdateListener.java | 2 +- .../event/ApplyPendingRewardsListener.java | 2 +- .../appliances/metaGameplay/event/Event.java | 8 ++-- .../event/command/EventAdvertiseCommand.java | 4 +- .../event/command/EventCommand.java | 4 +- .../event/command/EventEndSessionCommand.java | 4 +- .../command/EventOpenSessionCommand.java | 4 +- .../command/MoveEventVillagerCommand.java | 4 +- .../metaGameplay/feedback/Feedback.java | 2 +- .../feedback/FeedbackCommand.java | 2 +- .../feedback/RequestFeedbackCommand.java | 2 +- .../metaGameplay/optionLinks/OptionLinks.java | 2 +- .../optionLinks/UpdateLinksListener.java | 2 +- .../packSelect/ChangePackCommand.java | 2 +- .../packSelect/PackConfiguration.java | 2 +- .../PackConfigurationInventory.java | 2 +- .../metaGameplay/packSelect/PackSelect.java | 8 ++-- .../packSelect/PackSelectSetting.java | 2 +- .../packSelect/ResourcePackInfoFactory.java | 2 +- .../listeners/ClickPackInventoryListener.java | 4 +- .../listeners/ClosePackInventoryListener.java | 4 +- .../listeners/SetPacksOnJoinListener.java | 4 +- .../metaGameplay/playtime/Playtime.java | 2 +- .../playtime/PlaytimeCommand.java | 2 +- .../metaGameplay/report/Report.java | 2 +- .../metaGameplay/report/ReportCommand.java | 2 +- .../metaGameplay/report/ReportsCommand.java | 2 +- .../sleepTag/SleepStateChangeListener.java | 2 +- .../metaGameplay/sleepTag/SleepTag.java | 4 +- .../metaGameplay/tablist/Tablist.java | 4 +- .../metaGameplay/tablist/TablistListener.java | 2 +- .../tablist/TechnicalTablistSetting.java | 2 +- .../MoveWorldMuseumVillagerCommand.java | 2 +- .../metaGameplay/worldmuseum/WorldMuseum.java | 2 +- .../metaGameplay/yearRank/YearRank.java | 4 +- .../yearRank/YearRankCommand.java | 2 +- .../LightningFireControl.java | 2 +- .../LightningFireListener.java | 2 +- .../tooling/projectStart/ProjectStart.java | 16 +++---- .../command/ProjectStartCancelCommand.java | 4 +- .../command/ProjectStartCommand.java | 4 +- .../command/ProjectStartResetCommand.java | 4 +- .../listener/NoAdvancementsListener.java | 4 +- .../listener/PlayerInvincibleListener.java | 4 +- .../tooling/whitelist/PlayerJoinListener.java | 2 +- .../tooling/whitelist/Whitelist.java | 4 +- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes settings.gradle | 39 +----------------- varo/build.gradle | 27 ++++++++++++ 89 files changed, 177 insertions(+), 188 deletions(-) rename {common => core}/src/main/resources/plugin.yml (100%) create mode 100644 craftattack/build.gradle rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/antiSignEdit/AntiSignEdit.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/antiSignEdit/OnSignEditListener.java (87%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/antiSignEdit/SignEditSetting.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/autoShulker/AutoShulker.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/autoShulker/AutoShulkerSetting.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/autoShulker/ItemPickupListener.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/customAdvancements/Advancements.java (83%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java (81%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/customAdvancements/CustomAdvancements.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/doubleDoor/DoubleDoor.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/doubleDoor/DoubleDoorSetting.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/doubleDoor/OnDoorInteractListener.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/fleischerchest/Fleischerchest.java (90%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java (88%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/glowingBerries/GlowingBerries.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/glowingBerries/OnBerryEaten.java (84%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/hotbarRefill/HotbarRefill.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/hotbarRefill/HotbarRefillListener.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java (94%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/knockDoor/KnockDoor.java (97%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/knockDoor/KnockDoorListener.java (89%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/knockDoor/KnockDoorSetting.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java (64%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/outlawed/Outlawed.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/outlawed/OutlawedCommand.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/outlawed/OutlawedReminderListener.java (86%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java (87%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/portableCrafting/PortableCrafting.java (90%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/portableCrafting/PortableCraftingSetting.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/snowballKnockback/SnowballKnockback.java (87%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java (89%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/adminMarker/AdminMarker.java (84%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/afkTag/AfkResetListener.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/afkTag/AfkTag.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/displayName/DisplayName.java (83%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java (83%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/ApplyPendingRewardsListener.java (82%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/Event.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/command/EventAdvertiseCommand.java (76%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/command/EventCommand.java (76%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/command/EventEndSessionCommand.java (75%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/command/EventOpenSessionCommand.java (81%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java (77%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/feedback/Feedback.java (97%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/feedback/FeedbackCommand.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/feedback/RequestFeedbackCommand.java (91%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/optionLinks/OptionLinks.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/optionLinks/UpdateLinksListener.java (80%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/ChangePackCommand.java (88%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/PackConfiguration.java (97%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/PackConfigurationInventory.java (98%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/PackSelect.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/PackSelectSetting.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java (79%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java (75%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java (75%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/playtime/Playtime.java (94%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/playtime/PlaytimeCommand.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/report/Report.java (98%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/report/ReportCommand.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/report/ReportsCommand.java (91%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java (89%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/sleepTag/SleepTag.java (92%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/tablist/Tablist.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/tablist/TablistListener.java (81%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/tablist/TechnicalTablistSetting.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java (87%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/worldmuseum/WorldMuseum.java (96%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/yearRank/YearRank.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/metaGameplay/yearRank/YearRankCommand.java (87%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/lightningFireControl/LightningFireControl.java (84%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/lightningFireControl/LightningFireListener.java (95%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/ProjectStart.java (89%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java (84%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/command/ProjectStartCommand.java (85%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/command/ProjectStartResetCommand.java (75%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/listener/NoAdvancementsListener.java (81%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java (83%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/whitelist/PlayerJoinListener.java (93%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/whitelist/Whitelist.java (97%) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 varo/build.gradle diff --git a/build.gradle b/build.gradle index eed3beb..68ed940 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'java' -} - allprojects { group = 'de.mhsl.craftattack' version = '1.0.0' @@ -30,8 +26,4 @@ subprojects { languageVersion = JavaLanguageVersion.of(21) } } - - tasks.withType(JavaCompile).configureEach { - options.release = 21 - } } \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index b831872..785d855 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,6 +1,5 @@ plugins { id 'java' - id("com.gradleup.shadow") version "8.3.5" } dependencies { @@ -8,26 +7,4 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' - implementation 'org.apache.httpcomponents:httpclient:4.5.14' - implementation 'com.sparkjava:spark-core:2.9.4' } - -configurations { - shadowImplementation.extendsFrom implementation -} - -shadowJar { - configurations = [project.configurations.shadowImplementation] - archiveClassifier.set('') - - relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' - relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' - - mergeServiceFiles() -} - -jar { - enabled = false -} - -build.dependsOn shadowJar diff --git a/common/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml similarity index 100% rename from common/src/main/resources/plugin.yml rename to core/src/main/resources/plugin.yml diff --git a/craftattack/build.gradle b/craftattack/build.gradle new file mode 100644 index 0000000..0f7c7ce --- /dev/null +++ b/craftattack/build.gradle @@ -0,0 +1,28 @@ +plugins { + id 'java' + id("com.gradleup.shadow") version "8.3.5" +} + +dependencies { + implementation project(':core') + implementation project(':common') + + compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' +} + +configurations { + shadowImplementation.extendsFrom implementation +} + +shadowJar { + configurations = [project.configurations.shadowImplementation] + archiveClassifier.set('') + + relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' + relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' + + mergeServiceFiles() +} \ No newline at end of file diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java index 2a8aac6..715d32b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.antiSignEdit; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java similarity index 87% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java index 82d0386..274599c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.antiSignEdit; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import io.papermc.paper.event.player.PlayerOpenSignEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/SignEditSetting.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/SignEditSetting.java index d56c3a4..b8cddc5 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/SignEditSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.antiSignEdit; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java index a6594fb..a0b9083 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.autoShulker; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulkerSetting.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulkerSetting.java index 010ae53..3795da6 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulkerSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.autoShulker; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java index f84704f..399fc45 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.autoShulker; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java similarity index 83% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java index ee12a66..08de6ff 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; public class Advancements { public static String searchTrouble = "search_trouble"; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java similarity index 81% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java index 059ab3c..3a5370a 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java index 32a4e76..1353f09 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java index 6f15ea4..fc2352b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java index de20645..a157714 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.doubleDoor; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoorSetting.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoorSetting.java index 7c8a479..3d0d610 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoorSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.doubleDoor; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java index beb66d6..de8a894 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.doubleDoor; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java similarity index 90% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java index 59e55b8..14fa42d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.fleischerchest; import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java similarity index 88% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java index 0d9f21a..33a2553 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.fleischerchest; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java index f367624..1aa9ed5 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.glowingBerries; import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.sound.Sound; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java similarity index 84% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java index 4141a55..acd2b09 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.glowingBerries; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java index d1aed2a..5af8180 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.hotbarRefill; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java index a807650..b92cd79 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.hotbarRefill; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java similarity index 94% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java index d1ea474..eba5c83 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.hotbarRefill; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java similarity index 97% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java index d1d6f36..6feacfa 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.knockDoor; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java similarity index 89% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java index ca48d09..6be30d0 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.knockDoor; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.GameMode; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorSetting.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorSetting.java index c848901..b137450 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.knockDoor; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java similarity index 64% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java index 959be74..605fca3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; class OutlawChangeNotPermitted extends Exception { public OutlawChangeNotPermitted(String message) { diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java index 8b49439..044dc51 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java @@ -1,10 +1,10 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist.Whitelist; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist.Whitelist; import eu.mhsl.craftattack.core.config.Configuration; import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java index 4c8fc3b..d6d3317 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java similarity index 86% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java index 3ab5da3..5769bc7 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java similarity index 87% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java index aedc4e6..8dbff58 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.Material; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java similarity index 90% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java index b60a2fc..d56baec 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCraftingSetting.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCraftingSetting.java index bfb19ca..b533bfa 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCraftingSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java similarity index 87% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java index 6e0b552..2cf43d3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.snowballKnockback; import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.entity.Entity; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java similarity index 89% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java index 42996a1..a2b8d37 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback; +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.snowballKnockback; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.entity.Entity; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java similarity index 84% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java index 582097f..9edf678 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker; import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.format.TextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java index 08ca667..7133fc0 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import io.papermc.paper.event.player.AsyncChatEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java index 4994e96..2f38916 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java similarity index 83% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java index da1766c..78a036e 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java @@ -1,12 +1,12 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker.AdminMarker; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag.AfkTag; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag.SleepTag; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank.YearRank; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker.AdminMarker; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag.AfkTag; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag.SleepTag; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank.YearRank; import eu.mhsl.craftattack.core.util.server.Floodgate; import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java similarity index 83% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java index c4ab190..4308fd8 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java similarity index 82% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java index 6b6462b..35a6cd3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java index d8814d3..1f92f22 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.api.client.ReqResp; @@ -6,8 +6,8 @@ import eu.mhsl.craftattack.core.api.client.repositories.EventRepository; import eu.mhsl.craftattack.core.api.server.HttpServer; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; import eu.mhsl.craftattack.core.util.IteratorUtil; import eu.mhsl.craftattack.core.util.api.HttpStatus; import eu.mhsl.craftattack.core.util.entity.DisplayVillager; @@ -16,7 +16,7 @@ import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListene import eu.mhsl.craftattack.core.util.server.PluginMessage; import eu.mhsl.craftattack.core.util.text.ComponentUtil; import eu.mhsl.craftattack.core.util.text.Countdown; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command.*; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command.*; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java similarity index 76% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java index a372eee..68283da 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java similarity index 76% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java index 5d2f51a..3073230 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java similarity index 75% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java index af2a8e3..23ad9f3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java similarity index 81% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java index 3f50814..bd66098 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java similarity index 77% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java index 7e10d5d..697323f 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java similarity index 97% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java index c01442b..7407e0a 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.api.client.ReqResp; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java index 8259389..9c5933b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java similarity index 91% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java index f7ccb6f..3881f34 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java index 86bdbbb..1cb64f8 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.optionLinks; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java similarity index 80% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java index fc33089..0e49080 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.optionLinks; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java similarity index 88% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java index ccf0a97..a46a884 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java similarity index 97% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java index d73575b..711901c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import com.google.gson.Gson; import com.google.gson.GsonBuilder; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java similarity index 98% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java index 81dc788..75f0560 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java index aecb902..10474b3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.resource.ResourcePackRequest; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java index 0cb1931..1cdde2f 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java index 482362e..799592e 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; import eu.mhsl.craftattack.core.Main; import net.kyori.adventure.resource.ResourcePackInfo; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java similarity index 79% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java index 199640a..278c077 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryClickEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java similarity index 75% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java index 25b681c..7f6b2d6 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.InventoryCloseEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java similarity index 75% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java index f2e5ab6..3848a01 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java similarity index 94% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java index 57018fb..2f7979e 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.playtime; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java index 3bfbd02..11af3e7 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.playtime; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java similarity index 98% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java index 00f560a..e27103e 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.api.client.ReqResp; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java index d1eee37..b58e207 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.util.text.ComponentUtil; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java similarity index 91% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java index 14d185e..abd4b78 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java similarity index 89% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java index 915f87c..5115fec 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java similarity index 92% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java index a6c76bc..e42e26b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java index 0218cfc..798b606 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report.Report; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report.Report; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.core.util.IteratorUtil; import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java similarity index 81% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java index 0828c41..4201899 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java index 9e69ffa..10af89c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java similarity index 87% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java index e98397b..fea0dc7 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.worldmuseum; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java similarity index 96% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java index d80991f..a99d066 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.worldmuseum; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java index fc1e14e..ce80fdb 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java similarity index 87% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java index 344a3f1..ce2c193 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank; +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java similarity index 84% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java index 17cf178..902a546 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.lightningFireControl; import eu.mhsl.craftattack.core.appliance.Appliance; import org.bukkit.block.Block; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java index 2ca2644..dd343f3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.lightningFireControl; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceListener; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java similarity index 89% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java index 6a7b338..6f2459c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java @@ -1,15 +1,15 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCancelCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartResetCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.NoAdvancementsListener; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.PlayerInvincibleListener; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command.ProjectStartCancelCommand; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command.ProjectStartCommand; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command.ProjectStartResetCommand; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener.NoAdvancementsListener; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener.PlayerInvincibleListener; import eu.mhsl.craftattack.core.config.Configuration; import eu.mhsl.craftattack.core.util.IteratorUtil; import eu.mhsl.craftattack.core.util.entity.PlayerUtils; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java similarity index 84% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java index c120e56..e0fd19c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java similarity index 85% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java index d29e321..3eac57c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java similarity index 75% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java index e6094fe..a2c59de 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java similarity index 81% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java index ebb5999..3de9621 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import org.bukkit.advancement.Advancement; import org.bukkit.advancement.AdvancementProgress; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java similarity index 83% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java index 95fcca3..c379898 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart; +import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java similarity index 93% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java index 8958a73..53b1057 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import eu.mhsl.craftattack.core.util.text.DisconnectInfo; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java similarity index 97% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java index 508395e..205bfe3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java @@ -1,11 +1,11 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.api.client.ReqResp; import eu.mhsl.craftattack.core.api.client.repositories.WhitelistRepository; import eu.mhsl.craftattack.core.api.server.HttpServer; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; import eu.mhsl.craftattack.core.util.api.HttpStatus; import eu.mhsl.craftattack.core.util.server.Floodgate; import eu.mhsl.craftattack.core.util.text.DisconnectInfo; diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..d64cd4917707c1f8861d8cb53dd15194d4248596 GIT binary patch literal 43462 zcma&NWl&^owk(X(xVyW%ySuwf;qI=D6|RlDJ2cR^yEKh!@I- zp9QeisK*rlxC>+~7Dk4IxIRsKBHqdR9b3+fyL=ynHmIDe&|>O*VlvO+%z5;9Z$|DJ zb4dO}-R=MKr^6EKJiOrJdLnCJn>np?~vU-1sSFgPu;pthGwf}bG z(1db%xwr#x)r+`4AGu$j7~u2MpVs3VpLp|mx&;>`0p0vH6kF+D2CY0fVdQOZ@h;A` z{infNyvmFUiu*XG}RNMNwXrbec_*a3N=2zJ|Wh5z* z5rAX$JJR{#zP>KY**>xHTuw?|-Rg|o24V)74HcfVT;WtQHXlE+_4iPE8QE#DUm%x0 zEKr75ur~W%w#-My3Tj`hH6EuEW+8K-^5P62$7Sc5OK+22qj&Pd1;)1#4tKihi=~8C zHiQSst0cpri6%OeaR`PY>HH_;CPaRNty%WTm4{wDK8V6gCZlG@U3$~JQZ;HPvDJcT1V{ z?>H@13MJcCNe#5z+MecYNi@VT5|&UiN1D4ATT+%M+h4c$t;C#UAs3O_q=GxK0}8%8 z8J(_M9bayxN}69ex4dzM_P3oh@ZGREjVvn%%r7=xjkqxJP4kj}5tlf;QosR=%4L5y zWhgejO=vao5oX%mOHbhJ8V+SG&K5dABn6!WiKl{|oPkq(9z8l&Mm%(=qGcFzI=eLu zWc_oCLyf;hVlB@dnwY98?75B20=n$>u3b|NB28H0u-6Rpl((%KWEBOfElVWJx+5yg z#SGqwza7f}$z;n~g%4HDU{;V{gXIhft*q2=4zSezGK~nBgu9-Q*rZ#2f=Q}i2|qOp z!!y4p)4o=LVUNhlkp#JL{tfkhXNbB=Ox>M=n6soptJw-IDI|_$is2w}(XY>a=H52d z3zE$tjPUhWWS+5h=KVH&uqQS=$v3nRs&p$%11b%5qtF}S2#Pc`IiyBIF4%A!;AVoI zXU8-Rpv!DQNcF~(qQnyyMy=-AN~U>#&X1j5BLDP{?K!%h!;hfJI>$mdLSvktEr*89 zdJHvby^$xEX0^l9g$xW-d?J;L0#(`UT~zpL&*cEh$L|HPAu=P8`OQZV!-}l`noSp_ zQ-1$q$R-gDL)?6YaM!=8H=QGW$NT2SeZlb8PKJdc=F-cT@j7Xags+Pr*jPtlHFnf- zh?q<6;)27IdPc^Wdy-mX%2s84C1xZq9Xms+==F4);O`VUASmu3(RlgE#0+#giLh-& zcxm3_e}n4{%|X zJp{G_j+%`j_q5}k{eW&TlP}J2wtZ2^<^E(O)4OQX8FDp6RJq!F{(6eHWSD3=f~(h} zJXCf7=r<16X{pHkm%yzYI_=VDP&9bmI1*)YXZeB}F? z(%QsB5fo*FUZxK$oX~X^69;x~j7ms8xlzpt-T15e9}$4T-pC z6PFg@;B-j|Ywajpe4~bk#S6(fO^|mm1hKOPfA%8-_iGCfICE|=P_~e;Wz6my&)h_~ zkv&_xSAw7AZ%ThYF(4jADW4vg=oEdJGVOs>FqamoL3Np8>?!W#!R-0%2Bg4h?kz5I zKV-rKN2n(vUL%D<4oj@|`eJ>0i#TmYBtYmfla;c!ATW%;xGQ0*TW@PTlGG><@dxUI zg>+3SiGdZ%?5N=8uoLA|$4isK$aJ%i{hECP$bK{J#0W2gQ3YEa zZQ50Stn6hqdfxJ*9#NuSLwKFCUGk@c=(igyVL;;2^wi4o30YXSIb2g_ud$ zgpCr@H0qWtk2hK8Q|&wx)}4+hTYlf;$a4#oUM=V@Cw#!$(nOFFpZ;0lc!qd=c$S}Z zGGI-0jg~S~cgVT=4Vo)b)|4phjStD49*EqC)IPwyeKBLcN;Wu@Aeph;emROAwJ-0< z_#>wVm$)ygH|qyxZaet&(Vf%pVdnvKWJn9`%DAxj3ot;v>S$I}jJ$FLBF*~iZ!ZXE zkvui&p}fI0Y=IDX)mm0@tAd|fEHl~J&K}ZX(Mm3cm1UAuwJ42+AO5@HwYfDH7ipIc zmI;1J;J@+aCNG1M`Btf>YT>~c&3j~Qi@Py5JT6;zjx$cvOQW@3oQ>|}GH?TW-E z1R;q^QFjm5W~7f}c3Ww|awg1BAJ^slEV~Pk`Kd`PS$7;SqJZNj->it4DW2l15}xP6 zoCl$kyEF%yJni0(L!Z&14m!1urXh6Btj_5JYt1{#+H8w?5QI%% zo-$KYWNMJVH?Hh@1n7OSu~QhSswL8x0=$<8QG_zepi_`y_79=nK=_ZP_`Em2UI*tyQoB+r{1QYZCpb?2OrgUw#oRH$?^Tj!Req>XiE#~B|~ z+%HB;=ic+R@px4Ld8mwpY;W^A%8%l8$@B@1m5n`TlKI6bz2mp*^^^1mK$COW$HOfp zUGTz-cN9?BGEp}5A!mDFjaiWa2_J2Iq8qj0mXzk; z66JBKRP{p%wN7XobR0YjhAuW9T1Gw3FDvR5dWJ8ElNYF94eF3ebu+QwKjtvVu4L zI9ip#mQ@4uqVdkl-TUQMb^XBJVLW(-$s;Nq;@5gr4`UfLgF$adIhd?rHOa%D);whv z=;krPp~@I+-Z|r#s3yCH+c1US?dnm+C*)r{m+86sTJusLdNu^sqLrfWed^ndHXH`m zd3#cOe3>w-ga(Dus_^ppG9AC>Iq{y%%CK+Cro_sqLCs{VLuK=dev>OL1dis4(PQ5R zcz)>DjEkfV+MO;~>VUlYF00SgfUo~@(&9$Iy2|G0T9BSP?&T22>K46D zL*~j#yJ?)^*%J3!16f)@Y2Z^kS*BzwfAQ7K96rFRIh>#$*$_Io;z>ux@}G98!fWR@ zGTFxv4r~v)Gsd|pF91*-eaZ3Qw1MH$K^7JhWIdX%o$2kCbvGDXy)a?@8T&1dY4`;L z4Kn+f%SSFWE_rpEpL9bnlmYq`D!6F%di<&Hh=+!VI~j)2mfil03T#jJ_s?}VV0_hp z7T9bWxc>Jm2Z0WMU?`Z$xE74Gu~%s{mW!d4uvKCx@WD+gPUQ zV0vQS(Ig++z=EHN)BR44*EDSWIyT~R4$FcF*VEY*8@l=218Q05D2$|fXKFhRgBIEE zdDFB}1dKkoO^7}{5crKX!p?dZWNz$m>1icsXG2N+((x0OIST9Zo^DW_tytvlwXGpn zs8?pJXjEG;T@qrZi%#h93?FP$!&P4JA(&H61tqQi=opRzNpm zkrG}$^t9&XduK*Qa1?355wd8G2CI6QEh@Ua>AsD;7oRUNLPb76m4HG3K?)wF~IyS3`fXuNM>${?wmB zpVz;?6_(Fiadfd{vUCBM*_kt$+F3J+IojI;9L(gc9n3{sEZyzR9o!_mOwFC#tQ{Q~ zP3-`#uK#tP3Q7~Q;4H|wjZHO8h7e4IuBxl&vz2w~D8)w=Wtg31zpZhz%+kzSzL*dV zwp@{WU4i;hJ7c2f1O;7Mz6qRKeASoIv0_bV=i@NMG*l<#+;INk-^`5w@}Dj~;k=|}qM1vq_P z|GpBGe_IKq|LNy9SJhKOQ$c=5L{Dv|Q_lZl=-ky*BFBJLW9&y_C|!vyM~rQx=!vun z?rZJQB5t}Dctmui5i31C_;_}CEn}_W%>oSXtt>@kE1=JW*4*v4tPp;O6 zmAk{)m!)}34pTWg8{i>($%NQ(Tl;QC@J@FfBoc%Gr&m560^kgSfodAFrIjF}aIw)X zoXZ`@IsMkc8_=w%-7`D6Y4e*CG8k%Ud=GXhsTR50jUnm+R*0A(O3UKFg0`K;qp1bl z7``HN=?39ic_kR|^R^~w-*pa?Vj#7|e9F1iRx{GN2?wK!xR1GW!qa=~pjJb-#u1K8 zeR?Y2i-pt}yJq;SCiVHODIvQJX|ZJaT8nO+(?HXbLefulKKgM^B(UIO1r+S=7;kLJ zcH}1J=Px2jsh3Tec&v8Jcbng8;V-`#*UHt?hB(pmOipKwf3Lz8rG$heEB30Sg*2rx zV<|KN86$soN(I!BwO`1n^^uF2*x&vJ$2d$>+`(romzHP|)K_KkO6Hc>_dwMW-M(#S zK(~SiXT1@fvc#U+?|?PniDRm01)f^#55;nhM|wi?oG>yBsa?~?^xTU|fX-R(sTA+5 zaq}-8Tx7zrOy#3*JLIIVsBmHYLdD}!0NP!+ITW+Thn0)8SS!$@)HXwB3tY!fMxc#1 zMp3H?q3eD?u&Njx4;KQ5G>32+GRp1Ee5qMO0lZjaRRu&{W<&~DoJNGkcYF<5(Ab+J zgO>VhBl{okDPn78<%&e2mR{jwVCz5Og;*Z;;3%VvoGo_;HaGLWYF7q#jDX=Z#Ml`H z858YVV$%J|e<1n`%6Vsvq7GmnAV0wW4$5qQ3uR@1i>tW{xrl|ExywIc?fNgYlA?C5 zh$ezAFb5{rQu6i7BSS5*J-|9DQ{6^BVQ{b*lq`xS@RyrsJN?-t=MTMPY;WYeKBCNg z^2|pN!Q^WPJuuO4!|P@jzt&tY1Y8d%FNK5xK(!@`jO2aEA*4 zkO6b|UVBipci?){-Ke=+1;mGlND8)6+P;8sq}UXw2hn;fc7nM>g}GSMWu&v&fqh

iViYT=fZ(|3Ox^$aWPp4a8h24tD<|8-!aK0lHgL$N7Efw}J zVIB!7=T$U`ao1?upi5V4Et*-lTG0XvExbf!ya{cua==$WJyVG(CmA6Of*8E@DSE%L z`V^$qz&RU$7G5mg;8;=#`@rRG`-uS18$0WPN@!v2d{H2sOqP|!(cQ@ zUHo!d>>yFArLPf1q`uBvY32miqShLT1B@gDL4XoVTK&@owOoD)OIHXrYK-a1d$B{v zF^}8D3Y^g%^cnvScOSJR5QNH+BI%d|;J;wWM3~l>${fb8DNPg)wrf|GBP8p%LNGN# z3EaIiItgwtGgT&iYCFy9-LG}bMI|4LdmmJt@V@% zb6B)1kc=T)(|L@0;wr<>=?r04N;E&ef+7C^`wPWtyQe(*pD1pI_&XHy|0gIGHMekd zF_*M4yi6J&Z4LQj65)S zXwdM{SwUo%3SbPwFsHgqF@V|6afT|R6?&S;lw=8% z3}@9B=#JI3@B*#4s!O))~z zc>2_4Q_#&+5V`GFd?88^;c1i7;Vv_I*qt!_Yx*n=;rj!82rrR2rQ8u5(Ejlo{15P% zs~!{%XJ>FmJ})H^I9bn^Re&38H{xA!0l3^89k(oU;bZWXM@kn$#aoS&Y4l^-WEn-fH39Jb9lA%s*WsKJQl?n9B7_~P z-XM&WL7Z!PcoF6_D>V@$CvUIEy=+Z&0kt{szMk=f1|M+r*a43^$$B^MidrT0J;RI` z(?f!O<8UZkm$_Ny$Hth1J#^4ni+im8M9mr&k|3cIgwvjAgjH z8`N&h25xV#v*d$qBX5jkI|xOhQn!>IYZK7l5#^P4M&twe9&Ey@@GxYMxBZq2e7?`q z$~Szs0!g{2fGcp9PZEt|rdQ6bhAgpcLHPz?f-vB?$dc*!9OL?Q8mn7->bFD2Si60* z!O%y)fCdMSV|lkF9w%x~J*A&srMyYY3{=&$}H zGQ4VG_?$2X(0|vT0{=;W$~icCI{b6W{B!Q8xdGhF|D{25G_5_+%s(46lhvNLkik~R z>nr(&C#5wwOzJZQo9m|U<;&Wk!_#q|V>fsmj1g<6%hB{jGoNUPjgJslld>xmODzGjYc?7JSuA?A_QzjDw5AsRgi@Y|Z0{F{!1=!NES-#*f^s4l0Hu zz468))2IY5dmD9pa*(yT5{EyP^G>@ZWumealS-*WeRcZ}B%gxq{MiJ|RyX-^C1V=0 z@iKdrGi1jTe8Ya^x7yyH$kBNvM4R~`fbPq$BzHum-3Zo8C6=KW@||>zsA8-Y9uV5V z#oq-f5L5}V<&wF4@X@<3^C%ptp6+Ce)~hGl`kwj)bsAjmo_GU^r940Z-|`<)oGnh7 zFF0Tde3>ui?8Yj{sF-Z@)yQd~CGZ*w-6p2U<8}JO-sRsVI5dBji`01W8A&3$?}lxBaC&vn0E$c5tW* zX>5(zzZ=qn&!J~KdsPl;P@bmA-Pr8T*)eh_+Dv5=Ma|XSle6t(k8qcgNyar{*ReQ8 zTXwi=8vr>!3Ywr+BhggHDw8ke==NTQVMCK`$69fhzEFB*4+H9LIvdt-#IbhZvpS}} zO3lz;P?zr0*0$%-Rq_y^k(?I{Mk}h@w}cZpMUp|ucs55bcloL2)($u%mXQw({Wzc~ z;6nu5MkjP)0C(@%6Q_I_vsWrfhl7Zpoxw#WoE~r&GOSCz;_ro6i(^hM>I$8y>`!wW z*U^@?B!MMmb89I}2(hcE4zN2G^kwyWCZp5JG>$Ez7zP~D=J^LMjSM)27_0B_X^C(M z`fFT+%DcKlu?^)FCK>QzSnV%IsXVcUFhFdBP!6~se&xxrIxsvySAWu++IrH;FbcY$ z2DWTvSBRfLwdhr0nMx+URA$j3i7_*6BWv#DXfym?ZRDcX9C?cY9sD3q)uBDR3uWg= z(lUIzB)G$Hr!){>E{s4Dew+tb9kvToZp-1&c?y2wn@Z~(VBhqz`cB;{E4(P3N2*nJ z_>~g@;UF2iG{Kt(<1PyePTKahF8<)pozZ*xH~U-kfoAayCwJViIrnqwqO}7{0pHw$ zs2Kx?s#vQr7XZ264>5RNKSL8|Ty^=PsIx^}QqOOcfpGUU4tRkUc|kc7-!Ae6!+B{o~7nFpm3|G5^=0#Bnm6`V}oSQlrX(u%OWnC zoLPy&Q;1Jui&7ST0~#+}I^&?vcE*t47~Xq#YwvA^6^} z`WkC)$AkNub|t@S!$8CBlwbV~?yp&@9h{D|3z-vJXgzRC5^nYm+PyPcgRzAnEi6Q^gslXYRv4nycsy-SJu?lMps-? zV`U*#WnFsdPLL)Q$AmD|0`UaC4ND07+&UmOu!eHruzV|OUox<+Jl|Mr@6~C`T@P%s zW7sgXLF2SSe9Fl^O(I*{9wsFSYb2l%-;&Pi^dpv!{)C3d0AlNY6!4fgmSgj_wQ*7Am7&$z;Jg&wgR-Ih;lUvWS|KTSg!&s_E9_bXBkZvGiC6bFKDWZxsD$*NZ#_8bl zG1P-#@?OQzED7@jlMJTH@V!6k;W>auvft)}g zhoV{7$q=*;=l{O>Q4a@ ziMjf_u*o^PsO)#BjC%0^h>Xp@;5$p{JSYDt)zbb}s{Kbt!T*I@Pk@X0zds6wsefuU zW$XY%yyRGC94=6mf?x+bbA5CDQ2AgW1T-jVAJbm7K(gp+;v6E0WI#kuACgV$r}6L? zd|Tj?^%^*N&b>Dd{Wr$FS2qI#Ucs1yd4N+RBUQiSZGujH`#I)mG&VKoDh=KKFl4=G z&MagXl6*<)$6P}*Tiebpz5L=oMaPrN+caUXRJ`D?=K9!e0f{@D&cZLKN?iNP@X0aF zE(^pl+;*T5qt?1jRC=5PMgV!XNITRLS_=9{CJExaQj;lt!&pdzpK?8p>%Mb+D z?yO*uSung=-`QQ@yX@Hyd4@CI^r{2oiu`%^bNkz+Nkk!IunjwNC|WcqvX~k=><-I3 zDQdbdb|!v+Iz01$w@aMl!R)koD77Xp;eZwzSl-AT zr@Vu{=xvgfq9akRrrM)}=!=xcs+U1JO}{t(avgz`6RqiiX<|hGG1pmop8k6Q+G_mv zJv|RfDheUp2L3=^C=4aCBMBn0aRCU(DQwX-W(RkRwmLeuJYF<0urcaf(=7)JPg<3P zQs!~G)9CT18o!J4{zX{_e}4eS)U-E)0FAt}wEI(c0%HkxgggW;(1E=>J17_hsH^sP z%lT0LGgbUXHx-K*CI-MCrP66UP0PvGqM$MkeLyqHdbgP|_Cm!7te~b8p+e6sQ_3k| zVcwTh6d83ltdnR>D^)BYQpDKlLk3g0Hdcgz2}%qUs9~~Rie)A-BV1mS&naYai#xcZ z(d{8=-LVpTp}2*y)|gR~;qc7fp26}lPcLZ#=JpYcn3AT9(UIdOyg+d(P5T7D&*P}# zQCYplZO5|7+r19%9e`v^vfSS1sbX1c%=w1;oyruXB%Kl$ACgKQ6=qNWLsc=28xJjg zwvsI5-%SGU|3p>&zXVl^vVtQT3o-#$UT9LI@Npz~6=4!>mc431VRNN8od&Ul^+G_kHC`G=6WVWM z%9eWNyy(FTO|A+@x}Ou3CH)oi;t#7rAxdIXfNFwOj_@Y&TGz6P_sqiB`Q6Lxy|Q{`|fgmRG(k+!#b*M+Z9zFce)f-7;?Km5O=LHV9f9_87; zF7%R2B+$?@sH&&-$@tzaPYkw0;=i|;vWdI|Wl3q_Zu>l;XdIw2FjV=;Mq5t1Q0|f< zs08j54Bp`3RzqE=2enlkZxmX6OF+@|2<)A^RNQpBd6o@OXl+i)zO%D4iGiQNuXd+zIR{_lb96{lc~bxsBveIw6umhShTX+3@ZJ=YHh@ zWY3(d0azg;7oHn>H<>?4@*RQbi>SmM=JrHvIG(~BrvI)#W(EAeO6fS+}mxxcc+X~W6&YVl86W9WFSS}Vz-f9vS?XUDBk)3TcF z8V?$4Q)`uKFq>xT=)Y9mMFVTUk*NIA!0$?RP6Ig0TBmUFrq*Q-Agq~DzxjStQyJ({ zBeZ;o5qUUKg=4Hypm|}>>L=XKsZ!F$yNTDO)jt4H0gdQ5$f|d&bnVCMMXhNh)~mN z@_UV6D7MVlsWz+zM+inZZp&P4fj=tm6fX)SG5H>OsQf_I8c~uGCig$GzuwViK54bcgL;VN|FnyQl>Ed7(@>=8$a_UKIz|V6CeVSd2(P z0Uu>A8A+muM%HLFJQ9UZ5c)BSAv_zH#1f02x?h9C}@pN@6{>UiAp>({Fn(T9Q8B z^`zB;kJ5b`>%dLm+Ol}ty!3;8f1XDSVX0AUe5P#@I+FQ-`$(a;zNgz)4x5hz$Hfbg z!Q(z26wHLXko(1`;(BAOg_wShpX0ixfWq3ponndY+u%1gyX)_h=v1zR#V}#q{au6; z!3K=7fQwnRfg6FXtNQmP>`<;!N137paFS%y?;lb1@BEdbvQHYC{976l`cLqn;b8lp zIDY>~m{gDj(wfnK!lpW6pli)HyLEiUrNc%eXTil|F2s(AY+LW5hkKb>TQ3|Q4S9rr zpDs4uK_co6XPsn_z$LeS{K4jFF`2>U`tbgKdyDne`xmR<@6AA+_hPNKCOR-Zqv;xk zu5!HsBUb^!4uJ7v0RuH-7?l?}b=w5lzzXJ~gZcxRKOovSk@|#V+MuX%Y+=;14i*%{)_gSW9(#4%)AV#3__kac1|qUy!uyP{>?U#5wYNq}y$S9pCc zFc~4mgSC*G~j0u#qqp9 z${>3HV~@->GqEhr_Xwoxq?Hjn#=s2;i~g^&Hn|aDKpA>Oc%HlW(KA1?BXqpxB;Ydx)w;2z^MpjJ(Qi(X!$5RC z*P{~%JGDQqojV>2JbEeCE*OEu!$XJ>bWA9Oa_Hd;y)F%MhBRi*LPcdqR8X`NQ&1L# z5#9L*@qxrx8n}LfeB^J{%-?SU{FCwiWyHp682F+|pa+CQa3ZLzBqN1{)h4d6+vBbV zC#NEbQLC;}me3eeYnOG*nXOJZEU$xLZ1<1Y=7r0(-U0P6-AqwMAM`a(Ed#7vJkn6plb4eI4?2y3yOTGmmDQ!z9`wzbf z_OY#0@5=bnep;MV0X_;;SJJWEf^E6Bd^tVJ9znWx&Ks8t*B>AM@?;D4oWUGc z!H*`6d7Cxo6VuyS4Eye&L1ZRhrRmN6Lr`{NL(wDbif|y&z)JN>Fl5#Wi&mMIr5i;x zBx}3YfF>>8EC(fYnmpu~)CYHuHCyr5*`ECap%t@y=jD>!_%3iiE|LN$mK9>- zHdtpy8fGZtkZF?%TW~29JIAfi2jZT8>OA7=h;8T{{k?c2`nCEx9$r zS+*&vt~2o^^J+}RDG@+9&M^K*z4p{5#IEVbz`1%`m5c2};aGt=V?~vIM}ZdPECDI)47|CWBCfDWUbxBCnmYivQ*0Nu_xb*C>~C9(VjHM zxe<*D<#dQ8TlpMX2c@M<9$w!RP$hpG4cs%AI){jp*Sj|*`m)5(Bw*A0$*i-(CA5#%>a)$+jI2C9r6|(>J8InryENI z$NohnxDUB;wAYDwrb*!N3noBTKPpPN}~09SEL18tkG zxgz(RYU_;DPT{l?Q$+eaZaxnsWCA^ds^0PVRkIM%bOd|G2IEBBiz{&^JtNsODs;5z zICt_Zj8wo^KT$7Bg4H+y!Df#3mbl%%?|EXe!&(Vmac1DJ*y~3+kRKAD=Ovde4^^%~ zw<9av18HLyrf*_>Slp;^i`Uy~`mvBjZ|?Ad63yQa#YK`4+c6;pW4?XIY9G1(Xh9WO8{F-Aju+nS9Vmv=$Ac0ienZ+p9*O%NG zMZKy5?%Z6TAJTE?o5vEr0r>f>hb#2w2U3DL64*au_@P!J!TL`oH2r*{>ffu6|A7tv zL4juf$DZ1MW5ZPsG!5)`k8d8c$J$o;%EIL0va9&GzWvkS%ZsGb#S(?{!UFOZ9<$a| zY|a+5kmD5N&{vRqkgY>aHsBT&`rg|&kezoD)gP0fsNYHsO#TRc_$n6Lf1Z{?+DLziXlHrq4sf(!>O{?Tj;Eh@%)+nRE_2VxbN&&%%caU#JDU%vL3}Cb zsb4AazPI{>8H&d=jUaZDS$-0^AxE@utGs;-Ez_F(qC9T=UZX=>ok2k2 ziTn{K?y~a5reD2A)P${NoI^>JXn>`IeArow(41c-Wm~)wiryEP(OS{YXWi7;%dG9v zI?mwu1MxD{yp_rrk!j^cKM)dc4@p4Ezyo%lRN|XyD}}>v=Xoib0gOcdXrQ^*61HNj z=NP|pd>@yfvr-=m{8$3A8TQGMTE7g=z!%yt`8`Bk-0MMwW~h^++;qyUP!J~ykh1GO z(FZ59xuFR$(WE;F@UUyE@Sp>`aVNjyj=Ty>_Vo}xf`e7`F;j-IgL5`1~-#70$9_=uBMq!2&1l zomRgpD58@)YYfvLtPW}{C5B35R;ZVvB<<#)x%srmc_S=A7F@DW8>QOEGwD6suhwCg z>Pa+YyULhmw%BA*4yjDp|2{!T98~<6Yfd(wo1mQ!KWwq0eg+6)o1>W~f~kL<-S+P@$wx*zeI|1t7z#Sxr5 zt6w+;YblPQNplq4Z#T$GLX#j6yldXAqj>4gAnnWtBICUnA&-dtnlh=t0Ho_vEKwV` z)DlJi#!@nkYV#$!)@>udAU*hF?V`2$Hf=V&6PP_|r#Iv*J$9)pF@X3`k;5})9^o4y z&)~?EjX5yX12O(BsFy-l6}nYeuKkiq`u9145&3Ssg^y{5G3Pse z9w(YVa0)N-fLaBq1`P!_#>SS(8fh_5!f{UrgZ~uEdeMJIz7DzI5!NHHqQtm~#CPij z?=N|J>nPR6_sL7!f4hD_|KH`vf8(Wpnj-(gPWH+ZvID}%?~68SwhPTC3u1_cB`otq z)U?6qo!ZLi5b>*KnYHWW=3F!p%h1;h{L&(Q&{qY6)_qxNfbP6E3yYpW!EO+IW3?@J z);4>g4gnl^8klu7uA>eGF6rIGSynacogr)KUwE_R4E5Xzi*Qir@b-jy55-JPC8c~( zo!W8y9OGZ&`xmc8;=4-U9=h{vCqfCNzYirONmGbRQlR`WWlgnY+1wCXbMz&NT~9*| z6@FrzP!LX&{no2!Ln_3|I==_4`@}V?4a;YZKTdw;vT<+K+z=uWbW(&bXEaWJ^W8Td z-3&1bY^Z*oM<=M}LVt>_j+p=2Iu7pZmbXrhQ_k)ysE9yXKygFNw$5hwDn(M>H+e1&9BM5!|81vd%r%vEm zqxY3?F@fb6O#5UunwgAHR9jp_W2zZ}NGp2%mTW@(hz7$^+a`A?mb8|_G*GNMJ) zjqegXQio=i@AINre&%ofexAr95aop5C+0MZ0m-l=MeO8m3epm7U%vZB8+I+C*iNFM z#T3l`gknX;D$-`2XT^Cg*vrv=RH+P;_dfF++cP?B_msQI4j+lt&rX2)3GaJx%W*Nn zkML%D{z5tpHH=dksQ*gzc|}gzW;lwAbxoR07VNgS*-c3d&8J|;@3t^ zVUz*J*&r7DFRuFVDCJDK8V9NN5hvpgGjwx+5n)qa;YCKe8TKtdnh{I7NU9BCN!0dq zczrBk8pE{{@vJa9ywR@mq*J=v+PG;?fwqlJVhijG!3VmIKs>9T6r7MJpC)m!Tc#>g zMtVsU>wbwFJEfwZ{vB|ZlttNe83)$iz`~#8UJ^r)lJ@HA&G#}W&ZH*;k{=TavpjWE z7hdyLZPf*X%Gm}i`Y{OGeeu^~nB8=`{r#TUrM-`;1cBvEd#d!kPqIgYySYhN-*1;L z^byj%Yi}Gx)Wnkosi337BKs}+5H5dth1JA{Ir-JKN$7zC)*}hqeoD(WfaUDPT>0`- z(6sa0AoIqASwF`>hP}^|)a_j2s^PQn*qVC{Q}htR z5-)duBFXT_V56-+UohKXlq~^6uf!6sA#ttk1o~*QEy_Y-S$gAvq47J9Vtk$5oA$Ct zYhYJ@8{hsC^98${!#Ho?4y5MCa7iGnfz}b9jE~h%EAAv~Qxu)_rAV;^cygV~5r_~?l=B`zObj7S=H=~$W zPtI_m%g$`kL_fVUk9J@>EiBH zOO&jtn~&`hIFMS5S`g8w94R4H40mdNUH4W@@XQk1sr17b{@y|JB*G9z1|CrQjd+GX z6+KyURG3;!*BQrentw{B2R&@2&`2}n(z-2&X7#r!{yg@Soy}cRD~j zj9@UBW+N|4HW4AWapy4wfUI- zZ`gSL6DUlgj*f1hSOGXG0IVH8HxK?o2|3HZ;KW{K+yPAlxtb)NV_2AwJm|E)FRs&& z=c^e7bvUsztY|+f^k7NXs$o1EUq>cR7C0$UKi6IooHWlK_#?IWDkvywnzg&ThWo^? z2O_N{5X39#?eV9l)xI(>@!vSB{DLt*oY!K1R8}_?%+0^C{d9a%N4 zoxHVT1&Lm|uDX%$QrBun5e-F`HJ^T$ zmzv)p@4ZHd_w9!%Hf9UYNvGCw2TTTbrj9pl+T9%-_-}L(tES>Or-}Z4F*{##n3~L~TuxjirGuIY#H7{%$E${?p{Q01 zi6T`n;rbK1yIB9jmQNycD~yZq&mbIsFWHo|ZAChSFPQa<(%d8mGw*V3fh|yFoxOOiWJd(qvVb!Z$b88cg->N=qO*4k~6;R==|9ihg&riu#P~s4Oap9O7f%crSr^rljeIfXDEg>wi)&v*a%7zpz<9w z*r!3q9J|390x`Zk;g$&OeN&ctp)VKRpDSV@kU2Q>jtok($Y-*x8_$2piTxun81@vt z!Vj?COa0fg2RPXMSIo26T=~0d`{oGP*eV+$!0I<(4azk&Vj3SiG=Q!6mX0p$z7I}; z9BJUFgT-K9MQQ-0@Z=^7R<{bn2Fm48endsSs`V7_@%8?Bxkqv>BDoVcj?K#dV#uUP zL1ND~?D-|VGKe3Rw_7-Idpht>H6XRLh*U7epS6byiGvJpr%d}XwfusjH9g;Z98H`x zyde%%5mhGOiL4wljCaWCk-&uE4_OOccb9c!ZaWt4B(wYl!?vyzl%7n~QepN&eFUrw zFIOl9c({``6~QD+43*_tzP{f2x41h(?b43^y6=iwyB)2os5hBE!@YUS5?N_tXd=h( z)WE286Fbd>R4M^P{!G)f;h<3Q>Fipuy+d2q-)!RyTgt;wr$(?9ox3;q+{E*ZQHhOn;lM`cjnu9 zXa48ks-v(~b*;MAI<>YZH(^NV8vjb34beE<_cwKlJoR;k6lJNSP6v}uiyRD?|0w+X@o1ONrH8a$fCxXpf? z?$DL0)7|X}Oc%h^zrMKWc-NS9I0Utu@>*j}b@tJ=ixQSJ={4@854wzW@E>VSL+Y{i z#0b=WpbCZS>kUCO_iQz)LoE>P5LIG-hv9E+oG}DtlIDF>$tJ1aw9^LuhLEHt?BCj& z(O4I8v1s#HUi5A>nIS-JK{v!7dJx)^Yg%XjNmlkWAq2*cv#tHgz`Y(bETc6CuO1VkN^L-L3j_x<4NqYb5rzrLC-7uOv z!5e`GZt%B782C5-fGnn*GhDF$%(qP<74Z}3xx+{$4cYKy2ikxI7B2N+2r07DN;|-T->nU&!=Cm#rZt%O_5c&1Z%nlWq3TKAW0w zQqemZw_ue--2uKQsx+niCUou?HjD`xhEjjQd3%rrBi82crq*~#uA4+>vR<_S{~5ce z-2EIl?~s z1=GVL{NxP1N3%=AOaC}j_Fv=ur&THz zyO!d9kHq|c73kpq`$+t+8Bw7MgeR5~`d7ChYyGCBWSteTB>8WAU(NPYt2Dk`@#+}= zI4SvLlyk#pBgVigEe`?NG*vl7V6m+<}%FwPV=~PvvA)=#ths==DRTDEYh4V5}Cf$z@#;< zyWfLY_5sP$gc3LLl2x+Ii)#b2nhNXJ{R~vk`s5U7Nyu^3yFg&D%Txwj6QezMX`V(x z=C`{76*mNb!qHHs)#GgGZ_7|vkt9izl_&PBrsu@}L`X{95-2jf99K)0=*N)VxBX2q z((vkpP2RneSIiIUEnGb?VqbMb=Zia+rF~+iqslydE34cSLJ&BJW^3knX@M;t*b=EA zNvGzv41Ld_T+WT#XjDB840vovUU^FtN_)G}7v)1lPetgpEK9YS^OWFkPoE{ovj^=@ zO9N$S=G$1ecndT_=5ehth2Lmd1II-PuT~C9`XVePw$y8J#dpZ?Tss<6wtVglm(Ok7 z3?^oi@pPio6l&!z8JY(pJvG=*pI?GIOu}e^EB6QYk$#FJQ%^AIK$I4epJ+9t?KjqA+bkj&PQ*|vLttme+`9G=L% ziadyMw_7-M)hS(3E$QGNCu|o23|%O+VN7;Qggp?PB3K-iSeBa2b}V4_wY`G1Jsfz4 z9|SdB^;|I8E8gWqHKx!vj_@SMY^hLEIbSMCuE?WKq=c2mJK z8LoG-pnY!uhqFv&L?yEuxo{dpMTsmCn)95xanqBrNPTgXP((H$9N${Ow~Is-FBg%h z53;|Y5$MUN)9W2HBe2TD`ct^LHI<(xWrw}$qSoei?}s)&w$;&!14w6B6>Yr6Y8b)S z0r71`WmAvJJ`1h&poLftLUS6Ir zC$bG9!Im_4Zjse)#K=oJM9mHW1{%l8sz$1o?ltdKlLTxWWPB>Vk22czVt|1%^wnN@*!l)}?EgtvhC>vlHm^t+ogpgHI1_$1ox9e;>0!+b(tBrmXRB`PY1vp-R**8N7 zGP|QqI$m(Rdu#=(?!(N}G9QhQ%o!aXE=aN{&wtGP8|_qh+7a_j_sU5|J^)vxq;# zjvzLn%_QPHZZIWu1&mRAj;Sa_97p_lLq_{~j!M9N^1yp3U_SxRqK&JnR%6VI#^E12 z>CdOVI^_9aPK2eZ4h&^{pQs}xsijXgFYRIxJ~N7&BB9jUR1fm!(xl)mvy|3e6-B3j zJn#ajL;bFTYJ2+Q)tDjx=3IklO@Q+FFM}6UJr6km7hj7th9n_&JR7fnqC!hTZoM~T zBeaVFp%)0cbPhejX<8pf5HyRUj2>aXnXBqDJe73~J%P(2C?-RT{c3NjE`)om! zl$uewSgWkE66$Kb34+QZZvRn`fob~Cl9=cRk@Es}KQm=?E~CE%spXaMO6YmrMl%9Q zlA3Q$3|L1QJ4?->UjT&CBd!~ru{Ih^in&JXO=|<6J!&qp zRe*OZ*cj5bHYlz!!~iEKcuE|;U4vN1rk$xq6>bUWD*u(V@8sG^7>kVuo(QL@Ki;yL zWC!FT(q{E8#on>%1iAS0HMZDJg{Z{^!De(vSIq&;1$+b)oRMwA3nc3mdTSG#3uYO_ z>+x;7p4I;uHz?ZB>dA-BKl+t-3IB!jBRgdvAbW!aJ(Q{aT>+iz?91`C-xbe)IBoND z9_Xth{6?(y3rddwY$GD65IT#f3<(0o#`di{sh2gm{dw*#-Vnc3r=4==&PU^hCv$qd zjw;>i&?L*Wq#TxG$mFIUf>eK+170KG;~+o&1;Tom9}}mKo23KwdEM6UonXgc z!6N(@k8q@HPw{O8O!lAyi{rZv|DpgfU{py+j(X_cwpKqcalcqKIr0kM^%Br3SdeD> zHSKV94Yxw;pjzDHo!Q?8^0bb%L|wC;4U^9I#pd5O&eexX+Im{ z?jKnCcsE|H?{uGMqVie_C~w7GX)kYGWAg%-?8|N_1#W-|4F)3YTDC+QSq1s!DnOML3@d`mG%o2YbYd#jww|jD$gotpa)kntakp#K;+yo-_ZF9qrNZw<%#C zuPE@#3RocLgPyiBZ+R_-FJ_$xP!RzWm|aN)S+{$LY9vvN+IW~Kf3TsEIvP+B9Mtm! zpfNNxObWQpLoaO&cJh5>%slZnHl_Q~(-Tfh!DMz(dTWld@LG1VRF`9`DYKhyNv z2pU|UZ$#_yUx_B_|MxUq^glT}O5Xt(Vm4Mr02><%C)@v;vPb@pT$*yzJ4aPc_FZ3z z3}PLoMBIM>q_9U2rl^sGhk1VUJ89=*?7|v`{!Z{6bqFMq(mYiA?%KbsI~JwuqVA9$H5vDE+VocjX+G^%bieqx->s;XWlKcuv(s%y%D5Xbc9+ zc(_2nYS1&^yL*ey664&4`IoOeDIig}y-E~_GS?m;D!xv5-xwz+G`5l6V+}CpeJDi^ z%4ed$qowm88=iYG+(`ld5Uh&>Dgs4uPHSJ^TngXP_V6fPyl~>2bhi20QB%lSd#yYn zO05?KT1z@?^-bqO8Cg`;ft>ilejsw@2%RR7;`$Vs;FmO(Yr3Fp`pHGr@P2hC%QcA|X&N2Dn zYf`MqXdHi%cGR@%y7Rg7?d3?an){s$zA{!H;Ie5exE#c~@NhQUFG8V=SQh%UxUeiV zd7#UcYqD=lk-}sEwlpu&H^T_V0{#G?lZMxL7ih_&{(g)MWBnCZxtXg znr#}>U^6!jA%e}@Gj49LWG@*&t0V>Cxc3?oO7LSG%~)Y5}f7vqUUnQ;STjdDU}P9IF9d9<$;=QaXc zL1^X7>fa^jHBu_}9}J~#-oz3Oq^JmGR#?GO7b9a(=R@fw@}Q{{@`Wy1vIQ#Bw?>@X z-_RGG@wt|%u`XUc%W{J z>iSeiz8C3H7@St3mOr_mU+&bL#Uif;+Xw-aZdNYUpdf>Rvu0i0t6k*}vwU`XNO2he z%miH|1tQ8~ZK!zmL&wa3E;l?!!XzgV#%PMVU!0xrDsNNZUWKlbiOjzH-1Uoxm8E#r`#2Sz;-o&qcqB zC-O_R{QGuynW14@)7&@yw1U}uP(1cov)twxeLus0s|7ayrtT8c#`&2~Fiu2=R;1_4bCaD=*E@cYI>7YSnt)nQc zohw5CsK%m?8Ack)qNx`W0_v$5S}nO|(V|RZKBD+btO?JXe|~^Qqur%@eO~<8-L^9d z=GA3-V14ng9L29~XJ>a5k~xT2152zLhM*@zlp2P5Eu}bywkcqR;ISbas&#T#;HZSf z2m69qTV(V@EkY(1Dk3`}j)JMo%ZVJ*5eB zYOjIisi+igK0#yW*gBGj?@I{~mUOvRFQR^pJbEbzFxTubnrw(Muk%}jI+vXmJ;{Q6 zrSobKD>T%}jV4Ub?L1+MGOD~0Ir%-`iTnWZN^~YPrcP5y3VMAzQ+&en^VzKEb$K!Q z<7Dbg&DNXuow*eD5yMr+#08nF!;%4vGrJI++5HdCFcGLfMW!KS*Oi@=7hFwDG!h2< zPunUEAF+HncQkbfFj&pbzp|MU*~60Z(|Ik%Tn{BXMN!hZOosNIseT?R;A`W?=d?5X zK(FB=9mZusYahp|K-wyb={rOpdn=@;4YI2W0EcbMKyo~-#^?h`BA9~o285%oY zfifCh5Lk$SY@|2A@a!T2V+{^!psQkx4?x0HSV`(w9{l75QxMk!)U52Lbhn{8ol?S) zCKo*7R(z!uk<6*qO=wh!Pul{(qq6g6xW;X68GI_CXp`XwO zxuSgPRAtM8K7}5E#-GM!*ydOOG_{A{)hkCII<|2=ma*71ci_-}VPARm3crFQjLYV! z9zbz82$|l01mv`$WahE2$=fAGWkd^X2kY(J7iz}WGS z@%MyBEO=A?HB9=^?nX`@nh;7;laAjs+fbo!|K^mE!tOB>$2a_O0y-*uaIn8k^6Y zSbuv;5~##*4Y~+y7Z5O*3w4qgI5V^17u*ZeupVGH^nM&$qmAk|anf*>r zWc5CV;-JY-Z@Uq1Irpb^O`L_7AGiqd*YpGUShb==os$uN3yYvb`wm6d=?T*it&pDk zo`vhw)RZX|91^^Wa_ti2zBFyWy4cJu#g)_S6~jT}CC{DJ_kKpT`$oAL%b^!2M;JgT zM3ZNbUB?}kP(*YYvXDIH8^7LUxz5oE%kMhF!rnPqv!GiY0o}NR$OD=ITDo9r%4E>E0Y^R(rS^~XjWyVI6 zMOR5rPXhTp*G*M&X#NTL`Hu*R+u*QNoiOKg4CtNPrjgH>c?Hi4MUG#I917fx**+pJfOo!zFM&*da&G_x)L(`k&TPI*t3e^{crd zX<4I$5nBQ8Ax_lmNRa~E*zS-R0sxkz`|>7q_?*e%7bxqNm3_eRG#1ae3gtV9!fQpY z+!^a38o4ZGy9!J5sylDxZTx$JmG!wg7;>&5H1)>f4dXj;B+@6tMlL=)cLl={jLMxY zbbf1ax3S4>bwB9-$;SN2?+GULu;UA-35;VY*^9Blx)Jwyb$=U!D>HhB&=jSsd^6yw zL)?a|>GxU!W}ocTC(?-%z3!IUhw^uzc`Vz_g>-tv)(XA#JK^)ZnC|l1`@CdX1@|!| z_9gQ)7uOf?cR@KDp97*>6X|;t@Y`k_N@)aH7gY27)COv^P3ya9I{4z~vUjLR9~z1Z z5=G{mVtKH*&$*t0@}-i_v|3B$AHHYale7>E+jP`ClqG%L{u;*ff_h@)al?RuL7tOO z->;I}>%WI{;vbLP3VIQ^iA$4wl6@0sDj|~112Y4OFjMs`13!$JGkp%b&E8QzJw_L5 zOnw9joc0^;O%OpF$Qp)W1HI!$4BaXX84`%@#^dk^hFp^pQ@rx4g(8Xjy#!X%+X5Jd@fs3amGT`}mhq#L97R>OwT5-m|h#yT_-v@(k$q7P*9X~T*3)LTdzP!*B} z+SldbVWrrwQo9wX*%FyK+sRXTa@O?WM^FGWOE?S`R(0P{<6p#f?0NJvnBia?k^fX2 zNQs7K-?EijgHJY}&zsr;qJ<*PCZUd*x|dD=IQPUK_nn)@X4KWtqoJNHkT?ZWL_hF? zS8lp2(q>;RXR|F;1O}EE#}gCrY~#n^O`_I&?&z5~7N;zL0)3Tup`%)oHMK-^r$NT% zbFg|o?b9w(q@)6w5V%si<$!U<#}s#x@0aX-hP>zwS#9*75VXA4K*%gUc>+yzupTDBOKH8WR4V0pM(HrfbQ&eJ79>HdCvE=F z|J>s;;iDLB^3(9}?biKbxf1$lI!*Z%*0&8UUq}wMyPs_hclyQQi4;NUY+x2qy|0J; zhn8;5)4ED1oHwg+VZF|80<4MrL97tGGXc5Sw$wAI#|2*cvQ=jB5+{AjMiDHmhUC*a zlmiZ`LAuAn_}hftXh;`Kq0zblDk8?O-`tnilIh|;3lZp@F_osJUV9`*R29M?7H{Fy z`nfVEIDIWXmU&YW;NjU8)EJpXhxe5t+scf|VXM!^bBlwNh)~7|3?fWwo_~ZFk(22% zTMesYw+LNx3J-_|DM~`v93yXe=jPD{q;li;5PD?Dyk+b? zo21|XpT@)$BM$%F=P9J19Vi&1#{jM3!^Y&fr&_`toi`XB1!n>sbL%U9I5<7!@?t)~ z;&H%z>bAaQ4f$wIzkjH70;<8tpUoxzKrPhn#IQfS%9l5=Iu))^XC<58D!-O z{B+o5R^Z21H0T9JQ5gNJnqh#qH^na|z92=hONIM~@_iuOi|F>jBh-?aA20}Qx~EpDGElELNn~|7WRXRFnw+Wdo`|# zBpU=Cz3z%cUJ0mx_1($X<40XEIYz(`noWeO+x#yb_pwj6)R(__%@_Cf>txOQ74wSJ z0#F3(zWWaR-jMEY$7C*3HJrohc79>MCUu26mfYN)f4M~4gD`}EX4e}A!U}QV8!S47 z6y-U-%+h`1n`*pQuKE%Av0@)+wBZr9mH}@vH@i{v(m-6QK7Ncf17x_D=)32`FOjjo zg|^VPf5c6-!FxN{25dvVh#fog=NNpXz zfB$o+0jbRkHH{!TKhE709f+jI^$3#v1Nmf80w`@7-5$1Iv_`)W^px8P-({xwb;D0y z7LKDAHgX<84?l!I*Dvi2#D@oAE^J|g$3!)x1Ua;_;<@#l1fD}lqU2_tS^6Ht$1Wl} zBESo7o^)9-Tjuz$8YQSGhfs{BQV6zW7dA?0b(Dbt=UnQs&4zHfe_sj{RJ4uS-vQpC zX;Bbsuju4%!o8?&m4UZU@~ZZjeFF6ex2ss5_60_JS_|iNc+R0GIjH1@Z z=rLT9%B|WWgOrR7IiIwr2=T;Ne?30M!@{%Qf8o`!>=s<2CBpCK_TWc(DX51>e^xh8 z&@$^b6CgOd7KXQV&Y4%}_#uN*mbanXq(2=Nj`L7H7*k(6F8s6{FOw@(DzU`4-*77{ zF+dxpv}%mFpYK?>N_2*#Y?oB*qEKB}VoQ@bzm>ptmVS_EC(#}Lxxx730trt0G)#$b zE=wVvtqOct1%*9}U{q<)2?{+0TzZzP0jgf9*)arV)*e!f`|jgT{7_9iS@e)recI#z zbzolURQ+TOzE!ymqvBY7+5NnAbWxvMLsLTwEbFqW=CPyCsmJ}P1^V30|D5E|p3BC5 z)3|qgw@ra7aXb-wsa|l^in~1_fm{7bS9jhVRkYVO#U{qMp z)Wce+|DJ}4<2gp8r0_xfZpMo#{Hl2MfjLcZdRB9(B(A(f;+4s*FxV{1F|4d`*sRNd zp4#@sEY|?^FIJ;tmH{@keZ$P(sLh5IdOk@k^0uB^BWr@pk6mHy$qf&~rI>P*a;h0C{%oA*i!VjWn&D~O#MxN&f@1Po# zKN+ zrGrkSjcr?^R#nGl<#Q722^wbYcgW@{+6CBS<1@%dPA8HC!~a`jTz<`g_l5N1M@9wn9GOAZ>nqNgq!yOCbZ@1z`U_N`Z>}+1HIZxk*5RDc&rd5{3qjRh8QmT$VyS;jK z;AF+r6XnnCp=wQYoG|rT2@8&IvKq*IB_WvS%nt%e{MCFm`&W*#LXc|HrD?nVBo=(8*=Aq?u$sDA_sC_RPDUiQ+wnIJET8vx$&fxkW~kP9qXKt zozR)@xGC!P)CTkjeWvXW5&@2?)qt)jiYWWBU?AUtzAN}{JE1I)dfz~7$;}~BmQF`k zpn11qmObXwRB8&rnEG*#4Xax3XBkKlw(;tb?Np^i+H8m(Wyz9k{~ogba@laiEk;2! zV*QV^6g6(QG%vX5Um#^sT&_e`B1pBW5yVth~xUs#0}nv?~C#l?W+9Lsb_5)!71rirGvY zTIJ$OPOY516Y|_014sNv+Z8cc5t_V=i>lWV=vNu#!58y9Zl&GsMEW#pPYPYGHQ|;vFvd*9eM==$_=vc7xnyz0~ zY}r??$<`wAO?JQk@?RGvkWVJlq2dk9vB(yV^vm{=NVI8dhsX<)O(#nr9YD?I?(VmQ z^r7VfUBn<~p3()8yOBjm$#KWx!5hRW)5Jl7wY@ky9lNM^jaT##8QGVsYeaVywmpv>X|Xj7gWE1Ezai&wVLt3p)k4w~yrskT-!PR!kiyQlaxl(( zXhF%Q9x}1TMt3~u@|#wWm-Vq?ZerK={8@~&@9r5JW}r#45#rWii};t`{5#&3$W)|@ zbAf2yDNe0q}NEUvq_Quq3cTjcw z@H_;$hu&xllCI9CFDLuScEMg|x{S7GdV8<&Mq=ezDnRZAyX-8gv97YTm0bg=d)(>N z+B2FcqvI9>jGtnK%eO%y zoBPkJTk%y`8TLf4)IXPBn`U|9>O~WL2C~C$z~9|0m*YH<-vg2CD^SX#&)B4ngOSG$ zV^wmy_iQk>dfN@Pv(ckfy&#ak@MLC7&Q6Ro#!ezM*VEh`+b3Jt%m(^T&p&WJ2Oqvj zs-4nq0TW6cv~(YI$n0UkfwN}kg3_fp?(ijSV#tR9L0}l2qjc7W?i*q01=St0eZ=4h zyGQbEw`9OEH>NMuIe)hVwYHsGERWOD;JxEiO7cQv%pFCeR+IyhwQ|y@&^24k+|8fD zLiOWFNJ2&vu2&`Jv96_z-Cd5RLgmeY3*4rDOQo?Jm`;I_(+ejsPM03!ly!*Cu}Cco zrQSrEDHNyzT(D5s1rZq!8#?f6@v6dB7a-aWs(Qk>N?UGAo{gytlh$%_IhyL7h?DLXDGx zgxGEBQoCAWo-$LRvM=F5MTle`M})t3vVv;2j0HZY&G z22^iGhV@uaJh(XyyY%} zd4iH_UfdV#T=3n}(Lj^|n;O4|$;xhu*8T3hR1mc_A}fK}jfZ7LX~*n5+`8N2q#rI$ z@<_2VANlYF$vIH$ zl<)+*tIWW78IIINA7Rr7i{<;#^yzxoLNkXL)eSs=%|P>$YQIh+ea_3k z_s7r4%j7%&*NHSl?R4k%1>Z=M9o#zxY!n8sL5>BO-ZP;T3Gut>iLS@U%IBrX6BA3k z)&@q}V8a{X<5B}K5s(c(LQ=%v1ocr`t$EqqY0EqVjr65usa=0bkf|O#ky{j3)WBR(((L^wmyHRzoWuL2~WTC=`yZ zn%VX`L=|Ok0v7?s>IHg?yArBcync5rG#^+u)>a%qjES%dRZoIyA8gQ;StH z1Ao7{<&}6U=5}4v<)1T7t!J_CL%U}CKNs-0xWoTTeqj{5{?Be$L0_tk>M9o8 zo371}S#30rKZFM{`H_(L`EM9DGp+Mifk&IP|C2Zu_)Ghr4Qtpmkm1osCf@%Z$%t+7 zYH$Cr)Ro@3-QDeQJ8m+x6%;?YYT;k6Z0E-?kr>x33`H%*ueBD7Zx~3&HtWn0?2Wt} zTG}*|v?{$ajzt}xPzV%lL1t-URi8*Zn)YljXNGDb>;!905Td|mpa@mHjIH%VIiGx- zd@MqhpYFu4_?y5N4xiHn3vX&|e6r~Xt> zZG`aGq|yTNjv;9E+Txuoa@A(9V7g?1_T5FzRI;!=NP1Kqou1z5?%X~Wwb{trRfd>i z8&y^H)8YnKyA_Fyx>}RNmQIczT?w2J4SNvI{5J&}Wto|8FR(W;Qw#b1G<1%#tmYzQ zQ2mZA-PAdi%RQOhkHy9Ea#TPSw?WxwL@H@cbkZwIq0B!@ns}niALidmn&W?!Vd4Gj zO7FiuV4*6Mr^2xlFSvM;Cp_#r8UaqIzHJQg_z^rEJw&OMm_8NGAY2)rKvki|o1bH~ z$2IbfVeY2L(^*rMRU1lM5Y_sgrDS`Z??nR2lX;zyR=c%UyGb*%TC-Dil?SihkjrQy~TMv6;BMs7P8il`H7DmpVm@rJ;b)hW)BL)GjS154b*xq-NXq2cwE z^;VP7ua2pxvCmxrnqUYQMH%a%nHmwmI33nJM(>4LznvY*k&C0{8f*%?zggpDgkuz&JBx{9mfb@wegEl2v!=}Sq2Gaty0<)UrOT0{MZtZ~j5y&w zXlYa_jY)I_+VA-^#mEox#+G>UgvM!Ac8zI<%JRXM_73Q!#i3O|)lOP*qBeJG#BST0 zqohi)O!|$|2SeJQo(w6w7%*92S})XfnhrH_Z8qe!G5>CglP=nI7JAOW?(Z29;pXJ9 zR9`KzQ=WEhy*)WH>$;7Cdz|>*i>=##0bB)oU0OR>>N<21e4rMCHDemNi2LD>Nc$;& zQRFthpWniC1J6@Zh~iJCoLOxN`oCKD5Q4r%ynwgUKPlIEd#?QViIqovY|czyK8>6B zSP%{2-<;%;1`#0mG^B(8KbtXF;Nf>K#Di72UWE4gQ%(_26Koiad)q$xRL~?pN71ZZ zujaaCx~jXjygw;rI!WB=xrOJO6HJ!!w}7eiivtCg5K|F6$EXa)=xUC za^JXSX98W`7g-tm@uo|BKj39Dl;sg5ta;4qjo^pCh~{-HdLl6qI9Ix6f$+qiZ$}s= zNguKrU;u+T@ko(Vr1>)Q%h$?UKXCY>3se%&;h2osl2D zE4A9bd7_|^njDd)6cI*FupHpE3){4NQ*$k*cOWZ_?CZ>Z4_fl@n(mMnYK62Q1d@+I zr&O))G4hMihgBqRIAJkLdk(p(D~X{-oBUA+If@B}j& zsHbeJ3RzTq96lB7d($h$xTeZ^gP0c{t!Y0c)aQE;$FY2!mACg!GDEMKXFOPI^)nHZ z`aSPJpvV0|bbrzhWWkuPURlDeN%VT8tndV8?d)eN*i4I@u zVKl^6{?}A?P)Fsy?3oi#clf}L18t;TjNI2>eI&(ezDK7RyqFxcv%>?oxUlonv(px) z$vnPzRH`y5A(x!yOIfL0bmgeMQB$H5wenx~!ujQK*nUBW;@Em&6Xv2%s(~H5WcU2R z;%Nw<$tI)a`Ve!>x+qegJnQsN2N7HaKzrFqM>`6R*gvh%O*-%THt zrB$Nk;lE;z{s{r^PPm5qz(&lM{sO*g+W{sK+m3M_z=4=&CC>T`{X}1Vg2PEfSj2x_ zmT*(x;ov%3F?qoEeeM>dUn$a*?SIGyO8m806J1W1o+4HRhc2`9$s6hM#qAm zChQ87b~GEw{ADfs+5}FJ8+|bIlIv(jT$Ap#hSHoXdd9#w<#cA<1Rkq^*EEkknUd4& zoIWIY)sAswy6fSERVm&!SO~#iN$OgOX*{9@_BWFyJTvC%S++ilSfCrO(?u=Dc?CXZ zzCG&0yVR{Z`|ZF0eEApWEo#s9osV>F{uK{QA@BES#&;#KsScf>y zvs?vIbI>VrT<*!;XmQS=bhq%46-aambZ(8KU-wOO2=en~D}MCToB_u;Yz{)1ySrPZ z@=$}EvjTdzTWU7c0ZI6L8=yP+YRD_eMMos}b5vY^S*~VZysrkq<`cK3>>v%uy7jgq z0ilW9KjVDHLv0b<1K_`1IkbTOINs0=m-22c%M~l=^S}%hbli-3?BnNq?b`hx^HX2J zIe6ECljRL0uBWb`%{EA=%!i^4sMcj+U_TaTZRb+~GOk z^ZW!nky0n*Wb*r+Q|9H@ml@Z5gU&W`(z4-j!OzC1wOke`TRAYGZVl$PmQ16{3196( zO*?`--I}Qf(2HIwb2&1FB^!faPA2=sLg(@6P4mN)>Dc3i(B0;@O-y2;lM4akD>@^v z=u>*|!s&9zem70g7zfw9FXl1bpJW(C#5w#uy5!V?Q(U35A~$dR%LDVnq@}kQm13{} zd53q3N(s$Eu{R}k2esbftfjfOITCL;jWa$}(mmm}d(&7JZ6d3%IABCapFFYjdEjdK z&4Edqf$G^MNAtL=uCDRs&Fu@FXRgX{*0<(@c3|PNHa>L%zvxWS={L8%qw`STm+=Rd zA}FLspESSIpE_^41~#5yI2bJ=9`oc;GIL!JuW&7YetZ?0H}$$%8rW@*J37L-~Rsx!)8($nI4 zZhcZ2^=Y+p4YPl%j!nFJA|*M^gc(0o$i3nlphe+~-_m}jVkRN{spFs(o0ajW@f3K{ zDV!#BwL322CET$}Y}^0ixYj2w>&Xh12|R8&yEw|wLDvF!lZ#dOTHM9pK6@Nm-@9Lnng4ZHBgBSrr7KI8YCC9DX5Kg|`HsiwJHg2(7#nS;A{b3tVO?Z% za{m5b3rFV6EpX;=;n#wltDv1LE*|g5pQ+OY&*6qCJZc5oDS6Z6JD#6F)bWxZSF@q% z+1WV;m!lRB!n^PC>RgQCI#D1br_o^#iPk>;K2hB~0^<~)?p}LG%kigm@moD#q3PE+ zA^Qca)(xnqw6x>XFhV6ku9r$E>bWNrVH9fum0?4s?Rn2LG{Vm_+QJHse6xa%nzQ?k zKug4PW~#Gtb;#5+9!QBgyB@q=sk9=$S{4T>wjFICStOM?__fr+Kei1 z3j~xPqW;W@YkiUM;HngG!;>@AITg}vAE`M2Pj9Irl4w1fo4w<|Bu!%rh%a(Ai^Zhi zs92>v5;@Y(Zi#RI*ua*h`d_7;byQSa*v9E{2x$<-_=5Z<7{%)}4XExANcz@rK69T0x3%H<@frW>RA8^swA+^a(FxK| zFl3LD*ImHN=XDUkrRhp6RY5$rQ{bRgSO*(vEHYV)3Mo6Jy3puiLmU&g82p{qr0F?ohmbz)f2r{X2|T2 z$4fdQ=>0BeKbiVM!e-lIIs8wVTuC_m7}y4A_%ikI;Wm5$9j(^Y z(cD%U%k)X>_>9~t8;pGzL6L-fmQO@K; zo&vQzMlgY95;1BSkngY)e{`n0!NfVgf}2mB3t}D9@*N;FQ{HZ3Pb%BK6;5#-O|WI( zb6h@qTLU~AbVW#_6?c!?Dj65Now7*pU{h!1+eCV^KCuPAGs28~3k@ueL5+u|Z-7}t z9|lskE`4B7W8wMs@xJa{#bsCGDFoRSNSnmNYB&U7 zVGKWe%+kFB6kb)e;TyHfqtU6~fRg)f|>=5(N36)0+C z`hv65J<$B}WUc!wFAb^QtY31yNleq4dzmG`1wHTj=c*=hay9iD071Hc?oYoUk|M*_ zU1GihAMBsM@5rUJ(qS?9ZYJ6@{bNqJ`2Mr+5#hKf?doa?F|+^IR!8lq9)wS3tF_9n zW_?hm)G(M+MYb?V9YoX^_mu5h-LP^TL^!Q9Z7|@sO(rg_4+@=PdI)WL(B7`!K^ND- z-uIuVDCVEdH_C@c71YGYT^_Scf_dhB8Z2Xy6vGtBSlYud9vggOqv^L~F{BraSE_t} zIkP+Hp2&nH^-MNEs}^`oMLy11`PQW$T|K(`Bu*(f@)mv1-qY(_YG&J2M2<7k;;RK~ zL{Fqj9yCz8(S{}@c)S!65aF<=&eLI{hAMErCx&>i7OeDN>okvegO87OaG{Jmi<|}D zaT@b|0X{d@OIJ7zvT>r+eTzgLq~|Dpu)Z&db-P4z*`M$UL51lf>FLlq6rfG)%doyp z)3kk_YIM!03eQ8Vu_2fg{+osaEJPtJ-s36R+5_AEG12`NG)IQ#TF9c@$99%0iye+ zUzZ57=m2)$D(5Nx!n)=5Au&O0BBgwxIBaeI(mro$#&UGCr<;C{UjJVAbVi%|+WP(a zL$U@TYCxJ=1{Z~}rnW;7UVb7+ZnzgmrogDxhjLGo>c~MiJAWs&&;AGg@%U?Y^0JhL ze(x6Z74JG6FlOFK(T}SXQfhr}RIFl@QXKnIcXYF)5|V~e-}suHILKT-k|<*~Ij|VF zC;t@=uj=hot~*!C68G8hTA%8SzOfETOXQ|3FSaIEjvBJp(A)7SWUi5!Eu#yWgY+;n zlm<$+UDou*V+246_o#V4kMdto8hF%%Lki#zPh}KYXmMf?hrN0;>Mv%`@{0Qn`Ujp) z=lZe+13>^Q!9zT);H<(#bIeRWz%#*}sgUX9P|9($kexOyKIOc`dLux}c$7It4u|Rl z6SSkY*V~g_B-hMPo_ak>>z@AVQ(_N)VY2kB3IZ0G(iDUYw+2d7W^~(Jq}KY=JnWS( z#rzEa&0uNhJ>QE8iiyz;n2H|SV#Og+wEZv=f2%1ELX!SX-(d3tEj$5$1}70Mp<&eI zCkfbByL7af=qQE@5vDVxx1}FSGt_a1DoE3SDI+G)mBAna)KBG4p8Epxl9QZ4BfdAN zFnF|Y(umr;gRgG6NLQ$?ZWgllEeeq~z^ZS7L?<(~O&$5|y)Al^iMKy}&W+eMm1W z7EMU)u^ke(A1#XCV>CZ71}P}0x)4wtHO8#JRG3MA-6g=`ZM!FcICCZ{IEw8Dm2&LQ z1|r)BUG^0GzI6f946RrBlfB1Vs)~8toZf~7)+G;pv&XiUO(%5bm)pl=p>nV^o*;&T z;}@oZSibzto$arQgfkp|z4Z($P>dTXE{4O=vY0!)kDO* zGF8a4wq#VaFpLfK!iELy@?-SeRrdz%F*}hjKcA*y@mj~VD3!it9lhRhX}5YOaR9$} z3mS%$2Be7{l(+MVx3 z(4?h;P!jnRmX9J9sYN#7i=iyj_5q7n#X(!cdqI2lnr8T$IfOW<_v`eB!d9xY1P=2q&WtOXY=D9QYteP)De?S4}FK6#6Ma z=E*V+#s8>L;8aVroK^6iKo=MH{4yEZ_>N-N z`(|;aOATba1^asjxlILk<4}f~`39dBFlxj>Dw(hMYKPO3EEt1@S`1lxFNM+J@uB7T zZ8WKjz7HF1-5&2=l=fqF-*@>n5J}jIxdDwpT?oKM3s8Nr`x8JnN-kCE?~aM1H!hAE z%%w(3kHfGwMnMmNj(SU(w42OrC-euI>Dsjk&jz3ts}WHqmMpzQ3vZrsXrZ|}+MHA7 z068obeXZTsO*6RS@o3x80E4ok``rV^Y3hr&C1;|ZZ0|*EKO`$lECUYG2gVFtUTw)R z4Um<0ZzlON`zTdvVdL#KFoMFQX*a5wM0Czp%wTtfK4Sjs)P**RW&?lP$(<}q%r68Z zS53Y!d@&~ne9O)A^tNrXHhXBkj~$8j%pT1%%mypa9AW5E&s9)rjF4@O3ytH{0z6riz|@< zB~UPh*wRFg2^7EbQrHf0y?E~dHlkOxof_a?M{LqQ^C!i2dawHTPYUE=X@2(3<=OOxs8qn_(y>pU>u^}3y&df{JarR0@VJn0f+U%UiF=$Wyq zQvnVHESil@d|8&R<%}uidGh7@u^(%?$#|&J$pvFC-n8&A>utA=n3#)yMkz+qnG3wd zP7xCnF|$9Dif@N~L)Vde3hW8W!UY0BgT2v(wzp;tlLmyk2%N|0jfG$%<;A&IVrOI< z!L)o>j>;dFaqA3pL}b-Je(bB@VJ4%!JeX@3x!i{yIeIso^=n?fDX`3bU=eG7sTc%g%ye8$v8P@yKE^XD=NYxTb zbf!Mk=h|otpqjFaA-vs5YOF-*GwWPc7VbaOW&stlANnCN8iftFMMrUdYNJ_Bnn5Vt zxfz@Ah|+4&P;reZxp;MmEI7C|FOv8NKUm8njF7Wb6Gi7DeODLl&G~}G4be&*Hi0Qw z5}77vL0P+7-B%UL@3n1&JPxW^d@vVwp?u#gVcJqY9#@-3X{ok#UfW3<1fb%FT`|)V~ggq z(3AUoUS-;7)^hCjdT0Kf{i}h)mBg4qhtHHBti=~h^n^OTH5U*XMgDLIR@sre`AaB$ zg)IGBET_4??m@cx&c~bA80O7B8CHR7(LX7%HThkeC*@vi{-pL%e)yXp!B2InafbDF zjPXf1mko3h59{lT6EEbxKO1Z5GF71)WwowO6kY|6tjSVSWdQ}NsK2x{>i|MKZK8%Q zfu&_0D;CO-Jg0#YmyfctyJ!mRJp)e#@O0mYdp|8x;G1%OZQ3Q847YWTyy|%^cpA;m zze0(5p{tMu^lDkpe?HynyO?a1$_LJl2L&mpeKu%8YvgRNr=%2z${%WThHG=vrWY@4 zsA`OP#O&)TetZ>s%h!=+CE15lOOls&nvC~$Qz0Ph7tHiP;O$i|eDwpT{cp>+)0-|; zY$|bB+Gbel>5aRN3>c0x)4U=|X+z+{ zn*_p*EQoquRL+=+p;=lm`d71&1NqBz&_ph)MXu(Nv6&XE7(RsS)^MGj5Q?Fwude-(sq zjJ>aOq!7!EN>@(fK7EE#;i_BGvli`5U;r!YA{JRodLBc6-`n8K+Fjgwb%sX;j=qHQ z7&Tr!)!{HXoO<2BQrV9Sw?JRaLXV8HrsNevvnf>Y-6|{T!pYLl7jp$-nEE z#X!4G4L#K0qG_4Z;Cj6=;b|Be$hi4JvMH!-voxqx^@8cXp`B??eFBz2lLD8RRaRGh zn7kUfy!YV~p(R|p7iC1Rdgt$_24i0cd-S8HpG|`@my70g^y`gu%#Tf_L21-k?sRRZHK&at(*ED0P8iw{7?R$9~OF$Ko;Iu5)ur5<->x!m93Eb zFYpIx60s=Wxxw=`$aS-O&dCO_9?b1yKiPCQmSQb>T)963`*U+Ydj5kI(B(B?HNP8r z*bfSBpSu)w(Z3j7HQoRjUG(+d=IaE~tv}y14zHHs|0UcN52fT8V_<@2ep_ee{QgZG zmgp8iv4V{k;~8@I%M3<#B;2R>Ef(Gg_cQM7%}0s*^)SK6!Ym+~P^58*wnwV1BW@eG z4sZLqsUvBbFsr#8u7S1r4teQ;t)Y@jnn_m5jS$CsW1um!p&PqAcc8!zyiXHVta9QC zY~wCwCF0U%xiQPD_INKtTb;A|Zf29(mu9NI;E zc-e>*1%(LSXB`g}kd`#}O;veb<(sk~RWL|f3ljxCnEZDdNSTDV6#Td({6l&y4IjKF z^}lIUq*ZUqgTPumD)RrCN{M^jhY>E~1pn|KOZ5((%F)G|*ZQ|r4zIbrEiV%42hJV8 z3xS)=!X1+=olbdGJ=yZil?oXLct8FM{(6ikLL3E%=q#O6(H$p~gQu6T8N!plf!96| z&Q3=`L~>U0zZh;z(pGR2^S^{#PrPxTRHD1RQOON&f)Siaf`GLj#UOk&(|@0?zm;Sx ztsGt8=29-MZs5CSf1l1jNFtNt5rFNZxJPvkNu~2}7*9468TWm>nN9TP&^!;J{-h)_ z7WsHH9|F%I`Pb!>KAS3jQWKfGivTVkMJLO-HUGM_a4UQ_%RgL6WZvrW+Z4ujZn;y@ zz9$=oO!7qVTaQAA^BhX&ZxS*|5dj803M=k&2%QrXda`-Q#IoZL6E(g+tN!6CA!CP* zCpWtCujIea)ENl0liwVfj)Nc<9mV%+e@=d`haoZ*`B7+PNjEbXBkv=B+Pi^~L#EO$D$ZqTiD8f<5$eyb54-(=3 zh)6i8i|jp(@OnRrY5B8t|LFXFQVQ895n*P16cEKTrT*~yLH6Z4e*bZ5otpRDri&+A zfNbK1D5@O=sm`fN=WzWyse!za5n%^+6dHPGX#8DyIK>?9qyX}2XvBWVqbP%%D)7$= z=#$WulZlZR<{m#gU7lwqK4WS1Ne$#_P{b17qe$~UOXCl>5b|6WVh;5vVnR<%d+Lnp z$uEmML38}U4vaW8>shm6CzB(Wei3s#NAWE3)a2)z@i{4jTn;;aQS)O@l{rUM`J@K& l00vQ5JBs~;vo!vr%%-k{2_Fq1Mn4QF81S)AQ99zk{{c4yR+0b! literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle index 378bf80..9efb310 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,42 +1,7 @@ -/*pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - maven { - name = "papermc-repo" - url = "https://repo.papermc.io/repository/maven-public/" - } - maven { - name = "sonatype" - url = "https://oss.sonatype.org/content/groups/public/" - } - maven { - url = uri("https://repo.opencollab.dev/main/") - } - } -}*/ -/* -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) - repositories { - mavenCentral() - maven { - name = "papermc-repo" - url = "https://repo.papermc.io/repository/maven-public/" - } - maven { - name = "sonatype" - url = "https://oss.sonatype.org/content/groups/public/" - } - maven { - url = uri("https://repo.opencollab.dev/main/") - } - } -}*/ - rootProject.name = 'spawn' include 'core' -include 'common' include 'craftattack' +include 'common' +include 'varo' diff --git a/varo/build.gradle b/varo/build.gradle new file mode 100644 index 0000000..378d1b7 --- /dev/null +++ b/varo/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'java' + id("com.gradleup.shadow") version "8.3.5" +} + +dependencies { + implementation project(':core') + implementation project(':common') + + compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' +} + +configurations { + shadowImplementation.extendsFrom implementation +} + +shadowJar { + configurations = [project.configurations.shadowImplementation] + archiveClassifier.set('') + + relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' + relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' + + mergeServiceFiles() +} \ No newline at end of file From 2c0e264ece4d7300a9766019010ceb5b0542b1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 4 Apr 2025 22:51:01 +0200 Subject: [PATCH 03/72] updated command registration for usage without static plugin.yml file --- .../craftattack/core/appliance/Appliance.java | 19 +++++-- core/src/main/resources/plugin.yml | 53 +------------------ 2 files changed, 15 insertions(+), 57 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java index f99eb1d..2425741 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java @@ -9,9 +9,11 @@ import org.bukkit.command.PluginCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; +import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -104,16 +106,23 @@ public abstract class Appliance { } private void setCommandExecutor(JavaPlugin plugin, String name, ApplianceCommand executor) { - PluginCommand command = plugin.getCommand(name); - if(command != null && executor != null) { + try { + PluginCommand command = this.createPluginCommand(name, plugin); command.setExecutor(executor); command.setTabCompleter(executor); - } else { - Main.logger().warning("Command " + name + " is not specified in plugin.yml!"); - throw new RuntimeException("All commands must be registered in plugin.yml. Missing command: " + name); + plugin.getServer().getCommandMap().register(plugin.getName(), command); + throw new RuntimeException("Test"); + } catch(Exception e) { + throw new RuntimeException(String.format("Failed to register command '%s'", name), e); } } + private PluginCommand createPluginCommand(String name, JavaPlugin plugin) throws Exception { + Constructor constructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class); + constructor.setAccessible(true); + return constructor.newInstance(name, plugin); + } + public List getListeners() { return this.listeners; } diff --git a/core/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml index c2f12b1..1c493b6 100644 --- a/core/src/main/resources/plugin.yml +++ b/core/src/main/resources/plugin.yml @@ -2,55 +2,4 @@ name: spawn author: olischma, muelleel version: '1.0' main: eu.mhsl.craftattack.core.Main -api-version: '1.21' -commands: - moveWorldMuseumVillager: - description: Moves world museum villager to current player location and persists location to config - usage: /moveWmVillager - permission: admin - report: - description: Reporte einen Spieler - reports: - description: Von dir erstellte Reports - userinfo: - description: Get UUID from any user - projectStart: - description: Starts project countdown - projectStartCancel: - description: Cancels project countdown - projectStartReset: - description: Resets project countdown - moveEventVillager: - appliances: - event: - eventOpenSession: - eventEndSession: - eventAdvertise: - help: - spawn: - teamspeak: - aliases: [ "ts" ] - discord: - aliases: [ "dc" ] - setPlayerLimit: - scheduleRestart: - cancelRestart: - kick: - panicBan: - vogelfrei: - settings: - texturepack: - maintanance: - yearRank: - msg: - r: - playtime: - adminchat: - aliases: [ "sc" ] - acInform: - infobar: - endPrevent: - feedback: - requestFeedback: - setSpawnpoint: - mute: \ No newline at end of file +api-version: '1.21' \ No newline at end of file From 8742f5f6313ce21fc21738bf89bfd76d35452d56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 4 Apr 2025 22:51:01 +0200 Subject: [PATCH 04/72] updated command registration for usage without static plugin.yml file --- .../craftattack/core/appliance/Appliance.java | 18 +++++-- core/src/main/resources/plugin.yml | 53 +------------------ 2 files changed, 14 insertions(+), 57 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java index f99eb1d..cc6da11 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java @@ -9,9 +9,11 @@ import org.bukkit.command.PluginCommand; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; +import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -104,16 +106,22 @@ public abstract class Appliance { } private void setCommandExecutor(JavaPlugin plugin, String name, ApplianceCommand executor) { - PluginCommand command = plugin.getCommand(name); - if(command != null && executor != null) { + try { + PluginCommand command = this.createPluginCommand(name, plugin); command.setExecutor(executor); command.setTabCompleter(executor); - } else { - Main.logger().warning("Command " + name + " is not specified in plugin.yml!"); - throw new RuntimeException("All commands must be registered in plugin.yml. Missing command: " + name); + plugin.getServer().getCommandMap().register(plugin.getName(), command); + } catch(Exception e) { + throw new RuntimeException(String.format("Failed to register command '%s'", name), e); } } + private PluginCommand createPluginCommand(String name, JavaPlugin plugin) throws Exception { + Constructor constructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class); + constructor.setAccessible(true); + return constructor.newInstance(name, plugin); + } + public List getListeners() { return this.listeners; } diff --git a/core/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml index c2f12b1..1c493b6 100644 --- a/core/src/main/resources/plugin.yml +++ b/core/src/main/resources/plugin.yml @@ -2,55 +2,4 @@ name: spawn author: olischma, muelleel version: '1.0' main: eu.mhsl.craftattack.core.Main -api-version: '1.21' -commands: - moveWorldMuseumVillager: - description: Moves world museum villager to current player location and persists location to config - usage: /moveWmVillager - permission: admin - report: - description: Reporte einen Spieler - reports: - description: Von dir erstellte Reports - userinfo: - description: Get UUID from any user - projectStart: - description: Starts project countdown - projectStartCancel: - description: Cancels project countdown - projectStartReset: - description: Resets project countdown - moveEventVillager: - appliances: - event: - eventOpenSession: - eventEndSession: - eventAdvertise: - help: - spawn: - teamspeak: - aliases: [ "ts" ] - discord: - aliases: [ "dc" ] - setPlayerLimit: - scheduleRestart: - cancelRestart: - kick: - panicBan: - vogelfrei: - settings: - texturepack: - maintanance: - yearRank: - msg: - r: - playtime: - adminchat: - aliases: [ "sc" ] - acInform: - infobar: - endPrevent: - feedback: - requestFeedback: - setSpawnpoint: - mute: \ No newline at end of file +api-version: '1.21' \ No newline at end of file From 7c81286feb37f9d63bed0eaa589551eed40edc57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 4 Apr 2025 23:03:57 +0200 Subject: [PATCH 05/72] updated plugin.yml --- core/src/main/resources/plugin.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml index 1c493b6..ce018ff 100644 --- a/core/src/main/resources/plugin.yml +++ b/core/src/main/resources/plugin.yml @@ -1,5 +1,12 @@ name: spawn -author: olischma, muelleel -version: '1.0' +description: modular base-plugin for mhsl server projects +version: '0' +api-version: '1.21' main: eu.mhsl.craftattack.core.Main -api-version: '1.21' \ No newline at end of file +load: POSTWORLD +prefix: mhsl-spawn + +author: MineTec +contributors: [olischma, 28Pupsi28] + +website: https://mhsl.eu/gitea/CraftAttack/spawn \ No newline at end of file From e9a8e83019c633019a7822023e763cf0d1a5b3c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 5 Apr 2025 14:39:45 +0200 Subject: [PATCH 06/72] cleanup build.gradle files --- build.gradle | 20 ++++++++++++++++++++ common/build.gradle | 4 ---- core/build.gradle | 4 ---- craftattack/build.gradle | 19 ------------------- varo/build.gradle | 19 ------------------- 5 files changed, 20 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index 68ed940..6d7f27f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,8 @@ +plugins { + id 'java' + id 'com.gradleup.shadow' version "8.3.5" +} + allprojects { group = 'de.mhsl.craftattack' version = '1.0.0' @@ -20,10 +25,25 @@ allprojects { subprojects { apply plugin: 'java' + apply plugin: 'com.gradleup.shadow' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } +} + +configurations { + shadowImplementation.extendsFrom implementation +} + +shadowJar { + configurations = [project.configurations.shadowImplementation] + archiveClassifier.set('') + + relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' + relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' + + mergeServiceFiles() } \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle index 785d855..c38438d 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'java' -} - dependencies { implementation project(':core') diff --git a/core/build.gradle b/core/build.gradle index 49dc380..418c148 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,7 +1,3 @@ -plugins { - id 'java' -} - dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' diff --git a/craftattack/build.gradle b/craftattack/build.gradle index 0f7c7ce..43f1560 100644 --- a/craftattack/build.gradle +++ b/craftattack/build.gradle @@ -1,8 +1,3 @@ -plugins { - id 'java' - id("com.gradleup.shadow") version "8.3.5" -} - dependencies { implementation project(':core') implementation project(':common') @@ -11,18 +6,4 @@ dependencies { compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' -} - -configurations { - shadowImplementation.extendsFrom implementation -} - -shadowJar { - configurations = [project.configurations.shadowImplementation] - archiveClassifier.set('') - - relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' - relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' - - mergeServiceFiles() } \ No newline at end of file diff --git a/varo/build.gradle b/varo/build.gradle index 378d1b7..6572533 100644 --- a/varo/build.gradle +++ b/varo/build.gradle @@ -1,8 +1,3 @@ -plugins { - id 'java' - id("com.gradleup.shadow") version "8.3.5" -} - dependencies { implementation project(':core') implementation project(':common') @@ -10,18 +5,4 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' -} - -configurations { - shadowImplementation.extendsFrom implementation -} - -shadowJar { - configurations = [project.configurations.shadowImplementation] - archiveClassifier.set('') - - relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient' - relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' - - mergeServiceFiles() } \ No newline at end of file From 9f49f44075d6a9f21888f2375cb39379f47a12fb Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 7 Apr 2025 00:39:28 +0200 Subject: [PATCH 07/72] added join protection --- .../joinProtection/JoinProtection.java | 43 ++++++++++++++++ .../JoinProtectionListener.java | 49 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java new file mode 100644 index 0000000..9bec6f9 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -0,0 +1,43 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; + +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import net.kyori.adventure.util.Ticks; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Listener; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +public class JoinProtection extends Appliance { + private static final int resistanceDuration = 30; + + private final List protectedPlayers = new ArrayList<>(); + + public void addProtection(Player player) { + protectedPlayers.add(player.getUniqueId()); + PotionEffect effect = new PotionEffect(PotionEffectType.RESISTANCE, Ticks.TICKS_PER_SECOND*resistanceDuration, 1); + player.addPotionEffect(effect, true); + Bukkit.getScheduler().runTaskLater( + Main.instance(), + () -> protectedPlayers.remove(player.getUniqueId()), + Ticks.TICKS_PER_SECOND*resistanceDuration + ); + } + + public void cancelEvent(Player player, Cancellable event) { + if(!protectedPlayers.contains(player.getUniqueId())) return; + event.setCancelled(true); + } + + @Override + protected @NotNull List listeners() { + return List.of(new JoinProtectionListener()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java new file mode 100644 index 0000000..5e94b80 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java @@ -0,0 +1,49 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.player.*; + +public class JoinProtectionListener extends ApplianceListener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + this.getAppliance().addProtection(event.getPlayer()); + } + + @EventHandler + public void onDamage(EntityDamageEvent event) { + if(!(event.getEntity() instanceof Player)) return; + this.getAppliance().cancelEvent((Player) event.getEntity(), event); + } + + @EventHandler + public void onConsume(PlayerItemConsumeEvent event) { + this.getAppliance().cancelEvent(event.getPlayer(), event); + } + + // flying is not enabled on the server + @EventHandler + public void onMove(PlayerMoveEvent event) { + if(!event.hasChangedPosition()) return; + this.getAppliance().cancelEvent(event.getPlayer(), event); + } + + @EventHandler + public void onInteract(PlayerInteractEvent event) { + this.getAppliance().cancelEvent(event.getPlayer(), event); + } + + @EventHandler + public void onBlockPlace(BlockPlaceEvent event) { + this.getAppliance().cancelEvent(event.getPlayer(), event); + } + + @EventHandler + public void onBlockBreak(BlockBreakEvent event) { + this.getAppliance().cancelEvent(event.getPlayer(), event); + } +} From 90b623ea073c614dfae0925ca48833dc5acd4387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 7 Apr 2025 12:42:08 +0200 Subject: [PATCH 08/72] added option for local build tasks --- .gitignore | 2 ++ build.gradle | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 74819ac..17867fe 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,5 @@ run/ !gradle-wrapper.jar /gradlew /gradlew.bat + +local.gradle diff --git a/build.gradle b/build.gradle index 6d7f27f..64aa638 100644 --- a/build.gradle +++ b/build.gradle @@ -46,4 +46,8 @@ shadowJar { relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core' mergeServiceFiles() -} \ No newline at end of file +} + +if (file("local.gradle").exists()) { + apply from: "local.gradle" +} From a3729734cb43cd0b21beeb5334f3c976031c4954 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 7 Apr 2025 14:46:14 +0200 Subject: [PATCH 09/72] fixed error when opening settings and not all setting categories were used --- .../appliances/metaGameplay/settings/Settings.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index 002744a..bb31285 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -107,6 +107,9 @@ public class Settings extends Appliance { .filter(setting -> ((CategorizedSetting) setting).category().equals(category)) .toList(); + //skip empty category rows + if(categorizedSettings.isEmpty()) return; + for(int i = 0; i < categorizedSettings.size(); i++) { int slot = row.get() * 9 + i % 9; inventory.setItem(slot, categorizedSettings.get(i).buildItem()); @@ -139,17 +142,23 @@ public class Settings extends Appliance { int countOfUncategorized = (int) settings.stream() .filter(setting -> !(setting instanceof CategorizedSetting)) .count(); + int rowsOfUncategorized = (int) Math.ceil((double) countOfUncategorized / 9); - return Arrays.stream(SettingCategory.values()) + int rowsOfCategorized = Arrays.stream(SettingCategory.values()) .map(settingCategory -> settings.stream() .filter(setting -> setting instanceof CategorizedSetting) .map(setting -> (CategorizedSetting) setting) .filter(categorizedSetting -> categorizedSetting.category().equals(settingCategory)) .count()) - .map(itemCount -> itemCount + countOfUncategorized) .map(itemCount -> (int) Math.ceil((double) itemCount / 9)) .reduce(Integer::sum) .orElse(1) * 9; + + int rows = rowsOfUncategorized + rowsOfCategorized; + if(rows % 9 != 0) throw new IllegalStateException( + String.format("Failed to calculate settings inventory size. %d is not an multiple of 9", rows) + ); + return rows; } public void onSettingsClose(Player player) { From fcc2abdc49a699ceea9993bb1c86adedc0828215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 7 Apr 2025 14:53:18 +0200 Subject: [PATCH 10/72] added option to disable internal plugin http server --- core/src/main/java/eu/mhsl/craftattack/core/Main.java | 6 ++++-- core/src/main/resources/config.yml | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/core/Main.java b/core/src/main/java/eu/mhsl/craftattack/core/Main.java index d2d84f0..a232c7d 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/Main.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/Main.java @@ -66,8 +66,10 @@ public final class Main extends JavaPlugin { }); Main.logger().info(String.format("Initialized %d appliances!", this.appliances.size())); - Main.logger().info("Starting HTTP API..."); - new HttpServer(); + if(Configuration.pluginConfig.getBoolean("httpServerEnabled", true)) { + Main.logger().info("Starting HTTP API..."); + new HttpServer(); + } this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord"); Main.logger().info("Startup complete!"); diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index cb8870b..57faf93 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -1,4 +1,5 @@ plugin: + httpServerEnabled: true disabledAppliances: - NameOfApplianceClass From fdbb5258709690ff634035c3b6381b52a9c6339a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 7 Apr 2025 16:19:44 +0200 Subject: [PATCH 11/72] added forbiddenItems appliance with material detection --- .../forbiddenItems/ForbiddenItems.java | 60 +++++++++++++++++++ .../ForbiddenMaterialListener.java | 45 ++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java new file mode 100644 index 0000000..14d13b5 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java @@ -0,0 +1,60 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; + +import eu.mhsl.craftattack.core.appliance.Appliance; +import org.bukkit.Material; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Villager; +import org.bukkit.event.Listener; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Set; +import java.util.function.Function; + +public class ForbiddenItems extends Appliance { + Set> forbiddenMaterials = Set.of( + (material) -> material.name().startsWith("NETHERITE"), + (material) -> material.equals(Material.TOTEM_OF_UNDYING), + (material) -> material.equals(Material.END_CRYSTAL), + (material) -> material.equals(Material.MACE), + (material) -> material.equals(Material.ENCHANTED_GOLDEN_APPLE) + ); + + Set> forbiddenEntities = Set.of( + (entity) -> { + if(!(entity instanceof Villager villager)) return false; + return List.of( + Villager.Profession.LIBRARIAN, + Villager.Profession.ARMORER + ).contains(villager.getProfession()); + } + ); + + Set> forbiddenPotions = Set.of( + (potion) -> !potion.getType().equals(PotionEffectType.INSTANT_HEALTH) && potion.getAmplifier() >= 2 + ); + + public boolean isForbidden(Material material) { + return this.forbiddenMaterials.stream() + .anyMatch(test -> test.apply(material)); + } + + public boolean isForbidden(Entity entity) { + return this.forbiddenEntities.stream() + .anyMatch(test -> test.apply(entity)); + } + + public boolean isForbidden(PotionEffect potionEffect) { + return this.forbiddenPotions.stream() + .anyMatch(test -> test.apply(potionEffect)); + } + + @Override + protected @NotNull List listeners() { + return List.of( + new ForbiddenMaterialListener() + ); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java new file mode 100644 index 0000000..8e2c361 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java @@ -0,0 +1,45 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import net.kyori.adventure.text.Component; +import org.bukkit.Material; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityPickupItemEvent; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.event.inventory.InventoryClickEvent; + +import java.util.List; + +class ForbiddenMaterialListener extends ApplianceListener { + @EventHandler + public void onPickup(EntityPickupItemEvent event) { + this.testAndCancel(event, event.getItem().getItemStack().getType(), event.getEntity()); + } + + @EventHandler + public void onInventoryInteraction(InventoryClickEvent event) { + if(event.getCurrentItem() == null) return; + if(List.of(ClickType.DROP, ClickType.CONTROL_DROP).contains(event.getClick())) return; + this.testAndCancel(event, event.getCurrentItem().getType(), event.getWhoClicked()); + } + + private void testAndCancel(Cancellable event, Material material, Entity entity) { + if(!this.getAppliance().isForbidden(material)) return; + event.setCancelled(true); + + if(entity instanceof Player p) { + Component itemName = material.getItemTranslationKey() != null + ? Component.translatable(material.getItemTranslationKey()) + : Component.text(material.name()); + + p.sendActionBar( + Component.text() + .append(itemName) + .append(Component.text(" ist ein verbotener Gegenstand!")) + ); + } + } +} From 153a9687761756cdf62b40912f6b308121095f6e Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 7 Apr 2025 17:52:48 +0200 Subject: [PATCH 12/72] added entity and potion listeners --- .../ForbiddenEntityListener.java | 27 ++++++++++ .../forbiddenItems/ForbiddenGroup.java | 17 ++++++ .../forbiddenItems/ForbiddenItems.java | 34 ++++-------- .../ForbiddenMaterialListener.java | 2 +- .../ForbiddenPotionsListener.java | 54 +++++++++++++++++++ 5 files changed, 109 insertions(+), 25 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenGroup.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java new file mode 100644 index 0000000..09d7375 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java @@ -0,0 +1,27 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import net.kyori.adventure.text.Component; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntitySpawnEvent; +import org.bukkit.event.player.PlayerInteractEntityEvent; + +class ForbiddenEntityListener extends ApplianceListener { + @EventHandler + public void onEntitySpawn(EntitySpawnEvent event) { + if(!this.getAppliance().forbiddenEntities.isForbidden(event.getEntity())) return; + event.setCancelled(true); + } + + @EventHandler + public void onEntityInteraction(PlayerInteractEntityEvent event) { + if(!this.getAppliance().forbiddenEntities.isForbidden(event.getRightClicked())) return; + event.setCancelled(true); + + event.getPlayer().sendActionBar( + Component.text() + .append(Component.text(event.getRightClicked().getName())) + .append(Component.text(" ist eine verbotene Entität!")) + ); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenGroup.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenGroup.java new file mode 100644 index 0000000..9b1b11e --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenGroup.java @@ -0,0 +1,17 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; + +import java.util.Set; +import java.util.function.Function; + +public class ForbiddenGroup { + private final Set> forbiddenT; + + public ForbiddenGroup(Set> forbiddenT) { + this.forbiddenT = forbiddenT; + } + + public boolean isForbidden(TType value) { + return this.forbiddenT.stream() + .anyMatch(test -> test.apply(value)); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java index 14d13b5..41203ef 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java @@ -11,18 +11,17 @@ import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Set; -import java.util.function.Function; public class ForbiddenItems extends Appliance { - Set> forbiddenMaterials = Set.of( + public ForbiddenGroup forbiddenMaterials = new ForbiddenGroup<>(Set.of( (material) -> material.name().startsWith("NETHERITE"), (material) -> material.equals(Material.TOTEM_OF_UNDYING), (material) -> material.equals(Material.END_CRYSTAL), (material) -> material.equals(Material.MACE), (material) -> material.equals(Material.ENCHANTED_GOLDEN_APPLE) - ); + )); - Set> forbiddenEntities = Set.of( + public ForbiddenGroup forbiddenEntities = new ForbiddenGroup<>(Set.of( (entity) -> { if(!(entity instanceof Villager villager)) return false; return List.of( @@ -30,31 +29,18 @@ public class ForbiddenItems extends Appliance { Villager.Profession.ARMORER ).contains(villager.getProfession()); } - ); + )); - Set> forbiddenPotions = Set.of( - (potion) -> !potion.getType().equals(PotionEffectType.INSTANT_HEALTH) && potion.getAmplifier() >= 2 - ); - - public boolean isForbidden(Material material) { - return this.forbiddenMaterials.stream() - .anyMatch(test -> test.apply(material)); - } - - public boolean isForbidden(Entity entity) { - return this.forbiddenEntities.stream() - .anyMatch(test -> test.apply(entity)); - } - - public boolean isForbidden(PotionEffect potionEffect) { - return this.forbiddenPotions.stream() - .anyMatch(test -> test.apply(potionEffect)); - } + public ForbiddenGroup forbiddenPotions = new ForbiddenGroup<>(Set.of( + (potion) -> !potion.getType().equals(PotionEffectType.INSTANT_HEALTH) && potion.getAmplifier() >= 1 // Amplifier starts at 0 + )); @Override protected @NotNull List listeners() { return List.of( - new ForbiddenMaterialListener() + new ForbiddenMaterialListener(), + new ForbiddenEntityListener(), + new ForbiddenPotionsListener() ); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java index 8e2c361..8373a89 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java @@ -27,7 +27,7 @@ class ForbiddenMaterialListener extends ApplianceListener { } private void testAndCancel(Cancellable event, Material material, Entity entity) { - if(!this.getAppliance().isForbidden(material)) return; + if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return; event.setCancelled(true); if(entity instanceof Player p) { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java new file mode 100644 index 0000000..9b2c265 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java @@ -0,0 +1,54 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import net.kyori.adventure.text.Component; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.LingeringPotionSplashEvent; +import org.bukkit.event.entity.PotionSplashEvent; +import org.bukkit.event.player.PlayerItemConsumeEvent; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.potion.PotionEffect; + +import javax.annotation.Nullable; +import java.util.Collection; + +class ForbiddenPotionsListener extends ApplianceListener { + @EventHandler + public void onPotionSplash(PotionSplashEvent event) { + Collection effects = event.getPotion().getEffects(); + + this.testAndCancel(event, effects, null); + } + + @EventHandler + public void onPotionConsume(PlayerItemConsumeEvent event) { + if(!(event.getItem().getItemMeta() instanceof PotionMeta meta)) return; + if(meta.getBasePotionType() == null) return; + Collection effects = meta.getBasePotionType().getPotionEffects(); + + this.testAndCancel(event, effects, event.getPlayer()); + } + + @EventHandler + public void onLingeringPotionSplash(LingeringPotionSplashEvent event) { + if(event.getAreaEffectCloud().getBasePotionType() == null) return; + Collection effects = event.getAreaEffectCloud().getBasePotionType().getPotionEffects(); + + this.testAndCancel(event, effects, null); + } + + private void testAndCancel(Cancellable event, Collection effects, @Nullable Player player) { + if(effects.stream().noneMatch(potionEffect -> this.getAppliance().forbiddenPotions.isForbidden(potionEffect))) return; + + event.setCancelled(true); + + if(player == null) return; + + player.sendActionBar( + Component.text() + .append(Component.text("Das ist ein verbotener Trank!")) + ); + } +} From 859733e3dd64b1171f20d0b868b53c2fcb5d1891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 7 Apr 2025 19:15:35 +0200 Subject: [PATCH 13/72] finalized JoinProtection --- .../joinProtection/JoinProtection.java | 34 +++++++++++++------ .../JoinProtectionListener.java | 19 +++++++++-- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index 9bec6f9..6569103 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -2,6 +2,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; +import net.kyori.adventure.text.Component; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -10,30 +11,41 @@ import org.bukkit.event.Listener; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; public class JoinProtection extends Appliance { - private static final int resistanceDuration = 30; + private static final int resistanceDuration = 10; - private final List protectedPlayers = new ArrayList<>(); + static final class Options { + public boolean wasOnGround = false; + } + private final Map protectedPlayers = new HashMap<>(); public void addProtection(Player player) { - protectedPlayers.add(player.getUniqueId()); - PotionEffect effect = new PotionEffect(PotionEffectType.RESISTANCE, Ticks.TICKS_PER_SECOND*resistanceDuration, 1); - player.addPotionEffect(effect, true); + this.protectedPlayers.put(player.getUniqueId(), new Options()); + PotionEffect resistance = new PotionEffect(PotionEffectType.RESISTANCE, Ticks.TICKS_PER_SECOND * resistanceDuration, 1); + PotionEffect blindness = new PotionEffect(PotionEffectType.DARKNESS, Ticks.TICKS_PER_SECOND * 3, 1); + player.addPotionEffects(List.of(resistance, blindness)); + Bukkit.getScheduler().runTaskLater( Main.instance(), - () -> protectedPlayers.remove(player.getUniqueId()), - Ticks.TICKS_PER_SECOND*resistanceDuration + () -> this.protectedPlayers.remove(player.getUniqueId()), + Ticks.TICKS_PER_SECOND * resistanceDuration ); } + @Nullable Options getOptions(Player player) { + return this.protectedPlayers.get(player.getUniqueId()); + } + public void cancelEvent(Player player, Cancellable event) { - if(!protectedPlayers.contains(player.getUniqueId())) return; + if(!this.protectedPlayers.containsKey(player.getUniqueId())) return; event.setCancelled(true); + player.sendActionBar( + Component.text("Du befindest dich in der %s Sekündigen") + ); } @Override diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java index 5e94b80..301b84a 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java @@ -1,6 +1,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockBreakEvent; @@ -16,8 +17,9 @@ public class JoinProtectionListener extends ApplianceListener { @EventHandler public void onDamage(EntityDamageEvent event) { - if(!(event.getEntity() instanceof Player)) return; - this.getAppliance().cancelEvent((Player) event.getEntity(), event); + if(!(event.getEntity() instanceof Player player)) return; + if(event.getCause().equals(EntityDamageEvent.DamageCause.FALL)) return; + this.getAppliance().cancelEvent(player, event); } @EventHandler @@ -25,10 +27,16 @@ public class JoinProtectionListener extends ApplianceListener { this.getAppliance().cancelEvent(event.getPlayer(), event); } - // flying is not enabled on the server @EventHandler public void onMove(PlayerMoveEvent event) { if(!event.hasChangedPosition()) return; + JoinProtection.Options option = this.getAppliance().getOptions(event.getPlayer()); + if(option == null) return; + if(!option.wasOnGround) { + option.wasOnGround = ((LivingEntity) event.getPlayer()).isOnGround(); + return; + } + this.getAppliance().cancelEvent(event.getPlayer(), event); } @@ -46,4 +54,9 @@ public class JoinProtectionListener extends ApplianceListener { public void onBlockBreak(BlockBreakEvent event) { this.getAppliance().cancelEvent(event.getPlayer(), event); } + + @EventHandler + public void onFlightChange(PlayerToggleFlightEvent event) { + this.getAppliance().cancelEvent(event.getPlayer(), event); + } } From 71d9faa9f45da6230b8e4ebaf7336aaaceda76f1 Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 7 Apr 2025 22:17:54 +0200 Subject: [PATCH 14/72] added nether prevent --- .../netherPrevent/NetherPrevent.java | 16 ++++++++++ .../netherPrevent/NetherPreventListener.java | 29 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java new file mode 100644 index 0000000..1bd29fb --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java @@ -0,0 +1,16 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.netherPrevent; + +import eu.mhsl.craftattack.core.appliance.Appliance; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class NetherPrevent extends Appliance { + @Override + protected @NotNull List listeners() { + return List.of( + new NetherPreventListener() + ); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java new file mode 100644 index 0000000..3a42f8e --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java @@ -0,0 +1,29 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.netherPrevent; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.event.EventHandler; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.world.PortalCreateEvent; + +public class NetherPreventListener extends ApplianceListener { + @EventHandler + public void onPortalPlace(BlockPlaceEvent event) { + if(!event.getBlockPlaced().getType().equals(Material.NETHER_PORTAL)) return; + event.setCancelled(true); + } + + @EventHandler + public void onPortalCreate(PortalCreateEvent event) { + if(!event.getReason().equals(PortalCreateEvent.CreateReason.FIRE)) return; + event.setCancelled(true); + } + + @EventHandler + public void onPlayerPortal(PlayerPortalEvent event) { + if(!event.getTo().getWorld().getEnvironment().equals(World.Environment.NETHER)) return; + event.setCancelled(true); + } +} From a4a254ebbe5cf358d6431f037edb64221426b48d Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 7 Apr 2025 22:33:01 +0200 Subject: [PATCH 15/72] removed unnecessary listeners --- .../netherPrevent/NetherPreventListener.java | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java index 3a42f8e..c73c14c 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java @@ -1,29 +1,13 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.netherPrevent; import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import org.bukkit.Material; -import org.bukkit.World; import org.bukkit.event.EventHandler; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.event.world.PortalCreateEvent; public class NetherPreventListener extends ApplianceListener { - @EventHandler - public void onPortalPlace(BlockPlaceEvent event) { - if(!event.getBlockPlaced().getType().equals(Material.NETHER_PORTAL)) return; - event.setCancelled(true); - } - @EventHandler public void onPortalCreate(PortalCreateEvent event) { - if(!event.getReason().equals(PortalCreateEvent.CreateReason.FIRE)) return; - event.setCancelled(true); - } - - @EventHandler - public void onPlayerPortal(PlayerPortalEvent event) { - if(!event.getTo().getWorld().getEnvironment().equals(World.Environment.NETHER)) return; + if(event.getReason().equals(PortalCreateEvent.CreateReason.NETHER_PAIR)) return; event.setCancelled(true); } } From ff312152952ac71944db1146c287380e6a4438c7 Mon Sep 17 00:00:00 2001 From: lars Date: Mon, 7 Apr 2025 23:48:06 +0200 Subject: [PATCH 16/72] added option for end prevent --- .../tooling/endPrevent/EndPrevent.java | 42 ++++++++++++---- .../tooling/endPrevent/EndPreventCommand.java | 10 ++-- .../endPrevent/EndPreventListener.java | 49 +++++++++++++++++++ .../PreventEnderEyeUseListener.java | 23 --------- 4 files changed, 89 insertions(+), 35 deletions(-) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java delete mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java index 085cb39..7d7e188 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java @@ -3,33 +3,57 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.config.Configuration; +import org.bukkit.Bukkit; +import org.bukkit.World; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; import java.util.List; public class EndPrevent extends Appliance { - private final String endDisabledKey = "endDisabled"; - private boolean endDisabled; + private final String endPreventKey = "endPrevent"; + private State endPreventState; + private final World endWorld = Bukkit.getWorlds().stream().filter(world -> world.getEnvironment().equals(World.Environment.THE_END)).findFirst().orElseThrow(); + + public enum State { + OPEN, + CLOSED, + NO_OUTER + } public EndPrevent() { super("endPrevent"); - this.endDisabled = this.localConfig().getBoolean(this.endDisabledKey); + this.endPreventState = State.valueOf(this.localConfig().getString(this.endPreventKey, State.OPEN.name())); + this.updateEndBorder(); } - public void setEndDisabled(boolean disabled) { - this.localConfig().set(this.endDisabledKey, disabled); + private void updateEndBorder() { + if(this.endPreventState == State.NO_OUTER) this.endWorld.getWorldBorder().setSize(500); + if(this.endPreventState == State.OPEN) this.endWorld.getWorldBorder().setSize(this.endWorld.getWorldBorder().getMaxSize()); + } + + public void setEndState(State state) { + this.localConfig().set(this.endPreventKey, state.name()); Configuration.saveChanges(); - this.endDisabled = disabled; + this.endPreventState = state; + this.updateEndBorder(); } - public boolean isEndDisabled() { - return this.endDisabled; + public boolean isEndClosed() { + return this.endPreventState.equals(State.CLOSED); + } + + public boolean isOnlyInner() { + return this.endPreventState.equals(State.NO_OUTER); + } + + public State getEndPreventState() { + return this.endPreventState; } @Override protected @NotNull List listeners() { - return List.of(new PreventEnderEyeUseListener()); + return List.of(new EndPreventListener()); } @Override diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java index f62c28f..8bfe7c6 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java @@ -12,7 +12,11 @@ import java.util.List; import java.util.Map; class EndPreventCommand extends ApplianceCommand { - private final Map arguments = Map.of("preventEnd", true, "allowEnd", false); + private final Map arguments = Map.of( + "preventEnd", EndPrevent.State.CLOSED, + "allowEnd", EndPrevent.State.OPEN, + "onlyInnerEnd", EndPrevent.State.NO_OUTER + ); public EndPreventCommand() { super("endPrevent"); @@ -21,11 +25,11 @@ class EndPreventCommand extends ApplianceCommand { @Override protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception { if(args.length == 1 && this.arguments.containsKey(args[0])) { - this.getAppliance().setEndDisabled(this.arguments.get(args[0])); + this.getAppliance().setEndState(this.arguments.get(args[0])); sender.sendMessage(Component.text("Setting updated!", NamedTextColor.GREEN)); } sender.sendMessage(Component.text( - String.format("The End is %s!", this.getAppliance().isEndDisabled() ? "closed" : "open"), + String.format("The End is now on '%s'!", this.getAppliance().getEndPreventState().name()), NamedTextColor.GOLD )); } diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java new file mode 100644 index 0000000..c15140e --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java @@ -0,0 +1,49 @@ +package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; + +import com.destroystokyo.paper.event.player.PlayerTeleportEndGatewayEvent; +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.Cancellable; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerPortalEvent; + +class EndPreventListener extends ApplianceListener { + @EventHandler + public void onEnderEyeInteraction(PlayerInteractEvent event) { + if(event.getClickedBlock() == null) return; + if(!event.getClickedBlock().getType().equals(Material.END_PORTAL_FRAME)) return; + if(event.getItem() == null) return; + if(!event.getItem().getType().equals(Material.ENDER_EYE)) return; + + this.cancelIfClosed(event, event.getPlayer()); + } + + @EventHandler + public void onPlayerPortal(PlayerPortalEvent event) { + if(!event.getTo().getWorld().getEnvironment().equals(World.Environment.THE_END)) return; + + this.cancelIfClosed(event, event.getPlayer()); + } + + @EventHandler + public void onPlayerEndGateway(PlayerTeleportEndGatewayEvent event) { + this.cancelIfOnlyInner(event, event.getPlayer()); + } + + private void cancelIfClosed(Cancellable event, Player p) { + if(!this.getAppliance().isEndClosed()) return; + event.setCancelled(true); + p.sendActionBar(Component.text("Das End ist nicht freigeschaltet!", NamedTextColor.RED)); + } + + private void cancelIfOnlyInner(Cancellable event, Player p) { + if(!this.getAppliance().isOnlyInner()) return; + event.setCancelled(true); + p.sendActionBar(Component.text("Das Outer End ist nicht freigeschaltet!", NamedTextColor.RED)); + } +} diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java deleted file mode 100644 index 425a527..0000000 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java +++ /dev/null @@ -1,23 +0,0 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; - -import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; -import org.bukkit.Material; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerInteractEvent; - -class PreventEnderEyeUseListener extends ApplianceListener { - @EventHandler - public void onEnderEyeInteraction(PlayerInteractEvent event) { - if(event.getClickedBlock() == null) return; - if(!event.getClickedBlock().getType().equals(Material.END_PORTAL_FRAME)) return; - if(event.getItem() == null) return; - if(!event.getItem().getType().equals(Material.ENDER_EYE)) return; - - if(!this.getAppliance().isEndDisabled()) return; - - event.setCancelled(true); - event.getPlayer().sendActionBar(Component.text("Das End ist noch nicht freigeschaltet!", NamedTextColor.RED)); - } -} From ef7232e687745eff1e0eaed00669332756e049f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 8 Apr 2025 11:49:25 +0200 Subject: [PATCH 17/72] fixed missing countdown for JoinProtection --- .../metaGameplay/joinProtection/JoinProtection.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index 6569103..0e608a7 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -3,6 +3,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -20,6 +21,7 @@ public class JoinProtection extends Appliance { static final class Options { public boolean wasOnGround = false; + public Long joinTime = System.currentTimeMillis(); } private final Map protectedPlayers = new HashMap<>(); @@ -36,15 +38,21 @@ public class JoinProtection extends Appliance { ); } - @Nullable Options getOptions(Player player) { + @Nullable JoinProtection.Options getOptions(Player player) { return this.protectedPlayers.get(player.getUniqueId()); } public void cancelEvent(Player player, Cancellable event) { if(!this.protectedPlayers.containsKey(player.getUniqueId())) return; event.setCancelled(true); + + Options option = this.protectedPlayers.get(player.getUniqueId()); + int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - option.joinTime) / 1000) - resistanceDuration); player.sendActionBar( - Component.text("Du befindest dich in der %s Sekündigen") + Component.text( + String.format("Du bist in %d Sekunden angreifbar", secondsLeft), + NamedTextColor.RED + ) ); } From e37e410542267e6bf476ab34867f26b0789088a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 8 Apr 2025 15:04:50 +0200 Subject: [PATCH 18/72] moved report appliance to common --- .../spawn/common}/appliances/metaGameplay/report/Report.java | 2 +- .../common}/appliances/metaGameplay/report/ReportCommand.java | 2 +- .../common}/appliances/metaGameplay/report/ReportsCommand.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/Report.java (98%) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/ReportCommand.java (96%) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/report/ReportsCommand.java (91%) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java similarity index 98% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index e27103e..00f560a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.api.client.ReqResp; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java similarity index 96% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java index b58e207..d1eee37 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.util.text.ComponentUtil; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java similarity index 91% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java index abd4b78..14d185e 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/report/ReportsCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; From d1b5d81fa7cad4a3944205e3a11467b95c8af84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 8 Apr 2025 15:10:23 +0200 Subject: [PATCH 19/72] moved tablist to common and made project title configurable --- .../common}/appliances/metaGameplay/tablist/Tablist.java | 7 ++++--- .../appliances/metaGameplay/tablist/TablistListener.java | 2 +- .../metaGameplay/tablist/TechnicalTablistSetting.java | 2 +- core/src/main/resources/config.yml | 1 + 4 files changed, 7 insertions(+), 5 deletions(-) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/Tablist.java (90%) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/TablistListener.java (81%) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/tablist/TechnicalTablistSetting.java (93%) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java similarity index 90% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java index 798b606..51dfcb3 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/Tablist.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.report.Report; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report.Report; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.core.util.IteratorUtil; import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; @@ -23,7 +23,8 @@ import java.util.List; public class Tablist extends Appliance { - private final RainbowComponent serverName = new RainbowComponent(" CraftAttack 7 ", 7, 3); + private final String projectTitle = this.localConfig().getString("projectTitle", "Title not configured"); + private final RainbowComponent serverName = new RainbowComponent(String.format(" %s ", this.projectTitle), 7, 3); private NetworkMonitor networkMonitor; private OperatingSystemMXBean systemMonitor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java similarity index 81% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java index 4201899..0828c41 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TablistListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java similarity index 93% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java index 10af89c..9e69ffa 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/tablist/TechnicalTablistSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.tablist; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index 57faf93..97446c7 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -53,6 +53,7 @@ whitelist: overrideIntegrityCheck: false tablist: + projectTitle: "Title" interface: eth0 outlawed: From 9bae26044ad68dc1023048986075f088104927fd Mon Sep 17 00:00:00 2001 From: lars Date: Tue, 8 Apr 2025 19:00:49 +0200 Subject: [PATCH 20/72] added shrinking border appliance --- .../shrinkingBorder/ShrinkingBorder.java | 97 +++++++++++++++++++ .../ShrinkingBorderCommand.java | 61 ++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java new file mode 100644 index 0000000..b34abd4 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java @@ -0,0 +1,97 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; + +import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.core.config.Configuration; +import org.bukkit.Bukkit; +import org.bukkit.World; +import org.bukkit.WorldBorder; +import org.jetbrains.annotations.NotNull; + +import java.time.LocalTime; +import java.util.*; + +public class ShrinkingBorder extends Appliance { + private final String shrinkPerDayKey = "shrinkPerDay"; + private final String shrinkTimeKey = "shrinkTime"; + private final String minimumSizeKey = "minimumSize"; + public int shrinkPerDay; + public LocalTime shrinkTime; + public int minimumSize; + private final Timer timer = new Timer(); + private final Calendar calendar = Calendar.getInstance(TimeZone.getDefault()); + + private final WorldBorder overworldBorder = Bukkit.getWorlds().stream() + .filter(world -> world.getEnvironment().equals(World.Environment.NORMAL)) + .findFirst().orElseThrow().getWorldBorder(); + private final WorldBorder netherBorder = Bukkit.getWorlds().stream() + .filter(world -> world.getEnvironment().equals(World.Environment.NETHER)) + .findFirst().orElseThrow().getWorldBorder(); + + private class ShrinkBorderTask extends TimerTask { + @Override + public void run() { + Bukkit.getScheduler().runTask(Main.instance(), ShrinkingBorder.this::shrinkBorder); + + } + } + + public ShrinkingBorder() { + super("shrinkingBorder"); + this.shrinkPerDay = this.localConfig().getInt(this.shrinkPerDayKey, 10); + this.shrinkTime = LocalTime.parse(this.localConfig().getString(this.shrinkTimeKey, LocalTime.of(3, 0, 0).toString())); + this.minimumSize = this.localConfig().getInt(this.minimumSizeKey, 10); + + this.calendar.set(Calendar.HOUR_OF_DAY, this.shrinkTime.getHour()); + this.calendar.set(Calendar.MINUTE, this.shrinkTime.getMinute()); + this.calendar.set(Calendar.SECOND, this.shrinkTime.getSecond()); + + if(this.calendar.getTime().before(new Date(System.currentTimeMillis()))) { + this.calendar.add(Calendar.DAY_OF_MONTH, 1); + } + + this.timer.schedule(new ShrinkBorderTask(), this.calendar.getTime()); + } + + private void shrinkBorder() { + this.overworldBorder.setSize(Math.max(this.overworldBorder.getSize()-this.shrinkPerDay, this.minimumSize)); + this.netherBorder.setSize(Math.max(this.netherBorder.getSize()-this.shrinkPerDay, this.minimumSize)); + + this.calendar.add(Calendar.DAY_OF_MONTH, 1); + this.timer.schedule(new ShrinkBorderTask(), this.calendar.getTime()); + } + + public void changeOption(ShrinkingBorderCommand.Argument option, int value) { + switch (option) { + case MINIMUM_SIZE -> { + this.minimumSize = value; + this.localConfig().set(this.minimumSizeKey, value); + } + case SHRINK_PER_DAY -> { + this.shrinkPerDay = value; + this.localConfig().set(this.shrinkPerDayKey, value); + } + } + Configuration.saveChanges(); + } + + public int getOption(ShrinkingBorderCommand.Argument option) { + switch (option) { + case MINIMUM_SIZE -> { + return this.minimumSize; + } + case SHRINK_PER_DAY -> { + return this.shrinkPerDay; + } + default -> { + return 0; + } + } + } + + @Override + protected @NotNull List> commands() { + return List.of(new ShrinkingBorderCommand()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java new file mode 100644 index 0000000..6c91013 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java @@ -0,0 +1,61 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; + +import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Arrays; +import java.util.List; + +public class ShrinkingBorderCommand extends ApplianceCommand { + public enum Argument { + SHRINK_PER_DAY("shrinkPerDay"), + MINIMUM_SIZE("minimumSize"); + + public final String name; + + Argument(String friendlyName) { + this.name = friendlyName; + } + + static Argument fromString(String argument) { + return Arrays.stream(values()).filter(argument1 -> argument1.name.equals(argument)).findFirst().orElseThrow(); + } + } + + public ShrinkingBorderCommand() { + super("shrinkingBorder"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length < 1 || args.length > 2) throw new Error("shrinkingBorder command needs one or two arguments"); + if(Arrays.stream(Argument.values()).noneMatch(argument -> argument.name.equals(args[0]))) throw new Error(String.format("argument %s does not exist", args[0])); + Argument option = Argument.fromString(args[0]); + + switch (args.length) { + case 1: + sender.sendMessage(String.format("%s is currently set to %d", args[0], this.getAppliance().getOption(option))); + break; + case 2: + try { + int value = Integer.parseInt(args[1]); + this.getAppliance().changeOption(option, value); + sender.sendMessage(String.format("%s is now set to %d", args[0], this.getAppliance().getOption(option))); + } catch (NumberFormatException e) { + throw new Error("second argument has to be an integer"); + } + break; + default: + throw new Error("shrinkingBorder command needs one or two arguments"); + } + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length > 1) return List.of(); + return Arrays.stream(Argument.values()).map(argument -> argument.name).toList(); + } +} From c28d34ab88681db0a07d54e8f9a0c817f5646d81 Mon Sep 17 00:00:00 2001 From: lars Date: Tue, 8 Apr 2025 19:03:22 +0200 Subject: [PATCH 21/72] added shrinking border to config --- core/src/main/resources/config.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index 97446c7..ad100ed 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -73,3 +73,7 @@ endPrevent: endDisabled: true spawnpoint: +shrinkingBorder: + minimumSize: 10 + shrinkPerDay: 10 + shrinkTime: 03:00 From b0414ae6ab06963f67f54fa9cc6cf0fbd0fab153 Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 9 Apr 2025 00:08:01 +0200 Subject: [PATCH 22/72] added warning with corresponding setting --- .../metaGameplay/settings/Settings.java | 1 + .../shrinkingBorder/ShrinkingBorder.java | 12 ++++ .../ShrinkingBorderListener.java | 60 +++++++++++++++++++ .../ShrinkingBorderSetting.java | 51 ++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index bb31285..fc184ff 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -33,6 +33,7 @@ public class Settings extends Appliance { ChatMentions, DoubleDoors, KnockDoors, + BorderWarning } public static Settings instance() { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java index b34abd4..33009a0 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java @@ -4,9 +4,11 @@ import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldBorder; +import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; import java.time.LocalTime; @@ -37,6 +39,11 @@ public class ShrinkingBorder extends Appliance { } } + @Override + public void onEnable() { + Settings.instance().declareSetting(ShrinkingBorderSetting.class); + } + public ShrinkingBorder() { super("shrinkingBorder"); this.shrinkPerDay = this.localConfig().getInt(this.shrinkPerDayKey, 10); @@ -94,4 +101,9 @@ public class ShrinkingBorder extends Appliance { protected @NotNull List> commands() { return List.of(new ShrinkingBorderCommand()); } + + @Override + protected @NotNull List listeners() { + return List.of(new ShrinkingBorderListener()); + } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java new file mode 100644 index 0000000..cc78619 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -0,0 +1,60 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; + +import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.WorldBorder; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerMoveEvent; + +public class ShrinkingBorderListener extends ApplianceListener { + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + if(!event.hasChangedPosition()) return; + if(event.getTo().getWorld().getEnvironment().equals(World.Environment.THE_END)) return; + if(this.isSave(event.getTo())) return; + int remainingDays = this.daysUntilBorder(event.getTo()); + + SelectSetting.Options.Option setting = Settings.instance().getSetting(event.getPlayer(), Settings.Key.BorderWarning, SelectSetting.Options.Option.class); + int maxDaysShown = 0; + if(setting.is(ShrinkingBorderSetting.oneDay)) maxDaysShown = 1; + if(setting.is(ShrinkingBorderSetting.twoDays)) maxDaysShown = 2; + if(setting.is(ShrinkingBorderSetting.threeDays)) maxDaysShown = 3; + + if(remainingDays > maxDaysShown) return; + + String actionBarText; + if(remainingDays <= 0) { + actionBarText = "Du befindest dich in der Worldborder!"; + } else { + actionBarText = String.format("In %d Tagen ist die Worldborder hier!", remainingDays); + } + + event.getPlayer().sendActionBar(Component.text( + actionBarText, + TextColor.color(255, 0, 0) + )); + } + + private int daysUntilBorder(Location playerLocation) { + WorldBorder worldBorder = playerLocation.getWorld().getWorldBorder(); + Location relativeLocation = playerLocation.clone().subtract(worldBorder.getCenter()); + double playerBorderDistanceX = worldBorder.getSize()/2 - Math.abs(relativeLocation.getX()); + double playerBorderDistanceZ = worldBorder.getSize()/2 - Math.abs(relativeLocation.getZ()); + int xSteps = (int) Math.ceil(playerBorderDistanceX / this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY)); + int zSteps = (int) Math.ceil(playerBorderDistanceZ / this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY)); + return Math.min(xSteps, zSteps); + } + + private boolean isSave(Location playerLocation) { + WorldBorder worldBorder = playerLocation.getWorld().getWorldBorder(); + Location relativeLocation = playerLocation.clone().subtract(worldBorder.getCenter()); + if(relativeLocation.getX() > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; + if(relativeLocation.getZ() > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; + return true; + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java new file mode 100644 index 0000000..0bbb2bf --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java @@ -0,0 +1,51 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; + +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; + +import java.util.List; +import java.util.Locale; + +public class ShrinkingBorderSetting extends SelectSetting implements CategorizedSetting { + private static final String namespace = ShrinkingBorderSetting.class.getSimpleName().toLowerCase(Locale.ROOT); + public static Options.Option noWarning = new Options.Option("Keine Warnung", new NamespacedKey(namespace, "disabled")); + public static Options.Option oneDay = new Options.Option("Ein Tag", new NamespacedKey(namespace, "one")); + public static Options.Option twoDays = new Options.Option("Zwei Tage", new NamespacedKey(namespace, "two")); + public static Options.Option threeDays = new Options.Option("Drei Tage", new NamespacedKey(namespace, "three")); + + public ShrinkingBorderSetting() { + super( + Settings.Key.BorderWarning, + new Options(List.of(noWarning, oneDay, twoDays, threeDays)) + ); + } + + @Override + public SettingCategory category() { + return SettingCategory.Gameplay; + } + + @Override + protected String title() { + return "Warnung vor der Worldborder"; + } + + @Override + protected String description() { + return "Warnt vor der Worldborder"; + } + + @Override + protected Material icon() { + return Material.BARRIER; + } + + @Override + protected Options.Option defaultValue() { + return oneDay; + } +} From ca99e6cfefef9d34d5fd8b60d61bf3acefab6a12 Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 9 Apr 2025 16:50:29 +0200 Subject: [PATCH 23/72] added integer setting --- .../metaGameplay/settings/Settings.java | 12 +-- .../settings/datatypes/IntegerSetting.java | 101 ++++++++++++++++++ .../ShrinkingBorderListener.java | 7 +- .../ShrinkingBorderSetting.java | 18 +--- 4 files changed, 113 insertions(+), 25 deletions(-) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index fc184ff..e069784 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -143,9 +143,9 @@ public class Settings extends Appliance { int countOfUncategorized = (int) settings.stream() .filter(setting -> !(setting instanceof CategorizedSetting)) .count(); - int rowsOfUncategorized = (int) Math.ceil((double) countOfUncategorized / 9); + int invSizeForUncategorized = (int) Math.ceil((double) countOfUncategorized / 9) * 9; - int rowsOfCategorized = Arrays.stream(SettingCategory.values()) + int invSizeForCategorized = Arrays.stream(SettingCategory.values()) .map(settingCategory -> settings.stream() .filter(setting -> setting instanceof CategorizedSetting) .map(setting -> (CategorizedSetting) setting) @@ -155,11 +155,11 @@ public class Settings extends Appliance { .reduce(Integer::sum) .orElse(1) * 9; - int rows = rowsOfUncategorized + rowsOfCategorized; - if(rows % 9 != 0) throw new IllegalStateException( - String.format("Failed to calculate settings inventory size. %d is not an multiple of 9", rows) + int invSize = invSizeForUncategorized + invSizeForCategorized; + if(invSize % 9 != 0) throw new IllegalStateException( + String.format("Failed to calculate settings inventory size. %d is not an multiple of 9", invSize) ); - return rows; + return invSize; } public void onSettingsClose(Player player) { diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java new file mode 100644 index 0000000..475688e --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java @@ -0,0 +1,101 @@ +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; + +import com.google.gson.Gson; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.ClickType; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataContainer; +import org.bukkit.persistence.PersistentDataType; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.IntStream; +import java.util.stream.Stream; + +public abstract class IntegerSetting extends Setting { + private final List options; + + public IntegerSetting(Settings.Key key, int minimum, int maximum) { + this(key, IntStream.range(minimum, maximum).boxed().toList()); + } + + public IntegerSetting(Settings.Key key, List options) { + super(key); + this.options = options; + } + + @Override + public ItemMeta buildMeta(ItemMeta meta) { + Component componentBefore = Component.text(" " + this.fillWithSpaces(this.options.getLast())); + Component componentAfter = Component.text(" " + this.fillWithSpaces(this.options.getFirst())); + int listIndex = this.options.indexOf(this.state); + if(listIndex > 0) componentBefore = Component.text(" " + this.fillWithSpaces(this.options.get(listIndex-1))); + if(listIndex < this.options.size()-1) componentAfter = Component.text(" " + this.fillWithSpaces(this.options.get(listIndex+1))); + + meta.displayName(Component.text(this.title(), NamedTextColor.WHITE)); + List lore = new ArrayList<>(Stream.of( + Component.empty() + .append(Component.text("Wert: ", NamedTextColor.DARK_GRAY)), + Component.empty() + .append(componentBefore.color(NamedTextColor.DARK_GRAY)) + .append(Component.text(" " + this.fillWithSpaces(this.state), NamedTextColor.GREEN)) + .append(componentAfter.color(NamedTextColor.DARK_GRAY)), + Component.empty() + ).toList()); + lore.addAll(this.buildDescription(this.description())); + meta.lore(lore); + return meta; + } + + private String fillWithSpaces(Integer option) { + String optionString = option.toString(); + int optionLength = optionString.length(); + int maxInteger = this.options.stream().mapToInt(value -> value).max().orElse(0); + int maxLength = String.valueOf(maxInteger).length(); + int padding = maxLength - optionLength; + + int padEnd = padding / 2; + int padStart = padding - padEnd; + + optionString = " ".repeat(padStart) + optionString + " ".repeat(padEnd); + return optionString; + } + + @Override + protected void change(Player player, ClickType clickType) { + int elementBefore = this.options.getLast(); + int elementAfter = this.options.getFirst(); + int listIndex = this.options.indexOf(this.state); + if(listIndex > 0) elementBefore = this.options.get(listIndex-1); + if(listIndex < this.options.size()-1) elementAfter = this.options.get(listIndex+1); + + if(clickType.equals(ClickType.LEFT)) this.state = elementBefore; + if(clickType.equals(ClickType.RIGHT)) this.state = elementAfter; + } + + @Override + protected void fromStorage(PersistentDataContainer container) { + this.state = container.has(this.getNamespacedKey()) + ? Integer.valueOf(Objects.requireNonNull(container.get(this.getNamespacedKey(), PersistentDataType.STRING))) + : this.defaultValue(); + } + + @Override + protected void toStorage(PersistentDataContainer container, Integer value) { + container.set(this.getNamespacedKey(), PersistentDataType.STRING, new Gson().toJson(value)); + } + + @Override + public Class dataType() { + return Integer.class; + } + + @Override + public Integer state() { + return this.state; + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index cc78619..c1d42b4 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -2,7 +2,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; import org.bukkit.Location; @@ -19,11 +18,7 @@ public class ShrinkingBorderListener extends ApplianceListener if(this.isSave(event.getTo())) return; int remainingDays = this.daysUntilBorder(event.getTo()); - SelectSetting.Options.Option setting = Settings.instance().getSetting(event.getPlayer(), Settings.Key.BorderWarning, SelectSetting.Options.Option.class); - int maxDaysShown = 0; - if(setting.is(ShrinkingBorderSetting.oneDay)) maxDaysShown = 1; - if(setting.is(ShrinkingBorderSetting.twoDays)) maxDaysShown = 2; - if(setting.is(ShrinkingBorderSetting.threeDays)) maxDaysShown = 3; + int maxDaysShown = Settings.instance().getSetting(event.getPlayer(), Settings.Key.BorderWarning, Integer.class); if(remainingDays > maxDaysShown) return; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java index 0bbb2bf..6653845 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java @@ -3,24 +3,16 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.IntegerSetting; import org.bukkit.Material; -import org.bukkit.NamespacedKey; import java.util.List; -import java.util.Locale; - -public class ShrinkingBorderSetting extends SelectSetting implements CategorizedSetting { - private static final String namespace = ShrinkingBorderSetting.class.getSimpleName().toLowerCase(Locale.ROOT); - public static Options.Option noWarning = new Options.Option("Keine Warnung", new NamespacedKey(namespace, "disabled")); - public static Options.Option oneDay = new Options.Option("Ein Tag", new NamespacedKey(namespace, "one")); - public static Options.Option twoDays = new Options.Option("Zwei Tage", new NamespacedKey(namespace, "two")); - public static Options.Option threeDays = new Options.Option("Drei Tage", new NamespacedKey(namespace, "three")); +public class ShrinkingBorderSetting extends IntegerSetting implements CategorizedSetting { public ShrinkingBorderSetting() { super( Settings.Key.BorderWarning, - new Options(List.of(noWarning, oneDay, twoDays, threeDays)) + List.of(0, 1, 2, 3) ); } @@ -45,7 +37,7 @@ public class ShrinkingBorderSetting extends SelectSetting implements Categorized } @Override - protected Options.Option defaultValue() { - return oneDay; + protected Integer defaultValue() { + return 1; } } From 34df173940c0d6288689a5ecfa42957ca1820ea1 Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 9 Apr 2025 22:32:36 +0200 Subject: [PATCH 24/72] changed integer setting constructor to correctly use maximum --- .../metaGameplay/settings/datatypes/IntegerSetting.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java index 475688e..6cd61d4 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java @@ -20,7 +20,7 @@ public abstract class IntegerSetting extends Setting { private final List options; public IntegerSetting(Settings.Key key, int minimum, int maximum) { - this(key, IntStream.range(minimum, maximum).boxed().toList()); + this(key, IntStream.range(minimum, maximum+1).boxed().toList()); } public IntegerSetting(Settings.Key key, List options) { From 9544c953a2fba2334fe87952b42b3d2bc90c6f9b Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 9 Apr 2025 23:05:46 +0200 Subject: [PATCH 25/72] fixed shrinking border warning --- .../metaGameplay/settings/datatypes/IntegerSetting.java | 2 ++ .../appliances/metaGameplay/settings/datatypes/Setting.java | 2 +- .../metaGameplay/shrinkingBorder/ShrinkingBorderListener.java | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java index 6cd61d4..06824da 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/IntegerSetting.java @@ -82,6 +82,8 @@ public abstract class IntegerSetting extends Setting { this.state = container.has(this.getNamespacedKey()) ? Integer.valueOf(Objects.requireNonNull(container.get(this.getNamespacedKey(), PersistentDataType.STRING))) : this.defaultValue(); + + if(!this.options.contains(this.state)) this.state = this.defaultValue(); } @Override diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java index a9bd678..f36af4a 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java @@ -17,7 +17,7 @@ import org.bukkit.persistence.PersistentDataContainer; import java.util.List; public abstract class Setting { - TDataType state; + protected TDataType state; private final Settings.Key key; public Setting(Settings.Key key) { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index c1d42b4..7a382cb 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -48,8 +48,8 @@ public class ShrinkingBorderListener extends ApplianceListener private boolean isSave(Location playerLocation) { WorldBorder worldBorder = playerLocation.getWorld().getWorldBorder(); Location relativeLocation = playerLocation.clone().subtract(worldBorder.getCenter()); - if(relativeLocation.getX() > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; - if(relativeLocation.getZ() > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; + if(Math.abs(relativeLocation.getX()) > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; + if(Math.abs(relativeLocation.getZ()) > this.getAppliance().getOption(ShrinkingBorderCommand.Argument.MINIMUM_SIZE)) return false; return true; } } From 32cbbe6c516b8af2bcd7de3667a401e07ac14824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 11 Apr 2025 19:16:13 +0200 Subject: [PATCH 26/72] made displayName independent of other appliances --- .../metaGameplay/displayName/DisplayName.java | 37 ++++++++++++------- .../DisplayNameUpdateListener.java | 2 +- .../java/eu/mhsl/craftattack/core/Main.java | 13 +++++-- .../gameplay/outlawed/Outlawed.java | 4 +- .../metaGameplay/adminMarker/AdminMarker.java | 7 +++- .../metaGameplay/afkTag/AfkTag.java | 2 +- .../metaGameplay/sleepTag/SleepTag.java | 2 +- .../metaGameplay/yearRank/YearRank.java | 2 +- 8 files changed, 43 insertions(+), 26 deletions(-) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/displayName/DisplayName.java (67%) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java (83%) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java similarity index 67% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java index 78a036e..63c21ff 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayName.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java @@ -1,12 +1,7 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker.AdminMarker; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag.AfkTag; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag.SleepTag; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank.YearRank; import eu.mhsl.craftattack.core.util.server.Floodgate; import eu.mhsl.craftattack.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; @@ -20,7 +15,6 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Objects; -import java.util.function.Supplier; import java.util.logging.Level; public class DisplayName extends Appliance { @@ -29,18 +23,33 @@ public class DisplayName extends Appliance { Component getNamePrefix(Player player); } + public interface Colored { + @Nullable + TextColor getNameColor(Player player); + } + public void update(Player player) { - TextColor playerColor = this.queryAppliance(AdminMarker.class).getPlayerColor(player); - List> prefixes = List.of( - () -> this.queryAppliance(Outlawed.class), - () -> this.queryAppliance(YearRank.class), - () -> this.queryAppliance(AfkTag.class), - () -> this.queryAppliance(SleepTag.class) + List coloring = Main.instance().getAppliances().stream() + .filter(appliance -> appliance instanceof Colored) + .map(appliance -> (Colored) appliance) + .toList(); + + if(coloring.size() > 1) throw new IllegalStateException( + "There are two or more appliances which provide coloring for player names. This is currently not supported!" ); + TextColor playerColor = coloring.isEmpty() + ? NamedTextColor.WHITE + : coloring.getFirst().getNameColor(player); + + List prefixes = Main.instance().getAppliances().stream() + .filter(appliance -> appliance instanceof Prefixed) + .map(appliance -> (Prefixed) appliance) + .toList(); + ComponentBuilder playerName = Component.text(); prefixes.stream() - .map(prefixed -> prefixed.get().getNamePrefix(player)) + .map(prefixed -> prefixed.getNamePrefix(player)) .filter(Objects::nonNull) .forEach(prefix -> playerName .append(prefix) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java similarity index 83% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java index 4308fd8..c4ab190 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; import eu.mhsl.craftattack.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/Main.java b/core/src/main/java/eu/mhsl/craftattack/core/Main.java index a232c7d..c1bc84b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/Main.java +++ b/core/src/main/java/eu/mhsl/craftattack/core/Main.java @@ -21,6 +21,7 @@ public final class Main extends JavaPlugin { private List appliances; private RepositoryLoader repositoryLoader; + private Reflections reflections; @Override public void onEnable() { @@ -39,15 +40,15 @@ public final class Main extends JavaPlugin { Configuration.readConfig(); List disabledAppliances = Configuration.pluginConfig.getStringList("disabledAppliances"); + Main.logger().info("Initializing reflections..."); + this.reflections = new Reflections("eu.mhsl.craftattack.spawn"); + Main.logger().info("Loading Repositories..."); this.repositoryLoader = new RepositoryLoader(); Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size())); Main.logger().info("Loading appliances..."); - Reflections reflections = new Reflections("eu.mhsl.craftattack.spawn"); - Set> applianceClasses = reflections.getSubTypesOf(Appliance.class); - - this.appliances = applianceClasses.stream() + this.appliances = this.findSubtypesOf(Appliance.class).stream() .filter(applianceClass -> !disabledAppliances.contains(applianceClass.getSimpleName())) .map(applianceClass -> { try { @@ -97,6 +98,10 @@ public final class Main extends JavaPlugin { .orElseThrow(() -> new RuntimeException(String.format("Appliance %s not loaded or instantiated!", clazz))); } + public Set> findSubtypesOf(Class type) { + return this.reflections.getSubTypesOf(type); + } + @SuppressWarnings("unchecked") public static Class getApplianceType(Class clazz) { return (Class) ((ParameterizedType) clazz.getGenericSuperclass()).getActualTypeArguments()[0]; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java index 044dc51..c027fcd 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java @@ -3,7 +3,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist.Whitelist; import eu.mhsl.craftattack.core.config.Configuration; import eu.mhsl.craftattack.core.util.text.DisconnectInfo; @@ -48,7 +48,7 @@ public class Outlawed extends Appliance implements DisplayName.Prefixed { ); } - public void switchLawStatus(Player player) throws OutlawChangeNotPermitted { + void switchLawStatus(Player player) throws OutlawChangeNotPermitted { if(this.getLawStatus(player).equals(Status.FORCED)) { throw new OutlawChangeNotPermitted("Dein Vogelfreistatus wurde als Strafe auferlegt und kann daher nicht verändert werden."); } diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java index 9edf678..b2ae54d 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,12 +1,15 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker; import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.format.TextColor; import org.bukkit.Color; import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; -public class AdminMarker extends Appliance { - public TextColor getPlayerColor(Player player) { +public class AdminMarker extends Appliance implements DisplayName.Colored { + @Override + public @Nullable TextColor getNameColor(Player player) { if(player.hasPermission("chatcolor")) return TextColor.color(Color.AQUA.asRGB()); // TODO read permission from config return TextColor.color(Color.WHITE.asRGB()); diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java index 2f38916..a63f4b3 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java index e42e26b..8ec9958 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java index ce80fdb..2b06997 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java @@ -3,7 +3,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank; import eu.mhsl.craftattack.core.Main; import eu.mhsl.craftattack.core.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; From a52476650e3705f2b7d988abcd7f061f92bc6bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 12 Apr 2025 20:42:32 +0200 Subject: [PATCH 27/72] registered missing listener for DisplayName --- .../appliances/metaGameplay/displayName/DisplayName.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java index 63c21ff..6cc5ac4 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java @@ -11,6 +11,8 @@ import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -81,4 +83,9 @@ public class DisplayName extends Appliance { Main.instance().getLogger().log(Level.SEVERE, e, e::getMessage); } } + + @Override + protected @NotNull List listeners() { + return List.of(new DisplayNameUpdateListener()); + } } From 50147a06e21709aefaf7e415330ec652e85bdcb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 13 Apr 2025 20:52:03 +0200 Subject: [PATCH 28/72] added removal of forbidden items in containers --- .../forbiddenItems/ForbiddenMaterialListener.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java index 8373a89..b6b6a6f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java @@ -12,6 +12,7 @@ import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryClickEvent; import java.util.List; +import java.util.Objects; class ForbiddenMaterialListener extends ApplianceListener { @EventHandler @@ -23,11 +24,12 @@ class ForbiddenMaterialListener extends ApplianceListener { public void onInventoryInteraction(InventoryClickEvent event) { if(event.getCurrentItem() == null) return; if(List.of(ClickType.DROP, ClickType.CONTROL_DROP).contains(event.getClick())) return; - this.testAndCancel(event, event.getCurrentItem().getType(), event.getWhoClicked()); + boolean wasCancelled = this.testAndCancel(event, event.getCurrentItem().getType(), event.getWhoClicked()); + if(wasCancelled) Objects.requireNonNull(event.getClickedInventory()).remove(event.getCurrentItem()); } - private void testAndCancel(Cancellable event, Material material, Entity entity) { - if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return; + private boolean testAndCancel(Cancellable event, Material material, Entity entity) { + if(!this.getAppliance().forbiddenMaterials.isForbidden(material)) return false; event.setCancelled(true); if(entity instanceof Player p) { @@ -41,5 +43,7 @@ class ForbiddenMaterialListener extends ApplianceListener { .append(Component.text(" ist ein verbotener Gegenstand!")) ); } + + return true; } } From 8093a4a6442574296f24bcd5556c92bb2bf88893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 30 May 2025 12:44:48 +0200 Subject: [PATCH 29/72] various changes for team management --- .../appliances/internal/debug/Debug.java | 4 +- .../debug/command/AppliancesCommand.java | 6 +- .../debug/command/UserInfoCommand.java | 2 +- .../internal/titleClear/TitleClear.java | 2 +- .../titleClear/TitleClearListener.java | 2 +- .../metaGameplay/chatMention/ChatMention.java | 4 +- .../chatMention/ChatMentionListener.java | 6 +- .../chatMessages/ChatMessages.java | 2 +- .../chatMessages/ChatMessagesListener.java | 4 +- .../metaGameplay/displayName/DisplayName.java | 8 +- .../DisplayNameUpdateListener.java | 2 +- .../appliances/metaGameplay/help/Help.java | 4 +- .../help/command/DiscordCommand.java | 2 +- .../help/command/HelpCommand.java | 2 +- .../help/command/SpawnCommand.java | 2 +- .../help/command/TeamspeakCommand.java | 2 +- .../appliances/metaGameplay/infoBars/Bar.java | 2 +- .../metaGameplay/infoBars/InfoBarCommand.java | 2 +- .../metaGameplay/infoBars/InfoBars.java | 6 +- .../infoBars/ShowPreviousBarsListener.java | 2 +- .../metaGameplay/infoBars/bars/MsptBar.java | 4 +- .../infoBars/bars/PlayerCounterBar.java | 4 +- .../metaGameplay/infoBars/bars/TpsBar.java | 2 +- .../privateMessage/PrivateMessage.java | 6 +- .../commands/PrivateMessageCommand.java | 2 +- .../commands/PrivateReplyCommand.java | 2 +- .../metaGameplay/report/Report.java | 10 +- .../metaGameplay/report/ReportCommand.java | 4 +- .../metaGameplay/report/ReportsCommand.java | 6 +- .../metaGameplay/settings/Settings.java | 6 +- .../settings/SettingsCommand.java | 2 +- .../settings/datatypes/Setting.java | 4 +- .../OpenSettingsShortcutListener.java | 2 +- .../listeners/SettingsInventoryListener.java | 2 +- .../metaGameplay/tablist/Tablist.java | 12 +- .../metaGameplay/tablist/TablistListener.java | 2 +- .../appliances/tooling/acInform/AcInform.java | 4 +- .../tooling/acInform/AcInformCommand.java | 2 +- .../tooling/adminChat/AdminChat.java | 4 +- .../tooling/adminChat/AdminChatCommand.java | 2 +- .../appliances/tooling/chatMute/ChatMute.java | 4 +- .../tooling/chatMute/ChatMuteListener.java | 4 +- .../tooling/chatMute/MuteCommand.java | 2 +- .../tooling/endPrevent/EndPrevent.java | 6 +- .../tooling/endPrevent/EndPreventCommand.java | 2 +- .../endPrevent/EndPreventListener.java | 2 +- .../common/appliances/tooling/kick/Kick.java | 6 +- .../appliances/tooling/kick/KickCommand.java | 2 +- .../tooling/maintenance/Maintenance.java | 6 +- .../maintenance/MaintenanceCommand.java | 2 +- .../PreventMaintenanceJoinListener.java | 4 +- .../appliances/tooling/panicBan/PanicBan.java | 6 +- .../tooling/panicBan/PanicBanCommand.java | 2 +- .../panicBan/PanicBanJoinListener.java | 2 +- .../tooling/playerlimit/PlayerLimit.java | 6 +- .../playerlimit/PlayerLimiterListener.java | 4 +- .../playerlimit/SetPlayerLimitCommand.java | 2 +- .../tooling/restart/CancelRestartCommand.java | 2 +- .../appliances/tooling/restart/Restart.java | 8 +- .../restart/ScheduleRestartCommand.java | 2 +- .../spawnpoint/SetSpawnpointCommand.java | 2 +- .../spawnpoint/SpawnAtSpawnpointListener.java | 2 +- .../tooling/spawnpoint/Spawnpoint.java | 4 +- .../craftattack/{ => spawn}/core/Main.java | 13 +- .../core/api/client/HttpRepository.java | 6 +- .../core/api/client/Repository.java | 4 +- .../core/api/client/RepositoryLoader.java | 12 +- .../{ => spawn}/core/api/client/ReqResp.java | 2 +- .../client/repositories/EventRepository.java | 8 +- .../repositories/FeedbackRepository.java | 8 +- .../client/repositories/ReportRepository.java | 8 +- .../repositories/WhitelistRepository.java | 8 +- .../core/api/server/HttpServer.java | 6 +- .../{ => spawn}/core/appliance/Appliance.java | 10 +- .../core/appliance/ApplianceCommand.java | 4 +- .../core/appliance/ApplianceListener.java | 2 +- .../appliance/CachedApplianceSupplier.java | 4 +- .../core/appliance/IApplianceSupplier.java | 2 +- .../{ => spawn}/core/config/ConfigUtil.java | 2 +- .../core/config/Configuration.java | 4 +- .../{ => spawn}/core/util/IteratorUtil.java | 2 +- .../{ => spawn}/core/util/NumberUtil.java | 2 +- .../core/util/api/EventApiUtil.java | 4 +- .../{ => spawn}/core/util/api/HttpStatus.java | 2 +- .../core/util/api/WebsiteApiUtil.java | 4 +- .../core/util/entity/DisplayVillager.java | 8 +- .../core/util/entity/PlayerUtils.java | 2 +- .../core/util/inventory/HeadBuilder.java | 2 +- .../core/util/inventory/ItemBuilder.java | 4 +- .../core/util/inventory/PlaceholderItems.java | 2 +- .../DismissInventoryOpenFromHolder.java | 2 +- .../PlayerInteractAtEntityEventListener.java | 2 +- .../core/util/server/Floodgate.java | 2 +- .../core/util/server/PluginMessage.java | 4 +- .../core/util/statistics/NetworkMonitor.java | 4 +- .../core/util/statistics/ServerMonitor.java | 2 +- .../{ => spawn}/core/util/text/ColorUtil.java | 4 +- .../core/util/text/ComponentUtil.java | 6 +- .../{ => spawn}/core/util/text/Countdown.java | 4 +- .../core/util/text/DataSizeConverter.java | 2 +- .../core/util/text/DisconnectInfo.java | 4 +- .../core/util/text/NumberAbbreviation.java | 2 +- .../core/util/text/RainbowComponent.java | 2 +- .../core/util/world/BlockCycle.java | 2 +- .../core/util/world/ChunkUtils.java | 2 +- .../core/util/world/InteractSounds.java | 2 +- core/src/main/resources/plugin.yml | 2 +- .../gameplay/antiSignEdit/AntiSignEdit.java | 2 +- .../antiSignEdit/OnSignEditListener.java | 2 +- .../gameplay/autoShulker/AutoShulker.java | 2 +- .../autoShulker/ItemPickupListener.java | 2 +- .../ApplyPendingAdvancementsListener.java | 2 +- .../CustomAdvancements.java | 4 +- .../CustomAdvancementsListener.java | 2 +- .../gameplay/doubleDoor/DoubleDoor.java | 2 +- .../doubleDoor/OnDoorInteractListener.java | 2 +- .../fleischerchest/Fleischerchest.java | 2 +- .../FleischerchestCraftItemListener.java | 2 +- .../glowingBerries/GlowingBerries.java | 2 +- .../gameplay/glowingBerries/OnBerryEaten.java | 2 +- .../gameplay/hotbarRefill/HotbarRefill.java | 4 +- .../hotbarRefill/HotbarRefillListener.java | 2 +- .../gameplay/knockDoor/KnockDoor.java | 4 +- .../gameplay/knockDoor/KnockDoorListener.java | 2 +- .../gameplay/outlawed/Outlawed.java | 10 +- .../gameplay/outlawed/OutlawedCommand.java | 2 +- .../outlawed/OutlawedReminderListener.java | 2 +- .../OnCraftingTableUseListener.java | 2 +- .../portableCrafting/PortableCrafting.java | 2 +- .../snowballKnockback/SnowballKnockback.java | 2 +- .../SnowballKnockbackListener.java | 2 +- .../metaGameplay/adminMarker/AdminMarker.java | 2 +- .../metaGameplay/afkTag/AfkResetListener.java | 2 +- .../metaGameplay/afkTag/AfkTag.java | 4 +- .../event/ApplyPendingRewardsListener.java | 2 +- .../appliances/metaGameplay/event/Event.java | 28 ++--- .../event/command/EventAdvertiseCommand.java | 2 +- .../event/command/EventCommand.java | 2 +- .../event/command/EventEndSessionCommand.java | 2 +- .../command/EventOpenSessionCommand.java | 2 +- .../command/MoveEventVillagerCommand.java | 2 +- .../metaGameplay/feedback/Feedback.java | 12 +- .../feedback/FeedbackCommand.java | 6 +- .../feedback/RequestFeedbackCommand.java | 4 +- .../metaGameplay/optionLinks/OptionLinks.java | 4 +- .../optionLinks/UpdateLinksListener.java | 2 +- .../packSelect/ChangePackCommand.java | 2 +- .../packSelect/PackConfiguration.java | 6 +- .../PackConfigurationInventory.java | 12 +- .../metaGameplay/packSelect/PackSelect.java | 6 +- .../packSelect/PackSelectSetting.java | 2 +- .../packSelect/ResourcePackInfoFactory.java | 2 +- .../listeners/ClickPackInventoryListener.java | 2 +- .../listeners/ClosePackInventoryListener.java | 2 +- .../listeners/SetPacksOnJoinListener.java | 4 +- .../metaGameplay/playtime/Playtime.java | 6 +- .../playtime/PlaytimeCommand.java | 4 +- .../sleepTag/SleepStateChangeListener.java | 2 +- .../metaGameplay/sleepTag/SleepTag.java | 4 +- .../MoveWorldMuseumVillagerCommand.java | 2 +- .../metaGameplay/worldmuseum/WorldMuseum.java | 14 +-- .../metaGameplay/yearRank/YearRank.java | 6 +- .../yearRank/YearRankCommand.java | 2 +- .../LightningFireControl.java | 2 +- .../LightningFireListener.java | 4 +- .../tooling/projectStart/ProjectStart.java | 18 +-- .../command/ProjectStartCancelCommand.java | 2 +- .../command/ProjectStartCommand.java | 2 +- .../command/ProjectStartResetCommand.java | 2 +- .../listener/NoAdvancementsListener.java | 2 +- .../listener/PlayerInvincibleListener.java | 2 +- .../tooling/whitelist/PlayerJoinListener.java | 4 +- .../tooling/whitelist/Whitelist.java | 16 +-- .../ForbiddenEntityListener.java | 2 +- .../forbiddenItems/ForbiddenItems.java | 2 +- .../ForbiddenMaterialListener.java | 2 +- .../ForbiddenPotionsListener.java | 2 +- .../joinProtection/JoinProtection.java | 13 +- .../JoinProtectionListener.java | 2 +- .../netherPrevent/NetherPrevent.java | 2 +- .../netherPrevent/NetherPreventListener.java | 2 +- .../shrinkingBorder/ShrinkingBorder.java | 8 +- .../ShrinkingBorderCommand.java | 2 +- .../ShrinkingBorderListener.java | 2 +- .../teams/ConnectivityChangeListener.java | 32 +++++ .../appliances/metaGameplay/teams/Teams.java | 112 ++++++++++++++++++ .../metaGameplay/teams/VaroTeam.java | 78 ++++++++++++ .../varoDeath/PlayerDeathListener.java | 24 ++++ .../metaGameplay/varoDeath/VaroDeath.java | 39 ++++++ 189 files changed, 649 insertions(+), 358 deletions(-) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/Main.java (90%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/HttpRepository.java (96%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/Repository.java (86%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/RepositoryLoader.java (82%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/ReqResp.java (51%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/repositories/EventRepository.java (70%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/repositories/FeedbackRepository.java (75%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/repositories/ReportRepository.java (84%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/client/repositories/WhitelistRepository.java (71%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/api/server/HttpServer.java (94%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/appliance/Appliance.java (93%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/appliance/ApplianceCommand.java (97%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/appliance/ApplianceListener.java (87%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/appliance/CachedApplianceSupplier.java (78%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/appliance/IApplianceSupplier.java (62%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/config/ConfigUtil.java (95%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/config/Configuration.java (90%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/IteratorUtil.java (97%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/NumberUtil.java (88%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/api/EventApiUtil.java (84%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/api/HttpStatus.java (90%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/api/WebsiteApiUtil.java (88%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/entity/DisplayVillager.java (92%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/entity/PlayerUtils.java (94%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/inventory/HeadBuilder.java (93%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/inventory/ItemBuilder.java (95%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/inventory/PlaceholderItems.java (87%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/listener/DismissInventoryOpenFromHolder.java (92%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/listener/PlayerInteractAtEntityEventListener.java (93%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/server/Floodgate.java (96%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/server/PluginMessage.java (82%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/statistics/NetworkMonitor.java (96%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/statistics/ServerMonitor.java (82%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/ColorUtil.java (87%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/ComponentUtil.java (97%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/Countdown.java (97%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/DataSizeConverter.java (96%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/DisconnectInfo.java (94%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/NumberAbbreviation.java (89%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/text/RainbowComponent.java (94%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/world/BlockCycle.java (93%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/world/ChunkUtils.java (92%) rename core/src/main/java/eu/mhsl/craftattack/{ => spawn}/core/util/world/InteractSounds.java (94%) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/PlayerDeathListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java index bbf0510..90d1355 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.internal.debug; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.AppliancesCommand; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.UserInfoCommand; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java index 213fcc6..42cbd1b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java @@ -1,9 +1,9 @@ package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java index 8bdf75b..6164c5a 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java index 274fa86..64cd111 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java index f655f4f..b39dfb1 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java index 4290931..964c3d2 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.sound.Sound; import org.bukkit.Bukkit; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java index 86c6ef1..be1fcf5 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java @@ -1,10 +1,10 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import io.papermc.paper.event.player.AsyncChatDecorateEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java index 55c8c62..664a8ff 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java index 5773bc8..6d3f6d1 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; import io.papermc.paper.event.player.AsyncChatEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java index 6cc5ac4..2e9ec2d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java @@ -1,9 +1,9 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.util.server.Floodgate; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.util.server.Floodgate; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java index c4ab190..19e6972 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java index e3969d3..a4d997d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.DiscordCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.HelpCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.SpawnCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java index f54a4c7..3959546 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java index fa6901d..32cc538 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java index e9cc2f0..a29aef4 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java index 6d2bd71..99bb450 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java index 71a46cc..d98ee51 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.util.Ticks; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java index e00bc8b..4c7ca9c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java index 682665e..b4d4fab 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.MsptBar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.PlayerCounterBar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.TpsBar; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java index 5898d4e..401b4ea 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java index c764793..d7e6b87 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; -import eu.mhsl.craftattack.core.util.statistics.ServerMonitor; -import eu.mhsl.craftattack.core.util.text.ColorUtil; +import eu.mhsl.craftattack.spawn.core.util.statistics.ServerMonitor; +import eu.mhsl.craftattack.spawn.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java index 8daf9a1..60743d5 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java @@ -1,9 +1,9 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; import eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit.PlayerLimit; -import eu.mhsl.craftattack.core.util.text.ColorUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java index ea3d71d..f956508 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar; -import eu.mhsl.craftattack.core.util.text.ColorUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ColorUtil; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java index 2e305e5..a571c53 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java index 39766fd..35df21e 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java index 5c5a0d8..18f430c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index 00f560a..bf67c41 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -1,10 +1,10 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.api.client.repositories.ReportRepository; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.api.client.repositories.ReportRepository; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java index d1eee37..55802dd 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java index 14d185e..a3ea21a 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index e069784..593abf8 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.Setting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.SettingsInventoryListener; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java index c68aa7e..db17156 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java index f36af4a..728332d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java index 17c5b91..f73c7fc 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerSwapHandItemsEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java index 776a3c7..d9b5122 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java index 51dfcb3..8bc403d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java @@ -1,13 +1,13 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report.Report; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; -import eu.mhsl.craftattack.core.util.IteratorUtil; -import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; -import eu.mhsl.craftattack.core.util.text.RainbowComponent; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.statistics.NetworkMonitor; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.RainbowComponent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java index 0828c41..174c7ea 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java index 544aa2b..efd5c05 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java index 8892b49..30bfd9b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java index 8cf1d85..c3786ce 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java index 47c205a..dfa9fda 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java index 60f43d0..0ffe686 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java index 76d9f99..0e57ba2 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.core.util.text.DataSizeConverter; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.text.DataSizeConverter; import io.papermc.paper.event.player.AsyncChatEvent; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java index 724099f..f9e3d86 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java index 7d7e188..cda488b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.event.Listener; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java index 8bfe7c6..0787e81 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java index c15140e..1cbb294 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent; import com.destroystokyo.paper.event.player.PlayerTeleportEndGatewayEvent; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java index 6c96b9e..c9b1389 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java index 6eaaf7c..c9edaac 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java index ab1f3c7..e851a4f 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java index e3b9a0e..11a2ce1 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java index b311cea..b50671d 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerLoginEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java index 2d3ba0f..a0602de 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java index 874eb1b..445efbb 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java index 62a3a96..5377fcd 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java index 8a00d55..7c83f59 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java index 7c30fc6..9af9203 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java index 5d81279..75f2403 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java index 37be852..eee622c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java index 4a7ae71..8987eae 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java @@ -1,9 +1,9 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.IteratorUtil; -import eu.mhsl.craftattack.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java index 731ff55..5046bb1 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java index ffea3a5..02df5d3 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java index bef5717..941136c 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java index c5fa827..c619fdf 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.NamespacedKey; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/Main.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/Main.java similarity index 90% rename from core/src/main/java/eu/mhsl/craftattack/core/Main.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/Main.java index c1bc84b..6eaa8ec 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/Main.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/Main.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.core; +package eu.mhsl.craftattack.spawn.core; -import eu.mhsl.craftattack.core.api.client.RepositoryLoader; -import eu.mhsl.craftattack.core.api.server.HttpServer; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.api.client.RepositoryLoader; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; import org.bukkit.plugin.java.JavaPlugin; @@ -16,6 +16,7 @@ import java.util.logging.Level; import java.util.logging.Logger; public final class Main extends JavaPlugin { + public static final String projectPackage = "eu.mhsl.craftattack.spawn"; private static Main instance; private static Logger logger; @@ -41,7 +42,7 @@ public final class Main extends JavaPlugin { List disabledAppliances = Configuration.pluginConfig.getStringList("disabledAppliances"); Main.logger().info("Initializing reflections..."); - this.reflections = new Reflections("eu.mhsl.craftattack.spawn"); + this.reflections = new Reflections(projectPackage); Main.logger().info("Loading Repositories..."); this.repositoryLoader = new RepositoryLoader(); diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java similarity index 96% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index d993aae..8d8b7dd 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.api.client; +package eu.mhsl.craftattack.spawn.core.api.client; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import org.apache.http.client.utils.URIBuilder; import org.jetbrains.annotations.Nullable; @@ -12,7 +12,7 @@ import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.function.Consumer; -@RepositoryLoader.IgnoreRepository +@RepositoryLoader.Abstraction public abstract class HttpRepository extends Repository { private final Consumer baseUriBuilder; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java similarity index 86% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java index 91c02bd..b0eee01 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.core.api.client; +package eu.mhsl.craftattack.spawn.core.api.client; import com.google.gson.Gson; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import org.bukkit.Bukkit; import java.net.URI; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/RepositoryLoader.java similarity index 82% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/RepositoryLoader.java index b6c67c0..f5495db 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/RepositoryLoader.java @@ -1,5 +1,6 @@ -package eu.mhsl.craftattack.core.api.client; +package eu.mhsl.craftattack.spawn.core.api.client; +import eu.mhsl.craftattack.spawn.core.Main; import org.apache.commons.lang3.NotImplementedException; import org.reflections.Reflections; @@ -12,16 +13,19 @@ import java.util.Set; public class RepositoryLoader { private final List repositories; + /** + * Defines a repository as an abstraction and will not be loaded by this RepositoryLoader + */ @Retention(RetentionPolicy.RUNTIME) - public @interface IgnoreRepository { + public @interface Abstraction { } public RepositoryLoader() { - Reflections reflections = new Reflections(this.getClass().getPackageName()); + Reflections reflections = new Reflections(Main.projectPackage); Set> repositories = reflections.getSubTypesOf(Repository.class); this.repositories = repositories.stream() - .filter(repository -> !repository.isAnnotationPresent(IgnoreRepository.class)) + .filter(repository -> !repository.isAnnotationPresent(Abstraction.class)) .map(repository -> { try { return (Repository) repository.getDeclaredConstructor().newInstance(); diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java similarity index 51% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java index d6fadbb..71aa0b3 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.api.client; +package eu.mhsl.craftattack.spawn.core.api.client; public record ReqResp(int status, TData data) { } \ No newline at end of file diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java similarity index 70% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java index 2112307..2c586f2 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.core.api.client.repositories; -import eu.mhsl.craftattack.core.api.client.HttpRepository; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.util.api.EventApiUtil; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.util.api.EventApiUtil; import java.util.UUID; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java similarity index 75% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java index cddedf1..fc9b05c 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.core.api.client.repositories; import com.google.common.reflect.TypeToken; -import eu.mhsl.craftattack.core.api.client.HttpRepository; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; import java.lang.reflect.Type; import java.util.List; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java similarity index 84% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java index 87a3227..ee24487 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.core.api.client.repositories; -import eu.mhsl.craftattack.core.api.client.HttpRepository; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java similarity index 71% rename from core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java index 6ba3be4..bc3e207 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.core.api.client.repositories; -import eu.mhsl.craftattack.core.api.client.HttpRepository; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; import java.util.UUID; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/server/HttpServer.java similarity index 94% rename from core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/server/HttpServer.java index a3ba31a..6c2ba8b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/server/HttpServer.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.api.server; +package eu.mhsl.craftattack.spawn.core.api.server; import com.google.gson.Gson; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.configuration.ConfigurationSection; import spark.Request; import spark.Spark; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/Appliance.java similarity index 93% rename from core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/Appliance.java index cc6da11..05eb73a 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/Appliance.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.core.appliance; +package eu.mhsl.craftattack.spawn.core.appliance; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.api.client.Repository; -import eu.mhsl.craftattack.core.api.server.HttpServer; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.Repository; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.Bukkit; import org.bukkit.command.PluginCommand; import org.bukkit.configuration.ConfigurationSection; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceCommand.java similarity index 97% rename from core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceCommand.java index 1bfc16d..0de6055 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceCommand.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.appliance; +package eu.mhsl.craftattack.spawn.core.appliance; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceListener.java similarity index 87% rename from core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceListener.java index 4478bbb..552fe25 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/ApplianceListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.appliance; +package eu.mhsl.craftattack.spawn.core.appliance; import org.bukkit.event.Listener; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/CachedApplianceSupplier.java similarity index 78% rename from core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/CachedApplianceSupplier.java index da5601e..08f1801 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/CachedApplianceSupplier.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.appliance; +package eu.mhsl.craftattack.spawn.core.appliance; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; public class CachedApplianceSupplier implements IApplianceSupplier { private final T appliance; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/IApplianceSupplier.java similarity index 62% rename from core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/IApplianceSupplier.java index add0939..bd390a3 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/appliance/IApplianceSupplier.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.appliance; +package eu.mhsl.craftattack.spawn.core.appliance; public interface IApplianceSupplier { T getAppliance(); diff --git a/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/config/ConfigUtil.java similarity index 95% rename from core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/config/ConfigUtil.java index 8eee7b1..014795c 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/config/ConfigUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.config; +package eu.mhsl.craftattack.spawn.core.config; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/config/Configuration.java similarity index 90% rename from core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/config/Configuration.java index 169384d..dabd53b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/config/Configuration.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.config; +package eu.mhsl.craftattack.spawn.core.config; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/IteratorUtil.java similarity index 97% rename from core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/IteratorUtil.java index f582d7e..336724c 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/IteratorUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util; +package eu.mhsl.craftattack.spawn.core.util; import org.bukkit.Bukkit; import org.bukkit.GameRule; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/NumberUtil.java similarity index 88% rename from core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/NumberUtil.java index 45898b9..9e8cd8d 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/NumberUtil.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util; +package eu.mhsl.craftattack.spawn.core.util; public class NumberUtil { public static double map(double oldValue, double oldMin, double oldMax, double newMin, double newMax) { diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java similarity index 84% rename from core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java index af069e8..ffd8932 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.api; +package eu.mhsl.craftattack.spawn.core.util.api; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.configuration.ConfigurationSection; import java.net.URI; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java similarity index 90% rename from core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java index cb61e32..7c0ae69 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.api; +package eu.mhsl.craftattack.spawn.core.util.api; public class HttpStatus { public static final int OK = 200; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java similarity index 88% rename from core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java index 927d0a0..a242549 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.api; +package eu.mhsl.craftattack.spawn.core.util.api; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.apache.http.client.utils.URIBuilder; import org.bukkit.configuration.ConfigurationSection; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/DisplayVillager.java similarity index 92% rename from core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/DisplayVillager.java index ef4aa3a..8970b21 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/DisplayVillager.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.util.entity; +package eu.mhsl.craftattack.spawn.core.util.entity; -import eu.mhsl.craftattack.core.config.ConfigUtil; -import eu.mhsl.craftattack.core.config.Configuration; -import eu.mhsl.craftattack.core.util.world.ChunkUtils; +import eu.mhsl.craftattack.spawn.core.config.ConfigUtil; +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.util.world.ChunkUtils; import org.bukkit.Location; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.EntityType; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/PlayerUtils.java similarity index 94% rename from core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/PlayerUtils.java index 1d14bcf..41c5914 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/entity/PlayerUtils.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.entity; +package eu.mhsl.craftattack.spawn.core.util.entity; import org.bukkit.Material; import org.bukkit.Statistic; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/HeadBuilder.java similarity index 93% rename from core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/HeadBuilder.java index 46fe7e7..b0e030e 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/HeadBuilder.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.inventory; +package eu.mhsl.craftattack.spawn.core.util.inventory; import com.destroystokyo.paper.profile.PlayerProfile; import com.destroystokyo.paper.profile.ProfileProperty; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/ItemBuilder.java similarity index 95% rename from core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/ItemBuilder.java index c761632..4349f0a 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/ItemBuilder.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.inventory; +package eu.mhsl.craftattack.spawn.core.util.inventory; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/PlaceholderItems.java similarity index 87% rename from core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/PlaceholderItems.java index 32e0a2d..2373fbe 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/inventory/PlaceholderItems.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.inventory; +package eu.mhsl.craftattack.spawn.core.util.inventory; import net.kyori.adventure.text.Component; import org.bukkit.Material; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/DismissInventoryOpenFromHolder.java similarity index 92% rename from core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/DismissInventoryOpenFromHolder.java index df9b66c..7c0c136 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/DismissInventoryOpenFromHolder.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.listener; +package eu.mhsl.craftattack.spawn.core.util.listener; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/PlayerInteractAtEntityEventListener.java similarity index 93% rename from core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/PlayerInteractAtEntityEventListener.java index 56361ec..c8ff46b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/listener/PlayerInteractAtEntityEventListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.listener; +package eu.mhsl.craftattack.spawn.core.util.listener; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java similarity index 96% rename from core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java index 53c5795..b71cc09 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.server; +package eu.mhsl.craftattack.spawn.core.util.server; import org.bukkit.entity.Player; import org.geysermc.cumulus.form.SimpleForm; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/PluginMessage.java similarity index 82% rename from core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/PluginMessage.java index 54ce0a9..333a751 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/PluginMessage.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.core.util.server; +package eu.mhsl.craftattack.spawn.core.util.server; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import org.bukkit.entity.Player; public class PluginMessage { diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/NetworkMonitor.java similarity index 96% rename from core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/NetworkMonitor.java index 250db58..55a625d 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/NetworkMonitor.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.statistics; +package eu.mhsl.craftattack.spawn.core.util.statistics; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.scheduler.BukkitTask; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/ServerMonitor.java similarity index 82% rename from core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/ServerMonitor.java index a2124b8..9783095 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/statistics/ServerMonitor.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.statistics; +package eu.mhsl.craftattack.spawn.core.util.statistics; import org.bukkit.Bukkit; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ColorUtil.java similarity index 87% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ColorUtil.java index ccec20f..2ee0186 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ColorUtil.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; -import eu.mhsl.craftattack.core.util.NumberUtil; +import eu.mhsl.craftattack.spawn.core.util.NumberUtil; import net.kyori.adventure.text.format.TextColor; import java.awt.*; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ComponentUtil.java similarity index 97% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ComponentUtil.java index 3f75262..6be7844 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/ComponentUtil.java @@ -1,7 +1,7 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; -import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor; -import eu.mhsl.craftattack.core.util.statistics.ServerMonitor; +import eu.mhsl.craftattack.spawn.core.util.statistics.NetworkMonitor; +import eu.mhsl.craftattack.spawn.core.util.statistics.ServerMonitor; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java similarity index 97% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java index 700bc9c..bb5c7b0 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DataSizeConverter.java similarity index 96% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DataSizeConverter.java index 5b55814..9399b2f 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DataSizeConverter.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; public class DataSizeConverter { public static String convertBytesPerSecond(long bytes) { diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DisconnectInfo.java similarity index 94% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DisconnectInfo.java index 95be233..bb8212e 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/DisconnectInfo.java @@ -1,6 +1,6 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/NumberAbbreviation.java similarity index 89% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/NumberAbbreviation.java index c84b68a..e863382 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/NumberAbbreviation.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; public class NumberAbbreviation { public static > String abbreviateNumber(T number) { diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/RainbowComponent.java similarity index 94% rename from core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/RainbowComponent.java index 34a4f5d..9284671 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/RainbowComponent.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.text; +package eu.mhsl.craftattack.spawn.core.util.text; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/BlockCycle.java similarity index 93% rename from core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/BlockCycle.java index c96b758..4c05251 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/BlockCycle.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.world; +package eu.mhsl.craftattack.spawn.core.util.world; import org.bukkit.Location; import org.bukkit.Material; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/ChunkUtils.java similarity index 92% rename from core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/ChunkUtils.java index 0ac5f7b..66fdc60 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/ChunkUtils.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.world; +package eu.mhsl.craftattack.spawn.core.util.world; import org.bukkit.Chunk; import org.bukkit.Location; diff --git a/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java similarity index 94% rename from core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java index 44b7057..eda553e 100644 --- a/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.core.util.world; +package eu.mhsl.craftattack.spawn.core.util.world; import net.kyori.adventure.key.Key; import net.kyori.adventure.sound.Sound; diff --git a/core/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml index ce018ff..40e86e9 100644 --- a/core/src/main/resources/plugin.yml +++ b/core/src/main/resources/plugin.yml @@ -2,7 +2,7 @@ name: spawn description: modular base-plugin for mhsl server projects version: '0' api-version: '1.21' -main: eu.mhsl.craftattack.core.Main +main: eu.mhsl.craftattack.spawn.core.Main load: POSTWORLD prefix: mhsl-spawn diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java index 715d32b..7a45797 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/AntiSignEdit.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.antiSignEdit; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import net.kyori.adventure.text.Component; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java index 274599c..c20bf51 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/antiSignEdit/OnSignEditListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.antiSignEdit; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import io.papermc.paper.event.player.PlayerOpenSignEvent; import org.bukkit.block.sign.SignSide; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java index a0b9083..fe5d956 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/AutoShulker.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.autoShulker; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java index 399fc45..d6ead8d 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/autoShulker/ItemPickupListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.autoShulker; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.entity.Player; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java index 3a5370a..f066334 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java index 1353f09..bd90d30 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancements.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import org.bukkit.advancement.Advancement; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java index fc2352b..8fe3342 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java index a157714..e291abf 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/DoubleDoor.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.doubleDoor; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java index de8a894..90ecf5f 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/doubleDoor/OnDoorInteractListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.doubleDoor; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Material; import org.bukkit.block.Block; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java index 14fa42d..8eed90b 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/Fleischerchest.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.fleischerchest; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; import org.bukkit.event.Listener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java index 33a2553..eb8c703 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.fleischerchest; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.inventory.PrepareItemCraftEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java index 1aa9ed5..27b917a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.glowingBerries; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.util.Ticks; import org.bukkit.entity.Player; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java index acd2b09..00f9ddd 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/OnBerryEaten.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.glowingBerries; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerItemConsumeEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java index 5af8180..74ff5f5 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.hotbarRefill; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java index b92cd79..0f8a532 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.hotbarRefill; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java index 6feacfa..4c7e65b 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoor.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.knockDoor; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting; import org.bukkit.*; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java index 6be30d0..e1d3cdf 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/knockDoor/KnockDoorListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.knockDoor; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.GameMode; import org.bukkit.block.Block; import org.bukkit.block.data.type.Door; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java index c027fcd..682132e 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/Outlawed.java @@ -1,12 +1,12 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist.Whitelist; -import eu.mhsl.craftattack.core.config.Configuration; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java index d6d3317..6ee8c0c 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.command.Command; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java index 5769bc7..9f71a13 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/outlawed/OutlawedReminderListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java index 8dbff58..989933d 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.event.EventHandler; import org.bukkit.event.block.Action; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java index d56baec..4340dd0 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/portableCrafting/PortableCrafting.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.portableCrafting; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java index 2cf43d3..0f7710a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockback.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.snowballKnockback; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.event.Listener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java index a2b8d37..3a33a37 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.snowballKnockback; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java index b2ae54d..32698d9 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.format.TextColor; import org.bukkit.Color; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java index 7133fc0..4c33983 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkResetListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import io.papermc.paper.event.player.AsyncChatEvent; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerInteractEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java index a63f4b3..d6bf553 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/afkTag/AfkTag.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.afkTag; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java index 35a6cd3..05ac3c0 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/ApplyPendingRewardsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java index 1f92f22..1837895 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java @@ -1,21 +1,21 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.api.client.repositories.EventRepository; -import eu.mhsl.craftattack.core.api.server.HttpServer; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.api.client.repositories.EventRepository; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; -import eu.mhsl.craftattack.core.util.IteratorUtil; -import eu.mhsl.craftattack.core.util.api.HttpStatus; -import eu.mhsl.craftattack.core.util.entity.DisplayVillager; -import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder; -import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener; -import eu.mhsl.craftattack.core.util.server.PluginMessage; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; -import eu.mhsl.craftattack.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.util.entity.DisplayVillager; +import eu.mhsl.craftattack.spawn.core.util.listener.DismissInventoryOpenFromHolder; +import eu.mhsl.craftattack.spawn.core.util.listener.PlayerInteractAtEntityEventListener; +import eu.mhsl.craftattack.spawn.core.util.server.PluginMessage; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command.*; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java index 68283da..78560d9 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventAdvertiseCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java index 3073230..2cdbb6c 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java index 23ad9f3..11e300e 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventEndSessionCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java index bd66098..e633640 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/EventOpenSessionCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java index 697323f..ed57da8 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event.Event; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java index 7407e0a..dd52b62 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java @@ -1,11 +1,11 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.api.client.repositories.FeedbackRepository; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.api.client.repositories.FeedbackRepository; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java index 9c5933b..a95f0b0 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/FeedbackCommand.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java index 3881f34..bc5df1c 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/RequestFeedbackCommand.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java index 1cb64f8..7a867be 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/OptionLinks.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.optionLinks; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java index 0e49080..b072f47 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/optionLinks/UpdateLinksListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.optionLinks; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java index a46a884..768ff35 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ChangePackCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java index 711901c..c48642d 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfiguration.java @@ -2,9 +2,9 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier; -import eu.mhsl.craftattack.core.util.inventory.HeadBuilder; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.appliance.CachedApplianceSupplier; +import eu.mhsl.craftattack.spawn.core.util.inventory.HeadBuilder; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; import net.kyori.adventure.resource.ResourcePackInfo; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java index 75f0560..c3a4c5a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackConfigurationInventory.java @@ -1,11 +1,11 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier; -import eu.mhsl.craftattack.core.util.IteratorUtil; -import eu.mhsl.craftattack.core.util.inventory.ItemBuilder; -import eu.mhsl.craftattack.core.util.inventory.PlaceholderItems; -import eu.mhsl.craftattack.core.util.world.InteractSounds; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.CachedApplianceSupplier; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.inventory.ItemBuilder; +import eu.mhsl.craftattack.spawn.core.util.inventory.PlaceholderItems; +import eu.mhsl.craftattack.spawn.core.util.world.InteractSounds; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java index 10474b3..9547ad9 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelect.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java index 1cdde2f..21dd943 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/PackSelectSetting.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.ActionSetting; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java index 799592e..89a6fb2 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect; -import eu.mhsl.craftattack.core.Main; +import eu.mhsl.craftattack.spawn.core.Main; import net.kyori.adventure.resource.ResourcePackInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java index 278c077..d7436a4 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java index 7f6b2d6..3c58249 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java index 3848a01..1c5a840 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.listeners; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.packSelect.PackSelect; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java index 2f7979e..a10e363 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/Playtime.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.playtime; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.text.DataSizeConverter; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.DataSizeConverter; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java index 11af3e7..bf46c02 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/playtime/PlaytimeCommand.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.playtime; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java index 5115fec..ba10173 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerBedEnterEvent; import org.bukkit.event.player.PlayerBedLeaveEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java index 8ec9958..198fbb7 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/sleepTag/SleepTag.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.sleepTag; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.HoverEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java index fea0dc7..afcb39b 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.worldmuseum; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java index a99d066..1c52b3b 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/worldmuseum/WorldMuseum.java @@ -1,12 +1,12 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.worldmuseum; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.util.entity.DisplayVillager; -import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder; -import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener; -import eu.mhsl.craftattack.core.util.server.PluginMessage; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.entity.DisplayVillager; +import eu.mhsl.craftattack.spawn.core.util.listener.DismissInventoryOpenFromHolder; +import eu.mhsl.craftattack.spawn.core.util.listener.PlayerInteractAtEntityEventListener; +import eu.mhsl.craftattack.spawn.core.util.server.PluginMessage; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Location; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java index 2b06997..1fbd937 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRank.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java index ce2c193..d3a5daf 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/yearRank/YearRankCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.yearRank; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java index 902a546..998e5f1 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireControl.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.lightningFireControl; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.block.Block; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java index dd343f3..e95f299 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/lightningFireControl/LightningFireListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.lightningFireControl; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java index 6f2459c..e75d1ce 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java @@ -1,8 +1,8 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command.ProjectStartCancelCommand; @@ -10,12 +10,12 @@ import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.com import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command.ProjectStartResetCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener.NoAdvancementsListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener.PlayerInvincibleListener; -import eu.mhsl.craftattack.core.config.Configuration; -import eu.mhsl.craftattack.core.util.IteratorUtil; -import eu.mhsl.craftattack.core.util.entity.PlayerUtils; -import eu.mhsl.craftattack.core.util.text.ComponentUtil; -import eu.mhsl.craftattack.core.util.text.Countdown; -import eu.mhsl.craftattack.core.util.world.BlockCycle; +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.entity.PlayerUtils; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.core.util.world.BlockCycle; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java index e0fd19c..6b5c42a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java index 3eac57c..d98dc6a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java index a2c59de..c297e5f 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/command/ProjectStartResetCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.command; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java index 3de9621..f7b3dc5 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/NoAdvancementsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import org.bukkit.advancement.Advancement; import org.bukkit.advancement.AdvancementProgress; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java index c379898..e9bb5e6 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.listener; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.projectStart.ProjectStart; import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; import org.bukkit.entity.Player; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java index 53b1057..ad9f8fb 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/PlayerJoinListener.java @@ -1,7 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerLoginEvent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java index 205bfe3..56092b5 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java @@ -1,14 +1,14 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.api.client.ReqResp; -import eu.mhsl.craftattack.core.api.client.repositories.WhitelistRepository; -import eu.mhsl.craftattack.core.api.server.HttpServer; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.core.api.client.repositories.WhitelistRepository; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.util.server.Floodgate; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; -import eu.mhsl.craftattack.core.util.api.HttpStatus; -import eu.mhsl.craftattack.core.util.server.Floodgate; -import eu.mhsl.craftattack.core.util.text.DisconnectInfo; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java index 09d7375..07665c8 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenEntityListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntitySpawnEvent; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java index 41203ef..97bc71e 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenItems.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.Villager; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java index b6b6a6f..f24f15f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenMaterialListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Entity; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java index 9b2c265..e11a17c 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/forbiddenItems/ForbiddenPotionsListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.forbiddenItems; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index 0e608a7..e395176 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -1,7 +1,8 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; @@ -17,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class JoinProtection extends Appliance { - private static final int resistanceDuration = 10; + public static final int resistanceDuration = 10; static final class Options { public boolean wasOnGround = false; @@ -43,11 +44,11 @@ public class JoinProtection extends Appliance { } public void cancelEvent(Player player, Cancellable event) { - if(!this.protectedPlayers.containsKey(player.getUniqueId())) return; + var teamCountdown = Main.instance().getAppliance(Teams.class).getTeamJoinCountdown(player); + if(teamCountdown.isFree(resistanceDuration)) return; event.setCancelled(true); - Options option = this.protectedPlayers.get(player.getUniqueId()); - int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - option.joinTime) / 1000) - resistanceDuration); + int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - teamCountdown.timestampSince()) / 1000) - resistanceDuration); player.sendActionBar( Component.text( String.format("Du bist in %d Sekunden angreifbar", secondsLeft), diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java index 301b84a..12ba92b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtectionListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java index 1bd29fb..6bac585 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPrevent.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.netherPrevent; -import eu.mhsl.craftattack.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java index c73c14c..6963610 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/netherPrevent/NetherPreventListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.netherPrevent; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; import org.bukkit.event.world.PortalCreateEvent; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java index 33009a0..b9c0525 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java @@ -1,9 +1,9 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; -import eu.mhsl.craftattack.core.Main; -import eu.mhsl.craftattack.core.appliance.Appliance; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import org.bukkit.Bukkit; import org.bukkit.World; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java index 6c91013..c0cca51 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderCommand.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; -import eu.mhsl.craftattack.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.jetbrains.annotations.NotNull; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index 7a382cb..c5a5580 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -1,6 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder; -import eu.mhsl.craftattack.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.TextColor; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java new file mode 100644 index 0000000..44d59a2 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -0,0 +1,32 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.AsyncPlayerPreLoginEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; + +class ConnectivityChangeListener extends ApplianceListener { + @EventHandler + public void onLogin(AsyncPlayerPreLoginEvent event) { + boolean result = this.getAppliance().canLogin(event.getUniqueId()); + event.kickMessage(new DisconnectInfo( + "Kein Teilnehmer", + "Du bist nicht als Teilnehmer registriert oder bist ausgeschieden!", + "Sollte dies ein Fehler sein, kontaktiere bitte einen Admin.", + event.getUniqueId() + ).getComponent()); + if(!result) event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + } + + @EventHandler + public void onJoin(PlayerJoinEvent event) { + this.getAppliance().enforceTeamJoin(event.getPlayer()); + } + + @EventHandler + public void onLeave(PlayerQuitEvent event) { + this.getAppliance().enforceTeamLeave(event.getPlayer()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java new file mode 100644 index 0000000..88c5d6e --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -0,0 +1,112 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextColor; +import net.kyori.adventure.util.Ticks; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.*; + +public class Teams extends Appliance implements DisplayName.Prefixed, DisplayName.Colored { + private Set teams = new HashSet<>() {{ + this.add(new VaroTeam( + new HashSet<>() {{ + this.add(new VaroTeam.Member(UUID.fromString("3a0a699c-7f0c-319b-839c-ccc8cac8ae63"), false)); + this.add(new VaroTeam.Member(UUID.fromString("959ed433-14ea-38fe-918b-75b7d09466af"), true)); + }}, + "Die Admins", + "#0E0E0E" + )); + }}; + + public void refreshTeamList() { + + } + + public boolean canLogin(UUID playerId) { + return this.teams.stream() + .anyMatch(varoTeam -> varoTeam.hasMember(playerId) && !Objects.requireNonNull(varoTeam.getMemberById(playerId)).isDead); + } + + VaroTeam getTeamFromPlayer(UUID playerId) { + return this.teams.stream() + .filter(varoTeam -> varoTeam.hasMember(playerId)) + .findFirst() + .orElseThrow(); + } + + public void enforceTeamJoin(Player joinedPlayer) { + this.getTeamFromPlayer(joinedPlayer.getUniqueId()).joinCountdown = new VaroTeam.JoinCountdown(); + + DisconnectInfo disconnectInfo = new DisconnectInfo( + "Teampartner nicht beigetreten", + "Deine Verbindung wurde getrennt, da dein Teampartner keine Verbindung zum Server hergestellt hat!", + "Bitte sorge dafür, dass alle anderen Teammitglieder eine einwandfreie Internetverbindung haben und melde dich im Zweifel bei einem Admin!", + joinedPlayer.getUniqueId() + ); + + VaroTeam team = this.getTeamFromPlayer(joinedPlayer.getUniqueId()); + Bukkit.getScheduler().scheduleSyncDelayedTask( + Main.instance(), + () -> { + team.members.stream() + .filter(member -> !member.isDead) + .filter(member -> { + Player p = Bukkit.getPlayer(member.player.getUniqueId()); + return p == null || !p.isOnline(); + }) + .findAny() + .ifPresent(member -> team.kickTeam(disconnectInfo)); + }, + Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) + ); + } + + public void enforceTeamLeave(Player leftPlayer) { + DisconnectInfo disconnectInfo = new DisconnectInfo( + "Dein Teampartner hat den Server vorzeitig verlassen", + "Dein Team erhält daher einen Strike!", + "Bitte bleibt stets die vollen 30 Minuten auf dem Server!", + leftPlayer.getUniqueId() + ); + VaroTeam team = this.getTeamFromPlayer(leftPlayer.getUniqueId()); + Bukkit.getScheduler().scheduleSyncDelayedTask( + Main.instance(), + () -> team.kickTeam(disconnectInfo), + Ticks.TICKS_PER_SECOND + ); + } + + public VaroTeam.JoinCountdown getTeamJoinCountdown(Player player) { + return this.getTeamFromPlayer(player.getUniqueId()).joinCountdown; + } + + @Override + public @Nullable TextColor getNameColor(Player player) { + return NamedTextColor.WHITE ; + } + + @Override + public @Nullable Component getNamePrefix(Player player) { + VaroTeam team = this.getTeamFromPlayer(player.getUniqueId()); + return Component.text( + String.format("[%s]", team.name), + TextColor.fromCSSHexString(team.color) + ); + } + + @Override + protected @NotNull List listeners() { + return List.of(new ConnectivityChangeListener()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java new file mode 100644 index 0000000..6891235 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -0,0 +1,78 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; + +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; +import java.util.Set; +import java.util.UUID; + +class VaroTeam { + public static class Member { + public final OfflinePlayer player; + public boolean isDead; + + public Member(UUID playerId, boolean isDead) { + this.player = Bukkit.getOfflinePlayer(playerId); + this.isDead = isDead; + } + } + + public record JoinCountdown(long timestampSince) { + public JoinCountdown() { + this(System.currentTimeMillis()); + } + + public boolean isFree(int countdownSeconds) { + return this.timestampSince < System.currentTimeMillis() - (countdownSeconds * 1000); + } + } + + public final Set members; + public final UUID teamUuid; + public final String name; + public final String color; + + public JoinCountdown joinCountdown; + + public VaroTeam(Set members, String name, String color) { + this.teamUuid = UUID.randomUUID(); + this.members = members; + this.name = name; + this.color = color; + } + + public boolean isTeamDead() { + return this.members.stream().allMatch(member -> member.isDead); + } + + public boolean hasMember(UUID uuid) { + return this.members.stream() + .anyMatch(member -> member.player.getUniqueId().equals(uuid)); + } + + public @Nullable Member getMemberById(UUID uuid) { + return this.members.stream() + .filter(member -> member.player.getUniqueId().equals(uuid)) + .findFirst() + .orElse(null); + } + + public void kickTeam() { + this.kickTeam(new DisconnectInfo( + "Unbekannter Fehler", + "Verbindung wurde aufgrund eines unbekannten Grundes getrennt", + "Falls du denkst, dass dies ein Fehler ist, melde dich bei einem Admin!", + this.teamUuid + )); + } + + public void kickTeam(DisconnectInfo disconnectInfo) { + this.members.stream() + .map(member -> Bukkit.getPlayer(member.player.getUniqueId())) + .filter(Objects::nonNull) + .forEach(player -> player.kick(disconnectInfo.getComponent())); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/PlayerDeathListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/PlayerDeathListener.java new file mode 100644 index 0000000..f08a6f7 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/PlayerDeathListener.java @@ -0,0 +1,24 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.varoDeath; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; + +import net.kyori.adventure.sound.Sound; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.PlayerDeathEvent; + +class PlayerDeathListener extends ApplianceListener { + @EventHandler + public void onDeath(PlayerDeathEvent event) { + event.setKeepInventory(false); + this.getAppliance().registerPlayerDeath(event.getPlayer(), event.deathMessage()); + + Sound sound = Sound.sound(builder -> { + builder.pitch(1f); + builder.volume(1f); + builder.source(Sound.Source.MASTER); + builder.type(org.bukkit.Sound.ENTITY_LIGHTNING_BOLT_THUNDER); + }); + IteratorUtil.onlinePlayers(player -> player.playSound(sound)); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java new file mode 100644 index 0000000..7dfb75a --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java @@ -0,0 +1,39 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.varoDeath; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.Objects; + +public class VaroDeath extends Appliance { + public void registerPlayerDeath(Player player, @Nullable Component component) { + String deathMessage = PlainTextComponentSerializer.plainText().serialize(Objects.requireNonNull(component)); + DisconnectInfo disconnectInfo = new DisconnectInfo( + deathMessage, + "Du bist gestorben, und bist daher aus dem Projekt ausgeschieden!", + "Vielen Dank für deine Teilnahme", + player.getUniqueId() + ); + + //TODO send player death to backend + + disconnectInfo.applyKick(player); + Main.instance().getAppliance(Teams.class).refreshTeamList(); + } + + @Override + protected @NotNull List listeners() { + return List.of( + new PlayerDeathListener() + ); + } +} From bdbb8b5824cd301e8f7b686baa31acff386c147b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 30 May 2025 18:34:49 +0200 Subject: [PATCH 30/72] api header support, team api integration --- common/build.gradle | 1 + .../spawn/common/api/CraftAttackApi.java | 4 +- .../api}/repositories/ReportRepository.java | 6 +-- .../metaGameplay/report/Report.java | 2 +- .../spawn/core/{util => }/api/HttpStatus.java | 2 +- .../spawn/core/api/client/HttpRepository.java | 36 ++++++++++++---- .../spawn/core/api/client/ReqResp.java | 12 ++++++ core/src/main/resources/config.yml | 4 ++ .../spawn/craftattack/api/EventServerApi.java | 4 +- .../api}/repositories/EventRepository.java | 6 +-- .../api}/repositories/FeedbackRepository.java | 7 ++-- .../repositories/WhitelistRepository.java | 6 +-- .../appliances/metaGameplay/event/Event.java | 4 +- .../metaGameplay/feedback/Feedback.java | 4 +- .../tooling/whitelist/Whitelist.java | 4 +- .../craftattack/spawn/varo/api/VaroApi.java | 28 +++++++++++++ .../varo/api/repositories/TeamRepository.java | 36 ++++++++++++++++ .../appliances/metaGameplay/teams/Teams.java | 41 +++++++++---------- 18 files changed, 153 insertions(+), 54 deletions(-) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java => common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java (91%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => common/src/main/java/eu/mhsl/craftattack/spawn/common/api}/repositories/ReportRepository.java (85%) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/{util => }/api/HttpStatus.java (90%) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java (88%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/EventRepository.java (79%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/FeedbackRepository.java (73%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/WhitelistRepository.java (73%) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java diff --git a/common/build.gradle b/common/build.gradle index c38438d..578064a 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -3,4 +3,5 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java similarity index 91% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java index a242549..ce54750 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.common.api; import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.apache.http.client.utils.URIBuilder; @@ -8,7 +8,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Objects; -public class WebsiteApiUtil { +public class CraftAttackApi { private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("api")); public final static String basePath = apiConfig.getString("baseurl"); public final static String apiSecret = apiConfig.getString("secret"); diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java similarity index 85% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java index ee24487..f885df0 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.common.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,7 +11,7 @@ import java.util.UUID; public class ReportRepository extends HttpRepository { public ReportRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record ReportCreationInfo(@NotNull UUID reporter, @Nullable UUID reported, String reason) { diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index bf67c41..3329d70 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.ReportRepository; +import eu.mhsl.craftattack.spawn.common.api.repositories.ReportRepository; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java similarity index 90% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java index 7c0ae69..861b267 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.core.api; public class HttpStatus { public static final int OK = 200; diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index 8d8b7dd..9d3e1d1 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -10,23 +10,29 @@ import java.net.URISyntaxException; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; import java.util.function.Consumer; @RepositoryLoader.Abstraction public abstract class HttpRepository extends Repository { - private final Consumer baseUriBuilder; + public record RequestModifier( + @Nullable Consumer uri, + @Nullable Consumer header + ) {} + + private final List baseRequestModifier; public HttpRepository(URI basePath) { - this(basePath, null); + this(basePath, new RequestModifier(null, null)); } - public HttpRepository(URI basePath, @Nullable Consumer baseUriBuilder) { + public HttpRepository(URI basePath, RequestModifier... baseRequestModifier) { super(basePath); - this.baseUriBuilder = baseUriBuilder == null - ? uriBuilder -> { - } - : baseUriBuilder; + this.baseRequestModifier = baseRequestModifier == null + ? List.of() + : List.of(baseRequestModifier); } protected ReqResp post(String command, TInput data, Class outputType) { @@ -58,7 +64,11 @@ public abstract class HttpRepository extends Repository { private URI getUri(String command, Consumer parameters) { try { URIBuilder builder = new URIBuilder(this.basePath + "/" + command); - this.baseUriBuilder.accept(builder); + this.baseRequestModifier.stream() + .map(requestModifier -> requestModifier.uri) + .filter(Objects::nonNull) + .forEach(modifier -> modifier.accept(builder)); + parameters.accept(builder); return builder.build(); } catch(URISyntaxException e) { @@ -67,14 +77,22 @@ public abstract class HttpRepository extends Repository { } private HttpRequest.Builder getRequestBuilder(URI endpoint) { - return HttpRequest.newBuilder() + HttpRequest.Builder builder = HttpRequest.newBuilder() .uri(endpoint) .header("User-Agent", Main.instance().getServer().getBukkitVersion()) .header("Content-Type", "application/json"); + + this.baseRequestModifier.stream() + .map(requestModifier -> requestModifier.header) + .filter(Objects::nonNull) + .forEach(modifier -> modifier.accept(builder)); + + return builder; } private ReqResp execute(HttpRequest request, Class clazz) { ReqResp rawResponse = this.sendHttp(request); + Main.logger().info(String.format("HTTP-Repository fired %s, response: %s", request, rawResponse)); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java index 71aa0b3..d8f91cb 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java @@ -1,4 +1,16 @@ package eu.mhsl.craftattack.spawn.core.api.client; +import com.google.gson.Gson; +import java.lang.reflect.Type; + public record ReqResp(int status, TData data) { + public ReqResp convertToTypeToken(Type type) { + var gson = new Gson(); + return new ReqResp<>(this.status, gson.fromJson(gson.toJson(this.data), type)); + } + + @SuppressWarnings("unchecked") + public T cast() { + return (T) this; + } } \ No newline at end of file diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index ad100ed..9253978 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -77,3 +77,7 @@ shrinkingBorder: minimumSize: 10 shrinkPerDay: 10 shrinkTime: 03:00 + +varoApi: + endpoint: "https://mhsl.eu/varo/api" + auth: "Basic xxx" \ No newline at end of file diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java similarity index 88% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java index ffd8932..2be4c9b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.craftattack.api; import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.configuration.ConfigurationSection; @@ -7,7 +7,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Objects; -public class EventApiUtil { +public class EventServerApi { private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("event")); public final static String basePath = apiConfig.getString("api"); diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java similarity index 79% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java index 2c586f2..9ddba9f 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.EventApiUtil; +import eu.mhsl.craftattack.spawn.craftattack.api.EventServerApi; import java.util.UUID; public class EventRepository extends HttpRepository { public EventRepository() { - super(EventApiUtil.getBaseUri()); + super(EventServerApi.getBaseUri()); } public record CreatedRoom(UUID uuid) { diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java similarity index 73% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java index fc9b05c..c1c4da5 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import com.google.common.reflect.TypeToken; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import java.lang.reflect.Type; import java.util.List; @@ -12,7 +12,7 @@ import java.util.UUID; public class FeedbackRepository extends HttpRepository { public FeedbackRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record Request(String event, List users) { @@ -22,6 +22,7 @@ public class FeedbackRepository extends HttpRepository { final Type responseType = new TypeToken>() { }.getType(); ReqResp rawData = this.post("feedback", data, Object.class); + // TODO: use convertToTypeToken from ReqResp return new ReqResp<>(rawData.status(), this.gson.fromJson(this.gson.toJson(rawData.data()), responseType)); } } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java similarity index 73% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java index bc3e207..1dd100e 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import java.util.UUID; public class WhitelistRepository extends HttpRepository { public WhitelistRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record UserData( diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java index 1837895..4c37244 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java @@ -2,14 +2,14 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.EventRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.EventRepository; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import eu.mhsl.craftattack.spawn.core.util.entity.DisplayVillager; import eu.mhsl.craftattack.spawn.core.util.listener.DismissInventoryOpenFromHolder; import eu.mhsl.craftattack.spawn.core.util.listener.PlayerInteractAtEntityEventListener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java index dd52b62..b588c96 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java @@ -2,10 +2,10 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.FeedbackRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.FeedbackRepository; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java index 56092b5..ee82c86 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java @@ -2,10 +2,10 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.WhitelistRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.WhitelistRepository; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import eu.mhsl.craftattack.spawn.core.util.server.Floodgate; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java new file mode 100644 index 0000000..7a445db --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java @@ -0,0 +1,28 @@ +package eu.mhsl.craftattack.spawn.varo.api; + +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import org.bukkit.configuration.ConfigurationSection; + +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpRequest; +import java.util.Objects; + +public class VaroApi { + private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("varoApi")); + public final static String basePath = apiConfig.getString("endpoint"); + public final static String apiSecret = apiConfig.getString("auth"); + + public static URI getBaseUri() { + Objects.requireNonNull(basePath); + try { + return new URI(basePath); + } catch(URISyntaxException e) { + throw new RuntimeException(e); + } + } + + public static void authorizationHeader(HttpRequest.Builder builder) { + builder.header("Authorization", apiSecret); + } +} \ No newline at end of file diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java new file mode 100644 index 0000000..b98d8a7 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java @@ -0,0 +1,36 @@ +package eu.mhsl.craftattack.spawn.varo.api.repositories; + +import com.google.common.reflect.TypeToken; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.varo.api.VaroApi; + +import java.util.List; +import java.util.UUID; + +public class TeamRepository extends HttpRepository { + public TeamRepository() { + super(VaroApi.getBaseUri(), new RequestModifier(null, VaroApi::authorizationHeader)); + } + + public record Team( + String name, + String color, + Object lastJoined, + Object strikeWeight, + List users + ) { + public record User( + UUID uuid, + boolean dead + ) {} + } + + public ReqResp> getTeams() { + var resp = this.get("team", Object.class); + System.out.println(resp.toString()); + return resp + .convertToTypeToken(new TypeToken>() {}.getType()) + .cast(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 88c5d6e..7602278 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -18,19 +19,19 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class Teams extends Appliance implements DisplayName.Prefixed, DisplayName.Colored { - private Set teams = new HashSet<>() {{ - this.add(new VaroTeam( - new HashSet<>() {{ - this.add(new VaroTeam.Member(UUID.fromString("3a0a699c-7f0c-319b-839c-ccc8cac8ae63"), false)); - this.add(new VaroTeam.Member(UUID.fromString("959ed433-14ea-38fe-918b-75b7d09466af"), true)); - }}, - "Die Admins", - "#0E0E0E" - )); - }}; + private List teams = List.of(); + + public Teams() { + this.refreshTeamList(); + } public void refreshTeamList() { - + this.teams = this.queryRepository(TeamRepository.class).getTeams().data().stream() + .map(team -> new VaroTeam( + team.users().stream().map(user -> new VaroTeam.Member(user.uuid(), user.dead())).toList(), + team.name(), + team.color() + )).toList(); } public boolean canLogin(UUID playerId) { @@ -58,16 +59,14 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam VaroTeam team = this.getTeamFromPlayer(joinedPlayer.getUniqueId()); Bukkit.getScheduler().scheduleSyncDelayedTask( Main.instance(), - () -> { - team.members.stream() - .filter(member -> !member.isDead) - .filter(member -> { - Player p = Bukkit.getPlayer(member.player.getUniqueId()); - return p == null || !p.isOnline(); - }) - .findAny() - .ifPresent(member -> team.kickTeam(disconnectInfo)); - }, + () -> team.members.stream() + .filter(member -> !member.isDead) + .filter(member -> { + Player p = Bukkit.getPlayer(member.player.getUniqueId()); + return p == null || !p.isOnline(); + }) + .findAny() + .ifPresent(member -> team.kickTeam(disconnectInfo)), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) ); } From 558e6f84f141286b9fc236779a832d288bafd4a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 30 May 2025 18:34:49 +0200 Subject: [PATCH 31/72] api header support, team api integration --- common/build.gradle | 1 + .../spawn/common/api/CraftAttackApi.java | 4 +- .../api}/repositories/ReportRepository.java | 6 +-- .../metaGameplay/report/Report.java | 2 +- .../spawn/core/{util => }/api/HttpStatus.java | 2 +- .../spawn/core/api/client/HttpRepository.java | 36 ++++++++++++---- .../spawn/core/api/client/ReqResp.java | 12 ++++++ core/src/main/resources/config.yml | 4 ++ .../spawn/craftattack/api/EventServerApi.java | 4 +- .../api}/repositories/EventRepository.java | 6 +-- .../api}/repositories/FeedbackRepository.java | 7 ++-- .../repositories/WhitelistRepository.java | 6 +-- .../appliances/metaGameplay/event/Event.java | 4 +- .../metaGameplay/feedback/Feedback.java | 4 +- .../tooling/whitelist/Whitelist.java | 4 +- .../craftattack/spawn/varo/api/VaroApi.java | 28 +++++++++++++ .../varo/api/repositories/TeamRepository.java | 36 ++++++++++++++++ .../appliances/metaGameplay/teams/Teams.java | 41 +++++++++---------- .../metaGameplay/teams/VaroTeam.java | 8 ++-- 19 files changed, 157 insertions(+), 58 deletions(-) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java => common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java (91%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => common/src/main/java/eu/mhsl/craftattack/spawn/common/api}/repositories/ReportRepository.java (85%) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/{util => }/api/HttpStatus.java (90%) rename core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java (88%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/EventRepository.java (79%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/FeedbackRepository.java (73%) rename {core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api}/repositories/WhitelistRepository.java (73%) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java diff --git a/common/build.gradle b/common/build.gradle index c38438d..578064a 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -3,4 +3,5 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java similarity index 91% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java index a242549..ce54750 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/WebsiteApiUtil.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/CraftAttackApi.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.common.api; import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.apache.http.client.utils.URIBuilder; @@ -8,7 +8,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Objects; -public class WebsiteApiUtil { +public class CraftAttackApi { private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("api")); public final static String basePath = apiConfig.getString("baseurl"); public final static String apiSecret = apiConfig.getString("secret"); diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java similarity index 85% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java index ee24487..f885df0 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/ReportRepository.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java @@ -1,8 +1,8 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.common.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,7 +11,7 @@ import java.util.UUID; public class ReportRepository extends HttpRepository { public ReportRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record ReportCreationInfo(@NotNull UUID reporter, @Nullable UUID reported, String reason) { diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index bf67c41..3329d70 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.ReportRepository; +import eu.mhsl.craftattack.spawn.common.api.repositories.ReportRepository; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java similarity index 90% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java rename to core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java index 7c0ae69..861b267 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/HttpStatus.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/HttpStatus.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.core.api; public class HttpStatus { public static final int OK = 200; diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index 8d8b7dd..9d3e1d1 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -10,23 +10,29 @@ import java.net.URISyntaxException; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; +import java.util.List; +import java.util.Objects; import java.util.function.Consumer; @RepositoryLoader.Abstraction public abstract class HttpRepository extends Repository { - private final Consumer baseUriBuilder; + public record RequestModifier( + @Nullable Consumer uri, + @Nullable Consumer header + ) {} + + private final List baseRequestModifier; public HttpRepository(URI basePath) { - this(basePath, null); + this(basePath, new RequestModifier(null, null)); } - public HttpRepository(URI basePath, @Nullable Consumer baseUriBuilder) { + public HttpRepository(URI basePath, RequestModifier... baseRequestModifier) { super(basePath); - this.baseUriBuilder = baseUriBuilder == null - ? uriBuilder -> { - } - : baseUriBuilder; + this.baseRequestModifier = baseRequestModifier == null + ? List.of() + : List.of(baseRequestModifier); } protected ReqResp post(String command, TInput data, Class outputType) { @@ -58,7 +64,11 @@ public abstract class HttpRepository extends Repository { private URI getUri(String command, Consumer parameters) { try { URIBuilder builder = new URIBuilder(this.basePath + "/" + command); - this.baseUriBuilder.accept(builder); + this.baseRequestModifier.stream() + .map(requestModifier -> requestModifier.uri) + .filter(Objects::nonNull) + .forEach(modifier -> modifier.accept(builder)); + parameters.accept(builder); return builder.build(); } catch(URISyntaxException e) { @@ -67,14 +77,22 @@ public abstract class HttpRepository extends Repository { } private HttpRequest.Builder getRequestBuilder(URI endpoint) { - return HttpRequest.newBuilder() + HttpRequest.Builder builder = HttpRequest.newBuilder() .uri(endpoint) .header("User-Agent", Main.instance().getServer().getBukkitVersion()) .header("Content-Type", "application/json"); + + this.baseRequestModifier.stream() + .map(requestModifier -> requestModifier.header) + .filter(Objects::nonNull) + .forEach(modifier -> modifier.accept(builder)); + + return builder; } private ReqResp execute(HttpRequest request, Class clazz) { ReqResp rawResponse = this.sendHttp(request); + Main.logger().info(String.format("HTTP-Repository fired %s, response: %s", request, rawResponse)); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java index 71aa0b3..d8f91cb 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/ReqResp.java @@ -1,4 +1,16 @@ package eu.mhsl.craftattack.spawn.core.api.client; +import com.google.gson.Gson; +import java.lang.reflect.Type; + public record ReqResp(int status, TData data) { + public ReqResp convertToTypeToken(Type type) { + var gson = new Gson(); + return new ReqResp<>(this.status, gson.fromJson(gson.toJson(this.data), type)); + } + + @SuppressWarnings("unchecked") + public T cast() { + return (T) this; + } } \ No newline at end of file diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index ad100ed..9253978 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -77,3 +77,7 @@ shrinkingBorder: minimumSize: 10 shrinkPerDay: 10 shrinkTime: 03:00 + +varoApi: + endpoint: "https://mhsl.eu/varo/api" + auth: "Basic xxx" \ No newline at end of file diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java similarity index 88% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java index ffd8932..2be4c9b 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/api/EventApiUtil.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/EventServerApi.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.core.util.api; +package eu.mhsl.craftattack.spawn.craftattack.api; import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.configuration.ConfigurationSection; @@ -7,7 +7,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Objects; -public class EventApiUtil { +public class EventServerApi { private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("event")); public final static String basePath = apiConfig.getString("api"); diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java similarity index 79% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java index 2c586f2..9ddba9f 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/EventRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/EventRepository.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.EventApiUtil; +import eu.mhsl.craftattack.spawn.craftattack.api.EventServerApi; import java.util.UUID; public class EventRepository extends HttpRepository { public EventRepository() { - super(EventApiUtil.getBaseUri()); + super(EventServerApi.getBaseUri()); } public record CreatedRoom(UUID uuid) { diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java similarity index 73% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java index fc9b05c..c1c4da5 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/FeedbackRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/FeedbackRepository.java @@ -1,9 +1,9 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import com.google.common.reflect.TypeToken; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import java.lang.reflect.Type; import java.util.List; @@ -12,7 +12,7 @@ import java.util.UUID; public class FeedbackRepository extends HttpRepository { public FeedbackRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record Request(String event, List users) { @@ -22,6 +22,7 @@ public class FeedbackRepository extends HttpRepository { final Type responseType = new TypeToken>() { }.getType(); ReqResp rawData = this.post("feedback", data, Object.class); + // TODO: use convertToTypeToken from ReqResp return new ReqResp<>(rawData.status(), this.gson.fromJson(this.gson.toJson(rawData.data()), responseType)); } } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java similarity index 73% rename from core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java index bc3e207..1dd100e 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/repositories/WhitelistRepository.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/api/repositories/WhitelistRepository.java @@ -1,14 +1,14 @@ -package eu.mhsl.craftattack.spawn.core.api.client.repositories; +package eu.mhsl.craftattack.spawn.craftattack.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.util.api.WebsiteApiUtil; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; import java.util.UUID; public class WhitelistRepository extends HttpRepository { public WhitelistRepository() { - super(WebsiteApiUtil.getBaseUri(), WebsiteApiUtil::withAuthorizationSecret); + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); } public record UserData( diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java index 1837895..4c37244 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/event/Event.java @@ -2,14 +2,14 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.event; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.EventRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.EventRepository; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import eu.mhsl.craftattack.spawn.core.util.entity.DisplayVillager; import eu.mhsl.craftattack.spawn.core.util.listener.DismissInventoryOpenFromHolder; import eu.mhsl.craftattack.spawn.core.util.listener.PlayerInteractAtEntityEventListener; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java index dd52b62..b588c96 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/feedback/Feedback.java @@ -2,10 +2,10 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.feedback; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.FeedbackRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.FeedbackRepository; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java index 56092b5..ee82c86 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java @@ -2,10 +2,10 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.core.api.client.repositories.WhitelistRepository; +import eu.mhsl.craftattack.spawn.craftattack.api.repositories.WhitelistRepository; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.core.util.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; import eu.mhsl.craftattack.spawn.core.util.server.Floodgate; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.outlawed.Outlawed; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java new file mode 100644 index 0000000..7a445db --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java @@ -0,0 +1,28 @@ +package eu.mhsl.craftattack.spawn.varo.api; + +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import org.bukkit.configuration.ConfigurationSection; + +import java.net.URI; +import java.net.URISyntaxException; +import java.net.http.HttpRequest; +import java.util.Objects; + +public class VaroApi { + private final static ConfigurationSection apiConfig = Objects.requireNonNull(Configuration.cfg.getConfigurationSection("varoApi")); + public final static String basePath = apiConfig.getString("endpoint"); + public final static String apiSecret = apiConfig.getString("auth"); + + public static URI getBaseUri() { + Objects.requireNonNull(basePath); + try { + return new URI(basePath); + } catch(URISyntaxException e) { + throw new RuntimeException(e); + } + } + + public static void authorizationHeader(HttpRequest.Builder builder) { + builder.header("Authorization", apiSecret); + } +} \ No newline at end of file diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java new file mode 100644 index 0000000..b98d8a7 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java @@ -0,0 +1,36 @@ +package eu.mhsl.craftattack.spawn.varo.api.repositories; + +import com.google.common.reflect.TypeToken; +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.varo.api.VaroApi; + +import java.util.List; +import java.util.UUID; + +public class TeamRepository extends HttpRepository { + public TeamRepository() { + super(VaroApi.getBaseUri(), new RequestModifier(null, VaroApi::authorizationHeader)); + } + + public record Team( + String name, + String color, + Object lastJoined, + Object strikeWeight, + List users + ) { + public record User( + UUID uuid, + boolean dead + ) {} + } + + public ReqResp> getTeams() { + var resp = this.get("team", Object.class); + System.out.println(resp.toString()); + return resp + .convertToTypeToken(new TypeToken>() {}.getType()) + .cast(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 88c5d6e..7602278 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -4,6 +4,7 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -18,19 +19,19 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class Teams extends Appliance implements DisplayName.Prefixed, DisplayName.Colored { - private Set teams = new HashSet<>() {{ - this.add(new VaroTeam( - new HashSet<>() {{ - this.add(new VaroTeam.Member(UUID.fromString("3a0a699c-7f0c-319b-839c-ccc8cac8ae63"), false)); - this.add(new VaroTeam.Member(UUID.fromString("959ed433-14ea-38fe-918b-75b7d09466af"), true)); - }}, - "Die Admins", - "#0E0E0E" - )); - }}; + private List teams = List.of(); + + public Teams() { + this.refreshTeamList(); + } public void refreshTeamList() { - + this.teams = this.queryRepository(TeamRepository.class).getTeams().data().stream() + .map(team -> new VaroTeam( + team.users().stream().map(user -> new VaroTeam.Member(user.uuid(), user.dead())).toList(), + team.name(), + team.color() + )).toList(); } public boolean canLogin(UUID playerId) { @@ -58,16 +59,14 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam VaroTeam team = this.getTeamFromPlayer(joinedPlayer.getUniqueId()); Bukkit.getScheduler().scheduleSyncDelayedTask( Main.instance(), - () -> { - team.members.stream() - .filter(member -> !member.isDead) - .filter(member -> { - Player p = Bukkit.getPlayer(member.player.getUniqueId()); - return p == null || !p.isOnline(); - }) - .findAny() - .ifPresent(member -> team.kickTeam(disconnectInfo)); - }, + () -> team.members.stream() + .filter(member -> !member.isDead) + .filter(member -> { + Player p = Bukkit.getPlayer(member.player.getUniqueId()); + return p == null || !p.isOnline(); + }) + .findAny() + .ifPresent(member -> team.kickTeam(disconnectInfo)), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) ); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 6891235..e0dafe5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -5,8 +5,8 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.jetbrains.annotations.Nullable; +import java.util.List; import java.util.Objects; -import java.util.Set; import java.util.UUID; class VaroTeam { @@ -26,18 +26,18 @@ class VaroTeam { } public boolean isFree(int countdownSeconds) { - return this.timestampSince < System.currentTimeMillis() - (countdownSeconds * 1000); + return this.timestampSince < System.currentTimeMillis() - (countdownSeconds * 1000L); } } - public final Set members; + public final List members; public final UUID teamUuid; public final String name; public final String color; public JoinCountdown joinCountdown; - public VaroTeam(Set members, String name, String color) { + public VaroTeam(List members, String name, String color) { this.teamUuid = UUID.randomUUID(); this.members = members; this.name = name; From a4289d5ac98fbbfff3185e526cf7fdb097f54b33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 30 May 2025 22:00:42 +0200 Subject: [PATCH 32/72] periodic team fetch --- .../spawn/varo/appliances/metaGameplay/teams/Teams.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 7602278..35be6a4 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -22,7 +22,12 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam private List teams = List.of(); public Teams() { - this.refreshTeamList(); + Bukkit.getScheduler().runTaskTimerAsynchronously( + Main.instance(), + this::refreshTeamList, + 0, + Ticks.TICKS_PER_SECOND * 60 + ); } public void refreshTeamList() { From b1f188dece4d7942df8a25b3b76765cb6cc175e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 9 Jun 2025 13:52:39 +0200 Subject: [PATCH 33/72] generic tweaks started implementation of FightDetector --- .../spawn/core/api/client/HttpRepository.java | 7 ++- .../spawn/core/api/client/Repository.java | 5 +- .../varo/api/repositories/TeamRepository.java | 1 - .../repositories/VaroPlayerRepository.java | 19 +++++++ .../fightDetector/FightDetector.java | 36 ++++++++++++++ .../FightOnDistanceListener.java | 7 +++ .../FightOnInteractionListener.java | 27 ++++++++++ .../joinProtection/JoinProtection.java | 49 +++++++++++++------ .../teams/ConnectivityChangeListener.java | 7 +++ .../appliances/metaGameplay/teams/Teams.java | 14 +----- .../metaGameplay/teams/VaroTeam.java | 14 +----- .../metaGameplay/varoDeath/VaroDeath.java | 16 +++++- 12 files changed, 158 insertions(+), 44 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index 9d3e1d1..f655f33 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -92,7 +92,12 @@ public abstract class HttpRepository extends Repository { private ReqResp execute(HttpRequest request, Class clazz) { ReqResp rawResponse = this.sendHttp(request); - Main.logger().info(String.format("HTTP-Repository fired %s, response: %s", request, rawResponse)); + Main.logger().info(String.format( + "HTTP-Repository fired %s, sending: %s, response: %s", + request, + request.bodyPublisher().orElse(HttpRequest.BodyPublishers.ofString("none")), + rawResponse + )); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java index b0eee01..09f6422 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/Repository.java @@ -1,6 +1,7 @@ package eu.mhsl.craftattack.spawn.core.api.client; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import eu.mhsl.craftattack.spawn.core.Main; import org.bukkit.Bukkit; @@ -12,7 +13,9 @@ public abstract class Repository { public Repository(URI basePath) { this.basePath = basePath; - this.gson = new Gson(); + this.gson = new GsonBuilder() + .serializeNulls() + .create(); } protected void validateThread(String commandName) { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java index b98d8a7..e4b414f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java @@ -28,7 +28,6 @@ public class TeamRepository extends HttpRepository { public ReqResp> getTeams() { var resp = this.get("team", Object.class); - System.out.println(resp.toString()); return resp .convertToTypeToken(new TypeToken>() {}.getType()) .cast(); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java new file mode 100644 index 0000000..58aa882 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java @@ -0,0 +1,19 @@ +package eu.mhsl.craftattack.spawn.varo.api.repositories; + +import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.varo.api.VaroApi; +import org.jetbrains.annotations.Nullable; + +import java.util.UUID; + +public class VaroPlayerRepository extends HttpRepository { + public VaroPlayerRepository() { + super(VaroApi.getBaseUri(), new RequestModifier(null, VaroApi::authorizationHeader)); + } + + public record VaroDeath(UUID user, @Nullable UUID killer, String message) {} + public ReqResp registerDeath(VaroDeath death) { + return this.post("player/death", death, Void.class); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java new file mode 100644 index 0000000..7a774f1 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java @@ -0,0 +1,36 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FightDetector extends Appliance { + public static final Long FIGHT_TIMEOUT = 60 * 1000L; + public final Map fights = new HashMap<>(); + + public boolean isInFight(VaroTeam team) { + Long lastFightTime = this.fights.get(team); + if(lastFightTime == null) return false; + return (System.currentTimeMillis() - lastFightTime <= FIGHT_TIMEOUT); + } + + public void setInFight(Player player) { + VaroTeam team = this.queryAppliance(Teams.class).getTeamFromPlayer(player.getUniqueId()); + this.fights.put(team, System.currentTimeMillis()); + } + + @Override + protected @NotNull List listeners() { + return List.of( + new FightOnDistanceListener(), + new FightOnInteractionListener() + ); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java new file mode 100644 index 0000000..ddc4d46 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java @@ -0,0 +1,7 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; + +class FightOnDistanceListener extends ApplianceListener { + //TODO implementation +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java new file mode 100644 index 0000000..ccdbeda --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java @@ -0,0 +1,27 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; + +class FightOnInteractionListener extends ApplianceListener { + @EventHandler + public void onAttack(PrePlayerAttackEntityEvent event) { + if(!event.willAttack()) return; + + if(event.getAttacked() instanceof Player attackedPlayer) { + Teams teamsAppliance = Main.instance().getAppliance(Teams.class); + VaroTeam attacker = teamsAppliance.getTeamFromPlayer(event.getPlayer().getUniqueId()); + VaroTeam attacked = teamsAppliance.getTeamFromPlayer(event.getAttacked().getUniqueId()); + if(attacked == null) return; + if(attacker.equals(attacked)) return; + + this.getAppliance().setInFight(event.getPlayer()); + this.getAppliance().setInFight(attackedPlayer); + } + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index e395176..8cdd56c 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; -import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; @@ -32,10 +32,11 @@ public class JoinProtection extends Appliance { PotionEffect blindness = new PotionEffect(PotionEffectType.DARKNESS, Ticks.TICKS_PER_SECOND * 3, 1); player.addPotionEffects(List.of(resistance, blindness)); - Bukkit.getScheduler().runTaskLater( + Bukkit.getScheduler().runTaskTimer( Main.instance(), - () -> this.protectedPlayers.remove(player.getUniqueId()), - Ticks.TICKS_PER_SECOND * resistanceDuration + this::notifyPlayers, + Ticks.TICKS_PER_SECOND, + Ticks.TICKS_PER_SECOND ); } @@ -43,18 +44,36 @@ public class JoinProtection extends Appliance { return this.protectedPlayers.get(player.getUniqueId()); } - public void cancelEvent(Player player, Cancellable event) { - var teamCountdown = Main.instance().getAppliance(Teams.class).getTeamJoinCountdown(player); - if(teamCountdown.isFree(resistanceDuration)) return; - event.setCancelled(true); + public boolean isNotProtected(Player player) { + Options options = this.protectedPlayers.get(player.getUniqueId()); + if(options == null) return true; + return options.joinTime <= System.currentTimeMillis() - (resistanceDuration * 1000L); + } - int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - teamCountdown.timestampSince()) / 1000) - resistanceDuration); - player.sendActionBar( - Component.text( - String.format("Du bist in %d Sekunden angreifbar", secondsLeft), - NamedTextColor.RED - ) - ); + public void cancelEvent(Player player, Cancellable event) { + if(this.isNotProtected(player)) return; + event.setCancelled(true); + } + + public void notifyPlayers() { + IteratorUtil.onlinePlayers(player -> { + Options options = this.protectedPlayers.get(player.getUniqueId()); + if(options == null) return; + + if(this.isNotProtected(player)) { + this.protectedPlayers.remove(player.getUniqueId()); + } + + int secondsLeft = Math.abs((int) ((System.currentTimeMillis() - options.joinTime) / 1000) - resistanceDuration); + player.sendActionBar( + Component.text( + secondsLeft > 0 + ? String.format("Du bist in %d Sekunden angreifbar!", secondsLeft) + : "Du jetzt angreifbar!", + NamedTextColor.RED + ) + ); + }); } @Override diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index 44d59a2..9c554a5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -1,5 +1,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; @@ -27,6 +28,12 @@ class ConnectivityChangeListener extends ApplianceListener { @EventHandler public void onLeave(PlayerQuitEvent event) { + if(event.getReason().equals(PlayerQuitEvent.QuitReason.KICKED)) { + Main.logger().info(String.format( + "Player %s left the Server. The 'teamLeave' enforcement was skipped, since the QuitReqson is 'kicked'", + event.getPlayer().getName() + )); + } this.getAppliance().enforceTeamLeave(event.getPlayer()); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 35be6a4..0fa27b0 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -44,7 +44,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam .anyMatch(varoTeam -> varoTeam.hasMember(playerId) && !Objects.requireNonNull(varoTeam.getMemberById(playerId)).isDead); } - VaroTeam getTeamFromPlayer(UUID playerId) { + public VaroTeam getTeamFromPlayer(UUID playerId) { return this.teams.stream() .filter(varoTeam -> varoTeam.hasMember(playerId)) .findFirst() @@ -52,8 +52,6 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam } public void enforceTeamJoin(Player joinedPlayer) { - this.getTeamFromPlayer(joinedPlayer.getUniqueId()).joinCountdown = new VaroTeam.JoinCountdown(); - DisconnectInfo disconnectInfo = new DisconnectInfo( "Teampartner nicht beigetreten", "Deine Verbindung wurde getrennt, da dein Teampartner keine Verbindung zum Server hergestellt hat!", @@ -84,15 +82,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam leftPlayer.getUniqueId() ); VaroTeam team = this.getTeamFromPlayer(leftPlayer.getUniqueId()); - Bukkit.getScheduler().scheduleSyncDelayedTask( - Main.instance(), - () -> team.kickTeam(disconnectInfo), - Ticks.TICKS_PER_SECOND - ); - } - - public VaroTeam.JoinCountdown getTeamJoinCountdown(Player player) { - return this.getTeamFromPlayer(player.getUniqueId()).joinCountdown; + team.kickTeam(disconnectInfo); } @Override diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index e0dafe5..998342e 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Objects; import java.util.UUID; -class VaroTeam { +public class VaroTeam { public static class Member { public final OfflinePlayer player; public boolean isDead; @@ -20,23 +20,11 @@ class VaroTeam { } } - public record JoinCountdown(long timestampSince) { - public JoinCountdown() { - this(System.currentTimeMillis()); - } - - public boolean isFree(int countdownSeconds) { - return this.timestampSince < System.currentTimeMillis() - (countdownSeconds * 1000L); - } - } - public final List members; public final UUID teamUuid; public final String name; public final String color; - public JoinCountdown joinCountdown; - public VaroTeam(List members, String name, String color) { this.teamUuid = UUID.randomUUID(); this.members = members; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java index 7dfb75a..acfd6dd 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/varoDeath/VaroDeath.java @@ -1,11 +1,15 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.varoDeath; import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.HttpStatus; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.varo.api.repositories.VaroPlayerRepository; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; +import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; @@ -13,6 +17,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Objects; +import java.util.Optional; public class VaroDeath extends Appliance { public void registerPlayerDeath(Player player, @Nullable Component component) { @@ -24,7 +29,16 @@ public class VaroDeath extends Appliance { player.getUniqueId() ); - //TODO send player death to backend + var death = new VaroPlayerRepository.VaroDeath( + player.getUniqueId(), + Optional.ofNullable(player.getKiller()) + .map(Entity::getUniqueId) + .orElse(null), + deathMessage + ); + + ReqResp response = this.queryRepository(VaroPlayerRepository.class).registerDeath(death); + if(response.status() != HttpStatus.OK) Main.logger().warning(String.format("Failed to send death: %s", response)); disconnectInfo.applyKick(player); Main.instance().getAppliance(Teams.class).refreshTeamList(); From 69e971f618b8b312ef7820c7b5f5448f0d875ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 11 Jun 2025 21:36:22 +0200 Subject: [PATCH 34/72] Teams corrections full implementation of FightDetector --- .../spawn/core/api/client/HttpRepository.java | 3 +- .../fightDetector/FightDetector.java | 69 ++++++++++++++++++- .../shrinkingBorder/ShrinkingBorder.java | 1 - .../appliances/metaGameplay/teams/Teams.java | 38 ++++++++-- .../metaGameplay/teams/VaroTeam.java | 13 ++-- 5 files changed, 104 insertions(+), 20 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index f655f33..ebf8a94 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -93,9 +93,8 @@ public abstract class HttpRepository extends Repository { private ReqResp execute(HttpRequest request, Class clazz) { ReqResp rawResponse = this.sendHttp(request); Main.logger().info(String.format( - "HTTP-Repository fired %s, sending: %s, response: %s", + "Request: %s\nResponse: %s", request, - request.bodyPublisher().orElse(HttpRequest.BodyPublishers.ofString("none")), rawResponse )); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java index 7a774f1..e87c646 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java @@ -1,8 +1,11 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import net.kyori.adventure.util.Ticks; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; @@ -10,21 +13,81 @@ import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; public class FightDetector extends Appliance { - public static final Long FIGHT_TIMEOUT = 60 * 1000L; + public static final long FIGHT_TIMEOUT = 60 * 1000; + private static final long BLOCK_RADIUS = 30; + public final Map fights = new HashMap<>(); + public FightDetector() { + Bukkit.getScheduler().runTaskTimer( + Main.instance(), + () -> { + var teamFights = this.fights.keySet().stream() + .filter(this::isInFight) + .toList(); + if(teamFights.isEmpty()) return; + Main.logger().info(String.format( + "There are %d Teams in Fight: %s", + teamFights.size(), + teamFights.stream() + .map(varoTeam -> String.format( + "%s[%s]", + varoTeam.name, + varoTeam.members.stream() + .map(member -> member.player.getName()) + .collect(Collectors.joining(",")))) + .collect(Collectors.joining(", ")) + )); + }, + Ticks.TICKS_PER_SECOND * 15, + Ticks.TICKS_PER_SECOND * 15 + ); + + Bukkit.getScheduler().runTaskTimer( + Main.instance(), + this::detectNearbyFights, + Ticks.TICKS_PER_SECOND, + Ticks.TICKS_PER_SECOND + ); + } + + private void detectNearbyFights() { + var players = Bukkit.getOnlinePlayers(); + Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), () -> { + for (Player player : players) { + VaroTeam ownTeam = this.queryAppliance(Teams.class).getTeamFromPlayer(player.getUniqueId()); + if (ownTeam == null) continue; + + for (Player otherPlayer : players) { + if (player.equals(otherPlayer)) continue; + + VaroTeam otherTeam = this.queryAppliance(Teams.class).getTeamFromPlayer(otherPlayer.getUniqueId()); + if (otherTeam == null || ownTeam.equals(otherTeam)) continue; + + if (player.getLocation().distance(otherPlayer.getLocation()) <= BLOCK_RADIUS) { + this.setInFight(ownTeam); + this.setInFight(otherTeam); + } + } + } + }); + } + public boolean isInFight(VaroTeam team) { Long lastFightTime = this.fights.get(team); if(lastFightTime == null) return false; return (System.currentTimeMillis() - lastFightTime <= FIGHT_TIMEOUT); } - public void setInFight(Player player) { - VaroTeam team = this.queryAppliance(Teams.class).getTeamFromPlayer(player.getUniqueId()); + public void setInFight(VaroTeam team) { this.fights.put(team, System.currentTimeMillis()); } + public void setInFight(Player player) { + this.setInFight(this.queryAppliance(Teams.class).getTeamFromPlayer(player.getUniqueId())); + } @Override protected @NotNull List listeners() { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java index b9c0525..07cb8bf 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java @@ -35,7 +35,6 @@ public class ShrinkingBorder extends Appliance { @Override public void run() { Bukkit.getScheduler().runTask(Main.instance(), ShrinkingBorder.this::shrinkBorder); - } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 0fa27b0..5b4f6c2 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class Teams extends Appliance implements DisplayName.Prefixed, DisplayName.Colored { - private List teams = List.of(); + private final List teams = new ArrayList<>(); public Teams() { Bukkit.getScheduler().runTaskTimerAsynchronously( @@ -31,12 +31,36 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam } public void refreshTeamList() { - this.teams = this.queryRepository(TeamRepository.class).getTeams().data().stream() - .map(team -> new VaroTeam( - team.users().stream().map(user -> new VaroTeam.Member(user.uuid(), user.dead())).toList(), - team.name(), - team.color() - )).toList(); + var updatedTeams = this.queryRepository(TeamRepository.class).getTeams().data(); + + for (var updatedTeam : updatedTeams) { + VaroTeam existingTeam = this.findTeamByName(updatedTeam.name()); + + if (existingTeam != null) { + existingTeam.members = updatedTeam.users().stream() + .map(user -> new VaroTeam.Member(user.uuid(), user.dead())) + .toList(); + existingTeam.color = updatedTeam.color(); + existingTeam.name = updatedTeam.name(); + } else { + VaroTeam newTeam = new VaroTeam( + updatedTeam.users().stream() + .map(user -> new VaroTeam.Member(user.uuid(), user.dead())) + .toList(), + updatedTeam.name(), + updatedTeam.color() + ); + this.teams.add(newTeam); + Main.logger().info("Added missing team to Teams registry: " + newTeam); + } + } + } + + private @Nullable VaroTeam findTeamByName(String name) { + for (VaroTeam team : this.teams) { + if (team.name.equals(name)) return team; + } + return null; } public boolean canLogin(UUID playerId) { diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 998342e..0f0b8bd 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -5,6 +5,7 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.jetbrains.annotations.Nullable; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.UUID; @@ -20,14 +21,12 @@ public class VaroTeam { } } - public final List members; - public final UUID teamUuid; - public final String name; - public final String color; + public String name; + public String color; + public List members; public VaroTeam(List members, String name, String color) { - this.teamUuid = UUID.randomUUID(); - this.members = members; + this.members = new ArrayList<>(members); this.name = name; this.color = color; } @@ -53,7 +52,7 @@ public class VaroTeam { "Unbekannter Fehler", "Verbindung wurde aufgrund eines unbekannten Grundes getrennt", "Falls du denkst, dass dies ein Fehler ist, melde dich bei einem Admin!", - this.teamUuid + UUID.randomUUID() )); } From fce9449b7e1b696137a8bae033034ec2bec2d0fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 15 Jun 2025 18:42:49 +0200 Subject: [PATCH 35/72] implemented PlayTimer --- .../metaGameplay/playTimer/PlayTimer.java | 95 ++++++++++++++++++ .../playTimer/PlayTimerCommand.java | 98 +++++++++++++++++++ .../teams/ConnectivityChangeListener.java | 7 +- .../appliances/metaGameplay/teams/Teams.java | 50 +++++++++- .../metaGameplay/teams/VaroTeam.java | 27 +++++ 5 files changed, 273 insertions(+), 4 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java new file mode 100644 index 0000000..bf0c2ea --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -0,0 +1,95 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer; + +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PlayTimer extends Appliance { + public static final int PLAYTIME_MINUTES = 30; + + private final Map joinTickets = new HashMap<>(); + private final Path saveFile = Paths.get(Main.instance().getDataFolder() + "playtime.json"); + + public PlayTimer() { + this.load(); + } + + private void load() { + if (!Files.exists(this.saveFile)) return; + try (Reader reader = Files.newBufferedReader(this.saveFile)) { + Type type = new TypeToken>() {}.getType(); + Map data = new Gson().fromJson(reader, type); + @SuppressWarnings("unchecked") Map ticketMap = (Map) data.get("tickets"); + + if (ticketMap != null) { + for (Map.Entry entry : ticketMap.entrySet()) { + this.joinTickets.put(entry.getKey(), entry.getValue().intValue()); + } + } + } catch (IOException e) { + Main.logger().warning("Failed reading playtime from teams: " + e.getMessage()); + } + } + + private void save() { + try { + Files.createDirectories(this.saveFile.getParent()); + try (Writer writer = Files.newBufferedWriter(this.saveFile)) { + new Gson().toJson(Map.of( + "tickets", this.joinTickets + ), writer); + } + } catch (IOException e) { + Main.logger().warning("Failed to save playtime for teams: " + e.getMessage()); + } + } + + public void incrementAll() { + this.joinTickets.replaceAll((n, v) -> this.joinTickets.get(n) + 1); + this.save(); + } + public void setTickets(VaroTeam team, int amount) { + this.joinTickets.put(team.name, amount); + } + + public int getTickets(VaroTeam team) { + return this.joinTickets.getOrDefault(team.name, 1); + } + + public boolean tryConsumeTicket(VaroTeam team) { + String teamName = team.name; + int current = this.joinTickets.getOrDefault(teamName, 1); + + if (current <= 0) return false; + + this.joinTickets.put(teamName, current - 1); + this.save(); + return true; + } + + + @Override + public void httpApi(HttpServer.ApiBuilder apiBuilder) { + } + + @Override + protected @NotNull List> commands() { + return List.of(new PlayTimerCommand()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java new file mode 100644 index 0000000..5ddda49 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java @@ -0,0 +1,98 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.NoSuchElementException; +import java.util.stream.Stream; + +public class PlayTimerCommand extends ApplianceCommand { + public PlayTimerCommand() { + super("playTimer"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception { + if (args.length < 3) throw new Error("Usage: playTimer [amount]"); + + String mode = args[0].toLowerCase(); + String identifier = args[1]; + String action = args[2].toLowerCase(); + + Teams teamAppliance = Main.instance().getAppliance(Teams.class); + VaroTeam team = switch (mode) { + case "user" -> { + OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); + try { + yield teamAppliance.getTeamFromPlayer(player.getUniqueId()); + } catch(NoSuchElementException e) { + throw new Error("Dieser Spieler konnte keinem Team zugeordnet werden!"); + } + } + case "team" -> { + VaroTeam targetTeam = teamAppliance.findTeamByName(identifier); + if (targetTeam == null) throw new Error("Team nicht gefunden."); + yield targetTeam; + } + default -> throw new Error("Ungültiger Modus: " + mode + ". Erlaubt: user | team"); + }; + + switch (action) { + case "get" -> { + int ticketCount = this.getAppliance().getTickets(team); + sender.sendMessage(String.format("Team %s hat %d tickets!", team.name, ticketCount)); + } + case "set" -> { + if (args.length < 4) throw new Error("Usage: playTimer set "); + int amount = Integer.parseInt(args[3]); + this.getAppliance().setTickets(team, amount); + sender.sendMessage("Tickets wurden gesetzt!"); + } + default -> throw new Error("Ungültige Aktion: " + action + ". Erlaubt: get | set"); + } + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + List teams = Main.instance().getAppliance(Teams.class).getAllTeams(); + + return switch (args.length) { + case 1 -> Stream.of("user", "team") + .filter(opt -> opt.startsWith(args[0].toLowerCase())) + .toList(); + + case 2 -> { + if (args[0].equalsIgnoreCase("user")) { + yield Bukkit.getOnlinePlayers().stream() + .map(Player::getName) + .filter(name -> name.toLowerCase().startsWith(args[1].toLowerCase())) + .toList(); + } else if (args[0].equalsIgnoreCase("team")) { + yield teams.stream() + .map(team -> team.name) + .filter(name -> name.toLowerCase().startsWith(args[1].toLowerCase())) + .toList(); + } else { + yield List.of(); + } + } + + case 3 -> Stream.of("get", "set") + .filter(opt -> opt.startsWith(args[2].toLowerCase())) + .toList(); + + default -> List.of(); + }; + } + +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index 9c554a5..a359cf1 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -30,10 +30,15 @@ class ConnectivityChangeListener extends ApplianceListener { public void onLeave(PlayerQuitEvent event) { if(event.getReason().equals(PlayerQuitEvent.QuitReason.KICKED)) { Main.logger().info(String.format( - "Player %s left the Server. The 'teamLeave' enforcement was skipped, since the QuitReqson is 'kicked'", + "Player %s left the Server. The 'teamLeave' enforcement was skipped, since the QuitReason is 'kicked'", event.getPlayer().getName() )); + return; } + + VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); + Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); + // TODO: strike team this.getAppliance().enforceTeamLeave(event.getPlayer()); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 5b4f6c2..d2b71e6 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -6,6 +6,7 @@ import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; @@ -56,7 +57,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam } } - private @Nullable VaroTeam findTeamByName(String name) { + public @Nullable VaroTeam findTeamByName(String name) { for (VaroTeam team : this.teams) { if (team.name.equals(name)) return team; } @@ -75,15 +76,51 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam .orElseThrow(); } + public List getAllTeams() { + return this.teams; + } + public void enforceTeamJoin(Player joinedPlayer) { - DisconnectInfo disconnectInfo = new DisconnectInfo( + DisconnectInfo teamNotCompleteInfo = new DisconnectInfo( "Teampartner nicht beigetreten", "Deine Verbindung wurde getrennt, da dein Teampartner keine Verbindung zum Server hergestellt hat!", "Bitte sorge dafür, dass alle anderen Teammitglieder eine einwandfreie Internetverbindung haben und melde dich im Zweifel bei einem Admin!", joinedPlayer.getUniqueId() ); + DisconnectInfo teamNoPlaytime = new DisconnectInfo( + "Keine Spielzeit verfügbar", + "Deine Verbindung wurde getrennt, da dein Team keine verbleibende Spielzeit auf dem Server hat!", + "Falls dies ein Fehler ist, melde dich bitte bei einem Admin!", + joinedPlayer.getUniqueId() + ); + VaroTeam team = this.getTeamFromPlayer(joinedPlayer.getUniqueId()); + + PlayTimer playTimer = Main.instance().getAppliance(PlayTimer.class); + boolean isAllowed = playTimer.tryConsumeTicket(team); + if(!isAllowed) { + Main.logger().warning(String.format("Team %s joined, but got denied from Ticketing. Team will be kicked!", team.name)); + team.kickTeam(teamNoPlaytime); + return; + } + + int leftTickets = playTimer.getTickets(team); + Main.logger().info(String.format("Player %s joined. There are %d tickets left!", joinedPlayer.getName(), leftTickets)); + String playtimeOverview = String.format( + "Dein Team hat noch %d Beitritte, also %dx%d=%d Minuten übrig.", + leftTickets, + leftTickets, + PlayTimer.PLAYTIME_MINUTES, + leftTickets * PlayTimer.PLAYTIME_MINUTES + ); + joinedPlayer.sendMessage(Component.text( + leftTickets == 0 + ? String.format("Dein Team hat ab jetzt %d Minuten Spielzeit!", PlayTimer.PLAYTIME_MINUTES) + : playtimeOverview, + NamedTextColor.GREEN + )); + Bukkit.getScheduler().scheduleSyncDelayedTask( Main.instance(), () -> team.members.stream() @@ -93,7 +130,14 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam return p == null || !p.isOnline(); }) .findAny() - .ifPresent(member -> team.kickTeam(disconnectInfo)), + .ifPresentOrElse( + member -> team.kickTeam(teamNotCompleteInfo), + () -> Bukkit.getScheduler().runTaskLater( + Main.instance(), + team::timeOverKick, + Ticks.TICKS_PER_SECOND * 60 * PlayTimer.PLAYTIME_MINUTES + ) + ), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) ); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 0f0b8bd..290fea9 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -1,6 +1,9 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector.FightDetector; +import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.jetbrains.annotations.Nullable; @@ -62,4 +65,28 @@ public class VaroTeam { .filter(Objects::nonNull) .forEach(player -> player.kick(disconnectInfo.getComponent())); } + + public void timeOverKick() { + boolean isInFight = Main.instance().getAppliance(FightDetector.class).isInFight(this); + if(isInFight) { + Main.logger().info(String.format("Cannot kick Team %s because it is in a fight!", this.name)); + Bukkit.getScheduler().runTaskLater( + Main.instance(), + this::timeOverKick, + Ticks.TICKS_PER_SECOND * 15 + ); + return; + } + + Main.logger().info(String.format("Kicking Team %s because time is up!", this.name)); + + DisconnectInfo timeOverInfo = new DisconnectInfo( + "Die Zeit ist abgelaufen!", + "Deine Spielzeit ist vorüber. Falls dir noch weitere Zeit zusteht kannst du jetzt eine Pause machen und anschließend erneut beitreten.", + "Falls du Fragen hast, melde dich bitte bei einem Admin!", + UUID.nameUUIDFromBytes("".getBytes()) + ); + + this.kickTeam(timeOverInfo); + } } From ccf383cdb5c9ae410db2fcb86f2593e4e85d2564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 15 Jun 2025 18:55:17 +0200 Subject: [PATCH 36/72] fixed configuration file not saving correctly --- .../varo/appliances/metaGameplay/playTimer/PlayTimer.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index bf0c2ea..3c8b461 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -24,7 +24,7 @@ public class PlayTimer extends Appliance { public static final int PLAYTIME_MINUTES = 30; private final Map joinTickets = new HashMap<>(); - private final Path saveFile = Paths.get(Main.instance().getDataFolder() + "playtime.json"); + private final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath() + "/playtime.json"); public PlayTimer() { this.load(); @@ -51,9 +51,7 @@ public class PlayTimer extends Appliance { try { Files.createDirectories(this.saveFile.getParent()); try (Writer writer = Files.newBufferedWriter(this.saveFile)) { - new Gson().toJson(Map.of( - "tickets", this.joinTickets - ), writer); + new Gson().toJson(Map.of("tickets", this.joinTickets), writer); } } catch (IOException e) { Main.logger().warning("Failed to save playtime for teams: " + e.getMessage()); @@ -66,6 +64,7 @@ public class PlayTimer extends Appliance { } public void setTickets(VaroTeam team, int amount) { this.joinTickets.put(team.name, amount); + this.save(); } public int getTickets(VaroTeam team) { From 2824c1053b40ff05fc066419f4515ad133d6ce02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 19 Jun 2025 00:40:49 +0200 Subject: [PATCH 37/72] WIP: report implementation for varo --- .../spawn/common}/api/VaroApi.java | 2 +- .../CraftAttackReportRepository.java | 27 +++++++++++ .../api/repositories/ReportRepository.java | 27 +++-------- .../repositories/VaroReportRepository.java | 45 +++++++++++++++++++ .../metaGameplay/report/Report.java | 11 +++-- .../spawn/core/api/client/HttpRepository.java | 13 ++++++ .../varo/api/repositories/TeamRepository.java | 2 +- .../repositories/VaroPlayerRepository.java | 2 +- 8 files changed, 101 insertions(+), 28 deletions(-) rename {varo/src/main/java/eu/mhsl/craftattack/spawn/varo => common/src/main/java/eu/mhsl/craftattack/spawn/common}/api/VaroApi.java (95%) create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/CraftAttackReportRepository.java create mode 100644 common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/VaroReportRepository.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/VaroApi.java similarity index 95% rename from varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/api/VaroApi.java index 7a445db..9a93cdf 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/VaroApi.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/VaroApi.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.varo.api; +package eu.mhsl.craftattack.spawn.common.api; import eu.mhsl.craftattack.spawn.core.config.Configuration; import org.bukkit.configuration.ConfigurationSection; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/CraftAttackReportRepository.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/CraftAttackReportRepository.java new file mode 100644 index 0000000..e2bc7b7 --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/CraftAttackReportRepository.java @@ -0,0 +1,27 @@ +package eu.mhsl.craftattack.spawn.common.api.repositories; + +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; +import java.util.UUID; + +public class CraftAttackReportRepository extends ReportRepository { + public CraftAttackReportRepository() { + super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); + } + + public ReqResp queryReports(UUID player) { + return this.get( + "report", + (parameters) -> parameters.addParameter("uuid", player.toString()), + PlayerReports.class + ); + } + + public ReqResp createReport(ReportCreationInfo data) { + return this.post( + "report", + data, + ReportUrl.class + ); + } +} diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java index f885df0..4ed05cb 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/ReportRepository.java @@ -1,17 +1,18 @@ package eu.mhsl.craftattack.spawn.common.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; -import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.common.api.CraftAttackApi; +import eu.mhsl.craftattack.spawn.core.api.client.RepositoryLoader; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.net.URI; import java.util.List; import java.util.UUID; -public class ReportRepository extends HttpRepository { - public ReportRepository() { - super(CraftAttackApi.getBaseUri(), new RequestModifier(CraftAttackApi::withAuthorizationSecret, null)); +@RepositoryLoader.Abstraction +public abstract class ReportRepository extends HttpRepository { + public ReportRepository(URI basePath, RequestModifier... baseRequestModifier) { + super(basePath, baseRequestModifier); } public record ReportCreationInfo(@NotNull UUID reporter, @Nullable UUID reported, String reason) { @@ -38,20 +39,4 @@ public class ReportRepository extends HttpRepository { } } } - - public ReqResp queryReports(UUID player) { - return this.get( - "report", - (parameters) -> parameters.addParameter("uuid", player.toString()), - PlayerReports.class - ); - } - - public ReqResp createReport(ReportCreationInfo data) { - return this.post( - "report", - data, - ReportUrl.class - ); - } } diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/VaroReportRepository.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/VaroReportRepository.java new file mode 100644 index 0000000..8db4e4a --- /dev/null +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/api/repositories/VaroReportRepository.java @@ -0,0 +1,45 @@ +package eu.mhsl.craftattack.spawn.common.api.repositories; + +import eu.mhsl.craftattack.spawn.common.api.VaroApi; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; +import org.apache.commons.lang3.NotImplementedException; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.UUID; + +public class VaroReportRepository extends ReportRepository { + public VaroReportRepository() { + super(VaroApi.getBaseUri(), new RequestModifier(null, VaroApi::authorizationHeader)); + } + + public ReqResp queryReports(UUID player) { + throw new NotImplementedException("Report querying is not supported in Varo!"); + } + + public ReqResp createReport(ReportCreationInfo data) { + return this.post( + "report", + data, + ReportUrl.class + ); + } + + public record StrikeCreationInfo( + @Nullable UUID reporter, // null for automatic creations + @NotNull UUID reported, + @NotNull String reason, + @Nullable String body, + @Nullable String notice, + @Nullable String statement, + int strike_reason_id // internal strike mapping + ) { + } + public ReqResp createStrike(StrikeCreationInfo data) { + return this.put( + "report", + data, + Void.class + ); + } +} diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index 3329d70..499a33f 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -1,8 +1,10 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report; +import eu.mhsl.craftattack.spawn.common.api.repositories.ReportRepository; +import eu.mhsl.craftattack.spawn.common.api.repositories.VaroReportRepository; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.common.api.repositories.ReportRepository; +import eu.mhsl.craftattack.spawn.common.api.repositories.CraftAttackReportRepository; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; @@ -36,7 +38,7 @@ public class Report extends Appliance { } public void reportToUnknown(@NotNull Player issuer) { - ReportRepository.ReportCreationInfo request = new ReportRepository.ReportCreationInfo(issuer.getUniqueId(), null, ""); + CraftAttackReportRepository.ReportCreationInfo request = new CraftAttackReportRepository.ReportCreationInfo(issuer.getUniqueId(), null, ""); Bukkit.getScheduler().runTaskAsynchronously( Main.instance(), () -> this.createReport(issuer, request) @@ -62,10 +64,11 @@ public class Report extends Appliance { } private void createReport(Player issuer, ReportRepository.ReportCreationInfo reportRequest) { - ReqResp createdReport = this.queryRepository(ReportRepository.class) + ReqResp createdReport = this.queryRepository(VaroReportRepository.class) .createReport(reportRequest); switch(createdReport.status()) { + case 200: // varo-endpoint specific case 201: issuer.sendMessage( Component.text() @@ -112,7 +115,7 @@ public class Report extends Appliance { } public void queryReports(Player issuer) { - ReqResp userReports = this.queryRepository(ReportRepository.class) + ReqResp userReports = this.queryRepository(VaroReportRepository.class) .queryReports(issuer.getUniqueId()); if(userReports.status() != 200) { diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index ebf8a94..502f2f4 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -48,6 +48,19 @@ public abstract class HttpRepository extends Repository { return this.execute(request, outputType); } + protected ReqResp put(String command, TInput data, Class outputType) { + return this.put(command, parameters -> { + }, data, outputType); + } + + protected ReqResp put(String command, Consumer parameters, TInput data, Class outputType) { + HttpRequest request = this.getRequestBuilder(this.getUri(command, parameters)) + .PUT(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) + .build(); + + return this.execute(request, outputType); + } + protected ReqResp get(String command, Class outputType) { return this.get(command, parameters -> { }, outputType); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java index e4b414f..9208ea2 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/TeamRepository.java @@ -3,7 +3,7 @@ package eu.mhsl.craftattack.spawn.varo.api.repositories; import com.google.common.reflect.TypeToken; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.varo.api.VaroApi; +import eu.mhsl.craftattack.spawn.common.api.VaroApi; import java.util.List; import java.util.UUID; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java index 58aa882..7f8b750 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/api/repositories/VaroPlayerRepository.java @@ -2,7 +2,7 @@ package eu.mhsl.craftattack.spawn.varo.api.repositories; import eu.mhsl.craftattack.spawn.core.api.client.HttpRepository; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; -import eu.mhsl.craftattack.spawn.varo.api.VaroApi; +import eu.mhsl.craftattack.spawn.common.api.VaroApi; import org.jetbrains.annotations.Nullable; import java.util.UUID; From 8f5a96dc315e8ba294311210a4cce9b0d62d7259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 19 Jun 2025 00:54:40 +0200 Subject: [PATCH 38/72] changed report text --- .../spawn/common/appliances/metaGameplay/report/Report.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java index 499a33f..9dc1e72 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java @@ -74,7 +74,7 @@ public class Report extends Appliance { Component.text() .append(Component.text("\\/".repeat(20), NamedTextColor.DARK_GRAY)) .appendNewline() - .append(Component.text("⚠ Der Report muss über den folgenden Link fertiggestellt werden!", NamedTextColor.GOLD)) + .append(Component.text("⚠ Der Report muss über den folgenden Link fertiggestellt werden:", NamedTextColor.GOLD)) .appendNewline() .appendNewline() .append( From b6c298cec3c7b05622bf309c1d9c6bb86ade01c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 19 Jun 2025 01:18:14 +0200 Subject: [PATCH 39/72] unlimited admin access --- .../chatMessages/ChatMessagesListener.java | 4 ++ .../joinProtection/JoinProtection.java | 2 + .../playTimer/PlayTimerCommand.java | 19 ++++----- .../appliances/metaGameplay/teams/Teams.java | 17 +++++--- .../adminInvisibility/AdminInvisibility.java | 39 +++++++++++++++++++ .../OnAdminJoinListener.java | 12 ++++++ 6 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java index 6d3f6d1..561c5bf 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java @@ -30,7 +30,9 @@ class ChatMessagesListener extends ApplianceListener { @EventHandler(priority = EventPriority.HIGH) public void onPlayerJoin(PlayerJoinEvent event) { + boolean wasHidden = event.joinMessage() == null; event.joinMessage(null); + if(wasHidden) return; IteratorUtil.onlinePlayers(player -> { if(!Settings.instance().getSetting(player, Settings.Key.ShowJoinAndLeaveMessages, Boolean.class)) return; player.sendMessage( @@ -43,7 +45,9 @@ class ChatMessagesListener extends ApplianceListener { @EventHandler public void onPlayerLeave(PlayerQuitEvent event) { + boolean wasHidden = event.quitMessage() == null; event.quitMessage(null); + if(wasHidden) return; IteratorUtil.onlinePlayers(player -> { if(!Settings.instance().getSetting(player, Settings.Key.ShowJoinAndLeaveMessages, Boolean.class)) return; player.sendMessage( diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index 8cdd56c..621f812 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -27,6 +27,8 @@ public class JoinProtection extends Appliance { private final Map protectedPlayers = new HashMap<>(); public void addProtection(Player player) { + if(player.isOp()) return; + this.protectedPlayers.put(player.getUniqueId(), new Options()); PotionEffect resistance = new PotionEffect(PotionEffectType.RESISTANCE, Ticks.TICKS_PER_SECOND * resistanceDuration, 1); PotionEffect blindness = new PotionEffect(PotionEffectType.DARKNESS, Ticks.TICKS_PER_SECOND * 3, 1); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java index 5ddda49..9757190 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java @@ -13,7 +13,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; -import java.util.NoSuchElementException; import java.util.stream.Stream; public class PlayTimerCommand extends ApplianceCommand { @@ -33,20 +32,18 @@ public class PlayTimerCommand extends ApplianceCommand { VaroTeam team = switch (mode) { case "user" -> { OfflinePlayer player = Bukkit.getOfflinePlayer(identifier); - try { - yield teamAppliance.getTeamFromPlayer(player.getUniqueId()); - } catch(NoSuchElementException e) { - throw new Error("Dieser Spieler konnte keinem Team zugeordnet werden!"); - } + yield teamAppliance.getTeamFromPlayer(player.getUniqueId()); } - case "team" -> { - VaroTeam targetTeam = teamAppliance.findTeamByName(identifier); - if (targetTeam == null) throw new Error("Team nicht gefunden."); - yield targetTeam; + case "team" -> teamAppliance.findTeamByName(identifier); + case "incallbyone" -> { + this.getAppliance().incrementAll(); + throw new Error("Incremented all Teams by one!"); } default -> throw new Error("Ungültiger Modus: " + mode + ". Erlaubt: user | team"); }; + if(team == null) throw new Error("Team nicht gefunden."); + switch (action) { case "get" -> { int ticketCount = this.getAppliance().getTickets(team); @@ -67,7 +64,7 @@ public class PlayTimerCommand extends ApplianceCommand { List teams = Main.instance().getAppliance(Teams.class).getAllTeams(); return switch (args.length) { - case 1 -> Stream.of("user", "team") + case 1 -> Stream.of("user", "team", "incAllByOne") .filter(opt -> opt.startsWith(args[0].toLowerCase())) .toList(); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index d2b71e6..3cf6c7a 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -12,6 +12,7 @@ import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; @@ -65,15 +66,18 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam } public boolean canLogin(UUID playerId) { + OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(playerId); + if(offlinePlayer.isOp()) return true; + return this.teams.stream() .anyMatch(varoTeam -> varoTeam.hasMember(playerId) && !Objects.requireNonNull(varoTeam.getMemberById(playerId)).isDead); } - public VaroTeam getTeamFromPlayer(UUID playerId) { + public @Nullable VaroTeam getTeamFromPlayer(UUID playerId) { return this.teams.stream() .filter(varoTeam -> varoTeam.hasMember(playerId)) .findFirst() - .orElseThrow(); + .orElse(null); } public List getAllTeams() { @@ -81,6 +85,8 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam } public void enforceTeamJoin(Player joinedPlayer) { + if(joinedPlayer.isOp()) return; + DisconnectInfo teamNotCompleteInfo = new DisconnectInfo( "Teampartner nicht beigetreten", "Deine Verbindung wurde getrennt, da dein Teampartner keine Verbindung zum Server hergestellt hat!", @@ -96,6 +102,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam ); VaroTeam team = this.getTeamFromPlayer(joinedPlayer.getUniqueId()); + if(team == null) throw new IllegalStateException("Player must be in a Team"); PlayTimer playTimer = Main.instance().getAppliance(PlayTimer.class); boolean isAllowed = playTimer.tryConsumeTicket(team); @@ -150,7 +157,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam leftPlayer.getUniqueId() ); VaroTeam team = this.getTeamFromPlayer(leftPlayer.getUniqueId()); - team.kickTeam(disconnectInfo); + if(team != null) team.kickTeam(disconnectInfo); } @Override @@ -162,8 +169,8 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam public @Nullable Component getNamePrefix(Player player) { VaroTeam team = this.getTeamFromPlayer(player.getUniqueId()); return Component.text( - String.format("[%s]", team.name), - TextColor.fromCSSHexString(team.color) + String.format("[%s]", team != null ? team.name : "?"), + TextColor.fromCSSHexString(team != null ? team.color : "#ffffff") ); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java new file mode 100644 index 0000000..5886844 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java @@ -0,0 +1,39 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.adminInvisibility; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import net.kyori.adventure.text.Component; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class AdminInvisibility extends Appliance { + public void updateVisibility(PlayerJoinEvent event) { + Player target = event.getPlayer(); + boolean shouldBeHidden = target.isOp(); + for (Player viewer : Bukkit.getOnlinePlayers()) { + if (viewer.equals(target)) continue; + + if (shouldBeHidden) { + viewer.hidePlayer(Main.instance(), target); + } else { + viewer.showPlayer(Main.instance(), target); + } + } + + if(shouldBeHidden) { + target.playerListName(Component.empty()); + event.joinMessage(null); + } + } + + + @Override + protected @NotNull List listeners() { + return List.of(new OnAdminJoinListener()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java new file mode 100644 index 0000000..885f859 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java @@ -0,0 +1,12 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.adminInvisibility; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; + +class OnAdminJoinListener extends ApplianceListener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + this.getAppliance().updateVisibility(event); + } +} From aa868deeca9ae62d2a6125fa63eb24051c89b10e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 19 Jun 2025 21:41:43 +0200 Subject: [PATCH 40/72] added team task management --- .../internal/teamTasks/TeamTasks.java | 52 +++++++++++++++++++ .../internal/teamTasks/TeamTasksCommand.java | 42 +++++++++++++++ .../joinProtection/JoinProtection.java | 4 +- .../appliances/metaGameplay/teams/Teams.java | 15 ++++-- .../metaGameplay/teams/VaroTeam.java | 14 ++++- 5 files changed, 118 insertions(+), 9 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java new file mode 100644 index 0000000..37f66f5 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java @@ -0,0 +1,52 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import org.bukkit.scheduler.BukkitTask; +import org.jetbrains.annotations.NotNull; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class TeamTasks extends Appliance { + public enum Type { + /** + * Task for kicking Team after the desired Playtime + */ + TIME_KICK + } + + private final Map> tasks = new HashMap<>(); + + private Map getTeamTasks(VaroTeam team) { + return this.tasks.computeIfAbsent(team, varoTeam -> new HashMap<>()); + } + + public Map getRunningTeamTasks(VaroTeam team) { + return this.getTeamTasks(team).entrySet().stream() + .filter(entry -> !entry.getValue().isCancelled()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + } + + public void cancelTeamTasks(VaroTeam team) { + Main.logger().info(String.format("All TeamTasks for Team %s were cancelled: %s", team.name, this.getRunningTeamTasks(team))); + this.getTeamTasks(team).forEach((type, bukkitTask) -> bukkitTask.cancel()); + } + + public void addTask(VaroTeam team, Type type, BukkitTask runnable) { + if(this.getTeamTasks(team).containsKey(type) && !this.getTeamTasks(team).get(type).isCancelled()) { + throw new IllegalStateException(String.format("Task %s for Team %s was already running!", type.name(), team.name)); + } + + this.getTeamTasks(team).put(type, runnable); + } + + @Override + protected @NotNull List> commands() { + return List.of(new TeamTasksCommand()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java new file mode 100644 index 0000000..fc39f21 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java @@ -0,0 +1,42 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; +import java.util.stream.Collectors; + +public class TeamTasksCommand extends ApplianceCommand { + public TeamTasksCommand() { + super("teamTasks"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length < 1) throw new Error("Please specify Teamname"); + var team = Main.instance().getAppliance(Teams.class).findTeamByName(args[0]); + if(team == null) throw new Error("Team not found!"); + var tasks = this.getAppliance().getRunningTeamTasks(team); + if(tasks.isEmpty()) { + sender.sendMessage("No Tasks found!"); + } else { + sender.sendMessage( + tasks.entrySet() + .stream() + .map(entry -> String.format("%s: %d", entry.getKey().name(), entry.getValue().getTaskId())) + .collect(Collectors.joining("\n")) + ); + } + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + var teams = Main.instance().getAppliance(Teams.class).getAllTeams(); + return teams.stream().map(team -> team.name).toList(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index 621f812..a91a17b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -36,7 +36,7 @@ public class JoinProtection extends Appliance { Bukkit.getScheduler().runTaskTimer( Main.instance(), - this::notifyPlayers, + this::updateStatus, Ticks.TICKS_PER_SECOND, Ticks.TICKS_PER_SECOND ); @@ -57,7 +57,7 @@ public class JoinProtection extends Appliance { event.setCancelled(true); } - public void notifyPlayers() { + public void updateStatus() { IteratorUtil.onlinePlayers(player -> { Options options = this.protectedPlayers.get(player.getUniqueId()); if(options == null) return; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 3cf6c7a..dbedcb5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -5,6 +5,7 @@ import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import net.kyori.adventure.text.Component; @@ -15,6 +16,7 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.event.Listener; +import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -139,11 +141,14 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam .findAny() .ifPresentOrElse( member -> team.kickTeam(teamNotCompleteInfo), - () -> Bukkit.getScheduler().runTaskLater( - Main.instance(), - team::timeOverKick, - Ticks.TICKS_PER_SECOND * 60 * PlayTimer.PLAYTIME_MINUTES - ) + () -> { + BukkitTask kickTask = Bukkit.getScheduler().runTaskLater( + Main.instance(), + team::timeOverKick, + Ticks.TICKS_PER_SECOND * 60 * PlayTimer.PLAYTIME_MINUTES + ); + this.queryAppliance(TeamTasks.class).addTask(team, TeamTasks.Type.TIME_KICK, kickTask); + } ), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) ); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 290fea9..af3fe66 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -2,10 +2,12 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector.FightDetector; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; @@ -59,17 +61,25 @@ public class VaroTeam { )); } - public void kickTeam(DisconnectInfo disconnectInfo) { - this.members.stream() + public List getOnlinePlayers() { + return this.members.stream() .map(member -> Bukkit.getPlayer(member.player.getUniqueId())) .filter(Objects::nonNull) + .toList(); + } + + public void kickTeam(DisconnectInfo disconnectInfo) { + this.getOnlinePlayers() .forEach(player -> player.kick(disconnectInfo.getComponent())); + Main.instance().getAppliance(TeamTasks.class).cancelTeamTasks(this); } public void timeOverKick() { boolean isInFight = Main.instance().getAppliance(FightDetector.class).isInFight(this); if(isInFight) { Main.logger().info(String.format("Cannot kick Team %s because it is in a fight!", this.name)); + this.getOnlinePlayers() + .forEach(player -> player.sendMessage("Du befindest dich in einer Kampfhandlung oder unmittelbar")); Bukkit.getScheduler().runTaskLater( Main.instance(), this::timeOverKick, From 3f1065fd3aacb640360ed9445f742e63238bee39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Thu, 19 Jun 2025 23:49:48 +0200 Subject: [PATCH 41/72] added teamlist command --- .../metaGameplay/teams/TeamListCommand.java | 28 +++++++++++++++++++ .../appliances/metaGameplay/teams/Teams.java | 6 ++++ 2 files changed, 34 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java new file mode 100644 index 0000000..31dcf70 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/TeamListCommand.java @@ -0,0 +1,28 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.stream.Collectors; + +public class TeamListCommand extends ApplianceCommand { + public TeamListCommand() { + super("teamList"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + String teams = this.getAppliance().getAllTeams().stream() + .map(team -> { + String members = team.members.stream() + .map(member -> String.format("%s(%s)", member.player.getName(), member.isDead ? "☠" : "♥")) + .collect(Collectors.joining(", ")); + return String.format("%s: %s", team.name, members); + }) + .collect(Collectors.joining("\n")); + + sender.sendMessage(teams); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index dbedcb5..35afa49 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -2,6 +2,7 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; @@ -183,4 +184,9 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam protected @NotNull List listeners() { return List.of(new ConnectivityChangeListener()); } + + @Override + protected @NotNull List> commands() { + return List.of(new TeamListCommand()); + } } From 5d33d2aff70fac8dfa7518a8d41d7b7b882fb8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 20 Jun 2025 14:29:46 +0200 Subject: [PATCH 42/72] updated adminmarker --- .../metaGameplay/adminMarker/AdminMarker.java | 2 +- .../appliances/metaGameplay/teams/Teams.java | 7 +--- .../adminInvisibility/AdminInvisibility.java | 39 ------------------- .../OnAdminJoinListener.java | 12 ------ 4 files changed, 2 insertions(+), 58 deletions(-) rename {craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack => common/src/main/java/eu/mhsl/craftattack/spawn/common}/appliances/metaGameplay/adminMarker/AdminMarker.java (88%) delete mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java delete mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java similarity index 88% rename from craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java index 32698d9..175e812 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.adminMarker; +package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 35afa49..4735c4e 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -23,7 +23,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; -public class Teams extends Appliance implements DisplayName.Prefixed, DisplayName.Colored { +public class Teams extends Appliance implements DisplayName.Prefixed { private final List teams = new ArrayList<>(); public Teams() { @@ -166,11 +166,6 @@ public class Teams extends Appliance implements DisplayName.Prefixed, DisplayNam if(team != null) team.kickTeam(disconnectInfo); } - @Override - public @Nullable TextColor getNameColor(Player player) { - return NamedTextColor.WHITE ; - } - @Override public @Nullable Component getNamePrefix(Player player) { VaroTeam team = this.getTeamFromPlayer(player.getUniqueId()); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java deleted file mode 100644 index 5886844..0000000 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/AdminInvisibility.java +++ /dev/null @@ -1,39 +0,0 @@ -package eu.mhsl.craftattack.spawn.varo.appliances.tooling.adminInvisibility; - -import eu.mhsl.craftattack.spawn.core.Main; -import eu.mhsl.craftattack.spawn.core.appliance.Appliance; -import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public class AdminInvisibility extends Appliance { - public void updateVisibility(PlayerJoinEvent event) { - Player target = event.getPlayer(); - boolean shouldBeHidden = target.isOp(); - for (Player viewer : Bukkit.getOnlinePlayers()) { - if (viewer.equals(target)) continue; - - if (shouldBeHidden) { - viewer.hidePlayer(Main.instance(), target); - } else { - viewer.showPlayer(Main.instance(), target); - } - } - - if(shouldBeHidden) { - target.playerListName(Component.empty()); - event.joinMessage(null); - } - } - - - @Override - protected @NotNull List listeners() { - return List.of(new OnAdminJoinListener()); - } -} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java deleted file mode 100644 index 885f859..0000000 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/adminInvisibility/OnAdminJoinListener.java +++ /dev/null @@ -1,12 +0,0 @@ -package eu.mhsl.craftattack.spawn.varo.appliances.tooling.adminInvisibility; - -import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; -import org.bukkit.event.EventHandler; -import org.bukkit.event.player.PlayerJoinEvent; - -class OnAdminJoinListener extends ApplianceListener { - @EventHandler - public void onJoin(PlayerJoinEvent event) { - this.getAppliance().updateVisibility(event); - } -} From 9ef4c2e96bda409b42841465c8f25b8eda2f414f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Fri, 20 Jun 2025 17:07:53 +0200 Subject: [PATCH 43/72] added playtimer ticket api --- .../appliances/metaGameplay/playTimer/PlayTimer.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index 3c8b461..268ed93 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -6,6 +6,7 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; import org.jetbrains.annotations.NotNull; @@ -19,6 +20,7 @@ import java.nio.file.Paths; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.NoSuchElementException; public class PlayTimer extends Appliance { public static final int PLAYTIME_MINUTES = 30; @@ -85,6 +87,14 @@ public class PlayTimer extends Appliance { @Override public void httpApi(HttpServer.ApiBuilder apiBuilder) { + record Ticket(String team, int tickets) {} + apiBuilder.get("tickets", request -> { + String teamName = request.queryParamsSafe("team"); + VaroTeam team = Main.instance().getAppliance(Teams.class).findTeamByName(teamName); + if(team == null) throw new NoSuchElementException("Team not found!"); + + return new Ticket(team.name, this.getTickets(team)); + }); } @Override From d71c0d768e49bde62848707080794fc526785c5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 11:31:16 +0200 Subject: [PATCH 44/72] configured shrinkingBorder for production use --- .../metaGameplay/shrinkingBorder/ShrinkingBorderListener.java | 2 ++ .../metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index c5a5580..8450b1f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -25,6 +25,8 @@ public class ShrinkingBorderListener extends ApplianceListener String actionBarText; if(remainingDays <= 0) { actionBarText = "Du befindest dich in der Worldborder!"; + } else if(remainingDays == 1) { + actionBarText = "Morgen ist die Worldborder hier! Ausloggen = ☠"; } else { actionBarText = String.format("In %d Tagen ist die Worldborder hier!", remainingDays); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java index 6653845..d73c934 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderSetting.java @@ -38,6 +38,6 @@ public class ShrinkingBorderSetting extends IntegerSetting implements Categorize @Override protected Integer defaultValue() { - return 1; + return 2; } } From 9acac488f20b31f4e52d53e6855e232031111001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 11:38:09 +0200 Subject: [PATCH 45/72] added api for querying admin-players --- .../metaGameplay/adminMarker/AdminMarker.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java index 175e812..03ae891 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,17 +1,30 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import net.kyori.adventure.text.format.TextColor; +import org.bukkit.Bukkit; import org.bukkit.Color; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; public class AdminMarker extends Appliance implements DisplayName.Colored { + public final static String adminPermission = "admin"; + @Override public @Nullable TextColor getNameColor(Player player) { - if(player.hasPermission("chatcolor")) + if(player.hasPermission(adminPermission)) return TextColor.color(Color.AQUA.asRGB()); // TODO read permission from config return TextColor.color(Color.WHITE.asRGB()); } + + @Override + public void httpApi(HttpServer.ApiBuilder apiBuilder) { + apiBuilder.get("isAdmin", request -> { + OfflinePlayer player = Bukkit.getOfflinePlayer(request.queryParams("player")); + return player.isOp(); + }); + } } From 220fb9e2294a53158728e04aab9c7aa37bf87dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 11:41:13 +0200 Subject: [PATCH 46/72] moved existing spawning behavior to craftattack --- .../appliances/tooling/spawnpoint/SetSpawnpointCommand.java | 2 +- .../tooling/spawnpoint/SpawnAtSpawnpointListener.java | 2 +- .../craftattack}/appliances/tooling/spawnpoint/Spawnpoint.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/spawnpoint/SetSpawnpointCommand.java (90%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java (89%) rename {common/src/main/java/eu/mhsl/craftattack/spawn/common => craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack}/appliances/tooling/spawnpoint/Spawnpoint.java (95%) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SetSpawnpointCommand.java similarity index 90% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SetSpawnpointCommand.java index 02df5d3..ad13c8b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SetSpawnpointCommand.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.spawnpoint; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import net.kyori.adventure.text.Component; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java similarity index 89% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java index 941136c..f517d97 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.spawnpoint; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import org.bukkit.event.EventHandler; diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/Spawnpoint.java similarity index 95% rename from common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java rename to craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/Spawnpoint.java index c619fdf..8dd37bd 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/spawnpoint/Spawnpoint.java @@ -1,4 +1,4 @@ -package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint; +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.spawnpoint; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; From 0d1e6070ced825667cd1e6c84c845267362f6a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 17:18:47 +0200 Subject: [PATCH 47/72] updated playtimer and teamtasks --- common/build.gradle | 1 + .../spawn/core/util/text/Countdown.java | 10 ++-- .../appliances/internal/teamTasks/Task.java | 6 +++ .../internal/teamTasks/TeamTasks.java | 15 +++--- .../internal/teamTasks/TeamTasksCommand.java | 2 +- .../teamTasks/tasks/BukkitTeamTask.java | 16 ++++++ .../teamTasks/tasks/CountdownTeamTask.java | 24 +++++++++ .../teams/ConnectivityChangeListener.java | 19 ++++--- .../appliances/metaGameplay/teams/Teams.java | 49 +++++++++++++++---- 9 files changed, 111 insertions(+), 31 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java diff --git a/common/build.gradle b/common/build.gradle index 578064a..f9f7a33 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -4,4 +4,5 @@ dependencies { compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java index bb5c7b0..7ba6540 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java @@ -34,12 +34,12 @@ public class Countdown { this.onDone = onDone; this.defaultAnnouncements = count -> { - if(this.current > 60 && this.current % 60 == 0) { - return new AnnouncementData(this.current / 60, "Minuten"); + if(count > 60 && count % 60 == 0) { + return new AnnouncementData(count / 60, "Minuten"); } - if(this.current <= 60 && (this.current <= 10 || this.current % 10 == 0)) { - return new AnnouncementData(this.current, "Sekunden"); + if(count <= 60 && (count <= 10 || count % 10 == 0)) { + return new AnnouncementData(count, "Sekunden"); } return null; @@ -87,7 +87,7 @@ public class Countdown { if(this.isDone()) { this.onDone.run(); - this.cancel(); + this.cancelIfRunning(); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java new file mode 100644 index 0000000..2c6bfa8 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java @@ -0,0 +1,6 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks; + +public interface Task { + void stopTask(); + boolean isRunning(); +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java index 37f66f5..6364b05 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java @@ -4,7 +4,6 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; -import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; import java.util.HashMap; @@ -20,25 +19,25 @@ public class TeamTasks extends Appliance { TIME_KICK } - private final Map> tasks = new HashMap<>(); + private final Map> tasks = new HashMap<>(); - private Map getTeamTasks(VaroTeam team) { + private Map getTeamTasks(VaroTeam team) { return this.tasks.computeIfAbsent(team, varoTeam -> new HashMap<>()); } - public Map getRunningTeamTasks(VaroTeam team) { + public Map getRunningTeamTasks(VaroTeam team) { return this.getTeamTasks(team).entrySet().stream() - .filter(entry -> !entry.getValue().isCancelled()) + .filter(entry -> entry.getValue().isRunning()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } public void cancelTeamTasks(VaroTeam team) { Main.logger().info(String.format("All TeamTasks for Team %s were cancelled: %s", team.name, this.getRunningTeamTasks(team))); - this.getTeamTasks(team).forEach((type, bukkitTask) -> bukkitTask.cancel()); + this.getTeamTasks(team).forEach((type, bukkitTask) -> bukkitTask.stopTask()); } - public void addTask(VaroTeam team, Type type, BukkitTask runnable) { - if(this.getTeamTasks(team).containsKey(type) && !this.getTeamTasks(team).get(type).isCancelled()) { + public void addTask(VaroTeam team, Type type, Task runnable) { + if(this.getTeamTasks(team).containsKey(type) && this.getTeamTasks(team).get(type).isRunning()) { throw new IllegalStateException(String.format("Task %s for Team %s was already running!", type.name(), team.name)); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java index fc39f21..fd16e83 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasksCommand.java @@ -28,7 +28,7 @@ public class TeamTasksCommand extends ApplianceCommand { sender.sendMessage( tasks.entrySet() .stream() - .map(entry -> String.format("%s: %d", entry.getKey().name(), entry.getValue().getTaskId())) + .map(entry -> String.format("%s: %s", entry.getKey().name(), entry.getValue().getClass().getSimpleName())) .collect(Collectors.joining("\n")) ); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java new file mode 100644 index 0000000..0d366ff --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java @@ -0,0 +1,16 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks; + +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.Task; +import org.bukkit.scheduler.BukkitTask; + +public abstract class BukkitTeamTask implements Task, BukkitTask { + @Override + public void stopTask() { + this.cancel(); + } + + @Override + public boolean isRunning() { + return !this.isCancelled(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java new file mode 100644 index 0000000..16ba024 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java @@ -0,0 +1,24 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks; + +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.Task; +import net.kyori.adventure.text.Component; + +import java.util.function.Consumer; +import java.util.function.Function; + +public class CountdownTeamTask extends Countdown implements Task { + public CountdownTeamTask(int countdownFrom, Function announcementBuilder, Consumer announcementConsumer, Runnable onDone) { + super(countdownFrom, announcementBuilder, announcementConsumer, onDone); + } + + @Override + public void stopTask() { + super.cancelIfRunning(); + } + + @Override + public boolean isRunning() { + return !super.isDone(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index a359cf1..d9c7aea 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -8,17 +8,21 @@ import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import java.util.Objects; + class ConnectivityChangeListener extends ApplianceListener { @EventHandler public void onLogin(AsyncPlayerPreLoginEvent event) { boolean result = this.getAppliance().canLogin(event.getUniqueId()); - event.kickMessage(new DisconnectInfo( - "Kein Teilnehmer", - "Du bist nicht als Teilnehmer registriert oder bist ausgeschieden!", - "Sollte dies ein Fehler sein, kontaktiere bitte einen Admin.", - event.getUniqueId() - ).getComponent()); - if(!result) event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + if(!result) { + event.kickMessage(new DisconnectInfo( + "Kein Teilnehmer", + "Du bist nicht als Teilnehmer registriert oder bist ausgeschieden!", + "Sollte dies ein Fehler sein, kontaktiere bitte einen Admin.", + event.getUniqueId() + ).getComponent()); + event.setLoginResult(AsyncPlayerPreLoginEvent.Result.KICK_OTHER); + } } @EventHandler @@ -37,6 +41,7 @@ class ConnectivityChangeListener extends ApplianceListener { } VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); + Objects.requireNonNull(team, "Team not found for player " + event.getPlayer().getUniqueId()); Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); // TODO: strike team this.getAppliance().enforceTeamLeave(event.getPlayer()); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 4735c4e..56ab8e5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -3,10 +3,12 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks.CountdownTeamTask; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import net.kyori.adventure.text.Component; @@ -17,7 +19,6 @@ import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.event.Listener; -import org.bukkit.scheduler.BukkitTask; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -56,7 +57,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed { updatedTeam.color() ); this.teams.add(newTeam); - Main.logger().info("Added missing team to Teams registry: " + newTeam); + Main.logger().info("Added missing team to Teams registry: " + newTeam.name); } } } @@ -70,10 +71,20 @@ public class Teams extends Appliance implements DisplayName.Prefixed { public boolean canLogin(UUID playerId) { OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(playerId); - if(offlinePlayer.isOp()) return true; + if(offlinePlayer.isOp()) { + Main.logger().info(String.format("Allowing player %s to login, because he ist OP!", playerId)); + return true; + } - return this.teams.stream() - .anyMatch(varoTeam -> varoTeam.hasMember(playerId) && !Objects.requireNonNull(varoTeam.getMemberById(playerId)).isDead); + Optional team = this.teams.stream() + .filter(varoTeam -> varoTeam.hasMember(playerId) && !Objects.requireNonNull(varoTeam.getMemberById(playerId)).isDead) + .findAny(); + + team.ifPresentOrElse( + found -> Main.logger().info(String.format("Player %s is in Team %s!", playerId, found.name)), + () -> Main.logger().info(String.format("No valid Team found for %s (or he is in a Team but dead)!", playerId)) + ); + return team.isPresent(); } public @Nullable VaroTeam getTeamFromPlayer(UUID playerId) { @@ -143,12 +154,30 @@ public class Teams extends Appliance implements DisplayName.Prefixed { .ifPresentOrElse( member -> team.kickTeam(teamNotCompleteInfo), () -> { - BukkitTask kickTask = Bukkit.getScheduler().runTaskLater( - Main.instance(), - team::timeOverKick, - Ticks.TICKS_PER_SECOND * 60 * PlayTimer.PLAYTIME_MINUTES + Main.logger().info(String.format("Starting Time countdown for Team %s with %d", team.name, PlayTimer.PLAYTIME_MINUTES)); + CountdownTeamTask countdown = new CountdownTeamTask( + 60 * PlayTimer.PLAYTIME_MINUTES, + announcementData -> Component.text( + String.format("Es verbleiben noch %d %s Spielzeit!", announcementData.count(), announcementData.unit()), + NamedTextColor.RED + ), + component -> team.getOnlinePlayers().forEach(player -> player.sendMessage(component)), + team::timeOverKick ); - this.queryAppliance(TeamTasks.class).addTask(team, TeamTasks.Type.TIME_KICK, kickTask); + countdown.setDefaultAnnouncements(count -> { + if(count > 300) return null; + if(count > 60 && count % 60 == 0) { + return new Countdown.AnnouncementData(count / 60, "Minuten"); + } + + if(count <= 30 && (count <= 10 || count % 10 == 0)) { + return new Countdown.AnnouncementData(count, "Sekunden"); + } + + return null; + }); + countdown.start(); + this.queryAppliance(TeamTasks.class).addTask(team, TeamTasks.Type.TIME_KICK, countdown); } ), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) From 427aed9a7e60b12af55a06d59d83b02371d0b972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 17:55:52 +0200 Subject: [PATCH 48/72] fixed bug in teamtasks --- .../eu/mhsl/craftattack/spawn/core/util/text/Countdown.java | 2 +- .../appliances/tooling/projectStart/ProjectStart.java | 1 - .../spawn/varo/appliances/internal/teamTasks/Task.java | 2 +- .../spawn/varo/appliances/internal/teamTasks/TeamTasks.java | 6 +++--- .../appliances/internal/teamTasks/tasks/BukkitTeamTask.java | 2 +- .../internal/teamTasks/tasks/CountdownTeamTask.java | 4 ++-- 6 files changed, 8 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java index 7ba6540..5241120 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/text/Countdown.java @@ -91,7 +91,7 @@ public class Countdown { } } - public boolean isDone() { + private boolean isDone() { return this.current <= 0; } diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java index e75d1ce..df6832a 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/projectStart/ProjectStart.java @@ -59,7 +59,6 @@ public class ProjectStart extends Appliance { private final Map, Boolean> gameRulesAfterStart = Map.ofEntries( entry(GameRule.DO_DAYLIGHT_CYCLE, true), entry(GameRule.DO_INSOMNIA, true), - entry(GameRule.ANNOUNCE_ADVANCEMENTS, true), entry(GameRule.DISABLE_RAIDS, false), entry(GameRule.DO_FIRE_TICK, true), entry(GameRule.DO_ENTITY_DROPS, true), diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java index 2c6bfa8..7873eb7 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/Task.java @@ -2,5 +2,5 @@ package eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks; public interface Task { void stopTask(); - boolean isRunning(); + boolean isTaskRunning(); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java index 6364b05..c817b99 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java @@ -27,17 +27,17 @@ public class TeamTasks extends Appliance { public Map getRunningTeamTasks(VaroTeam team) { return this.getTeamTasks(team).entrySet().stream() - .filter(entry -> entry.getValue().isRunning()) + .filter(entry -> entry.getValue().isTaskRunning()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); } public void cancelTeamTasks(VaroTeam team) { Main.logger().info(String.format("All TeamTasks for Team %s were cancelled: %s", team.name, this.getRunningTeamTasks(team))); - this.getTeamTasks(team).forEach((type, bukkitTask) -> bukkitTask.stopTask()); + this.getTeamTasks(team).forEach((type, task) -> task.stopTask()); } public void addTask(VaroTeam team, Type type, Task runnable) { - if(this.getTeamTasks(team).containsKey(type) && this.getTeamTasks(team).get(type).isRunning()) { + if(this.getTeamTasks(team).containsKey(type) && this.getTeamTasks(team).get(type).isTaskRunning()) { throw new IllegalStateException(String.format("Task %s for Team %s was already running!", type.name(), team.name)); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java index 0d366ff..6ffbdf4 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/BukkitTeamTask.java @@ -10,7 +10,7 @@ public abstract class BukkitTeamTask implements Task, BukkitTask { } @Override - public boolean isRunning() { + public boolean isTaskRunning() { return !this.isCancelled(); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java index 16ba024..0909ee7 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/tasks/CountdownTeamTask.java @@ -18,7 +18,7 @@ public class CountdownTeamTask extends Countdown implements Task { } @Override - public boolean isRunning() { - return !super.isDone(); + public boolean isTaskRunning() { + return super.isRunning(); } } From 66d84f46775c4ffd0d4c3be8c2718b9f844fe2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 18:15:25 +0200 Subject: [PATCH 49/72] projectstart for varo --- .../tooling/projectStart/ProjectStart.java | 173 ++++++++++++++++++ .../command/ProjectStartCancelCommand.java | 25 +++ .../command/ProjectStartCommand.java | 30 +++ .../command/ProjectStartResetCommand.java | 18 ++ .../listener/NoAdvancementsListener.java | 22 +++ .../listener/PlayerInvincibleListener.java | 27 +++ 6 files changed, 295 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/ProjectStart.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCommand.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartResetCommand.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/NoAdvancementsListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/ProjectStart.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/ProjectStart.java new file mode 100644 index 0000000..ea0b0d0 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/ProjectStart.java @@ -0,0 +1,173 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import eu.mhsl.craftattack.spawn.core.util.entity.PlayerUtils; +import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command.ProjectStartCancelCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command.ProjectStartCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command.ProjectStartResetCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.listener.NoAdvancementsListener; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.listener.PlayerInvincibleListener; +import net.kyori.adventure.sound.Sound; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.*; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import static java.util.Map.entry; +import static org.bukkit.Sound.MUSIC_DISC_PRECIPICE; + +public class ProjectStart extends Appliance { + private final int startMusicAt = 293; + private final World startWorld = Bukkit.getWorld("world"); + + private final Countdown countdown = new Countdown( + this.localConfig().getInt("countdown"), + this::format, + this::announce, + this::startProject + ); + + private final Map, Boolean> gameRulesAfterStart = Map.ofEntries( + entry(GameRule.DO_DAYLIGHT_CYCLE, true), + entry(GameRule.DO_INSOMNIA, true), + entry(GameRule.DISABLE_RAIDS, false), + entry(GameRule.DO_FIRE_TICK, true), + entry(GameRule.DO_ENTITY_DROPS, true), + entry(GameRule.DO_PATROL_SPAWNING, true), + entry(GameRule.DO_TRADER_SPAWNING, true), + entry(GameRule.DO_WEATHER_CYCLE, true), + entry(GameRule.FALL_DAMAGE, true), + entry(GameRule.FIRE_DAMAGE, true) + ); + + public ProjectStart() { + super("countdown"); + + this.countdown.addCustomAnnouncement( + new Countdown.CustomAnnouncements( + counter -> counter == this.startMusicAt, + counter -> { + Objects.requireNonNull(this.startWorld); + this.startWorld.playSound(new Location(this.startWorld, 152, 77, 179), MUSIC_DISC_PRECIPICE, SoundCategory.RECORDS, 500f, 1f); + } + ) + ); + } + + private Component format(Countdown.AnnouncementData data) { + return Component.text() + .append(ComponentUtil.createRainbowText("Varo", 10)) + .append(Component.text(" startet in ", NamedTextColor.GOLD)) + .append(Component.text(data.count(), NamedTextColor.AQUA)) + .append(Component.text(" " + data.unit() + "!", NamedTextColor.GOLD)) + .build(); + } + + private void announce(Component message) { + IteratorUtil.onlinePlayers(player -> player.sendMessage(message)); + } + + private void resetAdvancements() { + Bukkit.getServer().advancementIterator().forEachRemaining( + advancement -> Bukkit.getOnlinePlayers().forEach( + player -> player.getAdvancementProgress(advancement).getAwardedCriteria().forEach( + criteria -> player.getAdvancementProgress(advancement).revokeCriteria(criteria) + ) + ) + ); + } + + public void startCountdown() { + if(!this.isEnabled()) return; + this.countdown.start(); + } + + public void cancelCountdown() { + this.countdown.cancel(); + this.restoreBeforeStart(); + } + + public void startProject() { + this.setEnabled(false); + + IteratorUtil.worlds(World::getWorldBorder, worldBorder -> worldBorder.setSize(5000)); + IteratorUtil.worlds(world -> IteratorUtil.setGameRules(this.gameRulesAfterStart, false)); + IteratorUtil.worlds(world -> world.setFullTime(0)); + + Bukkit.getOnlinePlayers().forEach(player -> { + player.setFoodLevel(20); + player.setHealth(20); + player.getInventory().clear(); + player.setGameMode(GameMode.SURVIVAL); + player.setExp(0); + player.setLevel(0); + + player.playSound(Sound.sound(org.bukkit.Sound.ITEM_GOAT_HORN_SOUND_5, Sound.Source.MASTER, 500f, 1f)); + + player.sendMessage(Component.text("Viel Spaß bei Varo!", NamedTextColor.GREEN)); + + player.setStatistic(Statistic.TIME_SINCE_REST, 0); + PlayerUtils.resetStatistics(player); + }); + + this.resetAdvancements(); + } + + public void restoreBeforeStart() { + this.setEnabled(true); + + IteratorUtil.onlinePlayers(Player::stopAllSounds); + + IteratorUtil.worlds(World::getWorldBorder, worldBorder -> { + worldBorder.setSize(this.localConfig().getLong("worldborder-before")); + worldBorder.setWarningDistance(0); + worldBorder.setDamageAmount(0); + }); + + IteratorUtil.worlds(world -> world, world -> IteratorUtil.setGameRules(this.gameRulesAfterStart, true)); + this.resetAdvancements(); + } + + public boolean isEnabled() { + return this.localConfig().getBoolean("enabled"); + } + + public void setEnabled(boolean enabled) { + this.localConfig().set("enabled", enabled); + Configuration.saveChanges(); + } + + public Countdown getCountdown() { + return this.countdown; + } + + @Override + @NotNull + protected List listeners() { + return List.of( + new PlayerInvincibleListener(), + new NoAdvancementsListener() + ); + } + + @Override + @NotNull + protected List> commands() { + return List.of( + new ProjectStartCommand(), + new ProjectStartCancelCommand(), + new ProjectStartResetCommand() + ); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java new file mode 100644 index 0000000..b58042f --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java @@ -0,0 +1,25 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.ProjectStart; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class ProjectStartCancelCommand extends ApplianceCommand { + public ProjectStartCancelCommand() { + super("projectStartCancel"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(this.getAppliance().getCountdown().isRunning()) { + this.getAppliance().cancelCountdown(); + sender.sendMessage(Component.text("Countdown cancelled successfully!").color(NamedTextColor.GREEN)); + } else { + sender.sendMessage(Component.text("Countdown is not running!").color(NamedTextColor.RED)); + } + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCommand.java new file mode 100644 index 0000000..921bf10 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartCommand.java @@ -0,0 +1,30 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.ProjectStart; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class ProjectStartCommand extends ApplianceCommand { + public ProjectStartCommand() { + super("projectStart"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(!this.getAppliance().isEnabled()) { + sender.sendMessage(Component.text("Countdown not enabled or executed once before!").color(NamedTextColor.RED)); + return; + } + + if(this.getAppliance().getCountdown().isRunning()) { + sender.sendMessage(Component.text("Countdown already running!").color(NamedTextColor.RED)); + return; + } + + this.getAppliance().startCountdown(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartResetCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartResetCommand.java new file mode 100644 index 0000000..2abfade --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/command/ProjectStartResetCommand.java @@ -0,0 +1,18 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.command; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.ProjectStart; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class ProjectStartResetCommand extends ApplianceCommand { + public ProjectStartResetCommand() { + super("projectStartReset"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + this.getAppliance().restoreBeforeStart(); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/NoAdvancementsListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/NoAdvancementsListener.java new file mode 100644 index 0000000..ecbb120 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/NoAdvancementsListener.java @@ -0,0 +1,22 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.listener; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.ProjectStart; +import org.bukkit.advancement.Advancement; +import org.bukkit.advancement.AdvancementProgress; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerAdvancementDoneEvent; + +public class NoAdvancementsListener extends ApplianceListener { + @EventHandler + public void onAdvancement(PlayerAdvancementDoneEvent event) { + if(!this.getAppliance().isEnabled()) return; + event.message(null); + + Advancement advancement = event.getAdvancement(); + AdvancementProgress progress = event.getPlayer().getAdvancementProgress(advancement); + for(String criteria : progress.getAwardedCriteria()) { + progress.revokeCriteria(criteria); + } + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java new file mode 100644 index 0000000..829bcc1 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java @@ -0,0 +1,27 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.listener; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.varo.appliances.tooling.projectStart.ProjectStart; +import io.papermc.paper.event.player.PrePlayerAttackEntityEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; + +public class PlayerInvincibleListener extends ApplianceListener { + @EventHandler + public void onDamage(EntityDamageEvent event) { + if(!(event.getEntity() instanceof Player)) return; + if(this.getAppliance().isEnabled()) event.setCancelled(true); + } + + @EventHandler + public void onHunger(FoodLevelChangeEvent event) { + if(this.getAppliance().isEnabled()) event.setCancelled(true); + } + + @EventHandler + public void onHit(PrePlayerAttackEntityEvent event) { + if(this.getAppliance().isEnabled()) event.setCancelled(true); + } +} From 72e88ce491dca43c4095a61021ffa31bffd2690d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 18:51:37 +0200 Subject: [PATCH 50/72] added spawnpoint for varo --- .../spawnpoint/SetSpawnpointCommand.java | 27 +++++ .../spawnpoint/SpawnAtSpawnpointListener.java | 20 ++++ .../tooling/spawnpoint/Spawnpoint.java | 105 ++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SetSpawnpointCommand.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SetSpawnpointCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SetSpawnpointCommand.java new file mode 100644 index 0000000..52c0b71 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SetSpawnpointCommand.java @@ -0,0 +1,27 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.spawnpoint; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +class SetSpawnpointCommand extends ApplianceCommand.PlayerChecked { + public SetSpawnpointCommand() { + super("setSpawnpoint"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length < 1) throw new Error("Specify playername for the Spawnpoint"); + var location = this.getPlayer().getLocation() + .toBlockLocation() + .add(0.5, 0.5, 0.5); + location.setYaw(0); + location.setPitch(0); + + this.getAppliance().setSpawnpoint(location, args[0]); + sender.sendMessage(Component.text("Spawnpoint updated!", NamedTextColor.GREEN)); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java new file mode 100644 index 0000000..3f8475f --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java @@ -0,0 +1,20 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.spawnpoint; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerRespawnEvent; + +class SpawnAtSpawnpointListener extends ApplianceListener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + this.getAppliance().handlePlayerLogin(event.getPlayer()); + } + + @EventHandler + public void onRespawn(PlayerRespawnEvent event) { + if(event.isBedSpawn()) return; + if(event.isAnchorSpawn()) return; + event.setRespawnLocation(this.getAppliance().getSpawnPoint(event.getPlayer())); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java new file mode 100644 index 0000000..8974355 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java @@ -0,0 +1,105 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.tooling.spawnpoint; + +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.persistence.PersistentDataContainer; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class Spawnpoint extends Appliance { + private static final String namespace = Spawnpoint.class.getSimpleName().toLowerCase(Locale.ROOT); + public static NamespacedKey alreadySpawned = new NamespacedKey(namespace, "alreadySpawned".toLowerCase()); + + private final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath() + "/spawnpoints.json"); + + private final Map spawnPoints = new HashMap<>(); + + public Spawnpoint() { + super("spawnpoint"); + this.load(); + } + + private record LocationDto(String world, double x, double y, double z, float yaw, float pitch) { + static LocationDto from(Location loc) { + return new LocationDto(loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); + } + + Location toLocation() { + return new Location(Bukkit.getWorld(this.world), this.x, this.y, this.z, this.yaw, this.pitch); + } + } + + private void load() { + if (!Files.exists(this.saveFile)) return; + try (Reader reader = Files.newBufferedReader(this.saveFile)) { + Type type = new TypeToken>() {}.getType(); + Map raw = new Gson().fromJson(reader, type); + for (var entry : raw.entrySet()) { + this.spawnPoints.put(UUID.fromString(entry.getKey()), entry.getValue().toLocation()); + } + } catch (IOException e) { + Main.logger().warning("Failed to load spawnpoints: " + e.getMessage()); + } + } + + private void save() { + try { + Files.createDirectories(this.saveFile.getParent()); + Map raw = new HashMap<>(); + for (var entry : this.spawnPoints.entrySet()) { + raw.put(entry.getKey().toString(), LocationDto.from(entry.getValue())); + } + try (Writer writer = Files.newBufferedWriter(this.saveFile)) { + new Gson().toJson(raw, writer); + } + } catch (IOException e) { + Main.logger().warning("Failed to save spawnpoints: " + e.getMessage()); + } + } + + public void setSpawnpoint(Location location, String playerName) { + UUID uuid = Bukkit.getOfflinePlayer(playerName).getUniqueId(); + this.spawnPoints.put(uuid, location); + this.save(); + } + + public void handlePlayerLogin(Player player) { + PersistentDataContainer dataContainer = player.getPersistentDataContainer(); + if(dataContainer.has(alreadySpawned)) return; + player.teleportAsync(this.spawnPoints.get(player.getUniqueId())); + player.setGameMode(GameMode.ADVENTURE); + dataContainer.set(alreadySpawned, PersistentDataType.BOOLEAN, true); + } + + public Location getSpawnPoint(Player player) { + return this.spawnPoints.get(player.getUniqueId()); + } + + @Override + protected @NotNull List> commands() { + return List.of(new SetSpawnpointCommand()); + } + + @Override + protected @NotNull List listeners() { + return List.of(new SpawnAtSpawnpointListener()); + } +} From c71a2567bd6359704457b23b0ce466f13839b391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 20:18:32 +0200 Subject: [PATCH 51/72] fixed adminmarker handling api data wrong --- .../appliances/metaGameplay/adminMarker/AdminMarker.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java index 03ae891..aae8123 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java @@ -1,5 +1,6 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; @@ -10,6 +11,8 @@ import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.jetbrains.annotations.Nullable; +import java.util.UUID; + public class AdminMarker extends Appliance implements DisplayName.Colored { public final static String adminPermission = "admin"; @@ -23,7 +26,8 @@ public class AdminMarker extends Appliance implements DisplayName.Colored { @Override public void httpApi(HttpServer.ApiBuilder apiBuilder) { apiBuilder.get("isAdmin", request -> { - OfflinePlayer player = Bukkit.getOfflinePlayer(request.queryParams("player")); + OfflinePlayer player = Bukkit.getOfflinePlayer(UUID.fromString(request.queryParams("player"))); + Main.logger().info(String.format("Adminstatus requested for %s, response: %s", player.getUniqueId(), player.isOp())); return player.isOp(); }); } From 831eacaf47b3e2c499c4026d113ff0048c283b48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 21:22:49 +0200 Subject: [PATCH 52/72] added verbose logging for api requests added autostrike for early leave --- .../spawn/core/api/client/HttpRepository.java | 11 ++++++----- .../teams/ConnectivityChangeListener.java | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index 502f2f4..ee9eebf 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -45,7 +45,7 @@ public abstract class HttpRepository extends Repository { .POST(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, data); } protected ReqResp put(String command, TInput data, Class outputType) { @@ -58,7 +58,7 @@ public abstract class HttpRepository extends Repository { .PUT(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, data); } protected ReqResp get(String command, Class outputType) { @@ -71,7 +71,7 @@ public abstract class HttpRepository extends Repository { .GET() .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, null); } private URI getUri(String command, Consumer parameters) { @@ -103,11 +103,12 @@ public abstract class HttpRepository extends Repository { return builder; } - private ReqResp execute(HttpRequest request, Class clazz) { + private ReqResp execute(HttpRequest request, Class clazz, Object original) { ReqResp rawResponse = this.sendHttp(request); Main.logger().info(String.format( - "Request: %s\nResponse: %s", + "Request: %s\nRequest-Data: %s\nResponse: %s", request, + this.gson.toJson(original), rawResponse )); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index d9c7aea..e733637 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -1,6 +1,8 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; +import eu.mhsl.craftattack.spawn.common.api.repositories.VaroReportRepository; import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; @@ -40,10 +42,24 @@ class ConnectivityChangeListener extends ApplianceListener { return; } + if(event.getPlayer().isOp()) return; + VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); Objects.requireNonNull(team, "Team not found for player " + event.getPlayer().getUniqueId()); Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); - // TODO: strike team + + VaroReportRepository.StrikeCreationInfo report = new VaroReportRepository.StrikeCreationInfo( + null, + event.getPlayer().getUniqueId(), + "early left", + "player left the server too early", + null, + null, + 1 + ); + ReqResp response = Main.instance().getRepositoryLoader().getRepository(VaroReportRepository.class).createStrike(report); + Main.logger().info(String.format("Autostrike response for Team %s: %s", team.name, response)); + this.getAppliance().enforceTeamLeave(event.getPlayer()); } } From f26f4ed56a950a5802fd8169fb4a9eca9b42d4fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 21:35:31 +0200 Subject: [PATCH 53/72] cleanup --- .../metaGameplay/fightDetector/FightDetector.java | 1 - .../fightDetector/FightOnDistanceListener.java | 7 ------- .../spawn/varo/appliances/metaGameplay/teams/VaroTeam.java | 4 +++- 3 files changed, 3 insertions(+), 9 deletions(-) delete mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java index e87c646..3050008 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java @@ -92,7 +92,6 @@ public class FightDetector extends Appliance { @Override protected @NotNull List listeners() { return List.of( - new FightOnDistanceListener(), new FightOnInteractionListener() ); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java deleted file mode 100644 index ddc4d46..0000000 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnDistanceListener.java +++ /dev/null @@ -1,7 +0,0 @@ -package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector; - -import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; - -class FightOnDistanceListener extends ApplianceListener { - //TODO implementation -} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index af3fe66..07508d5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -79,7 +79,9 @@ public class VaroTeam { if(isInFight) { Main.logger().info(String.format("Cannot kick Team %s because it is in a fight!", this.name)); this.getOnlinePlayers() - .forEach(player -> player.sendMessage("Du befindest dich in einer Kampfhandlung oder unmittelbar")); + .forEach(player -> player.sendActionBar( + "Du befindest dich in einer Kampfhandlung oder in der Nähe eines gegnerischen Teams! Der Kick wird verzögert!" + )); Bukkit.getScheduler().runTaskLater( Main.instance(), this::timeOverKick, From 1aad8f07c40efaf5dfdce7084e67e4a1f6903f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 21 Jun 2025 23:16:30 +0200 Subject: [PATCH 54/72] various bugfixes --- .../fightDetector/FightDetector.java | 1 + .../joinProtection/JoinProtection.java | 2 +- .../metaGameplay/strike/Strike.java | 37 +++++++++++++++++++ .../metaGameplay/teams/VaroTeam.java | 4 +- 4 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java index 3050008..6b3c0d4 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java @@ -66,6 +66,7 @@ public class FightDetector extends Appliance { VaroTeam otherTeam = this.queryAppliance(Teams.class).getTeamFromPlayer(otherPlayer.getUniqueId()); if (otherTeam == null || ownTeam.equals(otherTeam)) continue; + if(player.getLocation().getWorld().equals(otherPlayer.getLocation().getWorld())) continue; if (player.getLocation().distance(otherPlayer.getLocation()) <= BLOCK_RADIUS) { this.setInFight(ownTeam); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java index a91a17b..f2abd06 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/joinProtection/JoinProtection.java @@ -71,7 +71,7 @@ public class JoinProtection extends Appliance { Component.text( secondsLeft > 0 ? String.format("Du bist in %d Sekunden angreifbar!", secondsLeft) - : "Du jetzt angreifbar!", + : "Du bist jetzt angreifbar!", NamedTextColor.RED ) ); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java new file mode 100644 index 0000000..9d7451a --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java @@ -0,0 +1,37 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; + +import java.util.List; +import java.util.Objects; +import java.util.UUID; +import java.util.stream.Collectors; + +public class Strike extends Appliance { + @Override + public void httpApi(HttpServer.ApiBuilder apiBuilder) { + record StrikeInfo(List users, int totalWeight) { + } + apiBuilder.post("update", StrikeInfo.class, (data, request) -> { + Main.instance().getLogger().info(String.format( + "API Triggered Strike-Profile update for %s", + data.users.stream().map(UUID::toString).collect(Collectors.joining(", "))) + ); + + VaroTeam team = null; + for(UUID uuid : data.users) { + team = this.queryAppliance(Teams.class).getTeamFromPlayer(uuid); + if(team != null) break; + } + Objects.requireNonNull(team); + + System.out.println(team.name); + + return HttpServer.nothing; + }); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 07508d5..7b3da58 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -79,8 +79,8 @@ public class VaroTeam { if(isInFight) { Main.logger().info(String.format("Cannot kick Team %s because it is in a fight!", this.name)); this.getOnlinePlayers() - .forEach(player -> player.sendActionBar( - "Du befindest dich in einer Kampfhandlung oder in der Nähe eines gegnerischen Teams! Der Kick wird verzögert!" + .forEach(player -> player.sendMessage( + "Du befindest dich in einer Kampfhandlung oder in der Nähe eines gegnerischen Teams. Der Kick wird verzögert!" )); Bukkit.getScheduler().runTaskLater( Main.instance(), From 76297bb3af6c36b1d1cb8d8ed0e46d31f86b0b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 22 Jun 2025 10:34:27 +0200 Subject: [PATCH 55/72] WIP: basic strike handling --- .../metaGameplay/strike/CordLeak.java | 75 ++++++++++++++++ .../metaGameplay/strike/InvClear.java | 63 +++++++++++++ .../strike/OnStrikeActionListener.java | 12 +++ .../metaGameplay/strike/Strike.java | 90 +++++++++++++++++-- 4 files changed, 235 insertions(+), 5 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java new file mode 100644 index 0000000..f6925d3 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java @@ -0,0 +1,75 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; + +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; +import org.bukkit.Bukkit; +import org.bukkit.Location; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +public class CordLeak { + private static final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath(), "cordleak.json"); + private static final Map locations = new HashMap<>(); + + static { + load(); + } + + private record LocationDto(String world, double x, double y, double z, float yaw, float pitch) { + static LocationDto from(Location loc) { + return new LocationDto(loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); + } + + Location toLocation() { + return new Location(Bukkit.getWorld(this.world), this.x, this.y, this.z, this.yaw, this.pitch); + } + } + + public static void update() { + IteratorUtil.onlinePlayers(player -> locations.put(player.getUniqueId(), player.getLocation())); + Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), CordLeak::save); + } + + private static void load() { + if (!Files.exists(saveFile)) return; + try (Reader reader = Files.newBufferedReader(saveFile)) { + Type type = new TypeToken>() {}.getType(); + Map raw = new Gson().fromJson(reader, type); + for (Map.Entry entry : raw.entrySet()) { + locations.put(UUID.fromString(entry.getKey()), entry.getValue().toLocation()); + } + } catch (IOException e) { + Main.logger().warning("Failed to load CordLeak data: " + e.getMessage()); + } + } + + private static void save() { + try { + Files.createDirectories(saveFile.getParent()); + Map raw = new HashMap<>(); + for (Map.Entry entry : locations.entrySet()) { + raw.put(entry.getKey().toString(), LocationDto.from(entry.getValue())); + } + try (Writer writer = Files.newBufferedWriter(saveFile)) { + new Gson().toJson(raw, writer); + } + } catch (IOException e) { + Main.logger().warning("Failed to save CordLeak data: " + e.getMessage()); + } + } + + public static Location getLastKnownLocation(UUID uuid) { + return locations.get(uuid); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java new file mode 100644 index 0000000..135d3de --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java @@ -0,0 +1,63 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; + +import com.google.common.reflect.TypeToken; +import com.google.gson.Gson; +import eu.mhsl.craftattack.spawn.core.Main; +import org.bukkit.Bukkit; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.lang.reflect.Type; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.*; + +public class InvClear { + private static final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath(), "invClear.json"); + private static final List players = new ArrayList<>(); + + static { + load(); + } + + public static void add(UUID player) { + players.add(player); + Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), InvClear::save); + } + + public static boolean contains(UUID player) { + return players.contains(player); + } + + public static void remove(UUID player) { + players.remove(player); + Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), InvClear::save); + } + + private static void load() { + if (!Files.exists(saveFile)) return; + try (Reader reader = Files.newBufferedReader(saveFile)) { + Type type = new TypeToken>() {}.getType(); + List loaded = new Gson().fromJson(reader, type); + if (loaded != null) { + players.clear(); + players.addAll(loaded); + } + } catch (IOException e) { + Main.logger().warning("Failed to load InvClear data: " + e.getMessage()); + } + } + + private static void save() { + try { + Files.createDirectories(saveFile.getParent()); + try (Writer writer = Files.newBufferedWriter(saveFile)) { + new Gson().toJson(players, writer); + } + } catch (IOException e) { + Main.logger().warning("Failed to save InvClear data: " + e.getMessage()); + } + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java new file mode 100644 index 0000000..0fd5a88 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java @@ -0,0 +1,12 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerJoinEvent; + +public class OnStrikeActionListener extends ApplianceListener { + @EventHandler + public void onJoin(PlayerJoinEvent event) { + this.getAppliance().checkJoin(event.getPlayer()); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java index 9d7451a..f0c0bf1 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java @@ -3,15 +3,40 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.ComponentBuilder; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.util.Ticks; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; public class Strike extends Appliance { + public Strike() { + Bukkit.getScheduler().scheduleSyncRepeatingTask( + Main.instance(), + CordLeak::update, + Ticks.TICKS_PER_SECOND, + Ticks.TICKS_PER_SECOND * 3 + ); + } + + public void leakCoordinates() { + } + @Override public void httpApi(HttpServer.ApiBuilder apiBuilder) { record StrikeInfo(List users, int totalWeight) { @@ -22,16 +47,71 @@ public class Strike extends Appliance { data.users.stream().map(UUID::toString).collect(Collectors.joining(", "))) ); - VaroTeam team = null; + VaroTeam select = null; for(UUID uuid : data.users) { - team = this.queryAppliance(Teams.class).getTeamFromPlayer(uuid); - if(team != null) break; + select = this.queryAppliance(Teams.class).getTeamFromPlayer(uuid); + if(select != null) break; } - Objects.requireNonNull(team); + Objects.requireNonNull(select); + VaroTeam team = select; - System.out.println(team.name); + switch(data.totalWeight) { + case 1 -> { + Main.logger().info(String.format("Cord leak for Team %s", team.name)); + ComponentBuilder text = Component.text() + .append( + Component.text( + String.format("Das Team %s hat einen Strike erhalten. Daher werden folgende Koordinaten des Teams veröffentlicht:", team.name), + NamedTextColor.RED + ) + ); + + data.users.forEach(uuid -> { + OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); + Location cords = CordLeak.getLastKnownLocation(uuid); + if(cords == null) return; + + text.appendNewline(); + text.append(Component.text(Objects.requireNonNull(player.getName()), NamedTextColor.DARK_AQUA)); + text.append(Component.text(": ", NamedTextColor.GRAY)); + text.append(Component.text( + String.format( + "(%s) %d, %d, %d", + cords.getWorld().getName(), + cords.getBlockX(), + cords.getBlockY(), + cords.getBlockZ() + ), + NamedTextColor.AQUA) + ); + }); + + IteratorUtil.onlinePlayers(player -> player.sendMessage(text)); + } + + case 2 -> team.members.forEach(member -> { + Optional player = Optional.ofNullable(Bukkit.getPlayer(member.player.getUniqueId())); + player.ifPresentOrElse( + p -> p.getInventory().clear(), + () -> InvClear.add(member.player.getUniqueId()) + ); + }); + case 3 -> team.members.forEach(member -> member.player.banPlayer("projektausschluss")); + } return HttpServer.nothing; }); } + + public void checkJoin(@NotNull Player player) { + if(InvClear.contains(player.getUniqueId())) { + player.getInventory().clear(); + InvClear.remove(player.getUniqueId()); + } + } + + @Override + protected @NotNull List listeners() { + return List.of(new OnStrikeActionListener()); + } } From 0ce69f207f48a6b794b535e3c07a56abdc33083c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 22 Jun 2025 10:59:38 +0200 Subject: [PATCH 56/72] fixed bugs in strike handling --- .../metaGameplay/strike/Strike.java | 38 ++++++++++++++----- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java index f0c0bf1..ece4f0b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java @@ -6,6 +6,7 @@ import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.util.IteratorUtil; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; +import io.papermc.paper.ban.BanListType; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; @@ -18,10 +19,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; public class Strike extends Appliance { @@ -37,16 +35,22 @@ public class Strike extends Appliance { public void leakCoordinates() { } + record StrikeInfo(List users, int totalWeight) { + } @Override public void httpApi(HttpServer.ApiBuilder apiBuilder) { - record StrikeInfo(List users, int totalWeight) { - } apiBuilder.post("update", StrikeInfo.class, (data, request) -> { Main.instance().getLogger().info(String.format( "API Triggered Strike-Profile update for %s", data.users.stream().map(UUID::toString).collect(Collectors.joining(", "))) ); + this.processUpdate(data); + return HttpServer.nothing; + }); + } + private void processUpdate(StrikeInfo data) { + try { VaroTeam select = null; for(UUID uuid : data.users) { select = this.queryAppliance(Teams.class).getTeamFromPlayer(uuid); @@ -56,6 +60,11 @@ public class Strike extends Appliance { VaroTeam team = select; switch(data.totalWeight) { + case 0 -> team.members.forEach(member -> { + Main.logger().info(String.format("Unbanning player %s because there are now 0 Strikes!", member.player.getName())); + Bukkit.getBanList(BanListType.PROFILE).pardon(member.player.getPlayerProfile()); + }); + case 1 -> { Main.logger().info(String.format("Cord leak for Team %s", team.name)); ComponentBuilder text = Component.text() @@ -96,11 +105,20 @@ public class Strike extends Appliance { () -> InvClear.add(member.player.getUniqueId()) ); }); - case 3 -> team.members.forEach(member -> member.player.banPlayer("projektausschluss")); - } - return HttpServer.nothing; - }); + case 3 -> { + team.members.forEach(member -> { + Main.logger().info(String.format("Banning player %s because of third Strike!", member.player.getName())); + Bukkit.getBanList(BanListType.PROFILE) + .addBan(member.player.getPlayerProfile(), "projektausschluiss", (Date) null, null); + }); + team.getOnlinePlayers().forEach(Player::kick); + } + } + } catch(Exception e) { + Main.logger().warning("Failed to process Strikes: " + e.getMessage()); + Main.logger().throwing("Strike", "process", e); + } } public void checkJoin(@NotNull Player player) { From af644a71eead0d7fb2061b6d273e57217c33f311 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 22 Jun 2025 11:57:46 +0200 Subject: [PATCH 57/72] ticketing enable and disable --- .../metaGameplay/playTimer/PlayTimer.java | 15 ++++++- .../playTimer/PlayTimerCommand.java | 4 +- .../playTimer/TicketingCommand.java | 41 +++++++++++++++++ .../appliances/metaGameplay/teams/Teams.java | 44 +++++-------------- .../metaGameplay/teams/VaroTeam.java | 37 ++++++++++++++++ 5 files changed, 104 insertions(+), 37 deletions(-) create mode 100644 varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/TicketingCommand.java diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index 268ed93..84009e5 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -6,6 +6,7 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.core.config.Configuration; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; import org.jetbrains.annotations.NotNull; @@ -29,9 +30,18 @@ public class PlayTimer extends Appliance { private final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath() + "/playtime.json"); public PlayTimer() { + super("playTimer"); this.load(); } + public void changeEnabled(boolean enabled) { + this.localConfig().set("enableTicketing", enabled); + Configuration.saveChanges(); + } + public boolean isEnabled() { + return this.localConfig().getBoolean("enableTicketing", true); + } + private void load() { if (!Files.exists(this.saveFile)) return; try (Reader reader = Files.newBufferedReader(this.saveFile)) { @@ -99,6 +109,9 @@ public class PlayTimer extends Appliance { @Override protected @NotNull List> commands() { - return List.of(new PlayTimerCommand()); + return List.of( + new PlayTimerCommand(), + new TicketingCommand() + ); } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java index 9757190..5452453 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimerCommand.java @@ -21,7 +21,7 @@ public class PlayTimerCommand extends ApplianceCommand { } @Override - protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception { + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { if (args.length < 3) throw new Error("Usage: playTimer [amount]"); String mode = args[0].toLowerCase(); @@ -37,7 +37,7 @@ public class PlayTimerCommand extends ApplianceCommand { case "team" -> teamAppliance.findTeamByName(identifier); case "incallbyone" -> { this.getAppliance().incrementAll(); - throw new Error("Incremented all Teams by one!"); + throw new Error("KEIN FEHLER!: Incremented all Teams by one!"); } default -> throw new Error("Ungültiger Modus: " + mode + ". Erlaubt: user | team"); }; diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/TicketingCommand.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/TicketingCommand.java new file mode 100644 index 0000000..b253f20 --- /dev/null +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/TicketingCommand.java @@ -0,0 +1,41 @@ +package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer; + +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +public class TicketingCommand extends ApplianceCommand { + public TicketingCommand() { + super("ticketing"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + sender.sendMessage(String.format("Ticketing was %b", this.getAppliance().isEnabled())); + if(args.length < 1) + throw new Error("Stop Ticketing with 'stop' or start ticketing (now subtracting one) and start team-countdown with 'start'"); + + switch(args[0]) { + case "stop" -> this.getAppliance().changeEnabled(false); + case "start" -> { + this.getAppliance().changeEnabled(true); + Main.instance().getAppliance(Teams.class).getAllTeams().forEach(team -> { + boolean isAllowed = this.getAppliance().tryConsumeTicket(team); + if(!isAllowed) { + Main.logger().warning(String.format("Team %s already on Server, Ticketing got enabled but no Tickets were left! KICKING!", team.name)); + team.kickTeam(); + } + + team.startCountDown(); + }); + sender.sendMessage(String.format("Ticketing (ticket reduction on join) is now %b", this.getAppliance().isEnabled())); + } + default -> sender.sendMessage("Unknown command"); + } + + sender.sendMessage(String.format("Ticketing is now %b", this.getAppliance().isEnabled())); + } +} diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java index 56ab8e5..5970859 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/Teams.java @@ -3,12 +3,9 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; -import eu.mhsl.craftattack.spawn.core.util.text.Countdown; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; import eu.mhsl.craftattack.spawn.varo.api.repositories.TeamRepository; -import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; -import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks.CountdownTeamTask; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.joinProtection.JoinProtection; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import net.kyori.adventure.text.Component; @@ -119,11 +116,15 @@ public class Teams extends Appliance implements DisplayName.Prefixed { if(team == null) throw new IllegalStateException("Player must be in a Team"); PlayTimer playTimer = Main.instance().getAppliance(PlayTimer.class); - boolean isAllowed = playTimer.tryConsumeTicket(team); - if(!isAllowed) { - Main.logger().warning(String.format("Team %s joined, but got denied from Ticketing. Team will be kicked!", team.name)); - team.kickTeam(teamNoPlaytime); - return; + if(playTimer.isEnabled()) { + boolean isAllowed = playTimer.tryConsumeTicket(team); + if(!isAllowed) { + Main.logger().warning(String.format("Team %s joined, but got denied from Ticketing. Team will be kicked!", team.name)); + team.kickTeam(teamNoPlaytime); + return; + } + } else { + Main.logger().info(String.format("Allowing team %s to join, because PlayTimer is not active. Not subtracting from PlayTimer!", team.name)); } int leftTickets = playTimer.getTickets(team); @@ -153,32 +154,7 @@ public class Teams extends Appliance implements DisplayName.Prefixed { .findAny() .ifPresentOrElse( member -> team.kickTeam(teamNotCompleteInfo), - () -> { - Main.logger().info(String.format("Starting Time countdown for Team %s with %d", team.name, PlayTimer.PLAYTIME_MINUTES)); - CountdownTeamTask countdown = new CountdownTeamTask( - 60 * PlayTimer.PLAYTIME_MINUTES, - announcementData -> Component.text( - String.format("Es verbleiben noch %d %s Spielzeit!", announcementData.count(), announcementData.unit()), - NamedTextColor.RED - ), - component -> team.getOnlinePlayers().forEach(player -> player.sendMessage(component)), - team::timeOverKick - ); - countdown.setDefaultAnnouncements(count -> { - if(count > 300) return null; - if(count > 60 && count % 60 == 0) { - return new Countdown.AnnouncementData(count / 60, "Minuten"); - } - - if(count <= 30 && (count <= 10 || count % 10 == 0)) { - return new Countdown.AnnouncementData(count, "Sekunden"); - } - - return null; - }); - countdown.start(); - this.queryAppliance(TeamTasks.class).addTask(team, TeamTasks.Type.TIME_KICK, countdown); - } + team::startCountDown ), Ticks.TICKS_PER_SECOND * (JoinProtection.resistanceDuration / 2) ); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java index 7b3da58..687e461 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/VaroTeam.java @@ -1,9 +1,14 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.util.text.Countdown; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks.CountdownTeamTask; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.fightDetector.FightDetector; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.util.Ticks; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; @@ -68,6 +73,38 @@ public class VaroTeam { .toList(); } + public void startCountDown() { + if(!Main.instance().getAppliance(PlayTimer.class).isEnabled()) { + Main.logger().warning(String.format("PlayTimer for %s not started, because it is deactivated!", this.name)); + return; + } + + Main.logger().info(String.format("Starting Time countdown for Team %s with %d", this.name, PlayTimer.PLAYTIME_MINUTES)); + CountdownTeamTask countdown = new CountdownTeamTask( + 60 * PlayTimer.PLAYTIME_MINUTES, + announcementData -> Component.text( + String.format("Es verbleiben noch %d %s Spielzeit!", announcementData.count(), announcementData.unit()), + NamedTextColor.RED + ), + component -> this.getOnlinePlayers().forEach(player -> player.sendMessage(component)), + this::timeOverKick + ); + countdown.setDefaultAnnouncements(count -> { + if(count > 300) return null; + if(count > 60 && count % 60 == 0) { + return new Countdown.AnnouncementData(count / 60, "Minuten"); + } + + if(count <= 30 && (count <= 10 || count % 10 == 0)) { + return new Countdown.AnnouncementData(count, "Sekunden"); + } + + return null; + }); + countdown.start(); + Main.instance().getAppliance(TeamTasks.class).addTask(this, TeamTasks.Type.TIME_KICK, countdown); + } + public void kickTeam(DisconnectInfo disconnectInfo) { this.getOnlinePlayers() .forEach(player -> player.kick(disconnectInfo.getComponent())); From 15ac47b3147136ebe4905bd62371ba5afe54a33c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 22 Jun 2025 11:59:46 +0200 Subject: [PATCH 58/72] auto playtime increment --- .../spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java | 1 + .../metaGameplay/shrinkingBorder/ShrinkingBorder.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index 84009e5..24707c8 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -71,6 +71,7 @@ public class PlayTimer extends Appliance { } public void incrementAll() { + Main.logger().info("Incrementing all PlayTime Tickets by one!"); this.joinTickets.replaceAll((n, v) -> this.joinTickets.get(n) + 1); this.save(); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java index 07cb8bf..74d378b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorder.java @@ -5,6 +5,7 @@ import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.config.Configuration; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldBorder; @@ -35,6 +36,7 @@ public class ShrinkingBorder extends Appliance { @Override public void run() { Bukkit.getScheduler().runTask(Main.instance(), ShrinkingBorder.this::shrinkBorder); + Main.instance().getAppliance(PlayTimer.class).incrementAll(); } } From 3590a5d27859b3bc6c47fcfe07dea0e8262de36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 22 Jun 2025 14:20:45 +0200 Subject: [PATCH 59/72] finalized strikesystem --- .../metaGameplay/strike/CordLeak.java | 75 ++++++++++--- .../metaGameplay/strike/InvClear.java | 1 + .../strike/OnStrikeActionListener.java | 13 +++ .../metaGameplay/strike/Strike.java | 100 ++++++++++++------ .../teams/ConnectivityChangeListener.java | 30 +++--- 5 files changed, 158 insertions(+), 61 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java index f6925d3..42932ff 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/CordLeak.java @@ -14,13 +14,12 @@ import java.lang.reflect.Type; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; +import java.time.Instant; +import java.util.*; public class CordLeak { private static final Path saveFile = Paths.get(Main.instance().getDataFolder().getAbsolutePath(), "cordleak.json"); - private static final Map locations = new HashMap<>(); + private static final Map leaks = new HashMap<>(); static { load(); @@ -36,18 +35,66 @@ public class CordLeak { } } + public record LeakInfo(Location location, Instant leakedAt) {} + + private record LeakInfoDto(LocationDto location, long leakedAt) { + static LeakInfoDto from(LeakInfo info) { + return new LeakInfoDto(LocationDto.from(info.location), info.leakedAt.toEpochMilli()); + } + + LeakInfo toLeakInfo() { + return new LeakInfo(this.location.toLocation(), Instant.ofEpochMilli(this.leakedAt)); + } + } + public static void update() { - IteratorUtil.onlinePlayers(player -> locations.put(player.getUniqueId(), player.getLocation())); + IteratorUtil.onlinePlayers(player -> { + UUID uuid = player.getUniqueId(); + Location loc = player.getLocation(); + + leaks.compute(uuid, (key, existing) -> { + // Falls bereits geleakt, nicht aktualisieren + if (existing != null && !existing.leakedAt.equals(Instant.EPOCH)) { + return existing; + } + return new LeakInfo(loc, existing != null ? existing.leakedAt : Instant.EPOCH); + }); + }); Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), CordLeak::save); } + public static void markAsLeaked(UUID uuid) { + LeakInfo existing = leaks.get(uuid); + if (existing == null) return; + leaks.put(uuid, new LeakInfo(existing.location, Instant.now())); + Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), CordLeak::save); + } + + public static LeakInfo getLastKnownLocation(UUID uuid) { + return leaks.get(uuid); + } + + public static Map getAllLeaked() { + Map result = new HashMap<>(); + Instant cutoff = Instant.now().minusSeconds(3 * 24 * 60 * 60); // 3 Tage in Sekunden + + for (Map.Entry entry : leaks.entrySet()) { + LeakInfo info = entry.getValue(); + if (info.leakedAt.isAfter(cutoff)) { + result.put(entry.getKey(), info); + } + } + + return result; + } + private static void load() { if (!Files.exists(saveFile)) return; try (Reader reader = Files.newBufferedReader(saveFile)) { - Type type = new TypeToken>() {}.getType(); - Map raw = new Gson().fromJson(reader, type); - for (Map.Entry entry : raw.entrySet()) { - locations.put(UUID.fromString(entry.getKey()), entry.getValue().toLocation()); + Type type = new TypeToken>() {}.getType(); + Map raw = new Gson().fromJson(reader, type); + for (Map.Entry entry : raw.entrySet()) { + leaks.put(UUID.fromString(entry.getKey()), entry.getValue().toLeakInfo()); } } catch (IOException e) { Main.logger().warning("Failed to load CordLeak data: " + e.getMessage()); @@ -57,9 +104,9 @@ public class CordLeak { private static void save() { try { Files.createDirectories(saveFile.getParent()); - Map raw = new HashMap<>(); - for (Map.Entry entry : locations.entrySet()) { - raw.put(entry.getKey().toString(), LocationDto.from(entry.getValue())); + Map raw = new HashMap<>(); + for (Map.Entry entry : leaks.entrySet()) { + raw.put(entry.getKey().toString(), LeakInfoDto.from(entry.getValue())); } try (Writer writer = Files.newBufferedWriter(saveFile)) { new Gson().toJson(raw, writer); @@ -68,8 +115,4 @@ public class CordLeak { Main.logger().warning("Failed to save CordLeak data: " + e.getMessage()); } } - - public static Location getLastKnownLocation(UUID uuid) { - return locations.get(uuid); - } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java index 135d3de..26340ea 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/InvClear.java @@ -23,6 +23,7 @@ public class InvClear { } public static void add(UUID player) { + Main.logger().info(String.format("Cannot clear inv because Player is offline. Remembering %s", player)); players.add(player); Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), InvClear::save); } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java index 0fd5a88..97b757b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/OnStrikeActionListener.java @@ -1,6 +1,8 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.strike; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.event.EventHandler; import org.bukkit.event.player.PlayerJoinEvent; @@ -8,5 +10,16 @@ public class OnStrikeActionListener extends ApplianceListener { @EventHandler public void onJoin(PlayerJoinEvent event) { this.getAppliance().checkJoin(event.getPlayer()); + + var leaks = CordLeak.getAllLeaked(); + var text = Component.text(); + if(!leaks.isEmpty()) { + text.append(Component.text("Geleakte Koordinaten:", NamedTextColor.AQUA)); + leaks.forEach((uuid, leakInfo) -> { + this.getAppliance().appendCordLeak(text, uuid); + }); + + event.getPlayer().sendMessage(text); + } } } diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java index ece4f0b..b33a017 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/strike/Strike.java @@ -19,6 +19,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -32,9 +34,6 @@ public class Strike extends Appliance { ); } - public void leakCoordinates() { - } - record StrikeInfo(List users, int totalWeight) { } @Override @@ -47,8 +46,31 @@ public class Strike extends Appliance { this.processUpdate(data); return HttpServer.nothing; }); + + apiBuilder.get("cords", req -> { + Map raw = CordLeak.getAllLeaked(); + Map dto = new HashMap<>(); + for (Map.Entry entry : raw.entrySet()) { + dto.put(entry.getKey().toString(), LeakInfoDto.from(entry.getKey(), entry.getValue())); + } + return dto; + }); } + record LocationDto(String world, double x, double y, double z, float yaw, float pitch) { + static LocationDto from(Location loc) { + return new LocationDto(loc.getWorld().getName(), loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch()); + } + } + + record LeakInfoDto(String name, LocationDto location, long leakedAt) { + static LeakInfoDto from(UUID uuid, CordLeak.LeakInfo info) { + String name = Bukkit.getOfflinePlayer(uuid).getName(); + return new LeakInfoDto(name, LocationDto.from(info.location()), info.leakedAt().toEpochMilli()); + } + } + + private void processUpdate(StrikeInfo data) { try { VaroTeam select = null; @@ -59,46 +81,33 @@ public class Strike extends Appliance { Objects.requireNonNull(select); VaroTeam team = select; - switch(data.totalWeight) { - case 0 -> team.members.forEach(member -> { - Main.logger().info(String.format("Unbanning player %s because there are now 0 Strikes!", member.player.getName())); + if(data.totalWeight < 3) { + team.members.forEach(member -> { + Main.logger().info(String.format("Unbanning player %s because there are less than 3 Strikes!", member.player.getName())); Bukkit.getBanList(BanListType.PROFILE).pardon(member.player.getPlayerProfile()); }); + } + switch(data.totalWeight) { case 1 -> { Main.logger().info(String.format("Cord leak for Team %s", team.name)); - ComponentBuilder text = Component.text() - .append( - Component.text( - String.format("Das Team %s hat einen Strike erhalten. Daher werden folgende Koordinaten des Teams veröffentlicht:", team.name), - NamedTextColor.RED - ) - ); + + ComponentBuilder text = Component.text(); + IteratorUtil.onlinePlayers(player -> player.sendMessage(Component.text( + String.format("Das Team %s hat einen Strike erhalten. Daher werden folgende Koordinaten des Teams veröffentlicht:", team.name), + NamedTextColor.RED + ))); data.users.forEach(uuid -> { - OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); - Location cords = CordLeak.getLastKnownLocation(uuid); - if(cords == null) return; - - text.appendNewline(); - text.append(Component.text(Objects.requireNonNull(player.getName()), NamedTextColor.DARK_AQUA)); - text.append(Component.text(": ", NamedTextColor.GRAY)); - text.append(Component.text( - String.format( - "(%s) %d, %d, %d", - cords.getWorld().getName(), - cords.getBlockX(), - cords.getBlockY(), - cords.getBlockZ() - ), - NamedTextColor.AQUA) - ); + CordLeak.markAsLeaked(uuid); + this.appendCordLeak(text, uuid); }); - IteratorUtil.onlinePlayers(player -> player.sendMessage(text)); + IteratorUtil.onlinePlayers(p -> p.sendMessage(text)); } case 2 -> team.members.forEach(member -> { + Main.logger().info(String.format("Clearing Inventory of %s", member.player.getName())); Optional player = Optional.ofNullable(Bukkit.getPlayer(member.player.getUniqueId())); player.ifPresentOrElse( p -> p.getInventory().clear(), @@ -110,9 +119,9 @@ public class Strike extends Appliance { team.members.forEach(member -> { Main.logger().info(String.format("Banning player %s because of third Strike!", member.player.getName())); Bukkit.getBanList(BanListType.PROFILE) - .addBan(member.player.getPlayerProfile(), "projektausschluiss", (Date) null, null); + .addBan(member.player.getPlayerProfile(), "projektausschluss", (Date) null, null); }); - team.getOnlinePlayers().forEach(Player::kick); + Bukkit.getScheduler().runTask(Main.instance(), () -> team.getOnlinePlayers().forEach(Player::kick)); } } } catch(Exception e) { @@ -121,6 +130,31 @@ public class Strike extends Appliance { } } + public void appendCordLeak(ComponentBuilder text, UUID playerToLeak) { + OfflinePlayer player = Bukkit.getOfflinePlayer(playerToLeak); + CordLeak.LeakInfo cords = CordLeak.getLastKnownLocation(playerToLeak); + if(cords == null) return; + + String timestamp = DateTimeFormatter.ofPattern("dd.MM HH:mm") + .withZone(ZoneId.of("Europe/Berlin")) + .format(cords.leakedAt()); + + text.appendNewline(); + text.append(Component.text(Objects.requireNonNull(player.getName()), NamedTextColor.DARK_AQUA)); + text.append(Component.text(": ", NamedTextColor.GRAY)); + text.append(Component.text( + String.format( + "(%s) %d, %d, %d - Uhrzeit: %s", + cords.location().getWorld().getName(), + cords.location().getBlockX(), + cords.location().getBlockY(), + cords.location().getBlockZ(), + timestamp + ), + NamedTextColor.AQUA) + ); + } + public void checkJoin(@NotNull Player player) { if(InvClear.contains(player.getUniqueId())) { player.getInventory().clear(); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index e733637..22bc300 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -5,6 +5,7 @@ import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; +import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.playTimer.PlayTimer; import org.bukkit.event.EventHandler; import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.PlayerJoinEvent; @@ -46,19 +47,24 @@ class ConnectivityChangeListener extends ApplianceListener { VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); Objects.requireNonNull(team, "Team not found for player " + event.getPlayer().getUniqueId()); - Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); - VaroReportRepository.StrikeCreationInfo report = new VaroReportRepository.StrikeCreationInfo( - null, - event.getPlayer().getUniqueId(), - "early left", - "player left the server too early", - null, - null, - 1 - ); - ReqResp response = Main.instance().getRepositoryLoader().getRepository(VaroReportRepository.class).createStrike(report); - Main.logger().info(String.format("Autostrike response for Team %s: %s", team.name, response)); + if(Main.instance().getAppliance(PlayTimer.class).isEnabled()) { + Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); + + VaroReportRepository.StrikeCreationInfo report = new VaroReportRepository.StrikeCreationInfo( + null, + event.getPlayer().getUniqueId(), + "early left", + "player left the server too early", + null, + null, + 1 + ); + ReqResp response = Main.instance().getRepositoryLoader().getRepository(VaroReportRepository.class).createStrike(report); + Main.logger().info(String.format("Autostrike response for Team %s: %s", team.name, response)); + } else { + Main.logger().info("Allow ealry leave because PlayTimer is not active!"); + } this.getAppliance().enforceTeamLeave(event.getPlayer()); } From 7422a89d9894f977a0a816de7f97cfb597dccc93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 23 Jun 2025 19:52:30 +0200 Subject: [PATCH 60/72] fixed bug in fight detector --- .../metaGameplay/fightDetector/FightOnInteractionListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java index ccdbeda..d28c8bb 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightOnInteractionListener.java @@ -18,6 +18,7 @@ class FightOnInteractionListener extends ApplianceListener { VaroTeam attacker = teamsAppliance.getTeamFromPlayer(event.getPlayer().getUniqueId()); VaroTeam attacked = teamsAppliance.getTeamFromPlayer(event.getAttacked().getUniqueId()); if(attacked == null) return; + if(attacker == null) return; if(attacker.equals(attacked)) return; this.getAppliance().setInFight(event.getPlayer()); From 03d4f4e6d8244bc203f10dda14881e1567bda8c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 23 Jun 2025 20:28:13 +0200 Subject: [PATCH 61/72] fixed bug in ShrinkingBorder --- .../metaGameplay/shrinkingBorder/ShrinkingBorderListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index 8450b1f..317af1f 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -42,8 +42,8 @@ public class ShrinkingBorderListener extends ApplianceListener Location relativeLocation = playerLocation.clone().subtract(worldBorder.getCenter()); double playerBorderDistanceX = worldBorder.getSize()/2 - Math.abs(relativeLocation.getX()); double playerBorderDistanceZ = worldBorder.getSize()/2 - Math.abs(relativeLocation.getZ()); - int xSteps = (int) Math.ceil(playerBorderDistanceX / this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY)); - int zSteps = (int) Math.ceil(playerBorderDistanceZ / this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY)); + int xSteps = (int) Math.ceil(playerBorderDistanceX / ((double) this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY) / 2)); + int zSteps = (int) Math.ceil(playerBorderDistanceZ / ((double) this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY) / 2)); return Math.min(xSteps, zSteps); } From f3b884058eaf64f38a453046d022cb935d6b1399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Mon, 23 Jun 2025 20:34:48 +0200 Subject: [PATCH 62/72] code cleanup shrinkingborder --- .../shrinkingBorder/ShrinkingBorderListener.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java index 317af1f..5102828 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/shrinkingBorder/ShrinkingBorderListener.java @@ -42,8 +42,9 @@ public class ShrinkingBorderListener extends ApplianceListener Location relativeLocation = playerLocation.clone().subtract(worldBorder.getCenter()); double playerBorderDistanceX = worldBorder.getSize()/2 - Math.abs(relativeLocation.getX()); double playerBorderDistanceZ = worldBorder.getSize()/2 - Math.abs(relativeLocation.getZ()); - int xSteps = (int) Math.ceil(playerBorderDistanceX / ((double) this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY) / 2)); - int zSteps = (int) Math.ceil(playerBorderDistanceZ / ((double) this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY) / 2)); + double halfShrinkPerDayX = (double) this.getAppliance().getOption(ShrinkingBorderCommand.Argument.SHRINK_PER_DAY) / 2; + int xSteps = (int) Math.ceil(playerBorderDistanceX / halfShrinkPerDayX); + int zSteps = (int) Math.ceil(playerBorderDistanceZ / halfShrinkPerDayX); return Math.min(xSteps, zSteps); } From 035864631d8ce3d5353dc165a38a4c222a010c23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 24 Jun 2025 20:09:36 +0200 Subject: [PATCH 63/72] changed behavior to spawn in survival mode --- .../spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java index 8974355..1db8b7d 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/tooling/spawnpoint/Spawnpoint.java @@ -85,7 +85,7 @@ public class Spawnpoint extends Appliance { PersistentDataContainer dataContainer = player.getPersistentDataContainer(); if(dataContainer.has(alreadySpawned)) return; player.teleportAsync(this.spawnPoints.get(player.getUniqueId())); - player.setGameMode(GameMode.ADVENTURE); + player.setGameMode(GameMode.SURVIVAL); dataContainer.set(alreadySpawned, PersistentDataType.BOOLEAN, true); } From 44dae51e1c315f8ee8f71e9f6051f26f3996f69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 24 Jun 2025 21:23:05 +0200 Subject: [PATCH 64/72] fixed playtimer --- .../appliances/internal/teamTasks/TeamTasks.java | 3 ++- .../metaGameplay/playTimer/PlayTimer.java | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java index c817b99..4a1bf7e 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java @@ -16,7 +16,8 @@ public class TeamTasks extends Appliance { /** * Task for kicking Team after the desired Playtime */ - TIME_KICK + TIME_KICK, + JOIN_PAIR } private final Map> tasks = new HashMap<>(); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index 24707c8..c88325b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -7,6 +7,8 @@ import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks.CountdownTeamTask; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; import org.jetbrains.annotations.NotNull; @@ -86,11 +88,19 @@ public class PlayTimer extends Appliance { public boolean tryConsumeTicket(VaroTeam team) { String teamName = team.name; - int current = this.joinTickets.getOrDefault(teamName, 1); - if (current <= 0) return false; + var teamTasks = Main.instance().getAppliance(TeamTasks.class); + boolean isSecond = teamTasks.getRunningTeamTasks(team).containsKey(TeamTasks.Type.JOIN_PAIR); + if(!isSecond) { + int current = this.joinTickets.getOrDefault(teamName, 1); + if (current <= 0) return false; + this.joinTickets.put(teamName, current - 1); + + var task = new CountdownTeamTask(10, announcementData -> null, component -> {}, () -> {}); + task.start(); + teamTasks.addTask(team, TeamTasks.Type.JOIN_PAIR, task); + } - this.joinTickets.put(teamName, current - 1); this.save(); return true; } From 337727b0f0f432857e835da8a6e10b5705dfefcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 19 Jul 2025 15:57:58 +0200 Subject: [PATCH 65/72] fixed bug in FightDetector --- .../appliances/metaGameplay/fightDetector/FightDetector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java index 6b3c0d4..00781da 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/fightDetector/FightDetector.java @@ -66,7 +66,7 @@ public class FightDetector extends Appliance { VaroTeam otherTeam = this.queryAppliance(Teams.class).getTeamFromPlayer(otherPlayer.getUniqueId()); if (otherTeam == null || ownTeam.equals(otherTeam)) continue; - if(player.getLocation().getWorld().equals(otherPlayer.getLocation().getWorld())) continue; + if(!player.getLocation().getWorld().equals(otherPlayer.getLocation().getWorld())) continue; if (player.getLocation().distance(otherPlayer.getLocation()) <= BLOCK_RADIUS) { this.setInFight(ownTeam); From 977f4ff4ecc0832d9dbcf71750b49ffdd3eec80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 19 Jul 2025 16:27:39 +0200 Subject: [PATCH 66/72] project dependency update --- common/build.gradle | 4 ++-- core/build.gradle | 4 ++-- .../spawn/core/util/world/InteractSounds.java | 20 +++++++++---------- craftattack/build.gradle | 4 ++-- .../glowingBerries/GlowingBerries.java | 3 ++- varo/build.gradle | 2 +- 6 files changed, 19 insertions(+), 18 deletions(-) diff --git a/common/build.gradle b/common/build.gradle index f9f7a33..3129896 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,8 +1,8 @@ dependencies { implementation project(':core') - compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' - compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21.7-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.4-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' } diff --git a/core/build.gradle b/core/build.gradle index 418c148..34337b5 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,6 +1,6 @@ dependencies { - compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' - compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21.7-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.4-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' implementation 'org.reflections:reflections:0.10.2' diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java index eda553e..8c54e21 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java @@ -1,6 +1,7 @@ package eu.mhsl.craftattack.spawn.core.util.world; -import net.kyori.adventure.key.Key; +import io.papermc.paper.registry.TypedKey; +import io.papermc.paper.registry.keys.SoundEventKeys; import net.kyori.adventure.sound.Sound; import org.bukkit.entity.Player; @@ -15,23 +16,22 @@ public class InteractSounds { this.player = player; } - private void playSound(org.bukkit.Sound sound) { - this.player.playSound(this.getSound(sound.key()), Sound.Emitter.self()); - } - - private Sound getSound(Key soundKey) { - return Sound.sound(soundKey, Sound.Source.PLAYER, 1f, 1f); + private void playSound(TypedKey sound) { + this.player.playSound( + Sound.sound(sound, Sound.Source.PLAYER, 1f, 1f), + Sound.Emitter.self() + ); } public void click() { - this.playSound(org.bukkit.Sound.UI_BUTTON_CLICK); + this.playSound(SoundEventKeys.UI_BUTTON_CLICK); } public void success() { - this.playSound(org.bukkit.Sound.ENTITY_PLAYER_LEVELUP); + this.playSound(SoundEventKeys.ENTITY_PLAYER_LEVELUP); } public void delete() { - this.playSound(org.bukkit.Sound.ENTITY_SILVERFISH_DEATH); + this.playSound(SoundEventKeys.ENTITY_SILVERFISH_DEATH); } } diff --git a/craftattack/build.gradle b/craftattack/build.gradle index 43f1560..be30e01 100644 --- a/craftattack/build.gradle +++ b/craftattack/build.gradle @@ -2,8 +2,8 @@ dependencies { implementation project(':core') implementation project(':common') - compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' - compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21.7-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.4-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' } \ No newline at end of file diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java index 27b917a..76d32c8 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/glowingBerries/GlowingBerries.java @@ -1,6 +1,7 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.glowingBerries; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import io.papermc.paper.registry.keys.SoundEventKeys; import net.kyori.adventure.sound.Sound; import net.kyori.adventure.util.Ticks; import org.bukkit.entity.Player; @@ -23,7 +24,7 @@ public class GlowingBerries extends Appliance { public void letPlayerGlow(Player player) { player.addPotionEffect(glowEffect); - Sound sound = Sound.sound(org.bukkit.Sound.BLOCK_AMETHYST_BLOCK_CHIME.key(), Sound.Source.PLAYER, 1f, 1f); + Sound sound = Sound.sound(SoundEventKeys.BLOCK_AMETHYST_BLOCK_CHIME, Sound.Source.PLAYER, 1f, 1f); player.stopSound(sound); player.playSound(sound, Sound.Emitter.self()); } diff --git a/varo/build.gradle b/varo/build.gradle index 6572533..ec631a1 100644 --- a/varo/build.gradle +++ b/varo/build.gradle @@ -2,7 +2,7 @@ dependencies { implementation project(':core') implementation project(':common') - compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' + compileOnly 'io.papermc.paper:paper-api:1.21.7-R0.1-SNAPSHOT' implementation 'org.apache.httpcomponents:httpclient:4.5.14' implementation 'com.sparkjava:spark-core:2.9.4' } \ No newline at end of file From ef6f34c2b2601dce50a6b183dc201825abf286f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 19 Jul 2025 16:36:31 +0200 Subject: [PATCH 67/72] added interaction sounds to settings --- .../common/appliances/metaGameplay/settings/Settings.java | 3 +++ .../metaGameplay/settings/datatypes/Setting.java | 3 +++ .../craftattack/spawn/core/util/world/InteractSounds.java | 8 ++++++++ 3 files changed, 14 insertions(+) diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java index 593abf8..6bc857f 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java @@ -6,6 +6,7 @@ import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.Setting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.SettingsInventoryListener; +import eu.mhsl.craftattack.spawn.core.util.world.InteractSounds; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -136,6 +137,7 @@ public class Settings extends Appliance { } player.openInventory(inventory); + InteractSounds.of(player).open(); this.openSettingsInventories.put(player, new OpenSettingsInventory(inventory, settings)); } @@ -166,6 +168,7 @@ public class Settings extends Appliance { if(!this.openSettingsInventories.containsKey(player)) return; this.openSettingsInventories.remove(player); player.updateInventory(); + InteractSounds.of(player).close(); } public boolean hasSettingsNotOpen(Player player) { diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java index 728332d..296a46b 100644 --- a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java +++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java @@ -3,6 +3,7 @@ package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.dataty import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.core.util.text.ComponentUtil; +import eu.mhsl.craftattack.spawn.core.util.world.InteractSounds; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; @@ -37,7 +38,9 @@ public abstract class Setting { } public void triggerChange(Player p, ClickType clickType) { + if(clickType.equals(ClickType.DOUBLE_CLICK)) return; this.change(p, clickType); + InteractSounds.of(p).click(); this.toStorage(p.getPersistentDataContainer(), this.state()); } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java index 8c54e21..9c1c7e4 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/world/InteractSounds.java @@ -34,4 +34,12 @@ public class InteractSounds { public void delete() { this.playSound(SoundEventKeys.ENTITY_SILVERFISH_DEATH); } + + public void open() { + this.playSound(SoundEventKeys.BLOCK_BARREL_OPEN); + } + + public void close() { + this.playSound(SoundEventKeys.BLOCK_BARREL_CLOSE); + } } From ec2d243b7bdd0fca4430b5350daa37b28c58744b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 19 Jul 2025 22:32:47 +0200 Subject: [PATCH 68/72] fixed bug in HotBarRefill when using Blocks --- .../appliances/gameplay/hotbarRefill/HotbarRefill.java | 2 +- .../gameplay/hotbarRefill/HotbarRefillListener.java | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java index 74ff5f5..1f4ef3d 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefill.java @@ -44,7 +44,7 @@ public class HotbarRefill extends Appliance { inventory.setItem(itemSlot, secondItem); inventory.setItem(replacementSlot, firstItem); - player.sendActionBar(Component.text("Die Hotbar wurde aufgefüllt", NamedTextColor.GREEN)); + player.sendActionBar(Component.text("Deine Hotbar wurde nachgefüllt \uD83D\uDCE5", NamedTextColor.GREEN)); }, 1); } catch(NoSuchElementException ignored) { } diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java index 0f8a532..719939f 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/hotbarRefill/HotbarRefillListener.java @@ -26,7 +26,7 @@ class HotbarRefillListener extends ApplianceListener { ItemStack stackInHand = event.getItemInHand(); if(stackInHand.getAmount() != 1) return; if(stackInHand.getType().getMaxDurability() > 0) return; - if(stackInHand.getType().getMaxStackSize() > 0) return; + if(stackInHand.getType().getMaxStackSize() == 1) return; if(!this.getPlayerSetting(event.getPlayer()).onBlocks()) return; this.getAppliance().handleHotbarChange(event.getPlayer(), stackInHand); @@ -35,15 +35,14 @@ class HotbarRefillListener extends ApplianceListener { @EventHandler public void onPlayerItemBreak(PlayerItemBreakEvent event) { if(!this.getPlayerSetting(event.getPlayer()).onTools()) return; - this.getAppliance().handleHotbarChange(event.getPlayer(), event.getBrokenItem()); } @EventHandler public void onPlayerItemConsume(PlayerItemConsumeEvent event) { if(List.of(Material.POTION, Material.HONEY_BOTTLE).contains(event.getItem().getType())) return; - if(!this.getPlayerSetting(event.getPlayer()).onConsumable()) return; + if(!this.getPlayerSetting(event.getPlayer()).onConsumable()) return; this.getAppliance().handleHotbarChange(event.getPlayer(), event.getItem()); } } From 6e1ef4fd7ce0c06a2025b2f3a3cebf3df639a782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 9 Aug 2025 22:15:01 +0200 Subject: [PATCH 69/72] added VaroRank --- core/src/main/resources/config.yml | 8 ++- .../metaGameplay/varoRank/VaroRank.java | 60 +++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/varoRank/VaroRank.java diff --git a/core/src/main/resources/config.yml b/core/src/main/resources/config.yml index 9253978..f254c42 100644 --- a/core/src/main/resources/config.yml +++ b/core/src/main/resources/config.yml @@ -80,4 +80,10 @@ shrinkingBorder: varoApi: endpoint: "https://mhsl.eu/varo/api" - auth: "Basic xxx" \ No newline at end of file + auth: "Basic xxx" + +varoRank: + winners: + - 00000000-0000-0000-0000-000000000000 + mostKills: + - 00000000-0000-0000-0000-000000000000 diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/varoRank/VaroRank.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/varoRank/VaroRank.java new file mode 100644 index 0000000..b7b2abd --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/metaGameplay/varoRank/VaroRank.java @@ -0,0 +1,60 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.metaGameplay.varoRank; + +import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.event.HoverEvent; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.function.Function; + +public class VaroRank extends Appliance implements DisplayName.Prefixed { + private List winners = new ArrayList<>(); + private List mostKills = new ArrayList<>(); + + private final Component winnerBadge = Component.text("\uD83D\uDC51", NamedTextColor.YELLOW) + .hoverEvent(HoverEvent.showText(Component.text("Hat zusammen mit seinem Team Varo gewonnen"))); + private final Component killBadge = Component.text("\uD83D\uDDE1", NamedTextColor.RED) + .hoverEvent(HoverEvent.showText(Component.text("Hat zusammen mit seinem Team die meisten Kills in Varo"))); + + public VaroRank() { + super("varoRank"); + } + + @Override + public void onEnable() { + Function, List> processUUIDs = list -> list.stream() + .map(String::trim) + .map(UUID::fromString) + .toList(); + + this.winners = processUUIDs.apply(this.localConfig().getStringList("winners")); + this.mostKills = processUUIDs.apply(this.localConfig().getStringList("mostKills")); + } + + @Override + public @Nullable Component getNamePrefix(Player player) { + UUID playerId = player.getUniqueId(); + + boolean isWinner = this.winners.contains(playerId); + boolean hasMostKills = this.mostKills.contains(playerId); + + if (!isWinner && !hasMostKills) { + return null; + } + + return Component.text() + .color(NamedTextColor.GOLD) + .append(Component.text("[")) + .append(isWinner ? this.winnerBadge : Component.empty()) + .append(hasMostKills ? this.killBadge : Component.empty()) + .append(Component.text("]")) + .build(); + } + +} From 43ef28499b3ea82870e5e169a65d8f1b81594cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 10 Aug 2025 00:04:12 +0200 Subject: [PATCH 70/72] added MinecartBlocks --- .../MinecartBlockChangeListener.java | 60 +++++++++++++++++++ .../minecartBlocks/MinecartBlocks.java | 40 +++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java create mode 100644 craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java new file mode 100644 index 0000000..2a577dd --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java @@ -0,0 +1,60 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.minecartBlocks; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Minecart; +import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.vehicle.VehicleDestroyEvent; +import org.bukkit.event.vehicle.VehicleEnterEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; + +class MinecartBlockChangeListener extends ApplianceListener { + @EventHandler + public void onInteract(PlayerInteractEntityEvent event) { + if(!event.getPlayer().isSneaking()) return; + if(!(event.getRightClicked() instanceof Minecart minecart)) return; + if(!this.isBasicMinecart(minecart)) return; + if(this.minecartContainsBlock(minecart)) return; + + PlayerInventory playerInv = event.getPlayer().getInventory(); + Material heldBlock = playerInv.getItemInMainHand().getType(); + + if(!heldBlock.isBlock() || !heldBlock.isSolid()) return; + if(!this.getAppliance().isAllowedMaterial(heldBlock)) return; + + minecart.setDisplayBlockData(heldBlock.createBlockData()); + playerInv.removeItem(ItemStack.of(heldBlock)); + } + + @EventHandler + public void onDestroy(VehicleDestroyEvent event) { + if(!(event.getVehicle() instanceof Minecart minecart)) return; + if(!this.isBasicMinecart(minecart)) return; + + Material containingMaterial = minecart.getDisplayBlockData().getMaterial(); + if(containingMaterial.equals(Material.AIR)) return; + + Location vehicleLocation = event.getVehicle().getLocation(); + vehicleLocation.getWorld().dropItem(vehicleLocation, ItemStack.of(containingMaterial)); + minecart.setDisplayBlockData(null); + } + + @EventHandler + public void onEnter(VehicleEnterEvent event) { + if(!(event.getVehicle() instanceof Minecart minecart)) return; + if(!this.minecartContainsBlock(minecart)) return; + event.setCancelled(true); + } + + @SuppressWarnings("BooleanMethodIsAlwaysInverted") + private boolean isBasicMinecart(Minecart minecart) { + return minecart.getMinecartMaterial().equals(Material.MINECART); + } + + private boolean minecartContainsBlock(Minecart minecart) { + return !minecart.getDisplayBlockData().getMaterial().equals(Material.AIR); + } +} diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java new file mode 100644 index 0000000..8746a46 --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java @@ -0,0 +1,40 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.minecartBlocks; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import org.bukkit.Material; +import org.bukkit.block.data.Bisected; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Waterlogged; +import org.bukkit.event.Listener; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class MinecartBlocks extends Appliance { + private final List blackListedMaterials = List.of( + Material.COMMAND_BLOCK, + Material.FURNACE, + Material.HOPPER, + Material.TNT, + Material.CHEST, + Material.TRAPPED_CHEST + ); + + public boolean isAllowedMaterial(Material material) { + if(this.blackListedMaterials.contains(material)) return false; + BlockData blockData = material.createBlockData(); + return !( + (blockData instanceof Directional) + || (blockData instanceof Bisected) + || (blockData instanceof Waterlogged) + ); + } + + @Override + protected @NotNull List listeners() { + return List.of( + new MinecartBlockChangeListener() + ); + } +} From b3787983d5bd9adfb7ec0f2d1a2148b46e827833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 10 Aug 2025 09:58:16 +0200 Subject: [PATCH 71/72] added advancement for MinecartBlocks --- .../gameplay/customAdvancements/Advancements.java | 1 + .../minecartBlocks/MinecartBlockChangeListener.java | 1 + .../gameplay/minecartBlocks/MinecartBlocks.java | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java index 08de6ff..bdb0276 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/customAdvancements/Advancements.java @@ -8,4 +8,5 @@ public class Advancements { public static String start = "start"; public static String winner = "winner"; public static String participateEvent = "participate_event"; + public static String ogMiner = "og_miner"; } diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java index 2a577dd..41f629e 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlockChangeListener.java @@ -27,6 +27,7 @@ class MinecartBlockChangeListener extends ApplianceListener { minecart.setDisplayBlockData(heldBlock.createBlockData()); playerInv.removeItem(ItemStack.of(heldBlock)); + this.getAppliance().onBlockPut(event.getPlayer(), heldBlock); } @EventHandler diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java index 8746a46..1cd96a0 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/gameplay/minecartBlocks/MinecartBlocks.java @@ -1,11 +1,15 @@ package eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.minecartBlocks; +import eu.mhsl.craftattack.spawn.core.Main; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.Advancements; +import eu.mhsl.craftattack.spawn.craftattack.appliances.gameplay.customAdvancements.CustomAdvancements; import org.bukkit.Material; import org.bukkit.block.data.Bisected; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Directional; import org.bukkit.block.data.Waterlogged; +import org.bukkit.entity.Player; import org.bukkit.event.Listener; import org.jetbrains.annotations.NotNull; @@ -31,6 +35,11 @@ public class MinecartBlocks extends Appliance { ); } + public void onBlockPut(Player player, Material material) { + if(!material.name().toLowerCase().endsWith("_ore")) return; + Main.instance().getAppliance(CustomAdvancements.class).grantAdvancement(Advancements.ogMiner, player.getUniqueId()); + } + @Override protected @NotNull List listeners() { return List.of( From b1e3e99cb831f85fb729d0c2363c17cb34a3825c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sun, 10 Aug 2025 12:04:46 +0200 Subject: [PATCH 72/72] added AntiAutoTotem --- .../security/antiAutoTotem/AntiAutoTotem.java | 62 +++++++++++++++++++ .../antiAutoTotem/OnTotemUseListener.java | 15 +++++ 2 files changed, 77 insertions(+) create mode 100644 craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/AntiAutoTotem.java create mode 100644 craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/OnTotemUseListener.java diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/AntiAutoTotem.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/AntiAutoTotem.java new file mode 100644 index 0000000..c134629 --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/AntiAutoTotem.java @@ -0,0 +1,62 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.security.antiAutoTotem; + +import eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform.AcInform; +import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.Listener; +import org.bukkit.inventory.PlayerInventory; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; +import java.util.function.Supplier; + +public class AntiAutoTotem extends Appliance { + + public void checkTotemUse(Player player) { + PlayerInventory playerInv = player.getInventory(); + + Supplier> getHeldItems = () -> List.of( + playerInv.getItemInMainHand().getType(), + playerInv.getItemInOffHand().getType() + ); + Function isCurrentlyHoldingTotem = (p) -> getHeldItems.get().contains(Material.TOTEM_OF_UNDYING); + + if(!isCurrentlyHoldingTotem.apply(player)) return; + if(getHeldItems.get().stream().allMatch(material -> material.equals(Material.TOTEM_OF_UNDYING))) return; + + AtomicInteger tickCounter = new AtomicInteger(); + Bukkit.getScheduler().runTaskTimer( + Main.instance(), + (task) -> { + if(tickCounter.incrementAndGet() > 10) { + task.cancel(); + return; + } + + if(isCurrentlyHoldingTotem.apply(player)) { + task.cancel(); + Main.instance().getAppliance(AcInform.class).notifyAdmins( + "internal", + player.getName(), + "antiAutoTotem", + (float) tickCounter.get() + ); + } + }, + 1, + 1 + ); + } + + @Override + protected @NotNull List listeners() { + return List.of( + new OnTotemUseListener() + ); + } +} diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/OnTotemUseListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/OnTotemUseListener.java new file mode 100644 index 0000000..c2c7ed2 --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/security/antiAutoTotem/OnTotemUseListener.java @@ -0,0 +1,15 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.security.antiAutoTotem; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.entity.EntityResurrectEvent; + +class OnTotemUseListener extends ApplianceListener { + @EventHandler + public void onTotem(EntityResurrectEvent event) { + if(event.isCancelled()) return; + if(!(event.getEntity() instanceof Player player)) return; + this.getAppliance().checkTotemUse(player); + } +}