@@ -77,34 +77,42 @@ public ParsedRule<T> set(CommandSource source, String value)
7777 {
7878 if (CarpetServer .settingsManager != null && CarpetServer .settingsManager .locked )
7979 return null ;
80- if (type == String .class )
81- {
82- return set (source , (T ) value , value );
83- }
84- else if (type == boolean .class )
85- {
86- return set (source , (T ) (Object ) Boolean .parseBoolean (value ), value );
87- }
88- else if (type == int .class )
89- {
90- return set (source , (T ) (Object ) Integer .parseInt (value ), value );
91- }
92- else if (type == float .class )
93- {
94- return set (source , (T ) (Object ) Float .parseFloat (value ), value );
95- }
96- else if (type == double .class )
97- {
98- return set (source , (T ) (Object ) Double .parseDouble (value ), value );
99- }
100- else if (type .isEnum ())
80+ try
10181 {
102- String ucValue = value .toUpperCase (Locale .ROOT );
103- return set (source , (T ) (Object ) Enum .valueOf ((Class <? extends Enum >) type , ucValue ), value );
82+ if (type == String .class )
83+ {
84+ return set (source , (T ) value , value );
85+ }
86+ else if (type == boolean .class )
87+ {
88+ return set (source , (T ) (Object ) Boolean .parseBoolean (value ), value );
89+ }
90+ else if (type == int .class )
91+ {
92+ return set (source , (T ) (Object ) Integer .parseInt (value ), value );
93+ }
94+ else if (type == float .class )
95+ {
96+ return set (source , (T ) (Object ) Float .parseFloat (value ), value );
97+ }
98+ else if (type == double .class )
99+ {
100+ return set (source , (T ) (Object ) Double .parseDouble (value ), value );
101+ }
102+ else if (type .isEnum ())
103+ {
104+ String ucValue = value .toUpperCase (Locale .ROOT );
105+ return set (source , (T ) (Object ) Enum .valueOf ((Class <? extends Enum >) type , ucValue ), value );
106+ }
107+ else
108+ {
109+ Messenger .m (source , "r Unknown type " + type .getSimpleName ());
110+ return null ;
111+ }
104112 }
105- else
113+ catch ( Exception e )
106114 {
107- Messenger . m ( source , "r Unknown type " + type . getSimpleName ( ));
115+ CarpetServer . LOGGER . warn ( String . format ( "Fail to parse rule %s for value %s: %s" , this . name , value , e ));
108116 return null ;
109117 }
110118 }
0 commit comments