Skip to content

Commit

Permalink
Show whispers to spying players
Browse files Browse the repository at this point in the history
  • Loading branch information
Draycia authored and jpenilla committed Mar 7, 2024
1 parent a41fc01 commit a2d8784
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,9 @@ public void whisper(
}

final String recipientUsername = recipient.username();
if (!this.network.online(recipient) || !sender.awareOf(recipient) && !sender.hasPermission("carbon.whisper.vanished")) {
if (!this.network.online(recipient) || !sender.awareOf(recipient) &&
!sender.hasPermission("carbon.whisper.vanished")) {

final var exception = new CarbonPlayerParser.ParseException(
recipientInputString == null ? recipientUsername : recipientInputString,
this.messages
Expand Down Expand Up @@ -199,7 +201,8 @@ public void whisper(
final Component senderDisplayName = sender.displayName();
final Component recipientDisplayName = recipient.displayName();

final CarbonPrivateChatEvent privateChatEvent = new CarbonPrivateChatEventImpl(sender, recipient, Component.text(message));
final CarbonPrivateChatEvent privateChatEvent = new CarbonPrivateChatEventImpl(sender,
recipient, Component.text(message));
this.events.emit(privateChatEvent);

if (privateChatEvent.cancelled()) {
Expand All @@ -208,11 +211,18 @@ public void whisper(
}

final String senderUsername = sender.username();
this.messages.whisperSender(SourcedAudience.of(sender, sender), senderUsername, senderDisplayName, recipientUsername, recipientDisplayName, privateChatEvent.message());

this.messages.whisperSender(SourcedAudience.of(sender, sender), senderUsername, senderDisplayName,
recipientUsername, recipientDisplayName, privateChatEvent.message());
if (localRecipient) {
this.messages.whisperRecipient(SourcedAudience.of(sender, recipient), senderUsername, senderDisplayName, recipientUsername, recipientDisplayName, privateChatEvent.message());
this.messages.whisperRecipient(SourcedAudience.of(sender, recipient), senderUsername,
senderDisplayName, recipientUsername, recipientDisplayName, privateChatEvent.message());
}
this.messages.whisperConsoleLog(this.server.console(), senderUsername, senderDisplayName, recipientUsername, recipientDisplayName, privateChatEvent.message());
WhisperCommand.broadcastWhisperSpy(this.server, this.messages, senderUsername, senderDisplayName,
recipientUsername, recipientDisplayName, privateChatEvent.message());

this.messages.whisperConsoleLog(this.server.console(), senderUsername, senderDisplayName,
recipientUsername, recipientDisplayName, privateChatEvent.message());

final @Nullable Sound messageSound = this.configManager.primaryConfig().messageSound();
if (localRecipient && messageSound != null) {
Expand Down Expand Up @@ -243,8 +253,15 @@ public void handlePacket(final WhisperPacket packet) {
final Component recipientDisplayName = recipient.displayName();

recipient.whisperReplyTarget(sender.uuid());
this.messages.whisperRecipient(SourcedAudience.of(sender, recipient), senderUsername, senderDisplayName, recipientUsername, recipientDisplayName, packet.message());
this.messages.whisperConsoleLog(this.server.console(), senderUsername, senderDisplayName, recipientUsername, recipientDisplayName, packet.message());
this.messages.whisperRecipient(SourcedAudience.of(sender, recipient), senderUsername,
senderDisplayName, recipientUsername, recipientDisplayName, packet.message());

WhisperCommand.broadcastWhisperSpy(this.server, this.messages, senderUsername, senderDisplayName,
recipientUsername, recipientDisplayName, packet.message());

this.messages.whisperConsoleLog(this.server.console(), senderUsername, senderDisplayName,
recipientUsername, recipientDisplayName, packet.message());

final @Nullable Sound messageSound = this.configManager.primaryConfig().messageSound();
if (messageSound != null) {
recipient.playSound(messageSound);
Expand All @@ -256,4 +273,21 @@ public void handlePacket(final WhisperPacket packet) {
}
}

public static void broadcastWhisperSpy(
final CarbonServer server,
final CarbonMessages messages,
final String senderUsername,
final Component senderDisplayName,
final String recipientUsername,
final Component recipientDisplayName,
final Component message
) {
for (final CarbonPlayer player : server.players()) {
if (player.spying()) {
messages.whisperRecipientSpy(player, senderUsername,
senderDisplayName, recipientUsername, recipientDisplayName, message);
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,16 @@ void whisperRecipient(
Component message
);

@Message("whisper.from.spy")
void whisperRecipientSpy(
Audience audience,
String senderUsername,
Component senderDisplayName,
String recipientUsername,
Component recipientDisplayName,
Component message
);

@Message("whisper.console")
void whisperConsoleLog(
Audience audience,
Expand Down
1 change: 1 addition & 0 deletions common/src/main/resources/locale/messages-en_US.properties
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ whisper.console=<gold>[<green><sender_display_name></green>] -> [<green><recipie
whisper.continue.target_missing=<red>You have no one to whisper
whisper.error=<red>Failed to send private message
whisper.from=<click:suggest_command:'/whisper <sender_username> '><hover:show_text:'Click to start a reply'><gold>[<green><sender_display_name></green>] -> [<green>You</green>] <message>
whisper.from.spy=<red>SPY [</red><green><sender_display_name></green>]<red> -> [</red><green><recipient_display_name></green><red>]</red> <message>
whisper.ignored_by_target=<red><target> <red>is ignoring you
whisper.ignoring_target=<red>You are ignoring <target>
whisper.ignoring_all=<red>You cannot send messages while they are ignored!
Expand Down

0 comments on commit a2d8784

Please sign in to comment.