• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
CALL - 建造助手 [ 创世神类 | 木斧类 | 建筑 | 导入 | 导出 | 多人协作 ]

LSE CALL - 建造助手 [ 创世神类 | 木斧类 | 建筑 | 导入 | 导出 | 多人协作 ] 2024-07-24

版权类型
原创
版权链接
https://github.com/superx101/CALL
Wiki/文档
https://superx101.github.io/CALL/#/
语言支持
中文(简体)
前置组件
gitea.litebds.com/LiteLDev/legacy-script-engine-nodejs
适配版本(基岩)
  1. 1.19
CALL.png


GitHub GitHub release (latest by date) QQ
download
view

简介​

Construct Assistant for LeviLamina, 简称CALL,中文名为:建造助手,是针对基岩版服务器(BDS)的辅助建造工具,且提供API支持其他插件开发者拓展CALL的功能。

为什么选择CALL?
  • 指令操作
     CALL中所有操作均支持指令,因此您可以使用命令方块为某一玩家执行CALL操作,例:
      /execute @p ~ ~ ~ /call menu
  • 用户体验
     CALL致力于提升用户体验,所有基础操作均可使用GUI(图形化界面)点击完成,不需要过多学习成本。
     对于指令,本插件提供了缺省值和简化版指令, 例如指令:/call area start ~ ~ ~可简化为/ca ar a
     您也可以将指令绑定到快捷键,一键执行,更加方便
  • 导入导出
     支持在服务端从外部导入结构文件,并将保存的结构导出为结构文件
  • 多人协作
     您可与其他玩家共享保存的结构
  • 跨存档
     复制、保存的结构可跨存档使用
  • 自定义权限
     后台管理员可自定义哪些玩家可以使用CALL
  • 大范围
     CALL使用了一种异步等待方式来避免因区块未加载而操作失败的情况。理论上可操作无限大区域(无论区块是否已加载)。为保证稳定性,CALL限定了单个区域最大范围64000 * 320 * 64000
  • 第三方支持
     CALL支持其他开发者编写拓展功能的插件,您可安装第三方插件来获取更多的功能
  • 开源免费
     本插件使用GPL-3.0协议,完全开源免费
     项目地址:https://github.com/superx101/CALL
     Bug反馈与建议:691552572
  • 自动更新
     自动下载、自动安装、自动重载插件
     自1.0.0版本后CALL可在配置中开启自动更新,或输入后台指令call update半自动更新
  • 文档教程
     CALL为您提供了文档,记录了较为详细的插件安装、使用方法以及第三方插件开发教程

CALL可以干什么?
  • 若您为服主
    CALL可以帮您从其他存档转移、复制建筑,并从文件导入建筑到服务器,或导出服务器的建筑
  • 若您为建筑师
    CALL提供了快捷键和菜单帮助您快速填充、平移、旋转、镜像、复制、粘贴,并且提供了直线、平面、圆、椭圆、圆柱、圆锥等形状帮助您快速构建结构。您也可以共享您保存的结构,与他人共同合作。

功能​

选区填充选区清除选区替换选区平移选区堆叠选区镜像选区旋转
撤销恢复
复制粘贴
保存结构加载保存删除保存共享保存
方块编辑快捷键生成形状
导入结构导入结构

LeviLamina对应的版本已不再Lip之外的平台发布,若需下载1.3.0以后的版本请使用Lip下载:
https://lippkg.com

若该插件使用过程中遇到的任何问题,不能自行解决,请加入Q群聊:691552572 一对一解答

导入导出流程​

i.png

使用前须知​


1.默认仅为OP可用,若需要更改设置请查看文档

2.历史版本对应表如下:

1. 若新版中无法使用可联系作者进行适配(建议进群联系作者,私信可能看不到)
2. 请确保LL为正式版,beta版中无法使用属于正常现象
以下为LeviLamina
[/SPOILER]
CALL版本
LeviLamina版本LegacyScriptEngine版本BDS版本
文档待填
以下为LiteLoaderBDS
CALL版本LiteLoaderBDS版本BDS版本
1.2.0--1.2.1--2.15--1.20.1x--
1.1.5--1.1.62.12.1--2.14.11.19.7x--1.20.0
1.1.3--1.1.42.9.2--2.11.11.19.5x--1.19.6x
1.1.2--0.2.02.9.0--2.9.11.19.5x--1.19.6x
0.1.0--0.1.2--2.8.1--1.19.4x

