标签 教程 下的文章

如何在 FMCRAFT 中使用语音通话?

前置条件

装 simplevoicechat 插件。

支持 Fabric 和 Forge。

如果不会的话自己询问服务器的其他人。

下载 simplevoicechat 方法

一 启动器下载

二 自行下载https://pic.fmcraft.top/file/hjldg01o.jar

如何配置

进服,按 v 打开配置。

点击设置。

将 按键通话 设置为 音量触发。

不用的时候请关闭麦克风和扬声器。

同时,你也可以点击群组,创建一个群组,来邀请好友。

V1.0【FMCRAFT 繁忙的工艺】致新玩家.pdf

【FMCRAFT 繁忙的工艺】致新玩家

你好,世界!

欢迎阅读《【FMCRAFT 繁忙的工艺】致新玩家》入服指南。

希望这份指南能帮助到你。


服务器地址

mc.fmcraft.top


请务必阅读 FMCRAFT 我的世界服务器许可条款

当你第一次加入服务器,即代表你同意这些条款。

【FMCRAFT 繁忙的工艺】服务器许可条款 - 壹鲦热带鱼的小窝。


一 我如何加入服务器?

1. 拥有 PCL2 启动器

PCL 最新正式版永久下载地址丨龙腾猫跃丨爱发电:原版。

PCL 社区版:二次开发版,支持深色模式和更多功能。

2. 拥有游戏版本

下载 1.21.4 的原版。

3. 启动游戏 & 添加服务器 & 加入服务器

启动游戏后,单击多人游戏,单击添加服务器,服务器地址填 mc.fmcraft.top,添加即可,然后需要进入服务器。

其实

你可以在互联网上搜索到这些。


二 在游戏中注册一个账户

你需要按下 T 键打开聊天窗口,使用 /reg <Password> <Password> 注册一个属于你自己的账户。

<Password> 即密码。

例如,你想将密码设置为 114514a,指令为 /reg 114514a 114514a。

请务必记住你的密码。找回密码异常困难。


三 一些你可能需要学会的东西

登录游戏账户

使用 /l <Password>。

签到指令

为什么要签到?

可以领取钻石等好东西。

/signin click 直接签到。

/signin gui 打开签到菜单。

进入生存世界

当你第一次进入服务器的时候,你进入的为 minecraft:overworld 即默认世界,但是在 FMCRAFT 中,我们认为这个世界并不是生存世界。

你可以在主城附近找到一个命令方块(即墙壁旁边),按下压力板即可。

如何查看服务器个人积分

长按 Tab,自己玩家名旁边的黄色数字就是。

传送

/tpa <Player> 申请传送到目标玩家。

/tpahere <Player> 申请目标玩家传送到你的位置。

任何传送都需要经过目标玩家的同意。

当你收到一个传送申请时,系统会将此通知以消息的形式通知你,你需要按下 T 键后选择 同意 或 ​拒绝​。

未处理的传送将在 60 秒后过期。

你不可以传送到一个指定的坐标。

箱子锁

使用箱子锁,使你的箱子不会被破坏。

制作一个​橡木告示牌​,然后右键需要保护的箱子。

它同样适用于容器。

领地

使用领地,使你的领地不会被破坏。

为了篇幅简略,请你自行阅读:FMCRAFT Res领地插件使用教程 【官方 and 非官方】 - 壹鲦热带鱼的小窝(15180 字)。

家被炸了,我如何向管理员请求查看修改者

按 F3,获取世界名称和坐标(自己百度搜)。

通过平台私信发送给服务器管理员(建议服主)。

有些教程,这里不会提及

请善用 搜索引擎 和 AI。

只有服务器相关的问题,在服务器官方社群中 @ 管理员才可能被回复。


四 服务器社群

盒子IM 添加 DHEnry 为好友邀请你加入。

Tailchat Nightly 这个链接为邀请链接。

Discord 这个链接为邀请链接。

QQ群 这个链接同样为邀请链接,或可使用 327285832 进入。

更多社群,等你探索...

将 typecho 的博客文章下载至本地

如题,这是本人的亲身经历

不废话了,直接开车

走人

正文

下载 typecho_contents 数据库为 SQL 文件

typecho_contents 主要包含一些文章内容、附件等等

所以我们需要下载他
2026-01-21-23-33-11-image.png

如图是使用 phpmyadmin 来导出 typecho_contents 中的记录

导出后,你会得到一个 SQL 文件

你成功了

删除你的 SQL 文件没用的东西

