// Path: src/main/java/de/robotricker/transportpipes/config/GeneralConf.java
// public class GeneralConf extends Conf {
// 
//     @Inject
//     public GeneralConf(Plugin configPlugin) {
//         super(configPlugin, "config.yml", "config.yml", true);
//     }
// 
//     public int getMaxItemsPerPipe() {
//         return (int) read("max_items_per_pipe");
//     }
// 
//     public boolean isCraftingEnabled() {
//         return (boolean) read("crafting_enabled");
//     }
// 
//     @SuppressWarnings("unchecked")
//     public List<String> getAnticheatPlugins() {
//         return (List<String>) read("anticheat_plugins");
//     }
// 
//     public String getDefaultRenderSystemName() {
//         return (String) read("default_render_system");
//     }
// 
//     public boolean isDefaultShowItems() {
//         return (boolean) read("default_show_items");
//     }
// 
//     public int getDefaultRenderDistance() {
//         return (int) read("default_render_distance");
//     }
// 
//     @SuppressWarnings("unchecked")
//     public List<String> getDisabledWorlds() {
//         return (List<String>) read("disabled_worlds");
//     }
// 
//     public String getWrenchItem() {
//         return (String) read("wrench.item");
//     }
// 
//     public boolean getWrenchGlowing() {
//         return (boolean) read("wrench.glowing");
//     }
// 
//     public String getLanguage() {
//         return (String) read("language");
//     }
// 
//     public int getShowHiddenDuctsTime() {
//         return (int) read("show_hidden_ducts_time");
//     }
// 
//     public ResourcepackService.ResourcepackMode getResourcepackMode() {
//         String url = (String) read("resourcepack_mode");
//         if (url == null || url.equalsIgnoreCase("default")) {
//             return ResourcepackService.ResourcepackMode.DEFAULT;
//         } else if (url.equalsIgnoreCase("none")) {
//             return ResourcepackService.ResourcepackMode.NONE;
//         } else if (url.equalsIgnoreCase("server")) {
//             return ResourcepackService.ResourcepackMode.SERVER;
//         }
//         return ResourcepackService.ResourcepackMode.DEFAULT;
//     }
// 
// }
// 
// Path: src/main/java/de/robotricker/transportpipes/config/PlayerSettingsConf.java
// public class PlayerSettingsConf extends Conf {
// 
//     private GeneralConf generalConf;
// 
//     public PlayerSettingsConf(TransportPipes transportPipes, GeneralConf generalConf, Player p) {
//         super(transportPipes, "playerconfig.yml", "playersettings/" + p.getUniqueId().toString() + ".yml", false);
//         this.generalConf = generalConf;
//     }
// 
//     public int getRenderDistance() {
//         if (!getYamlConf().contains("render_distance")) {
//             setRenderDistance(generalConf.getDefaultRenderDistance());
//         }
//         return (int) read("render_distance");
//     }
// 
//     public void setRenderDistance(int renderDistance) {
//         overrideAsync("render_distance", renderDistance);
//     }
// 
//     public String getRenderSystemName() {
//         if (!getYamlConf().contains("render_system")) {
//             setRenderSystemName(generalConf.getDefaultRenderSystemName());
//         }
//         return (String) read("render_system");
//     }
// 
//     public void setRenderSystemName(String name) {
//         overrideAsync("render_system", name);
//     }
// 
//     public RenderSystem getRenderSystem(BaseDuctType baseDuctType) {
//         return RenderSystem.getRenderSystem(getRenderSystemName(), baseDuctType);
//     }
// 
//     public boolean isShowItems() {
//         if (!getYamlConf().contains("show_items")) {
//             setShowItems(generalConf.isDefaultShowItems());
//         }
//         return (int) read("show_items") == 1;
//     }
// 
//     public void setShowItems(boolean showItems) {
//         overrideAsync("show_items", showItems ? 1 : 0);
//     }
// 
// }


import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import de.robotricker.transportpipes.config.GeneralConf;
import de.robotricker.transportpipes.config.PlayerSettingsConf;
package de.robotricker.transportpipes;





public class PlayerSettingsService {

