Package net.minecraft.server
Class MinecraftServer
java.lang.Object
net.minecraft.util.thread.BlockableEventLoop<R>
net.minecraft.util.thread.ReentrantBlockableEventLoop<TickTask>
net.minecraft.server.MinecraftServer
- All Implemented Interfaces:
AutoCloseable
,Executor
,CommandSource
,ProfilerMeasured
,ProcessorHandle<TickTask>
- Direct Known Subclasses:
DedicatedServer
,GameTestServer
,IntegratedServer
public abstract class MinecraftServer
extends ReentrantBlockableEventLoop<TickTask>
implements CommandSource, AutoCloseable
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final record
static final record
(package private) static class
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
private boolean
static final com.mojang.authlib.GameProfile
private static final int
private static final float
private float
private CommandStorage
private final ServerConnectionListener
private final CustomBossEvents
private MinecraftServer.TimeProfiler
private boolean
private static final long
private long
static final LevelSettings
private boolean
private final Executor
private final com.mojang.datafixers.DataFixer
private final FrameTimer
private final ServerFunctionManager
private boolean
private boolean
private boolean
private KeyPair
private long
private long
private final Map<ResourceKey<Level>,
ServerLevel> private String
private static final org.slf4j.Logger
private static final int
private static final int
private boolean
private MetricsRecorder
private String
static final int
protected long
private boolean
private Consumer<ProfileResults>
private static final int
private static final int
private final PackRepository
private Map<ResourceKey<Level>,
long[]> protected final PlayerDataStorage
private int
private PlayerList
private int
private boolean
private ProfilerFiller
private final ChunkProgressListenerFactory
protected final Proxy
private boolean
private final RandomSource
private final LayeredRegistryAccess<RegistryLayer>
private boolean
private final ServerScoreboard
private String
private final Thread
protected final Services
private com.mojang.authlib.GameProfile
static final int
private static final int
private final ServerStatus
private static final long
private boolean
protected final LevelStorageSource.LevelStorageAccess
private final StructureTemplateManager
private static final int
private int
final long[]
static final String
private boolean
private ServerLevel[]
private int
private int
protected final WorldData
Fields inherited from interface net.minecraft.commands.CommandSource
NULL
-
Constructor Summary
ConstructorDescriptionMinecraftServer
(Thread p_236723_, LevelStorageSource.LevelStorageAccess p_236724_, PackRepository p_236725_, WorldStem p_236726_, Proxy p_236727_, com.mojang.datafixers.DataFixer p_236728_, Services p_236729_, ChunkProgressListenerFactory p_236730_) -
Method Summary
Modifier and TypeMethodDescriptionboolean
boolean
void
addTickable
(Runnable p_129947_) boolean
void
void
close()
static WorldDataConfiguration
configurePackRepository
(PackRepository p_248681_, DataPackConfig p_248920_, boolean p_249869_, FeatureFlagSet p_251243_) private static CrashReport
constructOrExtractCrashReport
(Throwable p_206569_) createGameModeForPlayer
(ServerPlayer p_177934_) protected void
createLevels
(ChunkProgressListener p_129816_) createTextFilterForPlayer
(ServerPlayer p_129814_) void
private void
dumpClasspath
(Path p_129992_) private void
dumpGameRules
(Path p_129984_) private void
dumpMiscStats
(Path p_129951_) private void
dumpNativeModules
(Path p_195522_) void
dumpServerProperties
(Path p_177911_) private void
dumpThreads
(Path p_129996_) private void
boolean
void
executeIfPossible
(Runnable p_202482_) abstract SystemReport
fillServerSystemReport
(SystemReport p_177901_) fillSystemReport
(SystemReport p_177936_) void
protected void
boolean
Deprecated.int
float
int
com.mojang.datafixers.DataFixer
abstract int
getLevel
(ResourceKey<Level> p_129881_) int
int
getMotd()
long
abstract int
int
int
String[]
int
getPort()
boolean
int
getProfilePermissions
(com.mojang.authlib.GameProfile p_129945_) com.mojang.authlib.GameProfileRepository
getProxy()
abstract int
int
getScaledTrackingDistance
(int p_129935_) private static DataPackConfig
getSelectedPacks
(PackRepository p_129818_) com.mojang.authlib.minecraft.MinecraftSessionService
com.mojang.authlib.GameProfile
int
int
getSpawnRadius
(ServerLevel p_129804_) int
long[]
getTickTime
(ResourceKey<Level> dim) private ServerLevel[]
getWorldPath
(LevelResource p_129844_) void
halt
(boolean p_129884_) boolean
hasGui()
private boolean
haveTime()
boolean
protected void
protected abstract boolean
void
abstract boolean
boolean
abstract boolean
boolean
isDemo()
boolean
abstract boolean
boolean
boolean
boolean
abstract boolean
boolean
boolean
isReady()
boolean
boolean
boolean
boolean
boolean
abstract boolean
isSingleplayerOwner
(com.mojang.authlib.GameProfile p_129840_) boolean
boolean
boolean
boolean
boolean
isUnderSpawnProtection
(ServerLevel p_129811_, BlockPos p_129812_, Player p_129813_) void
kickUnlistedPlayers
(CommandSourceStack p_129850_) protected void
void
logChatMessage
(Component p_241503_, ChatType.Bound p_241402_, String p_241481_) void
Deprecated.void
onServerCrash
(CrashReport p_129874_) void
final ServerLevel
boolean
pollTask()
private boolean
private void
prepareLevels
(ChunkProgressListener p_129941_) boolean
publishServer
(GameType p_129833_, boolean p_129834_, int p_129835_) private void
readScoreboard
(DimensionDataStorage p_129842_) reloadResources
(Collection<String> p_129862_) boolean
protected void
boolean
saveAllChunks
(boolean p_129886_, boolean p_129887_, boolean p_129888_) private void
saveDebugReport
(Path p_129860_) boolean
saveEverything
(boolean p_195515_, boolean p_195516_, boolean p_195517_) boolean
private void
sendDifficultyUpdate
(ServerPlayer p_129939_) void
sendSystemMessage
(Component p_236736_) void
setDefaultGameType
(GameType p_129832_) void
setDemo
(boolean p_129976_) void
setDifficulty
(Difficulty p_129828_, boolean p_129829_) void
setDifficultyLocked
(boolean p_129959_) void
setEnforceWhitelist
(boolean p_130005_) void
setFlightAllowed
(boolean p_130000_) protected void
private static void
setInitialSpawn
(ServerLevel p_177897_, ServerLevelData p_177898_, boolean p_177899_, boolean p_177900_) void
setLocalIp
(String p_129914_) void
void
setPlayerIdleTimeout
(int p_129978_) void
setPlayerList
(PlayerList p_129824_) void
setPort
(int p_129802_) void
setPreventProxyConnections
(boolean p_129994_) void
setPvpAllowed
(boolean p_129998_) void
setSingleplayerProfile
(com.mojang.authlib.GameProfile p_236741_) private void
setupDebugLevel
(WorldData p_129848_) void
setUsesAuthentication
(boolean p_129986_) abstract boolean
abstract boolean
protected boolean
static <S extends MinecraftServer>
Sprivate void
void
startRecordingMetrics
(Consumer<ProfileResults> p_177924_, Consumer<Path> p_177925_) void
void
void
void
tickChildren
(BooleanSupplier p_129954_) void
tickServer
(BooleanSupplier p_129871_) private void
private void
updateStatusIcon
(ServerStatus p_129879_) boolean
protected void
protected TickTask
wrapRunnable
(Runnable p_129852_) Methods inherited from class net.minecraft.util.thread.ReentrantBlockableEventLoop
runningTask
Methods inherited from class net.minecraft.util.thread.BlockableEventLoop
dropAllTasks, execute, executeBlocking, getPendingTasksCount, isSameThread, managedBlock, name, profiledMetrics, runAllTasks, submit, submit, submitAsync, tell, waitForTasks
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface net.minecraft.commands.CommandSource
alwaysAccepts
Methods inherited from interface net.minecraft.util.thread.ProcessorHandle
ask, askEither
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
VANILLA_BRAND
- See Also:
-
AVERAGE_TICK_TIME_SMOOTHING
private static final float AVERAGE_TICK_TIME_SMOOTHING- See Also:
-
TICK_STATS_SPAN
private static final int TICK_STATS_SPAN- See Also:
-
MS_PER_TICK
public static final int MS_PER_TICK- See Also:
-
OVERLOADED_THRESHOLD
private static final int OVERLOADED_THRESHOLD- See Also:
-
OVERLOADED_WARNING_INTERVAL
private static final int OVERLOADED_WARNING_INTERVAL- See Also:
-
STATUS_EXPIRE_TIME_NS
private static final long STATUS_EXPIRE_TIME_NS- See Also:
-
MAX_STATUS_PLAYER_SAMPLE
private static final int MAX_STATUS_PLAYER_SAMPLE- See Also:
-
START_CHUNK_RADIUS
public static final int START_CHUNK_RADIUS- See Also:
-
START_TICKING_CHUNK_COUNT
private static final int START_TICKING_CHUNK_COUNT- See Also:
-
AUTOSAVE_INTERVAL
private static final int AUTOSAVE_INTERVAL- See Also:
-
MAX_TICK_LATENCY
private static final int MAX_TICK_LATENCY- See Also:
-
ABSOLUTE_MAX_WORLD_SIZE
public static final int ABSOLUTE_MAX_WORLD_SIZE- See Also:
-
DEMO_SETTINGS
-
DELAYED_TASKS_TICK_EXTENSION
private static final long DELAYED_TASKS_TICK_EXTENSION- See Also:
-
ANONYMOUS_PLAYER_PROFILE
public static final com.mojang.authlib.GameProfile ANONYMOUS_PLAYER_PROFILE -
storageSource
-
playerDataStorage
-
tickables
-
metricsRecorder
-
profiler
-
onMetricsRecordingStopped
-
onMetricsRecordingFinished
-
willStartRecordingMetrics
private boolean willStartRecordingMetrics -
debugCommandProfiler
-
debugCommandProfilerDelayStart
private boolean debugCommandProfilerDelayStart -
connection
-
progressListenerFactory
-
status
-
random
-
fixerUpper
private final com.mojang.datafixers.DataFixer fixerUpper -
localIp
-
port
private int port -
registries
-
levels
-
playerList
-
running
private volatile boolean running -
stopped
private boolean stopped -
tickCount
private int tickCount -
proxy
-
onlineMode
private boolean onlineMode -
preventProxyConnections
private boolean preventProxyConnections -
pvp
private boolean pvp -
allowFlight
private boolean allowFlight -
motd
-
playerIdleTimeout
private int playerIdleTimeout -
tickTimes
public final long[] tickTimes -
keyPair
-
singleplayerProfile
@Nullable private com.mojang.authlib.GameProfile singleplayerProfile -
isDemo
private boolean isDemo -
isReady
private volatile boolean isReady -
lastOverloadWarning
private long lastOverloadWarning -
services
-
lastServerStatus
private long lastServerStatus -
serverThread
-
nextTickTime
protected long nextTickTime -
delayedTasksMaxNextTickTime
private long delayedTasksMaxNextTickTime -
mayHaveDelayedTasks
private boolean mayHaveDelayedTasks -
packRepository
-
scoreboard
-
commandStorage
-
customBossEvents
-
functionManager
-
frameTimer
-
enforceWhitelist
private boolean enforceWhitelist -
averageTickTime
private float averageTickTime -
executor
-
serverId
-
resources
-
structureTemplateManager
-
worldData
-
isSaving
private volatile boolean isSaving -
perWorldTickTimes
-
worldArrayMarker
private int worldArrayMarker -
worldArrayLast
private int worldArrayLast -
worldArray
-
-
Constructor Details
-
MinecraftServer
public MinecraftServer(Thread p_236723_, LevelStorageSource.LevelStorageAccess p_236724_, PackRepository p_236725_, WorldStem p_236726_, Proxy p_236727_, com.mojang.datafixers.DataFixer p_236728_, Services p_236729_, ChunkProgressListenerFactory p_236730_)
-
-
Method Details
-
spin
-
readScoreboard
-
initServer
- Throws:
IOException
-
loadLevel
protected void loadLevel() -
forceDifficulty
protected void forceDifficulty() -
createLevels
-
setInitialSpawn
private static void setInitialSpawn(ServerLevel p_177897_, ServerLevelData p_177898_, boolean p_177899_, boolean p_177900_) -
setupDebugLevel
-
prepareLevels
-
getDefaultGameType
-
isHardcore
public boolean isHardcore() -
getOperatorUserPermissionLevel
public abstract int getOperatorUserPermissionLevel() -
getFunctionCompilationLevel
public abstract int getFunctionCompilationLevel() -
shouldRconBroadcast
public abstract boolean shouldRconBroadcast() -
saveAllChunks
public boolean saveAllChunks(boolean p_129886_, boolean p_129887_, boolean p_129888_) -
saveEverything
public boolean saveEverything(boolean p_195515_, boolean p_195516_, boolean p_195517_) -
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceProcessorHandle<TickTask>
-
stopServer
public void stopServer() -
getLocalIp
-
setLocalIp
-
isRunning
public boolean isRunning() -
halt
public void halt(boolean p_129884_) -
runServer
protected void runServer() -
constructOrExtractCrashReport
-
haveTime
private boolean haveTime() -
waitUntilNextTick
protected void waitUntilNextTick() -
wrapRunnable
- Specified by:
wrapRunnable
in classBlockableEventLoop<TickTask>
-
shouldRun
- Specified by:
shouldRun
in classBlockableEventLoop<TickTask>
-
pollTask
public boolean pollTask()- Overrides:
pollTask
in classBlockableEventLoop<TickTask>
-
pollTaskInternal
private boolean pollTaskInternal() -
doRunTask
- Overrides:
doRunTask
in classReentrantBlockableEventLoop<TickTask>
-
updateStatusIcon
-
getWorldScreenshotFile
-
getServerDirectory
-
onServerCrash
-
onServerExit
public void onServerExit() -
tickServer
-
tickChildren
-
isNetherEnabled
public boolean isNetherEnabled() -
addTickable
-
setId
-
isShutdown
public boolean isShutdown() -
getFile
-
overworld
-
getLevel
-
levelKeys
-
getAllLevels
-
getServerVersion
-
getPlayerCount
public int getPlayerCount() -
getMaxPlayers
public int getMaxPlayers() -
getPlayerNames
-
getServerModName
-
fillSystemReport
-
fillServerSystemReport
-
getModdedStatus
-
sendSystemMessage
- Specified by:
sendSystemMessage
in interfaceCommandSource
-
getKeyPair
-
getPort
public int getPort() -
setPort
public void setPort(int p_129802_) -
getSingleplayerProfile
@Nullable public com.mojang.authlib.GameProfile getSingleplayerProfile() -
setSingleplayerProfile
public void setSingleplayerProfile(@Nullable com.mojang.authlib.GameProfile p_236741_) -
isSingleplayer
public boolean isSingleplayer() -
initializeKeyPair
protected void initializeKeyPair() -
setDifficulty
-
getScaledTrackingDistance
public int getScaledTrackingDistance(int p_129935_) -
updateMobSpawningFlags
private void updateMobSpawningFlags() -
setDifficultyLocked
public void setDifficultyLocked(boolean p_129959_) -
sendDifficultyUpdate
-
isSpawningMonsters
public boolean isSpawningMonsters() -
isDemo
public boolean isDemo() -
setDemo
public void setDemo(boolean p_129976_) -
getServerResourcePack
-
isResourcePackRequired
public boolean isResourcePackRequired() -
isDedicatedServer
public abstract boolean isDedicatedServer() -
getRateLimitPacketsPerSecond
public abstract int getRateLimitPacketsPerSecond() -
usesAuthentication
public boolean usesAuthentication() -
setUsesAuthentication
public void setUsesAuthentication(boolean p_129986_) -
getPreventProxyConnections
public boolean getPreventProxyConnections() -
setPreventProxyConnections
public void setPreventProxyConnections(boolean p_129994_) -
isSpawningAnimals
public boolean isSpawningAnimals() -
areNpcsEnabled
public boolean areNpcsEnabled() -
isEpollEnabled
public abstract boolean isEpollEnabled() -
isPvpAllowed
public boolean isPvpAllowed() -
setPvpAllowed
public void setPvpAllowed(boolean p_129998_) -
isFlightAllowed
public boolean isFlightAllowed() -
setFlightAllowed
public void setFlightAllowed(boolean p_130000_) -
isCommandBlockEnabled
public abstract boolean isCommandBlockEnabled() -
getMotd
-
setMotd
-
isStopped
public boolean isStopped() -
getPlayerList
-
setPlayerList
-
isPublished
public abstract boolean isPublished() -
setDefaultGameType
-
getConnection
-
isReady
public boolean isReady() -
hasGui
public boolean hasGui() -
publishServer
-
getTickCount
public int getTickCount() -
getSpawnProtectionRadius
public int getSpawnProtectionRadius() -
isUnderSpawnProtection
-
repliesToStatus
public boolean repliesToStatus() -
hidesOnlinePlayers
public boolean hidesOnlinePlayers() -
getProxy
-
getPlayerIdleTimeout
public int getPlayerIdleTimeout() -
setPlayerIdleTimeout
public void setPlayerIdleTimeout(int p_129978_) -
getSessionService
public com.mojang.authlib.minecraft.MinecraftSessionService getSessionService() -
getServiceSignatureValidator
-
getProfileRepository
public com.mojang.authlib.GameProfileRepository getProfileRepository() -
getProfileCache
-
getStatus
-
invalidateStatus
public void invalidateStatus() -
getAbsoluteMaxWorldSize
public int getAbsoluteMaxWorldSize() -
scheduleExecutables
public boolean scheduleExecutables()- Overrides:
scheduleExecutables
in classReentrantBlockableEventLoop<TickTask>
-
executeIfPossible
- Overrides:
executeIfPossible
in classBlockableEventLoop<TickTask>
-
getRunningThread
- Specified by:
getRunningThread
in classBlockableEventLoop<TickTask>
-
getCompressionThreshold
public int getCompressionThreshold() -
enforceSecureProfile
public boolean enforceSecureProfile() -
getNextTickTime
public long getNextTickTime() -
getFixerUpper
public com.mojang.datafixers.DataFixer getFixerUpper() -
getSpawnRadius
-
getAdvancements
-
getFunctions
-
reloadResources
-
configurePackRepository
public static WorldDataConfiguration configurePackRepository(PackRepository p_248681_, DataPackConfig p_248920_, boolean p_249869_, FeatureFlagSet p_251243_) -
getSelectedPacks
-
kickUnlistedPlayers
-
getPackRepository
-
getCommands
-
createCommandSourceStack
-
acceptsSuccess
public boolean acceptsSuccess()- Specified by:
acceptsSuccess
in interfaceCommandSource
-
acceptsFailure
public boolean acceptsFailure()- Specified by:
acceptsFailure
in interfaceCommandSource
-
shouldInformAdmins
public abstract boolean shouldInformAdmins()- Specified by:
shouldInformAdmins
in interfaceCommandSource
-
getRecipeManager
-
getScoreboard
-
getCommandStorage
-
getLootTables
-
getPredicateManager
-
getItemModifierManager
-
getGameRules
-
getCustomBossEvents
-
isEnforceWhitelist
public boolean isEnforceWhitelist() -
setEnforceWhitelist
public void setEnforceWhitelist(boolean p_130005_) -
getAverageTickTime
public float getAverageTickTime() -
getProfilePermissions
public int getProfilePermissions(com.mojang.authlib.GameProfile p_129945_) -
getFrameTimer
-
getProfiler
-
isSingleplayerOwner
public abstract boolean isSingleplayerOwner(com.mojang.authlib.GameProfile p_129840_) -
getTickTime
-
forgeGetWorldMap
Deprecated. -
markWorldsDirty
Deprecated. -
getWorldArray
-
dumpServerProperties
- Throws:
IOException
-
saveDebugReport
-
dumpMiscStats
- Throws:
IOException
-
dumpGameRules
- Throws:
IOException
-
dumpClasspath
- Throws:
IOException
-
dumpThreads
- Throws:
IOException
-
dumpNativeModules
- Throws:
IOException
-
startMetricsRecordingTick
private void startMetricsRecordingTick() -
endMetricsRecordingTick
private void endMetricsRecordingTick() -
isRecordingMetrics
public boolean isRecordingMetrics() -
startRecordingMetrics
-
stopRecordingMetrics
public void stopRecordingMetrics() -
finishRecordingMetrics
public void finishRecordingMetrics() -
cancelRecordingMetrics
public void cancelRecordingMetrics() -
getWorldPath
-
forceSynchronousWrites
public boolean forceSynchronousWrites() -
getStructureManager
-
getWorldData
-
getServerResources
-
registryAccess
-
registries
-
createTextFilterForPlayer
-
createGameModeForPlayer
-
getForcedGameType
-
getResourceManager
-
isCurrentlySaving
public boolean isCurrentlySaving() -
isTimeProfilerRunning
public boolean isTimeProfilerRunning() -
startTimeProfiler
public void startTimeProfiler() -
stopTimeProfiler
-
getMaxChainedNeighborUpdates
public int getMaxChainedNeighborUpdates() -
logChatMessage
public void logChatMessage(Component p_241503_, ChatType.Bound p_241402_, @Nullable String p_241481_) -
getChatDecorator
-