首先,手动打开你的 SQL 文件,找到这个并把下面这部分的内容给复制出来

--
-- 转存表中的数据 `typecho_contents`
--
INSERT INTO `typecho_contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`, `views`, `stars`) VALUES

复制这里的东西

--
-- 转储表的索引
--

单独把他保存到一个 txt 文件中

然后打开 ./assets/0_clear_nottidy.py,介绍一下,清理 png jpg pdf jpeg 在第二字段所包含的行,其他保留

你需要手动填写两个内容:

  • input_file_path 设置为你的 txt 文件路径,注意一定要有 R,是用来转义的,要用双引号包裹路径
  • output_file_path 设置为你的导出后 txt 文件路径,就是处理后的文件路径,同上

然后使用 python 直接运行,即可完成操作

恭喜你,删除完成,你可以手动浏览一下

从 SQL 文件中分类保存文章至文件夹

打开 ./assets/1_download_md.py,还是简单介绍一下,读取文章名称和时间戳和文章内容,在你所指定的目录下,新建 YYYYMMDD - title 的文件夹,即时间戳对应的年月日加上对应的文章名称,然后在文件夹里面新建 title.md 作为文章的主内容

你需要手动填写:

  • INPUT_FILE:上一次导出的 txt 文件路径,同上

然后还是使用 python 直接运行,即可完成操作

警告:导出后的文件将被保存在 C:/Users/<USER_NAME>/ 下

你可以手动观察一下,你会发现导出的 md 特别变态,所以接下来,我们就要处理换行符的问题 + 图片资源

保存图像附件和处理换行

打开 ./assets/2_make_image_rn_to_n.py,还是简单介绍一下,从 md 里面读取 ![]() 的格式,将 () 下载保存到当前文件夹的 assets 目录里头,然后将 \\r\\n 替换为 \n(不理解这句话内容的自行上网搜索)

你需要手动填写:

  • TARGET_DIR:设置上一次导出文章目录的目录(?)
  • download_url:但是你只需要修改我的 http://www.tropical-fish.cn 部分,修改为你的下载域名,不要加斜杠!!!

然后,你懂的

然后,你就会发现,换行好了,图片资源也被正确保存在了对应的 assets 目录下

你好牛逼啊!!!

处理开头的小插曲

打开 ./assets/3_kill_markdown.py,还是简单减少一下,删除 <!--markdown--> ,没了

你需要手动填写:

  • TARGET_DIR:你上一次导出文章的的目录的目录(?)

然后,你懂的

然后,你完成了

处理完成

资源下载

20260211 - 将 typecho 的博客文章下载至本地 - assets.zip - huang1111网盘

推荐一个 Markdown 编辑器 —— $\text{MarkText}$

众所周知

在某个奇怪的版本更新后,openlist(alist)不再支持设置用户为管理员,但是,不代表我们不能设置管理员

正文

偶然之间,我翻 openlist 文件的时候,发现了一个文件
image.png
那么,我们是不是可以通过这个数据库来修改一个用户为管理员捏?

开始操作

警告:Windows 需要先安装 Python,Linux 需要使用 apt install python3 && apt install pip 来安装 Python

进入终端

然后 cd 到 data 文件夹的位置(如果 Windows 不在当前盘符需要先键入盘符,前面不需要加任何内容,进入这个盘符,才能 cd 进入这个盘符的目录)

然后进入 python ,使用 python 或 python3

然后,依次键入以下命令

import sqlite3
conn = sqlite3.connect('data.db')
cur = conn.cursor()

恭喜你,已经成功连接数据库

然后,开始设置管理员

cur.execute("UPDATE x\_users SET role = 2 WHERE username = 'DHEnry';")
conn.commit()

将 DHEnry 设置为需要设置管理员的用户名(不是用户 ID)

然后,你就修改成功了

引流

【科技补全76】火绒曝光超级流氓软件鲁大师、小鸟壁纸;英特尔前员工盗窃上万份机密文件;谷歌被FFmpeg开发者怒喷;安卓将不再禁止高级用户随意装软件;\_哔哩哔哩\_bilibili
这不是广告

新概念英语点读工具

Github 开源

luzhenhua/NCE-Flow: 新概念英语在线点读,点句即读、连续播放,支持 EN / EN+CN / CN。

介绍

新概念英语在线点读,点句即读、连续播放

优势何在?

  • ​句子级点读​:点击任意句子开始播放,自动高亮跟随
  • ​多语言视图​:EN / EN+CN / CN 三种显示模式
  • ​播放控制​:倍速调节、连读/点读切换、循环模式、断点续播
  • ​全局快捷键​:空格播放/暂停、方向键导航、音量控制
  • ​学习管理​:课程收藏、学习记录、进度追踪
  • ​现代界面​:Apple 风格、深浅色主题、响应式设计
  • ​零依赖​:纯静态文件,解压即用

部署方法

我们如何部署如此有用的项目呢?我们可以使用同样有用的雨云和宝塔面板,并且在宝塔里安装 Docker

先购买一台服务器,1 核心 1G 也能跑起来这个项目,然后安装宝塔面板

方法1:Docker 部署

适合不用二开的

docker run -d -p {PORT}:80 --name nce-flow --restart unless-stopped luzhenhua/nce-flow:latest

{PORT} 处填外网访问端口

在你的 ssh 终端中键入命令,然后放行防火墙,通过浏览器访问 http://<server_ip>:<port> 即可

如何放行防火墙?
image.png

方法2:Docker-Compose 部署

适合有一定技术基础的,有自定义配置需求的

git clone https://github.com/luzhenhua/NCE-Flow.git # 使用 git 拉取项目
cd NCE-Flow # 进入项目目录
docker-compose up -d # 根据 docker-compose.yml 启动文件,如果不能使用这条命令请使用 docker compose up -d

在 ssh 终端运行即可,依旧需要放行防火墙,端口默认 8000

方法3:Python 部署

你需要先使用 apt update && apt install python3 && apt install pip 安装环境

将项目的 Release 中的 .tar.gz 下载至服务器

可以在自己的电脑中,找到 Release 中的 .tar.gz ,右键,复制链接,然后在服务器中,使用下述命令拉取
{URL} 就是复制的 URL

wget {URL}

警告:文件约为 583MB

使用下述命令解压

tar -zxvf filename.tar.gz

使用 cd 命令进入目录
使用 python3 -m http.server 8000 运行项目
依旧需要放行防火墙

更多方法请在 Github 探索

如何使用

浏览器访问 http://server_ip:port

选择你想要的一册,然后选择一课,点击播放按钮即可

在线文件管理器

Github 开源

9001/copyparty: Portable file server with accelerated resumable uploads, dedup, WebDAV, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file, no deps
温馨提示,如果你要访问这个页面,你需要一台性能强劲的电脑

介绍

将几乎任何设备变成文件服务器,使用任何网络浏览器可以恢复上传/下载

  • 服务器只需要 Python(2 或 3),所有依赖项可选

部署方法

在你的电脑打开这个项目的 Release,右键最新的蓝色 copyparty-sfx.py

然后再 ssh 终端,使用 wget {URL} 下载这个 .py 文件

嗯嗯,非常 nice ,最后一步... 原神,启动!使用 python3 copyparty-sfx.py 运行这个 .py 文件

然后放行 3923 端口

浏览器访问 http://<server_ip>:3923 即可

如何使用

已经写的非常明显了
点击就是访问
虽然你可能看不懂英文
多用用就会了

前言

提到在线评测系统(Online Judge),很多人会想到用C++、Java 或 Python 等语言开发。但你可能不知道,​PHP 同样能够构建功能强大的在线评测系统​!今天我们就来聊聊基于 PHP 的 HUSTOJ ——一个成熟稳定的开源在线评测系统

HUSTOJ

hustoj 由 华中科技大学(实际上只有 zhblue 一个人和喜欢 pr 的网友) 开发,前后端完全使用 php 开发,判题机是 docker ,不用担心安全问题,这点为 oi 教学系统提供了很好的解决方案

主要优势:

  • 开源免费
  • 允许商用(只需要开放源代码)
  • 海量题库(约 $x(x \geq 5 \times 10^3)$ 道题目可以下载)
  • 支持多种语言提交
  • 社区活跃
  • 易于二开(直接修改文件即可,不需要重新 build)

HUSTOJ 相关资料

QQ 群:23361372
wiki:代码的那些事 | 程序员回忆录
github:zhblue/hustoj: Popular Simple Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 简单实用的开源OJ系统
题库:TK题库

正文

我们如何部署如此强势的 online judge 呢?
我们可以使用同样强势的的 雨云 和 宝塔面板
温馨提示:1-1 也可以部署 hustoj
购买完服务器后,需要安装宝塔面板
操作系统选择 ubuntu 22.04

开始部署

创建数据库

登录上你的 宝塔面板,左侧数据库,创建数据库,数据库名称 jol ,进行创建
image.png

运行安装脚本

