Skip to content

Commit df9b55a

Browse files
committed
prevent ignoring players who've never joined the server
1 parent fcc1b0b commit df9b55a

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed

src/main/java/pro/cloudnode/smp/cloudnodemsg/PluginConfig.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,5 +195,18 @@ public PluginConfig(final @NotNull FileConfiguration config) {
195195
Placeholder.unparsed("player", player)
196196
);
197197
}
198+
199+
/**
200+
* Target player has never joined the server
201+
* <p>Placeholders:</p>
202+
* <ul><li>{@code <player>} - the player's username</li></ul>
203+
*
204+
* @param player The player's username
205+
*/
206+
public @NotNull Component neverJoined(final @NotNull String player) {
207+
return MiniMessage.miniMessage().deserialize(Objects.requireNonNull(config.getString("errors.never-joined")),
208+
Placeholder.unparsed("player", player)
209+
);
210+
}
198211
}
199212

src/main/java/pro/cloudnode/smp/cloudnodemsg/command/IgnoreCommand.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import pro.cloudnode.smp.cloudnodemsg.CloudnodeMSG;
99
import pro.cloudnode.smp.cloudnodemsg.Permission;
1010
import pro.cloudnode.smp.cloudnodemsg.error.CannotIgnoredError;
11+
import pro.cloudnode.smp.cloudnodemsg.error.NeverJoinedError;
1112
import pro.cloudnode.smp.cloudnodemsg.error.NoPermissionError;
1213
import pro.cloudnode.smp.cloudnodemsg.error.NotPlayerError;
1314
import pro.cloudnode.smp.cloudnodemsg.message.Message;
@@ -32,6 +33,7 @@ public boolean onCommand(final @NotNull CommandSender sender, final @NotNull org
3233

3334
public static boolean ignore(final @NotNull Player player, final @NotNull OfflinePlayer target) {
3435
if (target.isOnline() && Objects.requireNonNull(target.getPlayer()).hasPermission(Permission.IGNORE_IMMUNE)) return new CannotIgnoredError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
36+
if (!target.hasPlayedBefore()) return new NeverJoinedError(Optional.ofNullable(target.getName()).orElse("Unknown Player")).send(player);
3537
Message.ignore(player, target);
3638
return sendMessage(player, CloudnodeMSG.getInstance().config().ignored(Optional.ofNullable(target.getName()).orElse("Unknown Player")));
3739
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package pro.cloudnode.smp.cloudnodemsg.error;
2+
3+
import org.jetbrains.annotations.NotNull;
4+
import pro.cloudnode.smp.cloudnodemsg.CloudnodeMSG;
5+
6+
/**
7+
* Target player has never joined the server
8+
*/
9+
public final class NeverJoinedError extends Error {
10+
public NeverJoinedError(final @NotNull String player) {
11+
super(CloudnodeMSG.getInstance().config().neverJoined(player));
12+
}
13+
}

src/main/resources/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,8 @@ errors:
6464
# Placeholders:
6565
# <player> - the player's username
6666
cannot-ignore: "<red>(!) You cannot ignore <gray><player></gray>.</red>"
67+
68+
# Target player has never joined the server
69+
# Placeholders:
70+
# <player> - the player's username
71+
never-joined: "<red>(!) <gray><player></gray> has never joined this server.</red>"

0 commit comments

Comments
 (0)