diff --git a/TextUtils/pom.xml b/TextUtils/pom.xml new file mode 100644 index 0000000..8f00c63 --- /dev/null +++ b/TextUtils/pom.xml @@ -0,0 +1,27 @@ + + + + utils + eu.mikroskeem + 1.0-SNAPSHOT + + 4.0.0 + + textutils + + + + org.jetbrains + annotations-java5 + RELEASE + + + junit + junit + 4.12 + test + + + \ No newline at end of file diff --git a/TextUtils/src/main/java/eu/mikroskeem/utils/text/MinecraftText.java b/TextUtils/src/main/java/eu/mikroskeem/utils/text/MinecraftText.java new file mode 100644 index 0000000..3407b1c --- /dev/null +++ b/TextUtils/src/main/java/eu/mikroskeem/utils/text/MinecraftText.java @@ -0,0 +1,33 @@ +package eu.mikroskeem.utils.text; + +import org.jetbrains.annotations.NotNull; + +public class MinecraftText { + /** + * Validate Minecraft username + * + * @param name Name to validate + * @return Whether name is valid or not + */ + public static boolean validateUsername(@NotNull String name){ + if( + (name.length() > 16 || name.length() < 3) || /* Check length */ + !name.matches("^[A-Za-z0-9_]+$") /* Check characters */ + ){ + return false; + } + return true; + } + + /** + * Translate alternate color codes to Minecraft color codes. + * + * Note: shittier version of {@link org.bukkit.ChatColor} + * @param seq Sequence to replace + * @param text Text to do replace on + * @return Text with replaced color codes + */ + @NotNull public static String translateAltColors(char seq, @NotNull String text){ + return text.replace(seq, '§'); + } +} diff --git a/TextUtils/src/main/java/eu/mikroskeem/utils/text/TextUtils.java b/TextUtils/src/main/java/eu/mikroskeem/utils/text/TextUtils.java new file mode 100644 index 0000000..f76933c --- /dev/null +++ b/TextUtils/src/main/java/eu/mikroskeem/utils/text/TextUtils.java @@ -0,0 +1,14 @@ +package eu.mikroskeem.utils.text; + +import org.jetbrains.annotations.NotNull; + +public class TextUtils { + /** + * Check if string contains whitespace + * @param str String to check + * @return Whether string contained whitespace or not + */ + public static boolean hasWhitespace(@NotNull String str){ + return !str.matches("\\S+"); + } +} diff --git a/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestMinecraftUtils.java b/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestMinecraftUtils.java new file mode 100644 index 0000000..e784edb --- /dev/null +++ b/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestMinecraftUtils.java @@ -0,0 +1,25 @@ +package eu.mikroskeem.utils.test.text; + +import eu.mikroskeem.utils.text.MinecraftText; +import org.junit.Assert; +import org.junit.Test; + +public class TestMinecraftUtils { + @Test public void testValidUsername(){ + Assert.assertTrue(MinecraftText.validateUsername("mikroskeem")); + Assert.assertTrue(MinecraftText.validateUsername("abcd")); + Assert.assertTrue(MinecraftText.validateUsername("abc_")); + } + + @Test public void testInvalidUsername(){ + Assert.assertFalse(MinecraftText.validateUsername("mikros--")); + Assert.assertFalse(MinecraftText.validateUsername("mikr_os--")); + Assert.assertFalse(MinecraftText.validateUsername("aa")); + Assert.assertFalse(MinecraftText.validateUsername(" ")); + Assert.assertFalse(MinecraftText.validateUsername(" ")); + } + + @Test public void testColorReplacing(){ + Assert.assertEquals("§c§lHello", MinecraftText.translateAltColors('&', "&c&lHello")); + } +} diff --git a/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestTextUtils.java b/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestTextUtils.java new file mode 100644 index 0000000..729eaa8 --- /dev/null +++ b/TextUtils/src/test/java/eu/mikroskeem/utils/test/text/TestTextUtils.java @@ -0,0 +1,22 @@ +package eu.mikroskeem.utils.test.text; + +import eu.mikroskeem.utils.text.TextUtils; +import org.junit.Assert; +import org.junit.Test; + +public class TestTextUtils { + @Test public void testSpaceWhitespace(){ + String text = "wut lel"; + Assert.assertTrue(TextUtils.hasWhitespace(text)); + } + + @Test public void testTabWhitespace(){ + String text = "wut" + '\t' + "lel"; + Assert.assertTrue(TextUtils.hasWhitespace(text)); + } + + @Test public void testNoWhitespace(){ + String text = "wut"; + Assert.assertFalse(TextUtils.hasWhitespace(text)); + } +} diff --git a/pom.xml b/pom.xml index 8ae3d43..fd67075 100644 --- a/pom.xml +++ b/pom.xml @@ -14,6 +14,7 @@ EtcdConnector Paste Itemutils + TextUtils