Skip to content

Commit 59ced4e

Browse files
authored
GH-997 Add elder guardian command along with appropriate translations (#1061)
* Add elder guardian command along with appropriate translations * AdditionalContainerPaper -> AdditionalOverlayPaper * Adjust to Martin's suggestions * Refactor Paper feature system * Fix build * Remove @contextual annotation from translation implementation * Fix build, change cdn annotations to okaeri equivalents * Make appropriate messages implementations extend OkaeriConfig * Make translation sections extend OkaeriConfig
1 parent 314a374 commit 59ced4e

File tree

17 files changed

+234
-71
lines changed

17 files changed

+234
-71
lines changed

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/AnvilCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.eternalcode.core.feature.container;
22

33
import com.eternalcode.annotations.scan.command.DescriptionDocs;
4-
import com.eternalcode.containers.AdditionalContainerPaper;
54
import com.eternalcode.core.injector.annotations.Inject;
65
import com.eternalcode.core.notice.NoticeService;
6+
import com.eternalcode.paper.PaperContainer;
77
import dev.rollczi.litecommands.annotations.argument.Arg;
8+
import dev.rollczi.litecommands.annotations.command.Command;
89
import dev.rollczi.litecommands.annotations.context.Context;
910
import dev.rollczi.litecommands.annotations.execute.Execute;
1011
import dev.rollczi.litecommands.annotations.permission.Permission;
11-
import dev.rollczi.litecommands.annotations.command.Command;
1212
import org.bukkit.command.CommandSender;
1313
import org.bukkit.entity.Player;
1414

@@ -26,7 +26,7 @@ class AnvilCommand {
2626
@Permission("eternalcore.anvil")
2727
@DescriptionDocs(description = "Opens an anvil for you")
2828
void executeSelf(@Context Player player) {
29-
AdditionalContainerPaper.ANVIL.open(player);
29+
PaperContainer.ANVIL.open(player);
3030

3131
this.noticeService.create()
3232
.notice(translation -> translation.container().genericContainerOpened())
@@ -38,7 +38,7 @@ void executeSelf(@Context Player player) {
3838
@Permission("eternalcore.anvil.other")
3939
@DescriptionDocs(description = "Opens an anvil for another player", arguments = "<player>")
4040
void execute(@Context CommandSender sender, @Arg Player target) {
41-
AdditionalContainerPaper.ANVIL.open(target);
41+
PaperContainer.ANVIL.open(target);
4242

4343
this.noticeService.create()
4444
.notice(translation -> translation.container().genericContainerOpenedBy())

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/CartographyTableCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33

44
import com.eternalcode.annotations.scan.command.DescriptionDocs;
5-
import com.eternalcode.containers.AdditionalContainerPaper;
65
import com.eternalcode.core.injector.annotations.Inject;
76
import com.eternalcode.core.notice.NoticeService;
7+
import com.eternalcode.paper.PaperContainer;
88
import dev.rollczi.litecommands.annotations.argument.Arg;
9+
import dev.rollczi.litecommands.annotations.command.Command;
910
import dev.rollczi.litecommands.annotations.context.Context;
1011
import dev.rollczi.litecommands.annotations.execute.Execute;
1112
import dev.rollczi.litecommands.annotations.permission.Permission;
12-
import dev.rollczi.litecommands.annotations.command.Command;
1313
import org.bukkit.command.CommandSender;
1414
import org.bukkit.entity.Player;
1515

@@ -27,7 +27,7 @@ class CartographyTableCommand {
2727
@Permission("eternalcore.cartography")
2828
@DescriptionDocs(description = "Opens a cartography table for you")
2929
void executeSelf(@Context Player player) {
30-
AdditionalContainerPaper.CARTOGRAPHY_TABLE.open(player);
30+
PaperContainer.CARTOGRAPHY_TABLE.open(player);
3131

3232
this.noticeService.create()
3333
.notice(translation -> translation.container().genericContainerOpened())
@@ -39,7 +39,7 @@ void executeSelf(@Context Player player) {
3939
@Permission("eternalcore.cartography.other")
4040
@DescriptionDocs(description = "Opens a cartography table for another player", arguments = "<player>")
4141
void execute(@Context CommandSender sender, @Arg Player target) {
42-
AdditionalContainerPaper.CARTOGRAPHY_TABLE.open(target);
42+
PaperContainer.CARTOGRAPHY_TABLE.open(target);
4343

4444
this.noticeService.create()
4545
.notice(translation -> translation.container().genericContainerOpenedBy())

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/GrindstoneCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33

44
import com.eternalcode.annotations.scan.command.DescriptionDocs;
5-
import com.eternalcode.containers.AdditionalContainerPaper;
65
import com.eternalcode.core.injector.annotations.Inject;
76
import com.eternalcode.core.notice.NoticeService;
7+
import com.eternalcode.paper.PaperContainer;
88
import dev.rollczi.litecommands.annotations.argument.Arg;
9+
import dev.rollczi.litecommands.annotations.command.Command;
910
import dev.rollczi.litecommands.annotations.context.Context;
1011
import dev.rollczi.litecommands.annotations.execute.Execute;
1112
import dev.rollczi.litecommands.annotations.permission.Permission;
12-
import dev.rollczi.litecommands.annotations.command.Command;
1313
import org.bukkit.command.CommandSender;
1414
import org.bukkit.entity.Player;
1515

@@ -27,7 +27,7 @@ class GrindstoneCommand {
2727
@Permission("eternalcore.grindstone")
2828
@DescriptionDocs(description = "Opens a grindstone for you")
2929
void executeSelf(@Context Player player) {
30-
AdditionalContainerPaper.GRINDSTONE.open(player);
30+
PaperContainer.GRINDSTONE.open(player);
3131

3232
this.announcer.create()
3333
.notice(translation -> translation.container().genericContainerOpened())
@@ -39,7 +39,7 @@ void executeSelf(@Context Player player) {
3939
@Permission("eternalcore.grindstone.other")
4040
@DescriptionDocs(description = "Opens a grindstone for another player", arguments = "<player>")
4141
void execute(@Context CommandSender sender, @Arg Player target) {
42-
AdditionalContainerPaper.GRINDSTONE.open(target);
42+
PaperContainer.GRINDSTONE.open(target);
4343

4444
this.announcer.create()
4545
.notice(translation -> translation.container().genericContainerOpenedFor())

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/LoomCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.eternalcode.core.feature.container;
22

33
import com.eternalcode.annotations.scan.command.DescriptionDocs;
4-
import com.eternalcode.containers.AdditionalContainerPaper;
54
import com.eternalcode.core.injector.annotations.Inject;
65
import com.eternalcode.core.notice.NoticeService;
6+
import com.eternalcode.paper.PaperContainer;
77
import dev.rollczi.litecommands.annotations.argument.Arg;
8+
import dev.rollczi.litecommands.annotations.command.Command;
89
import dev.rollczi.litecommands.annotations.context.Context;
910
import dev.rollczi.litecommands.annotations.execute.Execute;
1011
import dev.rollczi.litecommands.annotations.permission.Permission;
11-
import dev.rollczi.litecommands.annotations.command.Command;
1212
import org.bukkit.command.CommandSender;
1313
import org.bukkit.entity.Player;
1414

@@ -26,7 +26,7 @@ class LoomCommand {
2626
@Permission("eternalcore.loom")
2727
@DescriptionDocs(description = "Opens a loom for you")
2828
void executeSelf(@Context Player player) {
29-
AdditionalContainerPaper.LOOM.open(player);
29+
PaperContainer.LOOM.open(player);
3030

3131
this.noticeService.create()
3232
.notice(translation -> translation.container().genericContainerOpened())
@@ -38,7 +38,7 @@ void executeSelf(@Context Player player) {
3838
@Permission("eternalcore.loom.other")
3939
@DescriptionDocs(description = "Opens a loom for another player", arguments = "<player>")
4040
void execute(@Context CommandSender sender, @Arg Player target) {
41-
AdditionalContainerPaper.LOOM.open(target);
41+
PaperContainer.LOOM.open(target);
4242

4343
this.noticeService.create()
4444
.notice(translation -> translation.container().genericContainerOpenedBy())

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/SmithingTableCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.eternalcode.core.feature.container;
22

33
import com.eternalcode.annotations.scan.command.DescriptionDocs;
4-
import com.eternalcode.containers.AdditionalContainerPaper;
54
import com.eternalcode.core.injector.annotations.Inject;
65
import com.eternalcode.core.notice.NoticeService;
6+
import com.eternalcode.paper.PaperContainer;
77
import dev.rollczi.litecommands.annotations.argument.Arg;
8+
import dev.rollczi.litecommands.annotations.command.Command;
89
import dev.rollczi.litecommands.annotations.context.Context;
910
import dev.rollczi.litecommands.annotations.execute.Execute;
1011
import dev.rollczi.litecommands.annotations.permission.Permission;
11-
import dev.rollczi.litecommands.annotations.command.Command;
1212
import org.bukkit.command.CommandSender;
1313
import org.bukkit.entity.Player;
1414

@@ -26,7 +26,7 @@ class SmithingTableCommand {
2626
@Permission("eternalcore.smithingtable")
2727
@DescriptionDocs(description = "Opens a smithing table for you")
2828
void executeSelf(@Context Player player) {
29-
AdditionalContainerPaper.SMITHING_TABLE.open(player);
29+
PaperContainer.SMITHING_TABLE.open(player);
3030

3131
this.noticeService.create()
3232
.notice(translation -> translation.container().genericContainerOpened())
@@ -38,7 +38,7 @@ void executeSelf(@Context Player player) {
3838
@Permission("eternalcore.smithingtable.other")
3939
@DescriptionDocs(description = "Opens a smithing table for another player", arguments = "<player>")
4040
void execute(@Context CommandSender sender, @Arg Player target) {
41-
AdditionalContainerPaper.SMITHING_TABLE.open(target);
41+
PaperContainer.SMITHING_TABLE.open(target);
4242

4343
this.noticeService.create()
4444
.notice(translation -> translation.container().genericContainerOpenedBy())

eternalcore-core/src/main/java/com/eternalcode/core/feature/container/StonecutterCommand.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33

44
import com.eternalcode.annotations.scan.command.DescriptionDocs;
5-
import com.eternalcode.containers.AdditionalContainerPaper;
65
import com.eternalcode.core.injector.annotations.Inject;
76
import com.eternalcode.core.notice.NoticeService;
7+
import com.eternalcode.paper.PaperContainer;
88
import dev.rollczi.litecommands.annotations.argument.Arg;
9+
import dev.rollczi.litecommands.annotations.command.Command;
910
import dev.rollczi.litecommands.annotations.context.Context;
1011
import dev.rollczi.litecommands.annotations.execute.Execute;
1112
import dev.rollczi.litecommands.annotations.permission.Permission;
12-
import dev.rollczi.litecommands.annotations.command.Command;
1313
import org.bukkit.command.CommandSender;
1414
import org.bukkit.entity.Player;
1515

@@ -27,7 +27,7 @@ class StonecutterCommand {
2727
@Permission("eternalcore.stonecutter")
2828
@DescriptionDocs(description = "Opens a stonecutter for you")
2929
void executeSelf(@Context Player player) {
30-
AdditionalContainerPaper.STONE_CUTTER.open(player);
30+
PaperContainer.STONE_CUTTER.open(player);
3131

3232
this.noticeService.create()
3333
.notice(translation -> translation.container().genericContainerOpened())
@@ -39,7 +39,7 @@ void executeSelf(@Context Player player) {
3939
@Permission("eternalcore.stonecutter.other")
4040
@DescriptionDocs(description = "Opens a stonecutter for another player", arguments = "<player>")
4141
void execute(@Context CommandSender sender, @Arg Player target) {
42-
AdditionalContainerPaper.STONE_CUTTER.open(target);
42+
PaperContainer.STONE_CUTTER.open(target);
4343

4444
this.noticeService.create()
4545
.notice(translation -> translation.container().genericContainerOpenedBy())
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.eternalcode.core.feature.troll.elderguardian;
2+
3+
import com.eternalcode.annotations.scan.command.DescriptionDocs;
4+
import com.eternalcode.core.compatibility.Compatibility;
5+
import com.eternalcode.core.compatibility.Version;
6+
import com.eternalcode.core.injector.annotations.Inject;
7+
import com.eternalcode.core.notice.NoticeService;
8+
import com.eternalcode.paper.PaperOverlay;
9+
import dev.rollczi.litecommands.annotations.argument.Arg;
10+
import dev.rollczi.litecommands.annotations.command.Command;
11+
import dev.rollczi.litecommands.annotations.context.Context;
12+
import dev.rollczi.litecommands.annotations.execute.Execute;
13+
import dev.rollczi.litecommands.annotations.flag.Flag;
14+
import dev.rollczi.litecommands.annotations.permission.Permission;
15+
import org.bukkit.entity.Player;
16+
17+
@Command(name = "elderguardian", aliases = {"elder-guardian"})
18+
@Permission("eternalcore.troll.elderguardian")
19+
@Compatibility(from = @Version(minor = 19, patch = 2)) // Requires Minecraft 1.19.2 or higher
20+
public class ElderGuardianCommand {
21+
22+
private final NoticeService noticeService;
23+
24+
@Inject
25+
public ElderGuardianCommand(NoticeService noticeService) {
26+
this.noticeService = noticeService;
27+
}
28+
29+
@Execute
30+
@DescriptionDocs(description = {"Show an elder guardian to a player"}, arguments = {"<player>", "[-s]"})
31+
void execute(@Context Player sender, @Arg Player target, @Flag("-s") boolean silent) {
32+
if (silent) {
33+
PaperOverlay.ELDER_GUARDIAN_SILENT.show(target);
34+
35+
this.noticeService.create()
36+
.notice(translation -> translation.troll().elderGuardian().elderGuardianShownSilently())
37+
.player(sender.getUniqueId())
38+
.placeholder("{PLAYER}", target.getName())
39+
.send();
40+
return;
41+
}
42+
43+
PaperOverlay.ELDER_GUARDIAN.show(target);
44+
this.noticeService.create()
45+
.notice(translation -> translation.troll().elderGuardian().elderGuardianShown())
46+
.player(sender.getUniqueId())
47+
.placeholder("{PLAYER}", target.getName())
48+
.send();
49+
}
50+
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.eternalcode.core.feature.troll.elderguardian.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
import eu.okaeri.configs.OkaeriConfig;
5+
import lombok.Getter;
6+
import lombok.experimental.Accessors;
7+
8+
@Getter
9+
@Accessors(fluent = true)
10+
public class ENElderGuardianMessages extends OkaeriConfig implements ElderGuardianMessages {
11+
12+
public Notice elderGuardianShown =
13+
Notice.chat("<green>► <white>Shown elder guardian to player <green>{PLAYER}<white>!");
14+
public Notice elderGuardianShownSilently =
15+
Notice.chat("<green>► <white>Shown elder guardian to player <green>{PLAYER}<white> silently!");
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.eternalcode.core.feature.troll.elderguardian.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
5+
public interface ElderGuardianMessages {
6+
7+
Notice elderGuardianShown();
8+
Notice elderGuardianShownSilently();
9+
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.eternalcode.core.feature.troll.elderguardian.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
import eu.okaeri.configs.OkaeriConfig;
5+
import lombok.Getter;
6+
import lombok.experimental.Accessors;
7+
8+
@Getter
9+
@Accessors(fluent = true)
10+
public class PLElderGuardianMessages extends OkaeriConfig implements ElderGuardianMessages {
11+
12+
public Notice elderGuardianShown = Notice.chat("<green>► <white>Pokazano Elder Guardian'a graczowi <green>{PLAYER}<white>!");
13+
public Notice elderGuardianShownSilently = Notice.chat("<green>► <white>Pokazano Elder Guardian'a graczowi <green>{PLAYER}<white> po cichu!");
14+
}

0 commit comments

Comments
 (0)