Initial
This commit is contained in:
commit
e443249166
29 changed files with 2887 additions and 0 deletions
51
bukkit/pom.xml
Normal file
51
bukkit/pom.xml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<project>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<artifactId>parent</artifactId>
|
||||
<groupId>org.zhdev.varioutil</groupId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>bukkit</artifactId>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>io</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>common</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.20-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot</artifactId>
|
||||
<version>1.20-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>minecraft-server</artifactId>
|
||||
<version>1.20-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
15
bukkit/src/main/java/org/zhdev/config/BukkitConfig.java
Normal file
15
bukkit/src/main/java/org/zhdev/config/BukkitConfig.java
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
package org.zhdev.config;
|
||||
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface BukkitConfig extends Config {
|
||||
File load(Plugin plugin, String path) throws ConfigException;
|
||||
|
||||
File load(Plugin plugin) throws ConfigException;
|
||||
|
||||
File saveIfEmpty(Plugin plugin, String path) throws ConfigException;
|
||||
|
||||
File saveIfEmpty(Plugin plugin) throws ConfigException;
|
||||
}
|
||||
77
bukkit/src/main/java/org/zhdev/config/BukkitYamlConfig.java
Normal file
77
bukkit/src/main/java/org/zhdev/config/BukkitYamlConfig.java
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
package org.zhdev.config;
|
||||
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerializable;
|
||||
import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.yaml.snakeyaml.nodes.Node;
|
||||
import org.zhdev.util.ResourceUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class BukkitYamlConfig extends YamlConfig implements BukkitConfig {
|
||||
public BukkitYamlConfig(String key) {
|
||||
super(key);
|
||||
}
|
||||
|
||||
public BukkitYamlConfig() {}
|
||||
|
||||
@Override
|
||||
protected Object constructHandle(Node keyNode, Node valueNode, String key, Object value) {
|
||||
if (value instanceof Map) {
|
||||
Map<?, ?> raw = (Map<?, ?>) valueNode;
|
||||
if (raw.containsKey(ConfigurationSerialization.SERIALIZED_TYPE_KEY)) {
|
||||
Map<String, Object> map = new LinkedHashMap<>(raw.size());
|
||||
for (Map.Entry<?, ?> entry : raw.entrySet()) {
|
||||
map.put(String.valueOf(entry.getKey()), entry.getValue());
|
||||
}
|
||||
return ConfigurationSerialization.deserializeObject(map);
|
||||
}
|
||||
}
|
||||
return super.constructHandle(keyNode, valueNode, key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Node representHandle(String key, Object value) {
|
||||
if (value instanceof ConfigurationSerializable) {
|
||||
ConfigurationSerializable serializable = (ConfigurationSerializable) value;
|
||||
Map<String, Object> values = new LinkedHashMap<>();
|
||||
values.put(ConfigurationSerialization.SERIALIZED_TYPE_KEY, ConfigurationSerialization.getAlias(serializable.getClass()));
|
||||
values.putAll(serializable.serialize());
|
||||
return REPRESENTER.represent(values);
|
||||
}
|
||||
return super.representHandle(key, value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File load(Plugin plugin, String path) throws ConfigException {
|
||||
ClassLoader classLoader = plugin.getClass().getClassLoader();
|
||||
InputStream stream = ResourceUtils.getResource(path, classLoader);
|
||||
if (stream != null) {
|
||||
load(stream);
|
||||
}
|
||||
|
||||
File file = load(plugin.getDataFolder().getPath() + File.separatorChar + path);
|
||||
if (file.length() == 0) {
|
||||
ResourceUtils.saveResource(path, file, classLoader);
|
||||
}
|
||||
return load(plugin.getDataFolder().getPath() + File.separatorChar + path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File load(Plugin plugin) throws ConfigException {
|
||||
return load(plugin, key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File saveIfEmpty(Plugin plugin, String path) throws ConfigException {
|
||||
return saveIfEmpty(plugin.getDataFolder().getPath() + File.separatorChar + path);
|
||||
}
|
||||
|
||||
@Override
|
||||
public File saveIfEmpty(Plugin plugin) throws ConfigException {
|
||||
return saveIfEmpty(plugin, key);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue