From 387c86d2a4537d0721d64af764f8778e9ec156cb Mon Sep 17 00:00:00 2001 From: Igor Michalski Date: Sun, 6 Oct 2024 17:50:50 +0200 Subject: [PATCH 1/4] Teleport to default home feature Took 15 minutes --- .../implementation/PluginConfiguration.java | 3 +++ .../core/feature/home/command/HomeCommand.java | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java index 24db4bc7c..6d17514c6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java @@ -186,6 +186,9 @@ public static class Homes { @Description("# Default home name") public String defaultHomeName = "home"; + @Description("# When using the /home command with no argument, should the player be teleported to the \"defaultHomeName\" home if it exists?") + public boolean teleportToDefaultHome = true; + @Description("# Time of teleportation to homes") public Duration teleportTimeToHomes = Duration.ofSeconds(5); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java index 573a79a26..39933c606 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java @@ -1,6 +1,7 @@ package com.eternalcode.core.feature.home.command; import com.eternalcode.annotations.scan.command.DescriptionDocs; +import com.eternalcode.core.configuration.implementation.PluginConfiguration; import com.eternalcode.core.feature.home.Home; import com.eternalcode.core.feature.home.HomeService; import com.eternalcode.core.feature.home.HomeTeleportService; @@ -12,22 +13,26 @@ import dev.rollczi.litecommands.annotations.execute.Execute; import dev.rollczi.litecommands.annotations.permission.Permission; import java.util.Collection; +import java.util.Optional; + import org.bukkit.entity.Player; @Command(name = "home") @Permission("eternalcore.home") class HomeCommand { + private final PluginConfiguration.Homes homesConfig; private final NoticeService noticeService; private final HomeService homeService; private final HomeTeleportService homeTeleportService; @Inject HomeCommand( - NoticeService noticeService, + PluginConfiguration.Homes homesConfig, NoticeService noticeService, HomeService homeService, HomeTeleportService homeTeleportService ) { + this.homesConfig = homesConfig; this.noticeService = noticeService; this.homeService = homeService; this.homeTeleportService = homeTeleportService; @@ -53,6 +58,17 @@ void execute(@Context Player player) { .map(Home::getName) .toList()); + if (this.homesConfig.teleportToDefaultHome) { + Optional mainHome = playerHomes.stream() + .filter(home -> home.getName().equals(this.homesConfig.defaultHomeName)) + .findFirst(); + + if (mainHome.isPresent()) { + this.homeTeleportService.teleport(player, mainHome.get()); + return; + } + } + this.noticeService.create() .player(player.getUniqueId()) .notice(translation -> translation.home().homeList()) From 03cb95556ccd9b7fb27a09411cda67b04ba5a40c Mon Sep 17 00:00:00 2001 From: Igor Michalski Date: Sun, 6 Oct 2024 17:53:57 +0200 Subject: [PATCH 2/4] Cosmetic fix Took 2 minutes --- .../com/eternalcode/core/feature/home/command/HomeCommand.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java index 39933c606..68486f2cf 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java @@ -28,7 +28,8 @@ class HomeCommand { @Inject HomeCommand( - PluginConfiguration.Homes homesConfig, NoticeService noticeService, + PluginConfiguration.Homes homesConfig, + NoticeService noticeService, HomeService homeService, HomeTeleportService homeTeleportService ) { From e4208ef062121333aa4ef69f6271ba01655e5127 Mon Sep 17 00:00:00 2001 From: Igor Michalski Date: Tue, 8 Oct 2024 21:26:04 +0200 Subject: [PATCH 3/4] Follow Mike's and Rollczi's suggestions Took 10 minutes --- .../implementation/PluginConfiguration.java | 3 --- .../feature/home/command/HomeCommand.java | 22 +++++++++---------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java index 6d17514c6..24db4bc7c 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/configuration/implementation/PluginConfiguration.java @@ -186,9 +186,6 @@ public static class Homes { @Description("# Default home name") public String defaultHomeName = "home"; - @Description("# When using the /home command with no argument, should the player be teleported to the \"defaultHomeName\" home if it exists?") - public boolean teleportToDefaultHome = true; - @Description("# Time of teleportation to homes") public Duration teleportTimeToHomes = Duration.ofSeconds(5); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java index 68486f2cf..5968f19e4 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java @@ -52,22 +52,22 @@ void execute(@Context Player player) { return; } - if (playerHomes.size() != 1) { + Home firstHome = playerHomes.iterator().next(); + + if (playerHomes.size() > 1) { String homes = String.join( ", ", - this.homeService.getHomes(player.getUniqueId()).stream() + playerHomes.stream() .map(Home::getName) .toList()); - if (this.homesConfig.teleportToDefaultHome) { - Optional mainHome = playerHomes.stream() - .filter(home -> home.getName().equals(this.homesConfig.defaultHomeName)) - .findFirst(); + Optional mainHome = playerHomes.stream() + .filter(home -> home.getName().equals(this.homesConfig.defaultHomeName)) + .findFirst(); - if (mainHome.isPresent()) { - this.homeTeleportService.teleport(player, mainHome.get()); - return; - } + if (mainHome.isPresent()) { + this.homeTeleportService.teleport(player, mainHome.get()); + return; } this.noticeService.create() @@ -78,8 +78,6 @@ void execute(@Context Player player) { return; } - Home firstHome = playerHomes.iterator().next(); - this.homeTeleportService.teleport(player, firstHome); } From 49542eae1c0e4ec0852397872a9b10cad0142d0e Mon Sep 17 00:00:00 2001 From: Igor Michalski <65646893+igoyek@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:32:35 +0200 Subject: [PATCH 4/4] Follow Rollczi's suggestions Took 3 minutes --- .../eternalcode/core/feature/home/command/HomeCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java index 5968f19e4..a4836895d 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/home/command/HomeCommand.java @@ -52,8 +52,6 @@ void execute(@Context Player player) { return; } - Home firstHome = playerHomes.iterator().next(); - if (playerHomes.size() > 1) { String homes = String.join( ", ", @@ -78,6 +76,8 @@ void execute(@Context Player player) { return; } + Home firstHome = playerHomes.iterator().next(); + this.homeTeleportService.teleport(player, firstHome); }