Skip to content

Commit 4bf14c8

Browse files
Merge pull request #1215 from VolmitSoftware/dev
3.7.1
2 parents a9891e8 + 837674c commit 4bf14c8

File tree

65 files changed

+2039
-1610
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2039
-1610
lines changed

build.gradle.kts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,12 @@ plugins {
3131
java
3232
`java-library`
3333
alias(libs.plugins.shadow)
34-
alias(libs.plugins.sentry)
3534
alias(libs.plugins.download)
3635
alias(libs.plugins.runPaper)
3736
}
3837

3938
group = "com.volmit"
40-
version = "3.7.0-1.20.1-1.21.7"
39+
version = "3.7.0-1.20.1-1.21.8"
4140

4241
apply<ApiGenerator>()
4342

@@ -156,12 +155,13 @@ tasks {
156155
group = "io.sentry"
157156
dependsOn("downloadCli")
158157
doLast {
158+
val url = "http://sentry.volmit.com:8080"
159159
val authToken = project.findProperty("sentry.auth.token") ?: System.getenv("SENTRY_AUTH_TOKEN")
160-
val org = "volmit-software"
160+
val org = "sentry"
161161
val projectName = "iris"
162-
exec(cli, "releases", "new", "--auth-token", authToken, "-o", org, "-p", projectName, version)
163-
exec(cli, "releases", "set-commits", "--auth-token", authToken, "-o", org, "-p", projectName, version, "--auto", "--ignore-missing")
164-
exec(cli, "releases", "finalize", "--auth-token", authToken, "-o", org, "-p", projectName, version)
162+
exec(cli, "--url", url , "--auth-token", authToken, "releases", "new", "-o", org, "-p", projectName, version)
163+
exec(cli, "--url", url , "--auth-token", authToken, "releases", "set-commits", "-o", org, "-p", projectName, version, "--auto", "--ignore-missing")
164+
//exec(cli, "--url", url, "--auth-token", authToken, "releases", "finalize", "-o", org, "-p", projectName, version)
165165
cli.delete()
166166
}
167167
}

core/build.gradle.kts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import io.github.slimjar.func.slimjar
1+
import io.github.slimjar.func.slimjarHelper
22
import io.github.slimjar.resolver.data.Mirror
3+
import org.ajoberstar.grgit.Grgit
34
import java.net.URI
45

56
/*
@@ -26,6 +27,7 @@ plugins {
2627
alias(libs.plugins.shadow)
2728
alias(libs.plugins.sentry)
2829
alias(libs.plugins.slimjar)
30+
alias(libs.plugins.grgit)
2931
}
3032

3133
val apiVersion = "1.19"
@@ -65,7 +67,7 @@ dependencies {
6567
compileOnly(libs.multiverseCore)
6668

6769
// Shaded
68-
implementation(slimjar())
70+
implementation(slimjarHelper("spigot"))
6971

7072
// Dynamically Loaded
7173
slim(libs.paralithic)
@@ -98,10 +100,11 @@ java {
98100
}
99101

100102
sentry {
103+
url = "http://sentry.volmit.com:8080/"
101104
autoInstallation.enabled = false
102105
includeSourceContext = true
103106

104-
org = "volmit-software"
107+
org = "sentry"
105108
projectName = "iris"
106109
authToken = findProperty("sentry.auth.token") as String? ?: System.getenv("SENTRY_AUTH_TOKEN")
107110
}
@@ -137,6 +140,15 @@ tasks {
137140
"version" to rootProject.version,
138141
"apiVersion" to apiVersion,
139142
"main" to main,
143+
"environment" to if (project.hasProperty("release")) "production" else "development",
144+
"commit" to provider {
145+
val res = runCatching { project.extensions.getByType<Grgit>().head().id }
146+
res.getOrDefault("")
147+
.takeIf { it.length == 40 } ?: {
148+
logger.error("Git commit hash not found", res.exceptionOrNull())
149+
"unknown"
150+
}()
151+
},
140152
)
141153
filesMatching("**/plugin.yml") {
142154
expand(inputs.properties)
@@ -147,6 +159,7 @@ tasks {
147159
mergeServiceFiles()
148160
//minimize()
149161
relocate("io.github.slimjar", "$lib.slimjar")
162+
exclude("modules/loader-agent.isolated-jar")
150163
}
151164
}
152165

core/src/main/java/com/volmit/iris/Iris.java

