Skip to content

Commit 95c3831

Browse files
committed
fix: Don't parse vanished players
1 parent b3ba0dc commit 95c3831

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

common/src/main/java/net/draycia/carbon/common/command/commands/PartyCommands.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@
3333
import net.draycia.carbon.common.command.Commander;
3434
import net.draycia.carbon.common.command.ParserFactory;
3535
import net.draycia.carbon.common.command.PlayerCommander;
36+
import net.draycia.carbon.common.command.argument.CarbonPlayerParser;
3637
import net.draycia.carbon.common.config.ConfigManager;
3738
import net.draycia.carbon.common.messages.CarbonMessages;
3839
import net.draycia.carbon.common.messages.Option;
3940
import net.draycia.carbon.common.messages.TagPermissions;
4041
import net.draycia.carbon.common.users.NetworkUsers;
4142
import net.draycia.carbon.common.users.PartyInvites;
4243
import net.draycia.carbon.common.users.UserManagerInternal;
44+
import net.draycia.carbon.common.util.CloudUtils;
4345
import net.draycia.carbon.common.util.Pagination;
4446
import net.draycia.carbon.common.util.PaginationHelper;
4547
import net.kyori.adventure.key.Key;
@@ -199,20 +201,31 @@ private void createParty(final CommandContext<PlayerCommander> ctx) {
199201
private void invitePlayer(final CommandContext<PlayerCommander> ctx) {
200202
final CarbonPlayer player = ctx.sender().carbonPlayer();
201203
final CarbonPlayer recipient = ctx.get("player");
204+
205+
final @Nullable String recipientInputString = ctx.parsingContext("player").consumedInput();
206+
if (!this.network.online(recipient) || !player.awareOf(recipient) && !player.hasPermission("carbon.whisper.vanished")) {
207+
final var exception = new CarbonPlayerParser.ParseException(recipientInputString, this.messages);
208+
this.messages.errorCommandArgumentParsing(player, CloudUtils.message(exception));
209+
return;
210+
}
211+
202212
if (recipient.uuid().equals(player.uuid())) {
203213
this.messages.cannotInviteSelf(player);
204214
return;
205215
}
216+
206217
final @Nullable Party party = player.party().join();
207218
if (party == null) {
208219
this.messages.mustBeInParty(player);
209220
return;
210221
}
222+
211223
final @Nullable Party recipientParty = recipient.party().join();
212224
if (recipientParty != null && recipientParty.id().equals(party.id())) {
213225
this.messages.alreadyInParty(player, recipient.displayName());
214226
return;
215227
}
228+
216229
this.partyInvites.sendInvite(player.uuid(), recipient.uuid(), party.id());
217230
this.messages.receivedPartyInvite(recipient, player.displayName(), player.username(), party.name());
218231
this.messages.sentPartyInvite(player, recipient.displayName(), party.name());

0 commit comments

Comments
 (0)