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();
}