9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-26 18:39:17 +00:00

Additional slime world event listener

This commit is contained in:
XiaoMoMi
2024-11-04 04:03:42 +08:00
parent 9b14f07df9
commit e0df70529d
7 changed files with 41 additions and 14 deletions

View File

@@ -45,7 +45,7 @@ public abstract class BukkitItemFactory extends ItemFactory<CustomCropsPlugin, R
return new UniversalItemFactory(plugin);
}
case "1.20.5", "1.20.6",
"1.21", "1.21.1", "1.21.2" -> {
"1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4" -> {
return new ComponentItemFactory(plugin);
}
default -> throw new IllegalStateException("Unsupported server version: " + plugin.getServerVersion());

View File

@@ -56,12 +56,16 @@ public class BukkitWorldManager implements WorldManager, Listener {
this.plugin = plugin;
try {
Class.forName("com.infernalsuite.aswm.api.SlimePlugin");
adaptors.add(new SlimeWorldAdaptorR1(1));
SlimeWorldAdaptorR1 adaptor = new SlimeWorldAdaptorR1(1);
adaptors.add(adaptor);
Bukkit.getPluginManager().registerEvents(adaptor, plugin.getBootstrap());
plugin.getPluginLogger().info("SlimeWorldManager hooked!");
} catch (ClassNotFoundException ignored) {
}
if (Bukkit.getPluginManager().isPluginEnabled("SlimeWorldPlugin")) {
adaptors.add(new SlimeWorldAdaptorR1(2));
SlimeWorldAdaptorR1 adaptor = new SlimeWorldAdaptorR1(2);
adaptors.add(adaptor);
Bukkit.getPluginManager().registerEvents(adaptor, plugin.getBootstrap());
plugin.getPluginLogger().info("AdvancedSlimePaper hooked!");
}
this.adaptors.add(new BukkitWorldAdaptor());
@@ -140,6 +144,19 @@ public class BukkitWorldManager implements WorldManager, Listener {
this.worldSettings.clear();
}
@Override
public void disable() {
this.unload();
for (World world : Bukkit.getWorlds()) {
unloadWorld(world, true);
}
for (WorldAdaptor<?> adaptor : this.adaptors) {
if (adaptor instanceof Listener listener) {
HandlerList.unregisterAll(listener);
}
}
}
private void loadConfig() {
YamlDocument config = BukkitConfigManager.getMainConfig();
@@ -176,14 +193,6 @@ public class BukkitWorldManager implements WorldManager, Listener {
}
}
@Override
public void disable() {
this.unload();
for (World world : Bukkit.getWorlds()) {
unloadWorld(world, true);
}
}
@Override
public CustomCropsWorld<?> loadWorld(World world) {
Optional<CustomCropsWorld<?>> optionalWorld = getWorld(world);
@@ -282,7 +291,9 @@ public class BukkitWorldManager implements WorldManager, Listener {
});
}
@Override
public boolean isMechanicEnabled(World world) {
if (world == null) return false;
if (matchRule == MatchRule.WHITELIST) {
return worldList.contains(world.getName());
} else if (matchRule == MatchRule.BLACKLIST) {