30
30
import github .scarsz .discordsrv .api .events .DiscordReadyEvent ;
31
31
import github .scarsz .discordsrv .dependencies .jda .api .entities .Member ;
32
32
import github .scarsz .discordsrv .dependencies .jda .api .entities .Role ;
33
+ import github .scarsz .discordsrv .dependencies .jda .api .requests .RestAction ;
33
34
import org .bukkit .Bukkit ;
34
35
import tk .bluetree242 .discordsrvutils .DiscordSRVUtils ;
35
36
import tk .bluetree242 .discordsrvutils .exceptions .StartupException ;
36
37
import tk .bluetree242 .discordsrvutils .leveling .LevelingManager ;
37
38
39
+ import java .util .ArrayList ;
40
+ import java .util .Collection ;
41
+ import java .util .List ;
42
+
38
43
public class DiscordSRVListener {
39
44
private final DiscordSRVUtils core = DiscordSRVUtils .get ();
40
45
@@ -59,14 +64,16 @@ public void onLink(AccountLinkedEvent e) {
59
64
if (id == null ) return ;
60
65
Member member = core .getGuild ().retrieveMemberById (id ).complete ();
61
66
if (member == null ) return ;
67
+ Collection actions = new ArrayList <>();
62
68
for (Role role : manager .getRolesToRemove (stats .getLevel ())) {
63
69
if (member .getRoles ().contains (role ))
64
- core .getGuild ().removeRoleFromMember (member , role ).queue ( );
70
+ actions . add ( core .getGuild ().removeRoleFromMember (member , role ).reason ( "User should not have this role" ) );
65
71
}
66
72
Role toAdd = manager .getRoleForLevel (level );
67
73
if (toAdd != null && !member .getRoles ().contains (toAdd )) {
68
- core .getGuild ().addRoleToMember (member , toAdd ).queue ( );
74
+ actions . add ( core .getGuild ().addRoleToMember (member , toAdd ).reason ( "Account Linked" ) );
69
75
}
76
+ RestAction .allOf (actions ).queue ();
70
77
});
71
78
72
79
}
@@ -81,7 +88,7 @@ public void onUnlink(AccountUnlinkedEvent e) {
81
88
if (member != null ) {
82
89
for (Role role : manager .getRolesToRemove (null )) {
83
90
if (member .getRoles ().contains (role ))
84
- core .getGuild ().removeRoleFromMember (member , role ).queue ();
91
+ core .getGuild ().removeRoleFromMember (member , role ).reason ( "Account Unlinked" ). queue ();
85
92
}
86
93
}
87
94
});
0 commit comments