mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +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>
|
<includes>
|
||||||
<include>plugin.yml</include>
|
<include>plugin.yml</include>
|
||||||
<include>config.yml</include>
|
<include>config.yml</include>
|
||||||
|
<include>item-models.yml</include>
|
||||||
|
|
||||||
<include>wiki.json</include>
|
<include>wiki.json</include>
|
||||||
<include>languages/translators.json</include>
|
<include>languages/translators.json</include>
|
||||||
|
@ -1,15 +1,23 @@
|
|||||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
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.Collection;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
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.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import io.github.thebusybiscuit.cscorelib2.config.Config;
|
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.Objects.SlimefunItem.SlimefunItem;
|
||||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||||
|
|
||||||
@ -65,21 +73,7 @@ public class CustomTextureService {
|
|||||||
public void register(@Nonnull Collection<SlimefunItem> items, boolean save) {
|
public void register(@Nonnull Collection<SlimefunItem> items, boolean save) {
|
||||||
Validate.notEmpty(items, "items must neither be null or empty.");
|
Validate.notEmpty(items, "items must neither be null or empty.");
|
||||||
|
|
||||||
config.setDefaultValue("SLIMEFUN_GUIDE", 0);
|
loadDefaultValues();
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
for (SlimefunItem item : items) {
|
for (SlimefunItem item : items) {
|
||||||
if (item != null) {
|
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
|
@Nullable
|
||||||
public String getVersion() {
|
public String getVersion() {
|
||||||
return version;
|
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