[1.12.2+Mod] MoeCraft :: 自由开放的科技向公益 Mod 服务器

特色&概述

screenshot-main

MoeCraft 创立于 2016 年六月,是一个非盈利的、旨在为热爱 MC 的玩家创造最优环境的公益 Minecraft 服务器

高水平

每份入服申请均由多名老玩家及操作员审核,最大限度确保新玩家素质达到要求

自由

MoeCraft 并无严格的规则来限制玩家的行为,MoeCraft 信任每一位玩家的自我约束能力,即,MoeCraft 开放了几乎一切能开放的功能给全部玩家。

你喜欢采矿镭射那高效直接的采矿手段吗?那就扔掉手中的钻头吧!
你喜欢核弹爆炸产生的快感吗?那就尽情享用吧!

本服服规即为:不做你认为不应该做的

平等

MoeCraft 旨在淡化 OP 对游戏的影响,我们认为,OP 亦为玩家。
同时,我们坚信,影响玩家的决策应该由玩家决定。

如何加入 MoeCraft

  1. 请打开 https://accounts.moecraft.net/index.php?m=home&c=apply&a=applyinvitecode 提交邀请码申请
  2. 我们会在最长 72 小时内审核您的申请。申请通过后您将收到邀请码邮件。您也可以手动查询申请状态
  3. 申请通过后,请您点击用户中心(https://accounts.moecraft.net/)上的注册按钮,输入信息完成注册。
  4. 完成注册后,按照提示输入 MC 玩家名确保可以登录游戏。
  5. 点击用户中心主页的“下载客户端”按钮下载 MoeCraft 客户端(根据你的系统选择客户端平台)
  6. 打开更新器,完成更新。(注意: 未来若有更新从这步开始操作)
  7. 按照更新器指示完成更新。
  8. 点击 Launcher,添加账号,账号类型选择 Authlib-Injector
  9. 输入你的用户中心邮箱和密码。
  10. 游戏选择“ MoeCraft ”或“ 1.12.2-Forge”,双击进入游戏.

注意: 若提示“无效的用户名”,则说明你操作错误,请关闭游戏,重新按照上面第六步操作。
注意: 若上述操作过程出现异常问题,请联系我们(见下文)

Mod 清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
ActuallyAdditions-1.12.2-r135.jar
ae2stuff-0.7.0.4-mc1.12.2.jar
AppleCore-mc1.12.2-3.1.3.jar
appliedenergistics2-rv5-stable-11.jar
Aroma1997Core-1.12.2-2.0.0.0.b155.jar
bdlib-1.14.3.12-mc1.12.2.jar
BiblioCraft[v2.4.5][MC1.12.2].jar
BrandonsCore-1.12-2.4.2.157-universal.jar
Chisel-MC1.12.2-0.2.0.31.jar
CodeChickenLib-1.12.2-3.1.9.344-universal.jar
CoFHCore-1.12.2-4.5.2.19-universal.jar
CoFHWorld-1.12.2-1.2.0.5-universal.jar
CompactSolars-1.12.2-5.0.17.340-universal.jar
CookingForBlockheads_1.12.2-6.4.40.jar
CraftTweaker2-1.12-4.1.9.jar
CustomSkinLoader_Forge-14.8.jar
Draconic-Evolution-1.12-2.3.11.290-universal.jar
extrautils2-1.12-1.7.6.jar
foamfix-0.9.9.1-1.12.2-law.jar
forestry_1.12.2-5.8.0.305.jar
Forgelin-1.7.4.jar
Hwyla-1.8.26-B41_1.12.2.jar
industrialcraft-2-2.8.83-ex112.jar
industrialforegoing-1.12.2-1.10.1-176.jar
ironchest-1.12.2-7.0.40.824.jar
jei_1.12.2-4.10.0.198.jar
Mantle-1.12-1.3.2.24.jar
mcjtylib-1.12-3.0.2.jar
Mekanism-1.12.2-9.4.13.349.jar
MekanismGenerators-1.12.2-9.4.13.349.jar
MTLib-3.0.5.jar
NBTEdit-0.7.jar
NotEnoughItems-1.12.2-2.4.1.233-universal.jar
OpenBlocks-1.12.2-1.7.6.jar
OpenComputers-MC1.12.2-1.7.2.67.jar
OpenModsLib-1.12.2-0.11.5.jar
Pam's+HarvestCraft+1.12.2u.jar
plustic-6.5.2.0.jar
RedstoneFlux-1.12-2.0.2.3-universal.jar
rftools-1.12-7.54.jar
roost-1.12-1.2.0.jar
SpiceOfLife-mc1.12-1.3.12.jar
TConstruct-1.12.2-2.10.1.84.jar
tesla-core-lib-1.12.2-1.0.14.jar
ThermalCultivation-1.12.2-0.3.0.7-universal.jar
ThermalDynamics-1.12.2-2.5.1.14-universal.jar
ThermalExpansion-1.12.2-5.5.0.29-universal.jar
ThermalFoundation-1.12.2-2.5.0.19-universal.jar
tinker_io-1.12.2-release+2.6.1.jar
TinkerToolLeveling-1.12.2-1.0.5.jar
UniDict-1.12.2-2.5c.jar
WanionLib-1.12.2-1.5.jar
woot-1.12.2-1.4.1.jar

联系我们

您可以通过以下方式联系我们:
电子邮件: admin$moecraft.net
用户中心的留言板(内容公开)

现已支持自助加入 MoeCraft Telegram 群,通过身份验证后即可加入
地址: https://t.me/MoeCraftBot

真正实现Minecraft高级登录(外置登录)的几种方案

通常把Minecraft服务器的登录方式分为高级登录(外置登录)和内置登录。高级登录的特点是用户的登录操作在启动器完成,启动器传递token给Minecraft客户端,客户端在加入服务器时直接将token传递给服务端完成身份验证。正版Minecraft登录就是典型的外置登录。而一般的非正版服务器(online-mode=false)则是身份验证仅在用户加入游戏后通过聊天框输入密码完成认证,此时用户已经加入了游戏,仅仅靠登录插件来限制用户进行其他操作。
而内置登录往往存在下列问题:

  1. 玩家在登录前已经进入了游戏。恶意用户可以借此进行假人压测攻击服务器
  2. 由于登录操作复杂并且退出游戏后就需要重新登录,玩家往往把密码设置得较为简单,留下安全隐患
  3. 对于Mod服务器来说,登录插件无法限制Mod行为。例如NEI仍然可以正常使用而不受登录插件限制

如果想根除上述问题,就必须要改换成高级登录。

实现

倘若从零开始自己写一套外部登录系统,意味着我们需要自己写服务端插件+验证端+客户端模组+启动器,还需要考虑兼容性、跨平台等问题。显然,这项工程十分浩大并且不划算。换个思路,mojang已经实现了自己的正版登录系统,我们能否将minecraft自带的正版登录系统为己所用呢?

方案1: 用hosts劫持域名解析

操作复杂度:高

修改操作系统的hosts文件:
(1.2.3.4为你的身份验证服务器IP地址)

1
2
1.2.3.4 sessionserver.mojang.com
1.2.3.4 api.mojang.com

然后,自己签署一个具有“所有颁发策略” “所以应用程序策略”的根证书,在MC服务器和身份验证服务器两边信任这个根证书。
接着,自己签发 *.mojang.com 的SSL证书,部署到身份验证服务器,对这两个域名使用自签发证书。
最后,自己按照此文档实现一套Yggdrasil服务端。
至于启动器方面也很简单,拿一套开源的启动器的代码(如BMCL,HMCL)然后批量替换上面给出的两个域名为你的身份验证服务器的域名,然后编译即可。
(用于客户端登录的身份验证服务器必须使用正规证书机构签发的证书,如let’s encrypt,当然你要是能拿到管理员权限悄悄导入根证书就不用管这句提示了)

方案2:用javaagent在运行时动态劫持身份验证地址

操作复杂度:中高

国内有大神已经实现了这种方案,并且最新的HMCL启动器原生支持使用这种方案实现客户端的高级登录。
点击此处查看,同样需要按照此文档实现一套Yggdrasil服务端
具体使用方法可以参考Blessing Studio上的文章

比起方案1,这个方案的优点是可以略过复杂的签发证书过程,并且API地址可以随便起,自己怎么爽怎么来(比如MoeCraft这样:https://accounts.moecraft.net/?s=API/Mc/Authlib&params=/)

方案3:使用他人编写Mod+插件+启动器解决

操作复杂度:低

参见SakuraLogin 樱花登录,可惜不支持 Sponge :(

附注

上文提到的《Yggdrasil服务端技术规范》中有一点需要注意:
以“用户部分-登录”为例,文档中的“请求格式”并 不是在用JSON描述这个请求POST内容的具体格式 ,而是真的POST了一个JSON文本过来!这点很误导人。
以PHP为例,使用 $_POST 无法获得任何数据,要获得POST提交的文本,应该使用 file_get_contents('php://input') 直接读取请求的原始数据

[Minecraft] WebLogin-连接到你的服务器来检查玩家是否可以登录

这是什么

当玩家尝试连接到服务器时,插件会自动向你填写的服务器POST数据

当服务器返回特定消息的时候,允许或者拒绝玩家登录(默认消息为<[AccessOK]>,其他消息将作为踢出玩家所显示的信息)

1.7.10以下版本未测试,如果能用的话请告知。已测试1.12.2

灵感来源于Beelogin,向其作者致谢

它有什么优势

1.更安全

比起传统的CrazyLogin之类的进游戏后再登录的插件,他更安全

众所周知,CL无法拦截MOD发送的数据包,比如NEI(没登录也能修改世界时间之类的)

2.更开放

WebLogin只是个服务端,一切验证行为都由目标网页端完成,WebLogin几乎不参与交互

比如MoeCraft设计的“按一下按钮登录”

3.功能强大

  • 它会向服务端提交 玩家名称,IP,UUID,时间 信息
  • 支持密码验证
  • 支持自定义消息(支持显示网页端给出的消息)
  • 当网页端服务器宕机时,可以设置是否允许玩家直接登录(此时可以使用Crazylogin等传统插件)