server - minecraft:如何在选择中获取块的坐标
问题描述
对于战利品插件,我需要预建世界中所有箱子的坐标。将它们添加到插件配置中。我不是在编写插件,我只是在使用它,我只需要一种方法来获取世界中特定块的多个坐标。
或者
如果可以使用 worldedit 并用带有 nbt 标签的箱子替换箱子,我可以完全跳过插件部分并使用原版战利品表。但是我还没有找到一种方法来使用 worldedit 设置带有 nbt 数据的块。
我正在考虑下载地图并将其移动到 mcedit 或 worldpainter 中,并希望在那里找到一种方法来导出每个箱子的坐标。
我期待着一些解决方案,我提前感谢你!
解决方案
如果您必须首先准备这个世界并且只准备一次,我建议使用插件来识别世界上所有的箱子(例如,通过遍历所有已经生成的块和所有包含的块),并修改或保存它们,方式你需要。在生产服务器上执行此操作可能会导致延迟,因为迭代/搜索将非常密集。
您还可以考虑某种骇人听闻的方法,以识别块是由世界生成器/插件还是玩家放置的。当你使用插件 LogBlock 时,你可以检查点击的箱子是否被玩家放置。如果是,则将此箱子视为普通箱子,否则,如果没有玩家在此位置放置过方块,则将此箱子视为“战利品插件”中的箱子。
任何一种方法都可以,但第一种可能会更难一些,因为您必须手动加载所有块。第二个有点hacky,但会更容易,但可能与您的设置不兼容。
推荐阅读
- python - 如何将 Odoo 容器暴露到 LAN
- html - 有什么方法可以应用具有特定形状的 svg 过滤器吗?
- c# - 调用 Appointment.Bind(service, new ItemId(AppointmentID)) 时缺少必需的属性“BodyType”
- yaml - 将 Open Api 3.0 yaml 导入 Postman 7.1
- python-3.x - 为什么这个熊猫数据框不可调用
- javascript - 选择选择下拉值时添加日期 JQuery/JS
- r - 从数据框中删除某些值
- mysql - MySQL 多个左连接 - 一列不正确
- java - Lambda表达式java,传递参数
- excel - 获取范围内前 3 个数字的单元格引用(Excel VBA)