<?xml version='1.0' encoding='utf-8'?>
<rss version="2.0"><channel><title>huangyuhui.net</title><link>https://www.huangyuhui.net/</link><description>个人博客</description><language>zh-CN</language><item><title>服务端自动更新整合包制作教程</title><link>https://www.huangyuhui.net/index.php/2019/11/12/118/</link><guid>https://www.huangyuhui.net/index.php/2019/11/12/118/</guid><pubDate>Tue, 12 Nov 2019 11:50:12 +0800</pubDate><description>HMCL 允许服务器管理员借助服务端自动更新整合包来实现自动分发整合包更新，这将大大方便有需要频繁更新游戏客户端 Mod、配置等信息的服务器管理员。HMCL 需要服务器管理员额外提供一个 HTTP 服务器（只需要能提供静态文件服务，比如 Apache 和 Nginx 皆可）来提供检查整合包更新并允许 HMCL 下载更新文件。 第一步：导出整合包 在 HMCL 中右键做好的客户端版本，选择导出整合包： 选择导出为服务器自动更新整合包： 填写整合包信息，整合包下载链接前缀如何填写请看下文，你也可以先填别的（必须是个链接，比如 http://www.baidu.com），该项在整合包导出后可以修改 </description></item><item><title>Authlib-Injector 服务器设置指南</title><link>https://www.huangyuhui.net/index.php/2019/09/09/109/</link><guid>https://www.huangyuhui.net/index.php/2019/09/09/109/</guid><pubDate>Mon, 09 Sep 2019 18:31:58 +0800</pubDate><description>背景 使用 authlib-injector 认证的服主可以通过本教程提供的方法使 HMCL 默认在打开时弹窗要求创建对应认证服务器的账户。 方法 在 HMCL 启动器同级目录下创建 authlib-injectors.json 文件，此时文件夹目录结构如下图所示： （注意，请确保打包后的整合包不包含 hmcl.json 文件，否则无法生效） authlib-injectors.json 文件的示例如下 { "urls": [ "https://example.yggdrasil.yushi.moe/" ] } 你只需要修改 urls 的内容成你的服务器 url 即可。</description></item><item><title>整合包自带 Java 教程</title><link>https://www.huangyuhui.net/index.php/2019/01/27/83/</link><guid>https://www.huangyuhui.net/index.php/2019/01/27/83/</guid><pubDate>Sun, 27 Jan 2019 19:11:50 +0800</pubDate><description>背景 想必有些服务器主为此头疼了许久。由于玩家的电脑环境多变，甚至可能仍然有安装着 Java 7 的电脑而无法启动 1.12.2 以上的游戏、或者 Mod 客户端。因此服务器主希望能在整合包中自带一个 Java 运行时（或者叫 JRE），从而取代电脑自带的 JVM。接下来本文将介绍两种方法。 方法一：创建快捷方式 对于低于 HMCL 3.2.119 的版本，需要采用方法一。 目录结构 首先我们假设整合包根文件夹是 tutorial（这个文件夹名字可以取别的），该文件夹内应该包含如下的文件： 其中，.minecraft 是 Minecraft 文件夹，jre-x64 是你的 Java 运行时，我</description></item><item><title>整合包制作指南</title><link>https://www.huangyuhui.net/index.php/2018/09/16/68/</link><guid>https://www.huangyuhui.net/index.php/2018/09/16/68/</guid><pubDate>Sun, 16 Sep 2018 14:03:02 +0800</pubDate><description /></item><item><title>数据包制作指南</title><link>https://www.huangyuhui.net/index.php/2018/09/16/66/</link><guid>https://www.huangyuhui.net/index.php/2018/09/16/66/</guid><pubDate>Sun, 16 Sep 2018 13:48:02 +0800</pubDate><description>数据包制作指南 本指南只介绍如何制作一个 HMCL 可导入的数据包压缩包。 建议 始终建议你使用多数据包格式制作数据包压缩包，因为 HMCL 会删除重名的数据包，因此可以借此完成更新功能，只要直接导入新的多数据包格式的压缩包就可以完成更新你制作的数据包。 多数据包 如果你的数据包被分离成多个部分供玩家选择是否启用，或者需要自带资源包，那么你需要制作多数据包格式的压缩包。 多数据包文件（只能是一个.zip文件）格式例子如下： crafting++.zip \ * datapacks |\ | * block_sky_domain (一个合法的数据包) | * crafting_machine |</description></item><item><title>简单的C语言解释运行器实现（三）—— 定义语法</title><link>https://www.huangyuhui.net/index.php/2018/06/15/40/</link><guid>https://www.huangyuhui.net/index.php/2018/06/15/40/</guid><pubDate>Fri, 15 Jun 2018 11:19:30 +0800</pubDate><description>好的，词法分析就结束了，我们开始语法分析吧。 首先为了简化问题，我们对C语言作出如下限制： 没有switch语句 不支持函数指针 没有结构体、联合体 以及一些其他的语句 预处理器将在第七篇中讲到。编译阶段将不会有预处理指令（#include等）。 我们要处理的语法将在下面列出。 文法 定义文法 首先我们定义一条文法是这样的： NAME ::= SOME_THING 这表示我们定义了一条文法，代号是NAME，可以匹配SOME_THING，比如我们定义 D ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 表示我们定义八进制数位，可匹配0~7所有的数字，其中竖线|表示或的意思，就</description></item><item><title>简单的C语言解释运行器实现（一）—— 词法分析</title><link>https://www.huangyuhui.net/index.php/2018/06/14/31/</link><guid>https://www.huangyuhui.net/index.php/2018/06/14/31/</guid><pubDate>Thu, 14 Jun 2018 17:45:37 +0800</pubDate><description>引入 编译器的构造想必度过编译原理的同学已经了解了。大概分为 预处理器 -&gt; 编译器 -&gt; 汇编器 -&gt; 链接器，4个阶段。 编译器又可以分为词法分析 -&gt; 语法分析 -&gt; 语义分析 -&gt; 中间代码生成 -&gt; 代码优化 -&gt;生成目标代码等阶段。 阶段 功能 预处理器 处理宏定义，如#include表示引入其他源文件的代码，#define表示定义宏，对代码片进行一个替换，#if系列命令可以控制预处理器的功能做到面向不同环境的代码等等。 编译器 生成中间代码，生成中间代码的意义是方便该阶段以后的所有阶段共用一个后端，比如LLVM，这样不同的语言能共享同一套优化系统 词法分析 将高级语言代码文本切割</description></item></channel></rss>