├── .gitignore ├── .vscode └── settings.json ├── scripts ├── Numerical_Mana_In_Jade │ ├── 1.png │ ├── README.md │ ├── .kjspkg │ ├── startup_scripts │ │ └── NumericalMana.startup.js │ └── client_scripts │ │ └── NumericalMana.client.js ├── Void_Convert │ ├── README.md │ ├── .kjspkg │ └── server_scripts │ │ └── VoidConvert.server.js ├── World_Notification │ ├── README.md │ ├── .kjspkg │ └── server_scripts │ │ └── World_Notification │ │ └── Boss Death.js ├── Dye_Fluid │ ├── assets │ │ └── dye_fluid │ │ │ └── textures │ │ │ └── item │ │ │ └── dye_base.png │ ├── README.md │ ├── .kjspkg │ ├── client_scripts │ │ └── DyeFluid.client.js │ ├── startup_scripts │ │ └── DyeFluid.startup.js │ └── server_scripts │ │ └── DyeFluid.server.js ├── Saros_Create │ ├── assets │ │ └── saros_create │ │ │ ├── textures │ │ │ └── item │ │ │ │ ├── raw_diamond.png │ │ │ │ ├── diamond_nugget.png │ │ │ │ ├── dirty_netherite_1.png │ │ │ │ ├── dirty_netherite_2.png │ │ │ │ ├── dirty_netherite_3.png │ │ │ │ ├── dirty_netherite_4.png │ │ │ │ ├── dirty_netherite_5.png │ │ │ │ ├── netherite_scrap_1.png │ │ │ │ ├── netherite_scrap_2.png │ │ │ │ ├── netherite_scrap_3.png │ │ │ │ ├── netherite_scrap_4.png │ │ │ │ ├── netherite_scrap_5.png │ │ │ │ ├── dirty_netherite_final.png │ │ │ │ └── netherite_scrap_final.png │ │ │ └── lang │ │ │ └── en_us.json │ ├── .kjspkg │ ├── README.md │ ├── startup_scripts │ │ └── SarosCreate.startup.js │ └── server_scripts │ │ └── SarosCreate.server.js ├── Invisible_Item_Frame │ ├── .kjspkg │ ├── server_scripts │ │ └── InvisibeItemFrame.server.js │ └── README.md ├── Delightful_Tinkers │ ├── assets │ │ └── delightful_tinkers │ │ │ └── textures │ │ │ └── item │ │ │ ├── cod_jerky.png │ │ │ ├── sky_drop.png │ │ │ ├── bacon_jerky.png │ │ │ ├── beef_jerky.png │ │ │ ├── blood_drop.png │ │ │ ├── dark_burger.png │ │ │ ├── earth_drop.png │ │ │ ├── ender_drop.png │ │ │ ├── magma_drop.png │ │ │ ├── chicken_jerky.png │ │ │ ├── darker_burger.png │ │ │ ├── monster_jerky.png │ │ │ ├── mutton_jerky.png │ │ │ ├── rabbit_jerky.png │ │ │ ├── salmon_jerky.png │ │ │ ├── sky_cake_slice.png │ │ │ ├── blaze_bone_broth.png │ │ │ ├── blood_bone_broth.png │ │ │ ├── blood_cake_slice.png │ │ │ ├── earth_cake_slice.png │ │ │ ├── ender_cake_slice.png │ │ │ ├── magma_cake_slice.png │ │ │ ├── pufferfish_jerky.png │ │ │ ├── cooked_piglin_face.png │ │ │ ├── necrotic_bone_broth.png │ │ │ ├── tropical_fish_jerky.png │ │ │ └── wither_bone_broth.png │ ├── .kjspkg │ ├── README.md │ ├── startup_scripts │ │ └── DelightfulTinkers.startup.js │ └── server_scripts │ │ └── DelightfulTinkers.server.js ├── Faster_Climbing │ ├── .kjspkg │ ├── client_scripts │ │ └── FasterClimbing.client.js │ └── README.md ├── Check_Point │ ├── README.md │ ├── .kjspkg │ └── server_scripts │ │ └── CheckPoint.server.js ├── Infinity_Pickaxe │ ├── .kjspkg │ ├── README.md │ └── server_scripts │ │ └── InfinityPickaxe.server.js ├── Create_Delight │ ├── .kjspkg │ ├── README.md │ └── server_scripts │ │ └── CreateDelight.server.js └── Mana_Pool_Counter │ ├── README.md │ ├── .kjspkg │ └── server_scripts │ └── ManaPoolCounter.server.js ├── generate_list.py ├── README.md ├── LICENSE.md └── generate_folder.py /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .temp 3 | .cache 4 | dist 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.autoSave": "off" 3 | } -------------------------------------------------------------------------------- /scripts/Numerical_Mana_In_Jade/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Numerical_Mana_In_Jade/1.png -------------------------------------------------------------------------------- /scripts/Void_Convert/README.md: -------------------------------------------------------------------------------- 1 | # Void Convert|虛空轉化 2 | 3 | Transforms items in the void 4 | 5 | --- 6 | 7 | 在虛空中轉化物品 8 | 9 | ## Dependencies|前置 10 | 11 | - None|無 12 | -------------------------------------------------------------------------------- /scripts/World_Notification/README.md: -------------------------------------------------------------------------------- 1 | # World Notification|世界通知 2 | 3 | World Notifications. 4 | 5 | --- 6 | 7 | 世界通知系列 8 | 9 | ## Dependencies|前置 10 | 11 | - None|無 12 | -------------------------------------------------------------------------------- /scripts/Dye_Fluid/assets/dye_fluid/textures/item/dye_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Dye_Fluid/assets/dye_fluid/textures/item/dye_base.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/raw_diamond.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/raw_diamond.png -------------------------------------------------------------------------------- /scripts/Dye_Fluid/README.md: -------------------------------------------------------------------------------- 1 | # Dye Fluid|流體染料 2 | 3 | Adjustable Color Dye Fluid 4 | 5 | --- 6 | 7 | 可調色的染料流體 8 | 9 | ## Dependencies|前置 10 | 11 | ### Mods|模組 12 | 13 | - Create|動力機械 14 | - KubeJS Create 15 | -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/diamond_nugget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/diamond_nugget.png -------------------------------------------------------------------------------- /scripts/World_Notification/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Send World Notifactions", 4 | "versions": [ 5 | 9, 10 6 | ], 7 | "modloaders": [ 8 | "forge" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /scripts/Invisible_Item_Frame/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Make item can be invisible", 4 | "versions": [ 5 | 9, 10 6 | ], 7 | "modloaders": [ 8 | "forge" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_1.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_2.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_3.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_4.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_5.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_1.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_2.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_3.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_4.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_5.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/cod_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/cod_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/sky_drop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/sky_drop.png -------------------------------------------------------------------------------- /scripts/Faster_Climbing/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415, FalAut", 3 | "description": "Make Climbing Faster", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/dirty_netherite_final.png -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Saros_Create/assets/saros_create/textures/item/netherite_scrap_final.png -------------------------------------------------------------------------------- /scripts/Void_Convert/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415, FalAut", 3 | "description": "Transforms items in the void", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ] 11 | } -------------------------------------------------------------------------------- /scripts/Check_Point/README.md: -------------------------------------------------------------------------------- 1 | # Checkpoint | 記錄點 2 | 3 | Recordable spawn point, right-click the name tag to return to the record point. 4 | 5 | --- 6 | 7 | 可記錄的重生點,右鍵命名牌回到紀錄點。 8 | 9 | ## Dependencies|前置 10 | 11 | - None|無 12 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/bacon_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/bacon_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/beef_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/beef_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_drop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_drop.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/dark_burger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/dark_burger.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/earth_drop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/earth_drop.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/ender_drop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/ender_drop.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/magma_drop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/magma_drop.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/chicken_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/chicken_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/darker_burger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/darker_burger.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/monster_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/monster_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/mutton_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/mutton_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/rabbit_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/rabbit_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/salmon_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/salmon_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/sky_cake_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/sky_cake_slice.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blaze_bone_broth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blaze_bone_broth.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_bone_broth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_bone_broth.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_cake_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/blood_cake_slice.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/earth_cake_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/earth_cake_slice.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/ender_cake_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/ender_cake_slice.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/magma_cake_slice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/magma_cake_slice.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/pufferfish_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/pufferfish_jerky.png -------------------------------------------------------------------------------- /scripts/Infinity_Pickaxe/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Infinitely destroys a block's pickaxe.", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/cooked_piglin_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/cooked_piglin_face.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/necrotic_bone_broth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/necrotic_bone_broth.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/tropical_fish_jerky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/tropical_fish_jerky.png -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/wither_bone_broth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Mango-Minecraft-Project/Mango-KubeJScripts/HEAD/scripts/Delightful_Tinkers/assets/delightful_tinkers/textures/item/wither_bone_broth.png -------------------------------------------------------------------------------- /scripts/Create_Delight/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Recordable spawn point, right-click the name tag to return to the record point.", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /scripts/Invisible_Item_Frame/server_scripts/InvisibeItemFrame.server.js: -------------------------------------------------------------------------------- 1 | ItemEvents.rightClicked("minecraft:item_frame", (event) => { 2 | const { item } = event; 3 | if (item.displayName.string == "[invisible]") { 4 | item.nbt.EntityTag = { Invisible: NBT.i(1) }; 5 | } 6 | }); 7 | -------------------------------------------------------------------------------- /scripts/Numerical_Mana_In_Jade/README.md: -------------------------------------------------------------------------------- 1 | # Numerical Mana In Jade|可數的魔力 2 | 3 | ![](1.png) 4 | 5 | Showing Numerical Mana information in Jade 6 | 7 | --- 8 | 9 | 在 Jade 中顯示可數的魔力資訊 10 | 11 | ## Dependencies|前置 12 | 13 | ### Mods|模組 14 | 15 | - Botania 16 | - Jade 17 | - KubeJS Additions 18 | -------------------------------------------------------------------------------- /scripts/Saros_Create/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Saro's Power Machine by Sarocesch KubeJS Remake", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ], 11 | "dependencies": [ 12 | "mod:create" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /scripts/Dye_Fluid/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Adjustable Color Dye Fluid", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ], 11 | "dependencies": [ 12 | "mod:create", 13 | "mode:kubejs_create" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /scripts/Invisible_Item_Frame/README.md: -------------------------------------------------------------------------------- 1 | # Invisibe Item Frame|隱形物品展示框 2 | 3 | After naming the item frame `invisible`, right click on the item and update it to make the item frame invisible. 4 | 5 | --- 6 | 7 | 將物品展示框命名為 `invisible` 後,拿著物品右鍵更新後即可將物品展示框轉換成隱形的。 8 | 9 | ## Dependencies|前置 10 | 11 | - None|無 12 | -------------------------------------------------------------------------------- /scripts/Mana_Pool_Counter/README.md: -------------------------------------------------------------------------------- 1 | # Mana-Pool-Counter|瑪娜池計數器 2 | 3 | Right click to show the amount of mana in mana pool. 4 | 5 | --- 6 | 7 | 右鍵顯示魔力池的魔力數量 8 | [\[KJS Tricks\]查看魔力池魔力的具体数值 - \[KJS\]KubeJS](https://www.mcmod.cn/post/3406.html) 9 | 10 | ## Dependencies|前置 11 | 12 | ### Mod|模組 13 | 14 | - Botania 15 | -------------------------------------------------------------------------------- /scripts/Mana_Pool_Counter/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Right-click on a block to display the mana content of the mana pool.", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ], 11 | "dependencies": [ 12 | "mod:botania" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /scripts/Infinity_Pickaxe/README.md: -------------------------------------------------------------------------------- 1 | # Infinity Pickaxe|無限十字鎬 2 | 3 | Infinitely destroys a block's pickaxe, restoring the block to its original state after `5` seconds, or not restoring the block if it has a block entity. 4 | 5 | --- 6 | 7 | 可以無限挖掘方塊的十字鎬,`5`秒後會將方塊恢復原狀,若方塊帶有方塊實體則不會恢復其方塊實體 8 | 9 | ## Dependencies|前置 10 | 11 | - None|無 12 | -------------------------------------------------------------------------------- /generate_list.py: -------------------------------------------------------------------------------- 1 | import json 2 | from pathlib import Path 3 | 4 | SCRIPT_DIR = Path("scripts") 5 | 6 | for script_dir in SCRIPT_DIR.iterdir(): 7 | with open(script_dir / ".kjspkg", encoding="utf8") as f: 8 | author = json.load(f)["author"] 9 | print(f"- [{script_dir.name.replace("_", " ")}](./scripts/{script_dir.name}/) by {author}") 10 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "是Bob氩's Delightful Tinkers KubeJS Rewrite Version", 4 | "versions": [ 5 | 8 6 | ], 7 | "modloaders": [ 8 | "forge" 9 | ], 10 | "dependencies": [ 11 | "mod:create", 12 | "mod:farmersdelight", 13 | "mod:kubejs_create" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /scripts/Numerical_Mana_In_Jade/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415, FalAut", 3 | "description": "Showing Numerical Mana information in Jade", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ], 11 | "dependencies": [ 12 | "mod:jade", 13 | "mod:kubejsadditions", 14 | "mod:botania" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /scripts/Check_Point/.kjspkg: -------------------------------------------------------------------------------- 1 | { 2 | "author": "EvanHsieh0415", 3 | "description": "Link some of the Farmer's Delight recipes to the Create", 4 | "versions": [ 5 | 9, 6 | 10 7 | ], 8 | "modloaders": [ 9 | "forge" 10 | ], 11 | "dependencies": [ 12 | "mod:create", 13 | "mod:farmersdelight", 14 | "mod:kubejs_create" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/README.md: -------------------------------------------------------------------------------- 1 | # Delightful Tinkers|工匠樂事 2 | 3 | [是Bob氩](https://www.mcmod.cn/author/26721.html)'s [Delightful Tinkers](https://www.mcmod.cn/class/8213.html) KubeJS Rewrite Version 4 | 5 | --- 6 | 7 | [是Bob氩](https://www.mcmod.cn/author/26721.html) 的 [工匠樂事](https://www.mcmod.cn/class/8213.html) KubeJS 重製版 8 | 9 | ## Dependencies|前置 10 | 11 | ### Mods|模組 12 | - Farmer's Delight|農夫樂事 13 | - Tinker's Construct|匠魂 14 | -------------------------------------------------------------------------------- /scripts/Create_Delight/README.md: -------------------------------------------------------------------------------- 1 | # Create Delight | 動力機械樂事 2 | 3 | Link some of the Farmer's Delight recipes to the Create 4 | Simultaneously publish to [CarbonKJS - Create Delight](https://github.com/carbon-kjs/create-delight) 5 | 6 | --- 7 | 8 | 將農夫樂事的一些配方連動到動力機械中 9 | 同步發布到[CarbonKJS - Create Delight](https://github.com/carbon-kjs/create-delight) 10 | 11 | ## Dependencies|前置 12 | 13 | ### Mods|模組 14 | 15 | - Create 16 | - KubeJS Create 17 | -------------------------------------------------------------------------------- /scripts/Faster_Climbing/client_scripts/FasterClimbing.client.js: -------------------------------------------------------------------------------- 1 | PlayerEvents.tick((event) => { 2 | const { player, player: { xRot, zza } } = event 3 | 4 | if (!player.onClimbable() || player.crouching) return 5 | 6 | const speed = 0.4 7 | const movement = Math.abs(xRot / 90) * speed 8 | 9 | if (xRot > 0 && zza == 0) { 10 | player.move('self', new Vec3d(0, -movement, 0)) 11 | } else if (xRot < 0 && zza > 0) { 12 | player.move('self', new Vec3d(0, movement, 0)) 13 | } 14 | }) -------------------------------------------------------------------------------- /scripts/Saros_Create/README.md: -------------------------------------------------------------------------------- 1 | # Saro's Create|Saro 的動力機械 2 | 3 | [Sarocesch](https://www.curseforge.com/members/sarocesch/) by [Saro's Power Machine](https://www.curseforge.com/minecraft/mc-mods/saro-s-create-addon-forge) KubeJS Remake 4 | 5 | --- 6 | 7 | [Sarocesch](https://www.curseforge.com/members/sarocesch/)的 [Saro的動力機械](https://www.curseforge.com/minecraft/mc-mods/saro-s-create-addon-forge) KubeJS 重製版 8 | 9 | ## Dependencies|前置 10 | 11 | ### Mods|模組 12 | 13 | - Create|動力機械 14 | - KubeJS Create 15 | -------------------------------------------------------------------------------- /scripts/Numerical_Mana_In_Jade/startup_scripts/NumericalMana.startup.js: -------------------------------------------------------------------------------- 1 | let $BlockEntity = Java.loadClass("net.minecraft.world.level.block.entity.BlockEntity"); 2 | 3 | JadeEvents.onCommonRegistration((event) => { 4 | const manaNbtKeys = ["currentMana", "maxMana", "mana", "manaToGet"]; 5 | 6 | event.blockDataProvider("kubejs:numerical_mana", $BlockEntity).setCallback((tag, accessor) => { 7 | const { blockEntity } = accessor; 8 | 9 | manaNbtKeys.forEach((key) => { 10 | if (blockEntity[key] != null) { 11 | tag.putInt(key, blockEntity[key]); 12 | } 13 | }); 14 | }); 15 | }); -------------------------------------------------------------------------------- /scripts/Faster_Climbing/README.md: -------------------------------------------------------------------------------- 1 | # Faster Climbing|快速攀爬 2 | 3 | With the development of technology, people's pace of life is getting faster. 4 | The traditional climbing speed is too slow! 5 | 6 | This script can allow you go up and down ladders much faster. 7 | Look straight down to go down the ladder faster. Look straight up to go up the ladder faster. 8 | The degree to which you look up or down will affect how fast or slow you move. 9 | 10 | --- 11 | 12 | 隨著科技的發展,人們的生活節奏越來越快。 13 | 傳統的爬梯速度太慢! 14 | 15 | 這個腳本可以讓你更快地上下梯子。 16 | 向下直視,下梯子更快。直視上方,上梯子更快。 17 | 你向上或向下看的程度會影響你移動的快慢。 18 | 19 | ## Dependencies|前置 20 | 21 | - None|無 22 | -------------------------------------------------------------------------------- /scripts/Dye_Fluid/client_scripts/DyeFluid.client.js: -------------------------------------------------------------------------------- 1 | // priority: 0 2 | 3 | (() => { 4 | ClientEvents.highPriorityAssets((event) => { 5 | String.prototype.toTitleCase = function () { 6 | return this.split(/[-_ ]/) 7 | .map((i) => Utils.toTitleCase(i)) 8 | .join(" "); 9 | }; 10 | Object.keys(global.DyeFluid.colorTable).forEach((colorName) => { 11 | event.addLang( 12 | `fluid.kubejs.${colorName}_dye_fluid`, 13 | `${colorName} dye` 14 | ); 15 | event.addLang( 16 | `item.kubejs.${colorName}_dye_fluid_bucket`, 17 | `${colorName} dye bucket`.toTitleCase() 18 | ); 19 | }); 20 | }); 21 | }) 22 | -------------------------------------------------------------------------------- /scripts/Mana_Pool_Counter/server_scripts/ManaPoolCounter.server.js: -------------------------------------------------------------------------------- 1 | // requires: botania 2 | 3 | (() => { 4 | /** @param {Internal.BlockRightClickedEventJS} event */ 5 | const manaPoolCounterHandle = (event) => { 6 | if (event.hand != "MAIN_HAND") return; 7 | const { 8 | block: { 9 | id, 10 | entityData: { manaCap, mana }, 11 | }, 12 | player, 13 | } = event; 14 | 15 | const manaInfo = 16 | id === "botania:creative_pool" 17 | ? [Text.gold("∞")] 18 | : [Text.green(mana + ""), "/", Text.darkGreen(manaCap + "")]; 19 | 20 | player.statusMessage = ["Mana: "].concat(manaInfo); 21 | }; 22 | 23 | ["diluted", "mana", "fabulous", "creative"].forEach((type) => { 24 | BlockEvents.rightClicked(`botania:${type}_pool`, manaPoolCounterHandle); 25 | }); 26 | })(); 27 | -------------------------------------------------------------------------------- /scripts/Numerical_Mana_In_Jade/client_scripts/NumericalMana.client.js: -------------------------------------------------------------------------------- 1 | let $Block = Java.loadClass("net.minecraft.world.level.block.Block"); 2 | 3 | ClientEvents.lang("en_us", (event) => { 4 | event.add("tooltip.kubejs.current_mana", "Current Mana: %s%s"); 5 | event.add("config.jade.plugin_kubejs.numerical_mana", "Numerical Mana Block"); 6 | }); 7 | 8 | JadeEvents.onClientRegistration((event) => { 9 | event.block("kubejs:numerical_mana", $Block).tooltip((tooltip, accessor) => { 10 | const { serverData } = accessor; 11 | if (!serverData) return; 12 | 13 | let currentMana = serverData.get("currentMana") || serverData.get("mana"); 14 | let maxMana = serverData.get("maxMana") || serverData.get("manaToGet"); 15 | 16 | if (currentMana) { 17 | tooltip.add([ 18 | Text.translate("tooltip.kubejs.current_mana", [currentMana, maxMana ? ` / ${maxMana}` : ""]).aqua(), 19 | ]); 20 | } 21 | }); 22 | }); -------------------------------------------------------------------------------- /scripts/Saros_Create/assets/saros_create/lang/en_us.json: -------------------------------------------------------------------------------- 1 | { 2 | "item.kubejs.diamond_nugget": "Diamond Nugget", 3 | "item.kubejs.raw_diamond": "Raw Diamond", 4 | "item.kubejs.dirty_netherite_1": "Dirty Netherite", 5 | "item.kubejs.dirty_netherite_2": "Dirty Netherite", 6 | "item.kubejs.dirty_netherite_3": "Dirty Netherite", 7 | "item.kubejs.dirty_netherite_4": "Dirty Netherite", 8 | "item.kubejs.dirty_netherite_5": "Dirty Netherite", 9 | "item.kubejs.dirty_netherite_final": "Dirty Netherite", 10 | "item.kubejs.dirty_netherite_scrap_1": "Dirty Netherite scrap", 11 | "item.kubejs.dirty_netherite_scrap_2": "Dirty Netherite scrap", 12 | "item.kubejs.dirty_netherite_scrap_3": "Dirty Netherite scrap", 13 | "item.kubejs.dirty_netherite_scrap_4": "Dirty Netherite scrap", 14 | "item.kubejs.dirty_netherite_scrap_5": "Dirty Netherite scrap", 15 | "item.kubejs.dirty_netherite_scrap_final": "Dirty Netherite scrap", 16 | "itemGroup.kubejs.saros_create_addon": "Saros Create Addon" 17 | } -------------------------------------------------------------------------------- /scripts/Infinity_Pickaxe/server_scripts/InfinityPickaxe.server.js: -------------------------------------------------------------------------------- 1 | // ignored: true 2 | 3 | ServerEvents.tags("item", (event) => { 4 | event.add("kubejs:infinity_mine", ["minecraft:golden_pickaxe"]); 5 | }); 6 | 7 | BlockEvents.broken((event) => { 8 | const { player, block, server, level } = event; 9 | 10 | if (player.mainHandItem.hasTag("kubejs:infinity_mine")) { 11 | // let entityData = block.entityId != "minecraft:air" ? block.entityData : false 12 | // if (entityData) { 13 | // event.success(); 14 | // } 15 | 16 | player.tell( 17 | `[Infinity-Miner] ${ 18 | Text.translate(`block.${block.id.split(":").join(".")}`).string 19 | }` 20 | ); 21 | 22 | server.schedule(5 * 200, (_) => { 23 | block.set(block.id, block.properties); 24 | // if (entityData) { 25 | // level.getBlock(block.x, block.y, block.z).mergeEntityData(entityData); 26 | // player.tell(`block has entityData: ${entityData}`) 27 | // } 28 | }); 29 | } 30 | }); 31 | -------------------------------------------------------------------------------- /scripts/Create_Delight/server_scripts/CreateDelight.server.js: -------------------------------------------------------------------------------- 1 | // requires: create 2 | // requires: farmersdelight 3 | // requires: kubejs_create 4 | 5 | (() => { 6 | ServerEvents.recipes((event) => { 7 | const knivesTag = "forge:tools/knives"; 8 | 9 | event.forEachRecipe({ type: "farmersdelight:cutting" }, (recipe) => { 10 | const originalRecipe = JSON.parse(recipe.json.toString()); 11 | 12 | if (originalRecipe.tool?.tag == knivesTag) { 13 | let path, count, chance; 14 | event.recipes.create 15 | .deploying( 16 | originalRecipe.result.map((item) => { 17 | path = "tag" in item ? `#${item.tag}` : item.item; 18 | count = item.count || 1; 19 | chance = item.chance || 1; 20 | 21 | return Item.of(path, count).withChance(chance); 22 | }), 23 | 24 | originalRecipe.ingredients.concat([`#${knivesTag}`]) 25 | ) 26 | .id("kubejs:create_delight/" + (recipe.getId() + "").path); 27 | } 28 | }); 29 | }); 30 | })(); 31 | -------------------------------------------------------------------------------- /scripts/Void_Convert/server_scripts/VoidConvert.server.js: -------------------------------------------------------------------------------- 1 | LevelEvents.tick((event) => { 2 | const { level } = event; 3 | 4 | level.entities.filterSelector("@e[type=item]").forEach((entity) => { 5 | if ( 6 | entity.item.hasTag("flowers") && 7 | entity.y < level.minBuildHeight && 8 | entity.y - entity.deltaMovement.y() < -10 + level.minBuildHeight 9 | ) { 10 | let itemEntity = entity.block.createEntity("item"); 11 | itemEntity.item = "botania:black_lotus"; 12 | itemEntity.item.count = entity.item.count; 13 | itemEntity.fallDistance = entity.fallDistance; 14 | itemEntity.addTag("void_convert"); 15 | itemEntity.spawn(); 16 | entity.discard(); 17 | } 18 | }); 19 | }); 20 | 21 | EntityEvents.spawned("item", (event) => { 22 | const { entity } = event; 23 | 24 | if (entity.item == "botania:black_lotus" && entity.tags.contains("void_convert")) { 25 | entity.setDeltaMovement(Vec3d(0, (entity.fallDistance + 3) / 50, 0)); 26 | entity.setNoGravity(true); 27 | entity.setGlowing(true); 28 | } 29 | }); 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Mango KubeJScripts 2 | 3 | ## Develope / Test Environ: 4 | 5 | - Minecraft 6 | - Version: 1.20.1 7 | - Mod Loader: NeoForge 8 | - Mods 9 | - KubeJS 6.1+ 10 | - Computer System 11 | - OS: Windows 10 12 | 13 | ## List of Scripts 14 | 15 | - [Check Point](./scripts/Check_Point/) by EvanHsieh0415 16 | - [Create Delight](./scripts/Create_Delight/) by EvanHsieh0415 17 | - [Delightful Tinkers](./scripts/Delightful_Tinkers/) by EvanHsieh0415 18 | - [Dye Fluid](./scripts/Dye_Fluid/) by EvanHsieh0415 19 | - [Faster Climbing](./scripts/Faster_Climbing/) by EvanHsieh0415, FalAut 20 | - [Infinity Pickaxe](./scripts/Infinity_Pickaxe/) by EvanHsieh0415 21 | - [Invisible Item Frame](./scripts/Invisible_Item_Frame/) by EvanHsieh0415 22 | - [Mana Pool Counter](./scripts/Mana_Pool_Counter/) by EvanHsieh0415 23 | - [Numerical Mana In Jade](./scripts/Numerical_Mana_In_Jade/) by EvanHsieh0415, FalAut 24 | - [Saros Create](./scripts/Saros_Create/) by EvanHsieh0415 25 | - [Void Convert](./scripts/Void_Convert/) by EvanHsieh0415, FalAut 26 | - [World Notification](./scripts/World_Notification/) by EvanHsieh0415 27 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2023 Mango 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /scripts/Dye_Fluid/startup_scripts/DyeFluid.startup.js: -------------------------------------------------------------------------------- 1 | // priority: 0 2 | 3 | (() => { 4 | const dyes = [ 5 | ["red", 0x861f20], 6 | ["orange", 0xd15a00], 7 | ["yellow", 0xe2a615], 8 | ["lime", 0x589e17], 9 | ["green", 0x455624], 10 | ["blue", 0x2a2c8b], 11 | ["light_blue", 0x2281c1], 12 | ["cyan", 0x146f83], 13 | ["purple", 0x5e1f98], 14 | ["magenta", 0x9f2f9b], 15 | ["pink", 0xc85f8b], 16 | ["brown", 0x5a371e], 17 | ["black", 0x090b10], 18 | ["gray", 0x32353b], 19 | ["light_gray", 0x74746e], 20 | ["white", 0xc2c8d0], 21 | ]; 22 | 23 | StartupEvents.registry("fluid", (event) => { 24 | dyes.forEach(([colorName, colorCode]) => { 25 | const dyeFluidBuilder = event 26 | .create(`dye_fluid:${colorName}_dye`) 27 | .thinTexture(colorCode) 28 | .tag("dye_fluid:fluid") 29 | .tag("minecraft:water"); 30 | 31 | dyeFluidBuilder.flowingFluid.tag("dye_fluid:fluid").tag("minecraft:water"); 32 | }); 33 | }); 34 | 35 | StartupEvents.registry("item", (event) => { 36 | event 37 | .create("dye_fluid:dye_base") 38 | .texture("dye_fluid:item/dye_base") 39 | .tag("kubejs:dye_fluid/dye_base") 40 | .tag("forge:dye/base"); 41 | }); 42 | })(); 43 | -------------------------------------------------------------------------------- /scripts/Saros_Create/startup_scripts/SarosCreate.startup.js: -------------------------------------------------------------------------------- 1 | // requires: create 2 | 3 | (() => { 4 | const itemIds = [ 5 | "diamond_nugget", 6 | "raw_diamond", 7 | 8 | "dirty_netherite_1", 9 | "dirty_netherite_2", 10 | "dirty_netherite_3", 11 | "dirty_netherite_4", 12 | "dirty_netherite_5", 13 | "dirty_netherite_final", 14 | 15 | "netherite_scrap_1", 16 | "netherite_scrap_2", 17 | "netherite_scrap_3", 18 | "netherite_scrap_4", 19 | "netherite_scrap_5", 20 | "netherite_scrap_final", 21 | ]; 22 | 23 | StartupEvents.registry("item", (event) => { 24 | itemIds.forEach((id) => { 25 | const itemBuilder = event.create(`saros_create:${id}`).texture(`saros_create:item/${id}`); 26 | 27 | if (/\d/.test(id.slice(-1))) { 28 | itemBuilder.tooltip(`Level ${id.slice(-1)}`); 29 | } 30 | }); 31 | }); 32 | 33 | StartupEvents.registry("creative_mode_tab", (event) => { 34 | event 35 | .create("saros_create:tab") 36 | .icon(() => Item.of("dirty_netherite_final")) 37 | .content(() => Ingredient.of("@saras_create").itemIds); 38 | }); 39 | 40 | StartupEvents.modifyCreativeTab("kubejs:tab", (event) => { 41 | event.remove(() => Ingredient.of("@saras_create")); 42 | }) 43 | })(); 44 | -------------------------------------------------------------------------------- /generate_folder.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import json 3 | 4 | SCRIPT_DIRECTORY = Path("scripts/") 5 | 6 | while 1: 7 | name = input(">>> Script Name:\n... ") 8 | 9 | created_directory = SCRIPT_DIRECTORY / name.replace(" ", "_") 10 | created_directory.mkdir(parents=True, exist_ok=True) 11 | 12 | with open(created_directory / "README.md", "w", encoding="utf8") as file: 13 | file.write( 14 | "\n".join( 15 | [ 16 | f"# {name.title()}|...", 17 | "", 18 | "...", 19 | "", 20 | "## Dependencies|前置", 21 | "", 22 | "- None|無", 23 | ] 24 | ) 25 | ) 26 | with open(created_directory / ".kjspkg", "w", encoding="utf8") as file: 27 | json.dump( 28 | { 29 | "author": "EvanHsieh0415", 30 | "description": "...", 31 | "versions": [9, 10], 32 | "modloaders": ["forge"], 33 | "dependencies": ["mod:"], 34 | }, 35 | file, 36 | indent=2, 37 | ensure_ascii=False, 38 | ) 39 | 40 | if input(">>> continue?\n... ").lower() in {"n", "no"}: 41 | break 42 | -------------------------------------------------------------------------------- /scripts/Check_Point/server_scripts/CheckPoint.server.js: -------------------------------------------------------------------------------- 1 | (() => { 2 | function isSameArray(a, b) { 3 | [a, b] = [a, b].map((arr) => Array.from(arr)); 4 | return a.length == b.length && a.every((v, i) => v === b[i]); 5 | } 6 | 7 | /** @type {{block: Special.Block, item: Special.Item}} */ 8 | const CONFIG = { 9 | block: "minecraft:emerald_block", 10 | item: "minecraft:name_tag", 11 | }; 12 | 13 | PlayerEvents.tick((event) => { 14 | const { 15 | player, 16 | player: { 17 | block: { down: block }, 18 | }, 19 | } = event; 20 | const blockPos = [block.x, block.y, block.z]; 21 | 22 | if (block.id === CONFIG.block && !isSameArray(player.persistentData.getIntArray("CheckPointBlockPos"), blockPos)) { 23 | player.setStatusMessage([Text.gold("Set SpawnPoint to "), Text.green(`${blockPos}`)]); 24 | player.persistentData.putIntArray("CheckPointBlockPos", blockPos); 25 | } 26 | }); 27 | 28 | ItemEvents.rightClicked(CONFIG.item, (event) => { 29 | const { player, level } = event; 30 | 31 | const CheckPointBlockPos = player.persistentData.getIntArray("CheckPointBlockPos"); 32 | 33 | if (CheckPointBlockPos) { 34 | let [x, y, z] = CheckPointBlockPos; 35 | if (level.getBlock(x, y, z).id === CONFIG.block) { 36 | player.teleportToWithTicket(x + 0.5, y + 1, z + 0.5); 37 | } 38 | } 39 | }); 40 | })(); -------------------------------------------------------------------------------- /scripts/World_Notification/server_scripts/World_Notification/Boss Death.js: -------------------------------------------------------------------------------- 1 | // priority: 0 2 | 3 | /** 4 | * Generate Entity Death World Notification 5 | * 6 | * @param {Special.EntityType} entityId 7 | * @param {Special.Item} itemIcon 8 | * @param {Internal.Color} titleColor 9 | * @param {Internal.Color} backgroundColor 10 | * @param {Internal.Color} borderColor 11 | */ 12 | function entityDeathNotify( 13 | entityId, 14 | itemIcon, 15 | titleColor, 16 | backgroundColor, 17 | borderColor 18 | ) { 19 | EntityEvents.death(entityId, (event) => { 20 | const { 21 | server, 22 | source: { player: $player }, 23 | } = event; 24 | if (!$player) return; 25 | 26 | const notification = Notification.make((notification) => { 27 | Object.assign(notification, { 28 | itemIcon: itemIcon, 29 | backgroundColor: backgroundColor, 30 | borderColor: borderColor, 31 | outlineColor: borderColor, 32 | textShadow: false, 33 | text: [ 34 | Text.of("World Notify - Boss Has Been Killed!\n") 35 | .color(titleColor) 36 | .bold(), 37 | Text.translate( 38 | `entity.${entityId.namespace}.${entityId.path}` 39 | ).green(), 40 | Text.of(" has been killed by "), 41 | Text.of($player.displayName).gold(), 42 | ], 43 | }); 44 | }); 45 | 46 | for (const player of server.players) { 47 | player.notify(notification); 48 | } 49 | }); 50 | } 51 | 52 | entityDeathNotify( 53 | "minecraft:ender_dragon", 54 | "minecraft:dragon_head", 55 | "darkPurple", 56 | 0xd9e4ac, 57 | 0x5d1d96 58 | ); 59 | entityDeathNotify( 60 | "minecraft:wither", 61 | "minecraft:wither_skeleton_skull", 62 | 0xd81e3d, 63 | 0x372027, 64 | 0x1d1316 65 | ); 66 | entityDeathNotify( 67 | "minecraft:warden", 68 | "minecraft:reinforced_deepslate", 69 | "darkAqua", 70 | 0x525255, 71 | 0x0c1116 72 | ); 73 | entityDeathNotify( 74 | "minecraft:elder_guardian", 75 | "minecraft:sponge", 76 | "darkBlue", 77 | 0x67ada8, 78 | 0x243a34 79 | ); 80 | -------------------------------------------------------------------------------- /scripts/Saros_Create/server_scripts/SarosCreate.server.js: -------------------------------------------------------------------------------- 1 | (() => { 2 | ServerEvents.recipes((event) => { 3 | const { minecraft, create } = event.recipes; 4 | 5 | create.crushing( 6 | [Item.of("saros_create:diamond_nugget").withChance(0.1), Item.of("minecraft:gravel").withChance(0.2)], 7 | ["minecraft:iron_ingot"] 8 | ); 9 | create.compacting(["saros_create:raw_diamond"], ["3x saros_create:diamond_nugget", Fluid.lava(FluidAmounts.B)]); 10 | create.splashing([Item.of("minecraft:diamond").withChance(0.4)], ["saros_create:raw_diamond"]); 11 | 12 | let ids; 13 | ids = [ 14 | ["saros_create:dirty_netherite_1", "minecraft:diamond"], 15 | ["saros_create:dirty_netherite_2", "saros_create:dirty_netherite_1"], 16 | ["saros_create:dirty_netherite_3", "saros_create:dirty_netherite_2"], 17 | ["saros_create:dirty_netherite_4", "saros_create:dirty_netherite_3"], 18 | ["saros_create:dirty_netherite_5", "saros_create:dirty_netherite_4"], 19 | ["saros_create:dirty_netherite_final", "saros_create:dirty_netherite_5"], 20 | ]; 21 | ids.forEach(([output, input]) => { 22 | create.pressing([Item.of(output).withChance(0.8)], [input]); 23 | }); 24 | 25 | ids = [ 26 | ["saros_create:netherite_scrap_1", ["saros_create:dirty_netherite_final", "smelting"]], 27 | ["saros_create:netherite_scrap_2", ["saros_create:netherite_scrap_1", "smelting"]], 28 | ["saros_create:netherite_scrap_3", ["saros_create:netherite_scrap_2", "splashing"]], 29 | ["saros_create:netherite_scrap_4", ["saros_create:netherite_scrap_3", "smelting"]], 30 | ["saros_create:netherite_scrap_5", ["saros_create:netherite_scrap_4", "splashing"]], 31 | ["saros_create:netherite_scrap_final", ["saros_create:netherite_scrap_5", "splashing"]], 32 | ["minecraft:netherite_scrap", ["saros_create:netherite_scrap_final", "smelting"]], 33 | ]; 34 | 35 | ids.forEach(([output, [input, recipeType]]) => { 36 | switch (recipeType) { 37 | case "smelting": 38 | minecraft.smelting(output, input).cookingTime(500); 39 | break; 40 | case "splashing": 41 | create.splashing([output], [input]); 42 | break; 43 | } 44 | }); 45 | }); 46 | })(); 47 | -------------------------------------------------------------------------------- /scripts/Dye_Fluid/server_scripts/DyeFluid.server.js: -------------------------------------------------------------------------------- 1 | // requires: create 2 | 3 | (() => { 4 | const palette = { 5 | orange: [["red", "yellow"]], 6 | green: [["blue", "yellow"]], 7 | lime: [["green", "white"]], 8 | light_blue: [["blue", "white"]], 9 | cyan: [["blue", "green"]], 10 | purple: [["blue", "red"]], 11 | magenta: [ 12 | ["purple", "pink"], 13 | ["blue", "red", "red", "white"], 14 | ["blue", "red", "pink"], 15 | ["purple", "red", "white"], 16 | ], 17 | pink: [["red", "white"]], 18 | brown: [["red", "green", "green"]], 19 | black: [["red", "yellow", "blue"]], 20 | gray: [ 21 | ["black", "white"], 22 | ["red", "yellow", "blue", "white"], 23 | ], 24 | light_gray: [ 25 | ["black", "white", "white"], 26 | ["red", "yellow", "blue", "white", "white"], 27 | ], 28 | }; 29 | 30 | ServerEvents.recipes((event) => { 31 | const { kubejs, create } = event.recipes; 32 | 33 | Object.keys(Color.DYE).forEach((colorName) => { 34 | // dye[item] + water[fluid] = dye[fluid] 35 | create 36 | .mixing( 37 | [Fluid.of(`dye_fluid:${colorName}_dye`, FluidAmounts.B)], 38 | [`${colorName}_dye`, Fluid.water(FluidAmounts.B)] 39 | ) 40 | .id(`dye_fluid:mixing/${colorName}_dye`); 41 | 42 | // dye[fluid] + dye_base[item] = dye[item] 43 | create 44 | .filling([`${colorName}_dye`], ["#forge:dye/base", Fluid.of(`dye_fluid:${colorName}_dye`, FluidAmounts.B)]) 45 | .id(`dye_fluid:filling/${colorName}_dye`); 46 | 47 | // color palette 48 | if (colorName in palette) { 49 | palette[colorName].forEach((ingredients) => { 50 | const inputs = Array.from(new Set(ingredients)).map((color) => 51 | Fluid.of(`dye_fluid:${color}_dye`, ingredients.filter((i) => i == color).length * 100 * FluidAmounts.MB) 52 | ); 53 | const totalCount = ingredients.length; 54 | 55 | create 56 | .mixing([Fluid.of(`dye_fluid:${colorName}_dye`, 100 * FluidAmounts.MB * totalCount)], inputs) 57 | .id(`dye_fluid:mixing/palette_${colorName}_dye`); 58 | }); 59 | } 60 | }); 61 | 62 | kubejs.shapeless("dye_fluid:dye_base", ["#forge:string", "#forge:wool"]).id(`dye_fluid:shapeless/dye_base`); 63 | }); 64 | })(); 65 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/startup_scripts/DelightfulTinkers.startup.js: -------------------------------------------------------------------------------- 1 | // priority: 0 2 | // requires: farmersdelight 3 | // requires: tconstruct 4 | 5 | () => { 6 | StartupEvents.registry("item", (event) => { 7 | const jerkies = [ 8 | ["bacon_jerky", { hunger: 8, saturation: 5.5 }], 9 | ["beef_jerky", { hunger: 8, saturation: 5.5 }], 10 | ["chicken_jerky", { hunger: 8, saturation: 5.5 }], 11 | ["tropical_fish_jerky", { hunger: 8, saturation: 5.5 }], 12 | ["rabbit_jerky", { hunger: 8, saturation: 5.5 }], 13 | ["mutton_jerky", { hunger: 8, saturation: 5.5 }], 14 | 15 | ["cod_jerky", { hunger: 4, saturation: 1.5 }], 16 | ["pufferfish_jerky", { hunger: 4, saturation: 1.5 }], 17 | ["salmon_jerky", { hunger: 4, saturation: 1.5 }], 18 | ["monster_jerky", { hunger: 4, saturation: 1.5 }], 19 | ]; 20 | 21 | const slices = [ 22 | ["blood_cake_slice", { hunger: 2, saturation: 0.5 }], 23 | ["earth_cake_slice", { hunger: 2, saturation: 0.5 }], 24 | ["ender_cake_slice", { hunger: 2, saturation: 0.5 }], 25 | ["magma_cake_slice", { hunger: 2, saturation: 0.5 }], 26 | ["sky_cake_slice", { hunger: 2, saturation: 0.5 }], 27 | ]; 28 | 29 | const drops = [ 30 | [ 31 | "blood_drop", 32 | { 33 | hunger: 3, 34 | effects: [{ id: "regeneration", duration: 7 * 20, amplifier: 0 }], 35 | }, 36 | ], 37 | [ 38 | "earth_drop", 39 | { 40 | hunger: 3, 41 | effects: [{ id: "luck", duration: 15 * 20, amplifier: 0 }], 42 | }, 43 | ], 44 | [ 45 | "ender_drop", 46 | { 47 | hunger: 3, 48 | effects: [{ id: "levitation", duration: 10 * 20, amplifier: 0 }], 49 | }, 50 | ], 51 | [ 52 | "magma_drop", 53 | { 54 | hunger: 3, 55 | effects: [{ id: "fire_resistance", duration: 30 * 20, amplifier: 0 }], 56 | }, 57 | ], 58 | [ 59 | "sky_drop", 60 | { 61 | hunger: 3, 62 | effects: [{ id: "jump_boost", duration: 20 * 20, amplifier: 1 }], 63 | }, 64 | ], 65 | ]; 66 | 67 | const broths = [ 68 | ["blaze_bone_broth", { hunger: 0, saturation: 0 }], 69 | ["blood_bone_broth", { hunger: 0, saturation: 0 }], 70 | ["necrotic_bone_broth", { hunger: 0, saturation: 0 }], 71 | ["wither_bone_broth", { hunger: 0, saturation: 0 }], 72 | ]; 73 | 74 | const others = [ 75 | ["dark_burger", { hunger: 22, saturation: 21 }], 76 | ["darker_burger", { hunger: 20, saturation: 20 }], 77 | ["cooked_piglin_face", { hunger: 12, saturation: 7.5 }], 78 | ]; 79 | 80 | jerkies.forEach(([id, data]) => { 81 | event.create(`delightful_tinkers:${id}`).food((foodBuilder) => { 82 | foodBuilder 83 | .hunger(data.hunger) 84 | .saturation(data.hunger / data.saturation) 85 | .meat(); 86 | }); 87 | }); 88 | 89 | slices.forEach(([id, data]) => { 90 | event.create(`delightful_tinkers:${id}`).food((foodBuilder) => { 91 | foodBuilder 92 | .hunger(data.hunger) 93 | .saturation(data.hunger / data.saturation); 94 | }); 95 | }); 96 | 97 | drops.forEach(([id, data]) => { 98 | event.create(`delightful_tinkers:${id}`).food((foodBuilder) => { 99 | let builder = foodBuilder.hunger(data.hunger).saturation(0).fastToEat(); 100 | data.effects.forEach((effectData) => { 101 | builder.effect( 102 | effectData.id, 103 | effectData.duration, 104 | effectData.amplifier, 105 | 1 106 | ); 107 | }); 108 | }); 109 | }); 110 | 111 | broths.forEach(([id, data]) => { 112 | event.create(`delightful_tinkers:${id}`).food((foodBuilder) => { 113 | foodBuilder 114 | .hunger(data.hunger) 115 | .saturation(data.hunger / data.saturation); 116 | }); 117 | }); 118 | 119 | others.forEach(([id, data]) => { 120 | event.create(`delightful_tinkers:${id}`).food((foodBuilder) => { 121 | foodBuilder 122 | .hunger(data.hunger) 123 | .saturation(data.hunger / data.saturation); 124 | }); 125 | }); 126 | }); 127 | 128 | StartupEvents.registry("creative_mode_tab", (event) => { 129 | event 130 | .create("delightful_tinkers:tab") 131 | .content(() => Ingredient.of("@delightful_tinkers").itemIds) 132 | .icon(() => Item.of("delightful_tinkers:magma_cake_slice")); 133 | }); 134 | 135 | StartupEvents.modifyCreativeTab("kubejs:tab", (event) => { 136 | event.remove(() => Ingredient.of("@delightful_tinkers").itemIds); 137 | })(); 138 | }; 139 | -------------------------------------------------------------------------------- /scripts/Delightful_Tinkers/server_scripts/DelightfulTinkers.server.js: -------------------------------------------------------------------------------- 1 | // requires: farmersdelight 2 | // requires: tconstruct 3 | 4 | (() => { 5 | ServerEvents.tags("item", (event) => { 6 | event.add("farmersdelight:tools/knives", ["tconstruct:dagger"]); 7 | 8 | event.add("forge:knives", ["tconstruct:dagger"]); 9 | event.add("forge:tools/knives", ["tconstruct:dagger"]); 10 | event.add("forge:tools/axes", [ 11 | "tconstruct:hand_axe", 12 | "tconstruct:broad_axe", 13 | "tconstruct:mattock", 14 | ]); 15 | event.add("forge:tools/pickaxes", ["tconstruct:pickaxe"]); 16 | event.add("forge:tools/shovels", [ 17 | "tconstruct:mattock", 18 | "tconstruct:excavator", 19 | ]); 20 | 21 | event.add("forge:cooked_bacon", ["tconstruct:bacon"]); 22 | event.add("forge:cooked_porkchop", [ 23 | "tconstruct:cooked_porkchop", 24 | "tconstruct:bacon", 25 | ]); 26 | 27 | event.add("delightful_tinkers:piglin_heads", [ 28 | "minecraft:piglin_head", 29 | "tconstruct:piglin_brute_head", 30 | ]); 31 | }); 32 | 33 | ServerEvents.recipes((event) => { 34 | const { kubejs } = event.recipes; 35 | /** 36 | * @param {Special.Item} input 37 | * @param {Special.Item} output 38 | * @param {number} experience 39 | * @param {number} cooking_time 40 | * @returns {void} 41 | */ 42 | function cooking(input, output, experience, cooking_time) { 43 | event 44 | .custom({ 45 | type: "farmersdelight:cooking", 46 | ingredients: [{ item: input }], 47 | result: { item: output }, 48 | experience: experience, 49 | cookingtime: cooking_time, 50 | }) 51 | .id(`delightful_tinkers:cooking/${output.split(":")[1]}`); 52 | } 53 | 54 | /** 55 | * @param {Special.Item} cakeItem 56 | * @param {Special.Item} sliceItem 57 | * @returns {void} 58 | */ 59 | function cakeSlice(cakeItem, sliceItem) { 60 | event 61 | .custom({ 62 | type: "farmersdelight:cutting", 63 | ingredients: [{ item: cakeItem }], 64 | tool: { tag: "c:tools/knives" }, 65 | result: [{ item: sliceItem, count: 7 }], 66 | }) 67 | .id(`delightful_tinkers:cutting/${sliceItem.split(":")[1]}`); 68 | 69 | kubejs 70 | .shapeless(cakeItem, Array(7).fill(sliceItem)) 71 | .id(`delightful_tinkers:${cakeItem.split(":")[1]}_from_slices`); 72 | } 73 | 74 | // drops 75 | [ 76 | ["tconstruct:blood_slime_ball", "delightful_tinkers:blood_drop"], 77 | ["minecraft:slime_ball", "delightful_tinkers:earth_drop"], 78 | ["tconstruct:ender_slime_ball", "delightful_tinkers:ender_drop"], 79 | ["minecraft:magma_cream", "delightful_tinkers:magma_drop"], 80 | ["tconstruct:sky_slime_ball", "delightful_tinkers:sky_drop"], 81 | ].forEach(([input, output]) => { 82 | cooking(input, output, 0.1, 600); 83 | }); 84 | 85 | // jerky 86 | [ 87 | ["minecraft:beef", "delightful_tinkers:beef_jerky"], 88 | ["minecraft:chicken", "delightful_tinkers:chicken_jerky"], 89 | ["minecraft:tropical_fish", "delightful_tinkers:tropical_fish_jerky"], 90 | ["minecraft:cod", "delightful_tinkers:cod_jerky"], 91 | ["minecraft:mutton", "delightful_tinkers:mutton_jerky"], 92 | ["minecraft:porkchop", "delightful_tinkers:bacon_jerky"], 93 | ["minecraft:pufferfish", "delightful_tinkers:pufferfish_jerky"], 94 | ["minecraft:rabbit", "delightful_tinkers:rabbit_jerky"], 95 | ["minecraft:rotten_flesh", "delightful_tinkers:monster_jerky"], 96 | ["minecraft:salmon", "delightful_tinkers:salmon_jerky"], 97 | ].forEach(([input, output]) => { 98 | cooking(input, output, 0.1, 600); 99 | }); 100 | 101 | // slices 102 | [ 103 | ["tconstruct:magma_cake", "delightful_tinkers:magma_cake_slice"], 104 | ["tconstruct:sky_cake", "delightful_tinkers:sky_cake_slice"], 105 | ["tconstruct:ender_cake", "delightful_tinkers:ender_cake_slice"], 106 | ["tconstruct:earth_cake", "delightful_tinkers:earth_cake_slice"], 107 | ["tconstruct:blood_cake", "delightful_tinkers:blood_cake_slice"], 108 | ].forEach(([input, output]) => { 109 | cakeSlice(input, output); 110 | }); 111 | 112 | // burgers 113 | event 114 | .custom({ 115 | type: "tconstruct:casting_table", 116 | cast: { 117 | item: "farmersdelight:hamburger", 118 | }, 119 | cast_consumed: true, 120 | fluid: { 121 | tag: "tconstruct:seared_stone", 122 | amount: 250 * FluidAmounts.MB, 123 | }, 124 | result: "delightful_tinkers:dark_burger", 125 | cooling_time: 80, 126 | }) 127 | .id("delightful_tinkers:casting/dark_burger"); 128 | event 129 | .custom({ 130 | type: "tconstruct:casting_table", 131 | cast: { 132 | item: "farmersdelight:hamburger", 133 | }, 134 | cast_consumed: true, 135 | fluid: { 136 | tag: "tconstruct:scorched_stone", 137 | amount: 250 * FluidAmounts.MB, 138 | }, 139 | result: "delightful_tinkers:darker_burger", 140 | cooling_time: 80, 141 | }) 142 | .id("delightful_tinkers:casting/darker_burger"); 143 | 144 | kubejs 145 | .shapeless("delightful_tinkers:cooked_piglin_face", [ 146 | "#c:crops/cabbage", 147 | "#delightful_tinkers:piglin_heads", 148 | "minecraft:bowl", 149 | ]) 150 | .id("delightful_tinkers:shapeless/cooked_piglin_face"); 151 | }); 152 | })(); 153 | --------------------------------------------------------------------------------