hytale-server/com/hypixel/hytale/server/core/Constants.java

106 lines
4.7 KiB
Java

package com.hypixel.hytale.server.core;
import com.hypixel.hytale.common.plugin.PluginManifest;
import com.hypixel.hytale.server.core.asset.AssetModule;
import com.hypixel.hytale.server.core.asset.common.CommonAssetModule;
import com.hypixel.hytale.server.core.blocktype.BlockTypeModule;
import com.hypixel.hytale.server.core.console.ConsoleModule;
import com.hypixel.hytale.server.core.cosmetics.CosmeticsModule;
import com.hypixel.hytale.server.core.io.ServerManager;
import com.hypixel.hytale.server.core.modules.LegacyModule;
import com.hypixel.hytale.server.core.modules.accesscontrol.AccessControlModule;
import com.hypixel.hytale.server.core.modules.block.BlockModule;
import com.hypixel.hytale.server.core.modules.blockhealth.BlockHealthModule;
import com.hypixel.hytale.server.core.modules.blockset.BlockSetModule;
import com.hypixel.hytale.server.core.modules.camera.FlyCameraModule;
import com.hypixel.hytale.server.core.modules.collision.CollisionModule;
import com.hypixel.hytale.server.core.modules.debug.DebugPlugin;
import com.hypixel.hytale.server.core.modules.entity.EntityModule;
import com.hypixel.hytale.server.core.modules.entity.damage.DamageModule;
import com.hypixel.hytale.server.core.modules.entity.stamina.StaminaModule;
import com.hypixel.hytale.server.core.modules.entitystats.EntityStatsModule;
import com.hypixel.hytale.server.core.modules.entityui.EntityUIModule;
import com.hypixel.hytale.server.core.modules.i18n.I18nModule;
import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
import com.hypixel.hytale.server.core.modules.item.ItemModule;
import com.hypixel.hytale.server.core.modules.migrations.MigrationModule;
import com.hypixel.hytale.server.core.modules.prefabspawner.PrefabSpawnerModule;
import com.hypixel.hytale.server.core.modules.projectile.ProjectileModule;
import com.hypixel.hytale.server.core.modules.serverplayerlist.ServerPlayerListModule;
import com.hypixel.hytale.server.core.modules.singleplayer.SingleplayerModule;
import com.hypixel.hytale.server.core.modules.splitvelocity.SplitVelocity;
import com.hypixel.hytale.server.core.modules.time.TimeModule;
import com.hypixel.hytale.server.core.permissions.PermissionsModule;
import com.hypixel.hytale.server.core.universe.Universe;
import com.hypixel.hytale.server.core.universe.world.connectedblocks.ConnectedBlocksModule;
import com.hypixel.hytale.server.core.universe.world.meta.BlockStateModule;
import java.nio.file.Files;
import java.nio.file.Path;
import javax.annotation.Nonnull;
import joptsimple.OptionSet;
public final class Constants {
private static final OptionSet OPTION_SET = Options.getOptionSet();
public static final boolean DEBUG = true;
public static final boolean SINGLEPLAYER = OPTION_SET.has(Options.SINGLEPLAYER);
public static final boolean ALLOWS_SELF_OP_COMMAND = OPTION_SET.has(Options.ALLOW_SELF_OP_COMMAND);
public static final boolean FRESH_UNIVERSE = checkFreshUniverse();
public static final boolean FORCE_NETWORK_FLUSH = (Boolean)OPTION_SET.valueOf(Options.FORCE_NETWORK_FLUSH);
public static final Path UNIVERSE_PATH = getUniversePath();
@Nonnull
public static final PluginManifest[] CORE_PLUGINS = new PluginManifest[]{
ConsoleModule.MANIFEST,
PermissionsModule.MANIFEST,
FlyCameraModule.MANIFEST,
AssetModule.MANIFEST,
CommonAssetModule.MANIFEST,
CosmeticsModule.MANIFEST,
ServerManager.MANIFEST,
I18nModule.MANIFEST,
ItemModule.MANIFEST,
BlockTypeModule.MANIFEST,
LegacyModule.MANIFEST,
BlockModule.MANIFEST,
BlockStateModule.MANIFEST,
CollisionModule.MANIFEST,
BlockSetModule.MANIFEST,
MigrationModule.MANIFEST,
BlockHealthModule.MANIFEST,
PrefabSpawnerModule.MANIFEST,
TimeModule.MANIFEST,
InteractionModule.MANIFEST,
EntityModule.MANIFEST,
EntityStatsModule.MANIFEST,
EntityUIModule.MANIFEST,
DamageModule.MANIFEST,
SplitVelocity.MANIFEST,
StaminaModule.MANIFEST,
DebugPlugin.MANIFEST,
ProjectileModule.MANIFEST,
ServerPlayerListModule.MANIFEST,
AccessControlModule.MANIFEST,
SingleplayerModule.MANIFEST,
Universe.MANIFEST,
ConnectedBlocksModule.MANIFEST
};
public static void init() {
}
private static boolean checkFreshUniverse() {
Path universePath = getUniversePath();
if (!Files.exists(universePath)) {
return true;
} else if (!Files.exists(universePath.resolve("players"))) {
return true;
} else {
Path worlds = universePath.resolve("worlds");
return !Files.exists(worlds);
}
}
private static Path getUniversePath() {
return OPTION_SET.has(Options.UNIVERSE) ? (Path)OPTION_SET.valueOf(Options.UNIVERSE) : Path.of("universe");
}
}