    @Inject
    private TransportPipes transportPipes;
    @Inject
    private GeneralConf generalConf;

// Path: src/main/java/de/robotricker/transportpipes/config/GeneralConf.java
// public class GeneralConf extends Conf {
// 
//     @Inject
//     public GeneralConf(Plugin configPlugin) {
//         super(configPlugin, "config.yml", "config.yml", true);
//     }
// 
//     public int getMaxItemsPerPipe() {
//         return (int) read("max_items_per_pipe");
//     }
// 
//     public boolean isCraftingEnabled() {
//         return (boolean) read("crafting_enabled");
//     }
// 
//     @SuppressWarnings("unchecked")
//     public List<String> getAnticheatPlugins() {
//         return (List<String>) read("anticheat_plugins");
//     }
// 
//     public String getDefaultRenderSystemName() {
//         return (String) read("default_render_system");
//     }
// 
//     public boolean isDefaultShowItems() {
//         return (boolean) read("default_show_items");
//     }
// 
//     public int getDefaultRenderDistance() {
//         return (int) read("default_render_distance");
//     }
// 
//     @SuppressWarnings("unchecked")
//     public List<String> getDisabledWorlds() {
//         return (List<String>) read("disabled_worlds");
//     }
// 
//     public String getWrenchItem() {
//         return (String) read("wrench.item");
//     }
// 
//     public boolean getWrenchGlowing() {
//         return (boolean) read("wrench.glowing");
//     }
// 
//     public String getLanguage() {
//         return (String) read("language");
//     }
// 
//     public int getShowHiddenDuctsTime() {
//         return (int) read("show_hidden_ducts_time");
//     }
// 
//     public ResourcepackService.ResourcepackMode getResourcepackMode() {
//         String url = (String) read("resourcepack_mode");
//         if (url == null || url.equalsIgnoreCase("default")) {
//             return ResourcepackService.ResourcepackMode.DEFAULT;
//         } else if (url.equalsIgnoreCase("none")) {
//             return ResourcepackService.ResourcepackMode.NONE;
//         } else if (url.equalsIgnoreCase("server")) {
//             return ResourcepackService.ResourcepackMode.SERVER;
//         }
//         return ResourcepackService.ResourcepackMode.DEFAULT;
//     }
// 
// }
// 
// Path: src/main/java/de/robotricker/transportpipes/config/PlayerSettingsConf.java
// public class PlayerSettingsConf extends Conf {
// 
//     private GeneralConf generalConf;
// 
//     public PlayerSettingsConf(TransportPipes transportPipes, GeneralConf generalConf, Player p) {
//         super(transportPipes, "playerconfig.yml", "playersettings/" + p.getUniqueId().toString() + ".yml", false);
//         this.generalConf = generalConf;
//     }
// 
//     public int getRenderDistance() {
//         if (!getYamlConf().contains("render_distance")) {
//             setRenderDistance(generalConf.getDefaultRenderDistance());
//         }
//         return (int) read("render_distance");
//     }
// 
//     public void setRenderDistance(int renderDistance) {
//         overrideAsync("render_distance", renderDistance);
//     }
// 
//     public String getRenderSystemName() {
//         if (!getYamlConf().contains("render_system")) {
//             setRenderSystemName(generalConf.getDefaultRenderSystemName());
//         }
//         return (String) read("render_system");
//     }
// 
//     public void setRenderSystemName(String name) {
//         overrideAsync("render_system", name);
//     }
// 
//     public RenderSystem getRenderSystem(BaseDuctType baseDuctType) {
//         return RenderSystem.getRenderSystem(getRenderSystemName(), baseDuctType);
//     }
// 
//     public boolean isShowItems() {
//         if (!getYamlConf().contains("show_items")) {
//             setShowItems(generalConf.isDefaultShowItems());
//         }
//         return (int) read("show_items") == 1;
//     }
// 
//     public void setShowItems(boolean showItems) {
//         overrideAsync("show_items", showItems ? 1 : 0);
//     }
// 
// }


// Path: src/main/java/de/robotricker/transportpipes/PlayerSettingsService.java
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import de.robotricker.transportpipes.config.GeneralConf;
import de.robotricker.transportpipes.config.PlayerSettingsConf;

package de.robotricker.transportpipes;





public class PlayerSettingsService {

    @Inject
    private TransportPipes transportPipes;
    @Inject
    private GeneralConf generalConf;

    private Map<Player, PlayerSettingsConf> cachedSettingsConfs;