@@ -98,79 +98,98 @@ private boolean loadSettings() {
98
98
99
99
@ Override
100
100
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
+ }
174
193
}
175
194
176
195
/**
@@ -448,4 +467,8 @@ public Warp getWarpHook() {
448
467
return this .warpHook ;
449
468
}
450
469
470
+ public boolean isItemsAdder () {
471
+ return getPlugin ().getHooks ().getHook ("ItemsAdder" ).isPresent ();
472
+ }
473
+
451
474
}
0 commit comments