BG4JTS

人生无常,ham吃香肠

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

为了练习python的数据处理和玩梗(主要是玩梗

我根据Unicode字符数据库(http://www.unicode.org/Public/latest/ucd/Unihan.zip

我整理了声调不同的

  • he 文件:219 个汉字
  • yi 文件:804 个汉字
  • wei 文件:408 个汉字

所有就有了
$$
219×804×408=71,839,008
$$
种何意为组合 真是何意为啊

把这个分成了7184个txt使用懒加载做了个网页

何意为

引子

这个模组叫just Music 但一点也不just 其实是以为modid不好改(悲

  • 此mod为服务端打造 不建议在单人中使用
    {: .prompt-warning }
    可点击→→”文章内容”进行快速跳转

使用教程

添加了3个指令

  • /music
  • /tools
  • /musicconfig

/music

music有3个子指令分别是

  • about (op>=0)
  • disc (op>=0)
  • help (op>=0)

abuot & help

没啥好说的~

disc

此命令用于获取唱片用法如下

1
/music disc [唱片名]

此命令获取的唱片均为自定义唱片

  • 素材来源为网络 如有侵权请与我联系会及时删除
    {: .prompt-warning }

获取的唱片可在唱片机里播放
获取一个唱片默认消耗一个钻石 服务器后台可在📁config->just_music.json进行配置

1
2
3
"discCostItem": "minecraft:diamond",

"discCostCount": 1

分别是物品id 和所需物品数量

-添加mod后首次运行服务器just_music.json才会生成
{: .prompt-tip }

/tools

/tools有7个子指令分别是

  • demand (op>=0)
  • give (op>=0)
  • help (op>=0)
  • kill (op>=0)
  • ljt (op>=0)
  • message (op>=0)
  • tp (op>=0)

这是一个很强大的命令

demand

语法如下

1
/tools demand <玩家> <物品1> <数量1> [物品2] [数量2]... 

demand顾名思义索取的意思<玩家>是被索取的对象运行此指令<玩家>会弹出是否同意的消息 如果同意就会将背包中的相关物品转移至执行者的背包
还有更简洁的语法

1
/tools demand <玩家>

如果玩家同意了请求就会打开一个箱子界面 玩家将想给予的物品放入箱子 关闭界面后自动发送

give

语法如下

1
/tools give <玩家> 

打开一个箱子界面 玩家将想给予的物品放入箱子 关闭界面后自动发送
收到give的玩家可以选择是否接受 如果选择no那物品原路退回

help

没啥好说的~

kill

语法如下

1
/tools kill

自杀指令,使用后3s自杀

ljt

语法如下

1
/tools ljt

使用它打开垃圾桶
可以把不要的东西放入垃圾桶也可以从垃圾桶中拿东西
垃圾桶全服共享 每5min清空一次

message

语法如下

1
/tools message <玩家> <消息> [物品1] [数量1] [物品2] [数量2]...

是个强大的指令与give类似 注意!!<消息>需要使用英文引号(””)包裹

亮点:可以发送离线消息 能对离线的玩家使用/tools message
当玩家再一次上线时提示

tp

语法如下

1
/tools tp <玩家>

对玩家发送tp请求 同意后传送至玩家处

/musicconfig

musicconfig

语法如下

1
/musicconfig

这对普通玩家没啥用 用于查看配置

How to use it

我是玩家

玩家几乎无需操作但是腐竹有些麻烦(QwQ)
玩家选择服务器点击”编辑”按钮 “

服务器资源包”选择”询问”或”启用”

服务器

进入服务器中选择”继续”

服务器a

你的配置完了 没错就是这么简单

我是腐竹

服主的配置相对较难

依赖

  • fabric_api_version=0.141.2+1.21.11
  • minecraft_version=1.21.11

只要是适用于minecraft1.21.11的fabric_api与fabric理论上都能用

1.添加mod

将mod添加至mod文件夹重启一次服务器

2.设置server.properties

打开server.properties
设置

1
2
3
4
5
6
7
8
9
10
require-resource-pack=true

resource-pack=https\://gitee.com/dfddcv/music_packs/raw/master/data.zip

resource-pack-id=

resource-pack-prompt="建议你安装它 否则你将无法在服务器内使用[哈基米唱片]"

resource-pack-sha1=6aa4ad153ddbf432cf140c7fa48a039d81391795

这样设置 这是自定义唱片的资源包挂载到gitee.com方便国内访问

3.添加数据包

打开📁world->datapacks

将数据包music_datapack.zip放入其中这是自定义唱片的数据包
再次重启服务器

4.更多配置

打开📁config->just_music.json这是mod的配置文件

默认配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{

"enableToolsCommand": true,

"enableKillSubCommand": true,

"enableDemandSubCommand": true,

"enableGiveSubCommand": true,

"enableLjtSubCommand": true,

"enableMessageSubCommand": true,

"enableTpSubCommand": true,

"enableSetToolsSubCommand": false,

"discCostItem": "minecraft:diamond",

"discCostCount": 1
}

enable…Command是控制是否开启命令

discCostItem discCostCount

分别是兑换唱片所需物品id 和所需物品数量


–THE END–


支持我

起因

最近心血来潮想学一门新编程语言 于是我去问了D老师(DeepSeek)

示例
JS好像是一个不错的选择,所以我想先从入门开始学起

学习计划

一下是他给出的建议:

他列出来四个阶段


阶段1:基础语法与DOM操作(周末×4)

  • 目标:掌握变量、函数、条件/循环语句、DOM操作、事件绑定。

阶段2:异步编程与API调用(周末×3)

  • 目标:掌握Promise、async/await、Fetch API。

阶段3:框架与工具(周末×3)

  • 目标:掌握React或Vue框架基础,熟悉npm/webpack。

阶段4:项目实战(周末×4)

  • 目标:完成2-3个完整项目(如个人博客、天气应用)。

开始

第1周:变量、数据类型与基础语法

学习目标

  1. 配置开发环境,安装依赖包。

  2. 理解变量声明(let/const)与作用域。

  3. 掌握基本数据类型(字符串、数字、布尔值、数组、对象)。

  4. 熟悉运算符(算术、比较、逻辑)和类型转换。

GO
GO
GO

1.开发环境

安装vscood 详见菜鸟教程

然后安装node.js 详见教程

2.变量

推荐一个网站javascript.info
在网站的变量(Variables)一节中,有详细的介绍
我们可以用let 或老版本中的var来声明变量

line-numbers
1
2
3
4
5
6
// 声明变量
let message;

message = 'Hello!';

alert(message);

// 用let声明了变量 “message” 在老的版本中是 var

// 使用了赋值语句,将字符串 Hello! 赋给变量 message

// 显示 “message”变量

line-numbers
1
2
3
4
5
6
7
8
9
// 声明和赋值可以合并在一起

let name = 'John';

alert(name);// 显示 "John"

name = 'Pete'; // 此处修改了变量的值,从 John 变成了 Pete

alert(name); // 显示 "Pete"

JavaScript 中变量名有两个限制:

1.名称必须只包含字母、数字或符号和. $ _

2.第一个字符不能是数字。

const用来声明常量,即不可变的值。

在python中并没有常量的概念 但我们通常会使用大写来表示一个变量为常量
例如:

line-numbers
1
2
3
4
PI = 3.14 
# 定义 常量PI 的值,但 PI 可变,因为它本身使用一个大写名字的变量
PI = 3.15
# 不会报错

我不建议在python中改变”常量”的值!
{: .prompt-danger }

而在JavaScript中我们可以通过 const 来定义一个常量(真·常量)

line-numbers
1
2
const PI = 3.14; // 声明 PI 的值,并且 PI 是不可变的
PI = 3.15; // 报错,因为 PI是不可变的常量

——THE END——

支持我

mcpi

最近想把python和mc结合起来

python + minecraft = ???

通过询问AI我得到了一个叫”mcpi”的库

mcpi github

安装方法

Windows

1
pip3 install mcpi

Linux / MacOS

1
sudo pip3 install mcpi

开服工具

我是使用mc服务器的所以需要服务器
这里选用MSL作为开服工具

开服

选择最新版本的游戏,使用插件服。

开服后打开

Server\plugins

放入插件 raspberryjuice-1.9.jar

raspberryjuice项目目前已停止维护!
{: .prompt-danger }

开服成功了awa

我的项目 MC-Player-Tracker

本项目使用AIGC
{: .prompt-danger }

示例

在游戏中记录坐标,然后以图表的形式展现:

示例

将光标置于记录点上,还有详细信息

示2

依赖

一共有2个文件,是 plot_footprint.py 和 record.py

确保Python版本为3.x.x

确保已经安装了MCPI 和 plotly 库

确保两个文件在同一目录下

确保在record.py中正确输入了服务器IP地址和端口号

部署

1.下载文件MC-Player-Tracker

2.进入record.py修改IP和端口号如服务器在本地不用修改使用170.0.0.1,端口号在服务器开服时插件会有提醒默认为4711

3.修改其他数值,找到def main 修改time.sleep(1)来改变记录间隔时长

使用教程

1.打开游戏连接至服务器,运行record.py

2.进入游戏,在聊天栏输入record start开始记录

3.记录完毕输入record stop停止记录

4.现在,足迹已经记录到了player_footprints.txt,运行plot_footprint.py等待生成完毕,自动打开浏览器预览图表

MCPI使用方法

以下是我让AI整理的调用方法

1.连接到 Minecraft:

1
2
from mcpi.minecraft import Minecraft
mc = Minecraft.create()

2.获取玩家位置:

1
2
playerPos = mc.player.getTilePos()
print("Player position:", playerPos.x, playerPos.y, playerPos.z)

3.在特定位置放置方块:

1
mc.setBlock(playerPos.x, playerPos.y + 1, playerPos.z, 4)# 4 是石头的方块ID

4.在玩家位置放置方块:

1
mc.setBlock(playerPos.x, playerPos.y, playerPos.z, 57)  #   57 是钻石块的方块ID

5.发送聊天消息:

1
mc.postToChat("Hello, Minecraft World!")

6.获取世界高度:

1
height = mc.getHeight(0, 0)

7.获取玩家实体ID:

1
entityId = mc.getPlayerEntityId("martinohanlon")

8.保存检查点:

1
mc.saveCheckpoint()

9.恢复检查点:

1
mc.restoreCheckpoint()

10.设置世界设置:

1
mc.setting("world_immutable", True)  # 开启世界不可更改

11.获取玩家位置(浮点数):

1
playerPos = mc.player.getPos()

12.设置方块:

1
mc.setBlock(0, 0, 0, block.DIRT.id)

13.设置长方体区域的方块:

1
mc.setBlocks(-1, -1, -1, 1, 1, 1, block.STONE.id)

14.获取方块类型:

1
blockType = mc.getBlock(0, 0, 0)

15.获取方块数据:

1
blockData = mc.getBlockWithData(0, 0, 0)

THE END

支持我

0%