mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Default values for item models are now read from a resource file.
This commit is contained in:
parent
96f467d9f1
commit
81223004bf
1
pom.xml
1
pom.xml
@ -300,6 +300,7 @@
|
||||
<includes>
|
||||
<include>plugin.yml</include>
|
||||
<include>config.yml</include>
|
||||
<include>item-models.yml</include>
|
||||
|
||||
<include>wiki.json</include>
|
||||
<include>languages/translators.json</include>
|
||||
|
@ -1,15 +1,23 @@
|
||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Collection;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.config.Config;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
@ -65,21 +73,7 @@ public class CustomTextureService {
|
||||
public void register(@Nonnull Collection<SlimefunItem> items, boolean save) {
|
||||
Validate.notEmpty(items, "items must neither be null or empty.");
|
||||
|
||||
config.setDefaultValue("SLIMEFUN_GUIDE", 0);
|
||||
|
||||
config.setDefaultValue("_UI_BACKGROUND", 0);
|
||||
config.setDefaultValue("_UI_NO_PERMISSION", 0);
|
||||
config.setDefaultValue("_UI_NOT_RESEARCHED", 0);
|
||||
config.setDefaultValue("_UI_INPUT_SLOT", 0);
|
||||
config.setDefaultValue("_UI_OUTPUT_SLOT", 0);
|
||||
config.setDefaultValue("_UI_BACK", 0);
|
||||
config.setDefaultValue("_UI_MENU", 0);
|
||||
config.setDefaultValue("_UI_SEARCH", 0);
|
||||
config.setDefaultValue("_UI_WIKI", 0);
|
||||
config.setDefaultValue("_UI_PREVIOUS_ACTIVE", 0);
|
||||
config.setDefaultValue("_UI_PREVIOUS_INACTIVE", 0);
|
||||
config.setDefaultValue("_UI_NEXT_ACTIVE", 0);
|
||||
config.setDefaultValue("_UI_NEXT_INACTIVE", 0);
|
||||
loadDefaultValues();
|
||||
|
||||
for (SlimefunItem item : items) {
|
||||
if (item != null) {
|
||||
@ -98,6 +92,20 @@ public class CustomTextureService {
|
||||
}
|
||||
}
|
||||
|
||||
private void loadDefaultValues() {
|
||||
InputStream inputStream = SlimefunPlugin.class.getResourceAsStream("/item-models.yml");
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
|
||||
FileConfiguration cfg = YamlConfiguration.loadConfiguration(reader);
|
||||
|
||||
for (String key : cfg.getKeys(false)) {
|
||||
config.setDefaultValue(key, cfg.getInt(key));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
SlimefunPlugin.logger().log(Level.SEVERE, "Failed to load default item-models.yml file", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getVersion() {
|
||||
return version;
|
||||
|
20
src/main/resources/item-models.yml
Normal file
20
src/main/resources/item-models.yml
Normal file
@ -0,0 +1,20 @@
|
||||
# Slimefun items that are not registered.
|
||||
SLIMEFUN_GUIDE: 0
|
||||
ENDER_TALISMAN: 0
|
||||
|
||||
# UI elements also have their own id.
|
||||
_UI_BACKGROUND: 0
|
||||
_UI_NO_PERMISSION: 0
|
||||
_UI_NOT_RESEARCHED: 0
|
||||
_UI_INPUT_SLOT: 0
|
||||
_UI_OUTPUT_SLOT: 0
|
||||
_UI_BACK: 0
|
||||
_UI_MENU: 0
|
||||
_UI_SEARCH: 0
|
||||
_UI_WIKI: 0
|
||||
_UI_PREVIOUS_ACTIVE: 0
|
||||
_UI_PREVIOUS_INACTIVE: 0
|
||||
_UI_NEXT_ACTIVE: 0
|
||||
_UI_NEXT_INACTIVE: 0
|
||||
|
||||
## The rest of the file will be auto-populated with all registered Slimefun items.
|
Loading…
Reference in New Issue
Block a user