diff --git a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api index 8cbf15dfc..4cfb21fd5 100644 --- a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api +++ b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api @@ -601,6 +601,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementImage { public final fun getWidth ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/contact/announcement/AnnouncementImage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/contact/announcement/AnnouncementImage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -640,6 +641,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementParameters { public fun hashCode ()I public final fun isPinned ()Z public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/contact/announcement/AnnouncementParameters;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/contact/announcement/AnnouncementParameters$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -811,6 +813,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo { public fun hashCode ()I public final fun isEnd ()Ljava/lang/Integer; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -844,6 +847,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GActNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GActNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GActNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -877,6 +881,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -910,6 +915,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -943,6 +949,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -980,6 +987,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1013,6 +1021,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GSentence { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GSentence;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GSentence$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1067,6 +1076,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Actor { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Actor;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Actor$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1110,6 +1120,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$CurrentTalkative { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$CurrentTalkative;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$CurrentTalkative$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1156,6 +1167,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Language { public final fun getScript ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Language;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Language$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1197,6 +1209,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$LevelName { public final fun getLv6 ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$LevelName;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$LevelName$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1240,6 +1253,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Tag { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Tag;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Tag$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1281,6 +1295,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Talkative { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Talkative;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Talkative$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1356,6 +1371,7 @@ public abstract class net/mamoe/mirai/data/RequestEventData { public abstract fun getEventId ()J public fun reject (Lnet/mamoe/mirai/Bot;)V public abstract fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest : net/mamoe/mirai/data/RequestEventData { @@ -1369,6 +1385,7 @@ public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequ public final fun getInvitorNick ()Ljava/lang/String; public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1412,6 +1429,7 @@ public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest : net public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reject$default (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1442,6 +1460,7 @@ public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest : net/ public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3244,6 +3263,7 @@ public final class net/mamoe/mirai/message/data/At : net/mamoe/mirai/message/cod public final fun getTarget ()J public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/At;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/At$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3308,6 +3328,7 @@ public final class net/mamoe/mirai/message/data/AudioCodec$Companion { public final fun fromFormatNameOrNull (Ljava/lang/String;)Lnet/mamoe/mirai/message/data/AudioCodec; public final fun fromId (I)Lnet/mamoe/mirai/message/data/AudioCodec; public final fun fromIdOrNull (I)Lnet/mamoe/mirai/message/data/AudioCodec; + public final fun serializer ()Lkotlinx/serialization/KSerializer; } public abstract interface class net/mamoe/mirai/message/data/ConstrainSingle : net/mamoe/mirai/message/data/SingleMessage { @@ -3364,6 +3385,7 @@ public final class net/mamoe/mirai/message/data/Dice : net/mamoe/mirai/message/c public fun hashCode ()I public static final fun random ()Lnet/mamoe/mirai/message/data/Dice; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Dice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Dice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3416,6 +3438,7 @@ public final class net/mamoe/mirai/message/data/EmptyMessageChain : java/util/Li public fun replaceAll (Ljava/util/function/UnaryOperator;)V public fun retainAll (Ljava/util/Collection;)Z public fun serializeToMiraiCode ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; public synthetic fun set (ILjava/lang/Object;)Ljava/lang/Object; public fun set (ILnet/mamoe/mirai/message/data/SingleMessage;)Lnet/mamoe/mirai/message/data/SingleMessage; public final fun size ()I @@ -3947,6 +3970,7 @@ public final class net/mamoe/mirai/message/data/Face : net/mamoe/mirai/message/c public final fun getName ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Face;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Face$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4012,6 +4036,7 @@ public final class net/mamoe/mirai/message/data/FlashImage : net/mamoe/mirai/mes public fun hashCode ()I public fun serializeToMiraiCode ()Ljava/lang/String; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/FlashImage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/FlashImage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4061,6 +4086,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessage : net/mamoe/mirai public final fun getTitle ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/ForwardMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/ForwardMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4109,6 +4135,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessage$Node : net/mamoe/ public fun getTime ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/ForwardMessage$Node;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/ForwardMessage$Node$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4318,6 +4345,7 @@ public final class net/mamoe/mirai/message/data/LightApp : net/mamoe/mirai/messa public fun getContent ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/LightApp;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/LightApp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4741,6 +4769,7 @@ public final class net/mamoe/mirai/message/data/MusicShare : net/mamoe/mirai/mes public final fun getTitle ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/MusicShare;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/MusicShare$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4951,6 +4980,7 @@ public final class net/mamoe/mirai/message/data/PlainText : net/mamoe/mirai/mess public final fun getContent ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/PlainText;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/PlainText$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5003,6 +5033,7 @@ public final class net/mamoe/mirai/message/data/PokeMessage : net/mamoe/mirai/me public final fun getPokeType ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/PokeMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/PokeMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5039,6 +5070,7 @@ public final class net/mamoe/mirai/message/data/QuoteReply : net/mamoe/mirai/mes public final fun getSource ()Lnet/mamoe/mirai/message/data/MessageSource; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/QuoteReply;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/QuoteReply$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5069,6 +5101,7 @@ public final class net/mamoe/mirai/message/data/RawForwardMessage { public fun hashCode ()I public final fun render (Lnet/mamoe/mirai/message/data/ForwardMessage$DisplayStrategy;)Lnet/mamoe/mirai/message/data/ForwardMessage; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/RawForwardMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/RawForwardMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5089,6 +5122,7 @@ public final class net/mamoe/mirai/message/data/RawForwardMessage$Companion { public abstract interface class net/mamoe/mirai/message/data/RichMessage : net/mamoe/mirai/message/data/ConstrainSingle, net/mamoe/mirai/message/data/MessageContent { public static final field Key Lnet/mamoe/mirai/message/data/RichMessage$Key; + public fun contentToString ()Ljava/lang/String; public abstract fun getContent ()Ljava/lang/String; public fun getKey ()Lnet/mamoe/mirai/message/data/MessageKey; } @@ -5115,6 +5149,7 @@ public final class net/mamoe/mirai/message/data/RichMessageOrigin : net/mamoe/mi public final fun getResourceId ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/RichMessageOrigin;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/RichMessageOrigin$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5146,6 +5181,7 @@ public final class net/mamoe/mirai/message/data/ShowImageFlag : net/mamoe/mirai/ public static final field SERIAL_NAME Ljava/lang/String; public synthetic fun getKey ()Lnet/mamoe/mirai/message/data/MessageKey; public fun getKey ()Lnet/mamoe/mirai/message/data/ShowImageFlag; + public final fun serializer ()Lkotlinx/serialization/KSerializer; public fun toString ()Ljava/lang/String; } @@ -5227,6 +5263,7 @@ public final class net/mamoe/mirai/message/data/VipFace : net/mamoe/mirai/messag public final fun getKind ()Lnet/mamoe/mirai/message/data/VipFace$Kind; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/VipFace;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/VipFace$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5258,6 +5295,7 @@ public final class net/mamoe/mirai/message/data/VipFace$Kind { public final fun getName ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/VipFace$Kind;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/VipFace$Kind$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5292,6 +5330,7 @@ public class net/mamoe/mirai/message/data/Voice : net/mamoe/mirai/message/data/P public fun hashCode ()I public final fun toAudio ()Lnet/mamoe/mirai/message/data/Audio; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Voice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Voice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5511,6 +5550,7 @@ public final class net/mamoe/mirai/utils/DeviceInfo { public final fun getWifiBSSID ()[B public final fun getWifiSSID ()[B public static final fun random ()Lnet/mamoe/mirai/utils/DeviceInfo; + public static final fun write$Self (Lnet/mamoe/mirai/utils/DeviceInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/utils/DeviceInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5543,6 +5583,7 @@ public final class net/mamoe/mirai/utils/DeviceInfo$Version { public final fun getIncremental ()[B public final fun getRelease ()[B public final fun getSdk ()I + public static final fun write$Self (Lnet/mamoe/mirai/utils/DeviceInfo$Version;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/utils/DeviceInfo$Version$$serializer : kotlinx/serialization/internal/GeneratedSerializer { diff --git a/binary-compatibility-validator/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index 0ec04ea4b..162f2073d 100644 --- a/binary-compatibility-validator/api/binary-compatibility-validator.api +++ b/binary-compatibility-validator/api/binary-compatibility-validator.api @@ -601,6 +601,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementImage { public final fun getWidth ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/contact/announcement/AnnouncementImage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/contact/announcement/AnnouncementImage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -640,6 +641,7 @@ public final class net/mamoe/mirai/contact/announcement/AnnouncementParameters { public fun hashCode ()I public final fun isPinned ()Z public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/contact/announcement/AnnouncementParameters;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/contact/announcement/AnnouncementParameters$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -811,6 +813,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo { public fun hashCode ()I public final fun isEnd ()Ljava/lang/Integer; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -844,6 +847,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GActNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GActNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GActNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -877,6 +881,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GExitNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -910,6 +915,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GJoinNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -943,6 +949,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMemNum$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -980,6 +987,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GMostAct$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1013,6 +1021,7 @@ public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GSentence { public final fun getNum ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupActiveData$GInfo$GSentence;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupActiveData$GInfo$GSentence$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1067,6 +1076,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Actor { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Actor;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Actor$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1110,6 +1120,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$CurrentTalkative { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$CurrentTalkative;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$CurrentTalkative$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1156,6 +1167,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Language { public final fun getScript ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Language;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Language$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1197,6 +1209,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$LevelName { public final fun getLv6 ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$LevelName;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$LevelName$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1240,6 +1253,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Tag { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Tag;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Tag$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1281,6 +1295,7 @@ public final class net/mamoe/mirai/data/GroupHonorListData$Talkative { public final fun getUin ()Ljava/lang/Long; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/GroupHonorListData$Talkative;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/GroupHonorListData$Talkative$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1356,6 +1371,7 @@ public abstract class net/mamoe/mirai/data/RequestEventData { public abstract fun getEventId ()J public fun reject (Lnet/mamoe/mirai/Bot;)V public abstract fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest : net/mamoe/mirai/data/RequestEventData { @@ -1369,6 +1385,7 @@ public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequ public final fun getInvitorNick ()Ljava/lang/String; public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$BotInvitedJoinGroupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1412,6 +1429,7 @@ public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest : net public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun reject$default (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lnet/mamoe/mirai/Bot;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$MemberJoinRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$MemberJoinRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -1442,6 +1460,7 @@ public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest : net/ public fun reject (Lnet/mamoe/mirai/Bot;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun reject (Lnet/mamoe/mirai/Bot;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/data/RequestEventData$NewFriendRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/data/RequestEventData$NewFriendRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3244,6 +3263,7 @@ public final class net/mamoe/mirai/message/data/At : net/mamoe/mirai/message/cod public final fun getTarget ()J public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/At;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/At$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3308,6 +3328,7 @@ public final class net/mamoe/mirai/message/data/AudioCodec$Companion { public final fun fromFormatNameOrNull (Ljava/lang/String;)Lnet/mamoe/mirai/message/data/AudioCodec; public final fun fromId (I)Lnet/mamoe/mirai/message/data/AudioCodec; public final fun fromIdOrNull (I)Lnet/mamoe/mirai/message/data/AudioCodec; + public final fun serializer ()Lkotlinx/serialization/KSerializer; } public abstract interface class net/mamoe/mirai/message/data/ConstrainSingle : net/mamoe/mirai/message/data/SingleMessage { @@ -3364,6 +3385,7 @@ public final class net/mamoe/mirai/message/data/Dice : net/mamoe/mirai/message/c public fun hashCode ()I public static final fun random ()Lnet/mamoe/mirai/message/data/Dice; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Dice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Dice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -3416,6 +3438,7 @@ public final class net/mamoe/mirai/message/data/EmptyMessageChain : java/util/Li public fun replaceAll (Ljava/util/function/UnaryOperator;)V public fun retainAll (Ljava/util/Collection;)Z public fun serializeToMiraiCode ()Ljava/lang/String; + public final fun serializer ()Lkotlinx/serialization/KSerializer; public synthetic fun set (ILjava/lang/Object;)Ljava/lang/Object; public fun set (ILnet/mamoe/mirai/message/data/SingleMessage;)Lnet/mamoe/mirai/message/data/SingleMessage; public final fun size ()I @@ -3947,6 +3970,7 @@ public final class net/mamoe/mirai/message/data/Face : net/mamoe/mirai/message/c public final fun getName ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Face;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Face$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4012,6 +4036,7 @@ public final class net/mamoe/mirai/message/data/FlashImage : net/mamoe/mirai/mes public fun hashCode ()I public fun serializeToMiraiCode ()Ljava/lang/String; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/FlashImage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/FlashImage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4061,6 +4086,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessage : net/mamoe/mirai public final fun getTitle ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/ForwardMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/ForwardMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4109,6 +4135,7 @@ public final class net/mamoe/mirai/message/data/ForwardMessage$Node : net/mamoe/ public fun getTime ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/ForwardMessage$Node;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/ForwardMessage$Node$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4318,6 +4345,7 @@ public final class net/mamoe/mirai/message/data/LightApp : net/mamoe/mirai/messa public fun getContent ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/LightApp;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/LightApp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4741,6 +4769,7 @@ public final class net/mamoe/mirai/message/data/MusicShare : net/mamoe/mirai/mes public final fun getTitle ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/MusicShare;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/MusicShare$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -4951,6 +4980,7 @@ public final class net/mamoe/mirai/message/data/PlainText : net/mamoe/mirai/mess public final fun getContent ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/PlainText;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/PlainText$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5003,6 +5033,7 @@ public final class net/mamoe/mirai/message/data/PokeMessage : net/mamoe/mirai/me public final fun getPokeType ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/PokeMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/PokeMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5039,6 +5070,7 @@ public final class net/mamoe/mirai/message/data/QuoteReply : net/mamoe/mirai/mes public final fun getSource ()Lnet/mamoe/mirai/message/data/MessageSource; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/QuoteReply;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/QuoteReply$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5069,6 +5101,7 @@ public final class net/mamoe/mirai/message/data/RawForwardMessage { public fun hashCode ()I public final fun render (Lnet/mamoe/mirai/message/data/ForwardMessage$DisplayStrategy;)Lnet/mamoe/mirai/message/data/ForwardMessage; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/RawForwardMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/RawForwardMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5089,6 +5122,7 @@ public final class net/mamoe/mirai/message/data/RawForwardMessage$Companion { public abstract interface class net/mamoe/mirai/message/data/RichMessage : net/mamoe/mirai/message/data/ConstrainSingle, net/mamoe/mirai/message/data/MessageContent { public static final field Key Lnet/mamoe/mirai/message/data/RichMessage$Key; + public fun contentToString ()Ljava/lang/String; public abstract fun getContent ()Ljava/lang/String; public fun getKey ()Lnet/mamoe/mirai/message/data/MessageKey; } @@ -5115,6 +5149,7 @@ public final class net/mamoe/mirai/message/data/RichMessageOrigin : net/mamoe/mi public final fun getResourceId ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/RichMessageOrigin;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/RichMessageOrigin$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5146,6 +5181,7 @@ public final class net/mamoe/mirai/message/data/ShowImageFlag : net/mamoe/mirai/ public static final field SERIAL_NAME Ljava/lang/String; public synthetic fun getKey ()Lnet/mamoe/mirai/message/data/MessageKey; public fun getKey ()Lnet/mamoe/mirai/message/data/ShowImageFlag; + public final fun serializer ()Lkotlinx/serialization/KSerializer; public fun toString ()Ljava/lang/String; } @@ -5227,6 +5263,7 @@ public final class net/mamoe/mirai/message/data/VipFace : net/mamoe/mirai/messag public final fun getKind ()Lnet/mamoe/mirai/message/data/VipFace$Kind; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/VipFace;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/VipFace$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5258,6 +5295,7 @@ public final class net/mamoe/mirai/message/data/VipFace$Kind { public final fun getName ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/VipFace$Kind;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/VipFace$Kind$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5292,6 +5330,7 @@ public class net/mamoe/mirai/message/data/Voice : net/mamoe/mirai/message/data/P public fun hashCode ()I public final fun toAudio ()Lnet/mamoe/mirai/message/data/Audio; public fun toString ()Ljava/lang/String; + public static final fun write$Self (Lnet/mamoe/mirai/message/data/Voice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/message/data/Voice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5511,6 +5550,7 @@ public final class net/mamoe/mirai/utils/DeviceInfo { public final fun getWifiBSSID ()[B public final fun getWifiSSID ()[B public static final fun random ()Lnet/mamoe/mirai/utils/DeviceInfo; + public static final fun write$Self (Lnet/mamoe/mirai/utils/DeviceInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/utils/DeviceInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { @@ -5543,6 +5583,7 @@ public final class net/mamoe/mirai/utils/DeviceInfo$Version { public final fun getIncremental ()[B public final fun getRelease ()[B public final fun getSdk ()I + public static final fun write$Self (Lnet/mamoe/mirai/utils/DeviceInfo$Version;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V } public final class net/mamoe/mirai/utils/DeviceInfo$Version$$serializer : kotlinx/serialization/internal/GeneratedSerializer { diff --git a/build.gradle.kts b/build.gradle.kts index 895b36f96..8949d30b0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -97,6 +97,7 @@ allprojects { configureFlattenSourceSets() } configureJarManifest() + substituteDependenciesUsingExpectedVersion() if (System.getenv("MIRAI_IS_SNAPSHOTS_PUBLISHING") != null) { project.tasks.filterIsInstance().forEach { shadow -> diff --git a/buildSrc/src/main/kotlin/Mpp.kt b/buildSrc/src/main/kotlin/Mpp.kt index e3faaf4dc..94d8e0860 100644 --- a/buildSrc/src/main/kotlin/Mpp.kt +++ b/buildSrc/src/main/kotlin/Mpp.kt @@ -10,6 +10,9 @@ import org.gradle.api.NamedDomainObjectCollection import org.gradle.api.NamedDomainObjectProvider import org.gradle.api.Project +import org.gradle.api.artifacts.DependencySubstitutions +import org.gradle.api.artifacts.ResolutionStrategy +import org.gradle.api.artifacts.component.ComponentSelector import java.util.* /* @@ -73,4 +76,44 @@ fun Project.printAndroidNotInstalled() { """Android SDK might not be installed. Android target of $name will not be compiled. It does no influence on the compilation of other platforms. """.trimIndent() ) -} \ No newline at end of file +} + +inline fun forMppModules(action: (suffix: String) -> Unit) { + arrayOf( + "", + "-common", + "-metadata", + "-jvm", + "-jdk7", + "-jdk8" + ).forEach(action) +} + +fun Project.substituteDependenciesUsingExpectedVersion() { + configurations.all { + resolutionStrategy.substituteDependencies { + forMppModules { suffix -> + module("org.jetbrains.kotlin:kotlin-stdlib$suffix") using module("org.jetbrains.kotlin:kotlin-stdlib$suffix:${Versions.kotlinStdlib}") + module("org.jetbrains.kotlin:kotlin-reflect$suffix") using module("org.jetbrains.kotlin:kotlin-reflect$suffix:${Versions.kotlinStdlib}") + module("org.jetbrains.kotlinx:kotlinx-coroutines-core$suffix") using + module(kotlinx("coroutines-core$suffix", Versions.coroutines)) + module("org.jetbrains.kotlinx:kotlinx-coroutines-debug$suffix") using + module(kotlinx("coroutines-debug$suffix", Versions.coroutines)) + } + } + } +} + +class ResolutionStrategyDsl( + private val origin: DependencySubstitutions +) : DependencySubstitutions by origin { + infix fun ComponentSelector.using(notation: ComponentSelector): DependencySubstitutions.Substitution { + return substitute(this).using(notation) + } +} + +fun ResolutionStrategy.substituteDependencies(action: ResolutionStrategyDsl.() -> Unit) { + dependencySubstitution { + action(ResolutionStrategyDsl(this)) + } +} diff --git a/buildSrc/src/main/kotlin/ProjectConfigure.kt b/buildSrc/src/main/kotlin/ProjectConfigure.kt index 9b57df9f8..9e189be89 100644 --- a/buildSrc/src/main/kotlin/ProjectConfigure.kt +++ b/buildSrc/src/main/kotlin/ProjectConfigure.kt @@ -159,13 +159,12 @@ fun Project.configureKotlinExperimentalUsages() { fun KotlinSourceSet.configureKotlinExperimentalUsages() { languageSettings.progressiveMode = true - languageSettings.enableLanguageFeature("InlineClasses") experimentalAnnotations.forEach { a -> - languageSettings.useExperimentalAnnotation(a) + languageSettings.optIn(a) } if (name.contains("test", ignoreCase = true)) { testExperimentalAnnotations.forEach { a -> - languageSettings.useExperimentalAnnotation(a) + languageSettings.optIn(a) } } } diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 88685926d..926add70e 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -10,6 +10,8 @@ @file:Suppress("ObjectPropertyName", "ObjectPropertyName", "unused", "MemberVisibilityCanBePrivate") import org.gradle.api.attributes.Attribute +import org.gradle.kotlin.dsl.* +import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler object Versions { const val project = "2.8.0-M1" @@ -18,13 +20,13 @@ object Versions { const val console = project const val consoleTerminal = project - const val kotlinCompiler = "1.5.10" - const val kotlinStdlib = "1.5.10" + const val kotlinCompiler = "1.5.30" + const val kotlinStdlib = "1.5.30" const val dokka = "1.4.32" - const val coroutines = "1.5.0" - const val atomicFU = "0.16.1" - const val serialization = "1.2.1" + const val coroutines = "1.5.1" + const val atomicFU = "0.16.3" + const val serialization = "1.2.2" const val ktor = "1.5.4" const val binaryValidator = "0.4.0" @@ -32,7 +34,7 @@ object Versions { const val io = "0.1.16" const val coroutinesIo = "0.1.16" - const val blockingBridge = "1.10.3" + const val blockingBridge = "1.10.6-1530.2" const val androidGradlePlugin = "4.1.1" const val android = "4.1.1.4" @@ -65,27 +67,46 @@ fun kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$v fun ktor(id: String, version: String = Versions.ktor) = "io.ktor:ktor-$id:$version" -val `kotlinx-coroutines-core` = kotlinx("coroutines-core", Versions.coroutines) +// Why using `-jvm`? +// All target platforms are JVM. Root modules like 'coroutines-core' will be resolved to 'coroutines-common' for commonMain, +// which make IDE code analysis not working. + +val `kotlinx-coroutines-core-jvm` = kotlinx("coroutines-core-jvm", Versions.coroutines) val `kotlinx-coroutines-jdk8` = kotlinx("coroutines-jdk8", Versions.coroutines) val `kotlinx-coroutines-swing` = kotlinx("coroutines-swing", Versions.coroutines) val `kotlinx-coroutines-debug` = kotlinx("coroutines-debug", Versions.coroutines) -val `kotlinx-serialization-core` = kotlinx("serialization-core", Versions.serialization) -val `kotlinx-serialization-json` = kotlinx("serialization-json", Versions.serialization) -val `kotlinx-serialization-protobuf` = kotlinx("serialization-protobuf", Versions.serialization) -const val `kotlinx-atomicfu` = "org.jetbrains.kotlinx:atomicfu:${Versions.atomicFU}" -val `kotlinx-io` = kotlinx("io", Versions.io) +val `kotlinx-serialization-core-jvm` = kotlinx("serialization-core-jvm", Versions.serialization) +val `kotlinx-serialization-json-jvm` = kotlinx("serialization-json-jvm", Versions.serialization) +val `kotlinx-serialization-protobuf-jvm` = kotlinx("serialization-protobuf-jvm", Versions.serialization) +const val `kotlinx-atomicfu-jvm` = "org.jetbrains.kotlinx:atomicfu-jvm:${Versions.atomicFU}" val `kotlinx-io-jvm` = kotlinx("io-jvm", Versions.io) -val `kotlinx-coroutines-io` = kotlinx("coroutines-io", Versions.coroutinesIo) + +fun KotlinDependencyHandler.implementationKotlinxIoJvm() { + implementation(`kotlinx-io-jvm`) { + /* + | +--- org.jetbrains.kotlinx:kotlinx-io-jvm:0.1.16 + | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.60 -> 1.5.30 (*) + | | +--- org.jetbrains.kotlinx:atomicfu:0.14.1 + | | +--- org.jetbrains.kotlinx:atomicfu-common:0.14.1 + | | \--- org.jetbrains.kotlinx:kotlinx-io:0.1.16 + | | \--- org.jetbrains.kotlinx:atomicfu-common:0.14.1 + */ + exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-common") + exclude("org.jetbrains.kotlinx", "atomicfu") + exclude("org.jetbrains.kotlinx", "atomicfu-common") + } +} + val `kotlinx-coroutines-io-jvm` = kotlinx("coroutines-io-jvm", Versions.coroutinesIo) val `ktor-serialization` = ktor("serialization", Versions.ktor) -val `ktor-client-core` = ktor("client-core", Versions.ktor) -val `ktor-client-cio` = ktor("client-cio", Versions.ktor) +val `ktor-client-core-jvm` = ktor("client-core-jvm", Versions.ktor) +val `ktor-client-cio-jvm` = ktor("client-cio-jvm", Versions.ktor) val `ktor-client-okhttp` = ktor("client-okhttp", Versions.ktor) val `ktor-client-android` = ktor("client-android", Versions.ktor) -val `ktor-client-logging` = ktor("client-logging", Versions.ktor) -val `ktor-network` = ktor("network", Versions.ktor) +val `ktor-client-logging-jvm` = ktor("client-logging-jvm", Versions.ktor) +val `ktor-network-jvm` = ktor("network-jvm", Versions.ktor) val `ktor-client-serialization-jvm` = ktor("client-serialization-jvm", Versions.ktor) const val `logback-classic` = "ch.qos.logback:logback-classic:" + Versions.logback @@ -103,7 +124,6 @@ val ATTRIBUTE_MIRAI_TARGET_PLATFORM: Attribute = Attribute.of("mirai.tar const val `kotlin-compiler` = "org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}" -const val `kotlin-stdlib` = "org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlinStdlib}" const val `kotlin-stdlib-jdk8` = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlinStdlib}" const val `kotlin-reflect` = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlinStdlib}" const val `kotlin-test` = "org.jetbrains.kotlin:kotlin-test:${Versions.kotlinStdlib}" @@ -114,7 +134,7 @@ const val `mirai-core-api` = "net.mamoe:mirai-core-api:${Versions.core}" const val `mirai-core` = "net.mamoe:mirai-core:${Versions.core}" const val `mirai-core-utils` = "net.mamoe:mirai-core-utils:${Versions.core}" -const val yamlkt = "net.mamoe.yamlkt:yamlkt:${Versions.yamlkt}" +const val `yamlkt-jvm` = "net.mamoe.yamlkt:yamlkt:${Versions.yamlkt}" const val `jetbrains-annotations` = "org.jetbrains:annotations:19.0.0" diff --git a/mirai-core-api/build.gradle.kts b/mirai-core-api/build.gradle.kts index d1ec6d2eb..597fe98f3 100644 --- a/mirai-core-api/build.gradle.kts +++ b/mirai-core-api/build.gradle.kts @@ -52,28 +52,20 @@ kotlin { sourceSets { val commonMain by getting { dependencies { - implementation(project(":mirai-core-utils")) api(kotlin("reflect")) - - api(`kotlinx-serialization-core`) - api(`kotlinx-serialization-json`) - implementation(`kotlinx-serialization-protobuf`) + api(`kotlinx-serialization-core-jvm`) + api(`kotlinx-serialization-json-jvm`) api(`kotlinx-coroutines-jdk8`) - implementation(`jetbrains-annotations`) - // api(`kotlinx-coroutines-jdk8`) - api(`ktor-client-okhttp`) - api(`ktor-client-core`) - api(`ktor-network`) + implementation(project(":mirai-core-utils")) + implementation(`kotlinx-serialization-protobuf-jvm`) + implementation(`jetbrains-annotations`) implementation(`log4j-api`) + implementation(`kotlinx-atomicfu-jvm`) + implementationKotlinxIoJvm() + compileOnly(`slf4j-api`) - - - // they use Kotlin 1.3 so we need to ignore transitive dependencies - api1(`kotlinx-io-jvm`) - api1(`kotlinx-coroutines-io-jvm`) - implementation1(`kotlinx-atomicfu`) } } @@ -88,7 +80,7 @@ kotlin { dependsOn(commonMain) dependencies { compileOnly(`android-runtime`) - api1(`ktor-client-android`) +// api(`ktor-client-android`) } } } @@ -120,24 +112,6 @@ if (isAndroidSDKAvailable) { tasks.getByName("androidTest").dependsOn("checkAndroidApiLevel") } -fun org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler.implementation1(dependencyNotation: String) = - implementation(dependencyNotation) { - exclude("org.jetbrains.kotlin", "kotlin-stdlib") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-common") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-metadata") - } - -fun org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler.api1(dependencyNotation: String) = - api(dependencyNotation) { - exclude("org.jetbrains.kotlin", "kotlin-stdlib") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-common") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-metadata") - } - configureMppPublishing() afterEvaluate { diff --git a/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt b/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt index 0f344257d..8f5e6289f 100644 --- a/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt +++ b/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt @@ -30,7 +30,7 @@ import kotlin.annotation.AnnotationTarget.* @MiraiExperimentalApi @RequiresOptIn @Retention(AnnotationRetention.BINARY) -@Target(CLASS, TYPE, FUNCTION, PROPERTY, CONSTRUCTOR) +@Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR) public annotation class LowLevelApi /** diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/Dice.kt b/mirai-core-api/src/commonMain/kotlin/message/data/Dice.kt index 3bc2f36c7..0bc286556 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/Dice.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/Dice.kt @@ -41,7 +41,6 @@ public data class Dice( require(value in 1..6) { "Dice.value must be in 1 and 6 inclusive." } } - @MiraiExperimentalApi override val name: String get() = "[骰子:$value]" diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt index 500305b65..558b0208f 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt @@ -85,7 +85,7 @@ public interface FileMessage : MessageContent, ConstrainSingle, CodableMessage { * 注意, baseKey [MessageContent] 不稳定. 未来可能会有变更. */ public companion object Key : - AbstractPolymorphicMessageKey<@MiraiExperimentalApi MessageContent, FileMessage>( + AbstractPolymorphicMessageKey( MessageContent, { it.safeCast() }) { public const val SERIAL_NAME: String = "FileMessage" diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/MusicShare.kt b/mirai-core-api/src/commonMain/kotlin/message/data/MusicShare.kt index 12d3776df..245e520f2 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/MusicShare.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/MusicShare.kt @@ -15,7 +15,6 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import net.mamoe.mirai.message.code.CodableMessage import net.mamoe.mirai.message.code.internal.appendStringAsMiraiCode -import net.mamoe.mirai.utils.MiraiExperimentalApi import net.mamoe.mirai.utils.MiraiInternalApi import net.mamoe.mirai.utils.safeCast @@ -135,7 +134,7 @@ public data class MusicShare( * 注意, baseKey [MessageContent] 不稳定. 未来可能会有变更. */ public companion object Key : - AbstractPolymorphicMessageKey<@MiraiExperimentalApi MessageContent, MusicShare> + AbstractPolymorphicMessageKey (MessageContent, { it.safeCast() }) { /** diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/RichMessage.kt b/mirai-core-api/src/commonMain/kotlin/message/data/RichMessage.kt index 57dde364f..359f76202 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/RichMessage.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/RichMessage.kt @@ -41,7 +41,6 @@ public interface RichMessage : MessageContent, ConstrainSingle { /** * **注意**: 富文本消息的 [RichMessage.contentEquals] 和 [RichMessage.toString] 都不稳定. 将来可能在没有任何警告的情况下改变格式. */ - @MiraiExperimentalApi public override fun contentToString(): String = this.content /** diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/impl.kt b/mirai-core-api/src/commonMain/kotlin/message/data/impl.kt index cbc9e59f8..717c0e23e 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/impl.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/impl.kt @@ -170,6 +170,7 @@ internal fun createMessageChainImplOptimized(delegate: List): Mes /** * 使用 [Collection] 作为委托的 [MessageChain] */ +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(MessageChain.Serializer::class) internal data class MessageChainImpl constructor( @JvmField diff --git a/mirai-core-api/src/commonMain/kotlin/utils/Annotations.kt b/mirai-core-api/src/commonMain/kotlin/utils/Annotations.kt index b238c4ed7..aac70fda0 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/Annotations.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/Annotations.kt @@ -47,7 +47,7 @@ public annotation class MiraiInternalFile */ @Retention(AnnotationRetention.BINARY) @RequiresOptIn(level = RequiresOptIn.Level.WARNING) -@Target(CLASS, TYPEALIAS, FUNCTION, PROPERTY, FIELD, CONSTRUCTOR, TYPE) +@Target(CLASS, TYPEALIAS, FUNCTION, PROPERTY, FIELD, CONSTRUCTOR) @MustBeDocumented public annotation class MiraiExperimentalApi( public val message: String = "" @@ -91,5 +91,5 @@ internal annotation class EventListenerLikeJava * 一般有一定的性能损失, 且不能在 JVM/Android 以外平台使用. 不要在 Kotlin 调用它. */ @RequiresOptIn(level = RequiresOptIn.Level.ERROR) -@Target(PROPERTY, FUNCTION, TYPE, CLASS) +@Target(PROPERTY, FUNCTION, CLASS) internal annotation class JavaFriendlyAPI \ No newline at end of file diff --git a/mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt b/mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt index 862536307..540683380 100644 --- a/mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt +++ b/mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt @@ -10,17 +10,12 @@ package net.mamoe.mirai.utils -import io.ktor.client.* -import kotlinx.coroutines.* -import kotlinx.coroutines.io.ByteWriteChannel -import kotlinx.coroutines.io.close -import kotlinx.coroutines.io.jvm.nio.copyTo -import kotlinx.coroutines.io.reader -import kotlinx.coroutines.io.writeFully +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock +import kotlinx.coroutines.withContext import net.mamoe.mirai.Bot -import net.mamoe.mirai.Mirai import net.mamoe.mirai.internal.utils.SeleniumLoginSolver import net.mamoe.mirai.internal.utils.isSliderCaptchaSupportKind import net.mamoe.mirai.network.LoginFailedException @@ -30,9 +25,7 @@ import net.mamoe.mirai.utils.StandardCharImageLoginSolver.Companion.createBlocki import java.awt.Image import java.awt.image.BufferedImage import java.io.File -import java.io.RandomAccessFile import javax.imageio.ImageIO -import kotlin.coroutines.CoroutineContext import kotlin.coroutines.resume import kotlin.coroutines.suspendCoroutine @@ -150,7 +143,7 @@ public class StandardCharImageLoginSolver @JvmOverloads constructor( logger.info { "[PicCaptcha] 需要图片验证码登录, 验证码为 4 字母" } logger.info { "[PicCaptcha] Picture captcha required. Captcha consists of 4 letters." } try { - tempFile.writeChannel().apply { writeFully(data); close() } + tempFile.writeBytes(data) logger.info { "[PicCaptcha] 将会显示字符图片. 若看不清字符图片, 请查看文件 ${tempFile.absolutePath}" } logger.info { "[PicCaptcha] Displaying char-image. If not clear, view file ${tempFile.absolutePath}" } } catch (e: Exception) { @@ -251,18 +244,6 @@ public class StandardCharImageLoginSolver @JvmOverloads constructor( } } -// Copied from Ktor CIO -@OptIn(DelicateCoroutinesApi::class) -private fun File.writeChannel( - coroutineContext: CoroutineContext = Dispatchers.IO -): ByteWriteChannel = GlobalScope.reader(CoroutineName("file-writer") + coroutineContext, autoFlush = true) { - @Suppress("BlockingMethodInNonBlockingContext") - RandomAccessFile(this@writeChannel, "rw").use { file -> - val copied = channel.copyTo(file.channel) - file.setLength(copied) // truncate tail that could remain from the previously written data - } -}.channel - private val loginSolverLock = Mutex() /** diff --git a/mirai-core-utils/build.gradle.kts b/mirai-core-utils/build.gradle.kts index e0464ee55..a081cb504 100644 --- a/mirai-core-utils/build.gradle.kts +++ b/mirai-core-utils/build.gradle.kts @@ -26,10 +26,6 @@ kotlin { explicitApi() if (isAndroidSDKAvailable) { -// apply(from = rootProject.file("gradle/android.gradle")) -// android("android") { -// publishAllLibraryVariants() -// } jvm("android") { attributes.attribute(KotlinPlatformType.attribute, KotlinPlatformType.androidJvm) // publishAllLibraryVariants() @@ -44,32 +40,23 @@ kotlin { jvm("jvm") -// jvm("android") { -// attributes.attribute(Attribute.of("mirai.target.platform", String::class.java), "android") -// } - sourceSets { val commonMain by getting { dependencies { api(kotlin("reflect")) + api(`kotlinx-serialization-core-jvm`) + api(`kotlinx-serialization-json-jvm`) + api(`kotlinx-coroutines-core-jvm`) - api1(`kotlinx-serialization-core`) - api1(`kotlinx-serialization-json`) - implementation1(`kotlinx-serialization-protobuf`) - api1(`kotlinx-io-jvm`) - api1(`kotlinx-coroutines-io-jvm`) - api(`kotlinx-coroutines-core`) - - implementation1(`kotlinx-atomicfu`) - - api1(`ktor-client-core`) - api1(`ktor-network`) + implementation(`kotlinx-atomicfu-jvm`) + implementation(`kotlinx-serialization-protobuf-jvm`) + implementationKotlinxIoJvm() } } val commonTest by getting { dependencies { - api(yamlkt) + api(`yamlkt-jvm`) } } @@ -78,7 +65,7 @@ kotlin { // dependencies { compileOnly(`android-runtime`) - api1(`ktor-client-android`) +// api1(`ktor-client-android`) } } } @@ -126,4 +113,4 @@ fun org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler.api1(dependencyNo exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-metadata") } -configureMppPublishing() \ No newline at end of file +configureMppPublishing() diff --git a/mirai-core-utils/src/commonMain/kotlin/Annotations.kt b/mirai-core-utils/src/commonMain/kotlin/Annotations.kt index 5c1b71084..b64acdc9b 100644 --- a/mirai-core-utils/src/commonMain/kotlin/Annotations.kt +++ b/mirai-core-utils/src/commonMain/kotlin/Annotations.kt @@ -15,5 +15,4 @@ import kotlin.annotation.AnnotationTarget.* @RequiresOptIn("This can only be used in tests.", level = ERROR) @Target(CLASS, FUNCTION, PROPERTY, CLASS, CONSTRUCTOR, FUNCTION) -@Retention(AnnotationRetention.SOURCE) public annotation class TestOnly \ No newline at end of file diff --git a/mirai-core-utils/src/commonMain/kotlin/MiraiPlatformUtils.kt b/mirai-core-utils/src/commonMain/kotlin/MiraiPlatformUtils.kt index af2e387c5..8d73e6989 100644 --- a/mirai-core-utils/src/commonMain/kotlin/MiraiPlatformUtils.kt +++ b/mirai-core-utils/src/commonMain/kotlin/MiraiPlatformUtils.kt @@ -12,8 +12,6 @@ package net.mamoe.mirai.utils -import io.ktor.client.* -import io.ktor.client.features.* import kotlinx.io.core.Input import kotlinx.io.core.readAvailable import java.io.* diff --git a/mirai-core/build.gradle.kts b/mirai-core/build.gradle.kts index e2753e28c..f733c44a7 100644 --- a/mirai-core/build.gradle.kts +++ b/mirai-core/build.gradle.kts @@ -55,32 +55,29 @@ kotlin { jvm("android") { attributes.attribute(ATTRIBUTE_MIRAI_TARGET_PLATFORM, "android") }*/ - sourceSets.apply { val commonMain by getting { dependencies { api(project(":mirai-core-api")) + api(`kotlinx-serialization-core-jvm`) + api(`kotlinx-serialization-json-jvm`) + api(`kotlinx-coroutines-core-jvm`) + implementation(project(":mirai-core-utils")) - api1(`kotlinx-serialization-core`) - api1(`kotlinx-serialization-json`) - implementation1(`kotlinx-serialization-protobuf`) - - api1(`kotlinx-atomicfu`) - api1(`kotlinx-coroutines-core`) - - api1(`kotlinx-io-jvm`) - implementation1(`kotlinx-coroutines-io`) + implementation(`kotlinx-serialization-protobuf-jvm`) + implementation(`kotlinx-atomicfu-jvm`) implementation(`netty-all`) implementation(`log4j-api`) implementation(bouncycastle) + implementationKotlinxIoJvm() } } commonTest { dependencies { implementation(kotlin("script-runtime")) - api(yamlkt) + api(`yamlkt-jvm`) } } @@ -111,7 +108,7 @@ kotlin { val jvmTest by getting { dependencies { - api1(`kotlinx-coroutines-debug`) + api(`kotlinx-coroutines-debug`) // implementation("net.mamoe:mirai-login-solver-selenium:1.0-dev-14") } } @@ -133,22 +130,4 @@ if (isAndroidSDKAvailable) { tasks.getByName("androidTest").dependsOn("checkAndroidApiLevel") } -fun org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler.implementation1(dependencyNotation: String) = - implementation(dependencyNotation) { - exclude("org.jetbrains.kotlin", "kotlin-stdlib") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-common") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-metadata") - } - -fun org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler.api1(dependencyNotation: String) = - api(dependencyNotation) { - exclude("org.jetbrains.kotlin", "kotlin-stdlib") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-common") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm") - exclude("org.jetbrains.kotlinx", "kotlinx-coroutines-core-metadata") - } - configureMppPublishing() \ No newline at end of file diff --git a/mirai-core/src/androidMain/kotlin/utils/crypto/ECDHJvmDesktop.kt b/mirai-core/src/androidMain/kotlin/utils/crypto/ECDHJvmDesktop.kt index 610e005b9..40559a54f 100644 --- a/mirai-core/src/androidMain/kotlin/utils/crypto/ECDHJvmDesktop.kt +++ b/mirai-core/src/androidMain/kotlin/utils/crypto/ECDHJvmDesktop.kt @@ -38,6 +38,7 @@ internal actual class ECDHKeyPairImpl( * https://cs.android.com/android/platform/superproject/+/master:libcore/ojluni/src/main/java/sun/security/jca/Providers.java;l=371;bpv=1;bpt=1 * https://android-developers.googleblog.com/2018/03/cryptography-changes-in-android-p.html * */ +@Suppress("DEPRECATION") // since JDK 9 private class AndroidProvider : Provider("sbAndroid", 1.0, "") { override fun getService(type: String?, algorithm: String?): Service? { if (type == "KeyFactory" && algorithm == "EC") { diff --git a/mirai-core/src/commonMain/kotlin/MiraiImpl.kt b/mirai-core/src/commonMain/kotlin/MiraiImpl.kt index 895f9a812..e0372b3c2 100644 --- a/mirai-core/src/commonMain/kotlin/MiraiImpl.kt +++ b/mirai-core/src/commonMain/kotlin/MiraiImpl.kt @@ -14,7 +14,7 @@ import io.ktor.client.engine.okhttp.* import io.ktor.client.features.* import io.ktor.client.request.* import io.ktor.client.request.forms.* -import io.ktor.http.* +import io.ktor.util.* import io.ktor.utils.io.core.* import kotlinx.coroutines.currentCoroutineContext import kotlinx.io.core.discardExact @@ -582,6 +582,7 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { parameter("page", page) } headers { + @OptIn(InternalAPI::class) // ktor bug append( "cookie", "uin=o${bot.id}; skey=${bot.sKey}; p_uin=o${bot.id};" @@ -605,6 +606,7 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { parameter("gc", groupId) parameter("type", type.value) headers { + @OptIn(InternalAPI::class) // ktor bug append( "cookie", "uin=o${bot.id};" + @@ -690,9 +692,6 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { return resId } - - @LowLevelApi - @MiraiExperimentalApi override suspend fun solveNewFriendRequestEvent( bot: Bot, eventId: Long, @@ -717,8 +716,6 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { } } - @LowLevelApi - @MiraiExperimentalApi override suspend fun solveBotInvitedJoinGroupRequestEvent( bot: Bot, eventId: Long, @@ -738,8 +735,6 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { } } - @LowLevelApi - @MiraiExperimentalApi override suspend fun solveMemberJoinRequestEvent( bot: Bot, eventId: Long, @@ -797,6 +792,7 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor { append("bkn", bot.client.wLoginSigInfo.bkn) }) headers { + @OptIn(InternalAPI::class) // ktor bug append( "cookie", "uin=o${bot.id}; skey=${bot.sKey};" diff --git a/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt b/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt index 2415705c5..00d35d5c3 100644 --- a/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt +++ b/mirai-core/src/commonMain/kotlin/contact/announcement/AnnouncementsImpl.kt @@ -14,6 +14,7 @@ package net.mamoe.mirai.internal.contact.announcement import io.ktor.client.request.* import io.ktor.client.request.forms.* import io.ktor.http.* +import io.ktor.util.* import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlocking import kotlinx.serialization.SerialName @@ -166,6 +167,7 @@ internal object AnnouncementProtocol { bot: Bot, resource: ExternalResource ): AnnouncementImage = bot.asQQAndroidBot().run { + @OptIn(InternalAPI::class) // ktor bug val resp = Mirai.Http.post { url("https://web.qun.qq.com/cgi-bin/announce/upload_img") body = MultiPartFormDataContent(formData { diff --git a/mirai-core/src/commonMain/kotlin/message/imagesImpl.kt b/mirai-core/src/commonMain/kotlin/message/imagesImpl.kt index abc9fce6b..4fc0cdb34 100644 --- a/mirai-core/src/commonMain/kotlin/message/imagesImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/imagesImpl.kt @@ -28,6 +28,7 @@ import net.mamoe.mirai.message.data.Image.Key.IMAGE_ID_REGEX import net.mamoe.mirai.utils.* import net.mamoe.mirai.utils.ExternalResource.Companion.DEFAULT_FORMAT_NAME +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(with = OnlineGroupImageImpl.Serializer::class) internal class OnlineGroupImageImpl( internal val delegate: ImMsgBody.CustomFace, @@ -60,6 +61,7 @@ internal class OnlineGroupImageImpl( private val imageLogger: MiraiLogger by lazy { MiraiLogger.Factory.create(Image::class) } internal val Image.Key.logger get() = imageLogger +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(with = OnlineFriendImageImpl.Serializer::class) internal class OnlineFriendImageImpl( internal val delegate: ImMsgBody.NotOnlineImage, @@ -236,6 +238,7 @@ internal interface OfflineImage : Image /** * @param imageId 参考 [Image.imageId] */ +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(with = OfflineGroupImage.Serializer::class) internal data class OfflineGroupImage( override val imageId: String, @@ -277,6 +280,7 @@ internal val Image.friendImageId: String * * @param imageId 参考 [Image.imageId] */ +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(with = OfflineFriendImage.Serializer::class) internal data class OfflineFriendImage( override val imageId: String, diff --git a/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt index 9b557a8f6..f2ecbadba 100644 --- a/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/incomingSourceImpl.kt @@ -35,6 +35,7 @@ import net.mamoe.mirai.utils.encodeToString import net.mamoe.mirai.utils.mapToIntArray import java.util.concurrent.atomic.AtomicBoolean +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceFromFriendImpl.Serializer::class) internal class OnlineMessageSourceFromFriendImpl( override val bot: Bot, @@ -59,6 +60,7 @@ internal class OnlineMessageSourceFromFriendImpl( override fun toJceData(): ImMsgBody.SourceMsg = jceData } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceFromStrangerImpl.Serializer::class) internal class OnlineMessageSourceFromStrangerImpl( override val bot: Bot, @@ -122,6 +124,7 @@ private fun List.toJceDataPrivate(ids: IntArray): ImMsgBody.SourceM } } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceFromTempImpl.Serializer::class) internal class OnlineMessageSourceFromTempImpl( override val bot: Bot, @@ -150,6 +153,7 @@ internal class OnlineMessageSourceFromTempImpl( override fun toJceData(): ImMsgBody.SourceMsg = jceData } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceFromGroupImpl.Serializer::class) internal class OnlineMessageSourceFromGroupImpl( override val bot: Bot, diff --git a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt index 66b341e9a..9c361879e 100644 --- a/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/offlineSourceImpl.kt @@ -24,6 +24,7 @@ import net.mamoe.mirai.utils.EMPTY_BYTE_ARRAY import net.mamoe.mirai.utils.mapToIntArray import java.util.concurrent.atomic.AtomicBoolean +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OfflineMessageSourceImplData.Serializer::class) internal class OfflineMessageSourceImplData( override val kind: MessageSourceKind, diff --git a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt index 97048edb7..47704bd77 100644 --- a/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt +++ b/mirai-core/src/commonMain/kotlin/message/outgoingSourceImpl.kt @@ -74,6 +74,7 @@ private fun T.toJceDataImpl(subject: ContactOrBot?): ImMsgBody.SourceMsg ) } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceToFriendImpl.Serializer::class) internal class OnlineMessageSourceToFriendImpl( override val sequenceIds: IntArray, @@ -94,6 +95,7 @@ internal class OnlineMessageSourceToFriendImpl( override fun toJceData(): ImMsgBody.SourceMsg = jceData } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceToStrangerImpl.Serializer::class) internal class OnlineMessageSourceToStrangerImpl( override val sequenceIds: IntArray, @@ -120,6 +122,7 @@ internal class OnlineMessageSourceToStrangerImpl( override fun toJceData(): ImMsgBody.SourceMsg = jceData } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceToTempImpl.Serializer::class) internal class OnlineMessageSourceToTempImpl( override val sequenceIds: IntArray, @@ -145,6 +148,7 @@ internal class OnlineMessageSourceToTempImpl( override fun toJceData(): ImMsgBody.SourceMsg = jceData } +@Suppress("SERIALIZER_TYPE_INCOMPATIBLE") @Serializable(OnlineMessageSourceToGroupImpl.Serializer::class) internal class OnlineMessageSourceToGroupImpl( coroutineScope: CoroutineScope, diff --git a/mirai-core/src/commonMain/kotlin/network/highway/Http.kt b/mirai-core/src/commonMain/kotlin/network/highway/Http.kt index 6a59e2d4e..a0e2f2915 100644 --- a/mirai-core/src/commonMain/kotlin/network/highway/Http.kt +++ b/mirai-core/src/commonMain/kotlin/network/highway/Http.kt @@ -13,6 +13,7 @@ import io.ktor.client.* import io.ktor.client.request.* import io.ktor.http.* import io.ktor.http.content.* +import io.ktor.util.* import io.ktor.utils.io.* import io.ktor.utils.io.jvm.javaio.* import net.mamoe.mirai.internal.network.protocol.packet.chat.voice.voiceCodec @@ -38,6 +39,7 @@ internal fun ExternalResource.consumeAsWriteChannelContent(contentType: ContentT internal val FALLBACK_HTTP_SERVER = "htdata2.qq.com" to 0 +@OptIn(InternalAPI::class) // ktor bug @Suppress("SpellCheckingInspection") internal suspend fun HttpClient.postImage( serverIp: String,