本篇讲解的是Java版
这里是我的开服/客户端的自定义内容
我有资深的强迫症,任何东西必须要在官网下载

相关链接

原版

Minecraft

想要安装原汁原味的原版Minecraft客户端,下面是官方寻找方法
https://launchermeta.mojang.com/mc/game/version_manifest.json

https://minecraft.fandom.com/zh/wiki/Version_manifest.json version_manifest.json是一个来自launchermeta.mojang.com的包含Java版版本记录列表的文件。它为启动器列出了可用的Minecraft版本。 如果一个版本不在这个列表中,则被认为是在启动器中不可用,如Java版1.14.3 - Combat Test。 这个列表将在每次Mojang发布新版Java版时更新。

所以在version_manifest.json中可以找到所有Java版本
最新版本会标记在latest字段下

  1. {
  2. "latest": {
  3. "release": "1.18.2",
  4. "snapshot": "1.19-rc1"
  5. }
  6. }

版本列表会列在versions字段中

  1. {
  2. "versions": [
  3. {
  4. "id": "1.19-rc1",
  5. "type": "snapshot",
  6. "url": "https://launchermeta.mojang.com/v1/packages/df8cf10ff16ae0e5feada63e989bf8574d713dc2/1.19-rc1.json",
  7. "time": "2022-06-02T12:17:17+00:00",
  8. "releaseTime": "2022-06-02T12:12:52+00:00"
  9. },
  10. {
  11. "id": "1.19-pre5",
  12. "type": "snapshot",
  13. "url": "https://launchermeta.mojang.com/v1/packages/96d71ecaffd64ae81c33e2c4e14623ec0a5a4fa9/1.19-pre5.json",
  14. "time": "2022-06-02T12:01:36+00:00",
  15. "releaseTime": "2022-06-01T10:56:23+00:00"
  16. },
  17. {
  18. "id": "1.19-pre4",
  19. "type": "snapshot",
  20. "url": "https://launchermeta.mojang.com/v1/packages/51ad6771b562563ec43eb091656a36a3f1bbdd05/1.19-pre4.json",
  21. "time": "2022-06-02T12:01:36+00:00",
  22. "releaseTime": "2022-05-30T14:43:01+00:00"
  23. }
  24. ]
  25. }

每个版本会在url字段中列出版本的详细清单
1.19-rc1举例(https://launchermeta.mojang.com/v1/packages/df8cf10ff16ae0e5feada63e989bf8574d713dc2/1.19-rc1.json)
其中包含了启动器所需要的信息,包括启动参数、启动核心、依赖程序包等等
核心的下载链接就在downloads字段中

  1. {
  2. "downloads": {
  3. "client": {
  4. "sha1": "3d459711d39ba6b7867cc84f443e0bfdcfd4dde0",
  5. "size": 21462888,
  6. "url": "https://launcher.mojang.com/v1/objects/3d459711d39ba6b7867cc84f443e0bfdcfd4dde0/client.jar"
  7. },
  8. "client_mappings": {
  9. "sha1": "36362e4f467b3b4209192eb7dcf990ee94245ad9",
  10. "size": 7123832,
  11. "url": "https://launcher.mojang.com/v1/objects/36362e4f467b3b4209192eb7dcf990ee94245ad9/client.txt"
  12. },
  13. "server": {
  14. "sha1": "76ebdba03954e5a2185fb7a1d3a25096eb6bd195",
  15. "size": 45539835,
  16. "url": "https://launcher.mojang.com/v1/objects/76ebdba03954e5a2185fb7a1d3a25096eb6bd195/server.jar"
  17. },
  18. "server_mappings": {
  19. "sha1": "84cf610e282cef1d158df2113902b403759260d8",
  20. "size": 5552032,
  21. "url": "https://launcher.mojang.com/v1/objects/84cf610e282cef1d158df2113902b403759260d8/server.txt"
  22. }
  23. }
  24. }

Mod加载器版本

MinecraftForge

这是我在1.14-使用的Mod Loader。

安装

安装MinecraftForge需要先安装原版Minecraft
下载对应版本的Installer,双击打开;选择Client,并选择.minecraft目录以安装客户端;选择Server并选择任何一个目录以安装服务端。
如果说需要在没有图形界面的情况下安装服务端,可以直接添加程序参数-installServer

  1. java -jar ./forge-1.18.2-40.0.32-installer.jar -installServer

关于Apache Log4j2漏洞

该框架已修复Apache Log4j2漏洞

FabricMc

这是我在1.14+使用的Mod Loader

介绍

相对于Forge,这个加载器就有很多优势

  • 它有着自己专门的API,跨版本只需Mod作者很小的改动即可
  • 更新非常迅速,哪怕是测试版,顶多两天,也会马上更新出来
  • 有着自己的混淆映射表yarn
  • 有着自己的wiki,对于新人开发者比较友好
  • 轻松支持其他JVM语言,如KotlinScala

    安装

    安装FabricMc需要先安装原版Minecraft
    安装方式也比较灵活,不需要像Forge那样到处乱翻版本,更不需要和广告斗智斗勇,只需一个安装器即可解决
    在Windows下直接下载exe安装器,直接双击运行就有简体中文的界面
    如果需要使用Java跨平台的安装器,可以下载universal jar
    关于这个jar文件安装器,它可以在没有图形界面的情况下直接安装客户端或服务器
    它有以下参数
参数名 参数介绍 参数类型 默认值
help 显示帮助文档 Void 空值
client 安装客户端 Void 空值
server 安装服务端 Void 空值

Client分支
参数名 参数介绍 参数类型 默认值
-dir 安装目录 String *必须指定
-mcversion 我的世界版本 String $当前MC最新版
-loader Fabric加载器版本 String $当前加载器最新版
-launcher 启动方式 Enum
- win32
- microsoft_store
*必须指定
  1. java -jar ./fabric-installer-0.10.2.jar client -dir "./game/.minecraft/" -mcversion "1.18.2" -loader "0.13.3" -launcher "win32"

Server分支
参数名 参数介绍 参数类型 默认值
-dir 安装目录 String $当前目录
-mcversion 我的世界版本 String $当前MC最新版
-loader Fabric加载器版本 String $当前加载器最新版
-downloadMinecraft 需要下载MC服务端 Void 空值
  1. java -jar ./fabric-installer-0.10.2.jar server -dir "./" -mcversion "1.18.2" -loader "0.13.3" -downloadMinecraft

各类API

很多Fabric Mod都使用了官方提供的API,建议把这些全装上,直接放入mods文件夹接口

fabric-api

Essential hooks for modding with Fabric.

安装链接
  • CurseForge
  • GitHub Releases
  • Modrinth

    fabric-language-kotlin

    Fabric language module for Kotlin.

    安装链接
  • CurseForge

    fabric-language-scala

    Fabric language module for Scala.

    安装链接
  • CurseForge

    Bukkit服务端

    Bukkit是一个很方便的服务端插件开发API,插件只能改变服务器与客户端的交互,改变不了客户端的内容。例如,你不能在用户的客户端的渲自定义染位置上显示伤害,取而代之的是你可以生成一个只显示名字的盔甲架,名字改为伤害的数值,可以产生一种渲染字符在屏幕上的错觉
    正因为Bukkit服务端不会修改客户端的内容,Bukkit服务端允许客户端使用随意搭配的mod进入服务器,这是大多数玩家喜欢的。
    Bukkit服务端的各种管理系统使得它们的插件要比mod端兼容性更好,举例说明:Bukkit拥有强大的API,用户甚至很少和Minecraft底层代码打交道

    CraftBukkit

    CraftBukkit团队是Bukkit的创始者,它们把Minecraft的代码反混淆,然后做成了简单且强大的BukkitAPI供开发者们使用
    该服务端因为团队解散,也就停止更新
    几位CraftBukkit成员甚至被Mojang拉去当Minecraft的开发者

    Spigot

    Spigot是CraftBukkit的分支,继承了CraftBukkit的工作,优化了CraftBukkit的很多缺点,至今仍在高效更新
    下载:https://hub.spigotmc.org/jenkins/job/BuildTools/ (构建工具)
    SpigotMC不提供直接服务端的下载连接,需要自己手动使用构建工具编译Linux行为
    具体命令是

    1. <java17.exe> -jar BuildTools.jar --rev 1.18.1

    Paper

    Paper是Spigot的分支,和Spigot同步更新
    改动了很多Minecraft和Spigot的内部代码,兼容Spigot,提升了很高的性能,甚至修复了BugJump的一些bug(特性),例如破基岩,是主流的服务端
    下载:https://papermc.io/downloads

    Proxy服务端

    代理服务端一般是多个子服的时候使用的,它允许将玩家在多个子服间传送。Proxy服务端的局限性会更高,它不仅不能修改客户端的内容,连游戏性交互也不能。例如,它不能设置玩家的物品栏,因为它本身就不是一个正常的服务器,它没有世界,也没有实体这些概念,它顶多给玩家发送消息,显示标题、计分板等等
    因为不处理正常服务器的内容,Proxy服务端的占用非常低

    BungeeCord

    BungeeCord是最经典的Proxy服务端
    它是SpigotMC团队的作品,所以内容很像Spigot,但它除了长得像Bukkit、可以与Bukkit交互,其余没有任何关系
    BungeeCordAPI也是略逊于BukkitAPI 但是依然很强大的API
    下载:https://ci.md-5.net/job/BungeeCord/

    WaterFall

    WaterFall是BungeeCord的分支,由PaperMC创作,像paper一样,WaterFall也优化了BungeeCord的性能,也可以兼容BungeeCord
    下载:https://papermc.io/downloads#Waterfall