Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bukkit-impl/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ dependencies {
testImplementation(testFixtures(project(":api")))
testImplementation(libs.adventure.nbt)
testImplementation(libs.mockbukkit)
testImplementation(libs.paper.api)
testImplementation(libs.sqlite.jdbc)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import dev.jsinco.brewery.api.util.Pair;
import dev.jsinco.brewery.bukkit.TheBrewingProject;
import dev.jsinco.brewery.configuration.DrunkenModifierSection;
import dev.jsinco.brewery.util.FileUtil;
import dev.jsinco.brewery.util.MessageUtil;
import io.papermc.paper.command.brigadier.CommandSourceStack;
import io.papermc.paper.command.brigadier.Commands;
Expand Down Expand Up @@ -193,7 +194,7 @@ private static int execute(CommandContext<CommandSourceStack> context, String ar
}

private static CompletableFuture<Suggestions> suggest(CommandContext<CommandSourceStack> context, SuggestionsBuilder builder) {
File dataFolder = TheBrewingProject.getInstance().getDataFolder();
File dataFolder = FileUtil.getWorkFolder();
String argString = builder.getRemaining();
String[] tokens = argString.split(" ", -1);
String current = tokens[tokens.length - 1];
Expand Down Expand Up @@ -233,8 +234,7 @@ private static void suggestFileSpecs(SuggestionsBuilder builder, String prefix,
}

private static File createDebugDump(String argsString) {
TheBrewingProject plugin = TheBrewingProject.getInstance();
File dataFolder = plugin.getDataFolder();
File dataFolder = FileUtil.getWorkFolder();
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss"));

File outputDir = new File(dataFolder, "output");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package dev.jsinco.brewery.bukkit.util;

import dev.jsinco.brewery.bukkit.TheBrewingProject;
import dev.jsinco.brewery.util.WorkFolderProvider;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class WorkFolderProviderImpl implements WorkFolderProvider {


@Override
public File getWorkFolder() {
TheBrewingProject instance = TheBrewingProject.getInstance();
if (instance == null) {
try {
return Files.createTempDirectory("tbp").toFile();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return instance.getDataFolder();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dev.jsinco.brewery.bukkit.util.WorkFolderProviderImpl
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.mockbukkit.mockbukkit.world.WorldMock;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
Expand Down Expand Up @@ -73,7 +74,7 @@ void fromJson_names(String pathString) throws StructureReadException, IOExceptio
assertEquals(structureName, structure.getName());
}

BreweryStructure readStructure(Path internalPath, File jsonFile) {
BreweryStructure readStructure(Path internalPath, File jsonFile) throws IOException {
OkaeriSerdes pack = new OkaeriSerdesBuilder()
.add(new BreweryVectorSerializer())
.add(new BreweryVectorListSerializer())
Expand All @@ -84,13 +85,12 @@ BreweryStructure readStructure(Path internalPath, File jsonFile) {
.add(new MaterialsSerializer())
.add(new StructureTypeSerializer())
.build();
return ConfigManager.create(BreweryStructureConfig.class, it -> {
it.withConfigurer(new YamlSnakeYamlConfigurer(), pack);
it.withBindFile(jsonFile);
it.withRemoveOrphans(true);
it.saveDefaults();
it.load(false);
}).toStructure(internalPath, StructurePlacerUtils.matchers());
try (InputStream inputStream = new FileInputStream(jsonFile)) {
return ConfigManager.create(BreweryStructureConfig.class, it -> {
it.configure(options -> options.configurer(new YamlSnakeYamlConfigurer(), pack));
it.load(inputStream);
}).toStructure(internalPath, StructurePlacerUtils.matchers());
}
}

static Stream<Arguments> getSchemFormatPaths() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.jsinco.brewery.configuration.structure;

import dev.jsinco.brewery.api.breweries.BarrelType;
import dev.jsinco.brewery.util.FileUtil;
import eu.okaeri.configs.ConfigManager;
import eu.okaeri.configs.OkaeriConfig;
import eu.okaeri.configs.annotation.CustomKey;
Expand Down Expand Up @@ -30,7 +31,7 @@ public class BarrelTypeDefinitions extends OkaeriConfig {

public static List<BarrelType> allBarrelTypes() {
boolean newlySaved = false;
File barrelTypesFile = new File("plugins/TheBrewingProject", "barrel_types.yml");
File barrelTypesFile = new File(FileUtil.getWorkFolder(), "barrel_types.yml");
try {
if (!barrelTypesFile.exists()) {
if (!barrelTypesFile.createNewFile()) {
Expand Down
13 changes: 13 additions & 0 deletions core/src/main/java/dev/jsinco/brewery/util/FileUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.google.gson.JsonParser;
import org.jspecify.annotations.NonNull;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
Expand All @@ -12,9 +13,12 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
import java.util.ServiceLoader;

public final class FileUtil {

private static WorkFolderProvider workFolderProvider;

public static void extractFile(@NonNull Class<?> clazz, @NonNull String filename, @NonNull Path outDir, boolean replace) {
try (InputStream in = clazz.getResourceAsStream("/" + filename)) {
if (in == null) {
Expand Down Expand Up @@ -49,4 +53,13 @@ public static JsonElement readJsonResource(String path) {
throw new RuntimeException(e);
}
}

public static File getWorkFolder() {
if (workFolderProvider == null) {
workFolderProvider = ServiceLoader.load(WorkFolderProvider.class, WorkFolderProvider.class.getClassLoader()).findFirst()
.orElseThrow();
}
return workFolderProvider.getWorkFolder();
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.jsinco.brewery.util;

import java.io.File;

public interface WorkFolderProvider {


File getWorkFolder();
}
3 changes: 1 addition & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jetbrainsAnnotations = "26.0.2-1"
adventure = "4.23.0"
junit = "5.13.3"
junit-platform-launcher = "1.13.3"
mockbukkit = "4.64.0"
mockbukkit = "4.113.1"
sqlite-jdbc = "3.50.1.0"

[libraries]
Expand Down Expand Up @@ -92,7 +92,6 @@ jetbrains-annotations = { group = "org.jetbrains", name = "annotations", version
adventure-api = { group = "net.kyori", name = "adventure-api", version.ref = "adventure" }
adventure-nbt = { group = "net.kyori", name = "adventure-nbt", version.ref = "adventure" }
adventure-text-minimessage = { group = "net.kyori", name = "adventure-text-minimessage", version.ref = "adventure" }
junit-bom = { group = "org.junit", name = "junit-bom", version.ref = "junit" }
junit-jupiter = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit" }
junit-platform-launcher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junit-platform-launcher" }
mockbukkit = { group = "org.mockbukkit.mockbukkit", name = "mockbukkit-v1.21", version.ref = "mockbukkit" }
Expand Down
Loading