File tree Expand file tree Collapse file tree
org/mangorage/mangobotcore/api/jda/permission/v1 Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import org .mangorage .bootstrap .api .launch .ILaunchTargetEntrypoint ;
22import org .mangorage .bootstrap .api .transformer .IClassTransformer ;
3- import org .mangorage .mangobotcore .api .plugin .v1 .Plugin ;
4- import org .mangorage .mangobotcore .api .plugin .v1 .IPluginInfoGetter ;
5- import org .mangorage .mangobotcore .api .plugin .MangoBotCore ;
63import org .mangorage .mangobotcore .internal .entrypoint .MangoBotEntrypoint ;
74import org .mangorage .mangobotcore .internal .transformer .ExampleTransformer ;
85
2825 exports org .mangorage .mangobotcore .api .jda .command .v2 ;
2926 exports org .mangorage .mangobotcore .api .jda .event .v1 ;
3027
28+ // JDA Permission API
29+ exports org .mangorage .mangobotcore .api .jda .permission .v1 ;
30+
3131 // Command API
3232 exports org .mangorage .mangobotcore .api .command .v1 ;
3333 exports org .mangorage .mangobotcore .api .command .v1 .argument ;
5757 opens org .mangorage .mangobotcore .internal .entrypoint to org .mangorage .bootstrap ; // Opens it to bootstrap
5858
5959 opens org .mangorage .mangobotcore .internal .plugin to com .google .gson ; // GSON
60- opens org .mangorage .mangobotcore .internal .plugin .dependency to com .google .gson ; // GSON
60+ opens org .mangorage .mangobotcore .internal .plugin .dependency to com .google .gson ;
6161
6262
6363 provides Plugin with MangoBotCore ;
Original file line number Diff line number Diff line change 1+ package org .mangorage .mangobotcore .api .jda .permission .v1 ;
2+
3+ import org .mangorage .mangobotcore .api .util .data .DatabaseHandler ;
4+
5+ import java .util .HashMap ;
6+ import java .util .Map ;
7+
8+ public final class JDAPermissionManager {
9+
10+ public static JDAPermissionManager create (DatabaseHandler <String , JDAPermissionNode > databaseHandler ) {
11+ return new JDAPermissionManager (databaseHandler );
12+ }
13+
14+ private final DatabaseHandler <String , JDAPermissionNode > databaseHandler ;
15+
16+ private final Map <String , JDAPermissionNode > permissionNodes = new HashMap <>();
17+
18+ JDAPermissionManager (DatabaseHandler <String , JDAPermissionNode > databaseHandler ) {
19+ this .databaseHandler = databaseHandler ;
20+ databaseHandler .loadEntitiesFromDatabase ().forEach (node -> permissionNodes .put (node .getId (), node ));
21+ }
22+
23+ public JDAPermissionNode getPermissionNode (String id ) {
24+ return permissionNodes .computeIfAbsent (id , JDAPermissionNode ::create );
25+ }
26+ }
Original file line number Diff line number Diff line change 1- package org .mangorage .mangobotcore .api .jda .command . v2 ;
1+ package org .mangorage .mangobotcore .api .jda .permission . v1 ;
22
3+ import jakarta .persistence .Entity ;
4+ import jakarta .persistence .Id ;
5+ import jakarta .persistence .Table ;
36import net .dv8tion .jda .api .Permission ;
47import net .dv8tion .jda .api .entities .Member ;
58import net .dv8tion .jda .api .entities .Message ;
69import net .dv8tion .jda .api .entities .Role ;
710import org .mangorage .mangobotcore .api .command .v1 .CommandContext ;
811import org .mangorage .mangobotcore .api .command .v1 .PermissionNode ;
12+ import org .mangorage .mangobotcore .api .util .data .IUniqueIdHolder ;
913
1014import java .util .ArrayList ;
1115import java .util .List ;
1216
13- public final class JDAPermissionNode implements PermissionNode <Message > {
17+ @ Entity
18+ @ Table (name = "jda_permission_nodes" )
19+ public final class JDAPermissionNode implements PermissionNode <Message >, IUniqueIdHolder <String > {
1420
1521 record GuildUser (Long guildId , Long userId ) {}
1622 record GuildRole (Long guildId , Long roleId ) {}
@@ -19,6 +25,7 @@ public static JDAPermissionNode create(String id) {
1925 return new JDAPermissionNode (id );
2026 }
2127
28+ @ Id
2229 private final String id ;
2330 private final List <GuildRole > roleIds = new ArrayList <>();
2431 private final List <GuildUser > userIds = new ArrayList <>();
You can’t perform that action at this time.
0 commit comments