教程​

1. 教程文档
2. 打开菜单
您可输入/call 指令或使用快捷键打开菜单

3. 默认快捷键
您可自定义快捷键,该表仅供参考
(什么是快捷键?:当玩家手持物品时,可通过点击或破坏来触发一条或多条指令,这样的物品就称为快捷键)
如何修改快捷键?
可通过输入指令 /call 进入菜单,进入选项 设置->快捷键设置->xx模式->xxx快捷键 修改相应的快捷键设置即可
功能描述​
快捷键种类​
触发方式​
英文id​
是否有特殊名称​
打开菜单右键(点击)minecraft:clock
设置选区a点箭矢右键(点击)minecraft:arrow
设置选区b点木棍右键(点击)minecraft:stick
轮流设置ab点木斧右键(点击)minecraft:wooden_axe
取消选区剪刀右键(点击)minecraft:shears
材质A选择三叉戟右键(点击)minecraft:trident
材质B选择三叉戟左键(破坏)minecraft:trident
复制烈焰棒右键(点击)minecraft:blaze_rod
粘贴骨头右键(点击)minecraft:bone
获取点击的方块(需要give权限)木稿右键(点击)minecraft:wooden_pickaxe
编辑点击方块的属性绿宝石右键(点击)minecraft:wooden_emerald

以下为快捷键的指令示例,您可参考示例添加自己的快捷键
功能
快捷键绑定的指令
给玩家一个快捷键点击到的方块give @s ${block.type} 1 ${block.tileData}
给玩家一个苹果后说“I get an apple”give @s apple;/say 'I get an apple'
说出玩家自己的xuid值say ${me.xuid}
说出玩家自己的第0号物品栏中物品的种类say ${itemArr[0].type}
如果玩家为生存模式则设置为创造模式,否则设置为生存gamemode ${me.isSurvival ? 1 : 0}
说出现在玩家坐标x值的2倍加1say ${me.pos.x * 2 + 1}
如果自己生命值<=10就给一个牛排
如果10<生命值<=15给一苹果
如果生命值>15就发送“我饱了”
${me.health <= 10 ? 'give @s cooked_beef' : (me.health <= 15 ? 'give @s apple' : 'say 我饱了')}
如果自己是创造模式且副手拿着盾牌,就将自己传送到点击的方块处${me.isCreative && me.getOffHand().type === 'minecraft:shield' ? 'tp @s ' + block.pos.x + ' ' + block.pos.y + ' ' + block.pos.z : ''}

4. Bug反馈与交流群
QQ:691552572


常见问题

报错Command "call" already exists?并且游戏内出现连点

当前错误为更新或安装时退出BDS导致LiteLoaderBDS认为插件存在并报错,可直接忽略该报错。重启服务器后即可恢复正常。

首次安装进度条不动?​

当出现 为插件 call 执行 "npm install"...进度条一直不动, 说明当前网络环境无法下载依赖, 需要手动下载依赖包并安装,依赖下载路径:https://gitee.com/superx101/CALL/releases 找到对应版本的 x.x.x依赖包.zip 文件下载即可

文件配置失败: 配置文件中未找到xxx?​

说明配置文件文件中缺少该项,需要下载对应版本的配置文件,替换plugins/CALL/config/configs.json。或在configs.json中添加xxx项

更新后报错:Error: Cannot find module 'xxx '?​

说明更新后缺少新的依赖,可在后台输入 ll load "./plugins/nodejs/call/bin/CALL_Dependencise.js" 检查并更新依赖

自动更新1.1.3无法填充?​

由于1.1.3修改了ca fill指令参数类型,目前的LL热重载无法重载修改的指令 ( 编写该问题时LL最新版本为2.9.2 ),因此需要重启服务器后才能生效

