会赢的
忆然
-
论坛似了,对吗 -
我下辈子不碰Network!!!!!


-
[模组推荐]在进入游戏的时候从网上获取信息展示本文使用:CC-BY-NC-SA 4.0协议
使用的mod为[YiRanVersionCheck]
实际上就是在推荐我自己的mod
这个mod会在进入游戏的时候访问指定的链接并在聊天栏提示你其中的文本使用实例:

如何使用?
首先你需要开通一个gitee仓库
github也行,但不一定好访问
在里面创建一个纯文本文件建议使用log后缀本文使用的例子为
https://gitee.com/bakayiran/mmrryyhh/blob/master/test.txt本整合包免费发布,私自贩卖不得好死 目前最新版本:§61.0.0-hotfix 当前版本:§6${version} 链接:[[§b§n获取最新信息§r]](https://gitee.com/bakayiran/mmrryyhh/edit/master/test.txt) 若在游玩整合包遇到问题请先在[§b§n百科](https://www.mcmod.cn/)寻求答案 可以灌注下[§b§n作者(B站)](https://www.bilibili.com/)吗OVO文本中的${version}会被替换成config里面的版本
string则会解析为一个可点击,点击打开指定的链接
一行目前只能存在一个可点击文本配置文件:
#在这里填入URL checkUrl = "https://gitee.com/bakayiran/mmrryyhh/blob/master/test.txt" #在这里填入次要URL secondaryCheckUrl = "null" #当前版本 version = "0.1.0"本mod会先尝试从主要链接获取文本,失败则会尝试次要链接
你也可以使用kjs修改配置文件//在Startup,当然你也可以放client ClientEvents.init(event => { let $Config = Java.loadClass("com.yiran.versioncheck.Config") $Config.VERSION.set("0.1.0") $Config.CHECK_URL.set("https://gitee.com/bakayiran/mmrryyhh/blob/master/test.txt") //$Config.CHECK_URL2.set("null") })为什么使用这个mod?
用于告诉整合包玩家目前的整合包版本和现在版本
提供bug反馈链接
用作进入世界的消息提醒
声明整合包免费(倒勾不得好死) -
[原创][KubeJS]kubejs获取玩家所处坐标的结构本文使用:CC-BY-NC-SA 4.0协议
直接上代码
在此推荐下来自ZZZank的ProbeJS Legacy
(已经支持1.20.1了(喜))/** * 获取实体坐标的所有结构 * @param {Internal.Entity} entity * @returns {$StructureStart_[]} */ function getAllStructuresAt(entity) { let structureList = [] /**@type {$ServerLevel_} */ let serverLevel = entity.level let entityPos = entity.block.pos /** @type {Internal.Structure[]} */ let structureArray = serverLevel.structureManager().getAllStructuresAt(entityPos).keySet().toArray() for (let structure of structureArray) { let structureStart = serverLevel.structureManager().getStructureAt(entityPos, structure) if (structureStart.isValid()) { structureList.push(structureStart) } } return structureList } -
[原创][KubeJS][Mod]如何在1.21.1NeoForge编写一个KubeJS的附属Mod@LirxOwO 虾头栗子,看我keybindjs仓库去
-
[原创][KubeJS][Mod]如何在1.21.1NeoForge编写一个KubeJS的附属Mod呜呜,我当时写keybindjs找extra怎么写找了半天
苦呀西 -
[原创][KubeJS][Mod]如何在1.21.1NeoForge编写一个KubeJS的附属Mod怎么没介绍event的extra怎么写
-
[原创][Mod]基于opengl取色的hsv色盘屏幕俺寻思能行.jpg

-
养老向的物品抽奖机:虚空草莓呜,硬编码名称

-
[原创][KubeJS][持续更新?]在kjs中使用createCustom进行注册物品本文使用: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 }) }) -
[原创][KubeJS 7][BrokenClassFilter]关于Nashorn在kjs中的应用前言
ClassFilter是kjs的一个保护机制,笔者在这里不建议进行对ClassFilter动手脚
此篇仅以替换kjs的ClassFilter为例子展示Nashorn在kjs的使用
本文使用:CC-BY-NC-SA 4.0协议因为1.21.1的kubejs ban了反射,因此只能在nashorn里面进行操作
Nashorn比较复杂,这次就仅展示成品let $KubeJS = Java.loadClass("dev.latvian.mods.kubejs.KubeJS") let $ServerLifecycleHooks = Java.loadClass("net.neoforged.neoforge.server.ServerLifecycleHooks") /**@type {$MinecraftServer_} */ let Server = $ServerLifecycleHooks.getCurrentServer() //所有的scriptmanager获取 let ServerScriptMagager = Server.getServerResources().managers().kjs$getServerScriptManager() let ClientScriptMagager = $KubeJS.getClientScriptManager() let StartupScriptMagager = $KubeJS.getStartupScriptManager() let $ScriptEngineManager = Java.loadClass("javax.script.ScriptEngineManager") let Nashorn = new $ScriptEngineManager().getEngineFactories()[0].getScriptEngine() Nashorn.eval(` var Clazz = Java.type("java.lang.Class") var ClassFilter = Java.type("dev.latvian.mods.kubejs.plugin.ClassFilter") var HashSet = Java.type("java.util.HashSet") var ArrayList = Java.type("java.util.ArrayList") var ScriptManager$Clazz = Clazz.forName("dev.latvian.mods.kubejs.script.ScriptManager") var ScriptManager$classFilter$Field = ScriptManager$Clazz.getDeclaredField("classFilter") var ClassFilter$Clazz = Clazz.forName("dev.latvian.mods.kubejs.plugin.ClassFilter") var ClassFilter$denyStrong$Field = ClassFilter$Clazz.getDeclaredField("denyStrong") var ClassFilter$denyWeak$Field = ClassFilter$Clazz.getDeclaredField("denyWeak") ScriptManager$classFilter$Field.setAccessible(true) ClassFilter$denyStrong$Field.setAccessible(true) ClassFilter$denyWeak$Field.setAccessible(true) var unlock=function(ScriptMagager){ var ClassFilter = ScriptManager$classFilter$Field.get(ScriptMagager) ClassFilter$denyStrong$Field.set(ClassFilter,new HashSet()) ClassFilter$denyWeak$Field.set(ClassFilter,new ArrayList()) } `) //参数传入scriptmanager即可爆破classfilter Nashorn.invokeFunction("unlock",ServerScriptMagager) let $File = Java.loadClass("java.io.File") -
[原创]使用kjs进行文件的删除本文使用:CC-BY-NC-SA 4.0协议
因为kjs的JsonIO并未限制文件名称的后缀
因此这个操作并不安全kubejs的jsonio可以将第二个参数填入空字符串来删除文件
JsonIO.write('kubejs/assets/test.nbt', "")
如此便删除了.minecraft/kubejs/assets里面的test.nbt文件 -
[原创?][KJS6][EE.JS]较为方便地为矿物提供注册与通用配方修改的轮子你的mod加载器和版本的tag呢(
-
[原创][KubeJS 6][BrokenClassFilter]关于反射的应用场景与使用实例的论述@不是椰浆 彳亍,我去塞一个
-
[1.20.1]强制加载并渲染特定区块@Mafuyu 区块强制加载有用(点头
-
[1.20.1]强制加载并渲染特定区块前排瞻仰伟大的真冬女神,真是太有用了(爱你)
-
【典型案例】崩溃求解答@半梦 你紫菜吧
-
在这测试一下各种功能我测!
-
已经,没有modding的理由了不modding,那就铜丝你
