mirror of
https://github.com/AuthMe/AuthMeReloaded.git
synced 2024-11-08 03:29:41 +01:00
Merge pull request #134 from Gnat008/602-create-lowercase-string-list-propertytype
Add a lowercase String list property - fixes #602
This commit is contained in:
commit
8a0655e333
@ -3,6 +3,7 @@ package fr.xephi.authme.settings.domain;
|
|||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -33,6 +34,17 @@ public abstract class Property<T> {
|
|||||||
return new StringListProperty(path, defaultValues);
|
return new StringListProperty(path, defaultValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new String list property where all values are lowercase.
|
||||||
|
*
|
||||||
|
* @param path The property's path
|
||||||
|
* @param defaultValues The items in the default list
|
||||||
|
* @return The created list property
|
||||||
|
*/
|
||||||
|
public static Property<List<String>> newLowercaseListProperty(String path, String... defaultValues) {
|
||||||
|
return new LowercaseStringListProperty(path, defaultValues);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new enum property.
|
* Create a new enum property.
|
||||||
*
|
*
|
||||||
@ -165,7 +177,7 @@ public abstract class Property<T> {
|
|||||||
/**
|
/**
|
||||||
* String list property.
|
* String list property.
|
||||||
*/
|
*/
|
||||||
private static final class StringListProperty extends Property<List<String>> {
|
private static class StringListProperty extends Property<List<String>> {
|
||||||
|
|
||||||
public StringListProperty(String path, String[] defaultValues) {
|
public StringListProperty(String path, String[] defaultValues) {
|
||||||
super(path, Arrays.asList(defaultValues));
|
super(path, Arrays.asList(defaultValues));
|
||||||
@ -196,4 +208,28 @@ public abstract class Property<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lowercase String list property.
|
||||||
|
*/
|
||||||
|
private static final class LowercaseStringListProperty extends StringListProperty {
|
||||||
|
|
||||||
|
public LowercaseStringListProperty(String path, String[] defaultValues) {
|
||||||
|
super(path, defaultValues);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> getFromFile(FileConfiguration configuration) {
|
||||||
|
if (!configuration.isList(getPath())) {
|
||||||
|
return getDefaultValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
// make sure all elements are lowercase
|
||||||
|
List<String> lowercaseList = new ArrayList<>();
|
||||||
|
for (String element : configuration.getStringList(getPath())) {
|
||||||
|
lowercaseList.add(element.toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
return lowercaseList;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import fr.xephi.authme.settings.domain.SettingsClass;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static fr.xephi.authme.settings.domain.Property.newListProperty;
|
import static fr.xephi.authme.settings.domain.Property.newListProperty;
|
||||||
|
import static fr.xephi.authme.settings.domain.Property.newLowercaseListProperty;
|
||||||
import static fr.xephi.authme.settings.domain.Property.newProperty;
|
import static fr.xephi.authme.settings.domain.Property.newProperty;
|
||||||
|
|
||||||
public class RestrictionSettings implements SettingsClass {
|
public class RestrictionSettings implements SettingsClass {
|
||||||
@ -30,7 +31,7 @@ public class RestrictionSettings implements SettingsClass {
|
|||||||
|
|
||||||
@Comment("Allowed commands for unauthenticated players")
|
@Comment("Allowed commands for unauthenticated players")
|
||||||
public static final Property<List<String>> ALLOW_COMMANDS =
|
public static final Property<List<String>> ALLOW_COMMANDS =
|
||||||
newListProperty("settings.restrictions.allowCommands",
|
newLowercaseListProperty("settings.restrictions.allowCommands",
|
||||||
"/login", "/register", "/l", "/reg", "/email", "/captcha");
|
"/login", "/register", "/l", "/reg", "/email", "/captcha");
|
||||||
|
|
||||||
@Comment({
|
@Comment({
|
||||||
@ -87,7 +88,7 @@ public class RestrictionSettings implements SettingsClass {
|
|||||||
" AllowedRestrictedUser:",
|
" AllowedRestrictedUser:",
|
||||||
" - playername;127.0.0.1"})
|
" - playername;127.0.0.1"})
|
||||||
public static final Property<List<String>> ALLOWED_RESTRICTED_USERS =
|
public static final Property<List<String>> ALLOWED_RESTRICTED_USERS =
|
||||||
newListProperty("settings.restrictions.AllowedRestrictedUser");
|
newLowercaseListProperty("settings.restrictions.AllowedRestrictedUser");
|
||||||
|
|
||||||
@Comment("Should unregistered players be kicked immediately?")
|
@Comment("Should unregistered players be kicked immediately?")
|
||||||
public static final Property<Boolean> KICK_NON_REGISTERED =
|
public static final Property<Boolean> KICK_NON_REGISTERED =
|
||||||
@ -194,7 +195,7 @@ public class RestrictionSettings implements SettingsClass {
|
|||||||
"It is case-sensitive!"
|
"It is case-sensitive!"
|
||||||
})
|
})
|
||||||
public static final Property<List<String>> UNRESTRICTED_NAMES =
|
public static final Property<List<String>> UNRESTRICTED_NAMES =
|
||||||
newListProperty("settings.unrestrictions.UnrestrictedName");
|
newLowercaseListProperty("settings.unrestrictions.UnrestrictedName");
|
||||||
|
|
||||||
|
|
||||||
private RestrictionSettings() {
|
private RestrictionSettings() {
|
||||||
|
@ -8,6 +8,7 @@ import fr.xephi.authme.settings.domain.SettingsClass;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static fr.xephi.authme.settings.domain.Property.newListProperty;
|
import static fr.xephi.authme.settings.domain.Property.newListProperty;
|
||||||
|
import static fr.xephi.authme.settings.domain.Property.newLowercaseListProperty;
|
||||||
import static fr.xephi.authme.settings.domain.Property.newProperty;
|
import static fr.xephi.authme.settings.domain.Property.newProperty;
|
||||||
|
|
||||||
public class SecuritySettings implements SettingsClass {
|
public class SecuritySettings implements SettingsClass {
|
||||||
@ -98,7 +99,7 @@ public class SecuritySettings implements SettingsClass {
|
|||||||
"- '123456'",
|
"- '123456'",
|
||||||
"- 'password'"})
|
"- 'password'"})
|
||||||
public static final Property<List<String>> UNSAFE_PASSWORDS =
|
public static final Property<List<String>> UNSAFE_PASSWORDS =
|
||||||
newListProperty("settings.security.unsafePasswords", "123456", "password", "qwerty", "12345", "54321");
|
newLowercaseListProperty("settings.security.unsafePasswords", "123456", "password", "qwerty", "12345", "54321");
|
||||||
|
|
||||||
private SecuritySettings() {
|
private SecuritySettings() {
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,9 @@ public class PropertyTest {
|
|||||||
when(configuration.isList("list.path.test")).thenReturn(true);
|
when(configuration.isList("list.path.test")).thenReturn(true);
|
||||||
when(configuration.getStringList("list.path.test")).thenReturn(Arrays.asList("test1", "Test2", "3rd test"));
|
when(configuration.getStringList("list.path.test")).thenReturn(Arrays.asList("test1", "Test2", "3rd test"));
|
||||||
when(configuration.isList("list.path.wrong")).thenReturn(false);
|
when(configuration.isList("list.path.wrong")).thenReturn(false);
|
||||||
|
when(configuration.isList("lowercaselist.path.test")).thenReturn(true);
|
||||||
|
when(configuration.getStringList("lowercaselist.path.test")).thenReturn(Arrays.asList("test1", "Test2", "3rd test"));
|
||||||
|
when(configuration.isList("lowercaselist.path.wrong")).thenReturn(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Boolean */
|
/* Boolean */
|
||||||
@ -141,4 +144,29 @@ public class PropertyTest {
|
|||||||
assertThat(result, contains("default", "list", "elements"));
|
assertThat(result, contains("default", "list", "elements"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Lowercase String list */
|
||||||
|
@Test
|
||||||
|
public void shouldGetLowercaseStringListValue() {
|
||||||
|
// given
|
||||||
|
Property<List<String>> property = Property.newLowercaseListProperty("lowercaselist.path.test", "1", "b");
|
||||||
|
|
||||||
|
// when
|
||||||
|
List<String> result = property.getFromFile(configuration);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(result, contains("test1", "test2", "3rd test"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void shouldGetLowercaseStringListDefault() {
|
||||||
|
// given
|
||||||
|
Property<List<String>> property =
|
||||||
|
Property.newLowercaseListProperty("lowercaselist.path.wrong", "default", "list", "elements");
|
||||||
|
|
||||||
|
// when
|
||||||
|
List<String> result = property.getFromFile(configuration);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertThat(result, contains("default", "list", "elements"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user