From c8ce762524672e34800bbac4307dc5cde39a4522 Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Thu, 7 Aug 2025 19:32:41 +0200 Subject: [PATCH 1/7] Add MOTD feature --- .../implementation/PluginConfiguration.java | 7 ++++ .../core/feature/motd/MotdConfig.java | 27 ++++++++++++++ .../core/feature/motd/MotdSettings.java | 9 +++++ .../motd/PlayerJoinMotdController.java | 36 +++++++++++++++++++ 4 files changed, 79 insertions(+) create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java 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 59b398d26..46ecc9a64 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 @@ -10,6 +10,8 @@ import com.eternalcode.core.feature.home.HomesConfig; import com.eternalcode.core.feature.jail.JailConfig; import com.eternalcode.core.feature.lightning.LightningConfig; +import com.eternalcode.core.feature.motd.MotdConfig; +import com.eternalcode.core.feature.motd.MotdSettings; import com.eternalcode.core.feature.randomteleport.RandomTeleportSettingsImpl; import com.eternalcode.core.feature.repair.RepairConfig; import com.eternalcode.core.feature.serverlinks.ServerLinksConfig; @@ -224,6 +226,11 @@ public static class Items extends OkaeriConfig { @Comment("# Settings responsible for player vanish functionality") VanishConfig vanish = new VanishConfig(); + @Bean(proxied = MotdSettings.class) + @Comment("") + @Comment("# Message of the Day (MOTD) Configuration") + MotdConfig motd = new MotdConfig(); + @Override public File getConfigFile(File dataFolder) { return new File(dataFolder, "config.yml"); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java new file mode 100644 index 000000000..6fad2b661 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java @@ -0,0 +1,27 @@ +package com.eternalcode.core.feature.motd; + +import com.eternalcode.multification.notice.Notice; +import eu.okaeri.configs.OkaeriConfig; +import eu.okaeri.configs.annotation.Comment; +import lombok.Getter; +import lombok.experimental.Accessors; + +import java.util.List; + +@Getter +@Accessors(fluent = true) +public class MotdConfig extends OkaeriConfig implements MotdSettings { + + @Comment("# Message of the Day (MOTD) content that will be sent to players when they join the server.") + @Comment("# Out of the box supported placeholders: {PLAYER}, {WORLD}, {TIME}") + @Comment("# You can add your own placeholders using the PlaceholderAPI.") + public Notice motdContent = Notice.chat( + List.of("Welcome to the server, {PLAYER}", + "Have a good time playing!", + "The current time in {WORLD} is: {TIME}", + "If you need any help, don't hesitate to ask our staff using the command!" + ) + ); + + +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java new file mode 100644 index 000000000..716f2c8c6 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java @@ -0,0 +1,9 @@ +package com.eternalcode.core.feature.motd; + +import com.eternalcode.multification.notice.Notice; + +public interface MotdSettings { + + Notice motdContent(); + +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java new file mode 100644 index 000000000..032eb6fab --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java @@ -0,0 +1,36 @@ +package com.eternalcode.core.feature.motd; + +import com.eternalcode.core.injector.annotations.Inject; +import com.eternalcode.core.injector.annotations.component.Controller; +import com.eternalcode.core.notice.NoticeService; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +@Controller +class PlayerJoinMotdController implements Listener { + + private final NoticeService noticeService; + private final MotdSettings motdSettings; + + @Inject + PlayerJoinMotdController(NoticeService noticeService, MotdSettings motdSettings) { + this.noticeService = noticeService; + this.motdSettings = motdSettings; + } + + @EventHandler + void onPlayerJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + + this.noticeService.create() + .notice(this.motdSettings.motdContent()) + .player(player.getUniqueId()) + .placeholder("{PLAYER}", player.getName()) + .placeholder("{TIME}", String.valueOf(player.getWorld().getTime())) + .placeholder("{WORLD}", player.getWorld().getName()) + .send(); + } + +} From b4e3762b9d4eb552b5124e1e3e1c0f1ef6c99cd9 Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Thu, 7 Aug 2025 19:40:10 +0200 Subject: [PATCH 2/7] fix example motd content --- .../java/com/eternalcode/core/feature/motd/MotdConfig.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java index 6fad2b661..20c7017b0 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java @@ -18,8 +18,8 @@ public class MotdConfig extends OkaeriConfig implements MotdSettings { public Notice motdContent = Notice.chat( List.of("Welcome to the server, {PLAYER}", "Have a good time playing!", - "The current time in {WORLD} is: {TIME}", - "If you need any help, don't hesitate to ask our staff using the command!" + "The current time in {WORLD} is: {TIME} ticks", + "If you need any help, don't hesitate to ask our staff using the /helpop command!" ) ); From d465a7381322d617da3e5ac39b298b010fe0e363 Mon Sep 17 00:00:00 2001 From: vLuckyyy Date: Fri, 8 Aug 2025 22:01:03 +0200 Subject: [PATCH 3/7] Review. --- .../core/feature/motd/MotdConfig.java | 24 +++++++++++-------- ...ontroller.java => MotdJoinController.java} | 16 ++++++++----- 2 files changed, 24 insertions(+), 16 deletions(-) rename eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/{PlayerJoinMotdController.java => MotdJoinController.java} (61%) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java index 20c7017b0..7f52be514 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java @@ -1,12 +1,13 @@ package com.eternalcode.core.feature.motd; +import com.eternalcode.multification.bukkit.notice.BukkitNotice; import com.eternalcode.multification.notice.Notice; import eu.okaeri.configs.OkaeriConfig; import eu.okaeri.configs.annotation.Comment; +import java.util.List; import lombok.Getter; import lombok.experimental.Accessors; - -import java.util.List; +import org.bukkit.Sound; @Getter @Accessors(fluent = true) @@ -15,13 +16,16 @@ public class MotdConfig extends OkaeriConfig implements MotdSettings { @Comment("# Message of the Day (MOTD) content that will be sent to players when they join the server.") @Comment("# Out of the box supported placeholders: {PLAYER}, {WORLD}, {TIME}") @Comment("# You can add your own placeholders using the PlaceholderAPI.") - public Notice motdContent = Notice.chat( - List.of("Welcome to the server, {PLAYER}", - "Have a good time playing!", - "The current time in {WORLD} is: {TIME} ticks", - "If you need any help, don't hesitate to ask our staff using the /helpop command!" - ) - ); - + @Comment("# You can check our Notification Generator: https://www.eternalcode.pl/notification-generator") + public Notice motdContent = BukkitNotice.builder() + .chat(List.of( + "Welcome to the server, {PLAYER}", + "Have a good time playing!", + "The current time in {WORLD} is: {TIME} ticks", + "If you need any help, don't hesitate to ask our staff using the /helpop command!" + ) + ) + .sound(Sound.BLOCK_NOTE_BLOCK_PLING) + .build(); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java similarity index 61% rename from eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java rename to eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java index 032eb6fab..e4c3ba774 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/PlayerJoinMotdController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java @@ -3,19 +3,26 @@ import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.injector.annotations.component.Controller; import com.eternalcode.core.notice.NoticeService; +import com.eternalcode.core.placeholder.Placeholders; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @Controller -class PlayerJoinMotdController implements Listener { +class MotdJoinController implements Listener { + + private static final Placeholders PLACEHOLDERS = Placeholders.builder() + .with("{PLAYER}", Player::getName) + .with("{TIME}", player -> String.valueOf(player.getWorld().getTime())) + .with("{WORLD}", player -> player.getWorld().getName()) + .build(); private final NoticeService noticeService; private final MotdSettings motdSettings; @Inject - PlayerJoinMotdController(NoticeService noticeService, MotdSettings motdSettings) { + MotdJoinController(NoticeService noticeService, MotdSettings motdSettings) { this.noticeService = noticeService; this.motdSettings = motdSettings; } @@ -27,10 +34,7 @@ void onPlayerJoin(PlayerJoinEvent event) { this.noticeService.create() .notice(this.motdSettings.motdContent()) .player(player.getUniqueId()) - .placeholder("{PLAYER}", player.getName()) - .placeholder("{TIME}", String.valueOf(player.getWorld().getTime())) - .placeholder("{WORLD}", player.getWorld().getName()) + .formatter(PLACEHOLDERS.toFormatter(player)) .send(); } - } From 49ebfcad41210831ec5aa9a07d1f81c9dfd44b06 Mon Sep 17 00:00:00 2001 From: vLuckyyy Date: Fri, 8 Aug 2025 22:27:31 +0200 Subject: [PATCH 4/7] Fix. --- .../feature/joinmessage/PlayerJoinMessageController.java | 6 ------ .../java/com/eternalcode/core/feature/motd/MotdConfig.java | 2 +- .../java/com/eternalcode/core/translation/Translation.java | 2 -- .../core/translation/implementation/ENTranslation.java | 3 --- .../core/translation/implementation/PLTranslation.java | 3 --- 5 files changed, 1 insertion(+), 15 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java index 9928cdb4b..5632b7522 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/joinmessage/PlayerJoinMessageController.java @@ -41,12 +41,6 @@ void onPlayerJoin(PlayerJoinEvent event) { .send(); } - this.noticeService.create() - .notice(translation -> translation.event().welcome()) - .placeholder("{PLAYER}", player.getName()) - .player(player.getUniqueId()) - .sendAsync(); - event.setJoinMessage(StringUtils.EMPTY); this.noticeService.create() diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java index 7f52be514..580eb2b80 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java @@ -23,9 +23,9 @@ public class MotdConfig extends OkaeriConfig implements MotdSettings { "Have a good time playing!", "The current time in {WORLD} is: {TIME} ticks", "If you need any help, don't hesitate to ask our staff using the /helpop command!" - ) ) + .title("EternalCore", "Welcome back to the server!") .sound(Sound.BLOCK_NOTE_BLOCK_PLING) .build(); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java index 857bb518c..c4a7febb2 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java @@ -97,8 +97,6 @@ interface EventSection { List firstJoinMessage(); Map> deathMessageByDamageCause(); - - Notice welcome(); } interface InventorySection { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java index abe55c55a..16092d4d6 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java @@ -355,9 +355,6 @@ public static class ENEventSection extends OkaeriConfig implements EventSection Notice.actionbar("► {PLAYER} logged off the server!"), Notice.actionbar("► {PLAYER} left the server!") ); - - @Comment({" ", "# {PLAYER} - Player who joined"}) - public Notice welcome = Notice.title("EternalCode.pl", "Welcome back to the server!"); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java index 0c222da69..c2510b8fe 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java @@ -375,9 +375,6 @@ public static class PLEventSection extends OkaeriConfig implements EventSection Notice.actionbar("► {PLAYER} wylogował się z serwera!"), Notice.actionbar("► {PLAYER} opuścił serwer!") ); - - @Comment({" ", "# {PLAYER} - Gracz który dołączył do serwera"}) - public Notice welcome = Notice.title("{PLAYER}", "Witaj ponownie na serwerze!"); } @Comment({ From 122c890f18a89b154a9a04bd4ffc55b19afd1f1d Mon Sep 17 00:00:00 2001 From: Jakubk15 <77227023+Jakubk15@users.noreply.github.com> Date: Fri, 8 Aug 2025 22:34:57 +0200 Subject: [PATCH 5/7] Move MOTD to message files --- .../implementation/PluginConfiguration.java | 7 ---- .../core/feature/motd/MotdJoinController.java | 12 ++++--- .../core/feature/motd/MotdSettings.java | 9 ------ .../ENMotdMessages.java} | 7 ++-- .../feature/motd/messages/MotdMessages.java | 8 +++++ .../feature/motd/messages/PLMotdMessages.java | 32 +++++++++++++++++++ .../core/translation/Translation.java | 6 +++- .../implementation/ENTranslation.java | 8 +++-- .../implementation/PLTranslation.java | 8 +++-- 9 files changed, 68 insertions(+), 29 deletions(-) delete mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java rename eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/{MotdConfig.java => messages/ENMotdMessages.java} (91%) create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/MotdMessages.java create mode 100644 eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java 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 46ecc9a64..59b398d26 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 @@ -10,8 +10,6 @@ import com.eternalcode.core.feature.home.HomesConfig; import com.eternalcode.core.feature.jail.JailConfig; import com.eternalcode.core.feature.lightning.LightningConfig; -import com.eternalcode.core.feature.motd.MotdConfig; -import com.eternalcode.core.feature.motd.MotdSettings; import com.eternalcode.core.feature.randomteleport.RandomTeleportSettingsImpl; import com.eternalcode.core.feature.repair.RepairConfig; import com.eternalcode.core.feature.serverlinks.ServerLinksConfig; @@ -226,11 +224,6 @@ public static class Items extends OkaeriConfig { @Comment("# Settings responsible for player vanish functionality") VanishConfig vanish = new VanishConfig(); - @Bean(proxied = MotdSettings.class) - @Comment("") - @Comment("# Message of the Day (MOTD) Configuration") - MotdConfig motd = new MotdConfig(); - @Override public File getConfigFile(File dataFolder) { return new File(dataFolder, "config.yml"); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java index e4c3ba774..208be0c52 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdJoinController.java @@ -1,5 +1,6 @@ package com.eternalcode.core.feature.motd; +import com.eternalcode.core.feature.motd.messages.MotdMessages; import com.eternalcode.core.injector.annotations.Inject; import com.eternalcode.core.injector.annotations.component.Controller; import com.eternalcode.core.notice.NoticeService; @@ -9,22 +10,23 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; +@SuppressWarnings("Convert2MethodRef") @Controller class MotdJoinController implements Listener { private static final Placeholders PLACEHOLDERS = Placeholders.builder() - .with("{PLAYER}", Player::getName) + .with("{PLAYER}", player -> player.getName()) .with("{TIME}", player -> String.valueOf(player.getWorld().getTime())) .with("{WORLD}", player -> player.getWorld().getName()) .build(); private final NoticeService noticeService; - private final MotdSettings motdSettings; + private final MotdMessages motdMessages; @Inject - MotdJoinController(NoticeService noticeService, MotdSettings motdSettings) { + MotdJoinController(NoticeService noticeService, MotdMessages motdMessages) { this.noticeService = noticeService; - this.motdSettings = motdSettings; + this.motdMessages = motdMessages; } @EventHandler @@ -32,7 +34,7 @@ void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); this.noticeService.create() - .notice(this.motdSettings.motdContent()) + .notice(this.motdMessages.motdContent()) .player(player.getUniqueId()) .formatter(PLACEHOLDERS.toFormatter(player)) .send(); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java deleted file mode 100644 index 716f2c8c6..000000000 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdSettings.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.eternalcode.core.feature.motd; - -import com.eternalcode.multification.notice.Notice; - -public interface MotdSettings { - - Notice motdContent(); - -} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java similarity index 91% rename from eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java rename to eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java index 7f52be514..2bbe15dc7 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/MotdConfig.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java @@ -1,17 +1,18 @@ -package com.eternalcode.core.feature.motd; +package com.eternalcode.core.feature.motd.messages; import com.eternalcode.multification.bukkit.notice.BukkitNotice; import com.eternalcode.multification.notice.Notice; import eu.okaeri.configs.OkaeriConfig; import eu.okaeri.configs.annotation.Comment; -import java.util.List; import lombok.Getter; import lombok.experimental.Accessors; import org.bukkit.Sound; +import java.util.List; + @Getter @Accessors(fluent = true) -public class MotdConfig extends OkaeriConfig implements MotdSettings { +public class ENMotdMessages extends OkaeriConfig implements MotdMessages { @Comment("# Message of the Day (MOTD) content that will be sent to players when they join the server.") @Comment("# Out of the box supported placeholders: {PLAYER}, {WORLD}, {TIME}") diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/MotdMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/MotdMessages.java new file mode 100644 index 000000000..79f0219b7 --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/MotdMessages.java @@ -0,0 +1,8 @@ +package com.eternalcode.core.feature.motd.messages; + +import com.eternalcode.multification.notice.Notice; + +public interface MotdMessages { + + Notice motdContent(); +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java new file mode 100644 index 000000000..7cda648cc --- /dev/null +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java @@ -0,0 +1,32 @@ +package com.eternalcode.core.feature.motd.messages; + +import com.eternalcode.multification.bukkit.notice.BukkitNotice; +import com.eternalcode.multification.notice.Notice; +import eu.okaeri.configs.OkaeriConfig; +import eu.okaeri.configs.annotation.Comment; +import lombok.Getter; +import lombok.experimental.Accessors; +import org.bukkit.Sound; + +import java.util.List; + +@Getter +@Accessors(fluent = true) +public class PLMotdMessages extends OkaeriConfig implements MotdMessages { + + @Comment("# Message of the Day (MOTD) content that will be sent to players when they join the server.") + @Comment("# Out of the box supported placeholders: {PLAYER}, {WORLD}, {TIME}") + @Comment("# You can add your own placeholders using the PlaceholderAPI.") + @Comment("# You can check our Notification Generator: https://www.eternalcode.pl/notification-generator") + public Notice motdContent = BukkitNotice.builder() + .chat(List.of( + "Welcome to the server, {PLAYER}", + "Have a good time playing!", + "The current time in {WORLD} is: {TIME} ticks", + "If you need any help, don't hesitate to ask our staff using the /helpop command!" + + ) + ) + .sound(Sound.BLOCK_NOTE_BLOCK_PLING) + .build(); +} diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java index 857bb518c..2ecc1cb0b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java @@ -12,6 +12,7 @@ import com.eternalcode.core.feature.itemedit.messages.ItemEditMessages; import com.eternalcode.core.feature.jail.messages.JailMessages; import com.eternalcode.core.feature.language.Language; +import com.eternalcode.core.feature.motd.messages.MotdMessages; import com.eternalcode.core.feature.privatechat.messages.PrivateChatMessages; import com.eternalcode.core.feature.randomteleport.messages.RandomTeleportMessages; import com.eternalcode.core.feature.seen.messages.SeenMessages; @@ -24,9 +25,10 @@ import com.eternalcode.core.feature.vanish.messages.VanishMessages; import com.eternalcode.core.feature.warp.messages.WarpMessages; import com.eternalcode.multification.notice.Notice; +import org.bukkit.event.entity.EntityDamageEvent; + import java.util.List; import java.util.Map; -import org.bukkit.event.entity.EntityDamageEvent; public interface Translation { @@ -254,4 +256,6 @@ interface ContainerSection { JailMessages jailSection(); // vanish section VanishMessages vanish(); + // motd section + MotdMessages motd(); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java index abe55c55a..2ed903eb4 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java @@ -5,11 +5,14 @@ import com.eternalcode.core.feature.adminchat.messages.ENAdminChatMessages; import com.eternalcode.core.feature.afk.messages.ENAfkMessages; import com.eternalcode.core.feature.automessage.messages.ENAutoMessageMessages; +import com.eternalcode.core.feature.fun.demoscreen.messages.ENDemoScreenMessages; +import com.eternalcode.core.feature.fun.elderguardian.messages.ENElderGuardianMessages; import com.eternalcode.core.feature.helpop.messages.ENHelpOpMessages; import com.eternalcode.core.feature.home.messages.ENHomeMessages; import com.eternalcode.core.feature.itemedit.messages.ENItemEditMessages; import com.eternalcode.core.feature.jail.messages.ENJailMessages; import com.eternalcode.core.feature.language.Language; +import com.eternalcode.core.feature.motd.messages.ENMotdMessages; import com.eternalcode.core.feature.privatechat.messages.ENPrivateMessages; import com.eternalcode.core.feature.randomteleport.messages.ENRandomTeleportMessages; import com.eternalcode.core.feature.seen.messages.ENSeenMessages; @@ -19,8 +22,6 @@ import com.eternalcode.core.feature.sudo.messages.ENSudoMessages; import com.eternalcode.core.feature.teleportrequest.messages.ENTeleportRequestMessages; import com.eternalcode.core.feature.time.messages.ENTimeAndWeatherMessages; -import com.eternalcode.core.feature.fun.demoscreen.messages.ENDemoScreenMessages; -import com.eternalcode.core.feature.fun.elderguardian.messages.ENElderGuardianMessages; import com.eternalcode.core.feature.vanish.messages.ENVanishMessages; import com.eternalcode.core.feature.warp.messages.ENWarpMessages; import com.eternalcode.core.translation.AbstractTranslation; @@ -575,4 +576,7 @@ public static class ENLanguageSection extends OkaeriConfig implements LanguageSe @Comment({" ", "# This section is responsible for vanish-related stuff."}) public ENVanishMessages vanish = new ENVanishMessages(); + @Comment({" ", "# This section is responsible for the messages of the MOTD feature."}) + public ENMotdMessages motd = new ENMotdMessages(); + } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java index 0c222da69..9c6e671e9 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java @@ -5,11 +5,14 @@ import com.eternalcode.core.feature.adminchat.messages.PLAdminChatMessages; import com.eternalcode.core.feature.afk.messages.PLAfkMessages; import com.eternalcode.core.feature.automessage.messages.PLAutoMessageMessages; +import com.eternalcode.core.feature.fun.demoscreen.messages.PLDemoScreenMessages; +import com.eternalcode.core.feature.fun.elderguardian.messages.PLElderGuardianMessages; import com.eternalcode.core.feature.helpop.messages.PLHelpOpMessages; import com.eternalcode.core.feature.home.messages.PLHomeMessages; import com.eternalcode.core.feature.itemedit.messages.PLItemEditMessages; import com.eternalcode.core.feature.jail.messages.PLJailMessages; import com.eternalcode.core.feature.language.Language; +import com.eternalcode.core.feature.motd.messages.PLMotdMessages; import com.eternalcode.core.feature.privatechat.messages.PLPrivateChatMessages; import com.eternalcode.core.feature.randomteleport.messages.PLRandomTeleportMessages; import com.eternalcode.core.feature.seen.messages.PLSeenMessages; @@ -19,8 +22,6 @@ import com.eternalcode.core.feature.sudo.messages.PLSudoMessages; import com.eternalcode.core.feature.teleportrequest.messages.PLTeleportRequestMessages; import com.eternalcode.core.feature.time.messages.PLTimeAndWeatherMessages; -import com.eternalcode.core.feature.fun.demoscreen.messages.PLDemoScreenMessages; -import com.eternalcode.core.feature.fun.elderguardian.messages.PLElderGuardianMessages; import com.eternalcode.core.feature.vanish.messages.PLVanishMessages; import com.eternalcode.core.feature.warp.messages.PLWarpMessages; import com.eternalcode.core.translation.AbstractTranslation; @@ -599,4 +600,7 @@ public static class PLLanguageSection extends OkaeriConfig implements LanguageSe @Comment({" ", "# Ta sekcja odpowiada za wiadomości dotyczące trybu niewidoczności graczy"}) public PLVanishMessages vanish = new PLVanishMessages(); + @Comment({" ", "# Ta sekcja odpowiada za funkcję MOTD (Message of the Day)"}) + public PLMotdMessages motd = new PLMotdMessages(); + } From f5a647015652276f8b5267d6a5db79ad0d9dc5df Mon Sep 17 00:00:00 2001 From: vLuckyyy Date: Fri, 8 Aug 2025 22:38:19 +0200 Subject: [PATCH 6/7] Fix. --- .../feature/motd/messages/ENMotdMessages.java | 1 + .../feature/motd/messages/PLMotdMessages.java | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java index e860ca454..c9a393fd7 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java @@ -27,6 +27,7 @@ public class ENMotdMessages extends OkaeriConfig implements MotdMessages { ) ) .title("EternalCore", "Welcome back to the server!") + .title("EternalCore", "Welcome back to the server!") .sound(Sound.BLOCK_NOTE_BLOCK_PLING) .build(); } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java index 7cda648cc..5aa74240b 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/PLMotdMessages.java @@ -14,19 +14,19 @@ @Accessors(fluent = true) public class PLMotdMessages extends OkaeriConfig implements MotdMessages { - @Comment("# Message of the Day (MOTD) content that will be sent to players when they join the server.") - @Comment("# Out of the box supported placeholders: {PLAYER}, {WORLD}, {TIME}") - @Comment("# You can add your own placeholders using the PlaceholderAPI.") - @Comment("# You can check our Notification Generator: https://www.eternalcode.pl/notification-generator") + @Comment("# Treść wiadomości dnia (MOTD), która zostanie wysłana do graczy po wejściu na serwer.") + @Comment("# Domyślnie obsługiwane placeholdery: {PLAYER}, {WORLD}, {TIME}") + @Comment("# Możesz dodać własne placeholdery korzystając z PlaceholderAPI.") + @Comment("# Generator powiadomień znajdziesz tutaj: https://www.eternalcode.pl/notification-generator") public Notice motdContent = BukkitNotice.builder() .chat(List.of( - "Welcome to the server, {PLAYER}", - "Have a good time playing!", - "The current time in {WORLD} is: {TIME} ticks", - "If you need any help, don't hesitate to ask our staff using the /helpop command!" - + "Witaj na serwerze, {PLAYER}", + "Miłej zabawy!", + "Aktualny czas w {WORLD} to: {TIME} tików", + "Jeśli potrzebujesz pomocy, napisz do administracji komendą /helpop" ) ) + .title("EternalCore", "Witamy ponownie na serwerze!") .sound(Sound.BLOCK_NOTE_BLOCK_PLING) .build(); } From a5742bff44b9f66d09d64d8c8dbca709a3df2967 Mon Sep 17 00:00:00 2001 From: vLuckyyy Date: Fri, 8 Aug 2025 22:39:01 +0200 Subject: [PATCH 7/7] Remove duplicated title. --- .../eternalcode/core/feature/motd/messages/ENMotdMessages.java | 1 - 1 file changed, 1 deletion(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java index c9a393fd7..e860ca454 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/motd/messages/ENMotdMessages.java @@ -27,7 +27,6 @@ public class ENMotdMessages extends OkaeriConfig implements MotdMessages { ) ) .title("EternalCore", "Welcome back to the server!") - .title("EternalCore", "Welcome back to the server!") .sound(Sound.BLOCK_NOTE_BLOCK_PLING) .build(); }