Allows not generating initial home and requiring users to acquire one when they want.
This commit is contained in:
@@ -119,6 +119,7 @@ public class MetropolisPlugin extends JavaPlugin {
|
||||
private int wallHeight = 128;
|
||||
int _maxPlots = 1;
|
||||
int _plotMultiplier = 1;
|
||||
private int initialHomeCount = 1;
|
||||
|
||||
private Cuboid _spawnCuboid = null;
|
||||
private Cuboid _cityCuboid = null;
|
||||
@@ -199,6 +200,7 @@ public class MetropolisPlugin extends JavaPlugin {
|
||||
worldName = safeGetStringFromConfig(config, "worldname");
|
||||
_plotMultiplier = safeGetIntFromConfig(config, "plot.multiplier");
|
||||
_maxPlots = safeGetIntFromConfig(config, "plot.maxPerPlayer");
|
||||
initialHomeCount = normalizeInitialHomeCount(safeGetIntFromConfig(config, "plot.initial"));
|
||||
|
||||
buildUserOverrides();
|
||||
_permissionOverrides =
|
||||
@@ -556,6 +558,9 @@ public class MetropolisPlugin extends JavaPlugin {
|
||||
setHome(playerId, existingHome.getNumber());
|
||||
return existingHome;
|
||||
}
|
||||
if (!shouldAutoGenerateInitialHome()) {
|
||||
return null;
|
||||
}
|
||||
if (DEBUG) {
|
||||
getLogger().info(String.format("Creating home for player %s", player.getName()));
|
||||
}
|
||||
@@ -568,6 +573,26 @@ public class MetropolisPlugin extends JavaPlugin {
|
||||
return home;
|
||||
}
|
||||
|
||||
public static int normalizeInitialHomeCount(int count) {
|
||||
return Math.max(0, count);
|
||||
}
|
||||
|
||||
public static boolean shouldAutoGenerateInitialHome(int count) {
|
||||
return count > 0;
|
||||
}
|
||||
|
||||
public int getInitialHomeCount() {
|
||||
return initialHomeCount;
|
||||
}
|
||||
|
||||
public void setInitialHomeCount(int count) {
|
||||
initialHomeCount = normalizeInitialHomeCount(count);
|
||||
}
|
||||
|
||||
public boolean shouldAutoGenerateInitialHome() {
|
||||
return shouldAutoGenerateInitialHome(initialHomeCount);
|
||||
}
|
||||
|
||||
private void generateFloor(Cuboid plotCuboid) {
|
||||
int x = 0;
|
||||
int y = roadLevel;
|
||||
|
||||
@@ -17,6 +17,7 @@ along with Metropolis. If not, see <https://www.gnu.org/licenses/agpl-3.0.txt>.
|
||||
|
||||
package com.majinnaibu.bukkitplugins.metropolis.commands;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@@ -64,4 +65,14 @@ class MetropolisHomeAcquireTest {
|
||||
|
||||
verify(plugin, never()).acquireHome(player);
|
||||
}
|
||||
|
||||
@Test
|
||||
void supportsDisablingAutomaticInitialHomeAllocation() {
|
||||
assertEquals(1, MetropolisPlugin.normalizeInitialHomeCount(1));
|
||||
assertTrue(MetropolisPlugin.shouldAutoGenerateInitialHome(1));
|
||||
|
||||
int zero = MetropolisPlugin.normalizeInitialHomeCount(0);
|
||||
assertEquals(0, zero);
|
||||
assertFalse(MetropolisPlugin.shouldAutoGenerateInitialHome(zero));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user