Skip to content

Commit cf285ea

Browse files
authored
Messages pluralised (#41)
1 parent b00ed61 commit cf285ea

4 files changed

Lines changed: 57 additions & 28 deletions

File tree

src/main/java/org/modularsoft/PlayerHeadHunt/HeadChatController.java

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,39 @@ public HeadChatController(PlayerHeadHuntMain plugin) {
1818
this.plugin = plugin;
1919
}
2020

21-
public void headAlreadyFoundResponse(Player player, int x, int y, int z) {
22-
// Play sound for a Player Head that is already found.
23-
player.playSound(player.getLocation(), plugin.config().getHeadAlreadyFoundSound(), 1, 1);
24-
String message = plugin.config().getLangHeadAlreadyFound()
25-
.replace("%ALREADYFOUNDHEADS%", String.valueOf(foundHeadsAlreadyCount(plugin, x, y, z)));
26-
player.sendMessage(message);
27-
}
21+
public void headFoundResponse(Player player, boolean hasAlreadyBeenFound, int headCount, int x, int y, int z) {
22+
String baseMessage;
23+
if (hasAlreadyBeenFound) {
24+
baseMessage = plugin.config().getLangHeadAlreadyFound();
25+
player.playSound(player.getLocation(), plugin.config().getHeadAlreadyFoundSound(), 1, 1);
26+
} else {
27+
baseMessage = plugin.config().getLangHeadFound();
28+
player.playSound(player.getLocation(), plugin.config().getHeadFoundSound(), 1, 1);
29+
}
30+
31+
int otherPlayerFoundHead = foundHeadsAlreadyCount(plugin, x, y, z) - 1;
32+
33+
String otherPlayersHaveFoundSuffix;
34+
if (otherPlayerFoundHead == 0) {
35+
if (hasAlreadyBeenFound) {
36+
otherPlayersHaveFoundSuffix = plugin.config().getLangHeadFirstFinderStill();
37+
} else {
38+
otherPlayersHaveFoundSuffix = plugin.config().getLangHeadFirstFinder();
39+
}
40+
} else if (otherPlayerFoundHead == 1) {
41+
otherPlayersHaveFoundSuffix = plugin.config().getLangHeadNotFirstFinderSingle()
42+
.replace("%OTHERPLAYERSFOUNDHEAD%", "" + otherPlayerFoundHead);
43+
} else {
44+
otherPlayersHaveFoundSuffix = plugin.config().getLangHeadNotFirstFinderMultiple()
45+
.replace("%OTHERPLAYERSFOUNDHEAD%", "" + otherPlayerFoundHead);
46+
}
2847

29-
public void headFoundResponse(Player player, int headCount, int x, int y, int z) {
30-
String message = plugin.config().getLangHeadFound()
31-
.replace("%FOUNDHEADS%", headCount + "")
48+
String message = baseMessage
49+
.replace("%FOUNDHEADS%", "" + headCount)
3250
.replace("%NUMBEROFHEADS%", "" + plugin.config().getTotalHeads())
33-
.replace("%ALREADYFOUNDHEADS%", String.valueOf(foundHeadsAlreadyCount(plugin, x, y, z)));
51+
.replace("%ALREADYFOUNDHEADS%", otherPlayersHaveFoundSuffix);
3452

3553
// Play sound for a Player Head that is found.
36-
player.playSound(player.getLocation(), plugin.config().getHeadFoundSound(), 1, 1);
3754
player.sendMessage(message);
3855
}
3956

src/main/java/org/modularsoft/PlayerHeadHunt/PluginConfig.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@ public class PluginConfig {
4040
@Getter private final String langInsufficientPermissions;
4141
@Getter private final String langCommandIncomplete;
4242
@Getter private final String langHeadFound;
43+
@Getter private final String langHeadAlreadyFound;
44+
@Getter private final String langHeadFirstFinder;
45+
@Getter private final String langHeadFirstFinderStill;
46+
@Getter private final String langHeadNotFirstFinderSingle;
47+
@Getter private final String langHeadNotFirstFinderMultiple;
4348
@Getter private final String langFirstHeadFound;
4449
@Getter private final String langLastHeadFound;
45-
@Getter private final String langHeadAlreadyFound;
4650
@Getter private final String langHeadCount;
4751
@Getter private final String langHeadCollectionMilestoneReached;
4852

@@ -91,24 +95,28 @@ public PluginConfig(PlayerHeadHuntMain plugin) {
9195
headMilestones.get(config.getInt("MILESTONES.DIAMONDHELMET")).setHelmet(Material.DIAMOND_HELMET);
9296
headMilestones.get(config.getInt("MILESTONES.NETHERITEHELMET")).setHelmet(Material.NETHERITE_HELMET);
9397

94-
langDatabaseConnectionError = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.DATABASE.CONNECTIONERROR")));
95-
langDatabaseConnectionSuccess = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.DATABASE.CONNECTIONSUCCESS")));
96-
langNotAPlayer = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.NOTAPLAYER")));
97-
langInsufficientPermissions = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.INSUFFICENTPERMISSIONS")));
98-
langCommandIncomplete = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.COMMANDINCOMPLETE")));
98+
langDatabaseConnectionError = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.DATABASE.CONNECTIONERROR")));
99+
langDatabaseConnectionSuccess = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.DATABASE.CONNECTIONSUCCESS")));
100+
langNotAPlayer = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.NOTAPLAYER")));
101+
langInsufficientPermissions = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.INSUFFICENTPERMISSIONS")));
102+
langCommandIncomplete = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.COMMAND.COMMANDINCOMPLETE")));
99103
langHeadFound = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.HEADFOUND")));
104+
langHeadAlreadyFound = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.HEADALREADYFOUND")));
105+
langHeadFirstFinder = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.FIRSTFINDER")));
106+
langHeadFirstFinderStill = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.FIRSTFINDERSTILL")));
107+
langHeadNotFirstFinderSingle = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.NOTFIRSTFINDERSINGLE")));
108+
langHeadNotFirstFinderMultiple = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.NOTFIRSTFINDERMULTIPLE")));
100109
langFirstHeadFound = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.FIRSTHEADFOUND")));
101110
langLastHeadFound = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.LASTHEADFOUND")));
102-
langHeadAlreadyFound = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.HEADALREADYFOUND")));
103111
langHeadCount = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.HEADCOUNT")));
104112
langHeadCollectionMilestoneReached = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.HEAD.HEADCOLLECTIONMILESTONEREACHED")));
105113

106114
langLeaderboardNoHeads = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.NOHEADS")));
107-
langLeaderboardHeader = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.HEADER")));
108-
langLeaderboardFirstColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.FIRSTCOLOUR")));
109-
langLeaderboardSecondColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.SECONDCOLOUR")));
110-
langLeaderboardThirdColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.THIRDCOLOUR")));
111-
langLeaderboardFormat = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.FORMAT")));
115+
langLeaderboardHeader = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.HEADER")));
116+
langLeaderboardFirstColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.FIRSTCOLOUR")));
117+
langLeaderboardSecondColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.SECONDCOLOUR")));
118+
langLeaderboardThirdColour = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.THIRDCOLOUR")));
119+
langLeaderboardFormat = ChatColor.translateAlternateColorCodes('&', Objects.requireNonNull(config.getString("LANG.LEADERBOARD.FORMAT")));
112120
}
113121

114122
public void save() {

src/main/java/org/modularsoft/PlayerHeadHunt/events/HeadFindEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void onHeadFind(PlayerInteractEvent event) {
4444
int y = block.getY();
4545
int z = block.getZ();
4646
if (HeadQuery.hasAlreadyCollectedHead(plugin, player, x, y, z)) {
47-
headChatController.headAlreadyFoundResponse(player, x, y, z);
47+
headChatController.headFoundResponse(player, true, 0, x, y, z);
4848
return;
4949
}
5050

@@ -63,7 +63,7 @@ public void onHeadFind(PlayerInteractEvent event) {
6363
if (milestones.containsKey(foundHeads)) {
6464
milestones.get(foundHeads).trigger(headChatController, headHatController, player, event);
6565
} else {
66-
headChatController.headFoundResponse(player, foundHeads, x, y, z);
66+
headChatController.headFoundResponse(player, false, foundHeads, x, y, z);
6767
}
6868
}
6969

src/main/resources/config.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,14 @@ LANG:
6565
INSUFFICENTPERMISSIONS: "&cYou do not have permission to use this command."
6666
COMMANDINCOMPLETE: "&cThis command is incomplete, please refer to the command guide for reference."
6767
HEAD:
68-
HEADFOUND: "&aYou have found an egg (%FOUNDHEADS%/%NUMBEROFHEADS%), %ALREADYFOUNDHEADS% hunters have found this egg."
68+
HEADFOUND: "&aYou have found an egg (%FOUNDHEADS%/%NUMBEROFHEADS%). %ALREADYFOUNDHEADS%."
69+
HEADALREADYFOUND: "&eYou have already found this egg, %ALREADYFOUNDHEADS%."
70+
FIRSTFINDER: "You are the first to find this egg"
71+
FIRSTFINDERSTILL: "You are the only person to find this egg"
72+
NOTFIRSTFINDERSINGLE: "%OTHERPLAYERSFOUNDHEAD% other player has found this egg"
73+
NOTFIRSTFINDERMULTIPLE: "%OTHERPLAYERSFOUNDHEAD% other players have found this egg"
6974
FIRSTHEADFOUND: "&e&l%PLAYER% &5has found their first egg!"
7075
LASTHEADFOUND: "&e&l%PLAYER% &5has found all &e&l%NUMBEROFHEADS% &r&5eggs!"
71-
HEADALREADYFOUND: "&eYou have already found this egg, %ALREADYFOUNDHEADS% hunters have already found this egg."
7276
HEADCOUNT: "&eYou have found &l&6%FOUNDHEADS%/%NUMBEROFHEADS% &r&eheads."
7377
# Use %PLAYER% to display players name, use %NUMBEROFHEADS% to display number of eggs.
7478
HEADCOLLECTIONMILESTONEREACHED: "&e&l%PLAYER% &5has collected &e&l%NUMBEROFHEADS% &r&5eggs!"

0 commit comments

Comments
 (0)