7 Commits

Author SHA1 Message Date
35ac4dd842 0.3.6
小更改,正常用应该是感受不到的。
当随机半径被设置为0的时候不会再抛出异常而导致命令运行失败了。
手动处理了这个部分,向玩家发送警告并根据随机中心点是否被设置而决定是否进行传送。
2025-06-18 12:24:29 +08:00
34ea09dfd9 依赖项更新至Minecraft 1.21.6 2025-06-18 10:31:14 +08:00
ad014a2b1b 更新Gradle至8.14 2025-06-18 10:30:20 +08:00
4de867d6aa Fabric模组模板那边新的文件 2025-03-26 10:28:21 +08:00
9770b72448 移除BMCLAPI镜像
这个东西可以在`~/.gradle/gradle.properties`里面全局配置,没必要每个项目都写一份,而且这样子还不会影响其他非大陆贡献者
2025-03-26 10:27:40 +08:00
66a1529132 更新开发环境Minecraft和Fabric版本 2025-03-26 10:26:02 +08:00
96a69f3262 更新Gradle版本
以后跟大版本算了,这东西更新速度太恐怖了,小版本我就不跟了
2025-03-26 10:23:23 +08:00
9 changed files with 85 additions and 26 deletions

9
.gitattributes vendored Normal file
View File

@@ -0,0 +1,9 @@
#
# https://help.github.com/articles/dealing-with-line-endings/
#
# Linux start script should use lf
/gradlew text eol=lf
# These are Windows script files and should use crlf
*.bat text eol=crlf

37
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
# Automatically build the project and run any configured tests for every push
# and submitted pull request. This can help catch issues that only occur on
# certain platforms or Java versions, and provides a first line of defence
# against bad commits.
name: build
on: [pull_request, push]
jobs:
build:
strategy:
matrix:
# Use these Java versions
java: [
21, # Current Java LTS
]
runs-on: ubuntu-22.04
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: validate gradle wrapper
uses: gradle/wrapper-validation-action@v2
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'microsoft'
- name: make gradle wrapper executable
run: chmod +x ./gradlew
- name: build
run: ./gradlew build
- name: capture build artifacts
if: ${{ matrix.java == '21' }} # Only upload artifacts built from latest java
uses: actions/upload-artifact@v4
with:
name: Artifacts
path: build/libs/

View File

@@ -1,5 +1,5 @@
plugins { plugins {
id("fabric-loom") version "1.9-SNAPSHOT" id("fabric-loom") version "1.10-SNAPSHOT"
id("maven-publish") id("maven-publish")
} }

View File

@@ -4,24 +4,18 @@ org.gradle.parallel=true
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/develop # check these on https://fabricmc.net/develop
minecraft_version=1.21.4 minecraft_version=1.21.6
yarn_mappings=1.21.4+build.1 yarn_mappings=1.21.6+build.1
loader_version=0.16.9 loader_version=0.16.14
# Mod Properties # Mod Properties
mod_version=0.3.5 mod_version=0.3.6
maven_group=xyz.thewhitedog9487 maven_group=xyz.thewhitedog9487
archives_base_name=RandomTeleporter archives_base_name=RandomTeleporter
# Dependencies # Dependencies
fabric_version=0.110.5+1.21.4 fabric_version=0.127.0+1.21.6
# https://modrinth.com/mod/modmenu/versions # https://modrinth.com/mod/modmenu/versions
# https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu # https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu
modmenu_version=13.0.0-beta.1 modmenu_version=15.0.0-beta.1
# loom_libraries_base=https://bmclapi2.bangbang93.com/maven/
# loom_resources_base=https://bmclapi2.bangbang93.com/assets/
# loom_version_manifests=https://bmclapi2.bangbang93.com/mc/game/version_manifest.json
# loom_experimental_versions=https://maven.fabricmc.net/net/minecraft/experimental_versions.json
# loom_fabric_repository=https://repository.hanbings.io/proxy/

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https://services.gradle.org/distributions/gradle-8.11.1-bin.zip distributionUrl=https://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

View File

