- 版权类型
- 原创
- 语言支持
- 中文(简体)
- 前置组件
- endstone:pip install endstone
python:https://python.org
menu:https://www.minebbs.com/resources/menu-endstone-execute.9432/
(已经附带menu插件到下载整合包了)
- 适配版本(基岩)
- 最新版本
eland
endstone首个领地插件
相似插件对比 | eland | uland | tty |
性能 | 中 | 中 | 高 |
开发语言 | python | python | cpp |
经济系统支持 | jsonmoney economyapi umoney | jsonmoney umoney | 不支持经济系统 |
无需专业软件就可编辑数据 | 是 | 是 | 否 |
子领地 | 是 | 否 | 是 |
数据储存格式 | json | json | 数据库 |
菜单 | 是 | 是 | 是 |
子领地 | 是 | 否 | 是 |
api | 是 | 否 | 否 |
领地价格 | 是 | 是 | 否 |
领地个数限值 | 是 | 是 | 是 |
诞生日期 | 最早 | 其次 | 最新 |
维度 | 3d | 2d | 3d |
防火/爆/破坏/挖掘 | 是 | 是 | 是 |
维护难度 | 低 | 低 | 高 |
是否支持迁移iland | 是 | 否 | 否 |
下载量(2025/ 3/10) | 1200 | 281 | 22 |
levistone支持 | 是 | 是 | 否 |
源代码 | 闭源混淆 | 开源 | 闭源cpp |
适用类型 | 通用 | 通用 不注重高度 不考虑子领地 | 不注重经济系统但注重性能 |
插件安装
1. 前往release下载最新版本的zip文件
2. 将解压后的 `plugins` 文件夹内的所有内容**直接合并替换**到服务器的 `plugins` 文件夹中即可。
配置文件
JSON:
{
"price": 1,
"money": "json",
"protect":false,
"task":true,
"max_land":5
}
money:经济系统类型,使用economyapi请改此为economyapi,使用umoney或者jsonmoney请使用json
protect和task已经不再使用
max_land 一个玩家最多的领地数量
price:一立方体的价格
领地数据文件说明和修改
你可以直接修改land.json来完成数据后台修改,注意修改完成后记得输入指令/land reload
更新缓存数据
JSON:
{
"ye111566": [
{
"20250304235508": {//领地的名字
"posa": "72, 65, 4",//坐标a
"posb": "76, 64, 8",//坐标b
"dim": "Overworld",//维度
"member": [],//成员列表
"tpposx": "72",//传送点x
"tpposy": "65",//传送点y
"tpposz": "4",//传送点z
"anti_right_click_block": [],//禁止右键的方块列表
"permission": [
{
"containter": "false"//陌生人右键方块
},
{
"build": "false"//陌生人建筑
},
{
"mine": "false"//陌生人挖掘
},
{
"tp": "false"//公共传送
}
],
"mobgriefing": false,//生物爆炸
"fire": false,//火焰
"explode": false,//生物爆炸
"in": false,//是否为子领地
"son": [//子领地列表
"father_2dfd48e6-f911-11ef-819c-00d49e32bde1",//子领地名字
"father_945ea7c5-f911-11ef-ad7d-00d49e32bde1"//子领地名字
]
}
},
{
"father_2dfd48e6-f911-11ef-819c-00d49e32bde1": {//另外一个领地的名字
"posa": "76, 64, 8",
"posb": "75, 65, 7",
"dim": "Overworld",
"member": [],
"tpposx": "76",
"tpposy": "64",
"tpposz": "8",
"anti_right_click_block": [],
"permission": [
{
"containter": "false"
},
{
"build": "false"
},
{
"mine": "false"
},
{
"tp": "false"
}
],
"mobgriefing": false,
"fire": false,
"explode": false,
"in": true,
"father": "20250304235508",//父领地名字
"son": []//子领地列表(对于一个父领地请勿动此处!)
}
},
{
"father_945ea7c5-f911-11ef-ad7d-00d49e32bde1": {
"posa": "75, 65, 7",
"posb": "76, 64, 8",
"dim": "Overworld",
"member": [],
"tpposx": "75",
"tpposy": "65",
"tpposz": "7",
"anti_right_click_block": [],
"permission": [
{
"containter": "false"
},
{
"build": "false"
},
{
"mine": "false"
},
{
"tp": "false"
}
],
"mobgriefing": false,
"fire": false,
"explode": false,
"in": true,
"father": "20250304235508",
"son": []
}
}
],
"otherplayer":...
}
本插件诞生的时候 还没有jsonmoney
因为本插件所以才诞生了jsonmoney
本插件圈地的经济数据存在
plugins文件夹->money文件夹下的money.json
采用字典的存储方法
{"名字":钱数量}
你可以使用jsonmoney插件或umoney插件来完成快速操作money.json
如果你使用economyapi插件
你可以通过修改配置文件的money为economyapi来解决
对于umoney插件请使用此修改版本(改路径指向money文件夹)
指令说明
- **/land**:打开领地管理菜单。
- **/land help**:查看不使用菜单的指令圈地说明。
- **/landgui posa** 和 **/landgui posb**:用于设置领地的两个对角点(`posa` 和 `posb`)。
- 这两个指令用于创建领地时确定领地的范围,以及创建子领地时确定领地的范围
- 设置领地传送点时,`posa` 将作为传送点。
领地创建与购买
1. 使用 `/landgui posa` 和 `/landgui posb` 设置领地的两个对角点。2. 输入 `/landgui buy` 或 `/landgui tpset` 查看已填写的坐标。
- 如果坐标无需修改,直接点击**提交**。
- 如需修改,点击文本输入框重新输入坐标。
### 圈地方法
- **Minecraft 中的领地**:领地是一个长方体区域。- **长方体确定方法**:通过体对角线的两个点确定。
- 在游戏中,跑到你要圈地的长方体的一角,输入 `/landgui posa`。
- 然后跑到该角的体对角线斜对面,输入 `/landgui posb`。
- 最后输入 `/landgui buy`,在弹出的菜单中根据需要修改坐标。
- 确保资金充足后,点击**提交**即可完成圈地。
文件路径一览
关于api
a realm plugin for minecraft endstone bedrock dedicated server plugin loader - ye111566/eland
self.server.plugin_manager.get_plugin('ye111566_land').landname_to_Land('主城') 可以把领地名字为主城的领地转为领地Land对象
self.server.plugin_manager.get_plugin('ye111566_land').landname_to_landdata('主城') 可以把领地名字为主城的领地转为此领地的字典
self.server.plugin_manager.get_plugin('ye111566_land').landdata_to_Land('主城') 可以把领地的字典转为领地Land对象
self.server.plugin_manager.get_plugin('ye111566_land').Player_to_landname(endstone的Player对象)可以把玩家对象转为此玩家所在的领地的名字
self.server.plugin_manager.get_plugin('ye111566_land').edit(领地名字,修改的配置项字符串,新的数据)
可以修改并且保存领地
Land对象有下列方法:
attr:father->str
返回领地的父领地
attr:son->list[str]
返回领地的子领地名字列表
attr: name->str
返回领地的名字
attr: info->dict
返回领地的信息字典
attr: posa->list[int]
返回领地的posa 如[114,51,4]
attr: posb->list[int]
返回领地的posb 如[114,51,4]
attr: tppos->list[int]
返回领地的tppos 如[114,51,4]
attr: dim->str
返回领地的维度名字 有Overworld Nether TheEnd 三种(注意大小写)
attr:dim_index->int
返回领地的维度代码 主世界0 地狱1 末地2
attr:anti_right_click_block->list[str]
返回领地内禁止被右键的方块的id列表 如["minecraft:glow_frame","minecraft:grass_block"]
attr:arcb->list[str] (缩写版,同上)
返回领地内禁止被右键的方块的id列表 如["minecraft:glow_frame","minecraft:grass_block"]
attr:member->list[str]
返回领地的成员列表 如["田所浩二","宫本浩次"]
attr:containter->bool
返回是否开启右键权限
attr:mine->bool
返回是否开启挖掘权限
attr:build->bool
返回是否开启放置权限
attr:tp->bool
返回是否开启公共传送权限
attr:fire->bool
返回是否允许火焰
attr:explode
返回是否允许爆炸
attr:mobgriefing
返回是否允许生物破坏
meth:get_type()->str
返回领地的类型
有三种:
"father" 表示父领地
"normal" 表示没有子领地的普通领地
"son" 表示子领地
meth:get_owner()->str
比如a是一个Land对象
a.get_owner()得到的就是这个Land对象的主人名字
返回领地的主人名字
如"HOMO1145141919810"
Python:
#开发示例,输入一个坐标和维度返回这个地方属于的领地,然后在这个地方的领地的成员里面加上abab这个人
landapi=self.server.plugin_manager.get_plugin('ye111566_land')#获得领地的主插件类
landname=landapi.pos_to_landname(114,5,14,"Overworld")#通过坐标获得此坐标的领地名字
Land=landapi.landname_to_Land(landname)#通过领地名字获得领地对象
member=Land.member#获得这个领地对象的成员列表
newmember=member#缓存数据准备使用.append方法
newmember.append("abab")#添加abab这个成员
landapi.edit(landname,"member",newmember)#修改并且保存领地成员数据