Skip to content

Commit

Permalink
Fix NPE on webhooks messages with show-webhook-messages enabled (Esse…
Browse files Browse the repository at this point in the history
…ntialsX#4452)

Co-authored-by: MD <1917406+mdcfe@users.noreply.github.com>

Fixes EssentialsX#4451.
  • Loading branch information
JRoy authored Aug 9, 2021
1 parent 871e718 commit 36432c6
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) {

final User user = event.getAuthor();
final Member member = event.getMember();
final String effectiveName = member == null ? event.getAuthor().getName() : member.getEffectiveName();
final Message message = event.getMessage();

assert member != null; // Member will never be null

if (plugin.getSettings().getDiscordFilter() != null && plugin.getSettings().getDiscordFilter().matcher(message.getContentDisplay()).find()) {
if (plugin.isDebug()) {
logger.log(Level.INFO, "Skipping message " + message.getId() + " with content, \"" + message.getContentDisplay() + "\" as it matched the filter!");
Expand All @@ -73,7 +72,7 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) {
.trim(), plugin.getSettings().getChatDiscordMaxLength());

// Apply or strip color formatting
final String finalMessage = DiscordUtil.hasRoles(member, plugin.getPlugin().getSettings().getPermittedFormattingRoles()) ?
final String finalMessage = member == null || DiscordUtil.hasRoles(member, plugin.getPlugin().getSettings().getPermittedFormattingRoles()) ?
FormatUtil.replaceFormat(strippedMessage) : FormatUtil.stripFormat(strippedMessage);

// Don't send blank messages
Expand All @@ -86,7 +85,7 @@ public void onGuildMessageReceived(@NotNull GuildMessageReceivedEvent event) {

final String formattedMessage = EmojiParser.parseToAliases(MessageUtil.formatMessage(plugin.getPlugin().getSettings().getDiscordToMcFormat(),
event.getChannel().getName(), user.getName(), user.getDiscriminator(), user.getAsTag(),
member.getEffectiveName(), DiscordUtil.getRoleColorFormat(member), finalMessage, DiscordUtil.getRoleFormat(member)), EmojiParser.FitzpatrickAction.REMOVE);
effectiveName, DiscordUtil.getRoleColorFormat(member), finalMessage, DiscordUtil.getRoleFormat(member)), EmojiParser.FitzpatrickAction.REMOVE);

for (final String group : keys) {
if (plugin.getSettings().getRelayToConsoleList().contains(group)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ public static CompletableFuture<Webhook> createWebhook(TextChannel channel, Stri
* @return The highest role or blank string.
*/
public static String getRoleFormat(Member member) {
final List<Role> roles = member.getRoles();
final List<Role> roles = member == null ? null : member.getRoles();

if (roles.isEmpty()) {
if (roles == null || roles.isEmpty()) {
return "";
}

Expand All @@ -154,7 +154,7 @@ public static String getRoleFormat(Member member) {
* @return The bukkit color code or blank string.
*/
public static String getRoleColorFormat(Member member) {
if (member.getColorRaw() == Role.DEFAULT_COLOR_RAW) {
if (member == null || member.getColorRaw() == Role.DEFAULT_COLOR_RAW) {
return "";
}
final int rawColor = 0xff000000 | member.getColorRaw();
Expand Down

0 comments on commit 36432c6

Please # to comment.