1
mirror of https://github.com/CarmJos/MineConfiguration.git synced 2026-06-04 13:55:03 +08:00

[1.0.0] 初始版本完成

This commit is contained in:
2022-04-23 23:20:50 +08:00
parent 1bcc8d832e
commit 589de2606c
37 changed files with 1094 additions and 1956 deletions
+65
View File
@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>mineconfiguration-parent</artifactId>
<groupId>cc.carm.lib</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<properties>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
</properties>
<artifactId>minecronfiguration-spigot</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>easyconfiguration-core</artifactId>
<version>${easyconfiguration.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>mineconfiguration-craftbukkit</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.18.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,33 @@
package cc.carm.lib.configuration;
import cc.carm.lib.configuration.spigot.source.SpigotConfigProvider;
import java.io.File;
import java.io.IOException;
public class MineConfiguration {
public static SpigotConfigProvider from(File file, String source) {
SpigotConfigProvider provider = new SpigotConfigProvider(file);
try {
provider.initializeFile(source);
provider.initializeConfig();
} catch (IOException e) {
e.printStackTrace();
}
return provider;
}
public static SpigotConfigProvider from(File file) {
return from(file, file.getName());
}
public static SpigotConfigProvider from(String fileName) {
return from(fileName, fileName);
}
public static SpigotConfigProvider from(String fileName, String source) {
return from(new File(fileName), source);
}
}
@@ -0,0 +1,57 @@
package cc.carm.lib.configuration.spigot.source;
import cc.carm.lib.configuration.core.ConfigInitializer;
import cc.carm.lib.configuration.core.source.ConfigCommentInfo;
import cc.carm.lib.configuration.craft.source.CraftConfigProvider;
import org.bukkit.configuration.file.YamlConfiguration;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SpigotConfigProvider extends CraftConfigProvider {
public SpigotConfigProvider(@NotNull File file) {
super(file);
}
@Override
public void initializeConfig() {
this.configuration = YamlConfiguration.loadConfiguration(file);
this.initializer = new ConfigInitializer<>(this);
}
@Override
public void setComment(@Nullable String path, @Nullable ConfigCommentInfo commentInfo) {
if (path == null) {
if (commentInfo == null) this.configuration.options().setFooter(null);
else if (!String.join("", commentInfo.getComments()).isEmpty()) {
this.configuration.options().setFooter(Arrays.asList(commentInfo.getComments()));
}
} else {
if (commentInfo == null) this.configuration.setComments(path, null);
else {
List<String> comments = new ArrayList<>();
if (!String.join("", commentInfo.getComments()).isEmpty()) {
if (commentInfo.startWrap()) comments.add("");
comments.addAll(Arrays.asList(commentInfo.getComments()));
if (commentInfo.endWrap()) comments.add("");
} else if (commentInfo.startWrap() || commentInfo.endWrap()) {
comments.add("");
}
this.configuration.setComments(path, comments);
}
}
}
@Override
public @Nullable ConfigCommentInfo getComment(@Nullable String path) {
return null;
}
}