BG4JTS

人生无常,ham吃香肠

从今日起本站使用 Hexo & NexT.Muse

评论由 Twikoo 强力驱动

为了练习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为服务端打造 不建议在单人中使用

可点击→→”文章内容”进行快速跳转

使用教程

添加了3个指令

  • /music
  • /tools
  • /musicconfig

/music

music有3个子指令分别是

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

abuot & help

没啥好说的~

disc

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

1
/music disc [唱片名]

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

素材来源为网络 如有侵权请与我联系会及时删除

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

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

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

添加mod后首次运行服务器just_music.json才会生成

/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
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
{
"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项目目前已停止维护!

开服成功了awa

我的项目 MC-Player-Tracker

本项目使用AIGC

示例

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

示例

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

示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%