Skip to content

Commit ada24aa

Browse files
committed
command to create channel
1 parent 4d40429 commit ada24aa

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

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

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package pro.cloudnode.smp.cloudnodemsg.command;
22

3+
import org.bukkit.OfflinePlayer;
34
import org.bukkit.command.CommandSender;
45
import org.bukkit.entity.Player;
56
import org.jetbrains.annotations.NotNull;
@@ -18,21 +19,34 @@
1819
import java.util.Optional;
1920

2021
public final class MessageCommand extends Command {
21-
public static final @NotNull String usage = "<player> <message>";
22+
public static final @NotNull String usage = "<player> [message]";
23+
public static final @NotNull String usageConsole = "<player> <message>";
2224

2325
@Override
2426
public boolean run(final @NotNull CommandSender sender, final @NotNull String label, @NotNull String @NotNull [] args) {
2527
if (!sender.hasPermission(Permission.USE)) return new NoPermissionError().send(sender);
26-
if (args.length == 0) return sendMessage(sender, CloudnodeMSG.getInstance().config().usage(label, usage));
27-
if (args.length == 1) return sendMessage(sender, CloudnodeMSG.getInstance().config()
28-
.usage(label, usage.replace("<player>", args[0])));
28+
if (args.length == 0) {
29+
return sendMessage(sender, CloudnodeMSG.getInstance().config().usage(label, sender instanceof Player ? usage : usageConsole));
30+
}
31+
if (args.length == 1 && !(sender instanceof Player)) return sendMessage(sender, CloudnodeMSG.getInstance().config()
32+
.usage(label, usageConsole.replace("<player>", args[0])));
2933

3034
final @NotNull Optional<@NotNull Player> recipient = Optional.ofNullable(CloudnodeMSG.getInstance().getServer()
3135
.getPlayer(args[0]));
3236
if (recipient.isEmpty() || (CloudnodeMSG.isVanished(recipient.get()) && !sender.hasPermission(Permission.SEND_VANISHED))) return new PlayerNotFoundError(args[0]).send(sender);
3337
if (sender instanceof final @NotNull Player player && recipient.get().getUniqueId().equals(player.getUniqueId()))
3438
return new MessageYourselfError().send(sender);
3539

40+
if (args.length == 1) {
41+
final @NotNull Player player = (Player) sender;
42+
if (Message.getChannel(player).map(r -> r.getUniqueId().equals(recipient.get().getUniqueId())).orElse(false)) {
43+
Message.exitChannel(player);
44+
return sendMessage(player, CloudnodeMSG.getInstance().config().channelClosed(player.getName(), recipient.get().getName(), label));
45+
}
46+
Message.createChannel(player, recipient.get());
47+
return sendMessage(player, CloudnodeMSG.getInstance().config().channelCreated(player.getName(), recipient.get().getName(), label));
48+
}
49+
3650
try {
3751
new Message(Message.offlinePlayer(sender), recipient.get(), String.join(" ", Arrays.copyOfRange(args, 1, args.length))).send();
3852
return true;

0 commit comments

Comments
 (0)