mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-16 19:05:02 -04:00
Adding namespace and path patterns to ProtocolDefinition
This commit is contained in:
parent
dd9e06ea69
commit
1b45b11774
@ -16,6 +16,7 @@ package de.bixilon.minosoft.protocol.protocol;
|
||||
import de.bixilon.kotlinglm.vec3.Vec3i;
|
||||
import de.bixilon.minosoft.data.text.formatting.color.ChatColors;
|
||||
import de.bixilon.minosoft.data.text.formatting.color.RGBColor;
|
||||
import kotlin.text.Regex;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ -40,6 +41,8 @@ public final class ProtocolDefinition {
|
||||
|
||||
public static final String DEFAULT_NAMESPACE = "minecraft";
|
||||
public static final String MINOSOFT_NAMESPACE = "minosoft";
|
||||
public static final Regex ALLOWED_NAMESPACE_PATTERN = new Regex("[a-z0-9_.\\-]+");
|
||||
public static final Regex ALLOWED_PATH_PATTERN = new Regex("(?!.*//)[a-z0-9_./\\-]+");
|
||||
public static final char TEXT_COMPONENT_SPECIAL_PREFIX_CHAR = '\u00A7';
|
||||
|
||||
public static final int DEFAULT_BUFFER_SIZE = 4096;
|
||||
|
@ -36,4 +36,45 @@ internal class ProtocolDefinitionTest {
|
||||
fun testSectionSize() {
|
||||
assertEquals(ProtocolDefinition.BLOCKS_PER_SECTION, 4096)
|
||||
}
|
||||
|
||||
/**
|
||||
* @see [de.bixilon.minosoft.data.registries.ResourceLocation]
|
||||
*/
|
||||
@Test
|
||||
fun testAllowedNamespaces() {
|
||||
// Should Pass
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("minecraft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("min1234567890craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("mine-craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("mine_craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("mine.craft"), true)
|
||||
// Should Fail
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("MineCraft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("mine craft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("minecraft!"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("^minecraft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_NAMESPACE_PATTERN.matches("mine/craft"), false)
|
||||
}
|
||||
|
||||
/**
|
||||
* @see [de.bixilon.minosoft.data.registries.ResourceLocation]
|
||||
*/
|
||||
@Test
|
||||
fun testAllowedResourceLocationPaths() {
|
||||
// Should Pass
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("minecraft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("min1234567890craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine-craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine_craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine.craft"), true)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine/craft"), true)
|
||||
// Should Fail
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("MineCraft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine craft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("minecraft!"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("^minecraft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine//craft"), false)
|
||||
assertEquals(ProtocolDefinition.ALLOWED_PATH_PATTERN.matches("mine///craft"), false)
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user