11package  me .dkim19375 .dkim19375core ;
22
33import  org .bukkit .Bukkit ;
4+ import  org .bukkit .command .CommandExecutor ;
5+ import  org .bukkit .command .PluginCommand ;
6+ import  org .bukkit .command .TabCompleter ;
7+ import  org .bukkit .event .Listener ;
48import  org .bukkit .plugin .java .JavaPlugin ;
9+ import  org .jetbrains .annotations .NotNull ;
10+ import  org .jetbrains .annotations .Nullable ;
511
12+ import  java .util .HashSet ;
13+ import  java .util .Set ;
614import  java .util .logging .Level ;
715import  java .util .logging .Logger ;
816
917public  abstract  class  CoreJavaPlugin  extends  JavaPlugin  {
1018    private  static  final  Logger  logger  = Bukkit .getLogger ();
19+     private  final  Set <ConfigFile > files  = new  HashSet <>();
1120
12-     public  static  void  log (Level  level , String  msg ) {
13-         logger .log (level , msg );
14-     }
21+     public  static  void  log (Level  level , String  msg ) { logger .log (level , msg ); }
22+ 
23+     @ SuppressWarnings ("unused" )
24+     public  static  void  log (String  msg ) { log (Level .INFO , msg ); }
1525
1626    @ Override 
1727    public  abstract  void  onEnable ();
@@ -23,5 +33,57 @@ public static void log(Level level, String msg) {
2333    public  void  reloadConfig () {
2434        saveDefaultConfig ();
2535        super .reloadConfig ();
36+         files .forEach (this ::reloadConfig );
37+     }
38+ 
39+     public  void  reloadConfig (ConfigFile  config ) {
40+         config .saveDefaultConfig ();
41+         config .reload ();
42+     }
43+ 
44+     public  void  registerCommand (@ NotNull  String  command , @ NotNull  CommandExecutor  executor , @ Nullable  TabCompleter  tabCompleter ) {
45+         final  PluginCommand  cmd  = getCommand (command );
46+         if  (cmd  == null ) {
47+             logger .log (Level .SEVERE , "Could not register command: "  + command  + "!" );
48+             getServer ().getPluginManager ().disablePlugin (this );
49+             throw  new  NullPointerException ("["  + getDescription ().getName () + "] Could not register command: "  + command  + "!" );
50+         }
51+         cmd .setExecutor (executor );
52+         if  (tabCompleter  != null ) {
53+             cmd .setTabCompleter (tabCompleter );
54+         }
55+     }
56+ 
57+     @ SuppressWarnings ("unused" )
58+     public  void  registerCommand (@ NotNull  String  command , @ NotNull  CommandExecutor  executor ) {
59+         registerCommand (command , executor , null );
60+     }
61+ 
62+     @ SuppressWarnings ("unused" )
63+     public  void  registerListener (Listener  listener ) {
64+         getServer ().getPluginManager ().registerEvents (listener , this );
65+     }
66+ 
67+     @ SuppressWarnings ("unused" )
68+     public  void  registerConfig (ConfigFile  config ) {
69+         unregisterConfig (config );
70+         files .add (config );
71+         reloadConfig (config );
72+     }
73+ 
74+     public  void  unregisterConfig (ConfigFile  config ) {
75+         unregisterConfig (config .getName ());
76+     }
77+ 
78+     public  void  unregisterConfig (String  config ) {
79+         new  HashSet <>(files ).forEach (file  -> {
80+             if  (file .getName ().equals (config )) {
81+                 files .remove (file );
82+             }
83+         });
84+     }
85+ 
86+     public  Set <ConfigFile > getRegisteredFiles () {
87+         return  files ;
2688    }
2789}
0 commit comments