Fix Paper startup before worlds load and add 0.5.0 artifacts
This commit is contained in:
1 parent
c0daa0507a
commit
434ed5338a
21 files changed
+60
-17
No files matched your search
Generated
+4
-4
@@ -3999,7 +3999,7 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scopenet-core"
|
name = "scopenet-core"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
@@ -4021,7 +4021,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scopenet-launcher"
|
name = "scopenet-launcher"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
@@ -4047,7 +4047,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scopenet-panel"
|
name = "scopenet-panel"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"argon2",
|
"argon2",
|
||||||
@@ -4083,7 +4083,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "scopenet-shared"
|
name = "scopenet-shared"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"md-5",
|
"md-5",
|
||||||
"serde",
|
"serde",
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ resolver = "2"
|
|||||||
members = ["crates/shared", "crates/core", "panel/server", "launcher/src-tauri"]
|
members = ["crates/shared", "crates/core", "panel/server", "launcher/src-tauri"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
repository = "https://github.com/scopeddlol/SCOPENET-MC"
|
repository = "https://github.com/scopeddlol/SCOPENET-MC"
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,13 @@
|
|||||||
repositories {
|
repositories {
|
||||||
maven { url = 'https://repo.bluecolored.de/releases' }
|
maven { url = 'https://repo.bluecolored.de/releases' }
|
||||||
}
|
}
|
||||||
|
configurations.compileClasspath {
|
||||||
|
attributes {
|
||||||
|
attribute(org.gradle.api.attributes.java.TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 21)
|
||||||
|
}
|
||||||
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':common')
|
implementation project(':common')
|
||||||
compileOnly 'de.bluecolored.bluemap:BlueMapAPI:2.7.4'
|
compileOnly 'de.bluecolored:bluemap-api:2.7.4'
|
||||||
implementation 'com.google.code.gson:gson:2.10.1'
|
implementation 'com.google.code.gson:gson:2.10.1'
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
allprojects {
|
allprojects {
|
||||||
group = 'net.scopenet'
|
group = 'net.scopenet'
|
||||||
version = providers.gradleProperty('releaseVersion').getOrElse('0.4.0')
|
version = providers.gradleProperty('releaseVersion').getOrElse('0.5.0')
|
||||||
repositories { mavenCentral() }
|
repositories { mavenCentral() }
|
||||||
}
|
}
|
||||||
subprojects {
|
subprojects {
|
||||||
|
|||||||
@@ -24,6 +24,6 @@ jar {
|
|||||||
from project(':common').sourceSets.main.output
|
from project(':common').sourceSets.main.output
|
||||||
from project(':api').sourceSets.main.output
|
from project(':api').sourceSets.main.output
|
||||||
from project(':bluemap').sourceSets.main.output
|
from project(':bluemap').sourceSets.main.output
|
||||||
from { configurations.runtimeClasspath.findAll { it.name.endsWith('.jar') && !it.name.startsWith('common-') }.collect { zipTree(it) } }
|
from { configurations.runtimeClasspath.findAll { it.name.endsWith('.jar') && !it.name.startsWith('common-') && !it.name.startsWith('api-') && !it.name.startsWith('bluemap-') }.collect { zipTree(it) } }
|
||||||
exclude 'META-INF/*.SF', 'META-INF/*.RSA', 'META-INF/*.DSA'
|
exclude 'META-INF/*.SF', 'META-INF/*.RSA', 'META-INF/*.DSA'
|
||||||
}
|
}
|
||||||
@@ -27,6 +27,7 @@ public final class ScopenetPlugin extends JavaPlugin implements Listener {
|
|||||||
private ClientLinkBridge clientLink;
|
private ClientLinkBridge clientLink;
|
||||||
private EssentialsHandler essentialsHandler;
|
private EssentialsHandler essentialsHandler;
|
||||||
private GuildHandler guildHandler;
|
private GuildHandler guildHandler;
|
||||||
|
private boolean liveMapStarted;
|
||||||
|
|
||||||
@Override public void onEnable() {
|
@Override public void onEnable() {
|
||||||
// Install the deny-by-default listener even if configuration is invalid.
|
// Install the deny-by-default listener even if configuration is invalid.
|
||||||
@@ -52,7 +53,9 @@ public final class ScopenetPlugin extends JavaPlugin implements Listener {
|
|||||||
|
|
||||||
// Central Live Map: mirror chunks and player positions to the panel.
|
// Central Live Map: mirror chunks and player positions to the panel.
|
||||||
if (getConfig().getBoolean("livemap.enabled", true)) {
|
if (getConfig().getBoolean("livemap.enabled", true)) {
|
||||||
integration.enableLiveMap(Bukkit.getWorlds().get(0).getWorldFolder().toPath());
|
// STARTUP plugins enable before Paper loads any worlds. WorldLoadEvent starts
|
||||||
|
// the map on a fresh boot; this also handles enabling after worlds exist.
|
||||||
|
for (World world : Bukkit.getWorlds()) startLiveMap(world);
|
||||||
Bukkit.getScheduler().runTaskTimer(this, this::snapshotPlayers, 40, 20);
|
Bukkit.getScheduler().runTaskTimer(this, this::snapshotPlayers, 40, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,11 +121,23 @@ public final class ScopenetPlugin extends JavaPlugin implements Listener {
|
|||||||
getLogger().info(" - Essentials: " + (settings.essentialsEnabled() ? "ENABLED" : "DISABLED"));
|
getLogger().info(" - Essentials: " + (settings.essentialsEnabled() ? "ENABLED" : "DISABLED"));
|
||||||
getLogger().info(" - Economy: " + (settings.economyEnabled() ? "ENABLED" : "DISABLED"));
|
getLogger().info(" - Economy: " + (settings.economyEnabled() ? "ENABLED" : "DISABLED"));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
getLogger().severe("SCOPENET is blocking joins: " + e.getMessage());
|
getLogger().log(java.util.logging.Level.SEVERE, "SCOPENET is blocking joins", e);
|
||||||
for (Player player : Bukkit.getOnlinePlayers()) player.kickPlayer(Integration.UNAVAILABLE);
|
for (Player player : Bukkit.getOnlinePlayers()) player.kickPlayer(Integration.UNAVAILABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void worldLoaded(org.bukkit.event.world.WorldLoadEvent event) {
|
||||||
|
startLiveMap(event.getWorld());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startLiveMap(World world) {
|
||||||
|
if (liveMapStarted || integration == null || world.getEnvironment() != World.Environment.NORMAL
|
||||||
|
|| !getConfig().getBoolean("livemap.enabled", true)) return;
|
||||||
|
integration.enableLiveMap(world.getWorldFolder().toPath());
|
||||||
|
liveMapStarted = true;
|
||||||
|
}
|
||||||
|
|
||||||
private Settings readSettings() {
|
private Settings readSettings() {
|
||||||
return Settings.of(
|
return Settings.of(
|
||||||
getConfig().getString("panel-url", ""),
|
getConfig().getString("panel-url", ""),
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "scopenet-launcher",
|
"name": "scopenet-launcher",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.4.0",
|
"version": "0.5.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -10,9 +10,15 @@ use std::sync::{Mutex, RwLock};
|
|||||||
/// Values baked in at build time by CI (see `.github/workflows/release.yml`).
|
/// Values baked in at build time by CI (see `.github/workflows/release.yml`).
|
||||||
pub mod build {
|
pub mod build {
|
||||||
/// Default panel URL for this build.
|
/// Default panel URL for this build.
|
||||||
pub const PANEL_URL: Option<&str> = option_env!("SCOPENET_PANEL_URL");
|
pub const PANEL_URL: Option<&str> = match option_env!("SCOPENET_PANEL_URL") {
|
||||||
|
Some(u) if !u.is_empty() => Some(u),
|
||||||
|
_ => Some("https://scopenetmcpanel.scopedd.lol"),
|
||||||
|
};
|
||||||
/// `owner/repo` used to check GitHub releases for updates.
|
/// `owner/repo` used to check GitHub releases for updates.
|
||||||
pub const REPO: Option<&str> = option_env!("SCOPENET_REPO");
|
pub const REPO: Option<&str> = match option_env!("SCOPENET_REPO") {
|
||||||
|
Some(r) if !r.is_empty() => Some(r),
|
||||||
|
_ => Some("scopeddlol/SCOPENET-MC"),
|
||||||
|
};
|
||||||
/// When set to "1", players can't change the panel URL.
|
/// When set to "1", players can't change the panel URL.
|
||||||
pub const LOCK_PANEL: Option<&str> = option_env!("SCOPENET_LOCK_PANEL");
|
pub const LOCK_PANEL: Option<&str> = option_env!("SCOPENET_LOCK_PANEL");
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "SCOPENET Launcher",
|
"productName": "SCOPENET Launcher",
|
||||||
"version": "0.4.0",
|
"version": "0.5.0",
|
||||||
"identifier": "net.scopenet.launcher",
|
"identifier": "net.scopenet.launcher",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "npm run dev",
|
"beforeDevCommand": "npm run dev",
|
||||||
|
|||||||
@@ -90,9 +90,17 @@ export async function init() {
|
|||||||
theme();
|
theme();
|
||||||
pickSelected();
|
pickSelected();
|
||||||
subscribe();
|
subscribe();
|
||||||
app.ready = true;
|
|
||||||
invoke('show_window').catch(() => {});
|
invoke('show_window').catch(() => {});
|
||||||
if (app.panelUrl) await refresh();
|
if (app.panelUrl && !app.manifest) {
|
||||||
|
try {
|
||||||
|
await refresh();
|
||||||
|
} finally {
|
||||||
|
app.ready = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
app.ready = true;
|
||||||
|
if (app.panelUrl) await refresh();
|
||||||
|
}
|
||||||
if (boot.settings.check_updates && boot.app.repo) {
|
if (boot.settings.check_updates && boot.app.repo) {
|
||||||
invoke<UpdateInfo | null>('check_update').then((u) => (app.update = u)).catch(() => {});
|
invoke<UpdateInfo | null>('check_update').then((u) => (app.update = u)).catch(() => {});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "scopenet-panel-web",
|
"name": "scopenet-panel-web",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.4.0",
|
"version": "0.5.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
|||||||
|
5e931abbb8b037c8de349afdd0b4165c23059e58672f7e0a11a27c4f70db6bed scopenet-client-fabric-1.20.1-0.5.0.jar
|
||||||
|
cb8690f842f0efb7a336c568a12e11c5bc9da2986ab68f337d4ca211c99cecb5 scopenet-fabric-1.20.1-0.5.0.jar
|
||||||
|
e1e6650e05f5a66655f88be8e892095e79ddf8cd5502affea9bd68033e33cc21 scopenet-fabric-1.21.1-0.5.0.jar
|
||||||
|
a54a1478c0740eb4aef20797037738355e3482ac1f4eaaa9b408d16e2303b7ed scopenet-fabric-26.3-0.5.0.jar
|
||||||
|
d9a22725d0b2554f31e010a6f596a73c023b339490ef982b5d53e8f866a8c447 scopenet-forge-1.20.1-0.5.0.jar
|
||||||
|
49098a90919fdea02f4eec26e332cd6a51fc7bb398ba1d55f87528f52610e250 scopenet-forge-1.21.1-0.5.0.jar
|
||||||
|
31e5076947f33ad1ec0037d92736b28eb8a47e4be84a6bacbf1dfd11308f579a scopenet-forge-26.3-0.5.0.jar
|
||||||
|
4963fad47421c8c4c9ff96cfa44fd808a5ecda2da1c2b08b0c18c43eaef5cb1c scopenet-paper-0.5.0.jar
|
||||||
|
3ade714b0869b9fbb0e6175280b69d5bb6531543ce8ce48c7f231f170081dd5f SCOPENET Launcher_0.5.0_x64-setup.exe
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in new issue
Block a user