更新1.1.3报错?​

请更新 LL 为 2.9.2 及以上版本

手动更新1.1.0报错?​

1.1.0加入了新的依赖,直接更新会导致无法加载依赖而报错。可加入1.1.0.zip内部的更新修复补丁,修复错误。

自动更新1.1.0报错?​

原因同上,请下载更新修复补丁。下载地址:https://gitee.com/superx101/CALL/releases/tag/1.1.0

怎么打开菜单?​

  1. 方法一:快捷键方式:
    使用打开菜单快捷键点击任意方块即可打开菜单。
    默认打开菜单的快捷键为,服务器管理员可能会更改默认快捷键,请以服务器为准)
  2. 方法二:指令方式:
    输入指令 /ca 或 /call 或 /ca menu 或 /call menu 或 /ca me 或 /ca menu 均可打开菜单。

怎么获取快捷键?​

可通过输入指令 /call 进入菜单,进入选项 设置->快捷键设置->获取所有快捷键 点击即可获取快捷键。

怎么修改快捷键?​

可通过输入指令 /call 进入菜单,进入选项 设置->快捷键设置->xx模式->xxx快捷键 修改相应的快捷键设置即可

怎么选区?​

  1. 方法一:A点B点选择工具
    获取快捷键 A点选区工具 和 B点选区工具,使用A点工具点击方块选取A点,使用B点工具点击方块选取B点。
  2. 方法二:AB轮换选择工具
    获取快捷键 选区工具,第一次点击方块选取A点,第二次点击方块选取B点。

选区中,可以点击选A点,破坏选B点吗?​

可以在 设置->快捷键设置 将同一个快捷键的右键模式设置为选A点,左键模式设置为B点

怎么清除选区?​

  1. 方法一:使用菜单
    打开菜单,进入 选区->清除选区
  2. 方法二:输入指令
    输入指令 /call area clear 或 /ca ar cl

我看到的方块和别人不一样?看到假方块?​

这是由于其他人修改区域后,您未能正常刷新区块所导致。CALL将会在以后的版本尽可能修复这种情况。
您可刷新区块后恢复正常

  1. 方法一:菜单
    打开菜单,选区 刷新区块
  2. 方法二:指令
    输入指令 /call refresh 或 /ca rf

如何精准的生成斜的几何体?​

本条教程来自用户 ye1115660

1.拿出右手 四个手指一开始位置记x正 向内挥手90度的位置记为z正,大拇指位置记y正

2.拿出草稿纸画图 把你设置的物体形状不算欧拉角的部分画出来,再把你想要的旋转后的形状画出来

3.在你原来的形状和xyz正轴的部分利用空间想象力画出来旋转后这三个轴是在哪里(记得画剪头)

4.利用空间想象力想出来分别是从x正轴下方,向x正方向看时候顺时针旋转a度
从y正轴下方,向y正方向看时候顺时针旋转a度
从z正轴下方,向z正方向看时候顺时针旋转a度
最后你选择欧拉角模式为xyz,x=a,y=b,z=c

怎么让所有人都能使用CALL?​

修改配置文件的permission项为"all",修改后在后台输入指令 ca r 或 call reload 重新加载CALL即可

怎么让一部分人能使用CALL?​

  1. 步骤一: 修改配置文件的permission项为"customize",修改后在后台输入指令 ca r 或 call reload 重新加载CALL。
  2. 步骤二: 后台输入指令 /call add "玩家名" 添加一个玩家
    后台输入指令 /call ban "玩家名" 移除一个玩家

怎么在另一个存档使用保存的建筑?​

在不删除CALL/data文件夹的情况下,直接更改存档即可使用保存的建筑

怎么导出结构?​

  1. 使用 /call list 命令查看需要导出结构的id
  2. 在后台输入指令:call export <格式名> <结构id> [是否包含实体] [文件名称] 即可将CALL中保存的结构导出
  3. 在 CALL/export 目录下可找到导出后的文件
