Skip to content

Commit 229169b

Browse files
feat: message command
Took 13 minutes
1 parent 7dd2a74 commit 229169b

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package net.swofty.types.generic.command.commands;
2+
3+
import net.minestom.server.command.builder.arguments.ArgumentString;
4+
import net.minestom.server.command.builder.arguments.ArgumentStringArray;
5+
import net.minestom.server.command.builder.arguments.ArgumentType;
6+
import net.swofty.proxyapi.ProxyPlayer;
7+
import net.swofty.types.generic.command.CommandParameters;
8+
import net.swofty.types.generic.command.SkyBlockCommand;
9+
import net.swofty.types.generic.data.DataHandler;
10+
import net.swofty.types.generic.user.SkyBlockPlayer;
11+
import net.swofty.types.generic.user.categories.Rank;
12+
import org.jetbrains.annotations.Nullable;
13+
14+
import java.util.UUID;
15+
16+
@CommandParameters(aliases = "msg",
17+
description = "Sends a message to another player",
18+
usage = "/msg <player> <message>",
19+
permission = Rank.DEFAULT,
20+
allowsConsole = false)
21+
public class MessageCommand extends SkyBlockCommand {
22+
@Override
23+
public void registerUsage(MinestomCommand command) {
24+
ArgumentString playerArgument = ArgumentType.String("player");
25+
ArgumentStringArray messageArgument = new ArgumentStringArray("message");
26+
27+
command.addSyntax((sender, context) -> {
28+
if (!permissionCheck(sender)) return;
29+
30+
String playerName = context.get(playerArgument);
31+
String[] message = context.get(messageArgument);
32+
SkyBlockPlayer player = (SkyBlockPlayer) sender;
33+
34+
@Nullable UUID targetUUID = DataHandler.getPotentialUUIDFromName(playerName);
35+
if (targetUUID == null) {
36+
player.sendMessage("§cCan't find a player by the name of '" + playerName + "'");
37+
return;
38+
}
39+
40+
ProxyPlayer target = new ProxyPlayer(targetUUID);
41+
if (!target.isOnline().join()) {
42+
player.sendMessage("§cThe player you tried to message, " + playerName + ", is not online.");
43+
return;
44+
}
45+
String targetName = SkyBlockPlayer.getDisplayName(targetUUID);
46+
String ourName = player.getFullDisplayName();
47+
48+
player.sendMessage("§dTo " + targetName + "§7: " + String.join(" ", message));
49+
target.sendMessage("§dFrom " + ourName + "§7: " + String.join(" ", message));
50+
}, playerArgument, messageArgument);
51+
}
52+
}

0 commit comments

Comments
 (0)