1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-11-08 17:33:01 +00:00
Files
CC-Tweaked/remappedSrc/dan200/computercraft/shared/util/CommentedConfigSpec.java
2021-07-11 01:33:21 +00:00

57 lines
1.6 KiB
Java

/*
* This file is part of ComputerCraft - http://www.computercraft.info
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
* Send enquiries to dratcliffe@gmail.com
*/
package dan200.computercraft.shared.util;
import com.electronwill.nightconfig.core.CommentedConfig;
import com.electronwill.nightconfig.core.Config;
import com.electronwill.nightconfig.core.ConfigSpec;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.electronwill.nightconfig.core.utils.StringUtils.split;
public class CommentedConfigSpec extends ConfigSpec
{
private final Map<List<String>, String> comments = new HashMap<>();
public void comment( List<String> path, String comment )
{
comments.put( path, comment );
}
public void comment( String path, String comment )
{
comment( split( path, '.' ), comment );
}
@Override
public int correct( Config config )
{
return correct( config, ( action, path, incorrectValue, correctedValue ) -> { } );
}
@Override
public int correct( Config config, ConfigSpec.CorrectionListener listener )
{
int corrections = super.correct( config, listener );
if( config instanceof CommentedConfig )
{
insertComments( (CommentedConfig) config );
}
return corrections;
}
private void insertComments( CommentedConfig config )
{
for( Map.Entry<List<String>, String> entry : comments.entrySet() )
{
config.setComment( entry.getKey(), entry.getValue() );
}
}
}