diff --git a/build.gradle.kts b/build.gradle.kts index 25838c89e..870101f3e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,18 +29,18 @@ subprojects { filesMatching(arrayListOf("commands.yml", "config.yml")) { expand( - Pair("project_version", rootProject.properties["project_version"]), - Pair("config_version", rootProject.properties["config_version"]), - Pair("lang_version", rootProject.properties["lang_version"]) + Pair("project_version", rootProject.properties["project_version"]!!), + Pair("config_version", rootProject.properties["config_version"]!!), + Pair("lang_version", rootProject.properties["lang_version"]!!) ) } } } -fun versionBanner() = project.providers.exec { +fun versionBanner(): String = project.providers.exec { commandLine("git", "rev-parse", "--short=8", "HEAD") }.standardOutput.asText.map { it.trim() }.getOrElse("Unknown") -fun builder() = project.providers.exec { +fun builder(): String = project.providers.exec { commandLine("git", "config", "user.name") }.standardOutput.asText.map { it.trim() }.getOrElse("Unknown") \ No newline at end of file diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 2067a6a4a..0d7569af6 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -80,7 +80,7 @@ tasks.withType { } artifacts { - archives(tasks.shadowJar) + implementation(tasks.shadowJar) } tasks { diff --git a/bukkit/legacy/build.gradle.kts b/bukkit/legacy/build.gradle.kts index 0434654d8..75ecb2c84 100644 --- a/bukkit/legacy/build.gradle.kts +++ b/bukkit/legacy/build.gradle.kts @@ -29,5 +29,5 @@ tasks.withType { } artifacts { - archives(tasks.shadowJar) + implementation(tasks.shadowJar) } \ No newline at end of file diff --git a/bukkit/loader/build.gradle.kts b/bukkit/loader/build.gradle.kts index 547fbb2b0..fa0ddd0d9 100644 --- a/bukkit/loader/build.gradle.kts +++ b/bukkit/loader/build.gradle.kts @@ -56,7 +56,7 @@ bukkit { } artifacts { - archives(tasks.shadowJar) + implementation(tasks.shadowJar) } tasks { diff --git a/bukkit/paper-loader/build.gradle.kts b/bukkit/paper-loader/build.gradle.kts index 9b04d929d..617424438 100644 --- a/bukkit/paper-loader/build.gradle.kts +++ b/bukkit/paper-loader/build.gradle.kts @@ -130,7 +130,7 @@ paper { } artifacts { - archives(tasks.shadowJar) + implementation(tasks.shadowJar) } tasks { diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/ItemDisplayBlockEntityElementConfig.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/ItemDisplayBlockEntityElementConfig.java index a42838b72..53320d84d 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/ItemDisplayBlockEntityElementConfig.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/entity/renderer/element/ItemDisplayBlockEntityElementConfig.java @@ -34,6 +34,8 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo private final Quaternionf rotation; private final ItemDisplayContext displayContext; private final Billboard billboard; + private final float shadowRadius; + private final float shadowStrength; public ItemDisplayBlockEntityElementConfig(Function> item, Vector3f scale, @@ -43,7 +45,9 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo float yRot, Quaternionf rotation, ItemDisplayContext displayContext, - Billboard billboard) { + Billboard billboard, + float shadowRadius, + float shadowStrength) { this.item = item; this.scale = scale; this.position = position; @@ -53,6 +57,8 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo this.rotation = rotation; this.displayContext = displayContext; this.billboard = billboard; + this.shadowRadius = shadowRadius; + this.shadowStrength = shadowStrength; this.lazyMetadataPacket = player -> { List dataValues = new ArrayList<>(); ItemDisplayEntityData.DisplayedItem.addEntityDataIfNotDefaultValue(item.apply(player).getLiteralObject(), dataValues); @@ -61,6 +67,8 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo ItemDisplayEntityData.BillboardConstraints.addEntityDataIfNotDefaultValue(this.billboard.id(), dataValues); ItemDisplayEntityData.Translation.addEntityDataIfNotDefaultValue(this.translation, dataValues); ItemDisplayEntityData.DisplayType.addEntityDataIfNotDefaultValue(this.displayContext.id(), dataValues); + ItemDisplayEntityData.ShadowRadius.addEntityDataIfNotDefaultValue(this.shadowRadius, dataValues); + ItemDisplayEntityData.ShadowStrength.addEntityDataIfNotDefaultValue(this.shadowStrength, dataValues); return dataValues; }; } @@ -106,6 +114,14 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo return rotation; } + public float shadowRadius() { + return shadowRadius; + } + + public float shadowStrength() { + return shadowStrength; + } + public List metadataValues(Player player) { return this.lazyMetadataPacket.apply(player); } @@ -125,7 +141,9 @@ public class ItemDisplayBlockEntityElementConfig implements BlockEntityElementCo ResourceConfigUtils.getAsFloat(arguments.getOrDefault("yaw", 0f), "yaw"), ResourceConfigUtils.getAsQuaternionf(arguments.getOrDefault("rotation", 0f), "rotation"), ItemDisplayContext.valueOf(arguments.getOrDefault("display-context", "none").toString().toUpperCase(Locale.ROOT)), - Billboard.valueOf(arguments.getOrDefault("billboard", "fixed").toString().toUpperCase(Locale.ROOT)) + Billboard.valueOf(arguments.getOrDefault("billboard", "fixed").toString().toUpperCase(Locale.ROOT)), + ResourceConfigUtils.getAsFloat(arguments.getOrDefault("shadow-radius", 0f), "shadow-radius"), + ResourceConfigUtils.getAsFloat(arguments.getOrDefault("shadow-strength", 1f), "shadow-strength") ); } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureElement.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureElement.java index b82f164f0..6b79afe1b 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureElement.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/entity/furniture/BukkitFurnitureElement.java @@ -38,14 +38,18 @@ public class BukkitFurnitureElement extends AbstractFurnitureElement { Vector3f translation, Vector3f position, Quaternionf rotation, + float shadowRadius, + float shadowStrength, boolean applyDyedColor) { - super(item, billboard, transform, scale, translation, position, rotation, applyDyedColor); + super(item, billboard, transform, scale, translation, position, rotation, shadowRadius, shadowStrength, applyDyedColor); this.commonValues = new ArrayList<>(); ItemDisplayEntityData.Scale.addEntityDataIfNotDefaultValue(scale(), this.commonValues); ItemDisplayEntityData.RotationLeft.addEntityDataIfNotDefaultValue(rotation(), this.commonValues); ItemDisplayEntityData.BillboardConstraints.addEntityDataIfNotDefaultValue(billboard().id(), this.commonValues); ItemDisplayEntityData.Translation.addEntityDataIfNotDefaultValue(translation(), this.commonValues); ItemDisplayEntityData.DisplayType.addEntityDataIfNotDefaultValue(transform().id(), this.commonValues); + ItemDisplayEntityData.ShadowRadius.addEntityDataIfNotDefaultValue(shadowRadius, this.commonValues); + ItemDisplayEntityData.ShadowStrength.addEntityDataIfNotDefaultValue(shadowStrength, this.commonValues); } @Override @@ -102,6 +106,8 @@ public class BukkitFurnitureElement extends AbstractFurnitureElement { private Vector3f translation; private Vector3f position; private Quaternionf rotation; + private float shadowRadius; + private float shadowStrength; @Override public Builder applyDyedColor(boolean applyDyedColor) { @@ -151,9 +157,21 @@ public class BukkitFurnitureElement extends AbstractFurnitureElement { return this; } + @Override + public Builder shadowStrength(float shadowStrength) { + this.shadowStrength = shadowStrength; + return this; + } + + @Override + public Builder shadowRadius(float shadowRadius) { + this.shadowRadius = shadowRadius; + return this; + } + @Override public FurnitureElement build() { - return new BukkitFurnitureElement(item, billboard, transform, scale, translation, position, rotation, applyDyedColor); + return new BukkitFurnitureElement(item, billboard, transform, scale, translation, position, rotation, shadowRadius, shadowStrength, applyDyedColor); } } } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java index e39eca2f5..5e64e98cf 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/BukkitCommandManager.java @@ -26,11 +26,7 @@ public class BukkitCommandManager extends AbstractCommandManager plugin.javaPlugin(), ExecutionCoordinator.simpleCoordinator(), SenderMapper.identity() - ) {{ // TODO:等 cloud 修复后移除,绕过 obc.command.BukkitCommandWrapper 类检查,因为这个类在 1.21.9 版本被移除了,并且项目貌似没用到这个 - if (VersionHelper.isOrAbove1_21_9() && ReflectionUtils.classExists("com.mojang.brigadier.tree.CommandNode")) { - registerCapability(CloudBukkitCapabilities.BRIGADIER); - } - }}); + )); this.plugin = plugin; this.index = Index.create(CommandFeature::getFeatureID, List.of( new ReloadCommand(this, plugin), diff --git a/common-files/src/main/resources/resources/default/configuration/furniture/bench.yml b/common-files/src/main/resources/resources/default/configuration/furniture/bench.yml index 16bab5968..cf5688160 100644 --- a/common-files/src/main/resources/resources/default/configuration/furniture/bench.yml +++ b/common-files/src/main/resources/resources/default/configuration/furniture/bench.yml @@ -26,6 +26,8 @@ items: billboard: FIXED position: 0.5,0,0 translation: 0,0.5,0 + shadow-radius: 1 + shadow-strength: 0.2 hitboxes: - position: 0,0,0 type: shulker diff --git a/common-files/src/main/resources/resources/default/configuration/furniture/flower_basket.yml b/common-files/src/main/resources/resources/default/configuration/furniture/flower_basket.yml index fff66d0d4..63c508fde 100644 --- a/common-files/src/main/resources/resources/default/configuration/furniture/flower_basket.yml +++ b/common-files/src/main/resources/resources/default/configuration/furniture/flower_basket.yml @@ -47,6 +47,8 @@ furniture: billboard: FIXED position: 0,0,0 translation: 0,0.5,0 + shadow-radius: 0.5 + shadow-strength: 0.5 hitboxes: - type: interaction can-use-item-on: true diff --git a/common-files/src/main/resources/resources/default/configuration/furniture/wooden_chair.yml b/common-files/src/main/resources/resources/default/configuration/furniture/wooden_chair.yml index ef848f6fc..5d62051b1 100644 --- a/common-files/src/main/resources/resources/default/configuration/furniture/wooden_chair.yml +++ b/common-files/src/main/resources/resources/default/configuration/furniture/wooden_chair.yml @@ -23,6 +23,8 @@ items: elements: - item: default:wooden_chair display-transform: NONE + shadow-radius: 0.4 + shadow-strength: 0.5 billboard: FIXED translation: 0,0.5,0 hitboxes: diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureElement.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureElement.java index 3b4863b0f..9e470cb6d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureElement.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureElement.java @@ -15,6 +15,8 @@ public abstract class AbstractFurnitureElement implements FurnitureElement { private final Vector3f position; private final Quaternionf rotation; private final boolean applyDyedColor; + private final float shadowRadius; + private final float shadowStrength; public AbstractFurnitureElement(Key item, Billboard billboard, @@ -23,6 +25,8 @@ public abstract class AbstractFurnitureElement implements FurnitureElement { Vector3f translation, Vector3f position, Quaternionf rotation, + float shadowRadius, + float shadowStrength, boolean applyDyedColor) { this.billboard = billboard; this.transform = transform; @@ -32,6 +36,18 @@ public abstract class AbstractFurnitureElement implements FurnitureElement { this.rotation = rotation; this.position = position; this.applyDyedColor = applyDyedColor; + this.shadowRadius = shadowRadius; + this.shadowStrength = shadowStrength; + } + + @Override + public float shadowRadius() { + return shadowRadius; + } + + @Override + public float shadowStrength() { + return shadowStrength; } @Override diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java index 8a2a4ad05..2b157f1fb 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/AbstractFurnitureManager.java @@ -137,6 +137,8 @@ public abstract class AbstractFurnitureManager implements FurnitureManager { .position(ResourceConfigUtils.getAsVector3f(element.getOrDefault("position", "0"), "position")) .translation(ResourceConfigUtils.getAsVector3f(element.getOrDefault("translation", "0"), "translation")) .rotation(ResourceConfigUtils.getAsQuaternionf(element.getOrDefault("rotation", "0"), "rotation")) + .shadowRadius(ResourceConfigUtils.getAsFloat(element.getOrDefault("shadow-radius", 0f), "shadow-radius")) + .shadowStrength(ResourceConfigUtils.getAsFloat(element.getOrDefault("shadow-strength", 1f), "shadow-strength")) .build(); elements.add(furnitureElement); } diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureElement.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureElement.java index e610ec044..785b24c68 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureElement.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/FurnitureElement.java @@ -18,6 +18,10 @@ public interface FurnitureElement { ItemDisplayContext transform(); + float shadowRadius(); + + float shadowStrength(); + boolean applyDyedColor(); Vector3f scale(); @@ -46,6 +50,10 @@ public interface FurnitureElement { Builder applyDyedColor(boolean applyDyedColor); + Builder shadowStrength(float shadowStrength); + + Builder shadowRadius(float shadowRadius); + FurnitureElement build(); } } diff --git a/gradle.properties b/gradle.properties index 6e1712ede..517688b4f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,16 +17,16 @@ jetbrains_annotations_version=26.0.2 slf4j_version=2.0.17 log4j_version=2.25.2 gson_version=2.13.2 -asm_version=9.8 -asm_commons_version=9.8 +asm_version=9.9 +asm_commons_version=9.9 jar_relocator_version=1.7 adventure_bundle_version=4.25.0 cloud_core_version=2.0.0 cloud_services_version=2.0.0 -cloud_brigadier_version=2.0.0-beta.11 -cloud_bukkit_version=2.0.0-beta.11 -cloud_paper_version=2.0.0-beta.11 -cloud_minecraft_extras_version=2.0.0-beta.11 +cloud_brigadier_version=2.0.0-beta.13 +cloud_bukkit_version=2.0.0-beta.13 +cloud_paper_version=2.0.0-beta.13 +cloud_minecraft_extras_version=2.0.0-beta.13 boosted_yaml_version=1.3.7 bstats_version=3.1.0 caffeine_version=3.2.2 @@ -41,12 +41,12 @@ commons_imaging_version=1.0.0-alpha6 commons_lang3_version=3.19.0 sparrow_nbt_version=0.10.6 sparrow_util_version=0.52 -fastutil_version=8.5.16 +fastutil_version=8.5.18 netty_version=4.1.127.Final joml_version=1.10.8 datafixerupper_version=8.0.16 mojang_brigadier_version=1.0.18 -byte_buddy_version=1.17.5 +byte_buddy_version=1.17.8 ahocorasick_version=0.6.3 snake_yaml_version=2.5 anti_grief_version=1.0.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 3c44eb1b6..ab521aa07 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists