mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2025-01-10 02:07:43 +01:00
Properly implement entryfee for world config
This commit is contained in:
parent
1528fdfed1
commit
11e2deaa23
@ -0,0 +1,24 @@
|
|||||||
|
package org.mvplugins.multiverse.core.configuration.migration;
|
||||||
|
|
||||||
|
import co.aikar.commands.ACFUtil;
|
||||||
|
import com.dumptruckman.minecraft.util.Logging;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
|
||||||
|
public class DoubleMigrationAction implements MigratorAction {
|
||||||
|
|
||||||
|
public static DoubleMigrationAction of(String path) {
|
||||||
|
return new DoubleMigrationAction(path);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final String path;
|
||||||
|
|
||||||
|
public DoubleMigrationAction(String path) {
|
||||||
|
this.path = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrate(ConfigurationSection config) {
|
||||||
|
config.set(path, ACFUtil.parseDouble(config.getString(path)));
|
||||||
|
Logging.info("Converted %s to double %s", path, config.getDouble(path));
|
||||||
|
}
|
||||||
|
}
|
@ -15,7 +15,7 @@ import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class MVEconomist {
|
public class MVEconomist {
|
||||||
public static final Material DISABLED_MATERIAL = Material.AIR;
|
public static final Material VAULT_ECONOMY_MATERIAL = Material.AIR;
|
||||||
|
|
||||||
private final VaultHandler vaultHandler;
|
private final VaultHandler vaultHandler;
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ public class MVEconomist {
|
|||||||
* @return true if currency string matches a valid material.
|
* @return true if currency string matches a valid material.
|
||||||
*/
|
*/
|
||||||
public static boolean isItemCurrency(Material currency) {
|
public static boolean isItemCurrency(Material currency) {
|
||||||
return currency != null;
|
return currency != VAULT_ECONOMY_MATERIAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
package org.mvplugins.multiverse.core.utils;
|
|
||||||
|
|
||||||
import de.themoep.idconverter.IdMappings;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A tool for converting values which may be an old type ID to a Material.
|
|
||||||
*/
|
|
||||||
public class MaterialConverter {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts the value in the given config at the given path from a numeric id or flattened material name to a
|
|
||||||
* Material.
|
|
||||||
*
|
|
||||||
* @param config The config with the value to convert.
|
|
||||||
* @param path The path of the value in the config.
|
|
||||||
* @return The converted Material type or null if no matching type.
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
public static Material convertConfigType(@NotNull ConfigurationSection config, @NotNull String path) {
|
|
||||||
return convertTypeString(config.getString(path));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts a string representing a numeric id or flattened material name to a Material.
|
|
||||||
*
|
|
||||||
* @param value The value to convert.
|
|
||||||
* @return The converted Material type or null if no matching type.
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
public static Material convertTypeString(@Nullable String value) {
|
|
||||||
IdMappings.Mapping mapping = IdMappings.getById(value != null ? value : "");
|
|
||||||
if (mapping != null) {
|
|
||||||
return Material.matchMaterial(mapping.getFlatteningType());
|
|
||||||
} else {
|
|
||||||
return Material.matchMaterial(value != null ? value : "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -387,6 +387,25 @@ public class MultiverseWorld {
|
|||||||
return worldConfig.setPortalForm(portalForm);
|
return worldConfig.setPortalForm(portalForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if entry fee is needed when entering this world
|
||||||
|
*
|
||||||
|
* @return True if entry fee is needed
|
||||||
|
*/
|
||||||
|
public boolean isEntryFeeEnabled() {
|
||||||
|
return worldConfig.isEntryFeeEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets if entry fee is needed when entering this world
|
||||||
|
*
|
||||||
|
* @param entryFeeEnabled True to enable use of entry fee
|
||||||
|
* @return Result of setting property.
|
||||||
|
*/
|
||||||
|
public Try<Void> setEntryFeeEnabled(boolean entryFeeEnabled) {
|
||||||
|
return worldConfig.setEntryFeeEnabled(entryFeeEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the amount of currency it requires to enter this world.
|
* Gets the amount of currency it requires to enter this world.
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,59 @@
|
|||||||
|
package org.mvplugins.multiverse.core.world.config;
|
||||||
|
|
||||||
|
import de.themoep.idconverter.IdMappings;
|
||||||
|
import io.vavr.control.Option;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.mvplugins.multiverse.core.configuration.functions.NodeSerializer;
|
||||||
|
import org.mvplugins.multiverse.core.economy.MVEconomist;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the material name to/from a {@link Material} enum, with the special case of "vault-economy"
|
||||||
|
* for world configuration.
|
||||||
|
*/
|
||||||
|
public class CurrencySerializer implements NodeSerializer<Material> {
|
||||||
|
|
||||||
|
static final String VAULT_ECONOMY_CODE = "@vault-economy";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Material deserialize(Object object, Class<Material> type) {
|
||||||
|
return Option.of(object)
|
||||||
|
.map(String::valueOf)
|
||||||
|
.map(materialStr -> {
|
||||||
|
if (materialStr.equalsIgnoreCase(VAULT_ECONOMY_CODE)) {
|
||||||
|
return MVEconomist.VAULT_ECONOMY_MATERIAL;
|
||||||
|
}
|
||||||
|
return stringToMaterial(materialStr);
|
||||||
|
})
|
||||||
|
.getOrElse(MVEconomist.VAULT_ECONOMY_MATERIAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a string representing a numeric id or flattened material name to a Material.
|
||||||
|
*
|
||||||
|
* @param value The value to convert.
|
||||||
|
* @return The converted Material type or null if no matching type.
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
private Material stringToMaterial(@Nullable String value) {
|
||||||
|
IdMappings.Mapping mapping = IdMappings.getById(value != null ? value : "");
|
||||||
|
if (mapping != null) {
|
||||||
|
return Material.matchMaterial(mapping.getFlatteningType());
|
||||||
|
} else {
|
||||||
|
return Material.matchMaterial(value != null ? value : "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object serialize(Material object, Class<Material> type) {
|
||||||
|
return Option.of(object)
|
||||||
|
.map(material -> material == MVEconomist.VAULT_ECONOMY_MATERIAL ? VAULT_ECONOMY_CODE : material.name())
|
||||||
|
.getOrElse(VAULT_ECONOMY_CODE);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package org.mvplugins.multiverse.core.world.config;
|
||||||
|
|
||||||
|
import com.dumptruckman.minecraft.util.Logging;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.mvplugins.multiverse.core.configuration.migration.MigratorAction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrates the entry fee settings. Assumes entry fee is disabled if currency is not set.
|
||||||
|
*/
|
||||||
|
public class EntryFeeMigrator implements MigratorAction {
|
||||||
|
@Override
|
||||||
|
public void migrate(ConfigurationSection config) {
|
||||||
|
String currency = config.getString("entry-fee.currency", "");
|
||||||
|
Logging.info("Entry fee currency: %s", currency);
|
||||||
|
if (currency.isEmpty()) {
|
||||||
|
config.set("entry-fee.enabled", false);
|
||||||
|
config.set("entry-fee.currency", CurrencySerializer.VAULT_ECONOMY_CODE);
|
||||||
|
} else {
|
||||||
|
config.set("entry-fee.enabled", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -17,13 +17,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.mvplugins.multiverse.core.MultiverseCore;
|
import org.mvplugins.multiverse.core.MultiverseCore;
|
||||||
import org.mvplugins.multiverse.core.configuration.handle.ConfigurationSectionHandle;
|
import org.mvplugins.multiverse.core.configuration.handle.ConfigurationSectionHandle;
|
||||||
import org.mvplugins.multiverse.core.configuration.handle.StringPropertyHandle;
|
import org.mvplugins.multiverse.core.configuration.handle.StringPropertyHandle;
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.BooleanMigratorAction;
|
import org.mvplugins.multiverse.core.configuration.migration.*;
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.ConfigMigrator;
|
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.IntegerMigratorAction;
|
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.LongMigratorAction;
|
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.MoveMigratorAction;
|
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.NullStringMigratorAction;
|
|
||||||
import org.mvplugins.multiverse.core.configuration.migration.VersionMigrator;
|
|
||||||
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,6 +62,7 @@ public final class WorldConfig {
|
|||||||
.addAction(BooleanMigratorAction.of("bed-respawn"))
|
.addAction(BooleanMigratorAction.of("bed-respawn"))
|
||||||
//.addAction(MoveMigratorAction.of("difficulty", "difficulty"))
|
//.addAction(MoveMigratorAction.of("difficulty", "difficulty"))
|
||||||
.addAction(MoveMigratorAction.of("entryfee.amount", "entry-fee.amount"))
|
.addAction(MoveMigratorAction.of("entryfee.amount", "entry-fee.amount"))
|
||||||
|
.addAction(DoubleMigrationAction.of("entry-fee.amount"))
|
||||||
.addAction(MoveMigratorAction.of("entryfee.currency", "entry-fee.currency"))
|
.addAction(MoveMigratorAction.of("entryfee.currency", "entry-fee.currency"))
|
||||||
//.addAction(MoveMigratorAction.of("environment", "environment"))
|
//.addAction(MoveMigratorAction.of("environment", "environment"))
|
||||||
.addAction(MoveMigratorAction.of("gameMode", "gamemode"))
|
.addAction(MoveMigratorAction.of("gameMode", "gamemode"))
|
||||||
@ -100,6 +95,7 @@ public final class WorldConfig {
|
|||||||
.addAction(IntegerMigratorAction.of("spawning.monsters.tick-rate"))
|
.addAction(IntegerMigratorAction.of("spawning.monsters.tick-rate"))
|
||||||
//.addAction(MoveMigratorAction.of("spawning.monsters.exceptions", "spawning.monsters.exceptions"))
|
//.addAction(MoveMigratorAction.of("spawning.monsters.exceptions", "spawning.monsters.exceptions"))
|
||||||
.addAction(MoveMigratorAction.of("worldBlacklist", "world-blacklist"))
|
.addAction(MoveMigratorAction.of("worldBlacklist", "world-blacklist"))
|
||||||
|
.addAction(new EntryFeeMigrator())
|
||||||
.addAction(new LegacyAliasMigrator())
|
.addAction(new LegacyAliasMigrator())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
@ -184,6 +180,14 @@ public final class WorldConfig {
|
|||||||
return configHandle.set(configNodes.DIFFICULTY, difficulty);
|
return configHandle.set(configNodes.DIFFICULTY, difficulty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEntryFeeEnabled() {
|
||||||
|
return configHandle.get(configNodes.ENTRY_FEE_ENABLED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Try<Void> setEntryFeeEnabled(boolean entryFeeEnabled) {
|
||||||
|
return configHandle.set(configNodes.ENTRY_FEE_ENABLED, entryFeeEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
public double getEntryFeeAmount() {
|
public double getEntryFeeAmount() {
|
||||||
return configHandle.get(configNodes.ENTRY_FEE_AMOUNT);
|
return configHandle.get(configNodes.ENTRY_FEE_AMOUNT);
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.mvplugins.multiverse.core.configuration.node.ConfigNode;
|
|||||||
import org.mvplugins.multiverse.core.configuration.node.ListConfigNode;
|
import org.mvplugins.multiverse.core.configuration.node.ListConfigNode;
|
||||||
import org.mvplugins.multiverse.core.configuration.node.Node;
|
import org.mvplugins.multiverse.core.configuration.node.Node;
|
||||||
import org.mvplugins.multiverse.core.configuration.node.NodeGroup;
|
import org.mvplugins.multiverse.core.configuration.node.NodeGroup;
|
||||||
|
import org.mvplugins.multiverse.core.economy.MVEconomist;
|
||||||
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
|
||||||
import org.mvplugins.multiverse.core.world.helpers.EnforcementHandler;
|
import org.mvplugins.multiverse.core.world.helpers.EnforcementHandler;
|
||||||
|
|
||||||
@ -102,15 +103,20 @@ public class WorldConfigNodes {
|
|||||||
})
|
})
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
|
final ConfigNode<Boolean> ENTRY_FEE_ENABLED = node(ConfigNode.builder("entry-fee.enabled", Boolean.class)
|
||||||
|
.defaultValue(false)
|
||||||
|
.name("entryfee-enabled")
|
||||||
|
.build());
|
||||||
|
|
||||||
final ConfigNode<Double> ENTRY_FEE_AMOUNT = node(ConfigNode.builder("entry-fee.amount", Double.class)
|
final ConfigNode<Double> ENTRY_FEE_AMOUNT = node(ConfigNode.builder("entry-fee.amount", Double.class)
|
||||||
.defaultValue(0.0)
|
.defaultValue(0.0)
|
||||||
.name("entryfee-amount")
|
.name("entryfee-amount")
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
final ConfigNode<Material> ENTRY_FEE_CURRENCY = node(ConfigNode.builder("entry-fee.currency", Material.class)
|
final ConfigNode<Material> ENTRY_FEE_CURRENCY = node(ConfigNode.builder("entry-fee.currency", Material.class)
|
||||||
// TODO: Convert from material ID
|
.defaultValue(MVEconomist.VAULT_ECONOMY_MATERIAL)
|
||||||
.defaultValue(Material.AIR)
|
|
||||||
.name("entryfee-currency")
|
.name("entryfee-currency")
|
||||||
|
.serializer(new CurrencySerializer())
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
final ConfigNode<World.Environment> ENVIRONMENT = node(ConfigNode
|
final ConfigNode<World.Environment> ENVIRONMENT = node(ConfigNode
|
||||||
|
@ -136,7 +136,7 @@ public class WorldEntryChecker {
|
|||||||
public Result<EntryFeeResult.Success, EntryFeeResult.Failure> canPayEntryFee(LoadedMultiverseWorld world) {
|
public Result<EntryFeeResult.Success, EntryFeeResult.Failure> canPayEntryFee(LoadedMultiverseWorld world) {
|
||||||
double price = world.getPrice();
|
double price = world.getPrice();
|
||||||
Material currency = world.getCurrency();
|
Material currency = world.getCurrency();
|
||||||
if (price == 0D && (currency == null || currency == MVEconomist.DISABLED_MATERIAL)) {
|
if (!world.isEntryFeeEnabled() || price == 0D) {
|
||||||
return Result.success(EntryFeeResult.Success.FREE_ENTRY);
|
return Result.success(EntryFeeResult.Success.FREE_ENTRY);
|
||||||
}
|
}
|
||||||
if (sender instanceof ConsoleCommandSender || sender instanceof BlockCommandSender) {
|
if (sender instanceof ConsoleCommandSender || sender instanceof BlockCommandSender) {
|
||||||
|
@ -1,17 +1,15 @@
|
|||||||
package org.mvplugins.multiverse.core.world
|
package org.mvplugins.multiverse.core.world
|
||||||
|
|
||||||
|
import org.bukkit.Material
|
||||||
import org.bukkit.World.Environment
|
import org.bukkit.World.Environment
|
||||||
import org.junit.jupiter.api.Assertions.assertEquals
|
|
||||||
import org.junit.jupiter.api.Assertions.assertTrue
|
|
||||||
import org.mvplugins.multiverse.core.TestWithMockBukkit
|
import org.mvplugins.multiverse.core.TestWithMockBukkit
|
||||||
|
import org.mvplugins.multiverse.core.economy.MVEconomist
|
||||||
import org.mvplugins.multiverse.core.world.config.SpawnLocation
|
import org.mvplugins.multiverse.core.world.config.SpawnLocation
|
||||||
import org.mvplugins.multiverse.core.world.config.WorldsConfigManager
|
import org.mvplugins.multiverse.core.world.config.WorldsConfigManager
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
import kotlin.io.path.absolutePathString
|
import kotlin.io.path.absolutePathString
|
||||||
import kotlin.test.BeforeTest
|
import kotlin.test.*
|
||||||
import kotlin.test.Test
|
|
||||||
import kotlin.test.assertNotNull
|
|
||||||
|
|
||||||
class WorldConfigMangerTest : TestWithMockBukkit() {
|
class WorldConfigMangerTest : TestWithMockBukkit() {
|
||||||
|
|
||||||
@ -46,12 +44,18 @@ class WorldConfigMangerTest : TestWithMockBukkit() {
|
|||||||
|
|
||||||
assertEquals("&aworld the end", endWorldConfig.alias)
|
assertEquals("&aworld the end", endWorldConfig.alias)
|
||||||
assertEquals(Environment.THE_END, endWorldConfig.environment)
|
assertEquals(Environment.THE_END, endWorldConfig.environment)
|
||||||
|
assertFalse(endWorldConfig.isEntryFeeEnabled)
|
||||||
|
assertEquals(MVEconomist.VAULT_ECONOMY_MATERIAL, endWorldConfig.entryFeeCurrency)
|
||||||
|
assertEquals(0.0, endWorldConfig.entryFeeAmount)
|
||||||
|
|
||||||
val worldConfig = worldConfigManager.getWorldConfig("world").orNull
|
val worldConfig = worldConfigManager.getWorldConfig("world").orNull
|
||||||
assertNotNull(worldConfig)
|
assertNotNull(worldConfig)
|
||||||
|
|
||||||
assertEquals(-5176596003035866649, worldConfig.seed)
|
assertEquals(-5176596003035866649, worldConfig.seed)
|
||||||
assertEquals(listOf("test"), worldConfig.worldBlacklist)
|
assertEquals(listOf("test"), worldConfig.worldBlacklist)
|
||||||
|
assertTrue(worldConfig.isEntryFeeEnabled)
|
||||||
|
assertEquals(Material.DIRT, worldConfig.entryFeeCurrency)
|
||||||
|
assertEquals(5.0, worldConfig.entryFeeAmount)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.mvplugins.multiverse.core.world
|
package org.mvplugins.multiverse.core.world
|
||||||
|
|
||||||
|
import org.bukkit.Material
|
||||||
import org.mvplugins.multiverse.core.TestWithMockBukkit
|
import org.mvplugins.multiverse.core.TestWithMockBukkit
|
||||||
import org.mvplugins.multiverse.core.world.config.WorldConfig
|
import org.mvplugins.multiverse.core.world.config.WorldConfig
|
||||||
import org.mvplugins.multiverse.core.world.config.WorldsConfigManager
|
import org.mvplugins.multiverse.core.world.config.WorldsConfigManager
|
||||||
@ -60,6 +61,9 @@ class WorldConfigTest : TestWithMockBukkit() {
|
|||||||
val blacklists = listOf("a", "b", "c")
|
val blacklists = listOf("a", "b", "c")
|
||||||
assertTrue(worldConfig.stringPropertyHandle.setProperty("world-blacklist", blacklists).isSuccess)
|
assertTrue(worldConfig.stringPropertyHandle.setProperty("world-blacklist", blacklists).isSuccess)
|
||||||
assertEquals(blacklists, worldConfig.stringPropertyHandle.getProperty("world-blacklist").get())
|
assertEquals(blacklists, worldConfig.stringPropertyHandle.getProperty("world-blacklist").get())
|
||||||
|
|
||||||
|
assertTrue(worldConfig.stringPropertyHandle.setProperty("entryfee-currency", Material.JUNGLE_WOOD).isSuccess)
|
||||||
|
assertEquals(Material.JUNGLE_WOOD, worldConfig.stringPropertyHandle.getProperty("entryfee-currency").get())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -8,8 +8,9 @@ world:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NORMAL
|
environment: NORMAL
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
@ -45,8 +46,9 @@ world_nether:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NETHER
|
environment: NETHER
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
|
@ -8,8 +8,9 @@ world_nether:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NETHER
|
environment: NETHER
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
|
@ -8,8 +8,9 @@ world_the_end:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: THE_END
|
environment: THE_END
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
@ -50,8 +51,9 @@ world:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NORMAL
|
environment: NORMAL
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
|
@ -8,8 +8,9 @@ world:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NORMAL
|
environment: NORMAL
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
@ -45,8 +46,9 @@ world_nether:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NETHER
|
environment: NETHER
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
@ -82,8 +84,9 @@ newworld:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: '@vault-economy'
|
||||||
environment: NORMAL
|
environment: NORMAL
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: '@error'
|
generator: '@error'
|
||||||
|
@ -71,7 +71,8 @@ worlds:
|
|||||||
exceptions: []
|
exceptions: []
|
||||||
entryfee:
|
entryfee:
|
||||||
==: MVEntryFee
|
==: MVEntryFee
|
||||||
amount: '0.0'
|
amount: '5.0'
|
||||||
|
currency: 'DIRT'
|
||||||
hunger: 'true'
|
hunger: 'true'
|
||||||
autoHeal: 'true'
|
autoHeal: 'true'
|
||||||
adjustSpawn: 'true'
|
adjustSpawn: 'true'
|
||||||
|
@ -8,8 +8,9 @@ world:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: @vault-economy
|
||||||
environment: NORMAL
|
environment: NORMAL
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
@ -50,8 +51,9 @@ world_nether:
|
|||||||
bed-respawn: true
|
bed-respawn: true
|
||||||
difficulty: NORMAL
|
difficulty: NORMAL
|
||||||
entry-fee:
|
entry-fee:
|
||||||
|
enabled: false
|
||||||
amount: 0.0
|
amount: 0.0
|
||||||
currency: AIR
|
currency: @vault-economy
|
||||||
environment: NETHER
|
environment: NETHER
|
||||||
gamemode: SURVIVAL
|
gamemode: SURVIVAL
|
||||||
generator: ''
|
generator: ''
|
||||||
|
Loading…
Reference in New Issue
Block a user