@@ -91,17 +91,18 @@ public <T> T getConfig(Class<T> configClass, boolean useCache) {
9191 }
9292
9393 private FileConfiguration getFileConfigFromFileName (String fileName , boolean useCache ) {
94- if ( useCache && configCache . containsKey ( fileName )) return configCache . get (fileName );
94+ String normalizedFileName = normalizeFileName (fileName );
9595
96- String fileNameWithExtension = fileName .endsWith (".yml" ) ? fileName : fileName + ".yml" ;
97- File configFile = new File (plugin .getDataFolder (), fileNameWithExtension );
96+ if (useCache && configCache .containsKey (normalizedFileName )) return configCache .get (normalizedFileName );
97+
98+ File configFile = new File (plugin .getDataFolder (), normalizedFileName );
9899 if (!configFile .exists ()) {
99100 configFile .getParentFile ().mkdirs ();
100- plugin .saveResource (fileNameWithExtension , false );
101+ plugin .saveResource (normalizedFileName , false );
101102 }
102103
103104 FileConfiguration fileConfig = YamlConfiguration .loadConfiguration (configFile );
104- if (useCache ) configCache .put (fileName , fileConfig );
105+ if (useCache ) configCache .put (normalizedFileName , fileConfig );
105106 return fileConfig ;
106107 }
107108
@@ -124,17 +125,26 @@ public void saveConfig(String fileName, FileConfiguration fileConfig) {
124125 }
125126
126127 private void saveFileConfigToFileName (String fileName , FileConfiguration fileConfig ) {
127- String fileNameWithExtension = fileName . endsWith ( ".yml" ) ? fileName : fileName + ".yml" ;
128- File configFile = new File (plugin .getDataFolder (), fileNameWithExtension );
128+ String normalizedFileName = normalizeFileName ( fileName ) ;
129+ File configFile = new File (plugin .getDataFolder (), normalizedFileName );
129130 try {
130131 fileConfig .save (configFile );
131132 } catch (Exception e ) {
132- plugin .getLogger ().log (Level .SEVERE , "Failed to save configuration file: " + fileName + ".yml" , e );
133+ plugin .getLogger ().log (Level .SEVERE , "Failed to save configuration file: " + normalizedFileName , e );
133134 } finally {
134- configCache .remove (fileName );
135+ configCache .remove (normalizedFileName );
135136 }
136137 }
137138
139+ /**
140+ * Normalize the file name to ensure it has the correct .yml extension.
141+ * @param fileName The original file name.
142+ * @return The normalized file name with .yml extension.
143+ */
144+ private String normalizeFileName (String fileName ) {
145+ return fileName .endsWith (".yml" ) ? fileName : fileName + ".yml" ;
146+ }
147+
138148 /**
139149 * Clear the configuration cache.
140150 */
0 commit comments