44import org .slf4j .Logger ;
55import org .spongepowered .api .Game ;
66import org .spongepowered .api .Sponge ;
7+ import org .spongepowered .api .command .spec .CommandSpec ;
78import org .spongepowered .api .config .DefaultConfig ;
89import org .spongepowered .api .event .Listener ;
910import org .spongepowered .api .event .game .state .GameStartedServerEvent ;
1011import org .spongepowered .api .plugin .Plugin ;
12+ import org .spongepowered .api .service .permission .PermissionDescription ;
13+ import org .spongepowered .api .service .permission .PermissionService ;
14+ import org .spongepowered .api .text .Text ;
15+ import pro .kdray .scottybotwhitelist .Command .ListCommand ;
16+ import pro .kdray .scottybotwhitelist .Command .ReloadCommand ;
1117
1218import java .nio .file .Path ;
1319
@@ -32,11 +38,53 @@ public class Scottybotwhitelist {
3238 @ DefaultConfig (sharedRoot = true )
3339 private Path defaultConfig ;
3440
41+ public static void reload () {
42+ Config .reload ();
43+ Utils .reloadUsers ();
44+ }
45+
3546 @ Listener
3647 public void onServerStart (GameStartedServerEvent event ) {
3748 new Config (this .defaultConfig , this .logger , Sponge .getAssetManager ().getAsset (this , "defaultConfig.conf" ).get ());
3849 Config .reload ();
3950 Utils .reloadUsers ();
4051 game .getEventManager ().registerListeners (this , new EventListener ());
52+
53+ PermissionDescription .Builder builder = game .getServiceManager ().getRegistration (PermissionService .class ).get ()
54+ .getProvider ().newDescriptionBuilder (this );
55+ builder .id ("whitelister.whitelister" )
56+ .description (Text .of ("Needed to use /whitelist" ))
57+ .assign (PermissionDescription .ROLE_STAFF , true )
58+ .assign (PermissionDescription .ROLE_USER , false )
59+ .register ();
60+ builder .id ("whitelister.whitelister.list" )
61+ .description (Text .of ("Needed to use /whitelist list" ))
62+ .assign (PermissionDescription .ROLE_STAFF , true )
63+ .assign (PermissionDescription .ROLE_USER , false )
64+ .register ();
65+ builder .id ("whitelister.whitelister.reload" )
66+ .description (Text .of ("Needed to use /whitelist reload" ))
67+ .assign (PermissionDescription .ROLE_STAFF , true )
68+ .assign (PermissionDescription .ROLE_USER , false )
69+ .register ();
70+
71+ CommandSpec reloadSpec = CommandSpec .builder ()
72+ .description (Text .of ("Reloads plugin" ))
73+ .permission ("whitelister.whitelister.reload" )
74+ .executor (new ReloadCommand ())
75+ .build ();
76+ CommandSpec listSpec = CommandSpec .builder ()
77+ .description (Text .of ("Lists all players" ))
78+ .permission ("whitelister.whitelister.list" )
79+ .executor (new ListCommand ())
80+ .build ();
81+ game .getCommandManager ().register (this , CommandSpec .builder ()
82+ .description (Text .of ("Main command for ScottybotWhitelist" ))
83+ .permission ("whitelister.whitelister" )
84+ .child (reloadSpec , "reload" )
85+ .child (listSpec , "list" )
86+ .executor (new MainCommand ())
87+ .build (),
88+ "whitelister" );
4189 }
4290}
0 commit comments