先登录上你的 宝塔面板 ,进入左侧终端,执行两条命令

wget http://dl.hustoj.com/install-ubuntu22.04-bt.sh # 拉取安装脚本
bash install-ubuntu22.04-bt.sh # 运行安装脚本

这时,他会要求你输入数据库用户名和密码,请依次键入你创建数据库的时候的用户名和密码
image.png

随后便开始安装了...

期间可能会多次需要你按下 enter 键

请不要使用 Windows + V 剪切板功能
请保持 bt 窗口活跃
安装速度结合网络宽带而定

需要按 enter 大杂烩:
image.png

创建站点并配置

宝塔左边网站,php,创建网站,域名http://<server_ip>:<port>,根目录/home/judge/src/web
image.png

然后设置这个,左边网站目录,关闭放跨站攻击
image.png

然后,左边软件商店,搜索 php ,设置安装的 php,左边禁用函数,取消 putenv 函数的禁用
image.png

然后,使用浏览器访问你的 oj ,恭喜你,访问成功!
image.png

简单使用 HUSTOJ

注册管理员账户

右上角注册,用户名一定要写admin,其他随意,注册即可

添加一道题目

后台管理 URL 是 http://<server_ip>:<port>/admin/

左侧【问题-管理】【问题-添加】

<span class='md'>
</span>

这是 markdown 的标记,题面需要在里面写,支持 latex、katex

添加即可

维护

系统配置

/home/judge/src/web/include/db_info.inc.php 有注释

其他你可能需要知道的东西

/home/judge/src/web 是站点文件
image.png


感谢阅读

前文

假设你是一个运维小白,你不会使用 mysql 命令管理数据库,你只会使用 phpmyadmin ,但是,如果你的服务器线路差了那么一点点,那么你的访问 phpmyadmin 的速度跟你从百度网盘下载文件的速度差不多,非常头疼,这里有个解决方案。

正文

观察你的 phpmyadmin

当你进入宝塔,选择数据库,选择 mysql ,进入 phpmyadmin
image.png
image.png

你会发现,你的 phpmyadmin 主页下面有一个 warn 警告
image.png

为什么无法访问呢...

深度思考

其实你可以买一台更好的服务器
如果你有一点运维经验,你应该会知道【无法访问】可能有以下几种情况

  • 文件/目录权限
  • PHP 配置
  • 会话配置

当然我觉得你可能不知道后面两个是什么意思,但是如果是用宝塔安装的 phpmyadmin ,那么你有极大的可能性,是因为文件/目录权限

实操

先进入 bt 的文件管理,进入 phpmyadmin 提示的无法访问的目录,不要进入 /tmp,应该会有以下文件

image.png

解决问题已经很简单了,右键 tmp 文件夹,点击权限,全勾 + root ,然后确定
image.png

你勾和输入权限达到的效果是一样的

然后,当你重新进入 phpmyadmin ,你会发现,这个 warn 没了,速度也似乎变快了

...

感谢阅读

请问

你是否厌倦了在线文件传输工具的缺点?速度慢?限制文件大小?限制访问日期?
那么,我们就来自己搭建一个在线文件传输工具!

Filecodebox

什么是 FileCodeBox?

FileCodeBox 是一个开箱即用的文件分享工具,具有以下特色:

  • 快速部署​:Docker 一键部署
  • ​大文件支持​:轻松分享大型文件
  • ​安全可靠​:密码保护和过期时间
  • 简洁界面​:用户友好的操作界面
  • 数据统计​:下载次数和流量监控

正文

购买服务器

推荐使用雨云搭建 filecodebox ,绝对性成功

注册后,实名认证,然后购买一台服务器
有备案的买国内,没备案的买海外
操作系统建议选择 ubuntu 22.04
filecodebox 非常轻量,1-1 也能运行

安装宝塔面板

打开雨云自带的 ssh 连接工具,键入账密,使用下列命令安装宝塔面板

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

在询问处键入 Y 以确认安装
image.png
安装速度取决于服务器带宽,大约为 2 分钟

注意,期间不能关于浏览器窗口和 ssh 窗口,不然会出现玄学事件

安装完成如图:

image.png

如何维护宝塔面板?
使用 bt 命令

使用宝塔配置服务器环境

使用浏览器打开 ssh 中显示的 url

如出现下图页面,请点击【高级】-【继续访问】
image.png

输入连接信息
image.png

滑到最后,同意条款,进入面板
image.png

到这一步,你可以选择绑定账号,也可以选择跳过
image.png