Lines changed: 24 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
import com.google.gson.JsonParseException;
2323
import com.google.gson.JsonParser;
2424
import com.volmit.iris.core.IrisSettings;
25+
import com.volmit.iris.core.IrisWorlds;
2526
import com.volmit.iris.core.ServerConfigurator;
2627
import com.volmit.iris.core.link.IrisPapiExpansion;
2728
import com.volmit.iris.core.link.MultiverseCoreLink;
28-
import com.volmit.iris.core.link.MythicMobsLink;
2929
import com.volmit.iris.core.loader.IrisData;
3030
import com.volmit.iris.core.nms.INMS;
3131
import com.volmit.iris.core.nms.v1X.NMSBinding1X;
@@ -66,9 +66,6 @@
6666
import org.bukkit.block.data.BlockData;
6767
import org.bukkit.command.Command;
6868
import org.bukkit.command.CommandSender;
69-
import org.bukkit.configuration.ConfigurationSection;
70-
import org.bukkit.configuration.file.FileConfiguration;
71-
import org.bukkit.configuration.file.YamlConfiguration;
7269
import org.bukkit.entity.Player;
7370
import org.bukkit.event.*;
7471
import org.bukkit.generator.BiomeProvider;
@@ -82,6 +79,7 @@
8279
import java.lang.annotation.Annotation;
8380
import java.net.URL;
8481
import java.util.*;
82+
import java.util.function.Predicate;
8583
import java.util.regex.Matcher;
8684
import java.util.regex.Pattern;
8785

