1
0
Fork 0
mirror of https://github.com/xHyroM/lighteco.git synced 2024-11-21 22:41:06 +01:00

fix(common): check if currency's value type is allowed

This commit is contained in:
xHyroM 2023-08-03 20:01:17 +02:00
parent aa2a48e462
commit 2b274497a7
No known key found for this signature in database
GPG key ID: BE0423F386C436AA

View file

@ -6,6 +6,8 @@ import dev.xhyrom.lighteco.common.model.user.User;
import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin; import dev.xhyrom.lighteco.common.plugin.LightEcoPlugin;
import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.NonNull;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -41,12 +43,22 @@ public class StandardCurrencyManager extends AbstractManager<String, Currency<?>
if (currency.getType() == Type.LOCAL && this.plugin.getPlatformType().isProxy()) if (currency.getType() == Type.LOCAL && this.plugin.getPlatformType().isProxy())
throw new IllegalArgumentException("Cannot register local currency on proxy platform"); throw new IllegalArgumentException("Cannot register local currency on proxy platform");
if (!isValidValueType(currency.getValueType()))
throw new IllegalArgumentException("Invalid value type " + currency.getValueType().getName() + " for currency " + currency.getIdentifier());
if (this.isLoaded(currency.getIdentifier())) if (this.isLoaded(currency.getIdentifier()))
throw new IllegalArgumentException("Currency with identifier " + currency.getIdentifier() + " already registered"); throw new IllegalArgumentException("Currency with identifier " + currency.getIdentifier() + " already registered");
this.map.put(currency.getIdentifier(), currency); this.map.put(currency.getIdentifier(), currency);
} }
private boolean isValidValueType(Class<?> clazz) {
return clazz == Integer.class || clazz == Long.class ||
clazz == Double.class || clazz == Float.class ||
clazz == Short.class || clazz == BigInteger.class ||
clazz == BigDecimal.class;
}
// TODO: finish // TODO: finish
@Override @Override
public List<User> getTopUsers(@NonNull Currency<?> currency, int length) { public List<User> getTopUsers(@NonNull Currency<?> currency, int length) {