180 lines
7.3 KiB
JavaScript
180 lines
7.3 KiB
JavaScript
|
BlockEvents.leftClicked("#dut_create:breakable", event => {
|
||
|
if (event.item.damageValue < 32000 && event.item.id == "kubejs:steel_impact_drill" && event.block.hasTag("dut_create:breakable")) {
|
||
|
event.item.damageValue++
|
||
|
event.level.destroyBlock(event.block.pos, true, event.player)
|
||
|
}
|
||
|
})
|
||
|
|
||
|
ItemEvents.rightClicked("kubejs:tin_hard_disk", event => {
|
||
|
if (event.item.damageValue > 0 && event.player.getOffHandItem().id == "create:clipboard") {
|
||
|
event.item.damageValue -= 12
|
||
|
event.player.addItemCooldown("kubejs:tin_hard_disk",5)
|
||
|
}
|
||
|
})
|
||
|
ItemEvents.rightClicked("kubejs:steel_power_sword", event => {
|
||
|
if (event.item.damageValue < 80000) {
|
||
|
event.item.damageValue += 5
|
||
|
event.player.addItemCooldown("kubejs:steel_power_sword", 200)
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run particle minecraft:electric_spark ~ ~1.0 ~ 0.25 0.8 0.25 0.1 32')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run function dut:particle/scan_set')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run effect give @s minecraft:absorption 12 14 true')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run effect give @s minecraft:speed 12 2 true')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run playsound createaddition:electric_charge player @a[distance=..16] ~ ~ ~ 0.6 1')
|
||
|
}
|
||
|
})
|
||
|
ItemEvents.rightClicked("kubejs:rocket_sword", event => {
|
||
|
if (event.item.damageValue < 80000) {
|
||
|
event.item.damageValue += 3
|
||
|
const Motion = event.player.getViewVector(1)
|
||
|
event.player.hurtMarked = true
|
||
|
event.player.deltaMovement = Motion
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run particle createbigcannons:shrapnel_cloud ^ ^1 ^-0.1 0 0 0 1.2 5')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run effect give @s minecraft:absorption 12 4 true')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run effect give @s minecraft:speed 12 2 true')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run effect give @s minecraft:slow_falling 3 0 true')
|
||
|
event.player.runCommandSilent('/execute as ' + event.player.getUsername() + ' run playsound create:steam player @a[distance=..16] ~ ~ ~ 0.4')
|
||
|
}
|
||
|
})
|
||
|
ItemEvents.entityInteracted("kubejs:mycetozoan", event => {
|
||
|
if (event.target.type == "minecraft:slime" || event.target.type == "minecraft:magma_cube") {
|
||
|
let size = event.target.size
|
||
|
if (size < 9) {
|
||
|
event.item.count -= 1
|
||
|
event.target.mergeNbt({ "Size": size })
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
//以下代码修改自JSI Production Team
|
||
|
const $OreVeinGenerator = Java.loadClass("com.tom.createores.OreVeinGenerator")
|
||
|
const $OreVeinAtlasItem = Java.loadClass("com.tom.createores.item.OreVeinAtlasItem")
|
||
|
ItemEvents.rightClicked("kubejs:scanner", e => {
|
||
|
const { player, level, server } = e
|
||
|
if (player.cooldowns.isOnCooldown(e.item.item))
|
||
|
return
|
||
|
const MAX_SEARCH_DIST_IN_BLOCK = 16 // 最大搜索距离
|
||
|
if (e.item.damageValue >= 16) {
|
||
|
return
|
||
|
}
|
||
|
let excludedVein = []
|
||
|
player.inventory.allItems.forEach(item => {
|
||
|
if (item.id == "createoreexcavation:vein_atlas" && item.nbt != null) {
|
||
|
let exclude = item.nbt[$OreVeinAtlasItem.EXCLUDE]
|
||
|
exclude.forEach(tag => {
|
||
|
excludedVein.push(tag.getAsString())
|
||
|
})
|
||
|
}
|
||
|
})
|
||
|
let blockPosition = player.blockPosition()
|
||
|
let { first: pos, second: info } = $OreVeinGenerator.getPicker(level).locate(
|
||
|
blockPosition,
|
||
|
level,
|
||
|
MAX_SEARCH_DIST_IN_BLOCK,
|
||
|
(vein) => excludedVein.indexOf(vein.getId()) == -1
|
||
|
)
|
||
|
let distance = Math.floor(Math.sqrt(
|
||
|
Math.pow(blockPosition.x - pos.x, 2)
|
||
|
+ Math.pow(blockPosition.z - pos.z, 2)
|
||
|
))
|
||
|
const LocalTime = Math.floor((level.time % 24000) * 3.6)
|
||
|
player.tell(Text.translate("kubejs.message.satellite").color(Color.YELLOW).append(Math.floor((LocalTime / 3600)) + ':' + Math.floor((LocalTime / 60)) % 60 + ':' + Math.floor(LocalTime % 60)))
|
||
|
|
||
|
player.tell(Text.translate("kubejs.message.nearest_vein").color(Color.GREEN).append(info.getName().color(Color.YELLOW)))
|
||
|
player.tell(Text.translate("kubejs.message.pos").color(Color.GREEN).append(pos.x + ' ' + pos.z))
|
||
|
player.tell(Text.translate("kubejs.message.distance").color(Color.GREEN).append(distance))
|
||
|
e.item.damageValue++
|
||
|
player.addItemCooldown(e.item.item, 60)
|
||
|
server.runCommandSilent('/execute as ' + player.getUsername() + ' at @s run function dut:particle/scan_set')
|
||
|
server.runCommandSilent('/execute as ' + player.getUsername() + ' at @s run playsound minecraft:block.note_block.bell player @a[distance=..16] ~ ~ ~ 1 0.2')
|
||
|
})
|
||
|
//以上代码修改自JSI Production Team
|
||
|
ServerEvents.recipes(event => {
|
||
|
event.custom({
|
||
|
"type": "vintageimprovements:pressurizing",
|
||
|
"heatRequirement": "superheated",
|
||
|
"secondaryFluidInput": 0,
|
||
|
"ingredients": [
|
||
|
{ "fluid": "kubejs:aluminum", "amount": 250 },
|
||
|
{ "fluid": "createbigcannons:molten_steel", "amount": 1000 },
|
||
|
{ "fluid": "kubejs:slime_colloid", "amount": 250 },
|
||
|
{ "item": "createloveandwar:tungsten" },
|
||
|
{ "item": "kubejs:blaze_chlamydia" }
|
||
|
],
|
||
|
"results": [{ "item": "createloveandwar:steel_ingot" }],
|
||
|
"processingTime": 600
|
||
|
}).id("dut_create:tools/plastic_steel")
|
||
|
event.custom({
|
||
|
"type": "create:sequenced_assembly",
|
||
|
"ingredient": { "item": "createloveandwar:steel_ingot" },
|
||
|
"loops": 1,
|
||
|
"results": [
|
||
|
{ "item": "dreadsteel:dreadsteel_ingot", "chance": 0.05 },
|
||
|
{ "item": "createloveandwar:steel_ingot", "chance": 0.95 }
|
||
|
],
|
||
|
"sequence": [
|
||
|
{
|
||
|
"type": "create:filling",
|
||
|
"ingredients": [{ "item": "createloveandwar:steel_ingot" },
|
||
|
{ "amount": 500, "fluid": "kubejs:chromatic_waste" }],
|
||
|
"results": [{ "item": "createloveandwar:steel_ingot" }]
|
||
|
}
|
||
|
],
|
||
|
"transitionalItem": { "item": "createloveandwar:steel_ingot" }
|
||
|
}).id("dut_create:tools/dreadsteel_ingot")
|
||
|
//动力剑
|
||
|
event.custom({
|
||
|
"type": "create:mechanical_crafting",
|
||
|
"acceptMirrored": true,
|
||
|
"key": {
|
||
|
"B": { "item": "createloveandwar:steel_ingot" },
|
||
|
"A": { "item": "create_optical:rose_quartz_catalyst_coil" },
|
||
|
"S": { "item": "kubejs:light_composite_plate" },
|
||
|
"C": { "item": "kubejs:resonant_bacteria" },
|
||
|
"D": { "item": "kubejs:rocket_gyro" }
|
||
|
},
|
||
|
"pattern": [
|
||
|
"ABA",
|
||
|
"ABA",
|
||
|
"ABA",
|
||
|
"ACA",
|
||
|
"SDS",
|
||
|
],
|
||
|
"result": { "item": "kubejs:steel_power_sword" }
|
||
|
}
|
||
|
).id("dut_create:steel_power_sword")
|
||
|
//冲击钻
|
||
|
event.custom({
|
||
|
"type": "create:mechanical_crafting",
|
||
|
"acceptMirrored": true,
|
||
|
"key": {
|
||
|
"A": { "item": "createloveandwar:steel_ingot" },
|
||
|
"B": { "item": "createloveandwar:steel_sheet" },
|
||
|
"C": { "item": "kubejs:speed_module_2" },
|
||
|
"D": { "item": "kubejs:differential" },
|
||
|
"E": { "item": "kubejs:radiator" }
|
||
|
},
|
||
|
"pattern": [
|
||
|
" BBE",
|
||
|
"AAACD",
|
||
|
" BBB "
|
||
|
],
|
||
|
"result": { "item": "kubejs:steel_impact_drill" }
|
||
|
}
|
||
|
).id("dut_create:steel_impact_drill")
|
||
|
//火箭剑
|
||
|
event.custom({
|
||
|
"type": "create:mechanical_crafting",
|
||
|
"acceptMirrored": true,
|
||
|
"key": {
|
||
|
"A": { "item": "kubejs:carrier_rocket" },
|
||
|
"B": { "item": "kubejs:steel_power_sword" },
|
||
|
},
|
||
|
"pattern": [
|
||
|
"A",
|
||
|
"B"
|
||
|
],
|
||
|
"result": { "item": "kubejs:rocket_sword" }
|
||
|
}
|
||
|
).id("dut_create:rocket_sword")
|
||
|
|
||
|
})
|