// Path: src/main/java/com/github/lunatrius/ingameinfo/value/registry/ValueRegistry.java
// public class ValueRegistry {
//     public static final ValueRegistry INSTANCE = new ValueRegistry();
// 
//     private Map<String, Value> stringValueMap = new HashMap<String, Value>();
//     private Map<String, Class<? extends Value>> stringClassMap = new HashMap<String, Class<? extends Value>>();
//     private Map<Class<? extends Value>, String> classStringMap = new HashMap<Class<? extends Value>, String>();
// 
//     private void register(final String name, final Value value, final boolean isAlias) {
//         if (this.stringValueMap.containsKey(name)) {
//             Reference.logger.error("Duplicate value key '" + name + "'!");
//             return;
//         }
// 
//         if (name == null) {
//             Reference.logger.error("Value name cannot be null!");
//             return;
//         }
// 
//         final String nameLowerCase = name.toLowerCase(Locale.ENGLISH);
//         this.stringValueMap.put(nameLowerCase, value);
//         this.stringClassMap.put(nameLowerCase, value.getClass());
//         if (!isAlias) {
//             this.classStringMap.put(value.getClass(), nameLowerCase);
//         }
//     }
// 
//     public void register(final Value value) {
//         register(value.getName(), value, false);
// 
//         for (final String name : value.getAliases()) {
//             register(name, value, true);
//         }
//     }
// 
//     public Value forName(String name) {
//         name = name.toLowerCase(Locale.ENGLISH);
//         try {
//             final Class<? extends Value> clazz = this.stringClassMap.get(name);
//             if (clazz != null) {
//                 final Value value = clazz.newInstance();
//                 if (value != null) {
//                     return value;
//                 }
//             }
//         } catch (final Exception e) {
//             Reference.logger.error(String.format("Failed to create an instance for %s!", name), e);
//             return new ValueSimple.ValueInvalid();
//         }
// 
//         Reference.logger.error(String.format("Failed to create an instance for %s!", name));
//         return new ValueSimple.ValueInvalid();
//     }
// 
//     public String forClass(final Class<? extends Value> clazz) {
//         final String str = this.classStringMap.get(clazz);
//         return str != null ? str : "invalid";
//     }
// 
//     public void init() {
//         ValueComplex.register();
//         ValueLogic.register();
//         ValueMath.register();
//         ValueSimple.register();
//     }
// }


import com.github.lunatrius.ingameinfo.value.registry.ValueRegistry;
import java.util.Locale;
        }
    }

    public static class ValueModi extends ValueMath {
        @Override
        public String getValue() {
            try {
                final int arg0 = getIntValue(0);
                final int arg1 = getIntValue(1);
                return String.valueOf(arg0 % arg1);
            } catch (final Exception e2) {
                return "0";
            }
        }
    }

    public static class ValuePercent extends ValueMath {
        @Override
        public String getValue() {
            try {
                final double arg0 = getDoubleValue(0);
                final double arg1 = getDoubleValue(1);
                return String.valueOf(arg0 / arg1 * 100);
            } catch (final Exception e) {
                return "0";
            }
        }
    }

    public static void register() {
// Path: src/main/java/com/github/lunatrius/ingameinfo/value/registry/ValueRegistry.java
// public class ValueRegistry {
//     public static final ValueRegistry INSTANCE = new ValueRegistry();
// 
//     private Map<String, Value> stringValueMap = new HashMap<String, Value>();
//     private Map<String, Class<? extends Value>> stringClassMap = new HashMap<String, Class<? extends Value>>();
//     private Map<Class<? extends Value>, String> classStringMap = new HashMap<Class<? extends Value>, String>();
// 
//     private void register(final String name, final Value value, final boolean isAlias) {
//         if (this.stringValueMap.containsKey(name)) {
//             Reference.logger.error("Duplicate value key '" + name + "'!");
//             return;
//         }
// 
//         if (name == null) {
//             Reference.logger.error("Value name cannot be null!");
//             return;
//         }
// 
//         final String nameLowerCase = name.toLowerCase(Locale.ENGLISH);
//         this.stringValueMap.put(nameLowerCase, value);
//         this.stringClassMap.put(nameLowerCase, value.getClass());
//         if (!isAlias) {
//             this.classStringMap.put(value.getClass(), nameLowerCase);
//         }
//     }
// 
//     public void register(final Value value) {
//         register(value.getName(), value, false);
// 
//         for (final String name : value.getAliases()) {
//             register(name, value, true);
//         }
//     }
// 
//     public Value forName(String name) {
//         name = name.toLowerCase(Locale.ENGLISH);
//         try {
//             final Class<? extends Value> clazz = this.stringClassMap.get(name);
//             if (clazz != null) {
//                 final Value value = clazz.newInstance();
//                 if (value != null) {
//                     return value;
//                 }
//             }
//         } catch (final Exception e) {
//             Reference.logger.error(String.format("Failed to create an instance for %s!", name), e);
//             return new ValueSimple.ValueInvalid();
//         }
// 
//         Reference.logger.error(String.format("Failed to create an instance for %s!", name));
//         return new ValueSimple.ValueInvalid();
//     }
// 
//     public String forClass(final Class<? extends Value> clazz) {
//         final String str = this.classStringMap.get(clazz);
//         return str != null ? str : "invalid";
//     }
// 
//     public void init() {
//         ValueComplex.register();
//         ValueLogic.register();
//         ValueMath.register();
//         ValueSimple.register();
//     }
// }


// Path: src/main/java/com/github/lunatrius/ingameinfo/value/ValueMath.java
import com.github.lunatrius.ingameinfo.value.registry.ValueRegistry;
import java.util.Locale;

        }
    }

    public static class ValueModi extends ValueMath {
        @Override
        public String getValue() {
            try {
                final int arg0 = getIntValue(0);
                final int arg1 = getIntValue(1);
                return String.valueOf(arg0 % arg1);
            } catch (final Exception e2) {
                return "0";
            }
        }
    }

    public static class ValuePercent extends ValueMath {
        @Override
        public String getValue() {
            try {
                final double arg0 = getDoubleValue(0);
                final double arg1 = getDoubleValue(1);
                return String.valueOf(arg0 / arg1 * 100);
            } catch (final Exception e) {
                return "0";
            }
        }
    }

    public static void register() {
        ValueRegistry.INSTANCE.register(new ValueAdd().setName("add"));