mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-25 01:49:18 +00:00
WorldEdit support
This commit is contained in:
@@ -33,11 +33,14 @@ import net.momirealms.customcrops.api.misc.HologramManager;
|
||||
import net.momirealms.customcrops.api.misc.cooldown.CoolDownManager;
|
||||
import net.momirealms.customcrops.api.misc.placeholder.BukkitPlaceholderManager;
|
||||
import net.momirealms.customcrops.api.util.EventUtils;
|
||||
import net.momirealms.customcrops.api.util.PluginUtils;
|
||||
import net.momirealms.customcrops.bukkit.action.BlockActionManager;
|
||||
import net.momirealms.customcrops.bukkit.action.PlayerActionManager;
|
||||
import net.momirealms.customcrops.bukkit.command.BukkitCommandManager;
|
||||
import net.momirealms.customcrops.bukkit.config.BukkitConfigManager;
|
||||
import net.momirealms.customcrops.bukkit.integration.BukkitIntegrationManager;
|
||||
import net.momirealms.customcrops.bukkit.integration.worldedit.CustomCropsDelegateExtent;
|
||||
import net.momirealms.customcrops.bukkit.integration.worldedit.WorldEditHook;
|
||||
import net.momirealms.customcrops.bukkit.item.BukkitItemManager;
|
||||
import net.momirealms.customcrops.bukkit.requirement.BlockRequirementManager;
|
||||
import net.momirealms.customcrops.bukkit.requirement.PlayerRequirementManager;
|
||||
@@ -191,21 +194,18 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin {
|
||||
});
|
||||
}
|
||||
|
||||
Runnable delayedInitTask = () -> {
|
||||
((SimpleRegistryAccess) registryAccess).freeze();
|
||||
logger.info("Registry access has been frozen");
|
||||
((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBoostrap()).silentLogs(true).ignoreOP(true).build());
|
||||
EventUtils.fireAndForget(new CustomCropsReloadEvent(this));
|
||||
};
|
||||
|
||||
// delayed init task
|
||||
if (VersionHelper.isFolia()) {
|
||||
Bukkit.getGlobalRegionScheduler().run(getBoostrap(), (scheduledTask) -> {
|
||||
((SimpleRegistryAccess) registryAccess).freeze();
|
||||
logger.info("Registry access has been frozen");
|
||||
((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBoostrap()).silentLogs(true).ignoreOP(true).build());
|
||||
EventUtils.fireAndForget(new CustomCropsReloadEvent(this));
|
||||
});
|
||||
Bukkit.getGlobalRegionScheduler().run(getBoostrap(), (scheduledTask) -> delayedInitTask.run());
|
||||
} else {
|
||||
Bukkit.getScheduler().runTask(getBoostrap(), () -> {
|
||||
((SimpleRegistryAccess) registryAccess).freeze();
|
||||
logger.info("Registry access has been frozen");
|
||||
((BukkitItemManager) itemManager).setAntiGriefLib(AntiGriefLib.builder((JavaPlugin) getBoostrap()).silentLogs(false).ignoreOP(true).build());
|
||||
EventUtils.fireAndForget(new CustomCropsReloadEvent(this));
|
||||
});
|
||||
Bukkit.getScheduler().runTask(getBoostrap(), delayedInitTask);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -236,6 +236,11 @@ public class BukkitCustomCropsPluginImpl extends BukkitCustomCropsPlugin {
|
||||
|
||||
this.worldManager.load();
|
||||
|
||||
if (ConfigManager.worldeditSupport() && PluginUtils.isEnabled("WorldEdit")) {
|
||||
WorldEditHook.register();
|
||||
} else {
|
||||
WorldEditHook.unregister();
|
||||
}
|
||||
EventUtils.fireAndForget(new CustomCropsReloadEvent(this));
|
||||
}
|
||||
|
||||
|
||||
@@ -140,6 +140,8 @@ public class BukkitConfigManager extends ConfigManager {
|
||||
preventTrampling = config.getBoolean("mechanics.vanilla-farmland.prevent-trampling", false);
|
||||
disableMoistureMechanic = config.getBoolean("mechanics.vanilla-farmland.disable-moisture-mechanic", false);
|
||||
|
||||
worldeditSupport = config.getBoolean("other-settings.worldedit-support", false);
|
||||
|
||||
offsets.clear();
|
||||
Section section = config.getSection("mechanics.hologram-offset-correction");
|
||||
if (section != null) {
|
||||
|
||||
@@ -57,6 +57,7 @@ public class BukkitIntegrationManager implements IntegrationManager {
|
||||
@Override
|
||||
public void disable() {
|
||||
this.levelerProviders.clear();
|
||||
this.entityProviders.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -126,6 +127,24 @@ public class BukkitIntegrationManager implements IntegrationManager {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean doesPluginExists(String hooked) {
|
||||
return Bukkit.getPluginManager().getPlugin(hooked) != null;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private boolean doesPluginExists(String hooked, String... versionPrefix) {
|
||||
Plugin p = Bukkit.getPluginManager().getPlugin(hooked);
|
||||
if (p != null) {
|
||||
String ver = p.getDescription().getVersion();
|
||||
for (String prefix : versionPrefix) {
|
||||
if (ver.startsWith(prefix)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isHooked(String hooked) {
|
||||
if (Bukkit.getPluginManager().getPlugin(hooked) != null) {
|
||||
plugin.getPluginLogger().info(hooked + " hooked!");
|
||||
|
||||
@@ -141,3 +141,5 @@ other-settings:
|
||||
# Whether to verify if a block/furniture matches the data in CustomCrops
|
||||
# Enable this if using Oraxen, as its API is more reliable
|
||||
double-check: false
|
||||
# Enable WorldEdit support (Experimental)
|
||||
worldedit-support: false
|
||||
|
||||
@@ -16,4 +16,5 @@ softdepend:
|
||||
- RealisticSeasons
|
||||
- AdvancedSeasons
|
||||
- SlimeWorldManager
|
||||
- MythicMobs
|
||||
- MythicMobs
|
||||
- WorldEdit
|
||||
Reference in New Issue
Block a user