Buggy code:
public class LunaChatConfig { private boolean enableChannelChat ; private boolean noJoinAsGlobal ; private boolean loggingChat ; private boolean displayChatOnConsole ; private String globalMarker ; private boolean zeroMemberRemove ; private boolean showListOnJoin ; private boolean createChannelOnJoinCommand ; private String globalChannel ; private List < String > forceJoinChannels ; private List < String > formatConstraint ; private String defaultFormat ; private String defaultFormatForPrivateMessage ; private boolean opListenAllChannel ; private int minChannelNameLength ; private int maxChannelNameLength ; private boolean sendBroadcastChannelChatToDynmap ; private boolean sendFormattedMessageToDynmap ; private String dynmapChannel ; private List < String > ngword ; private NGWordAction ngwordAction ; private List < Pattern > ngwordCompiled ; private boolean enableNormalChatMessageFormat ; private String normalChatMessageFormat ; private boolean enableNormalChatColorCode ; private JapanizeType japanizeType ; private int japanizeDisplayLine ; private String japanizeLine1Format ; private String japanizeLine2Format ; private boolean japanizeIgnorePlayerName ; private String noneJapanizeMarker ; private int japanizeWait ; protected LunaChatConfig ( ) { } public void reloadConfig ( ) { File configFile = new File ( LunaChat . getInstance ( ) . getDataFolder ( ) , "config.yml" ) ; if ( ! ( configFile . exists ( ) ) ) { Utility . copyFileFromJar ( LunaChat . getPluginJarFile ( ) , configFile , "config_ja.yml" , false ) ; } LunaChat . getInstance ( ) . reloadConfig ( ) ; FileConfiguration config = LunaChat . getInstance ( ) . getConfig ( ) ; enableChannelChat = config . getBoolean ( "enableChannelChat" , true ) ; noJoinAsGlobal = config . getBoolean ( "noJoinAsGlobal" , true ) ; loggingChat = config . getBoolean ( "loggingChat" , true ) ; displayChatOnConsole = config . getBoolean ( "displayChatOnConsole" , true ) ; globalMarker = config . getString ( "globalMarker" , "!" ) ; zeroMemberRemove = config . getBoolean ( "zeroMemberRemove" , false ) ; showListOnJoin = config . getBoolean ( "showListOnJoin" , false ) ; createChannelOnJoinCommand = config . getBoolean ( "createChannelOnJoinCommand" , false ) ; if ( enableChannelChat ) { globalChannel = config . getString ( "globalChannel" , "" ) ; } else { globalChannel = "" ; } if ( enableChannelChat ) { forceJoinChannels = config . getStringList ( "forceJoinChannels" ) ; } else { forceJoinChannels = new ArrayList < String > ( ) ; } if ( config . contains ( "formatConstraint" ) ) { formatConstraint = config . getStringList ( "formatConstraint" ) ; } else { formatConstraint = new ArrayList < String > ( ) ; formatConstraint . add ( "%username" ) ; formatConstraint . add ( "%msg" ) ; } defaultFormat = config . getString ( "defaultFormat" , "&f[%color%ch&f]%prefix%username%suffix&a:&f<seq2seq4repair_space>%msg" ) ; defaultFormatForPrivateMessage = config . getString ( "defaultFormatForPrivateMessage" , "&7[%player<seq2seq4repair_space>-><seq2seq4repair_space>%to]&f<seq2seq4repair_space>%msg" ) ; opListenAllChannel = config . getBoolean ( "opListenAllChannel" , false ) ; minChannelNameLength = config . getInt ( "minChannelNameLength" , 4 ) ; maxChannelNameLength = config . getInt ( "maxChannelNameLength" , 20 ) ; sendBroadcastChannelChatToDynmap = config . getBoolean ( "sendBroadcastChannelChatToDynmap" , true ) ; sendFormattedMessageToDynmap = config . getBoolean ( "sendFormattedMessageToDynmap" , false ) ; dynmapChannel = config . getString ( "dynmapChannel" , "" ) ; ngword = config . getStringList ( "ngword" ) ; ngwordAction = NGWordAction . fromID ( config . getString ( "ngwordAction" , "mask" ) ) ; ngwordCompiled = new ArrayList < Pattern > ( ) ; for ( String word : ngword ) { ngwordCompiled . add ( Pattern . compile ( word ) ) ; } enableNormalChatMessageFormat = config . getBoolean ( "enableNormalChatMessageFormat" , true ) ; normalChatMessageFormat = config . getString ( "normalChatMessageFormat" , "&f%prefix%username%suffix&a:&f<seq2seq4repair_space>%msg" ) ; enableNormalChatColorCode = config . getBoolean ( "enableNormalChatColorCode" , true ) ; <START_BUG> japanizeType = JapanizeType . fromID ( config . getString ( "japanizeType" , "kana" ) ) ; <END_BUG> japanizeDisplayLine = config . getInt ( "japanizeDisplayLine" , 2 ) ; if ( ( ( japanizeDisplayLine ) != 1 ) && ( ( japanizeDisplayLine ) != 2 ) ) { japanizeDisplayLine = 2 ; } japanizeLine1Format = config . getString ( "japanizeLine1Format" , "%msg<seq2seq4repair_space>&6(%japanize)" ) ; japanizeLine2Format = config . getString ( "japanizeLine2Format" , "&6[JP]<seq2seq4repair_space>%japanize" ) ; japanizeIgnorePlayerName = config . getBoolean ( "japanizeIgnorePlayerName" , true ) ; noneJapanizeMarker = config . getString ( "noneJapanizeMarker" , "#" ) ; japanizeWait = config . getInt ( "japanizeWait" , 1 ) ; if ( ( ! ( globalChannel . equals ( "" ) ) ) && ( ! ( globalChannel . matches ( "[0-9a-zA-Z\\-_]{1,20}" ) ) ) ) { String msg = String . format ( Resources . get ( "errmsgCannotUseForGlobal" ) , globalChannel ) ; LunaChat . getInstance ( ) . getLogger ( ) . warning ( msg ) ; globalChannel = "" ; } } public boolean isEnableChannelChat ( ) { } public boolean isNoJoinAsGlobal ( ) { } public boolean isLoggingChat ( ) { } public boolean isDisplayChatOnConsole ( ) { } public String getGlobalMarker ( ) { } public boolean isZeroMemberRemove ( ) { } public boolean isShowListOnJoin ( ) { } public boolean isCreateChannelOnJoinCommand ( ) { } public String getGlobalChannel ( ) { } public List < String > getForceJoinChannels ( ) { } public List < String > getFormatConstraint ( ) { } public String getDefaultFormat ( ) { } public String getDefaultFormatForPrivateMessage ( ) { } public boolean isOpListenAllChannel ( ) { } public int getMinChannelNameLength ( ) { } public int getMaxChannelNameLength ( ) { } @ Deprecated public List < String > getNgword ( ) { } public NGWordAction getNgwordAction ( ) { } public List < Pattern > getNgwordCompiled ( ) { } public boolean isSendBroadcastChannelChatToDynmap ( ) { } public boolean isSendFormattedMessageToDynmap ( ) { } public String getDynmapChannel ( ) { } public boolean isEnableNormalChatMessageFormat ( ) { } public String getNormalChatMessageFormat ( ) { } public JapanizeType getJapanizeType ( ) { } public int getJapanizeDisplayLine ( ) { } public String getJapanizeLine1Format ( ) { } public String getJapanizeLine2Format ( ) { } public boolean isJapanizeIgnorePlayerName ( ) { } public String getNoneJapanizeMarker ( ) { } public int getJapanizeWait ( ) { }

Fix:
japanizeType = JapanizeType . fromID ( config . getString ( "japanizeType" ) , KANA ) ;