MCDRpost
Original Author
Introduce
A MCDR plugin for post/teleport items
一个用于邮寄/传送物品的MCDR插件
Dependencies
-
Python >= 3.10
-
MCDReforged >= 2.15.0
-
Minecraft Data API 任意版本
-
开启 Minecraft Rcon
Important
请一定配置好 RCON!
请一定配置好 RCON!
请一定配置好 RCON!
重要的事情说三遍~
Install
将在 release 或 catalogue 下载的 .mcdr
插件文件放入插件目录下加载即可
Note
在MCDR中,可以直接使用
!!MCDR plg install mcdrpost
!!MCDR confirm
来安装 MCDRpost, 这也是推荐做法
Feature
使用该插件可以将副手的物品发送给别的玩家
也可以发送给离线玩家(但该玩家必须曾经进过服务器)
不可以发送给自己哦~
- 玩家发出物品后,物品(订单)将会存放在【中转站】
- 需要收件人收取订单才能收到物品,之后【中转站】会删除该订单
- 还未查收的订单可以取消,物品会从【中转站】退回,并删除订单
- 每人存放【中转站】的订单数有上限,以防止把邮件寄送作为储存箱等的滥用
- 如果你要问为啥一定是用副手传送接收呢 ,因为
- 用
give
传到身上任意栏位,如果身上东西多的话,传回来还要找一下,比较麻烦,还不容易找到传回来的是哪个东西 - 如果身上东西满了的话
give
是拿不到物品的,防止粗心大意的小天才 - 该插件传送和接收前均会检查并提示副手物品,不用担心会直接 replace 掉原本副手的物品
- 当然为什么不传送当前主手所持栏位进行传送呢?
因为懒2333
- 用
Usage
!!po
显示帮助信息!!po p [收件人id] [备注]
将副手物品发送给[收件人],[备注]为可选项!!po rl
列出收件列表。包括[发件人],[寄件时间],[备注消息]和[单号]!!po r [单号]
确认收取该单号的物品到副手(收取前将副手清空)!!po pl
列出发件(待收取)列表,包括[收件人],[寄件时间],[备注消息]和[单号]!!po c [单号]
取消传送物品(收件人还未收件前),该单号物品退回到副手(取消前将副手清空)!!po ls players
查看可被寄送的注册玩家列表!!po ls orders
查看当前中转站内所有订单 [helper以上权限可用]!!po player add [玩家id]
手动注册玩家到可寄送玩家列表 [admin以上权限可用]!!po player remove [玩家id]
删除某注册的玩家 [admin以上权限可用]
上面命令中的r
表示receive
,p
表示post
,l
表示list
,c
表示cancel
Added in version 3.1.0: 支持命令的全写,例如!!post post Flyky full-name-support
Added in version 3.1.0: list
子命令新增 post
receive
,等同于 pl
和 rl
Configurations
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'
这些属性就是配置,含义见下表
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
Prefix | str | '!!po' | 插件命令的前缀 |
MaxStorageNum | int | 5 | 每个玩家最大存储的订单数量,-1 不限制 |
SaveDelay | int | 1 | 新增 SaveDelay 个订单时保存一次 |
OrderJsonDirectory | str | './config/MCDRpost/' | 订单数据文件储存的文件夹 |
OrderJsonFile | str | './config/MCDRpost/PostOrders.json' | 订单数据文件的名称,应是一个 .json 文件 |
Note
Line 18 处的 command_item = -2
请别动,这是用来自动检测版本的
3.0.0 版本或以上
在 3.0.0 版本中, xieyuen 对插件进行了模块化重构,配置不再是写死在代码中,而是放到了配置文件 config.yml
中
下表是配置文件的内容
配置表
属性 | Python类型 | 默认值 | 描述 |
---|---|---|---|
allow_alias | bool | true | 是否允许别名 |
auto_fix | bool | false | 是否自动修复订单 |
auto_register | bool | true | 是否自动为新玩家注册 |
max_storage | int | 5 | 订单最大存储量,设置为 -1 不限制 |
receive_tip_delay | float | 3.0 | 提示延迟 |
command_prefixes | list[str] | ['!!po', '!!post'] | 命令根节点 |
command_permission | dict | ~ | 见权限表 |
Note
将 allow_alias
设定为 false
之后,command_prefixes
配置将会作废,锁定为 !!po
但是子命令的缩写(如 !!po ls
)仍然有效
权限表
Note
MCDReforged的权限系统支持5种权限: owner
, admin
, helper
, user
, guest
,
在设定权限的时候,用 0~4 五个数字代替权限等级,
其中 0
表示 owner
, 1
表示 admin
, 2
表示 helper
, 3
表示 user
, 4
表示 guest
属性 | 默认权限 | 描述 |
---|---|---|
root | 0 | 根命令的权限 |
post | 0 | 发送邮件的权限(同时包括列出发件列表的权限) |
receive | 0 | 接收邮件的权限(同时包括列出收件列表的权限) |
cancel | 0 | 取消邮件的权限 |
list_orders | 2 | 获得中转站全部订单信息的权限 |
list_players | 2 | 获得全部已注册玩家的权限 |
player | 3 | player 子命令的权限 |
ATTENTIONS!!
- 可能会有部分带有特殊复杂NBT标签的物品无法传送,会提示检测不到可传送的物品,所以尝试一下即可
Warning
切勿传送原版非法堆叠数的物品!!!
例如使用carpet地毯堆叠的空潜影盒,会导致该物品无法接收,永远卡死在中转站,只能手动修改数据文件删除
known issues
- 不开启 RCON 的话,插件可能会有一定的延迟导致发送/接收失败
pics
自述文件来源:src/MCDRpost/README.md