106 lines
4.7 KiB
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");
|
|
}
|
|
}
|