From 8ccc865ddbbc27c98ffe4f63f874b3c272fae8bd Mon Sep 17 00:00:00 2001 From: xiaoyueyoqwq <71379165+xiaoyueyoqwq@users.noreply.github.com> Date: Sat, 4 Apr 2026 10:08:03 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=BB=E5=8A=A8=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E9=A6=96=E6=AC=A1=E8=BF=9B=E6=9C=8D=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=AE=A2=E6=88=B7=E7=AB=AF=E8=A7=86=E8=B7=9D=EF=BC=8C?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=9C=80=E6=89=8B=E5=8A=A8ESC=E5=90=8E?= =?UTF-8?q?=E6=89=8D=E5=90=8C=E6=AD=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 1 + .../controller/ViewDistanceController.java | 2 +- .../seemore/controller/ViewDistanceUpdater.java | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 gradle.properties diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..2a3b6eb --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +org.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 diff --git a/src/main/java/com/froobworld/seemore/controller/ViewDistanceController.java b/src/main/java/com/froobworld/seemore/controller/ViewDistanceController.java index f72ef9e..fd0f960 100644 --- a/src/main/java/com/froobworld/seemore/controller/ViewDistanceController.java +++ b/src/main/java/com/froobworld/seemore/controller/ViewDistanceController.java @@ -24,7 +24,7 @@ public ViewDistanceController(SeeMore seeMore) { this.seeMore = seeMore; this.viewDistanceUpdateLogger = new ViewDistanceUpdateLogger(seeMore); seeMore.getSchedulerHook().runRepeatingTask(this::cleanMaps, 1200, 1200); - Bukkit.getPluginManager().registerEvents(new ViewDistanceUpdater(this), seeMore); + Bukkit.getPluginManager().registerEvents(new ViewDistanceUpdater(this, seeMore), seeMore); } public void updateAllPlayers() { diff --git a/src/main/java/com/froobworld/seemore/controller/ViewDistanceUpdater.java b/src/main/java/com/froobworld/seemore/controller/ViewDistanceUpdater.java index 288f5d8..5113fe9 100644 --- a/src/main/java/com/froobworld/seemore/controller/ViewDistanceUpdater.java +++ b/src/main/java/com/froobworld/seemore/controller/ViewDistanceUpdater.java @@ -6,16 +6,22 @@ import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.entity.Player; import java.util.Set; import java.util.UUID; +import com.froobworld.seemore.SeeMore; + public class ViewDistanceUpdater implements Listener { private final ViewDistanceController controller; + private final SeeMore seeMore; private final Set seenBefore = Sets.newConcurrentHashSet(); - public ViewDistanceUpdater(ViewDistanceController viewDistanceController) { + public ViewDistanceUpdater(ViewDistanceController viewDistanceController, SeeMore seeMore) { this.controller = viewDistanceController; + this.seeMore = seeMore; } @EventHandler @@ -40,4 +46,13 @@ private void onWorldChange(PlayerChangedWorldEvent event) { controller.setTargetViewDistance(event.getPlayer(), event.getPlayer().getClientViewDistance(), false, false); } + @EventHandler + private void onJoin(PlayerJoinEvent event) { + Player player = event.getPlayer(); + // 延迟10tick(0.5秒)后主动根据客户端视距调整服务器视距 + seeMore.getSchedulerHook().runTaskDelayed(() -> { + controller.setTargetViewDistance(player, player.getClientViewDistance(), false, true); + }, 10L); + } + }