diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt index d7203d82a6418b8f9c4d2bb864f3fb4e4293730d..e903e880200c836e3024b286cee63cafdfcf5513 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HandshakeMessage.kt @@ -12,6 +12,7 @@ package de.justjanne.libquassel.protocol.models import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.setup.BackendInfo import de.justjanne.libquassel.protocol.variant.QVariantMap /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt similarity index 87% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt index 12b18d8ea2826e5450c5084c919eb49083481d77..5e39197d826622b9bd83ee17e37a279c72b8fc2b 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Alias.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Alias.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.alias data class Alias( val name: String?, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt similarity index 77% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt index a33196e567088ce075db756bd938f153849642ef..00452361d0d84fac0ffbdfa8de96d9ad42db19f6 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/Command.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/alias/Command.kt @@ -8,7 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.alias + +import de.justjanne.libquassel.protocol.models.BufferInfo data class Command( val buffer: BufferInfo, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt index 98da25b8ae1193f653695f342ef1ce2d4b66cc0f..91f86405928b7aab88a317138f96b5adb7941574 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccIpDetectionMode.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccIpDetectionMode.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Mode for detecting the outgoing IP diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt index ac03669892869c8d49148fef7926ddc0a0ae804e..b8de80ce90791ebbbf15a2b37c8c1d99c66df443 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/DccPortSelectionMode.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/DccPortSelectionMode.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Mode for selecting the port range for DCC diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt index b5b973b3962fd787832444a53addc402124bbe47..5c571fe97753a4f0dd5abfa49a31bd0a082af248 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkLayerProtocol.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/NetworkLayerProtocol.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc /** * Network protocol version diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt index 8f28f6e1c6fe9a2704116d7d865a28b62aedccb4..c81943bb5edc6ee43d06d1a2bc60e7a8406bcbfb 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferDirection.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferDirection.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc enum class TransferDirection( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt similarity index 89% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt index df0d64c6094a2aea3a514b6273bf6b431c5ac294..0eefbe54f0ee28eb31416a4ca523ee4791bbd9d0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferIdList.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferIdList.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc import java.util.UUID diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt index 5d90f13a345119f839a5471e78ca6af5fcf59f6c..7ef95f90804407ff60e4bbfca1e47c47e3880ebd 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/TransferStatus.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/dcc/TransferStatus.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.dcc enum class TransferStatus( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt index 6e0f662e2e579209770674fe552cf9ade286cb60..7488fc9c204658618adbb5a27485c7db59421692 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModeType.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModeType.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class ChannelModeType( /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt index cd07ccf0a824b693559c693697a5a991d303f380..2b2ddab5e859b17f6b465e798ee551d0ed1c476a 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ChannelModes.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ChannelModes.kt @@ -8,8 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network +import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.variant.QVariantMap import de.justjanne.libquassel.protocol.variant.into diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt similarity index 93% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt index a0bfc5801d775b851f8f55a07945dd6a2fa147e3..8176f81751701fd84906baa4b0df0f7f044d6437 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/ConnectionState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/ConnectionState.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class ConnectionState( /** diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt similarity index 96% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt index efdda294f79fda6cef78e78577ec62c114054250..580fa930fbab0b27e1c0643de01a327882c5d8f5 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkInfo.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkInfo.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt index bafa63fa4d2928d56cdf0345c02a83197b2d273e..92545a6358b0fcd37c6bf909d51ba5be770a8eb2 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkProxy.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkProxy.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class NetworkProxy( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt index 953190b41613cc949427a8c6acf7aa510cf22cae..8d5951f2db338dd77e26c423834e2b983f8deb55 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/NetworkServer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/NetworkServer.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network data class NetworkServer( val host: String, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt similarity index 87% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt index c7279a2523e8ca900206495a4e4f339287bcea0c..bcda8698564f067116aaf4c6d2e55f5503cd7802 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/PortDefaults.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/network/PortDefaults.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.network enum class PortDefaults( val port: UInt diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt index 8cf451b25fb7c677d09b5a2f0361033894a3ed58..01edde5eee45ee3ea1548e264eadb9dd627bb07c 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightNickType.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightNickType.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.rules enum class HighlightNickType( val value: Int, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt index af45a7162c077b8902bba5f4dfe8710e80cf55df..22acde7e8a7e059ce257d754c3f987f067d8af28 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/HighlightRule.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/rules/HighlightRule.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.rules import de.justjanne.libquassel.protocol.util.expression.ExpressionMatch diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt similarity index 94% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt index 7107355ab96ad866e20f8d719d551b4c1b15b9cf..8b33fe388927d3eb463bba948792006b6be03636 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfo.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfo.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup /** * Model for storage/authenticator backend configuration diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt similarity index 95% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt index 23d30865d4e2622785de56f45140170fb08aa73a..53ab4abc0901b7d66919ddeda3b4f2e1b8fed134 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/BackendInfoSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/BackendInfoSerializer.kt @@ -8,8 +8,9 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup +import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.util.collections.triples import de.justjanne.libquassel.protocol.variant.QVariantList diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt similarity index 92% rename from libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt rename to libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt index e5ce29530009cd5b99d8565f29fa4940ce576271..2b7b1123e14a8f0b5deb4879d92f7f36a059b6eb 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/SetupEntry.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/models/setup/SetupEntry.kt @@ -8,7 +8,7 @@ * obtain one at https://mozilla.org/MPL/2.0/. */ -package de.justjanne.libquassel.protocol.models +package de.justjanne.libquassel.protocol.models.setup import de.justjanne.libquassel.protocol.variant.QVariant_ diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt index 5366f5cd29a1ed3c1253383e5d54fc2f40d30f81..a9d604801f0e8f97ac5bc43d06c364c8b8cdf83e 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializer.kt @@ -15,9 +15,9 @@ import de.justjanne.bitflags.toBits import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.features.LegacyFeature import de.justjanne.libquassel.protocol.features.QuasselFeatureName -import de.justjanne.libquassel.protocol.models.BackendInfoSerializer import de.justjanne.libquassel.protocol.models.HandshakeMessage import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.setup.BackendInfoSerializer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.serializers.HandshakeSerializer import de.justjanne.libquassel.protocol.variant.QVariantList diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt index 90cb4910ef47e34a9a5b5f5f51a5ab5661a4c34e..1c2ca339ef221ba5f40f2c4b75a2d534591076b0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt index 01c9f5c8a320f4187d4db88dd20a44d1be46735f..14a151dbf1c0e72148c437d378f3fc3661d08025 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt index ebcb290811e9ab65e9a2602941e47dda36f0e79c..142fb763b2898978064c9ee91dc9e32bd0210cac 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializer.kt @@ -12,11 +12,11 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkInfo -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt index 4b1beac348b50c5fbbf9ac35908e12b7376bbeb4..70ca5214c13e26945d4022a2a19f40c4b2e2ee4e 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkServerSerializer.kt @@ -12,9 +12,9 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkProxy -import de.justjanne.libquassel.protocol.models.NetworkServer -import de.justjanne.libquassel.protocol.models.PortDefaults +import de.justjanne.libquassel.protocol.models.network.NetworkProxy +import de.justjanne.libquassel.protocol.models.network.NetworkServer +import de.justjanne.libquassel.protocol.models.network.PortDefaults import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.QVariantMapSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt index 12970e1f1d4719b173101c1454f9fa7a7f3ee263..f25f255b069dbbf3c3ff541e74106227a6763015 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/QHostAddressSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.NetworkLayerProtocol +import de.justjanne.libquassel.protocol.models.dcc.NetworkLayerProtocol import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.UByteSerializer import java.net.Inet4Address diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt index 2cb85989e8e1f30d120c19ec09bf8ef4db93d274..aa68d05881fb7c56ba88eb62d30bb5fa890a0325 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferDirectionSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferDirection +import de.justjanne.libquassel.protocol.models.dcc.TransferDirection import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt index 396109a801e56b378019b904bb9c5410cc3cc9dd..b7a97a08089ba2e401bfb0bb2a93b7f897b40689 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferIdListSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferIdList +import de.justjanne.libquassel.protocol.models.dcc.TransferIdList import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import de.justjanne.libquassel.protocol.serializers.qt.UuidSerializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt index 9d93c21b0163882eb70d925f91d703b32ab399ee..e14adc168e34ebb5ff7cfaad66143aadbb322cf0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/TransferStatusSerializer.kt @@ -12,7 +12,7 @@ package de.justjanne.libquassel.protocol.serializers.quassel import de.justjanne.libquassel.protocol.features.FeatureSet import de.justjanne.libquassel.protocol.io.ChainedByteBuffer -import de.justjanne.libquassel.protocol.models.TransferStatus +import de.justjanne.libquassel.protocol.models.dcc.TransferStatus import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer import de.justjanne.libquassel.protocol.serializers.qt.IntSerializer import java.nio.ByteBuffer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt index 957bb118e1fe3dde37b35e8da9cc45f3960a8ebf..281c34837baa90b9215b2d60951b622ff8a0722e 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/AliasManager.kt @@ -10,10 +10,10 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.Alias import de.justjanne.libquassel.protocol.models.BufferInfo -import de.justjanne.libquassel.protocol.models.Command import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.alias.Alias +import de.justjanne.libquassel.protocol.models.alias.Command import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.AliasManagerState import de.justjanne.libquassel.protocol.syncables.stubs.AliasManagerStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt index 0127d7c33ac93841189a07f45fbf3527769b52d9..8434fe22e7dfa6447dbc141cfdc5281fbebd8a50 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/DccConfig.kt @@ -10,8 +10,8 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.state.DccConfigState diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt index a5fac7985f517ef29ba60deb9f312919e2d1fb3f..17f695affc7f7d5dbf8a90fbf097c2a1caf1031c 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/HighlightRuleManager.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.HighlightNickType -import de.justjanne.libquassel.protocol.models.HighlightRule import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.rules.HighlightNickType +import de.justjanne.libquassel.protocol.models.rules.HighlightRule import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.HighlightRuleManagerState import de.justjanne.libquassel.protocol.syncables.stubs.HighlightRuleManagerStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt index 30254bc6ea1c52a76d06cff7e300ecf560db246b..5a309b6675505f25c2a20ca87b9ab5d6b9e8d20f 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IgnoreListManager.kt @@ -9,3 +9,188 @@ */ package de.justjanne.libquassel.protocol.syncables + +import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.flags.MessageTypes +import de.justjanne.libquassel.protocol.models.rules.IgnoreRule +import de.justjanne.libquassel.protocol.models.rules.IgnoreType +import de.justjanne.libquassel.protocol.models.rules.ScopeType +import de.justjanne.libquassel.protocol.models.rules.StrictnessType +import de.justjanne.libquassel.protocol.models.types.QtType +import de.justjanne.libquassel.protocol.syncables.state.IgnoreListManagerState +import de.justjanne.libquassel.protocol.syncables.stubs.IgnoreListManagerStub +import de.justjanne.libquassel.protocol.util.update +import de.justjanne.libquassel.protocol.variant.QVariantList +import de.justjanne.libquassel.protocol.variant.QVariantMap +import de.justjanne.libquassel.protocol.variant.into +import de.justjanne.libquassel.protocol.variant.qVariant + +class IgnoreListManager( + session: Session? = null, + state: IgnoreListManagerState = IgnoreListManagerState() +) : StatefulSyncableObject<IgnoreListManagerState>(session, "IgnoreListManager", state), + IgnoreListManagerStub { + override fun toVariantMap() = mapOf( + "IgnoreList" to qVariant( + mapOf( + "ignoreType" to qVariant( + state().rules.map { + qVariant(it.type.value, QtType.Int) + }, + QtType.QVariantList + ), + "ignoreRule" to qVariant( + state().rules.map(IgnoreRule::ignoreRule), + QtType.QStringList + ), + "isRegEx" to qVariant( + state().rules.map { + qVariant(it.isRegEx, QtType.Bool) + }, + QtType.QVariantList + ), + "strictness" to qVariant( + state().rules.map { + qVariant(it.strictness.value, QtType.Int) + }, + QtType.QVariantList + ), + "scope" to qVariant( + state().rules.map { + qVariant(it.scope.value, QtType.Int) + }, + QtType.QVariantList + ), + "isActive" to qVariant( + state().rules.map { + qVariant(it.isEnabled, QtType.Bool) + }, + QtType.QVariantList + ), + "scopeRule" to qVariant( + state().rules.map(IgnoreRule::scopeRule), + QtType.QStringList + ), + ), + QtType.QVariantMap + ) + ) + + override fun fromVariantMap(properties: QVariantMap) { + val ignoreRules = properties["IgnoreList"].into<QVariantMap>().orEmpty() + + val ignoreTypeList = ignoreRules["ignoreType"].into<QVariantList>().orEmpty() + val ignoreRuleList = ignoreRules["ignoreRule"].into<QStringList>().orEmpty() + val isRegExList = ignoreRules["isRegEx"].into<QVariantList>().orEmpty() + val strictnessList = ignoreRules["strictness"].into<QVariantList>().orEmpty() + val isEnabledList = ignoreRules["isActive"].into<QVariantList>().orEmpty() + val scopeList = ignoreRules["scope"].into<QVariantList>().orEmpty() + val scopeRuleList = ignoreRules["scopeRule"].into<QStringList>().orEmpty() + + require(ignoreTypeList.size == ignoreRuleList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, ignoreRule=${ignoreRuleList.size}" + } + require(ignoreTypeList.size == isRegExList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, isRegExList=${isRegExList.size}" + } + require(ignoreTypeList.size == strictnessList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, strictnessList=${strictnessList.size}" + } + require(ignoreTypeList.size == isEnabledList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, isEnabledList=${isEnabledList.size}" + } + require(ignoreTypeList.size == scopeList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, scopeList=${scopeList.size}" + } + require(ignoreTypeList.size == scopeRuleList.size) { + "Sizes do not match: ids=${ignoreTypeList.size}, scopeRuleList=${scopeRuleList.size}" + } + + state.update { + copy( + rules = List(ignoreTypeList.size) { + IgnoreRule( + type = ignoreTypeList[it].into<Int>()?.let(IgnoreType::of) + ?: IgnoreType.SenderIgnore, + ignoreRule = ignoreRuleList[it] ?: "", + isRegEx = isRegExList[it].into(false), + strictness = strictnessList[it].into<Int>()?.let(StrictnessType::of) + ?: StrictnessType.UnmatchedStrictness, + isEnabled = isEnabledList[it].into(false), + scope = scopeList[it].into<Int>()?.let(ScopeType::of) + ?: ScopeType.GlobalScope, + scopeRule = scopeRuleList[it] ?: "", + ) + } + ) + } + } + + fun indexOf(ignoreRule: String?): Int = state().indexOf(ignoreRule) + fun contains(ignoreRule: String?) = state().contains(ignoreRule) + + fun isEmpty() = state().isEmpty() + fun count() = state().count() + fun removeAt(index: Int) { + state.update { + copy(rules = rules.drop(index)) + } + } + + override fun addIgnoreListItem( + type: Int, + ignoreRule: String?, + isRegEx: Boolean, + strictness: Int, + scope: Int, + scopeRule: String?, + isActive: Boolean + ) { + if (contains(ignoreRule)) { + return + } + + state.update { + copy( + rules = rules + IgnoreRule( + type = IgnoreType.of(type) ?: return, + ignoreRule = ignoreRule ?: "", + isRegEx = isRegEx, + strictness = StrictnessType.of(strictness) ?: return, + scope = ScopeType.of(scope) ?: return, + scopeRule = scopeRule ?: "", + isEnabled = isActive + ) + ) + } + + super.addIgnoreListItem(type, ignoreRule, isRegEx, strictness, scope, scopeRule, isActive) + } + + override fun removeIgnoreListItem(ignoreRule: String?) { + removeAt(indexOf(ignoreRule)) + + super.removeIgnoreListItem(ignoreRule) + } + + override fun toggleIgnoreRule(ignoreRule: String?) { + state.update { + copy( + rules = rules.map { + if (it.ignoreRule != ignoreRule) it + else it.copy(isEnabled = !it.isEnabled) + } + ) + } + + super.toggleIgnoreRule(ignoreRule) + } + + fun match( + msgContents: String, + msgSender: String, + msgType: MessageTypes, + network: String, + bufferName: String + ) = state().match(msgContents, msgSender, msgType, network, bufferName) +} diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt index 22b55ce65a294f33ced23123125bf8f56c5a8a8b..3b6eae00781f7df80524f34856045d53c0fd1b67 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/IrcChannel.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ChannelModes import de.justjanne.libquassel.protocol.models.QStringList +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ChannelModes import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.syncables.state.IrcChannelState import de.justjanne.libquassel.protocol.syncables.stubs.IrcChannelStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt index cee2ac65dc0831dc00ab6c3e23aee59bd8f56a47..16baabf7a3e1699b590d797b158629152860bd32 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/Network.kt @@ -10,11 +10,11 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.ConnectionState -import de.justjanne.libquassel.protocol.models.NetworkInfo -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId +import de.justjanne.libquassel.protocol.models.network.ConnectionState +import de.justjanne.libquassel.protocol.models.network.NetworkInfo +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.serializers.qt.StringSerializerUtf8 diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt index 94054b6a18d0529f4d3a174ef6c81a862ddb954c..9634cae5309d4d97cdfaf21c6d788e8eaba996c3 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/AliasManagerState.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.Alias import de.justjanne.libquassel.protocol.models.BufferInfo -import de.justjanne.libquassel.protocol.models.Command +import de.justjanne.libquassel.protocol.models.alias.Alias +import de.justjanne.libquassel.protocol.models.alias.Command import de.justjanne.libquassel.protocol.util.expansion.Expansion data class AliasManagerState( diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt index 09f14fdf64c28a27b69ce2bc518b14952f1fb7cf..8f6646f4e2fa0a554af292c8fe3199c57292f458 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/DccConfigState.kt @@ -10,8 +10,8 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import java.net.InetAddress data class DccConfigState( diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt index 6401a56f3b4616d5c72bb631dbd8ce312ffc9a9a..6a11d2604331e6368619330590866653423dbbe3 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/HighlightRuleManagerState.kt @@ -10,12 +10,12 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.HighlightNickType -import de.justjanne.libquassel.protocol.models.HighlightRule import de.justjanne.libquassel.protocol.models.flags.MessageFlag import de.justjanne.libquassel.protocol.models.flags.MessageFlags import de.justjanne.libquassel.protocol.models.flags.MessageType import de.justjanne.libquassel.protocol.models.flags.MessageTypes +import de.justjanne.libquassel.protocol.models.rules.HighlightNickType +import de.justjanne.libquassel.protocol.models.rules.HighlightRule import de.justjanne.libquassel.protocol.util.expression.ExpressionMatch import de.justjanne.libquassel.protocol.util.irc.IrcFormatDeserializer diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt index 06d6c0377fa1a64ba4687e3fa17b70c3d105e147..f5b749a0fbcce59473a8bd33985bdf1945f08493 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/IrcChannelState.kt @@ -10,9 +10,9 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ChannelModes import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ChannelModes data class IrcChannelState( val network: NetworkId, diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt index 6f5a7d84a5f0f845cf59bfdbc9181287f9c5690b..1f765d89a898a9970902749e8cebfba058673ccf 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/state/NetworkState.kt @@ -10,11 +10,11 @@ package de.justjanne.libquassel.protocol.syncables.state -import de.justjanne.libquassel.protocol.models.ChannelModeType -import de.justjanne.libquassel.protocol.models.ConnectionState -import de.justjanne.libquassel.protocol.models.NetworkServer import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.ChannelModeType +import de.justjanne.libquassel.protocol.models.network.ConnectionState +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.syncables.IrcChannel import de.justjanne.libquassel.protocol.syncables.IrcUser import de.justjanne.libquassel.protocol.util.irc.IrcCapability diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt index f9bb09040bf5ebcfa45fcaea9bdf837d456b890f..69ec5a8bd8f3b8d95fc9cd3f213493be27a1c2f0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/DccConfigStub.kt @@ -13,8 +13,8 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt index 5b54584e7340edde8e222dbcd355037dd0551e7f..fe10389aa5aab4665b173c312238de62a5d83ec0 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/NetworkStub.kt @@ -13,9 +13,9 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.QStringList import de.justjanne.libquassel.protocol.models.ids.IdentityId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt index 4804e3aa852d90688cd10c7ba81e83b6bb417746..eb4e39b829a700d02fe31938d62e0e1761e5a9b1 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/RpcHandlerStub.kt @@ -15,9 +15,9 @@ import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject import de.justjanne.libquassel.protocol.models.BufferInfo import de.justjanne.libquassel.protocol.models.Message -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt index ac903628f8c04c999ad3510ae8127490493647f4..6badb8abe59e88ade0939ee03a4797f8074dc1ab 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferManagerStub.kt @@ -13,7 +13,7 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.TransferIdList +import de.justjanne.libquassel.protocol.models.dcc.TransferIdList import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt index 4ea18317b972c1fb53ae8a45e3e4ee82fb9ade6a..7b8ee5ebbf04f8ed45901b28e7300fdf33ef7985 100644 --- a/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt +++ b/libquassel-protocol/src/main/kotlin/de/justjanne/libquassel/protocol/syncables/stubs/TransferStub.kt @@ -13,8 +13,8 @@ package de.justjanne.libquassel.protocol.syncables.stubs import de.justjanne.libquassel.annotations.ProtocolSide import de.justjanne.libquassel.annotations.SyncedCall import de.justjanne.libquassel.annotations.SyncedObject -import de.justjanne.libquassel.protocol.models.TransferDirection -import de.justjanne.libquassel.protocol.models.TransferStatus +import de.justjanne.libquassel.protocol.models.dcc.TransferDirection +import de.justjanne.libquassel.protocol.models.dcc.TransferStatus import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.syncables.SyncableStub diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt index ae5fe8e4dd800a15fc3c4c18d48f377b7475608b..c01a2257794f5cfc88171f9ff931cb87950fc11e 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/handshake/ClientInitAckSerializerTest.kt @@ -19,9 +19,9 @@ package de.justjanne.libquassel.protocol.serializers.handshake import de.justjanne.libquassel.protocol.features.FeatureSet -import de.justjanne.libquassel.protocol.models.BackendInfo import de.justjanne.libquassel.protocol.models.HandshakeMessage -import de.justjanne.libquassel.protocol.models.SetupEntry +import de.justjanne.libquassel.protocol.models.setup.BackendInfo +import de.justjanne.libquassel.protocol.models.setup.SetupEntry import de.justjanne.libquassel.protocol.models.types.QtType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.handshakeSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt index 674caa757dc200bde44b22a5b575c4bff84dd8aa..1176e0b901f371b74ce28793d88d156db8c4f017 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccIpDetectionModeSerializerTest.kt @@ -18,7 +18,7 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.DccIpDetectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccIpDetectionMode import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt index f4789306f325d33da406bca2266bdb4108e9bea4..140cc2dbb7bc7738ba6ac4f090d3f7bf7242a9bc 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/DccPortSelectionModeSerializerTest.kt @@ -18,7 +18,7 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.DccPortSelectionMode +import de.justjanne.libquassel.protocol.models.dcc.DccPortSelectionMode import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt index 9f28cd6e4113e5508964e6dea59860d13141c057..23938d52e009aa0ecd71a08d890cdfd24f34b420 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/serializers/quassel/NetworkInfoSerializerTest.kt @@ -18,8 +18,8 @@ */ package de.justjanne.libquassel.protocol.serializers.quassel -import de.justjanne.libquassel.protocol.models.NetworkInfo import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkInfo import de.justjanne.libquassel.protocol.models.types.QuasselType import de.justjanne.libquassel.protocol.testutil.byteBufferOf import de.justjanne.libquassel.protocol.testutil.primitiveSerializerTest diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt index acecf4044d71f025079207d71b1e6023f22a7751..88d109433d6cf4d66c1c4a63dd39e4b4ff07db90 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/syncables/NetworkTest.kt @@ -10,18 +10,12 @@ package de.justjanne.libquassel.protocol.syncables -import de.justjanne.libquassel.protocol.models.NetworkServer -import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId import de.justjanne.libquassel.protocol.syncables.state.NetworkState -import de.justjanne.libquassel.protocol.testutil.nextEnum -import de.justjanne.libquassel.protocol.testutil.nextIrcChannel -import de.justjanne.libquassel.protocol.testutil.nextIrcUser -import de.justjanne.libquassel.protocol.testutil.nextString +import de.justjanne.libquassel.protocol.testutil.nextNetwork import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test import kotlin.random.Random -import kotlin.random.nextUInt class NetworkTest { @Test @@ -37,68 +31,3 @@ class NetworkTest { assertEquals(expected, actual) } } - -fun Random.nextNetwork(networkId: NetworkId) = NetworkState( - networkId = networkId, - identity = IdentityId(nextInt()), - myNick = nextString(), - latency = nextInt(), - networkName = nextString(), - currentServer = nextString(), - connected = nextBoolean(), - connectionState = nextEnum(), - ircUsers = List(nextInt(20)) { - nextIrcUser(networkId) - }.associateBy(IrcUser::nick), - ircChannels = List(nextInt(20)) { - nextIrcChannel(networkId) - }.associateBy(IrcChannel::name), - supports = List(nextInt(20)) { - nextString() to nextString() - }.toMap(), - caps = List(nextInt(20)) { - nextString() to nextString() - }.toMap(), - capsEnabled = List(nextInt(20)) { - nextString() - }.toSet(), - serverList = List(nextInt(20)) { - nextNetworkServer() - }, - useRandomServer = nextBoolean(), - perform = List(nextInt(20)) { - nextString() - }, - useAutoIdentify = nextBoolean(), - autoIdentifyService = nextString(), - autoIdentifyPassword = nextString(), - useSasl = nextBoolean(), - saslAccount = nextString(), - saslPassword = nextString(), - useAutoReconnect = nextBoolean(), - autoReconnectInterval = nextUInt(), - autoReconnectRetries = nextUInt(UShort.MAX_VALUE.toUInt()).toUShort(), - unlimitedReconnectRetries = nextBoolean(), - rejoinChannels = nextBoolean(), - useCustomMessageRate = nextBoolean(), - messageRateBurstSize = nextUInt(), - messageRateDelay = nextUInt(), - codecForServer = nextString(), - codecForEncoding = nextString(), - codecForDecoding = nextString() -) - -fun Random.nextNetworkServer() = NetworkServer( - host = nextString(), - port = nextUInt(), - password = nextString(), - useSsl = nextBoolean(), - sslVerify = nextBoolean(), - sslVersion = nextInt(), - useProxy = nextBoolean(), - proxyType = nextEnum(), - proxyHost = nextString(), - proxyPort = nextUInt(), - proxyUser = nextString(), - proxyPass = nextString() -) diff --git a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt index 5cf9157becae6b5d4c55bca3d17cc4259afd6164..fb4947ffa197a48f276b8f4fa720163aa674d718 100644 --- a/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt +++ b/libquassel-protocol/src/test/kotlin/de/justjanne/libquassel/protocol/testutil/Random.kt @@ -10,15 +10,19 @@ package de.justjanne.libquassel.protocol.testutil +import de.justjanne.libquassel.protocol.models.ids.IdentityId import de.justjanne.libquassel.protocol.models.ids.NetworkId +import de.justjanne.libquassel.protocol.models.network.NetworkServer import de.justjanne.libquassel.protocol.syncables.IrcChannel import de.justjanne.libquassel.protocol.syncables.IrcUser import de.justjanne.libquassel.protocol.syncables.state.IrcChannelState import de.justjanne.libquassel.protocol.syncables.state.IrcUserState +import de.justjanne.libquassel.protocol.syncables.state.NetworkState import org.threeten.bp.Instant import java.util.EnumSet import java.util.UUID import kotlin.random.Random +import kotlin.random.nextUInt fun Random.nextString(): String { return UUID(nextLong(), nextLong()).toString() @@ -39,6 +43,71 @@ inline fun <reified T : Enum<T>> Random.nextEnum(): T { fun Random.nextInstant(): Instant = Instant.ofEpochMilli(nextLong()) +fun Random.nextNetwork(networkId: NetworkId) = NetworkState( + networkId = networkId, + identity = IdentityId(nextInt()), + myNick = nextString(), + latency = nextInt(), + networkName = nextString(), + currentServer = nextString(), + connected = nextBoolean(), + connectionState = nextEnum(), + ircUsers = List(nextInt(20)) { + nextIrcUser(networkId) + }.associateBy(IrcUser::nick), + ircChannels = List(nextInt(20)) { + nextIrcChannel(networkId) + }.associateBy(IrcChannel::name), + supports = List(nextInt(20)) { + nextString() to nextString() + }.toMap(), + caps = List(nextInt(20)) { + nextString() to nextString() + }.toMap(), + capsEnabled = List(nextInt(20)) { + nextString() + }.toSet(), + serverList = List(nextInt(20)) { + nextNetworkServer() + }, + useRandomServer = nextBoolean(), + perform = List(nextInt(20)) { + nextString() + }, + useAutoIdentify = nextBoolean(), + autoIdentifyService = nextString(), + autoIdentifyPassword = nextString(), + useSasl = nextBoolean(), + saslAccount = nextString(), + saslPassword = nextString(), + useAutoReconnect = nextBoolean(), + autoReconnectInterval = nextUInt(), + autoReconnectRetries = nextUInt(UShort.MAX_VALUE.toUInt()).toUShort(), + unlimitedReconnectRetries = nextBoolean(), + rejoinChannels = nextBoolean(), + useCustomMessageRate = nextBoolean(), + messageRateBurstSize = nextUInt(), + messageRateDelay = nextUInt(), + codecForServer = nextString(), + codecForEncoding = nextString(), + codecForDecoding = nextString() +) + +fun Random.nextNetworkServer() = NetworkServer( + host = nextString(), + port = nextUInt(), + password = nextString(), + useSsl = nextBoolean(), + sslVerify = nextBoolean(), + sslVersion = nextInt(), + useProxy = nextBoolean(), + proxyType = nextEnum(), + proxyHost = nextString(), + proxyPort = nextUInt(), + proxyUser = nextString(), + proxyPass = nextString() +) + fun Random.nextIrcUser( networkId: NetworkId = NetworkId(nextInt()) ) = IrcUser(