Skip to content

Commit 09e14f2

Browse files
authored
Merge pull request #232 from bridgelol/main
fix: bukkit player api usage
2 parents f766397 + b4cc8ed commit 09e14f2

18 files changed

Lines changed: 86 additions & 45 deletions

api/src/main/java/at/helpch/chatchat/api/user/ChatUser.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,15 @@ public interface ChatUser extends User {
1616
*
1717
* @return The player that this user is backed by.
1818
*/
19-
@NotNull Player player();
19+
@NotNull Optional<Player> player();
20+
21+
/**
22+
* Gets the player that this user is backed by. If the player is not present, an exception is thrown.
23+
*
24+
* @return The player that this user is backed by.
25+
* @throws NullPointerException If the player is not present.
26+
*/
27+
@NotNull Player playerNotNull() throws NullPointerException;
2028

2129
/**
2230
* Gets the user that this user has last sent a private message to.

plugin/src/main/java/at/helpch/chatchat/ChatChatPlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151

5252
import java.util.ArrayList;
5353
import java.util.List;
54+
import java.util.Objects;
5455
import java.util.stream.Collectors;
5556

5657
@BukkitMain
@@ -225,8 +226,8 @@ private void registerSuggestions() {
225226
.filter(ChatUser.class::isInstance)
226227
.map(ChatUser.class::cast)
227228
.filter(sender::canSee)
228-
.map(ChatUser::player)
229-
.map(Player::getName)
229+
.map(user -> user.player().map(Player::getName).orElse(null))
230+
.filter(Objects::nonNull)
230231
.collect(Collectors.toUnmodifiableList())
231232
);
232233
commandManager.registerSuggestion(SuggestionKey.of("files"), (sender, context) -> DumpUtils.FILES);

plugin/src/main/java/at/helpch/chatchat/command/FormatTestCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public void testFormat(
3737
sender.sendMessage(
3838
FormatUtils.parseFormat(
3939
format,
40-
sender.player(),
41-
sender.player(),
40+
sender.playerNotNull(),
41+
sender.playerNotNull(),
4242
MessageProcessor.processMessage(plugin, sender, ConsoleUser.INSTANCE, message),
4343
plugin.miniPlaceholdersManager().compileTags(MiniPlaceholderContext.builder().inMessage(false).sender(sender).recipient(sender).build())
4444
)

plugin/src/main/java/at/helpch/chatchat/command/IgnoreCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ public void ignore(ChatUser sender, ChatUser target) {
2828

2929
if (sender.ignoredUsers().contains(target.uuid())) {
3030
sender.sendMessage(plugin.configManager().messages().alreadyIgnored()
31-
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.player().getDisplayName())));
31+
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.playerNotNull().getDisplayName())));
3232
return;
3333
}
3434

3535
sender.ignoreUser(target);
3636
sender.sendMessage(plugin.configManager().messages().ignoredPlayer()
37-
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.player().getDisplayName())));
37+
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.playerNotNull().getDisplayName())));
3838
}
3939
}

plugin/src/main/java/at/helpch/chatchat/command/UnignoreCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@ public UnignoreCommand(final ChatChatPlugin plugin) {
2222
public void unignore(ChatUser sender, ChatUser target) {
2323
if (!sender.ignoredUsers().contains(target.uuid())) {
2424
sender.sendMessage(plugin.configManager().messages().notIgnored()
25-
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.player().getDisplayName())));
25+
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.playerNotNull().getDisplayName())));
2626
return;
2727
}
2828

2929
sender.unignoreUser(target);
3030
sender.sendMessage(plugin.configManager().messages().unignoredPlayer()
31-
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.player().getDisplayName())));
31+
.replaceText(builder -> builder.matchLiteral("<player>").replacement(target.playerNotNull().getDisplayName())));
3232
}
3333
}

plugin/src/main/java/at/helpch/chatchat/command/WhisperCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ public void whisperCommand(
123123
formats.forEach((Audience audience, Format format) ->
124124
audience.sendMessage(FormatUtils.parseFormat(
125125
format,
126-
sender.player(),
127-
recipient.player(),
126+
sender.playerNotNull(),
127+
recipient.playerNotNull(),
128128
pmSendEvent.message()
129129
))
130130
);

plugin/src/main/java/at/helpch/chatchat/hooks/dsrv/DsrvListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void onChat(ChatChatEvent event) {
4646
final var message = github.scarsz.discordsrv.dependencies.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().deserialize(
4747
GsonComponentSerializer.gson().serialize(event.message())
4848
);
49-
DiscordSRV.getPlugin().processChatMessage(event.user().player(), message,
49+
DiscordSRV.getPlugin().processChatMessage(event.user().playerNotNull(), message,
5050
event.channel().name(), event.isCancelled());
5151
}
5252
}

plugin/src/main/java/at/helpch/chatchat/hooks/vanish/EssentialsVanishHook.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public void enable() {
4545

4646
@Override
4747
public boolean canSee(@NotNull final ChatUser user, @NotNull final ChatUser target) {
48-
return user.player().canSee(target.player());
48+
return user.player()
49+
.map(player -> target.player().map(player::canSee).orElse(true))
50+
.orElse(true);
4951
}
5052
}

plugin/src/main/java/at/helpch/chatchat/hooks/vanish/SuperVanishHook.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ public void enable() {
4848

4949
@Override
5050
public boolean canSee(@NotNull final ChatUser user, @NotNull final ChatUser target) {
51-
return VanishAPI.canSee(user.player(), target.player());
51+
return user.player()
52+
.map(player -> target.player().map(targetPlayer -> VanishAPI.canSee(player, targetPlayer))
53+
.orElse(true))
54+
.orElse(true);
5255
}
5356
}

plugin/src/main/java/at/helpch/chatchat/hooks/vanish/VanillaVanishHook.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public void enable() {
4444

4545
@Override
4646
public boolean canSee(@NotNull final ChatUser user, @NotNull final ChatUser target) {
47-
return user.player().canSee(target.player());
47+
return user.player()
48+
.map(player -> target.player().map(player::canSee).orElse(true))
49+
.orElse(true);
4850
}
4951
}

0 commit comments

Comments
 (0)