9
0
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:
SamB440
2020-10-20 21:18:03 +01:00
parent e2f0eeb8b9
commit be449486fc
5 changed files with 24 additions and 1 deletions

View File

@@ -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;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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()));
}

View File

@@ -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);

View File

@@ -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