到初始化这一步,你直接点击 lnmp 的安装按钮即可
image.png

然后点击左侧 docker ,立即安装
image.png

一定要选择如下方式安装
image.png

你可以点击左上角服务器 ip 的小气泡查看安装进度

安装 filecodebox

安装完成后,依旧是 docker,应用商店,搜索文件快递柜,找到对应的,点击安装
image.png
这里的安装配置一般不用改

等待 1-3 分钟

可在 docker 应用商店的 已安装 里面查看安装进度

如图所示即为安装成功
image.png

然后宝塔左边点击【安全】,【添加端口规则】,【端口】填12345,确定
image.png

体验 filecodebox

浏览器访问 http://服务器ip:12345

如图即为一切都正常
image.png

后台管理

后台地址为 http://服务器ip:12345/#/admin/

密码默认为 FileCodeBox2023

一定要先修改密码

image.png

视频

https://www.bilibili.com/video/BV17HWnzAEWx/?share_source=copy_web&vd_source=c2640429ffb126a929d74212d5168b1f

注意

文稿与视频实际内容可能存在出入,以视频为准

关于评论区的一些评论

很少能看到这么正确的科普视频,居然用的是devcpp

本来是想用VSCode的,但是我当时忘记了就用Devc++

都是基本功,还算可以。不过工程上极度不推荐用这个万能头文件和using namespace std 虽然大概率你是打算法竞赛的,不太可能会重视这种东西。

是OI

文稿

1. 变量初始化之谜

cpp

#include <iostream>
using namespace std;

int main() {
    int x;
    cout << "未初始化的x = " << x << endl;
    return 0;
}

​功能​:演示未初始化局部变量的行为
你以为是确定性的0吗?
实际上是随机垃圾值的!
​原理​:局部变量在栈上分配,不会自动初始化,值是之前使用该内存的残留数据

2. 浮点数精度陷阱

cpp

#include <iostream>
using namespace std;

int main() {
    double a = 0.1;
    double b = 0.2;
    double c = 0.3;
    cout << "0.1 + 0.2 == 0.3 ? " << (a + b == c) << endl;
    cout << "实际值: " << a + b << endl;
    return 0;
}

​功能​:验证浮点数精度问题
你以为是精确相等的吗?
实际上是不相等的!
​原理​:浮点数在二进制中无法精确表示0.1、0.2这样的十进制小数,存在精度误差

3. 数组越界不报错

cpp

#include <iostream>
using namespace std;

int main() {
    int arr[3] = {1, 2, 3};
    cout << "arr[5] = " << arr[5] << endl;
    cout << "程序还在运行!" << endl;
    return 0;
}

​功能​:测试数组越界访问的行为
你以为是会崩溃的吗?
实际上是可能正常输出的!
​原理​:C++不检查数组边界,越界访问是未定义行为,可能读到随机内存值而不崩溃

4. 布尔值的算术运算

cpp

#include <iostream>
using namespace std;

int main() {
    bool b = true;
    cout << "b + 5 = " << (b + 5) << endl;
    cout << "b * 10 = " << (b * 10) << endl;
    return 0;
}

​功能​:展示bool类型在算术运算中的行为
你以为是true/false的吗?
实际上是1/0参与运算的!
​原理​:bool在算术运算中会隐式转换为int,true为1,false为0

5. 自增运算符的迷惑行为

cpp

#include <iostream>
using namespace std;

int main() {
    int i = 5;
    int j = i++ + ++i;
    cout << "j = " << j << endl;
    return 0;
}

​功能​:演示序列点问题
你以为是确定结果的吗?
实际上是编译器随缘的!
​原理​:同一表达式中对同一变量多次修改是未定义行为,结果取决于编译器实现

6. 空结构体的大小

cpp

#include <iostream>
using namespace std;

struct Empty {};

int main() {
    cout << "空结构体大小: " << sizeof(Empty) << endl;
    return 0;
}

​功能​:探究空结构体的内存占用
你以为是0字节的吗?
实际上是1字节的!
​原理​:为了确保每个对象都有唯一地址,空结构体被分配1字节大小

7. const变量的"不可修改"

cpp

#include <iostream>
using namespace std;

int main() {
    const int x = 10;
    int* p = const_cast<int*>(&x);
    *p = 20;
    cout << "x = " << x << endl;
    cout << "*p = " << *p << endl;
    return 0;
}

​功能​:测试const_cast的能力和限制
你以为是真正不可变的吗?
实际上是可以绕过的!
​原理​:const_cast可以移除const属性,但修改const对象是未定义行为