@@ -98,79 +98,98 @@ private boolean loadSettings() {
9898
9999 @ Override
100100 public void onEnable () {
101- loadBlockSettings ();
102- // Start pipeline
103- pipeliner = new Pipeliner (this );
104- // Start Manager
105- manager = new LevelsManager (this );
106- // Register listeners
107- this .registerListener (new IslandActivitiesListeners (this ));
108- this .registerListener (new JoinLeaveListener (this ));
109- this .registerListener (new MigrationListener (this ));
110-
111- // Register commands for GameModes
112- registeredGameModes .clear ();
113- getPlugin ().getAddonsManager ().getGameModeAddons ().stream ()
114- .filter (gm -> !settings .getGameModes ().contains (gm .getDescription ().getName ())).forEach (gm -> {
115- log ("Level hooking into " + gm .getDescription ().getName ());
116- registerCommands (gm );
117- new PlaceholderManager (this ).registerPlaceholders (gm );
118- registeredGameModes .add (gm );
119- });
120- // Register request handlers
121- registerRequestHandler (new LevelRequestHandler (this ));
122- registerRequestHandler (new TopTenRequestHandler (this ));
123-
124- // Check if WildStackers is enabled on the server
125- // I only added support for counting blocks into the island level
126- // Someone else can PR if they want spawners added to the Leveling system :)
127- if (!settings .getDisabledPluginHooks ().contains ("WildStacker" )) {
128- stackersEnabled = Bukkit .getPluginManager ().isPluginEnabled ("WildStacker" );
129- if (stackersEnabled ) {
130- log ("Hooked into WildStackers." );
131- }
132- }
133-
134- // Check if AdvancedChests is enabled on the server
135- if (!settings .getDisabledPluginHooks ().contains ("AdvancedChests" )) {
136- Plugin advChest = Bukkit .getPluginManager ().getPlugin ("AdvancedChests" );
137- advChestEnabled = advChest != null ;
138- if (advChestEnabled ) {
139- // Check version
140- if (compareVersions (advChest .getDescription ().getVersion (), "23.0" ) > 0 ) {
141- log ("Hooked into AdvancedChests." );
142- } else {
143- logError ("Could not hook into AdvancedChests " + advChest .getDescription ().getVersion ()
144- + " - requires version 23.0 or later" );
145- advChestEnabled = false ;
146- }
147- }
148- }
149-
150- // Check if RoseStackers is enabled
151- if (!settings .getDisabledPluginHooks ().contains ("RoseStacker" )) {
152- roseStackersEnabled = Bukkit .getPluginManager ().isPluginEnabled ("RoseStacker" );
153- if (roseStackersEnabled ) {
154- log ("Hooked into RoseStackers." );
155- }
156- }
157-
158- // Check if UltimateStacker is enabled
159- if (!settings .getDisabledPluginHooks ().contains ("UltimateStacker" )) {
160- ultimateStackerEnabled = Bukkit .getPluginManager ().isPluginEnabled ("UltimateStacker" );
161- if (ultimateStackerEnabled ) {
162- log ("Hooked into UltimateStacker." );
163- }
164- }
165- }
166-
167- @ Override
168- public void allLoaded () {
169- super .allLoaded ();
170-
171- if (this .isEnabled ()) {
172- this .hookExtensions ();
173- }
101+ // Everything waits until allLoaded
102+ }
103+
104+ @ Override
105+ public void allLoaded () {
106+ super .allLoaded ();
107+ loadBlockSettings ();
108+ initializePipelineAndManager ();
109+ registerAllListeners ();
110+ registerGameModeCommands ();
111+ registerRequestHandlers ();
112+ hookPlugin ("WildStacker" , this ::hookWildStackers );
113+ hookAdvancedChests ();
114+ hookPlugin ("RoseStacker" , this ::hookRoseStackers );
115+ hookPlugin ("UltimateStacker" , this ::hookUltimateStacker );
116+
117+ if (this .isEnabled ()) {
118+ hookExtensions ();
119+ }
120+ }
121+
122+ private void initializePipelineAndManager () {
123+ pipeliner = new Pipeliner (this );
124+ manager = new LevelsManager (this );
125+ }
126+
127+ private void registerAllListeners () {
128+ registerListener (new IslandActivitiesListeners (this ));
129+ registerListener (new JoinLeaveListener (this ));
130+ registerListener (new MigrationListener (this ));
131+ }
132+
133+ private void registerGameModeCommands () {
134+ registeredGameModes .clear ();
135+ getPlugin ().getAddonsManager ().getGameModeAddons ().stream ()
136+ .filter (gm -> !settings .getGameModes ().contains (gm .getDescription ().getName ())).forEach (gm -> {
137+ log ("Level hooking into " + gm .getDescription ().getName ());
138+ registerCommands (gm );
139+ new PlaceholderManager (this ).registerPlaceholders (gm );
140+ registeredGameModes .add (gm );
141+ });
142+ }
143+
144+ private void registerRequestHandlers () {
145+ registerRequestHandler (new LevelRequestHandler (this ));
146+ registerRequestHandler (new TopTenRequestHandler (this ));
147+ }
148+
149+ /**
150+ * A helper that only executes the provided hookAction if the plugin is not disabled.
151+ */
152+ private void hookPlugin (String pluginName , Runnable hookAction ) {
153+ if (!settings .getDisabledPluginHooks ().contains (pluginName )) {
154+ hookAction .run ();
155+ }
156+ }
157+
158+ private void hookWildStackers () {
159+ stackersEnabled = Bukkit .getPluginManager ().isPluginEnabled ("WildStacker" );
160+ if (stackersEnabled ) {
161+ log ("Hooked into WildStackers." );
162+ }
163+ }
164+
165+ private void hookAdvancedChests () {
166+ if (!settings .getDisabledPluginHooks ().contains ("AdvancedChests" )) {
167+ Plugin advChest = Bukkit .getPluginManager ().getPlugin ("AdvancedChests" );
168+ advChestEnabled = advChest != null ;
169+ if (advChestEnabled ) {
170+ if (compareVersions (advChest .getDescription ().getVersion (), "23.0" ) > 0 ) {
171+ log ("Hooked into AdvancedChests." );
172+ } else {
173+ logError ("Could not hook into AdvancedChests " + advChest .getDescription ().getVersion ()
174+ + " - requires version 23.0 or later" );
175+ advChestEnabled = false ;
176+ }
177+ }
178+ }
179+ }
180+
181+ private void hookRoseStackers () {
182+ roseStackersEnabled = Bukkit .getPluginManager ().isPluginEnabled ("RoseStacker" );
183+ if (roseStackersEnabled ) {
184+ log ("Hooked into RoseStackers." );
185+ }
186+ }
187+
188+ private void hookUltimateStacker () {
189+ ultimateStackerEnabled = Bukkit .getPluginManager ().isPluginEnabled ("UltimateStacker" );
190+ if (ultimateStackerEnabled ) {
191+ log ("Hooked into UltimateStacker." );
192+ }
174193 }
175194
176195 /**
@@ -448,4 +467,8 @@ public Warp getWarpHook() {
448467 return this .warpHook ;
449468 }
450469
470+ public boolean isItemsAdder () {
471+ return getPlugin ().getHooks ().getHook ("ItemsAdder" ).isPresent ();
472+ }
473+
451474}
0 commit comments