mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2025-12-27 10:49:08 +00:00
Add onDiscover and onlyEntities to Regenerate, fix world loading
This commit is contained in:
@@ -12,11 +12,15 @@ public class Regenerate {
|
||||
private final int regenerateInterval;
|
||||
private final boolean loadChunks;
|
||||
private final List<RegeneratingEntity> regeneratingEntities;
|
||||
private final boolean onDiscover;
|
||||
private final boolean onlyEntities;
|
||||
|
||||
public Regenerate(int regenerateInterval, boolean loadChunks, List<RegeneratingEntity> regeneratingEntities) {
|
||||
this.regenerateInterval = regenerateInterval;
|
||||
this.loadChunks = loadChunks;
|
||||
this.regeneratingEntities = regeneratingEntities;
|
||||
this.onDiscover = false;
|
||||
this.onlyEntities = true;
|
||||
}
|
||||
|
||||
public int getRegenerateInterval() {
|
||||
@@ -46,4 +50,12 @@ public class Regenerate {
|
||||
public void setOrigin(Location origin) {
|
||||
this.origin = origin;
|
||||
}
|
||||
|
||||
public boolean isOnDiscover() {
|
||||
return onDiscover;
|
||||
}
|
||||
|
||||
public boolean isOnlyEntities() {
|
||||
return onlyEntities;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.islandearth.rpgregions.api.events.RegionsEnterEvent;
|
||||
import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion;
|
||||
import net.islandearth.rpgregions.managers.data.region.Discovery;
|
||||
import net.islandearth.rpgregions.managers.data.region.WorldDiscovery;
|
||||
import net.islandearth.rpgregions.utils.RegenUtils;
|
||||
import net.islandearth.rpgregions.utils.TitleAnimator;
|
||||
import net.islandearth.rpgregions.utils.XSound;
|
||||
import org.bukkit.Bukkit;
|
||||
@@ -116,6 +117,10 @@ public class RegionListener implements Listener {
|
||||
}
|
||||
|
||||
if (configuredRegion.getRewards() != null) configuredRegion.getRewards().forEach(reward -> reward.award(player));
|
||||
|
||||
if (configuredRegion.getRegenerate() != null) {
|
||||
if (configuredRegion.getRegenerate().isOnDiscover()) RegenUtils.regenerate(configuredRegion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ public class RegenerationManager {
|
||||
for (ConfiguredRegion configuredRegion1 : plugin.getManagers().getRegionsCache().getConfiguredRegions().values()) {
|
||||
if (configuredRegion1.getRegenerate() != null) {
|
||||
Regenerate regenerate = configuredRegion1.getRegenerate();
|
||||
if (regenerate.isOnDiscover()) continue;
|
||||
if (regenerate.getRegenerateInterval() < 5000) plugin.getLogger().warning("Region " + configuredRegion1.getId() + " has a very low regenerate interval! This may lag your server.");
|
||||
tasks.add(Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new RegenerationTask(plugin, configuredRegion1), 0L, regenerate.getRegenerateInterval()));
|
||||
}
|
||||
|
||||
@@ -51,6 +51,11 @@ public class RegenUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (regenerate.isOnlyEntities()) {
|
||||
generateRandomEntities(protectedRegion, region);
|
||||
return true;
|
||||
}
|
||||
|
||||
World world = BukkitAdapter.adapt(region.getWorld());
|
||||
EditSession session = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ name: RPGRegions
|
||||
version: @version@
|
||||
main: net.islandearth.rpgregions.RPGRegions
|
||||
api-version: '1.13'
|
||||
softdepend: [Languagy, UltraRegions, WorldGuard, PlaceholderAPI, HeadDatabase, Residence, Plan, GriefPrevention, Vault, MythicMobs, AlonsoLevels]
|
||||
softdepend: [Hyperverse, Multiverse, Languagy, UltraRegions, WorldGuard, PlaceholderAPI, HeadDatabase, Residence, Plan, GriefPrevention, Vault, MythicMobs, AlonsoLevels]
|
||||
authors: [SamB440]
|
||||
description: Discoverable regions
|
||||
website: https://fortitude.islandearth.net
|
||||
|
||||
Reference in New Issue
Block a user