跳转至内容
  • [原创]使用kjs进行文件的删除

    灵感大王 kubejs 危险行为 数据操作
    4
    0 赞同
    4 帖子
    221 浏览
    草莓呜咩B
    @芒果凍布丁 我揣测Client可能被安全化了,所以loadClass,能直接用的话就安全多了呢。
  • [原创][Mod]基于opengl取色的hsv色盘屏幕

    妙妙工具 渲染
    5
    0 赞同
    5 帖子
    113 浏览
    不是客服M
    没有教程的话,哇达西?
  • 养老向的物品抽奖机:虚空草莓

    灵感大王 kubejs 作物 forge
    2
    0 赞同
    2 帖子
    72 浏览
    忆然
    呜,硬编码名称
  • 我喜欢你

    壁画石窟
    8
    1 赞同
    8 帖子
    100 浏览
    昨天没做东西,今天也没K
    @忆然 在 我喜欢你 中说: @read 补药啊,没有你我的对话框谁来补啊 会有的
  • 论坛怎么蓝蓝的

    壁画石窟
    2
    0 赞同
    2 帖子
    56 浏览
    不是椰浆
    有吗(
  • 0 赞同
    3 帖子
    190 浏览
    sdjgeS
    补药在1.21.1偷走我的钱包
  • 1 赞同
    1 帖子
    171 浏览
    忆然
    本文使用:CC-BY-NC-SA 4.0协议 kjs本身提供的物品注册比较有限,在注册某些kjs未提供的item的时候我们就需要用到createCustom 如果有需要的item注册可以在本文下方留言,会考虑更新 createCustom注册model是没有的,也就是你还得去写一份model.json(这部分可以参考原版wiki) 下面是使用createCustom去注册一个弓的例子 let $BowItem = Java.loadClass("net.minecraft.world.item.BowItem") let $Item$Properties = Java.loadClass("net.minecraft.world.item.Item$Properties") StartupEvents.registry("item", event => { event.createCustom("modid:item_name", () => { let properties = new $Item$Properties() //修改耐久 为0则无耐久属性 properties.durability(0) //修改最大堆叠数量 properties.stacksTo(1) //修改稀有度 properties.rarity("epic") //创建新的bowitem let item = new $BowItem(properties) //返回新的bowitem进行注册 return item }) })
  • 0 赞同
    4 帖子
    144 浏览
    QiHuang02Q
    这里贴一份1.21.1版本的实现
  • 2 赞同
    2 帖子
    67 浏览
    半梦
    是幻梦吉斯,我们有救了
  • 1 赞同
    14 帖子
    296 浏览
    sdjgeS
    补药偷走我的钱包
  • [搬运][Windows][JSON-i18n]一款JSON文件快速本地化的翻译工具

    妙妙工具
    1
    0 赞同
    1 帖子
    63 浏览
    不是椰浆
    项目地址:MonianHello/JSON-i18n: JSON文件快速本地化的翻译工具 以下介绍为项目地址readme,因介绍已较为详细,故不另行编写 本帖内不提供二次分发文件,请前往项目地址自行下载! JSON-i18n JSON文件快速本地化的翻译工具 部分功能参考自CFPATools/Minecraft-Mods-Translator: Mods Translator for Minecraft 1.16+ (github.com) [image: image-20230608112735258.png?raw=true] 主要功能: 对接Minecraft模组翻译参考词典 (mcmod.cn),可以在程序内直接进行查询 对接文本翻译_机器翻译-百度AI开放平台 (baidu.com),可以一键对全文进行机器翻译 可以快速替换值中的单词而不会影响键名 支持切换深色模式与浅色模式,支持修改ui文字样式大小、保存布局后再次启动后自动应用、(进阶)提供对ui的高度自定义设置 程序提供五个快捷键: Ctrl+F 跳转至搜索 Ctrl+H 跳转至替换 Ctrl+Shift+A 全选替换候选项 Ctrl+Up(方向键上) 跳转至审阅模式上一个键名 Ctrl+Down(方向键下) 跳转至审阅模式下一个键名 详细说明: 首次启动: 首次启动后需要设置工作目录,设置完成后也可以在左上角 选项-首选项中修改 注意:请避免通过直接修改config.ini的方式修改配置,由于不同设备的文本编辑器编码方式可能不同,错误的编码方式会导致程序异常。如果出现此类情况请删除config.ini以初始化程序 外观设置: 程序内支持修改全局字体及大小,在左上角 选项-首选项中修改。使用鼠标滚轮可以快速调整不同的字体及大小,方便预览。同时支持切换深色模式 界面说明: 程序左侧为文件浏览区域,可以快速选择需要打开的json文件 程序右侧分别是查询栏和替换栏 程序中间为操作区域,用来编辑json文件,在浏览模式下点击行号可以快速跳转到审阅模式 菜单功能: 上方菜单栏中有以下四个功能: 首选项 保存当前布局 一键清空空格 安全模式保存(在保存文件按钮失效时使用) 左侧文件浏览区域中可以右键文件呼出菜单,有以下四个功能: 在资源管理器中打开 移动到回收站 复制并重命名 重命名 翻译功能: 翻译功能需要首先前往百度智能云-管理中心 (baidu.com)获取免费测试资源(500万字符/年),后续将陆续支持其他翻译api。 使用前需要在配置文件中填入获取到的接口ak/sk,具体步骤见下文。 测试成功后,可以点击左下角 翻译文件按钮,程序将自动对全文进行翻译。此时翻译并不会直接替换原文,需要用户进行进一步校对。如不需要,可以点击左下角 复制机翻按钮,一键替换译文与原文。完成后点击左下角 保存文件按钮即可保存更改。 [image: image-20230608115821872.png?raw=true] 翻译接口领取步骤: 1、登录百度账号,选择领取 文本翻译-通用版 [image: image-20230608115139348.png?raw=true] 2、创建应用,接口选择 文本翻译-通用版,其他内容无要求 [image: image-20230608115356481.png?raw=true] 3、复制ak与sk到程序中,测试成功后即可使用 [image: image-20230608115533624.png?raw=true] [image: image-20230608115621227.png?raw=true]
  • 常见问题 Q&A

    已固定 论坛事务
    2
    2 赞同
    2 帖子
    334 浏览
    不是椰浆
    与问题无关的回复将会被删除
  • 【发帖必读】妙妙工具版版规与发帖规范

    已固定 已锁定 妙妙工具
    1
    0 赞同
    1 帖子
    64 浏览
    不是椰浆
    总览第一章 板块定位第二章 发帖规范第三章 违规行为第四章 附则 第一章 板块定位 第一条 核心宗旨 妙妙工具板块致力于分享实用技术资源,包括但不限于: 原创或转载的程序、网页工具 KubeJS/CrT魔改脚本、工具集、配置集、Lib库 可复用的代码轮子、开发模板 其他可提升效率的技术解决方案 第二条 内容导向 鼓励发布完整度高、逻辑清晰、注释规范的作品,倡导技术交流与开源精神。 第二章 发帖规范 第三条 标题格式 一、基础格式 [原创/搬运][工具平台][工具英文名——工具译名] 其他说明与描述 说明: 原创/搬运:必填,标明内容性质(搬运需注明原出处); 工具平台:必填,标明工具类型或适用平台(如 Windows / Forge / KubeJS 6 / 在线工具 等); 工具名称: 有中英文名:格式为 英文名——中文译名; 无中文译名:可仅写英文名; 无英文名:可仅写中文名; 其他说明:选填,补充版本、功能亮点或短评(如 v3.2.1更新 / 便捷翻译工具)。 二、注意事项 标题中英文间用 短破折号 ——(非短横线 -); 标题中方括号使用英文字符[],而不使用中文字符【】 禁止添加夸张符号(如 !!! 【爆款】); 平台分类需简洁明确,避免模糊表述(如 [Minecraft] 应改为 [Minecraft 1.20.1-1.21.X])。 三、格式示例 [转载][Windows][JSON-i18n]一款JSON文件快速本地化的翻译工具 [转载][CrT 1.12.2][GrassUtils]基于CraftTweaker的便捷工具类集合 第四条 版权声明 原创内容:需在正文显著位置标注原创声明以及授权协议; 搬运内容: 一般情况下禁止二次转载(即“二转”),原搬运贴年久失修例外(超过三个大版本更新未同步内容); 若原作者注明转载需要授权,或原作品协议不允许转载,需在正文顶部展示授权协议截图/链接; 二次分发需要在协议允许的情况下进行,或获取原作者授权,需在正文顶部展示授权协议截图/链接; 衍生作品:若涉及二改、二次分发或反向工程,必须符合原始协议条款,否则视为剽窃。 第五条 安全警示 内容若包含以下操作,必须添加 unsafe 标签并在正文详细说明风险: 修改系统关键文件 静默执行的操作 涉及敏感权限 存在数据丢失/泄露风险的功能 (示例): 本脚本涉及对系统文件进行修改的操作! 第六条 质量管控 禁止发布以下低质量内容: 功能重复:与已有工具核心功能高度相似; 代码简陋:无异常处理、无注释、逻辑混乱的“玩具代码”; 可替代性强:可通过现有工具组合或简单命令实现同等效果; 描述模糊:未提供使用场景、参数说明或效果演示。 注:若承诺改进,需在标题添加 [持续更新] 并公示开发计划(如更新日志)。 第三章 违规行为 第七条 绝对禁止 剽窃:直接复制他人代码未标注来源,或篡改版权声明; 黑箱分发:对闭源工具进行逆向工程并违规传播; 恶意组件:植入后门、挖矿代码、数据爬虫等危害性内容; 虚假更新:标注 [持续更新] 但超30天无实质进展且未说明原因。 第八条 内容删除标准 未标注 [unsafe] 的高风险工具; 未提供授权证明的搬运内容; 被3名以上用户举报核实为低创作品。 第九条 违规处罚 违规类型 处理措施 未标注[unsafe] 警告+强制编辑 低创内容 删帖+禁止3日内发同类主题 剽窃/黑箱分发 永久封禁账号+全论坛置顶晒尸 第四章 附则 第十条 本规则自发布之日起生效,最终解释权归VariedMC管理组所有。
  • [1.20.1]强制加载并渲染特定区块

    灵感大王 渲染 forge
    5
    1 赞同
    5 帖子
    190 浏览
    忆然
    @Mafuyu 区块强制加载有用(点头
  • 谁来测测我的?

    壁画石窟
    2
    0 赞同
    2 帖子
    38 浏览
    不是客服M
    cool
  • 【典型案例】崩溃求解答

    已锁定 已解决 周公解梦
    3
    0 赞同
    3 帖子
    236 浏览
    不是客服M
    问答区请不要发表无效内容。
  • 美食再就业:用紫颂果慕斯进行定点传送

    灵感大王 kubejs 物品
    1
    3 赞同
    1 帖子
    50 浏览
    草莓呜咩B
    美食们可不止能饱腹而已! 紫颂果慕斯既然是紫颂果做的,就和传送脱不了关系? 现在可以将它在铁砧上改名为坐标,逗号间隔,吃了就可以传送到该坐标,是不是很方便呀。 不过还是要消耗一点点经验呢。 ItemEvents.foodEaten("kitchenkarrot:chorus_mousse", event => { let position = event.player.mainHandItem.displayName.getString().slice(1, -1).split(","); if (event.player.xpLevel < 3) event.player.statusMessage = "经验等级不足, 需要三级经验!"; else if (position.length == 3) { event.player.setPosition(position[0], position[1], position[2]); event.player.addXPLevels(-3); } }); 那么草莓慕斯会是什么效果呢?要是能召唤草莓军团就太帅了!
  • 程序猿梗图

    壁画石窟
    1
    0 赞同
    1 帖子
    42 浏览
    真冬M
    [image: 1747902889106-image_1061376123293768.jpg] [image: 1747902900919-image_1061371682756269.jpg] [image: 1747902905914-image_1061332528610442.jpg] [image: 1747902911391-image_1061301561331800.jpg] [image: 1747902916637-image_976141317588545.jpg] [image: 1747902958714-1638441314448-2021-12-02-18.23.38.webp] [image: 1747902991851-1648277883321-22118451-3961-4997-ae8b-de32f03ef7f9-qq%E5%9B%BE%E7%89%8720220326145519.webp]
  • 怎么没有板式斑块

    壁画石窟
    4
    0 赞同
    4 帖子
    51 浏览
    真冬M
    原本我发了一个,被重置了捏。
  • 1 赞同
    5 帖子
    200 浏览
    不是客服M
    翻了一下Forge原生的有这些 public static final RegistryObject<Codec<NoneBiomeModifier>> NONE_BIOME_MODIFIER_TYPE = BIOME_MODIFIER_SERIALIZERS.register("none", () -> Codec.unit(NoneBiomeModifier.INSTANCE)); /** * Stock biome modifier for adding features to biomes. */ public static final RegistryObject<Codec<AddFeaturesBiomeModifier>> ADD_FEATURES_BIOME_MODIFIER_TYPE = BIOME_MODIFIER_SERIALIZERS.register("add_features", () -> RecordCodecBuilder.create(builder -> builder.group( Biome.LIST_CODEC.fieldOf("biomes").forGetter(AddFeaturesBiomeModifier::biomes), PlacedFeature.LIST_CODEC.fieldOf("features").forGetter(AddFeaturesBiomeModifier::features), Decoration.CODEC.fieldOf("step").forGetter(AddFeaturesBiomeModifier::step) ).apply(builder, AddFeaturesBiomeModifier::new)) ); /** * Stock biome modifier for removing features from biomes. */ public static final RegistryObject<Codec<RemoveFeaturesBiomeModifier>> REMOVE_FEATURES_BIOME_MODIFIER_TYPE = BIOME_MODIFIER_SERIALIZERS.register("remove_features", () -> RecordCodecBuilder.create(builder -> builder.group( Biome.LIST_CODEC.fieldOf("biomes").forGetter(RemoveFeaturesBiomeModifier::biomes), PlacedFeature.LIST_CODEC.fieldOf("features").forGetter(RemoveFeaturesBiomeModifier::features), new ExtraCodecs.EitherCodec<List<Decoration>, Decoration>(Decoration.CODEC.listOf(), Decoration.CODEC).<Set<Decoration>>xmap( either -> either.map(Set::copyOf, Set::of), // convert list/singleton to set when decoding set -> set.size() == 1 ? Either.right(set.toArray(Decoration[]::new)[0]) : Either.left(List.copyOf(set)) ).optionalFieldOf("steps", EnumSet.allOf(Decoration.class)).forGetter(RemoveFeaturesBiomeModifier::steps) ).apply(builder, RemoveFeaturesBiomeModifier::new)) ); /** * Stock biome modifier for adding mob spawns to biomes. */ public static final RegistryObject<Codec<AddSpawnsBiomeModifier>> ADD_SPAWNS_BIOME_MODIFIER_TYPE = BIOME_MODIFIER_SERIALIZERS.register("add_spawns", () -> RecordCodecBuilder.create(builder -> builder.group( Biome.LIST_CODEC.fieldOf("biomes").forGetter(AddSpawnsBiomeModifier::biomes), // Allow either a list or single spawner, attempting to decode the list format first. // Uses the better EitherCodec that logs both errors if both formats fail to parse. new ExtraCodecs.EitherCodec<>(SpawnerData.CODEC.listOf(), SpawnerData.CODEC).xmap( either -> either.map(Function.identity(), List::of), // convert list/singleton to list when decoding list -> list.size() == 1 ? Either.right(list.get(0)) : Either.left(list) // convert list to singleton/list when encoding ).fieldOf("spawners").forGetter(AddSpawnsBiomeModifier::spawners) ).apply(builder, AddSpawnsBiomeModifier::new)) ); /** * Stock biome modifier for removing mob spawns from biomes. */ public static final RegistryObject<Codec<RemoveSpawnsBiomeModifier>> REMOVE_SPAWNS_BIOME_MODIFIER_TYPE = BIOME_MODIFIER_SERIALIZERS.register("remove_spawns", () -> RecordCodecBuilder.create(builder -> builder.group( Biome.LIST_CODEC.fieldOf("biomes").forGetter(RemoveSpawnsBiomeModifier::biomes), RegistryCodecs.homogeneousList(ForgeRegistries.Keys.ENTITY_TYPES).fieldOf("entity_types").forGetter(RemoveSpawnsBiomeModifier::entityTypes) ).apply(builder, RemoveSpawnsBiomeModifier::new)) );