11package io .github .apickledwalrus .skriptgui ;
22
3- import java .io .IOException ;
4-
3+ import ch .njol .skript .registrations .Classes ;
54import ch .njol .skript .util .Version ;
5+ import io .github .apickledwalrus .skriptgui .gui .GUI ;
66import io .github .apickledwalrus .skriptgui .gui .events .GUIEvents ;
77import io .github .apickledwalrus .skriptgui .gui .events .RecipeEvent ;
8+ import io .github .apickledwalrus .skriptgui .types .GUIClassInfo ;
9+ import io .github .apickledwalrus .skriptgui .types .SlotTypeClassInfo ;
10+ import org .bukkit .inventory .Inventory ;
811import org .bukkit .plugin .Plugin ;
912import org .bukkit .plugin .java .JavaPlugin ;
1013
1114import ch .njol .skript .Skript ;
12- import ch .njol .skript .SkriptAddon ;
1315import io .github .apickledwalrus .skriptgui .gui .GUIManager ;
16+ import org .skriptlang .skript .addon .AddonModule ;
17+ import org .skriptlang .skript .addon .SkriptAddon ;
18+ import org .skriptlang .skript .lang .converter .Converters ;
19+ import org .skriptlang .skript .util .ClassLoader ;
1420
15- public class SkriptGUI extends JavaPlugin {
21+ public class SkriptGUI extends JavaPlugin implements AddonModule {
1622
1723 private static SkriptGUI instance ;
1824 private static GUIManager manager ;
1925
26+ public static SkriptGUI getInstance () {
27+ if (instance == null ) {
28+ throw new IllegalStateException ("skript-gui has not yet enabled!" );
29+ }
30+ return instance ;
31+ }
32+
33+ public static GUIManager getGUIManager () {
34+ if (manager == null ) {
35+ throw new IllegalStateException ("skript-gui has not yet enabled!" );
36+ }
37+ return manager ;
38+ }
39+
2040 @ Override
2141 public void onEnable () {
2242 Plugin skript = getServer ().getPluginManager ().getPlugin ("Skript" );
23- Version minimumSupportedVersion = new Version (2 , 10 , 2 );
43+ Version minimumSupportedVersion = new Version (2 , 15 , 2 );
2444 if (skript == null ) {
2545 // Skript doesn't exist within the server plugins folder
2646 getLogger ().severe ("Could not find Skript! Make sure you have it installed. Disabling..." );
@@ -42,18 +62,9 @@ public void onEnable() {
4262
4363 instance = this ;
4464
45- SkriptAddon addon = Skript .registerAddon (this );
46- try {
47- addon .loadClasses ("io.github.apickledwalrus.skriptgui.elements" );
48- addon .setLanguageFileDirectory ("lang" );
49- new SkriptClasses (); // Register ClassInfos
50- new SkriptConverters (); // Register Converters
51- } catch (IOException e ) {
52- getLogger ().severe ("An error occurred while trying to load the addon's elements. The addon will be disabled." );
53- getLogger ().severe ("Printing StackTrace:" );
54- e .printStackTrace ();
55- getServer ().getPluginManager ().disablePlugin (this );
56- }
65+ SkriptAddon addon = Skript .instance ().registerAddon (SkriptGUI .class , "skript-gui" );
66+ addon .localizer ().setSourceDirectories ("lang" , null );
67+ addon .loadModules (this );
5768
5869 // Register manager and events
5970 manager = new GUIManager ();
@@ -65,12 +76,21 @@ public void onEnable() {
6576
6677 }
6778
68- public static SkriptGUI getInstance () {
69- return instance ;
79+ @ Override
80+ public void init (SkriptAddon addon ) {
81+ Classes .registerClass (new GUIClassInfo ());
82+ Converters .registerConverter (GUI .class , Inventory .class , GUI ::getInventory );
83+ Classes .registerClass (new SlotTypeClassInfo ());
7084 }
7185
72- public static GUIManager getGUIManager () {
73- return manager ;
86+ @ Override
87+ public void load (SkriptAddon addon ) {
88+ ClassLoader .loadClasses (SkriptGUI .class , getFile (), "io.github.apickledwalrus.skriptgui.elements" );
89+ }
90+
91+ @ Override
92+ public String name () {
93+ return "skript-gui" ;
7494 }
7595
7696}
0 commit comments