creeprchain

creeprchain

区块链用于我的世界服务器 如需安装和构建,请访问GitHub

经济

Creeprchain

安装和构建请访问 GitHub

Minecraft Fabric 1.20.1 经济模组。玩家在 ATM 方块处存入物品,并在兼容以太坊的区块链上接收 ERC-20 风格代币。代币可在 MetaMask 中查看。

要求

工具 版本
Java JDK 21
Fabric Loader 0.19.2
Fabric API 0.92.9+1.20.1
Node.js 18+(用于 Hardhat)
Hardhat 安装在 blockchain/ 目录内

构建模组

./gradlew build

输出 jar 文件位于:

build/libs/creeprchain-1.0.0.jar

在 Windows 上使用 gradlew.bat build


在 Fabric 服务器上安装

  1. 下载 Fabric Installer,并为 Minecraft 1.20.1 安装 Fabric 服务器。
  2. 将 build/libs/creeprchain-1.0.0.jar 复制到服务器的 mods/ 文件夹。
  3. 下载适用于 1.20.1 的 Fabric API,也放入 mods/ 文件夹。
  4. 启动服务器一次——它将在 config/creeprchain/ 创建配置目录。
  5. 编辑 config/creeprchain/blockchain.json(参见 区块链设置)。
  6. 重启服务器。

在客户端安装

  1. 在启动器中为 Minecraft 1.20.1 安装 Fabric Loader。
  2. 将 build/libs/creeprchain-1.0.0.jar 复制到 .minecraft/mods/ 文件夹。
  3. 也将适用于 1.20.1 的 Fabric API 复制到 .minecraft/mods/ 文件夹。
  4. 启动游戏并连接到服务器。

客户端和服务器必须使用完全相同的 jar 文件。版本不匹配会导致注册表同步错误(missing creeprchain:atm_block)。


区块链设置(已在 LINUX 上测试)

区块链在单独的 Linux 机器上运行。以下所有命令在该机器的 blockchain/ 文件夹中执行。

步骤 1 — 安装依赖

cd blockchain
npm install

步骤 2 — 启动 Hardhat 节点

scripts/start-local-chain.sh

这将启动一个本地以太坊节点,地址为 0.0.0.0:8545(链 ID 31337)。保持此终端打开。

步骤 3 — 部署合约

在同一台机器上打开第二个终端:

scripts/deploy-contract.sh

输出示例:

Token deployed to: 0xAbCd1234...

复制合约地址。

步骤 4 — 配置 blockchain.json

在 Minecraft 服务器机器上,编辑 config/creeprchain/blockchain.json:

{
  "rpcUrl": "http://192.168.0.108:8545",
  "chainId": 31337,
  "contractAddress": "0xAbCd1234...",
  "privateKey": "0xd345b787fa175fa22321746c8e0289ad88eac2de8c39ce67215c8b362af621e5"
}
  • rpcUrl — 运行 Hardhat 节点的 Linux 机器 IP
  • contractAddress — 部署脚本打印的地址
  • privateKey — Hardhat 部署者账户;该钱包代表服务器签署铸造/销毁交易

重启 Minecraft 服务器。日志将显示:

BlockchainService connected: rpc=http://192.168.0.108:8545 chainId=31337 contract=0x...

MetaMask 设置

  1. 打开 MetaMask → 设置 → 网络 → 手动添加网络:
    • RPC URL: http://192.168.0.108:8545
    • 链 ID: 31337
    • 货币符号: ETH
  2. 添加代币:MetaMask → 代币 → 导入代币 → 粘贴合约地址。
  3. 记下你的 MetaMask 钱包地址——你将把它用于 /linkwallet。

游戏内设置与测试

/linkwallet 0xYourMetaMaskAddress

放置一个 ATM 方块(/give @p creeprchain:atm_block),手持钻石(或其他已配置物品)右键点击它。代币将出现在 MetaMask 中。


命令

命令 描述
/linkwallet <地址> 将你的 Minecraft 账户绑定到以太坊钱包地址
/balance 显示你的代币余额
/send <玩家> <数量> 将代币转给另一个在线玩家
/withdraw <数量> 销毁代币(区块链提现)
/withdraw <物品> <数量> 销毁代币并获得 Minecraft 物品

配置

配置文件位于服务器的 config/creeprchain/ 目录。如果不存在,将使用 src/main/resources/config/ 中的内置默认配置。

economy.json — 存款和取款费率

{
  "depositRates": {
    "minecraft:diamond": 100,
    "minecraft:iron_ingot": 10,
    "minecraft:gold_ingot": 20
  },
  "withdrawRates": {
    "minecraft:diamond": 95,
    "minecraft:iron_ingot": 9,
    "minecraft:gold_ingot": 18
  },
  "maxDeposit": 10000,
  "maxWithdraw": 5000,
  "maxBalance": 100000
}

blockchain.json — 与以太坊节点的连接

{
  "rpcUrl": "http://192.168.0.108:8545",
  "chainId": 31337,
  "contractAddress": "0x0000000000000000000000000000000000000000",
  "privateKey": ""
}

如果 privateKey 为空或 contractAddress 为零地址,模组将运行在本地账本模式(交易仅存储在 SQLite 中,无区块链交互)。


许可证

MIT