diff --git a/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt b/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
index 1b6c3dbd2470b457aa86872e3182c4c0b050f2b7..c4fff74313384bbde593b0dec20658268b364dff 100644
--- a/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/util/irc/HostmaskHelper.kt
@@ -20,20 +20,15 @@
 package de.kuschku.libquassel.util.irc
 
 object HostmaskHelper {
-  fun nick(mask: String): String {
-    val (nick, _, _) = split(mask)
-    return nick
-  }
+  fun nick(mask: String) = mask
+    .substringBefore('!', missingDelimiterValue = mask)
 
-  fun user(mask: String): String {
-    val (_, user, _) = split(mask)
-    return user
-  }
+  fun user(mask: String) = mask
+    .substringBeforeLast('@', missingDelimiterValue = mask)
+    .substringAfter('!', missingDelimiterValue = "")
 
-  fun host(mask: String): String {
-    val (_, _, host) = split(mask)
-    return host
-  }
+  fun host(mask: String) = mask
+    .substringAfterLast('@', missingDelimiterValue = "")
 
   fun split(mask: String): Triple<String, String, String> {
     val userPartHostSplit = mask.split("@", limit = 2)