[AB-302] refactoring assignable roles to use buttons instead of reactions

moved button related services to component service instead of message service
adding component type to component payload
renamed async role service methods
ignoring bot reactions in starboard
fixing rank not showing correct experience to next level for other members
This commit is contained in:
Sheldan
2021-07-09 02:00:33 +02:00
parent c08134a150
commit 7e7591a4b3
117 changed files with 1886 additions and 2470 deletions

View File

@@ -32,6 +32,9 @@ public class StarAddedListener extends StarboardListener implements AsyncReactio
if(model.getUserReacting().getUserId().equals(model.getMessage().getAuthor().getAuthorId())) {
return DefaultListenerResult.IGNORED;
}
if(model.getMemberReacting().getUser().isBot()) {
return DefaultListenerResult.IGNORED;
}
Long serverId = model.getServerId();
AEmote aEmote = emoteService.getEmoteOrDefaultEmote(StarboardFeatureConfig.STAR_EMOTE, serverId);
if(emoteService.isReactionEmoteAEmote(model.getReaction().getReactionEmote(), aEmote)) {

View File

@@ -15,7 +15,10 @@ import dev.sheldan.abstracto.starboard.model.database.StarboardPost;
import dev.sheldan.abstracto.starboard.service.StarboardService;
import dev.sheldan.abstracto.starboard.service.management.StarboardPostManagementService;
import dev.sheldan.abstracto.starboard.service.management.StarboardPostReactorManagementService;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageReaction;
import net.dv8tion.jda.api.entities.User;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
@@ -95,6 +98,12 @@ public class StarAddedListenerTest {
@Mock
private AEmote starEmote;
@Mock
private User user;
@Mock
private Member member;
@Mock
private ReactionAddedModel model;
@@ -103,6 +112,13 @@ public class StarAddedListenerTest {
private static final Long AUTHOR_ID = 4L;
private static final Long USER_ACTING_ID = 7L;
@Before
public void setup() {
when(member.getUser()).thenReturn(user);
when(model.getMemberReacting()).thenReturn(member);
when(user.isBot()).thenReturn(false);
}
@Test
public void testAuthorAddingStar() {
when(cachedAuthor.getAuthorId()).thenReturn(AUTHOR_ID);