MCDRpost

A MCDR plugin for post/teleport items

tool

Installation command

!!MCDR plugin install mcdrpost

Synced at

...

Last update

...

Latest version

Total downloads

47

Back to catalogue

MCDRpost

版权信息

一些更新信息

Warning

  1. 插件的 2.x 版本已经停止更新,并且不支持 Minecraft 1.20.5 或者更高版本1
  2. 插件的 3.x 版本与旧版(2.x)不兼容,升级新版本建议清空中转站或者手动改变数据结构

Added on 2025 6th Sept.: 已经实现了旧版本数据文件的自动升级转换, 见 README 或者 release

  • 如果直接加载新版本,旧版的订单数据不能被加载,但是原来的数据仍然存在,并且会创建一个新的空文件 orders.json 来存储订单数据

更新日志见 CHANGELOG

介绍

一个用于邮寄/传送物品的MCDR插件

-> MCDReforged <-

MCDRpost help

依赖

  • Python >= 3.10
  • MCDReforged >= 2.15.0
  • Minecraft Data API 任意版本
  • Minecraft >= 1.13 (如果不使用自定义 Handler)2

Important

我们十分推荐开启服务器的 RCON

安装

将在 release 或 catalogue 下载的 .mcdr 插件文件放入插件目录下加载即可

Note

在MCDR中,可以直接使用

!!MCDR plugin install mcdrpost

来安装 MCDRpost, 这也是推荐做法

功能

使用该插件可以将副手的物品发送给别的玩家
也可以发送给离线玩家(但该玩家必须曾经进过服务器)
不可以发送给自己哦~

  • 玩家发出物品后,物品(订单)将会存放在【中转站】
  • 需要收件人收取订单才能收到物品,之后【中转站】会删除该订单
  • 还未查收的订单可以取消,物品会从【中转站】退回,并删除订单
  • 每人存放【中转站】的订单数有上限,以防止把邮件寄送作为储存箱等的滥用
  • 如果你要问为啥一定是用副手传送接收呢 ,因为
    • give 传到身上任意栏位,如果身上东西多的话,传回来还要找一下,比较麻烦,还不容易找到传回来的是哪个东西
    • 如果身上东西满了的话 give 是拿不到物品的,防止粗心大意的小天才
    • 该插件传送和接收前均会检查并提示副手物品,不用担心会直接 replace 掉原本副手的物品
    • 当然为什么不传送当前主手所持栏位进行传送呢? 因为懒2333

使用

命令缩写说明
!!post!!po显示帮助信息
!!post post <player> [comment]!!po p <player> [comment]发送副手物品,可以没有备注
!!post receive <orderid>!!po r <orderid>接收输入单号的物品到副手
!!post cancel <orderid>!!po c <orderid>取消订单,仅限对方未收取时
!!post post_list!!po pl列出发件列表
!!post list post!!po ls post列出发件列表
!!post receive_list!!po rl列出收件列表
!!post list receive!!po ls receive列出收件列表
!!post list players!!po ls players列出已注册玩家名单
!!post player add <player>注册一个新玩家
!!post player remove <player>删除已经注册的玩家

上面命令中的r表示receivep表示postl表示listc表示cancel

Added in version 3.1.0: 支持命令的全写,例如!!po post Flyky full-name-support

Added in version 3.1.0: list 子命令新增 post receive,效果等同于 !!po pl!!po rl

配置

MCDRpost的配置文件(限v3.0.0或以上)在 config/MCDRpost/config.yml 中 但是旧版本(2.1.1或以下)没有配置文件,请自行修改插件中的 mcdrpost/__init__.py

点击快速跳转

2.1.1 及以下

对于 2.1.1 及以下的版本,Flyky 并没有提供配置文件,想要配置需要编辑 mcdrpost/__init__.py 才能够修改

mcdrpost/__init__.py 文件中 Line 13 ~ 17,有以下五行代码

Prefix = '!!po'
MaxStorageNum = 5  # 最大存储订单量,设为-1则无限制
SaveDelay = 1
OrderJsonDirectory = './config/MCDRpost/'
OrderJsonFile = OrderJsonDirectory + 'PostOrders.json'

这些属性就是配置,含义见下表

属性类型默认值描述
Prefixstr'!!po'插件命令的前缀
MaxStorageNumint5每个玩家最大存储的订单数量,-1 不限制
SaveDelayint1新增 SaveDelay 个订单时保存一次
OrderJsonDirectorystr'./config/MCDRpost/'订单数据文件储存的文件夹
OrderJsonFilestr'./config/MCDRpost/PostOrders.json'订单数据文件的名称,应是一个 .json 文件

Note

Line 18 处的 command_item = -2 请别动,这是用来自动检测版本的

3.0.0 版本或以上

在 3.0.0 版本中, xieyuen 对插件进行了模块化重构, 配置不再是写死在代码中,而是放到了配置文件 config.yml

下面的 配置表 是最新版本配置文件的内容

配置表

属性Python类型默认值描述
allow_aliasbooltrue是否允许别名
auto_fixboolfalse是否自动修复订单
auto_registerbooltrue是否自动为新玩家注册
max_storageint5订单最大存储量,设置为 -1 不限制
receive_tip_delayfloat3.0提示延迟
command_prefixeslist[str]['!!po', '!!post']命令根节点
command_permissiondict~权限表

Note

allow_alias 设定为 false 之后,command_prefixes 配置将会作废,锁定为 !!po
但是子命令的缩写(如 !!po ls)仍然有效

权限表

Note

MCDReforged的权限系统支持5种权限: owner, admin, helper, user, guest, 在设定权限的时候,用 0~4 五个数字代替权限等级, 其中 0 表示 owner1 表示 admin2 表示 helper3 表示 user4 表示 guest

此部分的官方文档见 https://docs.mcdreforged.com/zh-cn/latest/permission.html#overview

属性默认权限描述
root0根命令的权限
post0发送邮件的权限(同时包括列出发件列表的权限)
receive0接收邮件的权限(同时包括列出收件列表的权限)
cancel0取消邮件的权限
list_orders2获得中转站全部订单信息的权限
list_players2获得全部已注册玩家的权限
player3player 子命令的权限

配置文件 demo

注意信息

  • 可能会有部分带有特殊复杂NBT标签的物品无法传送,会提示检测不到可传送的物品,所以尝试一下即可
  • 不开启 RCON 的话,插件可能会有一定的延迟导致发送/接收失败

Warning

切勿传送原版非法堆叠数的物品!!!
例如使用carpet地毯堆叠的空潜影盒,会导致该物品无法接收

Important

如果您的 Minecraft 服务器要从 1.20.5 以下升级到 1.20.5 版本或以上,请让玩家们清空中转站, 因为订单数据的 nbt 不能自动地转化成新版本的 components,升级之后订单的物品会因为标签结构改变而不能取走

一些图片

po rl
po r
po p

API

Note

如果你在使用插件的时候没有遇到什么问题,可以忽略这段内容

点击 此处 跳转至 MCDRpost 的自定义 Handler 文档

Footnotes

  1. Minecraft 1.20.5 用 components 代替了 tag,导致命令不能执行,Minecraft 报错见 Flyky/MCDRpost#10

  2. 理论上使用自定义 Handler 就可以适配任何版本,但是插件本身没有兼容低于 1.13 的版本,原因见 Custom Handler

README source: src/MCDRpost/README.md