Skip to content

Commit cb3c77b

Browse files
authored
GH-1220 Overhaul disposal command, translations, and migration (#1220)
* Overhaul disposal command, translations, and migration * Add rest of messages. * Follow review.
1 parent 7415f04 commit cb3c77b

File tree

12 files changed

+89
-36
lines changed

12 files changed

+89
-36
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.eternalcode.core.configuration.migrations;
2+
3+
import static eu.okaeri.configs.migrate.ConfigMigrationDsl.move;
4+
5+
import eu.okaeri.configs.migrate.builtin.NamedMigration;
6+
7+
public class Migration_0033_Move_disposal_messages_to_dedicated_section extends NamedMigration {
8+
Migration_0033_Move_disposal_messages_to_dedicated_section() {
9+
super(
10+
"Move disposal messages into dedicated sections",
11+
move("inventory.disposalTitle", "disposal.disposalInventoryTitle"),
12+
move("inventory.disposalOpened", "disposal.disposalOpened"),
13+
move("inventory.targetDisposalOpened", "disposal.disposalOpenedForTargetPlayer")
14+
);
15+
}
16+
}

eternalcore-core/src/main/java/com/eternalcode/core/configuration/migrations/Migrations.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,6 @@ public class Migrations {
3434
new Migration_0015_Move_ignore_messages_to_dedicated_section(),
3535
new Migration_0031_Move_death_messages_to_dedicated_section(),
3636
new Migration_0032_Move_join_quit_messages_to_dedicated_section(),
37+
new Migration_0033_Move_disposal_messages_to_dedicated_section(),
3738
};
3839
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ public interface ContainerMessages {
1010
Notice cartographyOpened();
1111
Notice targetCartographyOpened();
1212

13-
Notice disposalOpened();
14-
Notice targetDisposalOpened();
15-
1613
Notice enderchestOpened();
1714
Notice targetEnderchestOpened();
1815

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ public class ENContainerMessages extends OkaeriConfig implements ContainerMessag
1515
Notice cartographyOpened = Notice.chat("<green>► <white>Cartography table opened!");
1616
Notice targetCartographyOpened = Notice.chat("<green>► <white>Opened a cartography table for {PLAYER}!");
1717

18-
Notice disposalOpened = Notice.chat("<green>► <white>Disposal opened!");
19-
Notice targetDisposalOpened = Notice.chat("<green>► <white>Opened a disposal for {PLAYER}!");
20-
2118
Notice enderchestOpened = Notice.chat("<green>► <white>Ender chest opened!");
2219
Notice targetEnderchestOpened = Notice.chat("<green>► <white>Opened an ender chest for {PLAYER}!");
2320

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ public class PLContainerMessages extends OkaeriConfig implements ContainerMessag
1515
Notice cartographyOpened = Notice.chat("<green>► <white>Otworzono stół kartograficzny!");
1616
Notice targetCartographyOpened = Notice.chat("<green>► <white>Otworzono stół kartograficzny dla {PLAYER}!");
1717

18-
Notice disposalOpened = Notice.chat("<green>► <white>Otworzono śmietnik!");
19-
Notice targetDisposalOpened = Notice.chat("<green>► <white>Otworzono śmietnik dla {PLAYER}!");
20-
2118
Notice enderchestOpened = Notice.chat("<green>► <white>Otworzono enderchest!");
2219
Notice targetEnderchestOpened = Notice.chat("<green>► <white>Otworzono enderchest dla {PLAYER}!");
2320

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

33
import com.eternalcode.annotations.scan.command.DescriptionDocs;
44
import com.eternalcode.commons.adventure.AdventureUtil;
@@ -16,18 +16,26 @@
1616
import org.bukkit.Server;
1717
import org.bukkit.command.CommandSender;
1818
import org.bukkit.entity.Player;
19+
import org.bukkit.inventory.Inventory;
1920

2021
@Command(name = "disposal")
2122
@Permission("eternalcore.disposal")
2223
class DisposalCommand {
2324

25+
private static final int DISPOSAL_INVENTORY_SIZE = 54;
26+
2427
private final NoticeService noticeService;
2528
private final MiniMessage miniMessage;
2629
private final TranslationManager translationManager;
2730
private final Server server;
2831

2932
@Inject
30-
DisposalCommand(MiniMessage miniMessage, TranslationManager translationManager, Server server, NoticeService noticeService) {
33+
DisposalCommand(
34+
MiniMessage miniMessage,
35+
TranslationManager translationManager,
36+
Server server,
37+
NoticeService noticeService
38+
) {
3139
this.miniMessage = miniMessage;
3240
this.translationManager = translationManager;
3341
this.server = server;
@@ -48,21 +56,26 @@ void executeOther(@Sender CommandSender commandSender, @Arg Player target) {
4856

4957
this.noticeService.create()
5058
.sender(commandSender)
51-
.notice(message -> message.container().targetDisposalOpened())
59+
.notice(message -> message.disposal().disposalOpenedForTargetPlayer())
5260
.placeholder("{PLAYER}", target.getName())
5361
.send();
5462
}
5563

56-
void openDisposal(Player player) {
57-
Translation translation = this.translationManager.getMessages();
58-
Component containerTitle = this.miniMessage.deserialize(translation.inventory().disposalTitle());
59-
String serializedContainerTitle = AdventureUtil.SECTION_SERIALIZER.serialize(containerTitle);
60-
61-
player.openInventory(this.server.createInventory(null, 54, serializedContainerTitle));
64+
private void openDisposal(Player player) {
65+
Inventory disposalInventory = this.createDisposalInventory();
66+
player.openInventory(disposalInventory);
6267

6368
this.noticeService.create()
6469
.player(player.getUniqueId())
65-
.notice(message -> message.container().disposalOpened())
70+
.notice(message -> message.disposal().disposalOpened())
6671
.send();
6772
}
73+
74+
private Inventory createDisposalInventory() {
75+
Translation translation = this.translationManager.getMessages();
76+
Component containerTitle = this.miniMessage.deserialize(translation.disposal().disposalInventoryTitle());
77+
String serializedTitle = AdventureUtil.SECTION_SERIALIZER.serialize(containerTitle);
78+
79+
return this.server.createInventory(null, DISPOSAL_INVENTORY_SIZE, serializedTitle);
80+
}
6881
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.eternalcode.core.feature.disposal.messages;
2+
3+
import com.eternalcode.multification.notice.Notice;
4+
5+
public interface DisposalMessages {
6+
String disposalInventoryTitle();
7+
Notice disposalOpened();
8+
Notice disposalOpenedForTargetPlayer();
9+
}
10+
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.eternalcode.core.feature.disposal.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 ENDisposalMessages extends OkaeriConfig implements DisposalMessages {
11+
String disposalInventoryTitle = "<gray>Trash";
12+
Notice disposalOpened = Notice.chat("<green>► <white>Disposal opened!");
13+
Notice disposalOpenedForTargetPlayer = Notice.chat("<green>► <white>Opened a disposal for {PLAYER}!");
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.eternalcode.core.feature.disposal.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 PLDisposalMessages extends OkaeriConfig implements DisposalMessages {
11+
String disposalInventoryTitle = "<gray>Kosz";
12+
Notice disposalOpened = Notice.chat("<green>► <white>Otworzono śmietnik!");
13+
Notice disposalOpenedForTargetPlayer = Notice.chat("<green>► <white>Otworzono śmietnik dla {PLAYER}!");
14+
}

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.eternalcode.core.feature.clear.messages.ClearMessages;
1010
import com.eternalcode.core.feature.container.messages.ContainerMessages;
1111
import com.eternalcode.core.feature.deathmessage.messages.DeathMessages;
12+
import com.eternalcode.core.feature.disposal.messages.DisposalMessages;
1213
import com.eternalcode.core.feature.enchant.messages.EnchantMessages;
1314
import com.eternalcode.core.feature.feed.messages.FeedMessages;
1415
import com.eternalcode.core.feature.fly.messages.FlyMessages;
@@ -98,9 +99,7 @@ interface ChatSection {
9899
Notice commandNotFound();
99100
}
100101

101-
interface InventorySection {
102-
String disposalTitle();
103-
}
102+
DisposalMessages disposal();
104103

105104
// clear section
106105
ClearMessages clear();
@@ -188,8 +187,6 @@ interface InventorySection {
188187
AfkMessages afk();
189188
// death message section
190189
DeathMessages deathMessage();
191-
// inventory section
192-
InventorySection inventory();
193190
//Seen section
194191
SeenMessages seen();
195192
// sign editor section

0 commit comments

Comments
 (0)