指令说明:

  • 格式名 目前支持的格式有: mcstructure
  • 结构id 一串字符组成的id
  • 是否包含实体 可不输入,默认为false
  • 文件名称 导出后文件的名称,可不输入,默认为结构id
指令示例:
  • ca export mcstructure c0001230111205510003 true test
表示导出id为c0001230111205510003的结构,包含实体,且文件名为:test.mcstructure​

怎么导入文件为结构?​

  1. 将需要导入的文件放入 CALL/import 目录下
  2. 在后台输入指令:call import <文件名> <玩家名> [是否包含实体] [结构名称] 即可将文件导入为结构给某个玩家
指令说明:

  • 文件名 需要导入文件的名称(需要输入后缀名),目前支持的格式有: mcstructure
  • 玩家名 一个使用过CALL的玩家的玩家名,导入后会将结构加入到该玩家的保存中
  • 是否包含实体 可不输入,默认为false
  • 结构名称 结构的名称,默认为当前时间
指令示例:
  • ca import test.mcstructure steve true a
表示从 CALL/import/test.mcstructure 导入结构给玩家steve,且保留实体,结构名为a​

怎么更新CALL?​

  • 自动更新
  1. 将配置文件:CALL/config/configs.json 中的autoUpdate 项设置为true后输入指令 ca r 或 call reload 重新加载CALL
  • 手动更新
  1. 下载需要更新的CALL版本
  2. 将CALL/shape中的形状包文件替换
  3. 将下载的CALL.llplugin放入plugins/目录

部分功能展示​

菜单界面​
Minecraft 2022_12_31 15_02_04.png
选区功能界面​
Minecraft 2022_12_31 15_03_19.png
快捷键​
Minecraft 2022_12_31 15_02_43.png
a3.png
快捷键设置​
a4.png
形状包​
Minecraft 2022_12_31 15_03_40.png
形状包-自由立方体​
a6.png
a7.png
形状​
shape.jpg

第三方形状包​

若您开发了形状包,可联系作者将形状包链接发布于此

停更​

由于多方面原因暂停新功能的加入,若出现新版无法适配的情况依然可联系作者适配更新)。
原因如下:

photo.png
photo1.png


感谢评价,当前版本无法复现出这种情况。已被气死,没有动力继续更新下去了。


项目初衷

CALL项目的初衷是为了帮助服务器中的建筑师们更快的完成工作。我有幸参与过几个服务器建筑开发,常能看到一些建筑师因不善于使用指令和结构方块,手动地一个个方块堆积,因此我萌生出建筑辅助插件的想法:由插件屏蔽技术细节,用户只需要点击几下(最好是一下也不用点)就用完成一些繁琐的操作,这样的话建筑效率得以提升,我们也能更快看到建筑大佬们的鬼斧神工。作为免费插件开发者,能帮助到更多的玩家以及获得玩家支持,不仅是心愿,也是我们继续开发下去的动力来源。

开发经历

清楚的记得首行代码写于22年10月1日,因为我打算用国庆假期来完成这个插件。但事实却给我当头一棒,借用《C++编程风格》一书作者的Tom cargill的一句话:“最初的90%的代码用去了最初90%的开发时间。余下10%的代码用掉另外90%的开发时间”。从第一行代码到23年春节的维护,前前后后一共3个月时间,主体开发花费了1个多月。这一个多月中,我都像在重复同一天:白天上课、写作业,晚上熬夜开发,睡6-7小时后第二天继续。

由于我在开发过程中才体会到需要添加某些功能,而不是全部功能提前设计好,导致开发中期代码结构逐渐不稳定,每过几个小时都不得不停下来思考那两个经典问题:“为什么它能运行?为什么它不能运行?”,加上那时才发现了同样功能的WorldEdit-BE,里面的每个功能都充分体现了作者丰厚的数学功底和编程基础,我望之而不可及。多个因素影响下,我曾一度考虑放弃这个插件的开发,但或许是对Minecraft的热爱,或许是对编程的兴趣,或许是每完成一个功能后的成就感,亦或许是希望听到一句玩家的支持与肯定,我庆幸自己没有半途而废,完成主体开发、发布了第一个版本,学习docsify并写了第一份文档。

