Skip to content

Commit e3fe988

Browse files
committed
Refactor messages, add compatibility for non-side-based sing's
1 parent 2c16d2b commit e3fe988

File tree

8 files changed

+124
-40
lines changed

8 files changed

+124
-40
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.eternalcode.core.feature.signeditor;
22

3+
import com.eternalcode.core.compatibility.Compatibility;
4+
import com.eternalcode.core.compatibility.Version;
35
import com.eternalcode.core.notice.NoticeService;
46
import dev.rollczi.litecommands.annotations.argument.Arg;
57
import dev.rollczi.litecommands.annotations.command.Command;
@@ -10,51 +12,49 @@
1012
import net.kyori.adventure.text.minimessage.MiniMessage;
1113
import org.bukkit.block.Block;
1214
import org.bukkit.block.Sign;
13-
import org.bukkit.block.sign.Side;
14-
import org.bukkit.block.sign.SignSide;
1515
import org.bukkit.entity.Player;
1616

17-
@Command(name = "signedit")
18-
@Permission("eternalcode.signedit")
19-
public class SignEditCommand {
17+
@Command(name = "signeditor")
18+
@Permission("eternalcode.signeditor")
19+
@Compatibility(to = @Version(minor = 19, patch = 4))
20+
public class SignEditorCommand {
2021

2122
private final NoticeService noticeService;
2223
private final MiniMessage miniMessage;
2324

24-
public SignEditCommand(NoticeService noticeService, MiniMessage miniMessage) {
25+
public SignEditorCommand(NoticeService noticeService, MiniMessage miniMessage) {
2526
this.noticeService = noticeService;
2627
this.miniMessage = miniMessage;
2728
}
2829

29-
@Execute
30-
void execute(@Context Player player, @Arg Integer index, @Join String text) {
30+
@Execute(name = "setline")
31+
void execute(@Context Player player, @Arg int index, @Join String text) {
3132
Block targetBlock = player.getTargetBlock(null, 5);
3233

3334
if (!(targetBlock.getState() instanceof Sign sign)) {
3435
this.noticeService.create()
3536
.player(player.getUniqueId())
36-
.notice(translation -> translation.signEdit().noSignFound())
37+
.notice(translation -> translation.signEditor().noSignFound())
3738
.send();
3839
return;
3940
}
4041

41-
SignSide frontSide = sign.getSide(Side.FRONT);
42-
if (index < 0 || index >= frontSide.getLines().length) {
42+
if (index < 0 || index >= sign.getLines().length) {
4343
this.noticeService.create()
4444
.player(player.getUniqueId())
45-
.notice(translation -> translation.signEdit().invalidIndex())
45+
.notice(translation -> translation.signEditor().invalidIndex())
4646
.send();
4747
return;
4848
}
4949

50-
frontSide.setLine(index, this.miniMessage.deserialize(text).toString());
50+
sign.setLine(index, this.miniMessage.deserialize(text).toString());
5151
sign.update();
5252

5353
this.noticeService.create()
5454
.player(player.getUniqueId())
55-
.placeholder("{INDEX}", index.toString())
55+
.placeholder("{INDEX}", String.valueOf(index))
5656
.placeholder("{TEXT}", text)
57-
.notice(translation -> translation.signEdit().lineSet())
57+
.notice(translation -> translation.signEditor().lineSet())
5858
.send();
5959
}
6060
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.eternalcode.core.feature.signeditor;
2+
3+
import com.eternalcode.core.compatibility.Compatibility;
4+
import com.eternalcode.core.compatibility.Version;
5+
import com.eternalcode.core.notice.NoticeService;
6+
import dev.rollczi.litecommands.annotations.argument.Arg;
7+
import dev.rollczi.litecommands.annotations.command.Command;
8+
import dev.rollczi.litecommands.annotations.context.Context;
9+
import dev.rollczi.litecommands.annotations.execute.Execute;
10+
import dev.rollczi.litecommands.annotations.join.Join;
11+
import dev.rollczi.litecommands.annotations.permission.Permission;
12+
import net.kyori.adventure.text.minimessage.MiniMessage;
13+
import org.bukkit.block.Block;
14+
import org.bukkit.block.Sign;
15+
import org.bukkit.block.sign.Side;
16+
import org.bukkit.block.sign.SignSide;
17+
import org.bukkit.entity.Player;
18+
19+
@Command(name = "signeditor")
20+
@Permission("eternalcode.signeditor")
21+
@Compatibility(from = @Version(minor = 20, patch = 0))
22+
public class SignSideEditorCommand {
23+
24+
private final NoticeService noticeService;
25+
private final MiniMessage miniMessage;
26+
27+
public SignSideEditorCommand(NoticeService noticeService, MiniMessage miniMessage) {
28+
this.noticeService = noticeService;
29+
this.miniMessage = miniMessage;
30+
}
31+
32+
@Execute(name = "setline")
33+
void execute(@Context Player player, @Arg Side side, @Arg int index, @Join String text) {
34+
Block targetBlock = player.getTargetBlock(null, 5);
35+
36+
if (!(targetBlock.getState() instanceof Sign sign)) {
37+
this.noticeService.create()
38+
.player(player.getUniqueId())
39+
.notice(translation -> translation.signEditor().noSignFound())
40+
.send();
41+
return;
42+
}
43+
44+
SignSide signSide = sign.getSide(side);
45+
if (index < 0 || index >= signSide.getLines().length) {
46+
this.noticeService.create()
47+
.player(player.getUniqueId())
48+
.notice(translation -> translation.signEditor().invalidIndex())
49+
.send();
50+
return;
51+
}
52+
53+
signSide.setLine(index, this.miniMessage.deserialize(text).toString());
54+
sign.update();
55+
56+
this.noticeService.create()
57+
.player(player.getUniqueId())
58+
.placeholder("{INDEX}", String.valueOf(index))
59+
.placeholder("{TEXT}", text)
60+
.notice(translation -> translation.signEditor().lineSet())
61+
.send();
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.eternalcode.core.feature.signeditor.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
import lombok.Getter;
5+
import lombok.experimental.Accessors;
6+
import net.dzikoysk.cdn.entity.Contextual;
7+
8+
@Getter
9+
@Accessors(fluent = true)
10+
@Contextual
11+
public class ENSignEditorMessages implements SignEditorMessages {
12+
public Notice noSignFound = Notice.chat("<red>✘ <dark_red>Sign not found, please look at the sign!");
13+
public Notice invalidIndex = Notice.chat("<red>✘ <dark_red>Invalid index!");
14+
public Notice lineSet = Notice.chat("<green>► <white>Line <green>{LINE} <white>set to <green>{TEXT}");
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.eternalcode.core.feature.signeditor.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
import lombok.Getter;
5+
import lombok.experimental.Accessors;
6+
import net.dzikoysk.cdn.entity.Contextual;
7+
8+
@Getter
9+
@Accessors(fluent = true)
10+
@Contextual
11+
public class PLSignEditorMessages implements SignEditorMessages{
12+
public Notice noSignFound = Notice.chat("<red>✘ <dark_red>Nie odnaleziono tabliczki, proszę spojrzeć na tabliczkę!");
13+
public Notice invalidIndex = Notice.chat("<red>✘ <dark_red>Nieprawidłowy indeks!");
14+
public Notice lineSet = Notice.chat("<green>► <white>Ustawiono linię <green>{LINE} <white>na <green>{TEXT}");
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.eternalcode.core.feature.signeditor.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
5+
public interface SignEditorMessages {
6+
Notice noSignFound();
7+
Notice invalidIndex();
8+
Notice lineSet();
9+
}

eternalcore-core/src/main/java/com/eternalcode/core/translation/Translation.java

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

33
import com.eternalcode.core.configuration.contextual.ConfigItem;
44
import com.eternalcode.core.feature.language.Language;
5+
import com.eternalcode.core.feature.signeditor.messages.SignEditorMessages;
56
import com.eternalcode.core.feature.warp.WarpInventoryItem;
67
import com.eternalcode.multification.notice.Notice;
78
import org.bukkit.Material;
@@ -482,11 +483,5 @@ interface JailSection {
482483
}
483484

484485

485-
SignEditSection signEdit();
486-
487-
interface SignEditSection {
488-
Notice noSignFound();
489-
Notice invalidIndex();
490-
Notice lineSet();
491-
}
486+
SignEditorMessages signEditor();
492487
}

eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/ENTranslation.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import com.eternalcode.core.configuration.contextual.ConfigItem;
44
import com.eternalcode.core.feature.language.Language;
5+
import com.eternalcode.core.feature.signeditor.messages.PLSignEditorMessages;
6+
import com.eternalcode.core.feature.signeditor.messages.SignEditorMessages;
57
import com.eternalcode.core.feature.warp.WarpInventoryItem;
68
import com.eternalcode.core.translation.AbstractTranslation;
79
import com.eternalcode.multification.bukkit.notice.BukkitNotice;
@@ -933,13 +935,5 @@ public static class ENJailSection implements JailSection {
933935
}
934936

935937
@Description({ " ", "# Ta sekcja odpowiada za wiadomości dotyczące edycji tabliczek"})
936-
public PLTranslation.SignEditor signEditor = new PLTranslation.SignEditor();
937-
938-
@Getter
939-
@Contextual
940-
public static class SignEditor {
941-
public Notice noSignFound = Notice.chat("<red>✘ <dark_red>Sign not found!");
942-
public Notice invalidIndex = Notice.chat("<red>✘ <dark_red>Invalid index!");
943-
public Notice lineSet = Notice.chat("<green>► <white>Line <green>{LINE} <white>set to <green>{TEXT}");
944-
}
938+
public PLSignEditorMessages signEditor = new PLSignEditorMessages();
945939
}

eternalcore-core/src/main/java/com/eternalcode/core/translation/implementation/PLTranslation.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.eternalcode.core.configuration.contextual.ConfigItem;
44
import com.eternalcode.core.feature.language.Language;
5+
import com.eternalcode.core.feature.signeditor.messages.PLSignEditorMessages;
56
import com.eternalcode.core.feature.warp.WarpInventoryItem;
67
import com.eternalcode.core.translation.AbstractTranslation;
78
import com.eternalcode.multification.bukkit.notice.BukkitNotice;
@@ -955,13 +956,5 @@ public static class PLJailSection implements JailSection {
955956
}
956957

957958
@Description({ " ", "# Ta sekcja odpowiada za wiadomości dotyczące edycji tabliczek"})
958-
public SignEditor signEditor = new SignEditor();
959-
960-
@Getter
961-
@Contextual
962-
public static class SignEditor {
963-
public Notice noSignFound = Notice.chat("<red>✘ <dark_red>Nie odnaleziono tabliczki!");
964-
public Notice invalidIndex = Notice.chat("<red>✘ <dark_red>Nieprawidłowy indeks!");
965-
public Notice lineSet = Notice.chat("<green>► <white>Ustawiono linię <green>{LINE} <white>na <green>{TEXT}");
966-
}
959+
public PLSignEditorMessages signEditor = new PLSignEditorMessages();
967960
}

0 commit comments

Comments
 (0)