@@ -95,7 +93,6 @@ public class Iris extends VolmitPlugin implements Listener {
9593
public static Iris instance;
9694
public static Bindings.Adventure audiences;
9795
public static MultiverseCoreLink linkMultiverseCore;
98-
public static MythicMobsLink linkMythicMobs;
9996
public static IrisCompat compat;
10097
public static FileWatcher configWatcher;
10198
private static VolmitSender sender;
@@ -438,8 +435,7 @@ public static void addPanic(String s, String v) {
438435

439436
public Iris() {
440437
instance = this;
441-
SlimJar.debug(IrisSettings.get().getSentry().isDebug());
442-
SlimJar.load(getDataFolder("cache", "libraries"));
438+
SlimJar.load();
443439
}
444440

445441
private void enable() {
@@ -454,7 +450,6 @@ private void enable() {
454450
getSender().setTag(getTag());
455451
IrisSafeguard.splash(true);
456452
linkMultiverseCore = new MultiverseCoreLink();
457-
linkMythicMobs = new MythicMobsLink();
458453
configWatcher = new FileWatcher(getDataFile("settings.json"));
459454
services.values().forEach(IrisService::onEnable);
460455
services.values().forEach(this::registerListener);
@@ -470,48 +465,34 @@ private void enable() {
470465
IrisSafeguard.splash(false);
471466

472467
autoStartStudio();
473-
checkForBukkitWorlds();
468+
checkForBukkitWorlds(s -> true);
474469
IrisToolbelt.retainMantleDataForSlice(String.class.getCanonicalName());
475470
IrisToolbelt.retainMantleDataForSlice(BlockData.class.getCanonicalName());
476471
});
477472
}
478473

479-
private void checkForBukkitWorlds() {
480-
FileConfiguration fc = new YamlConfiguration();
474+
public void checkForBukkitWorlds(Predicate<String> filter) {
481475
try {
482-
fc.load(new File("bukkit.yml"));
483-
ConfigurationSection section = fc.getConfigurationSection("worlds");
484-
if (section == null) {
485-
return;
486-
}
487-
488-
for (String s : section.getKeys(false)) {
489-
ConfigurationSection entry = section.getConfigurationSection(s);
490-
if (!entry.contains("generator", true)) {
491-
continue;
492-
}
493-
494-
String generator = entry.getString("generator");
495-
if (generator.startsWith("Iris:")) {
496-
generator = generator.split("\\Q:\\E")[1];
497-
} else if (generator.equalsIgnoreCase("Iris")) {
498-
generator = IrisSettings.get().getGenerator().getDefaultWorldType();
499-
} else {
500-
continue;
476+
IrisWorlds.readBukkitWorlds().forEach((s, generator) -> {
477+
try {
478+
if (Bukkit.getWorld(s) != null || !filter.test(s)) return;
479+
480+
Iris.info("Loading World: %s | Generator: %s", s, generator);
481+
var gen = getDefaultWorldGenerator(s, generator);
482+
var dim = loadDimension(s, generator);
483+
assert dim != null && gen != null;
484+
485+
Iris.info(C.LIGHT_PURPLE + "Preparing Spawn for " + s + "' using Iris:" + generator + "...");
486+
WorldCreator c = new WorldCreator(s)
487+
.generator(gen)
488+
.environment(dim.getEnvironment());
489+
INMS.get().createWorld(c);
490+
Iris.info(C.LIGHT_PURPLE + "Loaded " + s + "!");
491+
} catch (Throwable e) {
492+
Iris.error("Failed to load world " + s + "!");
493+
e.printStackTrace();
501494
}
502-
503-
if (Bukkit.getWorld(s) != null)
504-
continue;
505-
506-
Iris.info("Loading World: %s | Generator: %s", s, generator);
507-
508-
Iris.info(C.LIGHT_PURPLE + "Preparing Spawn for " + s + "' using Iris:" + generator + "...");
509-
WorldCreator c = new WorldCreator(s)
510-
.generator(getDefaultWorldGenerator(s, generator))
511-
.environment(IrisData.loadAnyDimension(generator).getEnvironment());
512-
INMS.get().createWorld(c);
513-
Iris.info(C.LIGHT_PURPLE + "Loaded " + s + "!");
514-
}
495+
});
515496
} catch (Throwable e) {
516497
e.printStackTrace();
517498
reportError(e);

core/src/main/java/com/volmit/iris/core/IrisSettings.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.volmit.iris.util.io.IO;
2424
import com.volmit.iris.util.json.JSONException;
2525
import com.volmit.iris.util.json.JSONObject;
26-
import com.volmit.iris.util.misc.SlimJar;
2726
import com.volmit.iris.util.misc.getHardware;
2827
import com.volmit.iris.util.plugin.VolmitSender;
2928
import lombok.AllArgsConstructor;
@@ -87,7 +86,6 @@ public static IrisSettings get() {
8786
Iris.error("Configuration Error in settings.json! " + ee.getClass().getSimpleName() + ": " + ee.getMessage());
8887
}
8988
}
90-
SlimJar.debug(settings.general.debug);
9189

9290
return settings;
9391
}

core/src/main/java/com/volmit/iris/core/IrisWorlds.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
import com.google.gson.GsonBuilder;
55
import com.google.gson.reflect.TypeToken;
66
import com.volmit.iris.Iris;
7+
import com.volmit.iris.core.loader.IrisData;
78
import com.volmit.iris.engine.data.cache.AtomicCache;
9+
import com.volmit.iris.engine.object.IrisDimension;
810
import com.volmit.iris.util.collection.KMap;
911
import com.volmit.iris.util.io.IO;
12+
import com.volmit.iris.util.misc.ServerProperties;
1013
import org.bukkit.Bukkit;
14+
import org.bukkit.configuration.file.YamlConfiguration;
1115

1216
import java.io.File;
1317
import java.io.IOException;
@@ -25,6 +29,7 @@ public class IrisWorlds {
2529

2630
private IrisWorlds(KMap<String, String> worlds) {
2731
this.worlds = worlds;
32+
readBukkitWorlds().forEach(this::put0);
2833
save();
2934
}
3035

@@ -50,14 +55,33 @@ public static IrisWorlds get() {
5055
}
5156

5257
public void put(String name, String type) {
58+
put0(name, type);
59+
save();
60+
}
61+
62+
private void put0(String name, String type) {
5363
String old = worlds.put(name, type);
5464
if (!type.equals(old))
5565
dirty = true;
56-
save();
5766
}
5867

59-
public Stream<File> getFolders() {
60-
return worlds.keySet().stream().map(k -> new File(Bukkit.getWorldContainer(), k));
68+
public KMap<String, String> getWorlds() {
69+
return readBukkitWorlds().put(worlds);
70+
}
71+
72+
public Stream<IrisData> getPacks() {
73+
return getDimensions()
74+
.map(IrisDimension::getLoader)
75+
.filter(Objects::nonNull);
76+
}
77+
78+
public Stream<IrisDimension> getDimensions() {
79+
return readBukkitWorlds()
80+
.put(worlds)
81+
.entrySet()
82+
.stream()
83+
.map(entry -> Iris.loadDimension(entry.getKey(), entry.getValue()))
84+
.filter(Objects::nonNull);
6185
}
6286

6387
public void clean() {
@@ -76,4 +100,27 @@ public synchronized void save() {
76100
Iris.reportError(e);
77101
}
78102
}
103+
104+
public static KMap<String, String> readBukkitWorlds() {
105+
var bukkit = YamlConfiguration.loadConfiguration(ServerProperties.BUKKIT_YML);
106+
var worlds = bukkit.getConfigurationSection("worlds");
107+
if (worlds == null) return new KMap<>();
108+
109+
var result = new KMap<String, String>();
110+
for (String world : worlds.getKeys(false)) {
111+
var gen = worlds.getString(world + ".generator");
112+
if (gen == null) continue;
113+
114+
String loadKey;
115+
if (gen.equalsIgnoreCase("iris")) {
116+
loadKey = IrisSettings.get().getGenerator().getDefaultWorldType();
117+
} else if (gen.startsWith("Iris:")) {
118+
loadKey = gen.substring(5);
119+
} else continue;
120+
121+
result.put(world, loadKey);
122+
}
123+
124+
return result;
125+
}
79126
}

core/src/main/java/com/volmit/iris/core/ServerConfigurator.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,13 @@ public static boolean verifyDataPackInstalled(IrisDimension dimension) {
237237
}
238238

239239
public static Stream<IrisData> allPacks() {
240-
return Stream.concat(listFiles(Iris.instance.getDataFolder("packs")),
241-
IrisWorlds.get().getFolders().map(w -> new File(w, "iris/pack")))
240+
return Stream.concat(listFiles(Iris.instance.getDataFolder("packs"))
242241
.filter(File::isDirectory)
243242
.filter( base -> {
244243
var content = new File(base, "dimensions").listFiles();
245244
return content != null && content.length > 0;
246245
})
247-
.map(IrisData::get);
246+
.map(IrisData::get), IrisWorlds.get().getPacks());
248247
}
249248

250249
@Nullable

0 commit comments

Comments
 (0)