维护经历

没有WorldEidt-BE那样炫丽的功能,因此我打算从玩家体验入手,尽可能将一些复杂操作简单化,并听取玩家意见,让插件向着玩家方向发展。随着越来越多玩家建议的提出,项目稍具规模,QuickJS已不再适用,无奈之际突然发现了TS,类型的引入让许多bug都能在编译前被发现,于是我心一横,又花三天将所有代码都重构为了ts。

“当你想在你的代码中找到一个错误时,这很难;当你认为你的代码是不会有错误时,这就更难了”—Steve McConnell,此时我才意识到不可能一个或几个版本后就能修复所有bug。正所谓bug满天飞,人在地上追,在这里分享一个笑话,或许能帮助没有代码经验的玩家理解:
一个测试工程师走进一家酒吧,要了一杯啤酒
一个测试工程师走进一家酒吧,要了一杯咖啡
一个测试工程师走进一家酒吧,要了0.7杯啤酒
一个测试工程师走进一家酒吧,要了-1杯啤酒
一个测试工程师走进一家酒吧,要了2^32杯啤酒
一个测试工程师走进一家酒吧,要了一杯洗脚水
一个测试工程师走进一家酒吧,要了一杯蜥蜴
一个测试工程师走进一家酒吧,要了一份asdfQwer@24dg!&*(@
一个测试走进一家酒吧,什么也没要
一个测试工程师走进家酒吧,又走出去又从窗户进来又从后门出去从下水道钻进来
一个测试工程师走进家酒吧,又走出去又进来又出去又进来又出去,最后在外面把老板打了一顿
一个测试工程师走进一
一个测试工程师走进一家酒吧,要了一杯烫烫烫的锟斤拷
一个测试工程师走进一家酒吧,要了NaN杯Null
1T测试工程师冲进一家酒吧,要了500T啤酒咖啡洗脚水野猫狼牙棒奶茶
1T测试工程师把酒吧拆了
一个测试工程师化装成老板走进一家酒吧,要了500杯啤酒,并且不付钱
一万个测试工程师在酒吧外呼啸而过
一个测试工程师走进一家酒吧,要了一杯啤酒‘;DROPTABLE酒吧
测试工程师们满意地离开了酒吧
一名顾客点了一份炒饭,酒吧炸了

需要漫长的积累和版本迭代才能得到一个稳定版本,因此重构后的第一件事就是花费2天做一个自动更新功能,方便大家随时更新。

同时,考虑到github访问不稳定,部分玩家无法查看文档,于是去gitee上注册账号准备将文档备份到gitee。但是gitee发布文档前需要自拍认证,奇怪的审核机制让我每次上传照片后都判定为模糊:上传、等待审核、再次上传、等待审核、再再次上传、等待审核,前前后后花费4天后终于发布了文档。

寒假开始后,根据玩家的反馈,也陆陆续续加入了一些新的功能,尽管原来的设计不适合这些功能,但还是能改则改,改不了就重构。虽然花费大量时间,我认为这一切都值得,玩家的肯定支撑我继续更新下去。

回复

导入导出功能相对复杂一些,公式推导和化简花费了半天时间。而且需要了解导出导入的文件格式,有关的说明文档中,这些格式讲述的并不明确,需要自己进一步实验才能知道文件中每一部分的作用,看起来简单的导入导出功能又花费4天时间。公式推导、化简、编写代码、测试、修复bug、继续测试、继续维修等等,一句 “用脚写的”就概括这一系列的流程,以一种极其粗暴的方式否定他人的劳动,不禁让人唏嘘。作为免费开源插件开发者,我们大可不必每日花费大量时间维护与更新,最后换来一句冷嘲热讽

秉承着用户至上的原则,我在看到评论的第一时间就发起了私信向你核实bug,但不知处于何种原因你视而不见,在我私信后的16个小时后在线却已读不回,我并不认为这个私信中存在任何的攻击与威胁,下面附上私信原文:

您好,已收到您的反馈。在您的反馈中描述了导入时加载结构不全的问题,您是否能提供该问题的截图,以及复现该问题的环境、方法和复现步骤?

结束语

纵观整个生态,这种现象已不是个例。部分人只是开发者当做了无情的生产机器,缺少人与人之间最基本的尊重,别人将他们视为上帝,而他们却将别人踩在脚底,当做他们的垫脚石。把一句话送给他们:“不尊重别人的人,别人也不会尊重他!

压垮骆驼的从来不是最后一根稻草,每日面对着数不尽的各种生活和学业的压力烦恼,我没有抱怨,因为我知道,这里有一片宁静的港湾。如今最后的宁静被打破,而我也不是当初那个满怀信心的自己,为了能给玩家更好的体验,我开启了日复一日的床和电脑两点一线生活,放弃了学业,放弃了家人和朋友,放弃了生活,到头来却落得一句恶毒的骂名

可悲。可笑。


最怕的不是没有梦想
而是拥有梦想过后
被现实打败
打败你的不是无能
而是已经麻木
麻木的心死了
死了的心不再跳动
不怕梦想流于现实
只怕梦想止步于现实

更新计划​

以下是停更前的更新计划:
  • [已完成] 重构为ts + nodejs插件
  • [已完成] 更新适配器:同步更新后有改变的文件格式
  • [已完成] 多种类快捷键触发方式,如:破坏触发
  • [已完成] 增强基础形状包,添加:球体、椭球体等
  • [已完成] 方块属性编辑器
  • [已完成] 导入、导出:将结构导出为mcstructure等格式,将这些格式导入为结构
  • [] schematic格式转换器
  • [] 免材料模式,生存中需要收取材料
  • [] 区分上下半砖模式:整砖破坏上半部分得到下砖
  • [] 升级重置版CALL(暂命名为CA++ 更新待定):
    • [] 多平台支持
    • [] 第三方独立插件支持
    • [] 多形状显示
    • [] 笔刷工具
    • [] 材质刷工具(画笔)
    • [] 多语言
    • [] 多类型选区
    • [] 泛洪填充
    • [] 点、线、面、体模式
    • [] 多类型曲线生成
    • [] obj模型导入、体素
    • [] 点云转体
    • [] 方程式生成结构
    • [] 多种结构修改算法:平滑、细分、旋转、重力...
    • [] 纹理、颜色
    • [] 蒙版(过滤器)
    • [] 像素文字生成、字体库
    • [] ?模型脚本(如OpenSCAD Script)
    • [] ? AI辅助建模
    • ......
    • 更多功能有待讨论,本列表列出的功能仅为设想,不保证实现可行性。若您有更好的建议可联系作者,欢迎各位踊跃提出想法和建议。
  • shape.jpg
    shape.jpg
    59.9 KB · 查看: 9,166
作者
superx1001
下载
5,550
查看
17,753
首次发布
最后更新

评分

5.00 星 24 次评分

资源团队

superx1001 的其他资源

最新更新

  1. 1.3.1

    1.3.1 适配ll3 需要0.11.1以上版本并且安装lse-nodejs,形状包还没好,两点选区导入导出复制粘贴完全好了。...
  2. 1.2.1

    Bug修复 修复非主世界中加载结构错误 修复形状包方形和直线错误 修改 将大部分方法中的参数: player, playerData, 合并重构为caPlayer...
  3. 1.2.0

    新特性 添加文本国际化,可通过改变客户端语言来改变插件语言 形状包国际化 添加快捷键变量: block.states 修改...

最新评价

非常好的插件,要是能对接iland领地就更好了
非常优秀的插件
迟到的好评,作者辛苦了
优秀的建造工具
superx1001
superx1001
感谢支持
最好用的创世神类插件!!!
superx1001
superx1001
感谢支持
getScore(money)
superx1001
superx1001
感谢支持
超棒的插件
作者可以增加一个导入schematic文件的功能吗
superx1001
superx1001
感谢支持。该功能已在更新计划中,目前已有很多软件可以将schematic转为mcstructure,可以进群获取相应软件
很棒的插件
superx1001
superx1001
感谢支持
后退
顶部 底部