From 1efc97ea1e2dc92b08a71e16e6a7b0133a6a63ed Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sun, 27 Apr 2025 03:24:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0velocity=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/bukkit/BukkitBootstrap.java | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java b/bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java index 55bcc33ba..571e1f510 100644 --- a/bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java +++ b/bukkit/loader/src/main/java/net/momirealms/craftengine/bukkit/BukkitBootstrap.java @@ -2,9 +2,12 @@ package net.momirealms.craftengine.bukkit; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; import org.bukkit.Bukkit; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; import java.util.Collection; import java.util.concurrent.TimeUnit; @@ -17,7 +20,7 @@ public class BukkitBootstrap extends JavaPlugin { @Override public void onLoad() { - if (!Bukkit.getServer().getOnlineMode()) { + if (!isOnlineMode()) { return; } this.plugin.onPluginLoad(); @@ -25,7 +28,7 @@ public class BukkitBootstrap extends JavaPlugin { @Override public void onEnable() { - if (!Bukkit.getServer().getOnlineMode()) { + if (!isOnlineMode()) { this.plugin.logger().warn("CraftEngine Community Edition requires online mode to be enabled."); Bukkit.getPluginManager().disablePlugin(this); } else { @@ -50,9 +53,33 @@ public class BukkitBootstrap extends JavaPlugin { @Override public void onDisable() { - if (!Bukkit.getServer().getOnlineMode()) { + if (!isOnlineMode()) { return; } this.plugin.onPluginDisable(); } + + private boolean isOnlineMode() { + if (Bukkit.getServer().getOnlineMode()) { + return true; + } + return isVelocityOnlineMode(); + } + + private boolean isVelocityOnlineMode() { + File paperGlobalFile = new File(this.getDataFolder().getParentFile().getParentFile(), "config" + File.separator + "paper-global.yml"); + if (!paperGlobalFile.exists()) { + return false; + } + YamlConfiguration config = YamlConfiguration.loadConfiguration(paperGlobalFile); + ConfigurationSection proxies = config.getConfigurationSection("proxies"); + if (proxies == null) { + return false; + } + boolean enableVelocity = proxies.getBoolean("velocity.enabled", false); + if (!enableVelocity) { + return false; + } + return proxies.getBoolean("velocity.online-mode", false); + } }