iu_yang1的杂货铺

Impart实验性Minecraft服务器结构与维护日志

Impart 实验性 Minecraft 服务器结构与维护日志

服务端基本配置结构

  • 运行在 MCDReforged​上的 Minecraft 1.21 Fabric​服务端.
  • 模组 是否为前置 版本
    appleskin 否 fabric-mc1.21-3.0.2
    architectury 是 13.0.6-fabric.jar
    badpackets 是 -fabric-0.8.1
    c2me 是 -fabric-mc1.21-0.2.0+alpha.11.109
    capes 是 -1.5.4+1.21-fabric
    carpet-tis-addition 否 -v1.62.0-mc1.21
    caxton 是 -0.6.0-alpha.1+1.21-FABRIC
    chatpatches 否 -210.6.5.1
    cloth-config 是 -15.0.128-fabric
    continuity 否 -3.0.0-beta.5+1.21
    CustomSkinLoader 否 _Fabric-14.20
    e4mc 否 _minecraft-5.1.0
    emi 否 -1.1.10-SNAPSHOT+1.21+fabric
    entityculling 否 -fabric-1.6.6-mc1.21
    fabric-api 是 -0.100.7+1.21
    fabric-carpet 否 -1.21-1.4.147+v240623
    fabric-language-kotlin 否 -1.11.0+kotlin.2.0.0
    fastquit 否 -3.0.0+1.20.6
    ferritecore 否 -7.0.0-fabric
    fsb-interop 否 -1.4.0+mc1.21-build.54
    ImmediatelyFast 否 -Fabric-1.2.18+1.21
    InventoryProfilesNext 否 -fabric-1.21-2.0.2
    libIPN 是 -fabric-1.21-6.0.0
    litematica 否 -fabric-1.21-0.18.999-sakura.20
    lithium 否 -fabric-mc1.21-0.12.7
    MagicLib 是 -mc1.21.0-fabric-0.8.576-stable
    malilib 是 -fabric-1.21-0.20.0
    MasaGadge 是 t-mc1.21-fabric-4.0.355-stable
    midnightlib 是 -fabric-1.5.7
    mixintrace 否 -1.1.1+1.17
    modernfix 否 -fabric-5.19.0+mc1.21
    moreculling 否 -1.21-0.26.0
    playerladder 否 -fabric-1.21-0.7.1
    servux-fabric 否 -1.21.0-0.3.7
    tweakeroo 否 -fabric-1.21-0.20.999-sakura.17
    vmp 否 -fabric-mc1.21-0.2.0+beta.7.165-all
    worldedit 否 -mod-7.3.5

    ‍

  • server.properties 配置文件
  • #Minecraft server properties
    #Mon Jan 20 12:47:16 CST 2025
    accepts-transfers=false
    allow-flight=true
    allow-nether=true
    broadcast-console-to-ops=true
    broadcast-rcon-to-ops=true
    bug-report-link=
    difficulty=hard
    enable-command-block=true
    enable-jmx-monitoring=false
    enable-query=false
    enable-rcon=false
    enable-status=true
    enforce-secure-profile=false
    enforce-whitelist=false
    entity-broadcast-range-percentage=100
    force-gamemode=false
    function-permission-level=2
    gamemode=creative
    generate-structures=true
    generator-settings={}
    hardcore=false
    hide-online-players=false
    initial-disabled-packs=
    initial-enabled-packs=vanilla,fabric
    level-name=world
    level-seed=
    level-type=minecraft\:normal
    log-ips=true
    max-chained-neighbor-updates=1000000
    max-players=100
    max-tick-time=6000000
    max-world-size=29999984
    motd=Impart Lab Server
    network-compression-threshold=256
    online-mode=true
    op-permission-level=4
    player-idle-timeout=0
    prevent-proxy-connections=false
    pvp=true
    query.port=25565
    rate-limit=0
    rcon.password=
    rcon.port=25575
    region-file-compression=deflate
    require-resource-pack=false
    resource-pack=
    resource-pack-id=
    resource-pack-prompt=
    resource-pack-sha1=
    server-ip=
    server-port=25565
    simulation-distance=10
    spawn-animals=true
    spawn-monsters=true
    spawn-npcs=true
    spawn-protection=16
    sync-chunk-writes=true
    text-filtering-config=
    use-native-transport=true
    view-distance=12
    white-list=false

‍

  • MCDReforged 配置相关

    config.yml 如下

# The configuration file for MCDReforged
# See the document https://docs.mcdreforged.com/en/latest/configuration.html for more details

# =========================================
# |          Basic Configuration          |
# =========================================

# The language that MCDR will use to display information
# Examples: "en_us", "zh_cn"
language: zh_cn

# =========================================
# |          Server Configuration         |
# =========================================

# The working directory of the server process
# For default value "server", It's suggested to put all the files related to the server into the server/ directory
working_directory: server

# The command to start the server, it can be a string or a list of string
# (shell mode) If it's a string, the command will be executed as a shell command in a shell environment
# (exec mode) If it's a list of strings, the command will be executed directly
# Example command for starting a Minecraft server:
#   'java -Xms1G -Xmx2G -jar minecraft_server.jar nogui'                        (shell mode)
#   ['java', '-Xms1G', '-Xmx2G', '-jar', 'minecraft_server.jar', 'nogui']       (exec mode)
start_command: zulu21.36.17-ca-jre21.0.4-win_x64\bin\java.exe -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar fabric-server-launch.jar --nogui

# The handler to the specific way to parse the standard output text of the server and the correct command for server control
#   vanilla_handler    , for Vanilla / Carpet / Fabric server
#   beta18_handler     , for Vanilla server in legacy versions, e.g. < 1.7, or even beta1.8
#   bukkit_handler     , for Bukkit / Spigot server with Minecraft version below 1.14, and Paper / Mohist server in all version
#   bukkit14_handler   , for Bukkit / Spigot server with Minecraft version 1.14 and above
#   forge_handler      , for Forge server
#   cat_server_handler , for CatServer server
#   arclight_handler   , for Arclight server
#   bungeecord_handler , for Bungeecord server
#   waterfall_handler  , for Waterfall server
#   velocity_handler   , for Velocity server
handler: vanilla_handler

# The codec format to encode messages to stdin / decode messages from stdout of the server
# Leave it blank for MCDR to use the system encoding
# For vanilla Minecraft servers, you need to set "encoding" to utf8, since they always read stdin with UTF-8
# Examples: "utf8", "gbk"

# MCDR -> Server
encoding: utf8

# Server -> MCDR
decoding: utf8

# Minecraft RCON setting
# If enabled, plugins can use rcon to query commands from the server
rcon:
  enable: false
  address: 127.0.0.1
  port: 25575
  password: iuyang25575

# =========================================
# |          Plugin Configuration         |
# =========================================

# The list of directory path where MCDR will search for plugins to load
# Example: "path/to/my/plugin/directory"
plugin_directories:
- plugins

# The cache TTL of a fetched plugin catalogue meta
# MCDR will keep using the cached meta within its TTL for the following catalogue plugin operations
catalogue_meta_cache_ttl: 1200

# The timeout in seconds for a plugin catalogue meta fetch
catalogue_meta_fetch_timeout: 15

# Override the URL pointing to the "everything.json" or "everything_slim.json" file, which is used to fetch the plugin catalogue meta
# If it ends with ".gz" (gzip) or ".xz" (lzma), corresponding decompression operation will be applied
# If not provided, the url will be "https://api.mcdreforged.com/catalogue/everything_slim.json.xz"
catalogue_meta_url:

# Plugin file download override. Should be a valid python str.format string
# Available variables: {url}, {repos_owner}, {repos_name}, {tag}, {asset_name}, {asset_id}
# As an example, to use ghproxy, you can set it to: "https://mirror.ghproxy.com/{url}"
# If not provided, the origin GitHub asset download url will be directly used
plugin_download_url:

# The timeout in seconds for a plugin file download
plugin_download_timeout: 15

# Extra arguments passed to the pip subprocess for installing required python packages during plugin installation
# Example: "-i https://pypi.tuna.tsinghua.edu.cn/simple"
plugin_pip_install_extra_args:

# =========================================
# |           Misc Configuration          |
# =========================================

# If set to true, MCDR will detect if there's a new version every 24h
check_update: true

# Advance console switch powered by prompt-toolkit
# Set it to false if you need to redirect the stdin/stdout of MCDR
advanced_console: true

# HTTP(s) proxy setting for all external HTTP requests in MCDR
# It's suggested to set value for http_proxy and https_proxy at the same time
# Example values:
#   "http://127.0.0.1:1081"
#   "http://user:[email protected]:8888"
http_proxy:
https_proxy:

# MCDR collects anonymous telemetry data on some basic information about MCDR and the runtime environment, for the purpose of improving MCDR.
# The collected telemetry data do not contain any personal information, and are not sold or used for advertising purposes.
# If you simply don't want MCDR to report any telemetry data, you can disable it by setting the option value to false
telemetry: true

# ==========================================
# |         Advanced Configuration         |
# ==========================================

# When set to true, MCDR will not start the console thread for handling console command input
# Don't change it to true unless you know what you are doing
disable_console_thread: false

# When set to true, MCDR will remove all console font formatter codes before any message gets printed onto the console
disable_console_color: false

# A list of customizing info reactor classes to handle the info instance. The classes need to be subclasses of AbstractServerHandler
custom_handlers:

# A list of customizing info reactor classes to handle the info instance. The classes need to be subclasses of AbstractInfoReactor
custom_info_reactors:

# The required time interval in second for watchdog to consider the task executor thread is not responding. Set it to 0 to disable watchdog
watchdog_threshold: 10

# When set to true, MCDR will start a handler detection on MCDR startup for a while,
# to detect possible configuration mistake of the :ref:`configuration:handler` option
handler_detection: true

# =========================================
# |          Debug Configuration          |
# =========================================

# Debug mode switches
debug:
  all: false
  mcdr: false
  handler: false
  reactor: false
  plugin: false
  permission: false
  command: false
  task_executor: false
  telemetry: false

# =========================================
# |         Missing Configuration         |
# =========================================

# Options below were missing and set by MCDR with the default value
# Remember to check and update them as soon as possible

其中经过调优的 JVM 参数为

zulu21.36.17-ca-jre21.0.4-win_x64\bin\java.exe -Xms5G -Xmx5G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar fabric-server-launch.jar --nogui

维护日志

  • 2024/11 为 Carpet 与 TIS Carpet 模组启用如下功能并设置为默认值.
carpets true
allowListingFakePlayers true
commandLog true
tickCommandCarpetfied true
xpNoCooldown true
tiscmNetworkProtocol true
language zh_cn
commandTrackAI true
ctrlQCraftingFix true
optimizedTNTHighPriority true
fastRedstoneDust true
optimizedFastEntityMovement true
dustTrapdoorReintroduced true
commandPlayer true
antiCheatDisabled true
optimizedHardHitBoxEntityCollision true
hopperCounters true
fillUpdates false
commandSpawn true
yeetUpdateSuppressionCrash true
shulkerBoxCCEReintroduced true
creativeNoClip true
syncServerMsptMetricsData true
tickProfilerCommandsReintroduced true
commandTick true
commandDraw true
persistentParrots true
defaultLoggers mobcaps,tps
commandSpeedTest false
flippinCactus true
lagFreeSpawning true
carpetCommandPermissionLevel 2

‍

评论

评论已关闭