Skip to content

Commit bc2fc1e

Browse files
authored
Merge pull request #348 from BentoBoxWorld/develop
Release 2.19.0
2 parents 1eea7e5 + fc83f9f commit bc2fc1e

File tree

14 files changed

+1864
-1408
lines changed

14 files changed

+1864
-1408
lines changed

pom.xml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
<powermock.version>2.0.9</powermock.version>
5656
<!-- More visible way how to change dependency versions -->
5757
<spigot.version>1.21.3-R0.1-SNAPSHOT</spigot.version>
58-
<bentobox.version>3.2.4-SNAPSHOT</bentobox.version>
58+
<bentobox.version>3.2.5-SNAPSHOT</bentobox.version>
5959
<!-- Warps addon version -->
6060
<warps.version>1.12.0</warps.version>
6161
<!-- Visit addon version -->
@@ -67,7 +67,7 @@
6767
<!-- Do not change unless you want different name for local builds. -->
6868
<build.number>-LOCAL</build.number>
6969
<!-- This allows to change between versions. -->
70-
<build.version>2.18.0</build.version>
70+
<build.version>2.19.0</build.version>
7171
<sonar.projectKey>BentoBoxWorld_Level</sonar.projectKey>
7272
<sonar.organization>bentobox-world</sonar.organization>
7373
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
@@ -158,6 +158,11 @@
158158
<id>songoda-plugins</id>
159159
<url>https://repo.songoda.com/repository/minecraft-plugins/</url>
160160
</repository>
161+
<!-- ItemsAdder API repo-->
162+
<repository>
163+
<id>matteodev</id>
164+
<url>https://maven.devs.beer/</url>
165+
</repository>
161166
</repositories>
162167

163168
<dependencies>
@@ -245,6 +250,13 @@
245250
<version>1.0.0-20240329.173606-35</version>
246251
<scope>provided</scope>
247252
</dependency>
253+
<!-- ItemsAdder -->
254+
<dependency>
255+
<groupId>dev.lone</groupId>
256+
<artifactId>api-itemsadder</artifactId>
257+
<version>4.0.2-beta-release-11</version>
258+
<scope>provided</scope>
259+
</dependency>
248260
</dependencies>
249261

250262
<build>

src/main/java/world/bentobox/level/Level.java

Lines changed: 96 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)