@@ -221,14 +221,27 @@ public class CommandRegister {
if (Radius == null){Radius = (int) (WorldBorder - 1e4);} if (Radius == null){Radius = (int) (WorldBorder - 1e4);}
// ↑ 远离世界边界 // ↑ 远离世界边界
Radius = Math.abs(Radius); Radius = Math.abs(Radius);
int Coordinate_X; int Coordinate_X = 0;
int Coordinate_Z; int Coordinate_Z = 0;
try {
if (Origin == null){ if (Origin == null){
Coordinate_X = new SplittableRandom().nextInt(-Radius, Radius); Coordinate_X = new SplittableRandom().nextInt(-Radius, Radius);
Coordinate_Z = new SplittableRandom().nextInt(-Radius, Radius);} Coordinate_Z = new SplittableRandom().nextInt(-Radius, Radius);}
else{ else{
Coordinate_X = new SplittableRandom().nextInt((int) Origin.x - Radius, (int) Origin.x + Radius); Coordinate_X = new SplittableRandom().nextInt((int) Origin.x - Radius, (int) Origin.x + Radius);
Coordinate_Z = new SplittableRandom().nextInt((int) Origin.y - Radius, (int) Origin.y + Radius);} Coordinate_Z = new SplittableRandom().nextInt((int) Origin.y - Radius, (int) Origin.y + Radius);}}
catch (IllegalArgumentException e) {
// 半径为零
if (Origin == null) {
Source.sendFeedback(()->{ return Text.translatableWithFallback("warning.radius_equal_zero_no_target", "由于你设置的随机半径为0并且未设置随机中心点坐标因此什么都不会发生"); },true);
return -1;}
else {
Coordinate_X = (int) Origin.x;
Coordinate_Z = (int) Origin.y;
int finalCoordinate_X1 = Coordinate_X;
int finalCoordinate_Z1 = Coordinate_Z;
// ↑ "lambda 表达式中使用的变量应为 final 或有效 final"
Source.sendFeedback(()->{ return Text.translatableWithFallback("warning.radius_equal_zero", "警告由于你设置的随机半径为0因此在选择出合适高度之后将直接把你传送至%d %d", finalCoordinate_X1, finalCoordinate_Z1); },true);}}
int Coordinate_Y = 320; int Coordinate_Y = 320;
for (var CurrentBlock = Source.getWorld().getBlockState(new BlockPos(Coordinate_X, Coordinate_Y, Coordinate_Z)).getBlock(); for (var CurrentBlock = Source.getWorld().getBlockState(new BlockPos(Coordinate_X, Coordinate_Y, Coordinate_Z)).getBlock();
// 从世界顶层往下找,直到遇到一个非空气方块 // 从世界顶层往下找,直到遇到一个非空气方块
@@ -254,9 +267,11 @@ public class CommandRegister {
Coordinate_Y++; Coordinate_Y++;
// ↑ 高一层,人别站在土里了 // ↑ 高一层,人别站在土里了
entity.teleport(Source.getWorld(),Coordinate_X + 0.5, Coordinate_Y, Coordinate_Z + 0.5, new HashSet<>(), entity.getYaw(), entity.getPitch(), false); entity.teleport(Source.getWorld(),Coordinate_X + 0.5, Coordinate_Y, Coordinate_Z + 0.5, new HashSet<>(), entity.getYaw(), entity.getPitch(), false);
int finalCoordinate_X = Coordinate_X;
int finalCoordinate_Y = Coordinate_Y; int finalCoordinate_Y = Coordinate_Y;
int finalCoordinate_Z = Coordinate_Z;
// ↑ "lambda 表达式中使用的变量应为 final 或有效 final" // ↑ "lambda 表达式中使用的变量应为 final 或有效 final"
final var FeedbackFallbackString = String.format("已将玩家%s传送到%d %d %d", entity.getName().getString(), Coordinate_X, finalCoordinate_Y, Coordinate_Z); final var FeedbackFallbackString = String.format("已将玩家%s传送到%d %d %d", entity.getName().getString(), Coordinate_X, finalCoordinate_Y, Coordinate_Z);
Source.sendFeedback(()->{ return Text.translatableWithFallback("info.success", FeedbackFallbackString, entity.getName(), Coordinate_X, finalCoordinate_Y, Coordinate_Z); },true); Source.sendFeedback(()->{ return Text.translatableWithFallback("info.success", FeedbackFallbackString, entity.getName(), finalCoordinate_X, finalCoordinate_Y, finalCoordinate_Z); },true);
return 16;} return 16;}
} }

View File

@@ -3,5 +3,7 @@
"modmenu.descriptionTranslation.randomteleporter": "Added two commands for random teleportation", "modmenu.descriptionTranslation.randomteleporter": "Added two commands for random teleportation",
"info.success": "Teleported %s to %d %d %d", "info.success": "Teleported %s to %d %d %d",
"error.no_target": "There is no teleported target, and the teleported player ID is explicitly specified when executed by a non-player object", "error.no_target": "There is no teleported target, and the teleported player ID is explicitly specified when executed by a non-player object",
"warning.radius_equal_zero": "Warning: Since you set a random radius of 0, selecting the right height will teleport you directly to %d %d",
"warning.radius_equal_zero_no_target": "Warning: Since you set a random radius of 0 and you don't set a random center point coordinates, nothing happens",
"bilibili": "Bilibili" "bilibili": "Bilibili"
} }

View File

@@ -3,5 +3,7 @@
"modmenu.descriptionTranslation.randomteleporter": "增加了两个用于随机传送的命令", "modmenu.descriptionTranslation.randomteleporter": "增加了两个用于随机传送的命令",
"info.success": "已将玩家%s传送到%d %d %d", "info.success": "已将玩家%s传送到%d %d %d",
"error.no_target": "不存在被传送目标由非玩家物体执行命令时请显式指定被传送玩家ID", "error.no_target": "不存在被传送目标由非玩家物体执行命令时请显式指定被传送玩家ID",
"warning.radius_equal_zero": "警告由于你设置的随机半径为0因此在选择出合适高度之后将直接把你传送至%d %d",
"warning.radius_equal_zero_no_target": "警告由于你设置的随机半径为0并且未设置随机中心点坐标因此什么都不会发生",
"bilibili": "TheWhiteDog9487的哔哩哔哩主页" "bilibili": "TheWhiteDog9487的哔哩哔哩主页"
} }

View File

@@ -27,10 +27,10 @@
} }
], ],
"depends": { "depends": {
"fabricloader": ">=0.16.9", "fabricloader": ">=0.16.14",
"minecraft": "1.21.4", "minecraft": "1.21.6",
"java": ">=21", "java": ">=21",
"fabric-api": ">=0.110.5" "fabric-api": ">=0.127.0"
}, },
"suggests": { "suggests": {
"another-mod": "*" "another-mod": "*"