Skip to content

Commit be47ab7

Browse files
committed
nation command
1 parent d0e837a commit be47ab7

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

src/main/java/pro/cloudnode/smp/smpcore/SMPCore.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import pro.cloudnode.smp.smpcore.command.BanCommand;
1212
import pro.cloudnode.smp.smpcore.command.Command;
1313
import pro.cloudnode.smp.smpcore.command.MainCommand;
14+
import pro.cloudnode.smp.smpcore.command.NationCommand;
1415
import pro.cloudnode.smp.smpcore.command.SeenCommand;
1516
import pro.cloudnode.smp.smpcore.command.TimeCommand;
1617
import pro.cloudnode.smp.smpcore.command.UnbanCommand;
@@ -78,6 +79,7 @@ public void onEnable() {
7879
put("unban", new UnbanCommand());
7980
put("seen", new SeenCommand());
8081
put("time", new TimeCommand());
82+
put("nation", new NationCommand());
8183
}};
8284
commands.put("alts", new AltsCommand(commands.get("smpcore")));
8385
for (final @NotNull Map.Entry<@NotNull String, @NotNull Command> entry : commands.entrySet())
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package pro.cloudnode.smp.smpcore.command;
2+
3+
import org.bukkit.command.CommandSender;
4+
import org.bukkit.entity.Player;
5+
import org.jetbrains.annotations.NotNull;
6+
import org.jetbrains.annotations.Nullable;
7+
import pro.cloudnode.smp.smpcore.Member;
8+
import pro.cloudnode.smp.smpcore.Nation;
9+
import pro.cloudnode.smp.smpcore.Permission;
10+
import pro.cloudnode.smp.smpcore.SMPCore;
11+
12+
import java.util.List;
13+
import java.util.Optional;
14+
15+
public final class NationCommand extends Command {
16+
17+
@Override
18+
public boolean run(@NotNull CommandSender sender, @NotNull String label, @NotNull String @NotNull [] args) {
19+
return false;
20+
}
21+
22+
@Override
23+
public @Nullable List<@NotNull String> tab(@NotNull CommandSender sender, @NotNull String label, @NotNull String @NotNull [] args) {
24+
return List.of();
25+
}
26+
27+
public boolean listMembers(@NotNull CommandSender sender) {
28+
if (!sender.hasPermission(Permission.NATION) || !sender.hasPermission(Permission.NATION_MEMBERS_LIST))
29+
return sendMessage(sender, SMPCore.messages().errorNoPermission());
30+
if (!(sender instanceof final @NotNull Player player))
31+
return sendMessage(sender, SMPCore.messages().errorNotPlayer());
32+
final @NotNull Optional<@NotNull Member> member = Member.get(player);
33+
if (member.isEmpty())
34+
return sendMessage(sender, SMPCore.messages().errorNotMember());
35+
final @NotNull Optional<@NotNull Nation> nation = member.get().nation();
36+
if (nation.isEmpty())
37+
return sendMessage(sender, SMPCore.messages().errorNotInNation());
38+
39+
return sendMessage(sender, SMPCore.messages().nationMembersList(nation.get()));
40+
}
41+
}

src/main/resources/plugin.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,8 @@ commands:
3232
description: See the current game time and date
3333
usage: /<command>
3434
aliases: [ date, today ]
35+
nation:
36+
permission: smpcore.nation
37+
description: Manage nations
38+
usage: /<command>
39+
aliases: [ nations, country, countries ]

0 commit comments

Comments
 (0)