From 6c79168f847957393c53e8b33512e243f428674d Mon Sep 17 00:00:00 2001 From: Merlijn Verstraete <32853531+ToxicMushroom@users.noreply.github.com> Date: Mon, 2 Dec 2019 19:19:24 +0100 Subject: [PATCH 1/2] Fixed nullpointer exceptions for when doing owner checks --- .../java/net/dv8tion/jda/internal/utils/PermissionUtil.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java b/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java index dea3032f27..372b7ce331 100644 --- a/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java +++ b/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java @@ -48,9 +48,9 @@ public static boolean canInteract(Member issuer, Member target) Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided members must both be Member objects of the same Guild!"); - if(guild.getOwner().equals(issuer)) + if(issuer.equals(guild.getOwner())) return true; - if(guild.getOwner().equals(target)) + if(target.equals(guild.getOwner())) return false; List issuerRoles = issuer.getRoles(); List targetRoles = target.getRoles(); @@ -80,7 +80,7 @@ public static boolean canInteract(Member issuer, Role target) Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided Member issuer and Role target must be from the same Guild!"); - if(guild.getOwner().equals(issuer)) + if(issuer.equals(guild.getOwner())) return true; List issuerRoles = issuer.getRoles(); return !issuerRoles.isEmpty() && canInteract(issuerRoles.get(0), target); From 6c063fafd88bd47353cc1202442517c48342d104 Mon Sep 17 00:00:00 2001 From: Merlijn Verstraete <32853531+ToxicMushroom@users.noreply.github.com> Date: Mon, 2 Dec 2019 19:35:42 +0100 Subject: [PATCH 2/2] Changed to match requested edits --- .../net/dv8tion/jda/internal/utils/PermissionUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java b/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java index 372b7ce331..105ecc7c82 100644 --- a/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java +++ b/src/main/java/net/dv8tion/jda/internal/utils/PermissionUtil.java @@ -48,9 +48,9 @@ public static boolean canInteract(Member issuer, Member target) Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided members must both be Member objects of the same Guild!"); - if(issuer.equals(guild.getOwner())) + if(issuer.isOwner()) return true; - if(target.equals(guild.getOwner())) + if(target.isOwner()) return false; List issuerRoles = issuer.getRoles(); List targetRoles = target.getRoles(); @@ -80,7 +80,7 @@ public static boolean canInteract(Member issuer, Role target) Guild guild = issuer.getGuild(); if (!guild.equals(target.getGuild())) throw new IllegalArgumentException("Provided Member issuer and Role target must be from the same Guild!"); - if(issuer.equals(guild.getOwner())) + if(issuer.isOwner()) return true; List issuerRoles = issuer.getRoles(); return !issuerRoles.isEmpty() && canInteract(issuerRoles.get(0), target); @@ -203,7 +203,7 @@ public static boolean canInteract(User issuer, Emote emote, MessageChannel chann TextChannel text = (TextChannel) channel; member = text.getGuild().getMemberById(issuer.getIdLong()); return emote.getGuild().equals(text.getGuild()) // within the same guild - || (external && member.hasPermission(text, Permission.MESSAGE_EXT_EMOJI)); // in different guild + || (external && member != null && member.hasPermission(text, Permission.MESSAGE_EXT_EMOJI)); // in different guild default: return external; // In Group or Private it only needs to be external }