Skip to content

Commit d16e6f6

Browse files
committed
Set ban source
1 parent f0c19fd commit d16e6f6

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/main/java/pro/cloudnode/smp/smpcore/command/BanCommand.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package pro.cloudnode.smp.smpcore.command;
22

3+
import org.bukkit.NamespacedKey;
34
import org.bukkit.OfflinePlayer;
45
import org.bukkit.command.CommandSender;
6+
import org.bukkit.entity.Player;
57
import org.jetbrains.annotations.NotNull;
68
import org.jetbrains.annotations.Nullable;
79
import pro.cloudnode.smp.smpcore.Member;
@@ -25,25 +27,28 @@ public boolean run(@NotNull CommandSender sender, @NotNull String label, @NotNul
2527
return sendMessage(sender, SMPCore.messages().errorNoPermission());
2628
if (args.length < 1) return sendMessage(sender, SMPCore.messages().usage(label, "<username> [reason]"));
2729
final @NotNull OfflinePlayer target = SMPCore.getInstance().getServer().getOfflinePlayer(args[0]);
30+
2831
final @Nullable String reason = args.length > 1 ? String.join(" ", Arrays.copyOfRange(args, 1, args.length)) : null;
32+
final @Nullable Date banExpiry = null;
33+
final @NotNull NamespacedKey banSource;
34+
if (sender instanceof final @NotNull Player player)
35+
banSource = new NamespacedKey(SMPCore.getInstance(), "player/" + player.getUniqueId());
36+
else banSource = new NamespacedKey(SMPCore.getInstance(), "console");
37+
2938
final @NotNull Optional<@NotNull Member> targetMember = Member.get(target);
3039
if (targetMember.isEmpty()) {
31-
SMPCore.runMain(() -> target.ban(reason, (Date) null, null));
40+
SMPCore.runMain(() -> target.ban(reason, banExpiry, banSource.asString()));
3241
return sendMessage(sender, SMPCore.messages().bannedPlayer(target));
3342
}
3443
final @NotNull Member main = targetMember.get().altOwner().orElse(targetMember.get());
3544
final @NotNull HashSet<@NotNull Member> alts = main.getAlts();
3645

37-
// todo: possibly add temp bans & ban source
38-
final @Nullable Date banExpiry = null;
39-
final @Nullable String banSource = null;
40-
41-
SMPCore.runMain(() -> main.player().ban(reason, banExpiry, banSource));
46+
SMPCore.runMain(() -> main.player().ban(reason, banExpiry, banSource.asString()));
4247
if (alts.isEmpty()) return sendMessage(sender, SMPCore.messages().bannedMember(main));
4348
else {
4449
SMPCore.runMain(() -> {
4550
for (final @NotNull Member alt : alts)
46-
alt.player().ban(reason, banExpiry, banSource);
51+
alt.player().ban(reason, banExpiry, banSource.asString());
4752
});
4853
return sendMessage(sender, SMPCore.messages().bannedMemberChain(main, alts.stream().toList()));
4954
}

0 commit comments

Comments
 (0)