From 62b001b131846d222d1bbc56969001a1a9356e9a Mon Sep 17 00:00:00 2001 From: wzp Date: Mon, 26 Aug 2024 21:05:35 +0800 Subject: [PATCH] pref: Split project into two modules(main, api) --- .idea/compiler.xml | 1 + .idea/gradle.xml | 1 + .idea/modules.xml | 1 + .../mybot-api/MyBot.mybot-api.main.iml | 8 ++ build.gradle.kts | 112 +++++------------- mybot-api/build.gradle.kts | 79 ++++++++++++ .../src/main/java/cn/wzpmc}/api/Action.java | 18 +-- .../java/cn/wzpmc}/api/ActionResponse.java | 7 +- .../src/main/java/cn/wzpmc}/api/Actions.java | 55 +++++++-- .../src/main/java/cn/wzpmc}/api/IMainApi.java | 14 ++- .../api/actions/message/CleanCacheAction.java | 8 +- .../message/can/CanSendImageAction.java | 12 +- .../message/can/CanSendRecordAction.java | 12 +- .../message/delete/DeleteMessageAction.java | 14 ++- .../actions/message/get/GetCookiesAction.java | 15 ++- .../message/get/GetCredentialsAction.java | 15 ++- .../message/get/GetCsrfTokenAction.java | 12 +- .../message/get/GetForwardMessageAction.java | 16 ++- .../message/get/GetFriendListAction.java | 12 +- .../message/get/GetGroupHonorInfoAction.java | 22 ++-- .../message/get/GetGroupInfoAction.java | 24 ++-- .../message/get/GetGroupListAction.java | 12 +- .../message/get/GetGroupMemberInfoAction.java | 27 +++-- .../message/get/GetGroupMemberListAction.java | 14 ++- .../actions/message/get/GetImageAction.java | 14 ++- .../message/get/GetLoginInfoAction.java | 10 +- .../actions/message/get/GetMessageAction.java | 16 ++- .../actions/message/get/GetRecordAction.java | 19 +-- .../actions/message/get/GetStatusAction.java | 12 +- .../message/get/GetStrangerInfoAction.java | 24 ++-- .../message/get/GetVersionInfoAction.java | 12 +- .../message/send/SendGroupMessageAction.java | 29 +++-- .../actions/message/send/SendLikeAction.java | 22 ++-- .../send/SendMessageActionResponseData.java | 4 +- .../send/SendPrivateMessageAction.java | 29 +++-- .../set/SetFriendAddRequestAction.java | 33 ++++-- .../message/set/SetGroupAddRequestAction.java | 35 ++++-- .../message/set/SetGroupAdminAction.java | 25 ++-- .../message/set/SetGroupAnonymousAction.java | 18 ++- .../set/SetGroupAnonymousBanAction.java | 47 +++++--- .../message/set/SetGroupBanAction.java | 27 +++-- .../message/set/SetGroupCardAction.java | 23 ++-- .../message/set/SetGroupKickAction.java | 23 ++-- .../message/set/SetGroupLeaveAction.java | 22 ++-- .../message/set/SetGroupNameAction.java | 17 ++- .../set/SetGroupSpecialTitleAction.java | 48 +++++--- .../message/set/SetGroupWholeBanAction.java | 18 ++- .../actions/message/set/SetRestartAction.java | 13 +- .../java/cn/wzpmc}/commands/BaseCommand.java | 3 +- .../cn/wzpmc}/commands/BrigadierCommand.java | 8 +- .../java/cn/wzpmc}/commands/RawCommand.java | 19 +-- .../arguments/MessagePartArgument.java | 9 +- .../commands/arguments/UserIdArguments.java | 16 +-- .../commands/exceptions/CqCodeException.java | 4 +- .../java/cn/wzpmc}/entities/BotStatus.java | 5 +- .../wzpmc}/entities/CookiesInformation.java | 4 +- .../entities/CredentialsInformation.java | 5 +- .../wzpmc}/entities/CsrfTokenInformation.java | 4 +- .../wzpmc}/entities/FilePathInformation.java | 3 +- .../cn/wzpmc}/entities/FriendInformation.java | 6 +- .../cn/wzpmc}/entities/GroupHonorUser.java | 7 +- .../cn/wzpmc}/entities/GroupInformation.java | 7 +- .../entities/GroupMemberInformation.java | 22 +++- .../cn/wzpmc}/entities/HonorInformation.java | 10 +- .../cn/wzpmc}/entities/HonorTalkative.java | 7 +- .../java/cn/wzpmc}/entities/HonorType.java | 11 +- .../wzpmc}/entities/MessageInformation.java | 15 ++- .../src/main/java/cn/wzpmc}/entities/Ops.java | 23 ++-- .../wzpmc}/entities/VersionInformation.java | 6 +- .../main/java/cn/wzpmc}/entities/YesNo.java | 4 +- .../src/main/java/cn/wzpmc}/events/Event.java | 6 +- .../java/cn/wzpmc}/events/EventPostType.java | 18 ++- .../wzpmc}/events/message/MessageEvent.java | 17 ++- .../cn/wzpmc}/events/message/MessageType.java | 12 +- .../message/group/GroupMessageEvent.java | 11 +- .../message/group/GroupMessageSubType.java | 6 +- .../message/priv/PrivateMessageEvent.java | 9 +- .../message/priv/PrivateMessageSubType.java | 6 +- .../cn/wzpmc}/events/meta/HeartBeatEvent.java | 8 +- .../java/cn/wzpmc}/events/meta/MetaEvent.java | 6 +- .../cn/wzpmc}/events/meta/MetaEventType.java | 7 +- .../events/meta/lifecycle/LifecycleEvent.java | 6 +- .../meta/lifecycle/LifecycleEventSubType.java | 6 +- .../wzpmc}/events/notice/FriendAddEvent.java | 4 +- .../wzpmc}/events/notice/GroupBanEvent.java | 9 +- .../cn/wzpmc}/events/notice/NoticeEvent.java | 6 +- .../cn/wzpmc}/events/notice/NoticeType.java | 31 +++-- .../notice/admin/GroupAdminChangeEvent.java | 8 +- .../notice/admin/GroupAdminChangeSubType.java | 5 +- .../wzpmc}/events/notice/file/GroupFile.java | 6 +- .../notice/file/GroupFileUploadedEvent.java | 8 +- .../notice/notify/LuckyKingNotifyEvent.java | 4 +- .../events/notice/notify/NotifyEvent.java | 8 +- .../events/notice/notify/NotifySubType.java | 11 +- .../events/notice/notify/PokeNotifyEvent.java | 4 +- .../notice/notify/honor/HonorNotifyEvent.java | 6 +- .../events/notice/notify/honor/HonorType.java | 6 +- .../recall/GroupMessageRecallEvent.java | 5 +- .../notice/recall/MessageRecallEvent.java | 7 +- .../notice/user/GroupUserModifyEvent.java | 8 +- .../user/decrease/GroupUserDecreaseEvent.java | 5 +- .../decrease/GroupUserDecreaseSubType.java | 5 +- .../user/increase/GroupUserIncreaseEvent.java | 5 +- .../increase/GroupUserIncreaseSubType.java | 5 +- .../events/request/FriendAddRequestEvent.java | 3 +- .../wzpmc}/events/request/RequestEvent.java | 9 +- .../events/request/RequestEventType.java | 8 +- .../request/group/GroupJoinRequestEvent.java | 7 +- .../group/GroupJoinRequestEventSubType.java | 5 +- .../cn/wzpmc}/message/MessageComponent.java | 6 +- .../java/cn/wzpmc}/message/StringMessage.java | 23 ++-- .../cn/wzpmc}/message/json/JsonMessage.java | 16 ++- .../wzpmc}/message/json/JsonMessagePart.java | 24 ++-- .../wzpmc}/message/json/parts/Anonymous.java | 7 +- .../java/cn/wzpmc}/message/json/parts/At.java | 6 +- .../message/json/parts/CustomJSONMessage.java | 7 +- .../cn/wzpmc}/message/json/parts/Dice.java | 10 +- .../cn/wzpmc}/message/json/parts/Face.java | 7 +- .../cn/wzpmc}/message/json/parts/Forward.java | 7 +- .../cn/wzpmc}/message/json/parts/Image.java | 13 +- .../wzpmc}/message/json/parts/Location.java | 10 +- .../message/json/parts/MarkdownMessage.java | 11 +- .../wzpmc}/message/json/parts/PartType.java | 43 +++++-- .../cn/wzpmc}/message/json/parts/RPS.java | 5 +- .../cn/wzpmc}/message/json/parts/Record.java | 5 +- .../cn/wzpmc}/message/json/parts/Reply.java | 7 +- .../cn/wzpmc}/message/json/parts/Shake.java | 5 +- .../cn/wzpmc}/message/json/parts/Share.java | 9 +- .../cn/wzpmc}/message/json/parts/Video.java | 11 +- .../wzpmc}/message/json/parts/XMLMessage.java | 6 +- .../message/json/parts/contact/Contact.java | 10 +- .../json/parts/contact/ContactType.java | 5 +- .../message/json/parts/music/Music.java | 9 +- .../json/parts/music/MusicAppShare.java | 5 +- .../json/parts/music/MusicCustomShare.java | 9 +- .../message/json/parts/music/MusicType.java | 10 +- .../message/json/parts/node/CustomNode.java | 9 +- .../wzpmc}/message/json/parts/node/Node.java | 7 +- .../message/json/parts/node/SingleNode.java | 7 +- .../wzpmc}/message/json/parts/poke/Poke.java | 7 +- .../message/json/parts/poke/PokeType.java | 9 +- .../java/cn/wzpmc}/plugins/BasePlugin.java | 40 ++++--- .../cn/wzpmc}/plugins/ICommandManager.java | 16 ++- .../cn/wzpmc}/plugins/IPluginClassLoader.java | 20 ++-- .../cn/wzpmc}/plugins/IPluginManager.java | 17 +-- .../java/cn/wzpmc}/plugins/JavaPlugin.java | 21 ++-- .../IAuthorizationConfiguration.java | 7 +- .../plugins/configuration/IConfiguration.java | 9 +- .../configuration/IFallbackConfiguration.java | 7 +- .../cn/wzpmc}/plugins/event/EventHandler.java | 3 +- .../java/cn/wzpmc}/user/CommandSender.java | 62 ++++++---- .../src/main/java/cn/wzpmc}/user/Friend.java | 16 +-- .../src/main/java/cn/wzpmc}/user/IBot.java | 109 ++++++++++------- .../src/main/java/cn/wzpmc}/user/IUser.java | 15 ++- .../java/cn/wzpmc}/user/MessageSender.java | 8 +- .../src/main/java/cn/wzpmc}/user/Sex.java | 6 +- .../wzpmc}/user/group/GroupCommandSender.java | 67 +++++------ .../java/cn/wzpmc}/user/group/GroupUser.java | 15 ++- .../user/group/GroupUserAnonymousInfo.java | 6 +- .../cn/wzpmc}/user/group/GroupUserRole.java | 6 +- .../wzpmc}/user/permission/Permissions.java | 12 +- .../java/cn/wzpmc}/utils/CqCodeUtils.java | 64 +++++----- .../cn/wzpmc}/utils/IncreasbleHashMap.java | 10 +- .../java/cn/wzpmc}/utils/IncreasbleMap.java | 34 +++--- settings.gradle.kts | 3 +- src/main/java/cn/wzpmc/Main.java | 32 +++-- .../wzpmc/builtin/commands/DeOpCommand.java | 26 ++-- .../wzpmc/builtin/commands/HelpCommand.java | 27 +++-- .../cn/wzpmc/builtin/commands/OpCommand.java | 75 ++++++------ .../wzpmc/builtin/commands/StopCommand.java | 12 +- .../builtin/event/CommandEventHandler.java | 24 ++-- .../AuthorizationConfiguration.java | 7 +- .../cn/wzpmc/configuration/Configuration.java | 8 +- .../configuration/FallbackConfiguration.java | 7 +- .../java/cn/wzpmc/console/MyBotConsole.java | 8 +- .../console/logger/PluginMessageFactory.java | 11 +- .../entities/api/ApiResponseRequired.java | 9 +- .../entities/event/EventHandlerMethod.java | 3 + .../cn/wzpmc/entities/user/bot/MyBot.java | 63 +++++----- .../wzpmc/network/HandshakePacketHandler.java | 2 + .../java/cn/wzpmc/network/PacketHandler.java | 39 +++--- .../network/WebSocketChannelInitializer.java | 2 + .../network/WebSocketConnectionHandler.java | 27 +++-- .../java/cn/wzpmc/plugins/CommandManager.java | 77 ++++++------ .../cn/wzpmc/plugins/PluginClassLoader.java | 11 +- .../java/cn/wzpmc/plugins/PluginManager.java | 10 +- .../java/cn/wzpmc/plugins/api/MainApi.java | 8 +- src/main/java/cn/wzpmc/utils/JsonUtils.java | 33 +++--- .../java/cn/wzpmc/utils/ReflectionUtils.java | 30 ++--- .../cn/wzpmc/utils/TemplateFileUtils.java | 33 +++--- src/main/java/cn/wzpmc/utils/YamlUtils.java | 21 ++-- .../wzpmc/utils/json/action/ActionReader.java | 11 +- .../wzpmc/utils/json/action/ActionWriter.java | 2 +- .../wzpmc/utils/json/event/EventReader.java | 5 +- .../utils/json/event/MessageEventReader.java | 5 +- .../utils/json/event/MetaEventReader.java | 5 +- .../utils/json/event/NoticeEventReader.java | 5 +- .../json/event/NotifyNoticeEventReader.java | 5 +- .../utils/json/event/RequestEventReader.java | 5 +- .../wzpmc/utils/json/honor/HonorWriter.java | 2 +- .../utils/json/message/JsonMessageReader.java | 9 +- .../utils/json/message/JsonMessageWriter.java | 6 +- .../json/message/StringMessageReader.java | 6 +- .../utils/json/user/FriendUserReader.java | 6 +- .../utils/json/user/GroupUserReader.java | 6 +- .../cn/wzpmc/utils/json/user/IBotReader.java | 6 +- .../cn/wzpmc/utils/json/user/IUserReader.java | 6 +- src/test/java/DemoEventHandler.java | 42 ------- src/test/java/TestCqUtils.java | 29 ----- src/test/java/TestEventHandle.java | 32 ----- src/test/java/TestEventHandler.java | 14 --- 211 files changed, 1996 insertions(+), 1269 deletions(-) create mode 100644 .idea/modules/mybot-api/MyBot.mybot-api.main.iml create mode 100644 mybot-api/build.gradle.kts rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/Action.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/ActionResponse.java (92%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/Actions.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/IMainApi.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/CleanCacheAction.java (75%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/can/CanSendImageAction.java (65%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/can/CanSendRecordAction.java (65%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/delete/DeleteMessageAction.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetCookiesAction.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetCredentialsAction.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetCsrfTokenAction.java (62%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetForwardMessageAction.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetFriendListAction.java (65%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetGroupHonorInfoAction.java (76%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetGroupInfoAction.java (81%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetGroupListAction.java (64%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetGroupMemberInfoAction.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetGroupMemberListAction.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetImageAction.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetLoginInfoAction.java (71%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetMessageAction.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetRecordAction.java (75%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetStatusAction.java (63%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetStrangerInfoAction.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/get/GetVersionInfoAction.java (63%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/send/SendGroupMessageAction.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/send/SendLikeAction.java (78%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/send/SendMessageActionResponseData.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/send/SendPrivateMessageAction.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetFriendAddRequestAction.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupAddRequestAction.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupAdminAction.java (81%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupAnonymousAction.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupAnonymousBanAction.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupBanAction.java (81%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupCardAction.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupKickAction.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupLeaveAction.java (81%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupNameAction.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupSpecialTitleAction.java (78%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetGroupWholeBanAction.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/api/actions/message/set/SetRestartAction.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/commands/BaseCommand.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/commands/BrigadierCommand.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/commands/RawCommand.java (72%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/commands/arguments/MessagePartArgument.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/commands/arguments/UserIdArguments.java (81%) rename {src/main/java/cn/wzpmc/console => mybot-api/src/main/java/cn/wzpmc}/commands/exceptions/CqCodeException.java (94%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/BotStatus.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/CookiesInformation.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/CredentialsInformation.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/CsrfTokenInformation.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/FilePathInformation.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/FriendInformation.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/GroupHonorUser.java (92%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/GroupInformation.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/GroupMemberInformation.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/HonorInformation.java (95%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/HonorTalkative.java (92%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/HonorType.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/MessageInformation.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/Ops.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/VersionInformation.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/entities/YesNo.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/Event.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/EventPostType.java (70%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/MessageEvent.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/MessageType.java (66%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/group/GroupMessageEvent.java (76%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/group/GroupMessageSubType.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/priv/PrivateMessageEvent.java (53%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/message/priv/PrivateMessageSubType.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/meta/HeartBeatEvent.java (76%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/meta/MetaEvent.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/meta/MetaEventType.java (64%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/meta/lifecycle/LifecycleEvent.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/meta/lifecycle/LifecycleEventSubType.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/FriendAddEvent.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/GroupBanEvent.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/NoticeEvent.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/NoticeType.java (70%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/admin/GroupAdminChangeEvent.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/admin/GroupAdminChangeSubType.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/file/GroupFile.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/file/GroupFileUploadedEvent.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/LuckyKingNotifyEvent.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/NotifyEvent.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/NotifySubType.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/PokeNotifyEvent.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/honor/HonorNotifyEvent.java (81%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/notify/honor/HonorType.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/recall/GroupMessageRecallEvent.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/recall/MessageRecallEvent.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/user/GroupUserModifyEvent.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/user/decrease/GroupUserDecreaseEvent.java (72%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/user/decrease/GroupUserDecreaseSubType.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/user/increase/GroupUserIncreaseEvent.java (72%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/notice/user/increase/GroupUserIncreaseSubType.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/request/FriendAddRequestEvent.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/request/RequestEvent.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/request/RequestEventType.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/request/group/GroupJoinRequestEvent.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/events/request/group/GroupJoinRequestEventSubType.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/MessageComponent.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/StringMessage.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/JsonMessage.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/JsonMessagePart.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Anonymous.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/At.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/CustomJSONMessage.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Dice.java (69%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Face.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Forward.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Image.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Location.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/MarkdownMessage.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/PartType.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/RPS.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Record.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Reply.java (85%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Shake.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Share.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/Video.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/XMLMessage.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/contact/Contact.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/contact/ContactType.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/music/Music.java (80%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/music/MusicAppShare.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/music/MusicCustomShare.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/music/MusicType.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/node/CustomNode.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/node/Node.java (67%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/node/SingleNode.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/poke/Poke.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/message/json/parts/poke/PokeType.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/BasePlugin.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/ICommandManager.java (77%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/IPluginClassLoader.java (92%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/IPluginManager.java (70%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/JavaPlugin.java (84%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/configuration/IAuthorizationConfiguration.java (89%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/configuration/IConfiguration.java (93%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/configuration/IFallbackConfiguration.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/plugins/event/EventHandler.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/CommandSender.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/Friend.java (74%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/IBot.java (83%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/IUser.java (86%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/MessageSender.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/Sex.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/group/GroupCommandSender.java (78%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/group/GroupUser.java (88%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/group/GroupUserAnonymousInfo.java (90%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/group/GroupUserRole.java (87%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/user/permission/Permissions.java (79%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/utils/CqCodeUtils.java (82%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/utils/IncreasbleHashMap.java (91%) rename {src/main/java/cn/wzpmc/api => mybot-api/src/main/java/cn/wzpmc}/utils/IncreasbleMap.java (90%) delete mode 100644 src/test/java/DemoEventHandler.java delete mode 100644 src/test/java/TestCqUtils.java delete mode 100644 src/test/java/TestEventHandle.java delete mode 100644 src/test/java/TestEventHandler.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index ef4060e..8fb6b55 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -8,6 +8,7 @@ + diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2a65317..7e0a09a 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -9,6 +9,7 @@ diff --git a/.idea/modules.xml b/.idea/modules.xml index f55fa3e..9260d95 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/.idea/modules/mybot-api/MyBot.mybot-api.main.iml b/.idea/modules/mybot-api/MyBot.mybot-api.main.iml new file mode 100644 index 0000000..4acdb19 --- /dev/null +++ b/.idea/modules/mybot-api/MyBot.mybot-api.main.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 601fce8..93c9844 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,39 +2,58 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer val projectName = rootProject.name -val groupName by extra("cn.wzpmc") -val projectArtifactId by extra("my-bot") -val projectVersion by extra("1.0.1") +val groupName: String by extra +val projectArtifactId: String by extra +val projectVersion: String by extra plugins { id("java") - id("maven-publish") id("com.github.johnrengelman.shadow") version "8.1.1" } +allprojects { + apply(plugin = "java") + val groupName by extra("cn.wzpmc") + val projectArtifactId by extra("my-bot") + val projectVersion by extra("1.0.1") + repositories { + mavenCentral() + maven("https://libraries.minecraft.net") + } + dependencies { + // https://mvnrepository.com/artifact/org.projectlombok/lombok + compileOnly("org.projectlombok:lombok:1.18.34") + annotationProcessor("org.projectlombok:lombok:1.18.34") + // https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 + implementation("com.alibaba.fastjson2:fastjson2:2.0.52") + implementation("com.mojang:brigadier:1.0.18") + // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api + implementation("org.apache.logging.log4j:log4j-api:2.23.1") + testImplementation(platform("org.junit:junit-bom:5.10.0")) + testImplementation("org.junit.jupiter:junit-jupiter") + } + tasks.compileJava { + options.encoding = "UTF-8" + } + tasks.javadoc { + options.encoding = "UTF-8" + } +} group = groupName version = projectVersion -repositories { - mavenCentral() - maven("https://libraries.minecraft.net") -} dependencies { + implementation(project(":mybot-api")) implementation("net.minecrell:terminalconsoleappender:1.3.0") { exclude(group = "org.apache.logging.log4j", module = "log4j-core") exclude(group = "org.apache.logging.log4j", module = "log4j-api") } - implementation("com.mojang:brigadier:1.0.18") // https://mvnrepository.com/artifact/io.netty/netty-all implementation("io.netty:netty-all:4.1.112.Final") // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core implementation("org.apache.logging.log4j:log4j-core:2.23.1") - // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api - implementation("org.apache.logging.log4j:log4j-api:2.23.1") // https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-jul implementation("org.apache.logging.log4j:log4j-jul:2.23.1") - // https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 - implementation("com.alibaba.fastjson2:fastjson2:2.0.52") // https://mvnrepository.com/artifact/org.yaml/snakeyaml implementation("org.yaml:snakeyaml:2.2") // https://mvnrepository.com/artifact/org.jline/jline @@ -46,22 +65,6 @@ dependencies { implementation("org.jline:jline-terminal-jansi:3.26.3") // https://mvnrepository.com/artifact/org.fusesource.jansi/jansi implementation("org.fusesource.jansi:jansi:2.4.1") - /*// https://mvnrepository.com/artifact/org.jline/jline-terminal-jna - implementation("org.jline:jline-terminal-jna:3.26.3") - // https://mvnrepository.com/artifact/net.java.dev.jna/jna - implementation("net.java.dev.jna:jna:5.14.0")*/ - // https://mvnrepository.com/artifact/org.projectlombok/lombok - compileOnly("org.projectlombok:lombok:1.18.34") - annotationProcessor("org.projectlombok:lombok:1.18.34") - testImplementation(platform("org.junit:junit-bom:5.10.0")) - testImplementation("org.junit.jupiter:junit-jupiter") -} - -tasks.compileJava { - options.encoding = "UTF-8" -} -tasks.javadoc { - options.encoding = "UTF-8" } tasks.register("javadocJar") { archiveClassifier.set("javadoc") @@ -86,57 +89,6 @@ tasks.withType { tasks.named("build") { dependsOn(tasks.named("shadowJar")) } -publishing { - publications { - create("mavenJava") { - from(components["java"]) - - groupId = groupName - artifactId = projectArtifactId - version = projectVersion - artifact(tasks.named("javadocJar")) - artifact(tasks.named("sourcesJar")) - pom { - name.set(projectName) - description.set("A Java-based OneBot11-compatible robot framework") - - licenses { - license { - name.set("The MIT License") - url.set("https://opensource.org/licenses/MIT") - } - } - - developers { - developer { - id.set("wzp") - name.set("wzp") - email.set("minecraftwzpmc@gmail.com") - } - } - - scm { - connection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git") - developerConnection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git") - url.set("https://wzpmc.cn:3000/wzp/MyBot") - } - } - } - } - - repositories { - maven { - val releasesRepoUrl = uri("https://wzpmc.cn:90/repository/maven-releases") - val snapshotsRepoUrl = uri("https://wzpmc.cn:90/repository/maven-snapshots") - url = if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl - - credentials { - username = project.findProperty("repo.user") as String? ?: "" - password = project.findProperty("repo.password") as String? ?: "" - } - } - } -} tasks.test { useJUnitPlatform() } \ No newline at end of file diff --git a/mybot-api/build.gradle.kts b/mybot-api/build.gradle.kts new file mode 100644 index 0000000..2f872ff --- /dev/null +++ b/mybot-api/build.gradle.kts @@ -0,0 +1,79 @@ +val projectName = rootProject.name +val groupName: String by extra +val projectArtifactId = "mybot-api" +val projectVersion: String by extra +plugins { + id("java") + id("maven-publish") +} + +group = "cn.wzpmc" +version = projectVersion + +repositories { + mavenCentral() +} + +dependencies {} +tasks.register("javadocJar") { + archiveClassifier.set("javadoc") + from(tasks.named("javadoc")) +} +tasks.register("sourcesJar") { + archiveClassifier.set("sources") + from(sourceSets.main.get().allSource) +} +publishing { + publications { + create("mavenJava") { + from(components["java"]) + + groupId = groupName + artifactId = projectArtifactId + version = projectVersion + artifact(tasks.named("javadocJar")) + artifact(tasks.named("sourcesJar")) + pom { + name.set(projectName) + description.set("A Java-based OneBot11-compatible robot framework") + + licenses { + license { + name.set("The MIT License") + url.set("https://opensource.org/licenses/MIT") + } + } + + developers { + developer { + id.set("wzp") + name.set("wzp") + email.set("minecraftwzpmc@gmail.com") + } + } + + scm { + connection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git") + developerConnection.set("scm:git:https://wzpmc.cn:3000/wzp/MyBot.git") + url.set("https://wzpmc.cn:3000/wzp/MyBot") + } + } + } + } + + repositories { + maven { + val releasesRepoUrl = uri("https://wzpmc.cn:90/repository/maven-releases") + val snapshotsRepoUrl = uri("https://wzpmc.cn:90/repository/maven-snapshots") + url = if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl + + credentials { + username = project.findProperty("repo.user") as String? ?: "" + password = project.findProperty("repo.password") as String? ?: "" + } + } + } +} +tasks.test { + useJUnitPlatform() +} \ No newline at end of file diff --git a/src/main/java/cn/wzpmc/api/api/Action.java b/mybot-api/src/main/java/cn/wzpmc/api/Action.java similarity index 93% rename from src/main/java/cn/wzpmc/api/api/Action.java rename to mybot-api/src/main/java/cn/wzpmc/api/Action.java index 008f929..96b9e89 100644 --- a/src/main/java/cn/wzpmc/api/api/Action.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/Action.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.api; +package cn.wzpmc.api; import lombok.*; @@ -6,9 +6,10 @@ import java.util.UUID; /** * 抽象请求体 + * * @author wzp - * @since 2024/8/16 21:36 * @version 0.0.5-dev + * @since 2024/8/16 21:36 */ @Getter @ToString @@ -16,19 +17,22 @@ import java.util.UUID; @NoArgsConstructor(access = AccessLevel.PROTECTED) @Setter(AccessLevel.PROTECTED) public class Action { + /** + * 请求回调值(默认随机生成,不建议自己修改) + * + * @since 2024/8/23 21:29 v0.0.5-dev + */ + private final UUID echo = UUID.randomUUID(); /** * 请求操作类型 + * * @since 2024/8/23 21:29 v0.0.5-dev */ private Actions action; /** * 请求参数 + * * @since 2024/8/23 21:29 v0.0.5-dev */ private REQUEST params; - /** - * 请求回调值(默认随机生成,不建议自己修改) - * @since 2024/8/23 21:29 v0.0.5-dev - */ - private final UUID echo = UUID.randomUUID(); } diff --git a/src/main/java/cn/wzpmc/api/api/ActionResponse.java b/mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java similarity index 92% rename from src/main/java/cn/wzpmc/api/api/ActionResponse.java rename to mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java index 8ff65ce..3e610f7 100644 --- a/src/main/java/cn/wzpmc/api/api/ActionResponse.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/ActionResponse.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.api; +package cn.wzpmc.api; import lombok.Data; @@ -6,6 +6,7 @@ import java.util.UUID; /** * 请求操作返回 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/16 17:43 @@ -14,21 +15,25 @@ import java.util.UUID; public class ActionResponse { /** * 请求返回消息 + * * @since 2024/8/23 21:30 v0.0.5-dev */ private final String status; /** * 请求返回码 + * * @since 2024/8/23 21:30 v0.0.5-dev */ private final short retcode; /** * 请求返回数据 + * * @since 2024/8/23 21:31 v0.0.5-dev */ private final RESPONSE data; /** * 请求返回回调 + * * @since 2024/8/23 21:31 v0.0.5-dev */ private final UUID echo; diff --git a/src/main/java/cn/wzpmc/api/api/Actions.java b/mybot-api/src/main/java/cn/wzpmc/api/Actions.java similarity index 91% rename from src/main/java/cn/wzpmc/api/api/Actions.java rename to mybot-api/src/main/java/cn/wzpmc/api/Actions.java index 83e781c..09f82b9 100644 --- a/src/main/java/cn/wzpmc/api/api/Actions.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/Actions.java @@ -1,212 +1,253 @@ -package cn.wzpmc.api.api; +package cn.wzpmc.api; -import cn.wzpmc.api.api.actions.message.send.SendMessageActionResponseData; -import cn.wzpmc.api.entities.*; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.IUser; +import cn.wzpmc.api.actions.message.send.SendMessageActionResponseData; +import cn.wzpmc.entities.*; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.IUser; /** * 操作类型 + * * @author wzp - * @since 2024/8/16 22:24 * @version 0.0.5-dev + * @since 2024/8/16 22:24 */ public enum Actions { /** * 发送私聊消息 + * * @since 2024/8/23 21:07 v0.0.5-dev */ SEND_PRIVATE_MSG(SendMessageActionResponseData.class), /** * 发送群消息 + * * @since 2024/8/23 21:07 v0.0.5-dev */ SEND_GROUP_MSG(SendMessageActionResponseData.class), /** * 撤回消息 + * * @since 2024/8/23 21:07 v0.0.5-dev */ DELETE_MSG, /** * 获取消息 + * * @since 2024/8/23 21:07 v0.0.5-dev */ GET_MSG(MessageInformation.class), /** * 获取合并转发消息 + * * @since 2024/8/23 21:08 v0.0.5-dev */ GET_FORWARD_MSG(MessageInformation.class), /** * 发送好友赞 + * * @since 2024/8/23 21:08 v0.0.5-dev */ SEND_LIKE, /** * 群组踢人 + * * @since 2024/8/23 21:08 v0.0.5-dev */ SET_GROUP_KICK, /** * 群组单人禁言 + * * @since 2024/8/23 21:08 v0.0.5-dev */ SET_GROUP_BAN, /** * 群组匿名用户禁言 + * * @since 2024/8/23 21:08 v0.0.5-dev */ SET_GROUP_ANONYMOUS_BAN, /** * 群组全员禁言 + * * @since 2024/8/23 21:09 v0.0.5-dev */ SET_GROUP_WHOLE_BAN, /** * 群组设置管理员 + * * @since 2024/8/23 21:09 v0.0.5-dev */ SET_GROUP_ADMIN, /** * 群组匿名 + * * @since 2024/8/23 21:09 v0.0.5-dev */ SET_GROUP_ANONYMOUS, /** * 设置群名片(群备注) + * * @since 2024/8/23 21:09 v0.0.5-dev */ SET_GROUP_CARD, /** * 设置群名 + * * @since 2024/8/24 19:04 v0.0.6-dev */ SET_GROUP_NAME, /** * 退出群组 + * * @since 2024/8/24 20:01 v0.0.6-dev */ SET_GROUP_LEAVE, /** * 设置群组专属头衔 + * * @since 2024/8/24 20:01 v0.0.6-dev */ SET_GROUP_SPECIAL_TITLE, /** * 处理加好友请求 + * * @since 2024/8/24 20:01 v0.0.6-dev */ SET_FRIEND_ADD_REQUEST, /** * 处理加群请求/邀请 + * * @since 2024/8/24 20:02 v0.0.6-dev */ SET_GROUP_ADD_REQUEST, /** * 获取登录号信息 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_LOGIN_INFO(IBot.class), /** * 获取陌生人信息 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_STRANGER_INFO(IUser.class), /** * 获取好友列表 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_FRIEND_LIST(MessageInformation.class, true), /** * 获取群信息 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_GROUP_INFO(GroupInformation.class), /** * 获取群列表 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_GROUP_LIST(GroupInformation.class, true), /** * 获取群成员信息 + * * @since 2024/8/24 20:02 v0.0.6-dev */ GET_GROUP_MEMBER_INFO(GroupMemberInformation.class), /** * 获取群成员列表 + * * @since 2024/8/24 20:03 v0.0.6-dev */ GET_GROUP_MEMBER_LIST(GroupMemberInformation.class, true), /** * 获取群荣誉信息 + * * @since 2024/8/24 20:03 v0.0.6-dev */ GET_GROUP_HONOR_INFO(HonorInformation.class), /** * 获取 Cookies + * * @since 2024/8/24 20:03 v0.0.6-dev */ GET_COOKIES(CookiesInformation.class), /** * 获取 CSRF Token + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_CSRF_TOKEN(CsrfTokenInformation.class), /** * 获取 QQ 相关接口凭证 + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_CREDENTIALS(CredentialsInformation.class), /** * 获取语音 + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_RECORD(FilePathInformation.class), /** * 获取图片 + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_IMAGE(FilePathInformation.class), /** * 检查是否可以发送图片 + * * @since 2024/8/24 20:04 v0.0.6-dev */ CAN_SEND_IMAGE(YesNo.class), /** * 检查是否可以发送语音 + * * @since 2024/8/24 20:04 v0.0.6-dev */ CAN_SEND_RECORD(YesNo.class), /** * 获取运行状态 + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_STATUS(BotStatus.class), /** * 获取版本信息 + * * @since 2024/8/24 20:04 v0.0.6-dev */ GET_VERSION_INFO(VersionInformation.class), /** * 重启 OneBot 实现 + * * @since 2024/8/24 20:05 v0.0.6-dev */ SET_RESTART, /** * 清理缓存 + * * @since 2024/8/24 20:05 v0.0.6-dev */ CLEAN_CACHE; public final Class responseClass; public final boolean array; + Actions(Class responseClass, boolean array) { this.responseClass = responseClass; this.array = array; } + Actions(Class responseClass) { this(responseClass, false); } - Actions(){ + + Actions() { this(Void.class); } } diff --git a/src/main/java/cn/wzpmc/api/api/IMainApi.java b/mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java similarity index 82% rename from src/main/java/cn/wzpmc/api/api/IMainApi.java rename to mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java index 269b8bb..b209256 100644 --- a/src/main/java/cn/wzpmc/api/api/IMainApi.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/IMainApi.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.api; +package cn.wzpmc.api; /** * 主Api接口 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/16 17:31 @@ -9,13 +10,14 @@ package cn.wzpmc.api.api; public interface IMainApi { /** * 进行请求操作 + * + * @param packet 请求包 + * @param 请求类型 + * @param 返回类型 + * @return 请求返回包 + * @throws InterruptedException 请求过程中出现Ctrl+C时抛出 * @author wzp * @since 2024/8/23 21:32 v0.0.5-dev - * @param packet 请求包 - * @return 请求返回包 - * @param 请求类型 - * @param 返回类型 - * @throws InterruptedException 请求过程中出现Ctrl+C时抛出 */ ActionResponse doApiCall(Action packet) throws InterruptedException; } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java similarity index 75% rename from src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java index 0ec2406..9e227c9 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/CleanCacheAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/CleanCacheAction.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.api.actions.message; +package cn.wzpmc.api.actions.message; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; /** * 清理缓存 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:46 @@ -12,6 +13,7 @@ import cn.wzpmc.api.api.Actions; public class CleanCacheAction extends Action { /** * 清理缓存 + * * @author wzp * @since 2024/8/24 23:59 v0.0.6-dev */ diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java similarity index 65% rename from src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java index 10c8a35..a93ba27 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendImageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendImageAction.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.api.actions.message.can; +package cn.wzpmc.api.actions.message.can; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.YesNo; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.YesNo; /** * 检查是否可以发送图片 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:45 @@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.YesNo; public class CanSendImageAction extends Action { /** * 检查是否可以发送图片 + * * @author wzp * @since 2024/8/24 23:51 v0.0.6-dev */ - public CanSendImageAction(){ + public CanSendImageAction() { super.setAction(Actions.CAN_SEND_IMAGE); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java similarity index 65% rename from src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java index c30184a..d27fe91 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/can/CanSendRecordAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/can/CanSendRecordAction.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.api.actions.message.can; +package cn.wzpmc.api.actions.message.can; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.YesNo; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.YesNo; /** * 检查是否可以发送语音 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:45 @@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.YesNo; public class CanSendRecordAction extends Action { /** * 检查是否可以发送语音 + * * @author wzp * @since 2024/8/24 23:51 v0.0.6-dev */ - public CanSendRecordAction(){ + public CanSendRecordAction() { super.setAction(Actions.CAN_SEND_RECORD); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java similarity index 80% rename from src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java index 2e627cc..59ca959 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/delete/DeleteMessageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/delete/DeleteMessageAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.delete; +package cn.wzpmc.api.actions.message.delete; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 撤回消息 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 23:02 @@ -15,19 +16,22 @@ import lombok.Data; public class DeleteMessageAction extends Action { /** * 撤回消息 + * + * @param messageId 消息ID * @author wzp * @since 2024/8/23 21:09 v0.0.5-dev - * @param messageId 消息ID */ - public DeleteMessageAction(Integer messageId){ + public DeleteMessageAction(Integer messageId) { super.setAction(Actions.DELETE_MSG); super.setParams(new Params(messageId)); } + @Data @AllArgsConstructor public static class Params { /** * 消息ID + * * @since 2024/8/17 23:03 v0.0.5-dev */ @JSONField(name = "message_id") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java similarity index 83% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java index c994aea..adf8500 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetCookiesAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetCookiesAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.CookiesInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.CookiesInformation; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取 Cookies + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:43 @@ -15,9 +16,10 @@ import lombok.Data; public class GetCookiesAction extends Action { /** * 获取 Cookies + * + * @param domain 需要获取 cookies 的域名 * @author wzp * @since 2024/8/24 23:51 v0.0.6-dev - * @param domain 需要获取 cookies 的域名 */ public GetCookiesAction(String domain) { super.setAction(Actions.GET_COOKIES); @@ -26,17 +28,20 @@ public class GetCookiesAction extends Action { /** * 获取 QQ 相关接口凭证 + * + * @param domain 需要获取 cookies 的域名 * @author wzp * @since 2024/8/24 23:51 v0.0.6-dev - * @param domain 需要获取 cookies 的域名 */ public GetCredentialsAction(String domain) { super.setAction(Actions.GET_COOKIES); @@ -26,17 +28,20 @@ public class GetCredentialsAction extends Action { /** * 获取 CSRF Token + * * @author wzp * @since 2024/8/24 23:52 v0.0.6-dev */ - public GetCsrfTokenAction(){ + public GetCsrfTokenAction() { super.setAction(Actions.GET_CSRF_TOKEN); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java similarity index 77% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java index 2a5de92..a96e121 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetForwardMessageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetForwardMessageAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.MessageInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.MessageInformation; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取合并转发消息 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 19:46 @@ -15,19 +16,22 @@ import lombok.Data; public class GetForwardMessageAction extends Action { /** * 获取合并转发消息 + * + * @param id 合并转发ID * @author wzp * @since 2024/8/23 21:10 v0.0.5-dev - * @param id 合并转发ID */ - public GetForwardMessageAction(String id){ + public GetForwardMessageAction(String id) { super.setAction(Actions.GET_FORWARD_MSG); super.setParams(new GetForwardMessageAction.Params(id)); } + @Data @AllArgsConstructor public static final class Params { /** * 合并转发ID + * * @since 2024/8/23 19:47 v0.0.5-dev */ private String id; diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java similarity index 65% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java index ba12a10..076198a 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetFriendListAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetFriendListAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.MessageInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.MessageInformation; import java.util.List; /** * 获取好友列表 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:41 @@ -15,10 +16,11 @@ import java.util.List; public class GetFriendListAction extends Action> { /** * 获取好友列表 + * * @author wzp * @since 2024/8/24 23:52 v0.0.6-dev */ - public GetFriendListAction(){ + public GetFriendListAction() { super.setAction(Actions.GET_FRIEND_LIST); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java similarity index 76% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java index 97e0ae4..0268153 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupHonorInfoAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupHonorInfoAction.java @@ -1,15 +1,16 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.HonorInformation; -import cn.wzpmc.api.entities.HonorType; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.HonorInformation; +import cn.wzpmc.entities.HonorType; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取群荣誉信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:43 @@ -17,10 +18,11 @@ import lombok.Data; public class GetGroupHonorInfoAction extends Action { /** * 获取群荣誉信息 + * + * @param groupId 群号 + * @param type 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据 * @author wzp * @since 2024/8/24 23:52 v0.0.6-dev - * @param groupId 群号 - * @param type 要获取的群荣誉类型,可传入 talkative performer legend strong_newbie emotion 以分别获取单个类型的群荣誉数据,或传入 all 获取所有数据 */ public GetGroupHonorInfoAction(Long groupId, HonorType type) { this.setAction(Actions.GET_GROUP_HONOR_INFO); @@ -29,24 +31,28 @@ public class GetGroupHonorInfoAction extends Action { /** * 获取群信息 - * @author wzp - * @since 2024/8/24 23:53 v0.0.6-dev + * * @param groupId 群号 * @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快) + * @author wzp + * @since 2024/8/24 23:53 v0.0.6-dev */ - public GetGroupInfoAction(Long groupId, Boolean noCache){ + public GetGroupInfoAction(Long groupId, Boolean noCache) { super.setAction(Actions.GET_GROUP_INFO); super.setParams(new Params(groupId, noCache)); } /** * 获取群信息 + * + * @param groupId 群号 * @author wzp * @since 2024/8/24 23:53 v0.0.6-dev - * @param groupId 群号 */ - public GetGroupInfoAction(Long groupId){ + public GetGroupInfoAction(Long groupId) { this(groupId, false); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 22:58 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 是否不使用缓存(使用缓存可能更新不及时,但响应更快) + * * @since 2024/8/24 22:58 v0.0.6-dev */ @JSONField(name = "no_cache", defaultValue = "false") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java similarity index 64% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java index 561acc7..bfea338 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupListAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupListAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.GroupInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.GroupInformation; import java.util.List; /** * 获取群列表 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:42 @@ -15,10 +16,11 @@ import java.util.List; public class GetGroupListAction extends Action> { /** * 获取群列表 + * * @author wzp * @since 2024/8/24 23:54 v0.0.6-dev */ - public GetGroupListAction(){ + public GetGroupListAction() { super.setAction(Actions.GET_GROUP_LIST); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java similarity index 84% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java index c453923..65835f2 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberInfoAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberInfoAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.GroupMemberInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.GroupMemberInformation; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取群成员信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:42 @@ -16,44 +17,50 @@ import lombok.Data; public class GetGroupMemberInfoAction extends Action { /** * 获取群成员信息 + * + * @param groupId 群号 + * @param userId QQ 号 + * @param noCache 是否不使用缓存 * @author wzp * @since 2024/8/24 23:54 v0.0.6-dev - * @param groupId 群号 - * @param userId QQ 号 - * @param noCache 是否不使用缓存 */ - public GetGroupMemberInfoAction(Long groupId, Long userId, Boolean noCache){ + public GetGroupMemberInfoAction(Long groupId, Long userId, Boolean noCache) { super.setAction(Actions.GET_GROUP_MEMBER_INFO); super.setParams(new Params(groupId, userId, noCache)); } /** * 获取群成员信息 + * + * @param groupId 群号 + * @param userId QQ 号 * @author wzp * @since 2024/8/24 23:54 v0.0.6-dev - * @param groupId 群号 - * @param userId QQ 号 */ public GetGroupMemberInfoAction(Long groupId, Long userId) { this(groupId, userId, false); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 23:02 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * QQ 号 + * * @since 2024/8/24 23:02 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 是否不使用缓存 + * * @since 2024/8/24 23:02 v0.0.6-dev */ @JSONField(name = "no_cache", defaultValue = "false") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java similarity index 83% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java index 3f5a1d1..88e0b19 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetGroupMemberListAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetGroupMemberListAction.java @@ -1,8 +1,8 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.GroupMemberInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.GroupMemberInformation; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; @@ -11,6 +11,7 @@ import java.util.List; /** * 获取群成员列表 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:42 @@ -18,19 +19,22 @@ import java.util.List; public class GetGroupMemberListAction extends Action> { /** * 获取群成员列表 + * + * @param groupId 群号 * @author wzp * @since 2024/8/24 23:54 v0.0.6-dev - * @param groupId 群号 */ public GetGroupMemberListAction(Long groupId) { super.setAction(Actions.GET_GROUP_MEMBER_LIST); super.setParams(new Params(groupId)); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 23:08 v0.0.6-dev */ @JSONField(name = "group_id") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java similarity index 83% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java index 6273806..ab6ec7c 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetImageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetImageAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.FilePathInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.FilePathInformation; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取图片 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:44 @@ -15,19 +16,22 @@ import lombok.Data; public class GetImageAction extends Action { /** * 获取图片 + * + * @param file 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev - * @param file 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg */ public GetImageAction(String file) { super.setAction(Actions.GET_IMAGE); super.setParams(new Params(file)); } + @Data @AllArgsConstructor public static final class Params { /** * 收到的图片文件名(消息段的 file 参数),如 6B4DE3DFD1BD271E3297859D41C530F5.jpg + * * @since 2024/8/24 23:41 v0.0.6-dev */ private String file; diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java similarity index 71% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java index b18650f..8565ba7 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetLoginInfoAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetLoginInfoAction.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.user.IBot; /** * 获取登录号信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:18 @@ -13,6 +14,7 @@ import cn.wzpmc.api.user.IBot; public class GetLoginInfoAction extends Action { /** * 获取登录号信息 + * * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev */ diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java similarity index 77% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java index 9702841..a3f9c9a 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetMessageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetMessageAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.MessageInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.MessageInformation; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取消息 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 23:07 @@ -16,19 +17,22 @@ import lombok.Data; public class GetMessageAction extends Action { /** * 获取消息 + * + * @param messageId 消息 ID * @author wzp * @since 2024/8/23 21:11 v0.0.5-dev - * @param messageId 消息 ID */ - public GetMessageAction(Integer messageId){ + public GetMessageAction(Integer messageId) { super.setAction(Actions.GET_MSG); super.setParams(new Params(messageId)); } + @Data @AllArgsConstructor public static class Params { /** * 消息 ID + * * @since 2024/8/23 21:11 v0.0.5-dev */ @JSONField(name = "message_id") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java similarity index 75% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java index bbb0ea2..86d2ad7 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetRecordAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetRecordAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.FilePathInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.FilePathInformation; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取语音 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:44 @@ -16,25 +17,29 @@ import lombok.Data; public class GetRecordAction extends Action { /** * 获取语音 + * + * @param file 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk + * @param outFormat 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev - * @param file 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk - * @param outFormat 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac */ - public GetRecordAction(String file, String outFormat){ + public GetRecordAction(String file, String outFormat) { super.setAction(Actions.GET_RECORD); super.setParams(new Params(file, outFormat)); } + @Data @AllArgsConstructor public static final class Params { /** * 收到的语音文件名(消息段的 file 参数),如 0B38145AA44505000B38145AA4450500.silk + * * @since 2024/8/24 23:35 v0.0.6-dev */ private String file; /** * 要转换到的格式,目前支持 mp3、amr、wma、m4a、spx、ogg、wav、flac + * * @since 2024/8/24 23:35 v0.0.6-dev */ @JSONField(name = "out_format") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java similarity index 63% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java index 1d8dda7..be4676e 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStatusAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStatusAction.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.BotStatus; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.BotStatus; /** * 获取运行状态 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:45 @@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.BotStatus; public class GetStatusAction extends Action { /** * 获取运行状态 + * * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev */ - public GetStatusAction(){ + public GetStatusAction() { super.setAction(Actions.GET_STATUS); } } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java similarity index 80% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java index e66c922..3a613fa 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetStrangerInfoAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetStrangerInfoAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.user.IUser; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.user.IUser; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 获取陌生人信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:41 @@ -16,36 +17,41 @@ import lombok.Data; public class GetStrangerInfoAction extends Action { /** * 获取陌生人信息 + * + * @param userId QQ 号 + * @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快) * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev - * @param userId QQ 号 - * @param noCache 是否不使用缓存(使用缓存可能更新不及时,但响应更快) */ - public GetStrangerInfoAction(Long userId, boolean noCache){ + public GetStrangerInfoAction(Long userId, boolean noCache) { super.setAction(Actions.GET_STRANGER_INFO); super.setParams(new GetStrangerInfoAction.Params(userId, noCache)); } /** * 获取陌生人信息 + * + * @param userId QQ 号 * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev - * @param userId QQ 号 */ - public GetStrangerInfoAction(Long userId){ + public GetStrangerInfoAction(Long userId) { this(userId, false); } + @Data @AllArgsConstructor public static final class Params { /** * QQ 号 + * * @since 2024/8/24 22:52 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 是否不使用缓存(使用缓存可能更新不及时,但响应更快) + * * @since 2024/8/24 22:52 v0.0.6-dev */ @JSONField(name = "no_cache", defaultValue = "false") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java similarity index 63% rename from src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java index 7c97fe8..3ee55b9 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/get/GetVersionInfoAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/get/GetVersionInfoAction.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.api.actions.message.get; +package cn.wzpmc.api.actions.message.get; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.VersionInformation; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.VersionInformation; /** * 获取版本信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:45 @@ -13,10 +14,11 @@ import cn.wzpmc.api.entities.VersionInformation; public class GetVersionInfoAction extends Action { /** * 获取版本信息 + * * @author wzp * @since 2024/8/24 23:55 v0.0.6-dev */ - public GetVersionInfoAction(){ + public GetVersionInfoAction() { super.setAction(Actions.GET_VERSION_INFO); } diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java similarity index 84% rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java index ce9d753..a1795b6 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendGroupMessageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendGroupMessageAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.send; +package cn.wzpmc.api.actions.message.send; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.message.MessageComponent; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.message.MessageComponent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 发送群消息 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 22:52 @@ -16,43 +17,49 @@ import lombok.Data; public class SendGroupMessageAction extends Action { /** * 发送群消息 + * + * @param groupId 群号 + * @param message 要发送的内容 + * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 * @author wzp * @since 2024/8/23 21:11 v0.0.5-dev - * @param groupId 群号 - * @param message 要发送的内容 - * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 */ - public SendGroupMessageAction(Long groupId, MessageComponent message, boolean autoEscape){ + public SendGroupMessageAction(Long groupId, MessageComponent message, boolean autoEscape) { super.setAction(Actions.SEND_GROUP_MSG); super.setParams(new SendGroupMessageAction.Params(groupId, message, autoEscape)); } /** * 发送群消息 - * @author wzp - * @since 2024/8/23 21:11 v0.0.5-dev + * * @param groupId 群号 * @param message 要发送的内容 + * @author wzp + * @since 2024/8/23 21:11 v0.0.5-dev */ - public SendGroupMessageAction(Long groupId, MessageComponent message){ + public SendGroupMessageAction(Long groupId, MessageComponent message) { this(groupId, message, false); } + @Data @AllArgsConstructor public static class Params { /** * 群号 + * * @since 2024/8/17 22:54 v0.0.5-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要发送的内容 + * * @since 2024/8/17 22:54 v0.0.5-dev */ private MessageComponent message; /** * 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 + * * @since 2024/8/17 22:51 v0.0.5-dev */ @JSONField(name = "auto_escape") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java similarity index 78% rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java index a0ed4d4..82dd400 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendLikeAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendLikeAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.send; +package cn.wzpmc.api.actions.message.send; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 发送好友赞 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 19:49 @@ -15,36 +16,41 @@ import lombok.Data; public class SendLikeAction extends Action { /** * 发送好友赞 + * + * @param userId 对方 QQ 号 + * @param times 赞的次数,每个好友每天最多 10 次 * @author wzp * @since 2024/8/23 21:12 v0.0.5-dev - * @param userId 对方 QQ 号 - * @param times 赞的次数,每个好友每天最多 10 次 */ - public SendLikeAction(Long userId, Long times){ + public SendLikeAction(Long userId, Long times) { super.setAction(Actions.SEND_LIKE); super.setParams(new Params(userId, times)); } /** * 发送好友赞 + * + * @param userId 对方 QQ 号 * @author wzp * @since 2024/8/23 21:12 v0.0.5-dev - * @param userId 对方 QQ 号 */ - public SendLikeAction(Long userId){ + public SendLikeAction(Long userId) { this(userId, 1L); } + @Data @AllArgsConstructor public static final class Params { /** * 对方 QQ 号 + * * @since 2024/8/23 21:12 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * 赞的次数,每个好友每天最多 10 次 + * * @since 2024/8/23 21:12 v0.0.5-dev */ @JSONField(defaultValue = "1") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java similarity index 87% rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java index 50dce4c..0949167 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendMessageActionResponseData.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendMessageActionResponseData.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.api.actions.message.send; +package cn.wzpmc.api.actions.message.send; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; /** * 发送私聊消息返回 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 21:55 @@ -13,6 +14,7 @@ import lombok.Data; public class SendMessageActionResponseData { /** * 消息 ID + * * @since 2024/8/17 22:51 v0.0.5-dev */ @JSONField(name = "message_id") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java similarity index 82% rename from src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java index a6dc8fe..5639721 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/send/SendPrivateMessageAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/send/SendPrivateMessageAction.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.api.actions.message.send; +package cn.wzpmc.api.actions.message.send; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.message.MessageComponent; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; +import cn.wzpmc.message.MessageComponent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 发送私聊消息 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 21:54 @@ -16,43 +17,49 @@ import lombok.Data; public class SendPrivateMessageAction extends Action { /** * 发送私聊消息 + * + * @param userId 对方 QQ 号 + * @param message 要发送的内容 + * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 * @author wzp * @since 2024/8/23 21:13 v0.0.5-dev - * @param userId 对方 QQ 号 - * @param message 要发送的内容 - * @param autoEscape 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 */ - public SendPrivateMessageAction(Long userId, MessageComponent message, boolean autoEscape){ + public SendPrivateMessageAction(Long userId, MessageComponent message, boolean autoEscape) { super.setAction(Actions.SEND_PRIVATE_MSG); super.setParams(new Params(userId, message, autoEscape)); } /** * 发送私聊消息 + * + * @param userId 对方 QQ 号 + * @param message 要发送的内容 * @author wzp * @since 2024/8/23 21:14 v0.0.5-dev - * @param userId 对方 QQ 号 - * @param message 要发送的内容 */ - public SendPrivateMessageAction(Long userId, MessageComponent message){ + public SendPrivateMessageAction(Long userId, MessageComponent message) { this(userId, message, false); } + @Data @AllArgsConstructor public static class Params { /** * 对方 QQ 号 + * * @since 2024/8/17 22:51 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * 要发送的内容 + * * @since 2024/8/17 22:51 v0.0.5-dev */ private MessageComponent message; /** * 消息内容是否作为纯文本发送(即不解析 CQ 码),只在 message 字段是字符串时有效 + * * @since 2024/8/17 22:51 v0.0.5-dev */ @JSONField(name = "auto_escape") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java similarity index 80% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java index 2dcb824..7dc7d3b 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetFriendAddRequestAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetFriendAddRequestAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 处理加好友请求 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:08 @@ -15,23 +16,25 @@ import lombok.Data; public class SetFriendAddRequestAction extends Action { /** * 处理加好友请求 + * + * @param flag 加好友请求的 flag(需从上报的数据中获得) + * @param approve 是否同意请求 + * @param remark 添加后的好友备注(仅在同意时有效) * @author wzp * @since 2024/8/24 23:56 v0.0.6-dev - * @param flag 加好友请求的 flag(需从上报的数据中获得) - * @param approve 是否同意请求 - * @param remark 添加后的好友备注(仅在同意时有效) */ - public SetFriendAddRequestAction(String flag, boolean approve, String remark){ + public SetFriendAddRequestAction(String flag, boolean approve, String remark) { super.setAction(Actions.SET_FRIEND_ADD_REQUEST); super.setParams(new Params(flag, approve, remark)); } /** * 处理加好友请求 + * + * @param flag 加好友请求的 flag(需从上报的数据中获得) + * @param approve 是否同意请求 * @author wzp * @since 2024/8/24 23:56 v0.0.6-dev - * @param flag 加好友请求的 flag(需从上报的数据中获得) - * @param approve 是否同意请求 */ public SetFriendAddRequestAction(String flag, boolean approve) { this(flag, approve, ""); @@ -39,10 +42,11 @@ public class SetFriendAddRequestAction extends Action { /** * 处理加群请求/邀请 + * + * @param flag 加群请求的 flag(需从上报的数据中获得) + * @param type 请求类型 + * @param approve 是否同意请求/邀请 + * @param reason 拒绝理由(仅在拒绝时有效) * @author wzp * @since 2024/8/24 23:56 v0.0.6-dev - * @param flag 加群请求的 flag(需从上报的数据中获得) - * @param type 请求类型 - * @param approve 是否同意请求/邀请 - * @param reason 拒绝理由(仅在拒绝时有效) */ public SetGroupAddRequestAction(String flag, GroupJoinRequestEventSubType type, boolean approve, String reason) { super.setAction(Actions.SET_GROUP_ADD_REQUEST); @@ -30,11 +32,12 @@ public class SetGroupAddRequestAction extends Action { /** * 群组设置管理员 + * + * @param groupId 群号 + * @param userId 要设置管理员的 QQ 号 + * @param enable true 为设置,false 为取消 * @author wzp * @since 2024/8/23 21:14 v0.0.5-dev - * @param groupId 群号 - * @param userId 要设置管理员的 QQ 号 - * @param enable true 为设置,false 为取消 */ - public SetGroupAdminAction(Long groupId, Long userId, Boolean enable){ + public SetGroupAdminAction(Long groupId, Long userId, Boolean enable) { super.setAction(Actions.SET_GROUP_ADMIN); super.setParams(new Params(groupId, userId, enable)); } /** * 群组设置管理员 + * + * @param groupId 群号 + * @param userId 要设置管理员的 QQ 号 * @author wzp * @since 2024/8/23 21:14 v0.0.5-dev - * @param groupId 群号 - * @param userId 要设置管理员的 QQ 号 */ public SetGroupAdminAction(Long groupId, Long userId) { this(groupId, userId, true); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/23 21:15 v0.0.5-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要设置管理员的 QQ 号 + * * @since 2024/8/23 21:15 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * true 为设置,false 为取消 + * * @since 2024/8/23 21:15 v0.0.5-dev */ @JSONField(defaultValue = "true") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java similarity index 86% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java index 63e46d4..661d3d1 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupAnonymousAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupAnonymousAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 群组匿名 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 20:55 @@ -15,10 +16,11 @@ import lombok.Data; public class SetGroupAnonymousAction extends Action { /** * 群组匿名 + * + * @param groupId 群号 + * @param enable 是否允许匿名聊天 * @author wzp * @since 2024/8/23 21:16 v0.0.5-dev - * @param groupId 群号 - * @param enable 是否允许匿名聊天 */ public SetGroupAnonymousAction(Long groupId, Boolean enable) { super.setAction(Actions.SET_GROUP_ANONYMOUS); @@ -27,24 +29,28 @@ public class SetGroupAnonymousAction extends Action { /** * 群组匿名用户禁言 + * + * @param groupId 群号 + * @param anonymous 可选,要禁言的匿名用户对象(群消息上报的 anonymous 字段) + * @param flag 可选,要禁言的匿名用户的 flag(需从群消息上报的数据中获得) + * @param duration 禁言时长,单位秒,无法取消匿名用户禁言(默认30 * 60) * @author wzp * @since 2024/8/23 21:17 v0.0.5-dev - * @param groupId 群号 - * @param anonymous 可选,要禁言的匿名用户对象(群消息上报的 anonymous 字段) - * @param flag 可选,要禁言的匿名用户的 flag(需从群消息上报的数据中获得) - * @param duration 禁言时长,单位秒,无法取消匿名用户禁言(默认30 * 60) */ protected SetGroupAnonymousBanAction(Long groupId, Anonymous anonymous, String flag, Long duration) { super.setAction(Actions.SET_GROUP_ANONYMOUS_BAN); @@ -30,11 +32,12 @@ public class SetGroupAnonymousBanAction extends Action { /** * 群组单人禁言 + * + * @param groupId 群号 + * @param userId 要禁言的 QQ 号 + * @param duration 禁言时长,单位秒,0 表示取消禁言 * @author wzp * @since 2024/8/23 21:20 v0.0.5-dev - * @param groupId 群号 - * @param userId 要禁言的 QQ 号 - * @param duration 禁言时长,单位秒,0 表示取消禁言 */ - public SetGroupBanAction(Long groupId, Long userId, Long duration){ + public SetGroupBanAction(Long groupId, Long userId, Long duration) { super.setAction(Actions.SET_GROUP_BAN); super.setParams(new Params(groupId, userId, duration)); } /** * 群组单人禁言 + * + * @param groupId 群号 + * @param userId 要禁言的 QQ 号 * @author wzp * @since 2024/8/23 21:20 v0.0.5-dev - * @param groupId 群号 - * @param userId 要禁言的 QQ 号 */ - public SetGroupBanAction(Long groupId, Long userId){ + public SetGroupBanAction(Long groupId, Long userId) { this(groupId, userId, 1800L); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/23 21:20 v0.0.5-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要禁言的 QQ 号 + * * @since 2024/8/23 21:20 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * 禁言时长,单位秒,0 表示取消禁言(默认30 * 60) + * * @since 2024/8/23 21:20 v0.0.5-dev */ @JSONField(defaultValue = "1800") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java similarity index 82% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java index 7922976..6540e4d 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupCardAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupCardAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 设置群名片(群备注) + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 20:59 @@ -15,11 +16,12 @@ import lombok.Data; public class SetGroupCardAction extends Action { /** * 设置群名片(群备注) + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 + * @param card 群名片内容,不填或空字符串表示删除群名片 * @author wzp * @since 2024/8/23 21:22 v0.0.5-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 - * @param card 群名片内容,不填或空字符串表示删除群名片 */ public SetGroupCardAction(Long groupId, Long userId, String card) { super.setAction(Actions.SET_GROUP_CARD); @@ -28,31 +30,36 @@ public class SetGroupCardAction extends Action /** * 设置群名片(群备注) + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 * @author wzp * @since 2024/8/23 21:22 v0.0.5-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 */ public SetGroupCardAction(Long groupId, Long userId) { this(groupId, userId, ""); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/23 21:23 v0.0.5-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要设置的 QQ 号 + * * @since 2024/8/23 21:23 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * 群名片内容,不填或空字符串表示删除群名片(默认为空) + * * @since 2024/8/23 21:23 v0.0.5-dev */ private String card; diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java similarity index 84% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java index 54d9297..26365fd 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupKickAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupKickAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 群组踢人 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 19:52 @@ -15,11 +16,12 @@ import lombok.Data; public class SetGroupKickAction extends Action { /** * 群组踢人 + * + * @param groupId 群号 + * @param userId 要踢的 QQ 号 + * @param rejectAddRequest 拒绝此人的加群请求 * @author wzp * @since 2024/8/23 21:24 v0.0.5-dev - * @param groupId 群号 - * @param userId 要踢的 QQ 号 - * @param rejectAddRequest 拒绝此人的加群请求 */ public SetGroupKickAction(Long groupId, Long userId, Boolean rejectAddRequest) { super.setAction(Actions.SET_GROUP_KICK); @@ -28,31 +30,36 @@ public class SetGroupKickAction extends Action /** * 群组踢人 + * + * @param groupId 群号 + * @param userId 要踢的 QQ 号 * @author wzp * @since 2024/8/23 21:24 v0.0.5-dev - * @param groupId 群号 - * @param userId 要踢的 QQ 号 */ public SetGroupKickAction(Long groupId, Long userId) { this(groupId, userId, false); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/23 21:25 v0.0.5-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要踢的 QQ 号 + * * @since 2024/8/23 21:25 v0.0.5-dev */ @JSONField(name = "user_id") private Long userId; /** * 拒绝此人的加群请求(默认为false) + * * @since 2024/8/23 21:25 v0.0.5-dev */ @JSONField(name = "reject_add_request", defaultValue = "false") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java similarity index 81% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java index 8d0b12e..dcea9ce 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupLeaveAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupLeaveAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 退出群组 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:07 @@ -15,36 +16,41 @@ import lombok.Data; public class SetGroupLeaveAction extends Action { /** * 退出群组 + * + * @param groupId 群号 + * @param isDismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散 * @author wzp * @since 2024/8/24 23:57 v0.0.6-dev - * @param groupId 群号 - * @param isDismiss 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散 */ - public SetGroupLeaveAction(Long groupId, boolean isDismiss){ + public SetGroupLeaveAction(Long groupId, boolean isDismiss) { super.setAction(Actions.SET_GROUP_LEAVE); super.setParams(new Params(groupId, isDismiss)); } /** * 退出群组 + * + * @param groupId 群号 * @author wzp * @since 2024/8/24 23:57 v0.0.6-dev - * @param groupId 群号 */ - public SetGroupLeaveAction(Long groupId){ + public SetGroupLeaveAction(Long groupId) { this(groupId, false); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 21:02 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散 + * * @since 2024/8/24 21:02 v0.0.6-dev */ @JSONField(name = "is_dismiss", defaultValue = "false") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java similarity index 80% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java index 9db7a20..f27b507 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupNameAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupNameAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 设置群名 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:07 @@ -15,26 +16,30 @@ import lombok.Data; public class SetGroupNameAction extends Action { /** * 设置群名 + * + * @param groupId 群号 + * @param groupName 新群名 * @author wzp * @since 2024/8/24 23:57 v0.0.6-dev - * @param groupId 群号 - * @param groupName 新群名 */ - public SetGroupNameAction(Long groupId, String groupName){ + public SetGroupNameAction(Long groupId, String groupName) { super.setAction(Actions.SET_GROUP_NAME); super.setParams(new Params(groupId, groupName)); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 20:59 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 新群名 + * * @since 2024/8/24 21:00 v0.0.6-dev */ @JSONField(name = "group_name") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java similarity index 78% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java index 91934bd..0a9096e 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupSpecialTitleAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupSpecialTitleAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 设置群组专属头衔 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 20:08 @@ -15,75 +16,84 @@ import lombok.Data; public class SetGroupSpecialTitleAction extends Action { /** * 设置群组专属头衔 + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 + * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔 + * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 * @author wzp * @since 2024/8/24 23:58 v0.0.6-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 - * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔 - * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 */ - public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle, Long duration){ + public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle, Long duration) { super.setAction(Actions.SET_GROUP_SPECIAL_TITLE); super.setParams(new Params(groupId, userId, specialTitle, duration)); } /** * 设置群组专属头衔 + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 + * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔 * @author wzp * @since 2024/8/24 23:58 v0.0.6-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 - * @param specialTitle 专属头衔,不填或空字符串表示删除专属头衔 */ - public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle){ + public SetGroupSpecialTitleAction(Long groupId, Long userId, String specialTitle) { this(groupId, userId, specialTitle, -1L); } /** * 设置群组专属头衔 + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 * @author wzp * @since 2024/8/24 23:58 v0.0.6-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 */ - public SetGroupSpecialTitleAction(Long groupId, Long userId){ + public SetGroupSpecialTitleAction(Long groupId, Long userId) { this(groupId, userId, ""); } /** * 设置群组专属头衔 + * + * @param groupId 群号 + * @param userId 要设置的 QQ 号 + * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 * @author wzp * @since 2024/8/24 23:58 v0.0.6-dev - * @param groupId 群号 - * @param userId 要设置的 QQ 号 - * @param duration 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 */ - public SetGroupSpecialTitleAction(Long groupId, Long userId, Long duration){ + public SetGroupSpecialTitleAction(Long groupId, Long userId, Long duration) { this(groupId, userId, "", duration); } + @Data @AllArgsConstructor public static final class Params { /** * 群号 + * * @since 2024/8/24 21:04 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 要设置的 QQ 号 + * * @since 2024/8/24 21:04 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 专属头衔,不填或空字符串表示删除专属头衔 + * * @since 2024/8/24 21:04 v0.0.6-dev */ @JSONField(name = "special_title") private String specialTitle; /** * 专属头衔有效期,单位秒,-1 表示永久,不过此项似乎没有效果,可能是只有某些特殊的时间长度有效,有待测试 + * * @since 2024/8/24 21:04 v0.0.6-dev */ @JSONField(defaultValue = "-1") diff --git a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java similarity index 87% rename from src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java rename to mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java index 2d33381..feefaf3 100644 --- a/src/main/java/cn/wzpmc/api/api/actions/message/set/SetGroupWholeBanAction.java +++ b/mybot-api/src/main/java/cn/wzpmc/api/actions/message/set/SetGroupWholeBanAction.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.api.actions.message.set; +package cn.wzpmc.api.actions.message.set; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; /** * 群组全员禁言 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/23 20:06 @@ -15,10 +16,11 @@ import lombok.Data; public class SetGroupWholeBanAction extends Action { /** * 群组全员禁言 + * + * @param groupId 群号 + * @param enable 是否禁言 * @author wzp * @since 2024/8/23 21:27 v0.0.5-dev - * @param groupId 群号 - * @param enable 是否禁言 */ public SetGroupWholeBanAction(Long groupId, Boolean enable) { super.setAction(Actions.SET_GROUP_WHOLE_BAN); @@ -27,24 +29,28 @@ public class SetGroupWholeBanAction extends Action { /** * 重启 OneBot 实现 + * + * @param delay 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右 * @author wzp * @since 2024/8/24 23:59 v0.0.6-dev - * @param delay 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右 */ public SetRestartAction(Integer delay) { super.setAction(Actions.SET_RESTART); @@ -26,17 +28,20 @@ public class SetRestartAction extends Action { /** * 立即重启 OneBot 实现 + * * @author wzp * @since 2024/8/24 23:58 v0.0.6-dev */ public SetRestartAction() { this(0); } + @Data @AllArgsConstructor public static final class Params { /** * 要延迟的毫秒数,如果默认情况下无法重启,可以尝试设置延迟为 2000 左右 + * * @since 2024/8/24 23:49 v0.0.6-dev */ @JSONField(defaultValue = "0") diff --git a/src/main/java/cn/wzpmc/api/commands/BaseCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java similarity index 80% rename from src/main/java/cn/wzpmc/api/commands/BaseCommand.java rename to mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java index b8f4396..fc968f4 100644 --- a/src/main/java/cn/wzpmc/api/commands/BaseCommand.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/BaseCommand.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.commands; +package cn.wzpmc.commands; /** * 指令基类 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:15 diff --git a/src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java similarity index 84% rename from src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java rename to mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java index 72797a6..78cbb9a 100644 --- a/src/main/java/cn/wzpmc/api/commands/BrigadierCommand.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/BrigadierCommand.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.commands; +package cn.wzpmc.commands; -import cn.wzpmc.api.user.CommandSender; +import cn.wzpmc.user.CommandSender; import com.mojang.brigadier.builder.LiteralArgumentBuilder; /** * Brigadier指令 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:59 @@ -12,9 +13,10 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; public interface BrigadierCommand extends BaseCommand { /** * 获取指令节点 + * + * @return 指令节点 * @author wzp * @since 2024/7/31 上午3:16 v0.0.1-dev - * @return 指令节点 */ LiteralArgumentBuilder getCommandNode(); } diff --git a/src/main/java/cn/wzpmc/api/commands/RawCommand.java b/mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java similarity index 72% rename from src/main/java/cn/wzpmc/api/commands/RawCommand.java rename to mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java index 110a526..84f2701 100644 --- a/src/main/java/cn/wzpmc/api/commands/RawCommand.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/RawCommand.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.commands; +package cn.wzpmc.commands; -import cn.wzpmc.api.user.CommandSender; +import cn.wzpmc.user.CommandSender; import java.util.List; /** * 原始指令 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:27 @@ -13,21 +14,23 @@ import java.util.List; public interface RawCommand extends BaseCommand { /** * 当指令执行时 + * + * @param commandSender 指令发送者 + * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"} + * @return 指令是否执行成功 * @author wzp * @since 2024/7/31 上午2:57 v0.0.1-dev - * @param commandSender 指令发送者 - * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"} - * @return 指令是否执行成功 */ boolean onExecute(CommandSender commandSender, List arguments); /** * 指令补全 + * + * @param commandSender 指令发送者 + * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"} + * @return 当前需要提示的子命令 * @author wzp * @since 2024/7/31 上午2:58 v0.0.1-dev - * @param commandSender 指令发送者 - * @param arguments 指令参数,如指令foo若执行/foo a b c则arguments为{"a", "b", "c"} - * @return 当前需要提示的子命令 */ default List onTabComplete(CommandSender commandSender, List arguments) { return List.of(); diff --git a/src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java similarity index 83% rename from src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java rename to mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java index 4016ad7..689154d 100644 --- a/src/main/java/cn/wzpmc/api/commands/arguments/MessagePartArgument.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/MessagePartArgument.java @@ -1,7 +1,7 @@ -package cn.wzpmc.api.commands.arguments; +package cn.wzpmc.commands.arguments; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.utils.CqCodeUtils; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.utils.CqCodeUtils; import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.arguments.ArgumentType; @@ -10,6 +10,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; /** * 消息段参数类型 + * * @author wzp * @version 1.0.0 * @since 2024/8/25 01:18 @@ -18,7 +19,7 @@ public class MessagePartArgument implements ArgumentType { @Override public JsonMessagePart parse(StringReader stringReader) throws CommandSyntaxException { String s = stringReader.readStringUntil(' '); - if (!CqCodeUtils.isCQ(s)){ + if (!CqCodeUtils.isCQ(s)) { throw new CommandSyntaxException(new SimpleCommandExceptionType(new LiteralMessage("MessagePart")), new LiteralMessage("Cannot read message part")); } return CqCodeUtils.parseToPart(s); diff --git a/src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java similarity index 81% rename from src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java rename to mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java index 5759c3e..18a6938 100644 --- a/src/main/java/cn/wzpmc/api/commands/arguments/UserIdArguments.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/arguments/UserIdArguments.java @@ -1,9 +1,9 @@ -package cn.wzpmc.api.commands.arguments; +package cn.wzpmc.commands.arguments; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.At; -import cn.wzpmc.api.utils.CqCodeUtils; -import cn.wzpmc.console.commands.exceptions.CqCodeException; +import cn.wzpmc.commands.exceptions.CqCodeException; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.At; +import cn.wzpmc.utils.CqCodeUtils; import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.arguments.ArgumentType; @@ -12,6 +12,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; /** * 用户ID消息类型 + * * @author wzp * @version 1.0.0 * @since 2024/8/25 21:02 @@ -33,7 +34,7 @@ public class UserIdArguments implements ArgumentType { String s = builder.toString(); if (CqCodeUtils.isCQ(s)) { JsonMessagePart jsonMessagePart = CqCodeUtils.parseToPart(s); - if (jsonMessagePart instanceof At){ + if (jsonMessagePart instanceof At) { return ((At) jsonMessagePart).getQq(); } throw new CqCodeException(); @@ -43,7 +44,8 @@ public class UserIdArguments implements ArgumentType { String s1 = read + s; try { return Long.parseLong(s1); - }catch (NumberFormatException ignored) {} + } catch (NumberFormatException ignored) { + } } throw new CommandSyntaxException(new BuiltInExceptions().readerInvalidLong(), new LiteralMessage("Cannot read long from user id")); } diff --git a/src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java b/mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java similarity index 94% rename from src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java rename to mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java index e3c3d5a..e2d7752 100644 --- a/src/main/java/cn/wzpmc/console/commands/exceptions/CqCodeException.java +++ b/mybot-api/src/main/java/cn/wzpmc/commands/exceptions/CqCodeException.java @@ -1,4 +1,4 @@ -package cn.wzpmc.console.commands.exceptions; +package cn.wzpmc.commands.exceptions; import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.Message; @@ -12,10 +12,12 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; */ public class CqCodeException extends CommandSyntaxException { private static final Message errorMessage = new LiteralMessage("Cannot read cq code"); + public CqCodeException() { super(new CqCodeExceptionType(errorMessage), errorMessage); } + private static final class CqCodeExceptionType extends SimpleCommandExceptionType { public CqCodeExceptionType(Message message) { super(message); diff --git a/src/main/java/cn/wzpmc/api/entities/BotStatus.java b/mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java similarity index 91% rename from src/main/java/cn/wzpmc/api/entities/BotStatus.java rename to mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java index 84a09fd..69e581e 100644 --- a/src/main/java/cn/wzpmc/api/entities/BotStatus.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/BotStatus.java @@ -1,9 +1,10 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.Data; /** * bot运行状态 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:30 @@ -12,11 +13,13 @@ import lombok.Data; public class BotStatus { /** * 当前 QQ 在线,null 表示无法查询到在线状态 + * * @since 2024/8/23 21:33 v0.0.5-dev */ private boolean online; /** * 状态符合预期,意味着各模块正常运行、功能正常,且 QQ 在线 + * * @since 2024/8/23 21:34 v0.0.5-dev */ private boolean good; diff --git a/src/main/java/cn/wzpmc/api/entities/CookiesInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java similarity index 89% rename from src/main/java/cn/wzpmc/api/entities/CookiesInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java index 2350d84..c3a1467 100644 --- a/src/main/java/cn/wzpmc/api/entities/CookiesInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/CookiesInformation.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.AllArgsConstructor; import lombok.Data; /** * Cookie信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:45 @@ -14,6 +15,7 @@ import lombok.Data; public class CookiesInformation { /** * Cookies + * * @since 2024/8/24 23:59 v0.0.6-dev */ private String cookies; diff --git a/src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java similarity index 91% rename from src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java index 17b3f8f..ab91ec4 100644 --- a/src/main/java/cn/wzpmc/api/entities/CredentialsInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/CredentialsInformation.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -6,6 +6,7 @@ import lombok.Data; /** * QQ认证信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:46 @@ -15,11 +16,13 @@ import lombok.Data; public class CredentialsInformation { /** * Cookies + * * @since 2024/8/24 23:59 v0.0.6-dev */ private String cookies; /** * CSRF Token + * * @since 2024/8/24 23:59 v0.0.6-dev */ @JSONField(name = "csrf_token") diff --git a/src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java similarity index 89% rename from src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java index e2c546a..37fd108 100644 --- a/src/main/java/cn/wzpmc/api/entities/CsrfTokenInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/CsrfTokenInformation.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.AllArgsConstructor; import lombok.Data; /** * CSRF信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:45 @@ -14,6 +15,7 @@ import lombok.Data; public class CsrfTokenInformation { /** * CSRF Token + * * @since 2024/8/24 23:59 v0.0.6-dev */ private Integer token; diff --git a/src/main/java/cn/wzpmc/api/entities/FilePathInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java similarity index 91% rename from src/main/java/cn/wzpmc/api/entities/FilePathInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java index 292da1b..0b77f43 100644 --- a/src/main/java/cn/wzpmc/api/entities/FilePathInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/FilePathInformation.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.AllArgsConstructor; import lombok.Data; @@ -13,6 +13,7 @@ import lombok.Data; public class FilePathInformation { /** * 转换后的语音文件路径,如 /home/somebody/cqhttp/data/record/0B38145AA44505000B38145AA4450500.mp3 + * * @since 2024/8/24 23:35 v0.0.6-dev */ private String file; diff --git a/src/main/java/cn/wzpmc/api/entities/FriendInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java similarity index 87% rename from src/main/java/cn/wzpmc/api/entities/FriendInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java index b29ce17..fc6447c 100644 --- a/src/main/java/cn/wzpmc/api/entities/FriendInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/FriendInformation.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; -import cn.wzpmc.api.user.IUser; +import cn.wzpmc.user.IUser; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; /** * 简略好友信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:13 @@ -17,6 +18,7 @@ import lombok.EqualsAndHashCode; public class FriendInformation extends IUser { /** * 添加后的好友备注(仅在同意时有效) + * * @since 2024/8/24 23:59 v0.0.6-dev */ private String remark; diff --git a/src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java similarity index 92% rename from src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java index b55f634..7a3203d 100644 --- a/src/main/java/cn/wzpmc/api/entities/GroupHonorUser.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupHonorUser.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -6,6 +6,7 @@ import lombok.Data; /** * 群成员荣耀信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:39 @@ -15,22 +16,26 @@ import lombok.Data; public class GroupHonorUser { /** * QQ 号 + * * @since 2024/8/25 00:00 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 昵称 + * * @since 2024/8/25 00:00 v0.0.6-dev */ private String nickname; /** * 头像 URL + * * @since 2024/8/25 00:00 v0.0.6-dev */ private String avatar; /** * 荣誉描述 + * * @since 2024/8/25 00:00 v0.0.6-dev */ private String description; diff --git a/src/main/java/cn/wzpmc/api/entities/GroupInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java similarity index 93% rename from src/main/java/cn/wzpmc/api/entities/GroupInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java index c362900..e184c48 100644 --- a/src/main/java/cn/wzpmc/api/entities/GroupInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupInformation.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -6,6 +6,7 @@ import lombok.Data; /** * 群信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:15 @@ -15,24 +16,28 @@ import lombok.Data; public class GroupInformation { /** * 群号 + * * @since 2024/8/25 00:00 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 群名称 + * * @since 2024/8/25 00:00 v0.0.6-dev */ @JSONField(name = "group_name") private String groupName; /** * 成员数 + * * @since 2024/8/25 00:00 v0.0.6-dev */ @JSONField(name = "member_count") private Integer memberCount; /** * 最大成员数(群容量) + * * @since 2024/8/25 00:00 v0.0.6-dev */ @JSONField(name = "max_member_count") diff --git a/src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java similarity index 91% rename from src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java index 1c14b5f..743d402 100644 --- a/src/main/java/cn/wzpmc/api/entities/GroupMemberInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/GroupMemberInformation.java @@ -1,7 +1,7 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; -import cn.wzpmc.api.user.Sex; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.user.Sex; +import cn.wzpmc.user.permission.Permissions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,6 +10,7 @@ import java.util.Date; /** * 群成员信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:22 @@ -19,81 +20,96 @@ import java.util.Date; public class GroupMemberInformation { /** * 群号 + * * @since 2024/8/24 19:29 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * QQ 号 + * * @since 2024/8/24 19:29 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 昵称 + * * @since 2024/8/24 19:29 v0.0.6-dev */ private String nickname; /** * 群名片/备注 + * * @since 2024/8/24 19:29 v0.0.6-dev */ private String card; /** * 性别 + * * @since 2024/8/24 19:29 v0.0.6-dev */ private Sex sex; /** * 年龄 + * * @since 2024/8/24 19:29 v0.0.6-dev */ private Integer age; /** * 地区 + * * @since 2024/8/24 19:30 v0.0.6-dev */ private String area; /** * 加群时间 + * * @since 2024/8/24 19:30 v0.0.6-dev */ @JSONField(name = "join_time") private Date joinTime; /** * 最后发言时间 + * * @since 2024/8/24 19:30 v0.0.6-dev */ @JSONField(name = "last_sent_time") private Date lastSentTime; /** * 成员等级 + * * @since 2024/8/24 19:30 v0.0.6-dev */ private String level; /** * 角色 + * * @since 2024/8/24 19:30 v0.0.6-dev */ private Permissions role; /** * 是否不良记录成员 + * * @since 2024/8/24 19:30 v0.0.6-dev */ private boolean unfriendly; /** * 专属头衔 + * * @since 2024/8/24 19:30 v0.0.6-dev */ private String title; /** * 专属头衔过期时间 + * * @since 2024/8/24 19:30 v0.0.6-dev */ @JSONField(name = "title_expire_time") private Date titleExpireTime; /** * 是否允许修改群名片 + * * @since 2024/8/24 19:30 v0.0.6-dev */ @JSONField(name = "card_changeable") diff --git a/src/main/java/cn/wzpmc/api/entities/HonorInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java similarity index 95% rename from src/main/java/cn/wzpmc/api/entities/HonorInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java index 615c31f..4ebe843 100644 --- a/src/main/java/cn/wzpmc/api/entities/HonorInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorInformation.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -8,6 +8,7 @@ import java.util.List; /** * 群荣耀信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:36 @@ -17,42 +18,49 @@ import java.util.List; public class HonorInformation { /** * 群号 + * * @since 2024/8/24 23:17 v0.0.6-dev */ @JSONField(name = "group_id") private Long groupId; /** * 当前龙王,仅 type 为 talkative 或 all 时有数据 + * * @since 2024/8/24 23:17 v0.0.6-dev */ @JSONField(name = "current_talkative") private HonorTalkative currentTalkative; /** * 历史龙王,仅 type 为 talkative 或 all 时有数据 + * * @since 2024/8/24 23:17 v0.0.6-dev */ @JSONField(name = "talkative_list") private List talkativeList; /** * 群聊之火,仅 type 为 performer 或 all 时有数据 + * * @since 2024/8/24 23:18 v0.0.6-dev */ @JSONField(name = "performer_list") private List performerList; /** * 群聊炽焰,仅 type 为 legend 或 all 时有数据 + * * @since 2024/8/24 23:18 v0.0.6-dev */ @JSONField(name = "legend_list") private List legendList; /** * 冒尖小春笋,仅 type 为 strong_newbie 或 all 时有数据 + * * @since 2024/8/24 23:18 v0.0.6-dev */ @JSONField(name = "strong_newbie_list") private List strongNewbieList; /** * 快乐之源,仅 type 为 emotion 或 all 时有数据 + * * @since 2024/8/24 23:18 v0.0.6-dev */ @JSONField(name = "emotion_list") diff --git a/src/main/java/cn/wzpmc/api/entities/HonorTalkative.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java similarity index 92% rename from src/main/java/cn/wzpmc/api/entities/HonorTalkative.java rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java index 97495d8..9aaffae 100644 --- a/src/main/java/cn/wzpmc/api/entities/HonorTalkative.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorTalkative.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -6,6 +6,7 @@ import lombok.Data; /** * 龙王信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:38 @@ -15,22 +16,26 @@ import lombok.Data; public class HonorTalkative { /** * QQ 号 + * * @since 2024/8/25 00:01 v0.0.6-dev */ @JSONField(name = "user_id") private Long userId; /** * 昵称 + * * @since 2024/8/25 00:01 v0.0.6-dev */ private String nickname; /** * 头像 URL + * * @since 2024/8/25 00:01 v0.0.6-dev */ private String avatar; /** * 持续天数 + * * @since 2024/8/25 00:01 v0.0.6-dev */ @JSONField(name = "day_count") diff --git a/src/main/java/cn/wzpmc/api/entities/HonorType.java b/mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java similarity index 88% rename from src/main/java/cn/wzpmc/api/entities/HonorType.java rename to mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java index 296eef8..c730ee0 100644 --- a/src/main/java/cn/wzpmc/api/entities/HonorType.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/HonorType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; /** * 荣耀类型 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 23:11 @@ -9,32 +10,38 @@ package cn.wzpmc.api.entities; public enum HonorType { /** * 龙王 + * * @since 2024/8/24 23:12 v0.0.6-dev */ TALKATIVE, /** * 群聊之火 + * * @since 2024/8/24 23:12 v0.0.6-dev */ PERFORMER, /** * 群聊炽焰 + * * @since 2024/8/24 23:12 v0.0.6-dev */ LEGEND, /** * 冒尖小春笋 + * * @since 2024/8/24 23:13 v0.0.6-dev */ STRONG_NEWBIE, /** * 快乐之源 + * * @since 2024/8/24 23:13 v0.0.6-dev */ EMOTION, /** * 全部 + * * @since 2024/8/24 23:13 v0.0.6-dev */ - ALL; + ALL } diff --git a/src/main/java/cn/wzpmc/api/entities/MessageInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java similarity index 83% rename from src/main/java/cn/wzpmc/api/entities/MessageInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java index 1ec7b7e..58732d0 100644 --- a/src/main/java/cn/wzpmc/api/entities/MessageInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/MessageInformation.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; -import cn.wzpmc.api.events.message.MessageType; -import cn.wzpmc.api.message.MessageComponent; -import cn.wzpmc.api.user.IUser; +import cn.wzpmc.events.message.MessageType; +import cn.wzpmc.message.MessageComponent; +import cn.wzpmc.user.IUser; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; /** * 获取消息操作返回 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/17 23:08 @@ -16,33 +17,39 @@ import lombok.Data; public class MessageInformation { /** * 发送时间 + * * @since 2024/8/23 21:34 v0.0.5-dev */ private Integer time; /** * 消息类型 + * * @since 2024/8/23 21:34 v0.0.5-dev */ private MessageType type; /** * 消息 ID + * * @since 2024/8/23 21:34 v0.0.5-dev */ @JSONField(name = "message_id") private Integer messageId; /** * 消息真实 ID + * * @since 2024/8/23 21:34 v0.0.5-dev */ @JSONField(name = "real_id") private Integer realId; /** * 发送人信息 + * * @since 2024/8/23 21:35 v0.0.5-dev */ private IUser sender; /** * 消息内容 + * * @since 2024/8/23 21:35 v0.0.5-dev */ private MessageComponent message; diff --git a/src/main/java/cn/wzpmc/api/entities/Ops.java b/mybot-api/src/main/java/cn/wzpmc/entities/Ops.java similarity index 83% rename from src/main/java/cn/wzpmc/api/entities/Ops.java rename to mybot-api/src/main/java/cn/wzpmc/entities/Ops.java index 79adf2c..0abf044 100644 --- a/src/main/java/cn/wzpmc/api/entities/Ops.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/Ops.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.Getter; @@ -6,6 +6,7 @@ import java.util.*; /** * 分群op列表 + * * @author wzp * @version 1.0.0 * @since 2024/8/25 20:16 @@ -14,29 +15,32 @@ import java.util.*; public final class Ops { /** * BOT总管理员 + * * @since 2024/8/25 20:17 v1.0.0 */ private final Set admins = new HashSet<>(); /** * 群内管理员 + * * @since 2024/8/25 20:17 v1.0.0 */ private final Map> groupAdmins = new HashMap<>(); /** * 判断此用户在群中是否为管理 + * + * @param groupId 群ID + * @param id 用户ID + * @return 是否管理 * @author wzp * @since 2024/8/25 20:20 v1.0.0 - * @param groupId 群ID - * @param id 用户ID - * @return 是否管理 */ - public boolean isAdmin(Long groupId, Long id){ - if (admins.contains(id)){ + public boolean isAdmin(Long groupId, Long id) { + if (admins.contains(id)) { return true; } List longs = groupAdmins.get(groupId.toString()); - if (longs == null){ + if (longs == null) { return false; } return longs.contains(id); @@ -44,10 +48,11 @@ public final class Ops { /** * 判断此用户是否为管理 - * @author wzp - * @since 2024/8/25 20:20 v1.0.0 + * * @param id 用户ID * @return 是否管理 + * @author wzp + * @since 2024/8/25 20:20 v1.0.0 */ public boolean isAdmin(Long id) { return admins.contains(id); diff --git a/src/main/java/cn/wzpmc/api/entities/VersionInformation.java b/mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java similarity index 93% rename from src/main/java/cn/wzpmc/api/entities/VersionInformation.java rename to mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java index 87d5d8d..c2efa5a 100644 --- a/src/main/java/cn/wzpmc/api/entities/VersionInformation.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/VersionInformation.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -6,6 +6,7 @@ import lombok.Data; /** * CQ服务端版本信息 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:54 @@ -15,18 +16,21 @@ import lombok.Data; public class VersionInformation { /** * 应用标识,如 mirai-native + * * @since 2024/8/25 00:02 v0.0.6-dev */ @JSONField(name = "app_name") private String appName; /** * 应用版本,如 1.2.3 + * * @since 2024/8/25 00:02 v0.0.6-dev */ @JSONField(name = "app_version") private String appVersion; /** * OneBot 标准版本,如 v11 + * * @since 2024/8/25 00:02 v0.0.6-dev */ @JSONField(name = "protocol_version") diff --git a/src/main/java/cn/wzpmc/api/entities/YesNo.java b/mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java similarity index 88% rename from src/main/java/cn/wzpmc/api/entities/YesNo.java rename to mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java index 58c63fc..3f884da 100644 --- a/src/main/java/cn/wzpmc/api/entities/YesNo.java +++ b/mybot-api/src/main/java/cn/wzpmc/entities/YesNo.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.entities; +package cn.wzpmc.entities; import lombok.AllArgsConstructor; import lombok.Data; /** * 是或否 + * * @author wzp * @version 0.0.6-dev * @since 2024/8/24 19:53 @@ -14,6 +15,7 @@ import lombok.Data; public class YesNo { /** * 是或否 + * * @since 2024/8/25 00:02 v0.0.6-dev */ private boolean yes; diff --git a/src/main/java/cn/wzpmc/api/events/Event.java b/mybot-api/src/main/java/cn/wzpmc/events/Event.java similarity index 93% rename from src/main/java/cn/wzpmc/api/events/Event.java rename to mybot-api/src/main/java/cn/wzpmc/events/Event.java index 59b1a89..fa6444c 100644 --- a/src/main/java/cn/wzpmc/api/events/Event.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/Event.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events; +package cn.wzpmc.events; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; /** * 事件基类 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午5:46 @@ -17,17 +18,20 @@ import lombok.NoArgsConstructor; public class Event { /** * 事件发生的时间戳 + * * @since 2024/8/1 下午5:52 v0.0.2-dev */ private Long time; /** * 收到事件的机器人的QQ号 + * * @since 2024/8/1 下午5:52 v0.0.2-dev */ @JSONField(name = "self_id") private Long selfId; /** * 事件类型 + * * @since 2024/8/1 下午5:52 v0.0.2-dev */ @JSONField(name = "post_type") diff --git a/src/main/java/cn/wzpmc/api/events/EventPostType.java b/mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java similarity index 70% rename from src/main/java/cn/wzpmc/api/events/EventPostType.java rename to mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java index b6e3b77..62f5fd5 100644 --- a/src/main/java/cn/wzpmc/api/events/EventPostType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/EventPostType.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events; +package cn.wzpmc.events; -import cn.wzpmc.api.events.message.MessageEvent; -import cn.wzpmc.api.events.meta.MetaEvent; -import cn.wzpmc.api.events.notice.NoticeEvent; -import cn.wzpmc.api.events.request.RequestEvent; +import cn.wzpmc.events.message.MessageEvent; +import cn.wzpmc.events.meta.MetaEvent; +import cn.wzpmc.events.notice.NoticeEvent; +import cn.wzpmc.events.request.RequestEvent; /** * 事件类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午5:47 @@ -14,26 +15,31 @@ import cn.wzpmc.api.events.request.RequestEvent; public enum EventPostType { /** * 消息事件 + * * @since 2024/8/1 下午5:48 v0.0.2-dev */ MESSAGE(MessageEvent.class), /** * 通知事件 + * * @since 2024/8/1 下午5:47 v0.0.2-dev */ NOTICE(NoticeEvent.class), /** * 请求事件 + * * @since 2024/8/1 下午5:47 v0.0.2-dev */ REQUEST(RequestEvent.class), /** * 元事件 + * * @since 2024/8/1 下午5:47 v0.0.2-dev */ META_EVENT(MetaEvent.class); public final Class clazz; - EventPostType(Class clazz){ + + EventPostType(Class clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/events/message/MessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java similarity index 88% rename from src/main/java/cn/wzpmc/api/events/message/MessageEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java index e80b8f1..df0b917 100644 --- a/src/main/java/cn/wzpmc/api/events/message/MessageEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageEvent.java @@ -1,8 +1,8 @@ -package cn.wzpmc.api.events.message; +package cn.wzpmc.events.message; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.message.json.JsonMessage; +import cn.wzpmc.events.Event; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.message.json.JsonMessage; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; /** * 消息事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午5:49 @@ -22,46 +23,54 @@ import lombok.NoArgsConstructor; public class MessageEvent extends Event { /** * 消息子类型 + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ @JSONField(name = "sub_type") private E subType; /** * 消息类型 + * * @since 2024/8/1 下午11:24 v0.0.2-dev */ @JSONField(name = "message_type") private MessageType messageType; /** * 消息ID + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ @JSONField(name = "message_id") private Integer messageId; /** * 发送者ID + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ @JSONField(name = "user_id") private Integer userId; /** * 消息详细内容 + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ private JsonMessage message; /** * 文本格式消息 + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ @JSONField(name = "raw_message") private StringMessage rawMessage; /** * 消息使用字体 + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ private Integer font; /** * 发送者详细信息 + * * @since 2024/8/1 下午11:12 v0.0.2-dev */ private U sender; diff --git a/src/main/java/cn/wzpmc/api/events/message/MessageType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java similarity index 66% rename from src/main/java/cn/wzpmc/api/events/message/MessageType.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java index 90f22ef..0320227 100644 --- a/src/main/java/cn/wzpmc/api/events/message/MessageType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/MessageType.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.events.message; +package cn.wzpmc.events.message; -import cn.wzpmc.api.events.message.group.GroupMessageEvent; -import cn.wzpmc.api.events.message.priv.PrivateMessageEvent; +import cn.wzpmc.events.message.group.GroupMessageEvent; +import cn.wzpmc.events.message.priv.PrivateMessageEvent; /** * 消息类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午5:54 @@ -12,16 +13,19 @@ import cn.wzpmc.api.events.message.priv.PrivateMessageEvent; public enum MessageType { /** * 私聊 + * * @since 2024/8/1 下午5:55 v0.0.2-dev */ PRIVATE(PrivateMessageEvent.class), /** * 群 + * * @since 2024/8/1 下午5:55 v0.0.2-dev */ GROUP(GroupMessageEvent.class); public final Class> clazz; - MessageType(Class> clazz){ + + MessageType(Class> clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java similarity index 76% rename from src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java index 434d7fe..a7392cf 100644 --- a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageEvent.java @@ -1,14 +1,15 @@ -package cn.wzpmc.api.events.message.group; +package cn.wzpmc.events.message.group; -import cn.wzpmc.api.events.message.MessageEvent; -import cn.wzpmc.api.user.group.GroupUser; -import cn.wzpmc.api.user.group.GroupUserAnonymousInfo; +import cn.wzpmc.events.message.MessageEvent; +import cn.wzpmc.user.group.GroupUser; +import cn.wzpmc.user.group.GroupUserAnonymousInfo; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群消息事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:59 @@ -18,12 +19,14 @@ import lombok.EqualsAndHashCode; public class GroupMessageEvent extends MessageEvent { /** * 群号 + * * @since 2024/8/1 下午11:11 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 匿名消息消息(当非匿名消息时为null) + * * @since 2024/8/1 下午11:10 v0.0.2-dev */ private GroupUserAnonymousInfo anonymous; diff --git a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java similarity index 86% rename from src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java index a904992..17ecda1 100644 --- a/src/main/java/cn/wzpmc/api/events/message/group/GroupMessageSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/group/GroupMessageSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.message.group; +package cn.wzpmc.events.message.group; /** * 群消息子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午6:02 @@ -9,16 +10,19 @@ package cn.wzpmc.api.events.message.group; public enum GroupMessageSubType { /** * 好友 + * * @since 2024/8/1 下午6:03 v0.0.2-dev */ FRIEND, /** * 群临时会话 + * * @since 2024/8/1 下午6:03 v0.0.2-dev */ GROUP, /** * 其他 + * * @since 2024/8/1 下午6:03 v0.0.2-dev */ OTHER diff --git a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java similarity index 53% rename from src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java index 84d5a6a..5b047c1 100644 --- a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageEvent.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.events.message.priv; +package cn.wzpmc.events.message.priv; -import cn.wzpmc.api.events.message.MessageEvent; -import cn.wzpmc.api.user.Friend; +import cn.wzpmc.events.message.MessageEvent; +import cn.wzpmc.user.Friend; /** - * 饲料消息事件 + * 私聊消息事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:02 diff --git a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java index ecf93bb..b7bdd2a 100644 --- a/src/main/java/cn/wzpmc/api/events/message/priv/PrivateMessageSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/message/priv/PrivateMessageSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.message.priv; +package cn.wzpmc.events.message.priv; /** * 私聊消息子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午6:04 @@ -9,16 +10,19 @@ package cn.wzpmc.api.events.message.priv; public enum PrivateMessageSubType { /** * 正常消息 + * * @since 2024/8/1 下午6:07 v0.0.2-dev */ NORMAL, /** * 匿名消息 + * * @since 2024/8/1 下午6:06 v0.0.2-dev */ ANONYMOUS, /** * 系统提示 + * * @since 2024/8/1 下午6:06 v0.0.2-dev */ NOTICE diff --git a/src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java similarity index 76% rename from src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java index 6ff805d..7c75e12 100644 --- a/src/main/java/cn/wzpmc/api/events/meta/HeartBeatEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/HeartBeatEvent.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.events.meta; +package cn.wzpmc.events.meta; -import cn.wzpmc.api.entities.BotStatus; +import cn.wzpmc.entities.BotStatus; import lombok.Data; import lombok.EqualsAndHashCode; @@ -11,14 +11,16 @@ import lombok.EqualsAndHashCode; */ @EqualsAndHashCode(callSuper = true) @Data -public class HeartBeatEvent extends MetaEvent{ +public class HeartBeatEvent extends MetaEvent { /** * 状态信息 + * * @since 2024/8/1 下午10:32 v0.0.2-dev */ private BotStatus status; /** * 到下次心跳的间隔(ms) + * * @since 2024/8/1 下午10:32 v0.0.2-dev */ private Long interval; diff --git a/src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java similarity index 86% rename from src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java index 8039a4b..13fa8f6 100644 --- a/src/main/java/cn/wzpmc/api/events/meta/MetaEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.meta; +package cn.wzpmc.events.meta; -import cn.wzpmc.api.events.Event; +import cn.wzpmc.events.Event; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 元事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:26 @@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode; public class MetaEvent extends Event { /** * 元事件子类型 + * * @since 2024/8/1 下午11:12 v0.0.2-dev */ @JSONField(name = "meta_event_type") diff --git a/src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java similarity index 64% rename from src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java rename to mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java index 247f054..fd2bcda 100644 --- a/src/main/java/cn/wzpmc/api/events/meta/MetaEventType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/MetaEventType.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.events.meta; +package cn.wzpmc.events.meta; -import cn.wzpmc.api.events.meta.lifecycle.LifecycleEvent; +import cn.wzpmc.events.meta.lifecycle.LifecycleEvent; /** * @author wzp @@ -11,7 +11,8 @@ public enum MetaEventType { LIFECYCLE(LifecycleEvent.class), HEARTBEAT(HeartBeatEvent.class); public final Class clazz; - MetaEventType(Class clazz){ + + MetaEventType(Class clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java similarity index 84% rename from src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java index f8c74d4..69ae2e7 100644 --- a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.meta.lifecycle; +package cn.wzpmc.events.meta.lifecycle; -import cn.wzpmc.api.events.meta.MetaEvent; +import cn.wzpmc.events.meta.MetaEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 生命周期事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:28 @@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode; public class LifecycleEvent extends MetaEvent { /** * 生命周期事件子类型 + * * @since 2024/8/1 下午10:29 v0.0.2-dev */ @JSONField(name = "sub_type") diff --git a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java index a2c6dc2..e9630b3 100644 --- a/src/main/java/cn/wzpmc/api/events/meta/lifecycle/LifecycleEventSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/meta/lifecycle/LifecycleEventSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.meta.lifecycle; +package cn.wzpmc.events.meta.lifecycle; /** * 生命周期事件子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:28 @@ -9,16 +10,19 @@ package cn.wzpmc.api.events.meta.lifecycle; public enum LifecycleEventSubType { /** * OneBot被启用 + * * @since 2024/8/1 下午10:29 v0.0.2-dev */ ENABLE, /** * OneBot被禁用 + * * @since 2024/8/1 下午10:29 v0.0.2-dev */ DISABLE, /** * WebSocket连接成功 + * * @since 2024/8/1 下午10:29 v0.0.2-dev */ CONNECT diff --git a/src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java similarity index 91% rename from src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java index ebc43c7..b7690a7 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/FriendAddEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/FriendAddEvent.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice; +package cn.wzpmc.events.notice; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode; /** * 好友添加事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:42 @@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode; public class FriendAddEvent extends NoticeEvent { /** * 用户ID + * * @since 2024/8/1 下午11:13 v0.0.2-dev */ @JSONField(name = "user_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java index a12fff7..ec4785c 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/GroupBanEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/GroupBanEvent.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice; +package cn.wzpmc.events.notice; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -6,33 +6,38 @@ import lombok.EqualsAndHashCode; /** * 群成员禁言事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:19 */ @EqualsAndHashCode(callSuper = true) @Data -public class GroupBanEvent extends NoticeEvent{ +public class GroupBanEvent extends NoticeEvent { /** * 群号 + * * @since 2024/8/1 下午10:21 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 操作者用户ID + * * @since 2024/8/1 下午10:20 v0.0.2-dev */ @JSONField(name = "operator_id") private Long operatorId; /** * 被禁言的用户ID + * * @since 2024/8/1 下午10:20 v0.0.2-dev */ @JSONField(name = "user_id") private Long userId; /** * 被禁言的时长(秒) + * * @since 2024/8/1 下午10:20 v0.0.2-dev */ private Long duration; diff --git a/src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java index 07d0a20..f1a730a 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/NoticeEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice; +package cn.wzpmc.events.notice; -import cn.wzpmc.api.events.Event; +import cn.wzpmc.events.Event; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 通知基事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:21 @@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode; public class NoticeEvent extends Event { /** * 通知类型 + * * @since 2024/8/1 下午11:12 v0.0.2-dev */ @JSONField(name = "notice_type") diff --git a/src/main/java/cn/wzpmc/api/events/notice/NoticeType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java similarity index 70% rename from src/main/java/cn/wzpmc/api/events/notice/NoticeType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java index fca32c9..f5a4e5c 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/NoticeType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/NoticeType.java @@ -1,15 +1,16 @@ -package cn.wzpmc.api.events.notice; +package cn.wzpmc.events.notice; -import cn.wzpmc.api.events.notice.admin.GroupAdminChangeEvent; -import cn.wzpmc.api.events.notice.file.GroupFileUploadedEvent; -import cn.wzpmc.api.events.notice.notify.NotifyEvent; -import cn.wzpmc.api.events.notice.recall.GroupMessageRecallEvent; -import cn.wzpmc.api.events.notice.recall.MessageRecallEvent; -import cn.wzpmc.api.events.notice.user.decrease.GroupUserDecreaseEvent; -import cn.wzpmc.api.events.notice.user.increase.GroupUserIncreaseEvent; +import cn.wzpmc.events.notice.admin.GroupAdminChangeEvent; +import cn.wzpmc.events.notice.file.GroupFileUploadedEvent; +import cn.wzpmc.events.notice.notify.NotifyEvent; +import cn.wzpmc.events.notice.recall.GroupMessageRecallEvent; +import cn.wzpmc.events.notice.recall.MessageRecallEvent; +import cn.wzpmc.events.notice.user.decrease.GroupUserDecreaseEvent; +import cn.wzpmc.events.notice.user.increase.GroupUserIncreaseEvent; /** * 通知类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:12 @@ -17,52 +18,62 @@ import cn.wzpmc.api.events.notice.user.increase.GroupUserIncreaseEvent; public enum NoticeType { /** * 群文件上传事件 + * * @since 2024/8/1 下午10:24 v0.0.2-dev */ GROUP_UPLOAD(GroupFileUploadedEvent.class), /** * 群管理变更事件 + * * @since 2024/8/1 下午10:24 v0.0.2-dev */ GROUP_ADMIN(GroupAdminChangeEvent.class), /** * 用户退群事件 + * * @since 2024/8/1 下午10:24 v0.0.2-dev */ GROUP_DECREASE(GroupUserDecreaseEvent.class), /** * 用户加群事件 + * * @since 2024/8/1 下午10:23 v0.0.2-dev */ GROUP_INCREASE(GroupUserIncreaseEvent.class), /** * 群组禁言事件 + * * @since 2024/8/1 下午10:23 v0.0.2-dev */ GROUP_BAN(GroupBanEvent.class), /** * 好友添加事件 + * * @since 2024/8/1 下午10:23 v0.0.2-dev */ FRIEND_ADD(FriendAddEvent.class), /** * 群消息撤回事件 + * * @since 2024/8/1 下午10:23 v0.0.2-dev */ GROUP_RECALL(GroupMessageRecallEvent.class), /** * 好友消息撤回事件 + * * @since 2024/8/1 下午10:23 v0.0.2-dev */ FRIEND_RECALL(MessageRecallEvent.class), /** * 群提醒事件 + * + * @see NotifyEvent * @since 2024/8/1 下午10:22 v0.0.2-dev - * @see cn.wzpmc.api.events.notice.notify.NotifyEvent */ NOTIFY(NotifyEvent.class); public final Class clazz; - NoticeType(Class clazz){ + + NoticeType(Class clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java index 9a1ac5b..302a885 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.admin; +package cn.wzpmc.events.notice.admin; -import cn.wzpmc.api.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群管理员更改事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:26 @@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode; public class GroupAdminChangeEvent extends NoticeEvent { /** * 事件子类型 + * * @since 2024/8/1 下午9:28 v0.0.2-dev */ @JSONField(name = "sub_type") private GroupAdminChangeSubType subType; /** * 群号 + * * @since 2024/8/1 下午9:29 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 被操作者QQ号 + * * @since 2024/8/1 下午9:29 v0.0.2-dev */ @JSONField(name = "user_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java index ed5d596..6749e86 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/admin/GroupAdminChangeSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/admin/GroupAdminChangeSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.notice.admin; +package cn.wzpmc.events.notice.admin; /** * 管理员更改子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:27 @@ -9,11 +10,13 @@ package cn.wzpmc.api.events.notice.admin; public enum GroupAdminChangeSubType { /** * 设置管理员 + * * @since 2024/8/1 下午9:27 v0.0.2-dev */ SET, /** * 取消管理员 + * * @since 2024/8/1 下午9:28 v0.0.2-dev */ UNSET diff --git a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java similarity index 90% rename from src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java index 99247f4..2260385 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFile.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFile.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice.file; +package cn.wzpmc.events.notice.file; import lombok.Data; @@ -11,21 +11,25 @@ import lombok.Data; public class GroupFile { /** * 文件ID + * * @since 2024/8/1 下午9:24 v0.0.2-dev */ private String id; /** * 文件名 + * * @since 2024/8/1 下午9:24 v0.0.2-dev */ private String name; /** * 文件大小 + * * @since 2024/8/1 下午9:24 v0.0.2-dev */ private Long size; /** * BUSID(具体见OneBot文档) + * * @since 2024/8/1 下午9:24 v0.0.2-dev */ private Long busid; diff --git a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java index 1920597..aabb2a8 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/file/GroupFileUploadedEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/file/GroupFileUploadedEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.file; +package cn.wzpmc.events.notice.file; -import cn.wzpmc.api.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群文件上传事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:21 @@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode; public class GroupFileUploadedEvent extends NoticeEvent { /** * 群组ID + * * @since 2024/8/1 下午9:25 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 用户ID + * * @since 2024/8/1 下午9:25 v0.0.2-dev */ @JSONField(name = "user_id") private Long userId; /** * 文件详细消息 + * * @since 2024/8/1 下午9:25 v0.0.2-dev */ @JSONField(name = "group_file") diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java similarity index 90% rename from src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java index 913051a..6c10299 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/LuckyKingNotifyEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/LuckyKingNotifyEvent.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice.notify; +package cn.wzpmc.events.notice.notify; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode; /** * 红包幸运王事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:03 @@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode; public class LuckyKingNotifyEvent extends NotifyEvent { /** * 运气王ID + * * @since 2024/8/1 下午10:04 v0.0.2-dev */ @JSONField(name = "target_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java index ea9c1a2..ac8179d 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifyEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifyEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.notify; +package cn.wzpmc.events.notice.notify; -import cn.wzpmc.api.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群提醒事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:59 @@ -16,18 +17,21 @@ import lombok.EqualsAndHashCode; public class NotifyEvent extends NoticeEvent { /** * 群号 + * * @since 2024/8/1 下午10:01 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 相关用户ID + * * @since 2024/8/1 下午10:00 v0.0.2-dev */ @JSONField(name = "user_id") private Long userId; /** * 群提醒事件子类型 + * * @since 2024/8/1 下午11:26 v0.0.2-dev */ @JSONField(name = "sub_type") diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java similarity index 77% rename from src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java index bc3c622..80ff308 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/NotifySubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/NotifySubType.java @@ -1,9 +1,10 @@ -package cn.wzpmc.api.events.notice.notify; +package cn.wzpmc.events.notice.notify; -import cn.wzpmc.api.events.notice.notify.honor.HonorNotifyEvent; +import cn.wzpmc.events.notice.notify.honor.HonorNotifyEvent; /** * 群提醒事件子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:58 @@ -11,21 +12,25 @@ import cn.wzpmc.api.events.notice.notify.honor.HonorNotifyEvent; public enum NotifySubType { /** * 群内戳一戳事件 + * * @since 2024/8/1 下午10:16 v0.0.2-dev */ POKE(PokeNotifyEvent.class), /** * 红包运气王事件 + * * @since 2024/8/1 下午10:16 v0.0.2-dev */ LUCKY_KING(LuckyKingNotifyEvent.class), /** * 群内荣耀变更事件 + * * @since 2024/8/1 下午10:16 v0.0.2-dev */ HONOR(HonorNotifyEvent.class); public final Class clazz; - NotifySubType(Class clazz){ + + NotifySubType(Class clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java similarity index 90% rename from src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java index 38369bf..e0f6205 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/PokeNotifyEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/PokeNotifyEvent.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice.notify; +package cn.wzpmc.events.notice.notify; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode; /** * 群内戳一戳事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:02 @@ -15,6 +16,7 @@ import lombok.EqualsAndHashCode; public class PokeNotifyEvent extends NotifyEvent { /** * 被戳者ID + * * @since 2024/8/1 下午10:02 v0.0.2-dev */ @JSONField(name = "target_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java similarity index 81% rename from src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java index 2a0192f..e4ddfde 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorNotifyEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorNotifyEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.notify.honor; +package cn.wzpmc.events.notice.notify.honor; -import cn.wzpmc.api.events.notice.notify.NotifyEvent; +import cn.wzpmc.events.notice.notify.NotifyEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群荣耀变更事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:04 @@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode; public class HonorNotifyEvent extends NotifyEvent { /** * 荣耀类型 + * * @since 2024/8/1 下午10:06 v0.0.2-dev */ @JSONField(name = "honor_type") diff --git a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java index c805dac..f1ba28e 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/notify/honor/HonorType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/notify/honor/HonorType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.notice.notify.honor; +package cn.wzpmc.events.notice.notify.honor; /** * 荣耀类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:05 @@ -9,16 +10,19 @@ package cn.wzpmc.api.events.notice.notify.honor; public enum HonorType { /** * 龙王 + * * @since 2024/8/1 下午10:05 v0.0.2-dev */ TALKACTIVE, /** * 群聊之火 + * * @since 2024/8/1 下午10:05 v0.0.2-dev */ PERFORMER, /** * 快乐源泉 + * * @since 2024/8/1 下午10:05 v0.0.2-dev */ EMOTION diff --git a/src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java similarity index 91% rename from src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java index b7440c7..fb11276 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/recall/GroupMessageRecallEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/GroupMessageRecallEvent.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice.recall; +package cn.wzpmc.events.notice.recall; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode; /** * 群消息撤回事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:43 @@ -15,12 +16,14 @@ import lombok.EqualsAndHashCode; public class GroupMessageRecallEvent extends MessageRecallEvent { /** * 群号 + * * @since 2024/8/1 下午9:46 v0.0.2-dev */ @JSONField(name = "group_id") private Long groupId; /** * 操作者ID + * * @since 2024/8/1 下午9:45 v0.0.2-dev */ @JSONField(name = "operator_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java index bca59fc..4bd41d9 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/recall/MessageRecallEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/recall/MessageRecallEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.recall; +package cn.wzpmc.events.notice.recall; -import cn.wzpmc.api.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 消息撤回事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:48 @@ -16,12 +17,14 @@ import lombok.EqualsAndHashCode; public class MessageRecallEvent extends NoticeEvent { /** * 被撤回的用户ID + * * @since 2024/8/1 下午9:49 v0.0.2-dev */ @JSONField(name = "user_id") private Long userId; /** * 被撤回的消息ID + * * @since 2024/8/1 下午9:49 v0.0.2-dev */ @JSONField(name = "message_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java similarity index 89% rename from src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java index ae93423..e9bada1 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/user/GroupUserModifyEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/GroupUserModifyEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.notice.user; +package cn.wzpmc.events.notice.user; -import cn.wzpmc.api.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群成员更改事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:30 @@ -16,6 +17,7 @@ import lombok.EqualsAndHashCode; public class GroupUserModifyEvent extends NoticeEvent { /** * 消息子类型 + * * @since 2024/8/1 下午9:31 v0.0.2-dev */ @JSONField(name = "sub_type") @@ -28,12 +30,14 @@ public class GroupUserModifyEvent extends NoticeEvent { private Long groupId; /** * 操作者 + * * @since 2024/8/1 下午9:32 v0.0.2-dev */ @JSONField(name = "operator_id") private Long operatorId; /** * 加入/退出用户ID + * * @since 2024/8/1 下午9:35 v0.0.2-dev */ @JSONField(name = "user_id") diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java similarity index 72% rename from src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java index 015ba0a..318298e 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseEvent.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.events.notice.user.decrease; +package cn.wzpmc.events.notice.user.decrease; -import cn.wzpmc.api.events.notice.user.GroupUserModifyEvent; +import cn.wzpmc.events.notice.user.GroupUserModifyEvent; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群成员减少事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:29 diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java index 3c81adc..b6a860a 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/user/decrease/GroupUserDecreaseSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/decrease/GroupUserDecreaseSubType.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.events.notice.user.decrease; +package cn.wzpmc.events.notice.user.decrease; /** * @author wzp @@ -8,16 +8,19 @@ package cn.wzpmc.api.events.notice.user.decrease; public enum GroupUserDecreaseSubType { /** * 主动退群 + * * @since 2024/8/1 下午9:37 v0.0.2-dev */ LEAVE, /** * 成员被踢出 + * * @since 2024/8/1 下午9:37 v0.0.2-dev */ KICK, /** * 机器人被踢 + * * @since 2024/8/1 下午9:37 v0.0.2-dev */ KICK_ME diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java similarity index 72% rename from src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java index b2142e8..b22fa95 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseEvent.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.events.notice.user.increase; +package cn.wzpmc.events.notice.user.increase; -import cn.wzpmc.api.events.notice.user.GroupUserModifyEvent; +import cn.wzpmc.events.notice.user.GroupUserModifyEvent; import lombok.Data; import lombok.EqualsAndHashCode; /** * 群成员增加事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:38 diff --git a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java similarity index 84% rename from src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java index cb685b7..9f76312 100644 --- a/src/main/java/cn/wzpmc/api/events/notice/user/increase/GroupUserIncreaseSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/notice/user/increase/GroupUserIncreaseSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.notice.user.increase; +package cn.wzpmc.events.notice.user.increase; /** * 用户增加事件子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午9:39 @@ -10,11 +11,13 @@ public enum GroupUserIncreaseSubType { /** * 群管理同意 + * * @since 2024/8/1 下午9:40 v0.0.2-dev */ APPROVE, /** * 被群管理邀请加群 + * * @since 2024/8/1 下午9:40 v0.0.2-dev */ INVITE diff --git a/src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java similarity index 87% rename from src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java index 6854851..93a3ac1 100644 --- a/src/main/java/cn/wzpmc/api/events/request/FriendAddRequestEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/request/FriendAddRequestEvent.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.events.request; +package cn.wzpmc.events.request; import lombok.Data; import lombok.EqualsAndHashCode; /** * 加好友事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:13 diff --git a/src/main/java/cn/wzpmc/api/events/request/RequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java similarity index 89% rename from src/main/java/cn/wzpmc/api/events/request/RequestEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java index 3ab3052..34ffb16 100644 --- a/src/main/java/cn/wzpmc/api/events/request/RequestEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.request; +package cn.wzpmc.events.request; -import cn.wzpmc.api.events.Event; +import cn.wzpmc.events.Event; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 请求基事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:08 @@ -16,23 +17,27 @@ import lombok.EqualsAndHashCode; public class RequestEvent extends Event { /** * 请求类型 + * * @since 2024/8/1 下午10:10 v0.0.2-dev */ @JSONField(name = "request_type") private RequestEventType requestType; /** * 发送请求的用户ID + * * @since 2024/8/1 下午10:10 v0.0.2-dev */ @JSONField(name = "user_id") private Long userId; /** * 验证消息 + * * @since 2024/8/1 下午10:10 v0.0.2-dev */ private String comment; /** * 请求Flag + * * @since 2024/8/1 下午10:10 v0.0.2-dev */ private String flag; diff --git a/src/main/java/cn/wzpmc/api/events/request/RequestEventType.java b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java similarity index 82% rename from src/main/java/cn/wzpmc/api/events/request/RequestEventType.java rename to mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java index ccdd7bf..4f02151 100644 --- a/src/main/java/cn/wzpmc/api/events/request/RequestEventType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/request/RequestEventType.java @@ -1,9 +1,10 @@ -package cn.wzpmc.api.events.request; +package cn.wzpmc.events.request; -import cn.wzpmc.api.events.request.group.GroupJoinRequestEvent; +import cn.wzpmc.events.request.group.GroupJoinRequestEvent; /** * 请求事件子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:09 @@ -11,15 +12,18 @@ import cn.wzpmc.api.events.request.group.GroupJoinRequestEvent; public enum RequestEventType { /** * 加好友事件 + * * @since 2024/8/1 下午10:15 v0.0.2-dev */ FRIEND(FriendAddRequestEvent.class), /** * 申请加群事件 + * * @since 2024/8/1 下午10:15 v0.0.2-dev */ GROUP(GroupJoinRequestEvent.class); public final Class clazz; + RequestEventType(Class clazz) { this.clazz = clazz; } diff --git a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java similarity index 85% rename from src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java rename to mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java index c00125d..ca47459 100644 --- a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEvent.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEvent.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.events.request.group; +package cn.wzpmc.events.request.group; -import cn.wzpmc.api.events.request.RequestEvent; +import cn.wzpmc.events.request.RequestEvent; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; import lombok.EqualsAndHashCode; /** * 加群请求事件 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:11 @@ -16,12 +17,14 @@ import lombok.EqualsAndHashCode; public class GroupJoinRequestEvent extends RequestEvent { /** * 加群子类型 + * * @since 2024/8/1 下午11:17 v0.0.2-dev */ @JSONField(name = "sub_type") private GroupJoinRequestEventSubType subType; /** * 群ID + * * @since 2024/8/1 下午11:17 v0.0.2-dev */ @JSONField(name = "group_id") diff --git a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java similarity index 86% rename from src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java rename to mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java index 4245e66..5a61cf3 100644 --- a/src/main/java/cn/wzpmc/api/events/request/group/GroupJoinRequestEventSubType.java +++ b/mybot-api/src/main/java/cn/wzpmc/events/request/group/GroupJoinRequestEventSubType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.events.request.group; +package cn.wzpmc.events.request.group; /** * 请求加群事件请求子类型 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午10:12 @@ -9,11 +10,13 @@ package cn.wzpmc.api.events.request.group; public enum GroupJoinRequestEventSubType { /** * 加群请求 + * * @since 2024/8/1 下午10:12 v0.0.2-dev */ ADD, /** * 邀请Bot加群 + * * @since 2024/8/1 下午10:12 v0.0.2-dev */ INVITE diff --git a/src/main/java/cn/wzpmc/api/message/MessageComponent.java b/mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java similarity index 89% rename from src/main/java/cn/wzpmc/api/message/MessageComponent.java rename to mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java index a086fb7..3dceaf3 100644 --- a/src/main/java/cn/wzpmc/api/message/MessageComponent.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/MessageComponent.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.message; +package cn.wzpmc.message; /** * 消息对象接口 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:33 @@ -9,9 +10,10 @@ package cn.wzpmc.api.message; public interface MessageComponent { /** * 将其转换为发送的文本 + * + * @return 消息文本 * @author wzp * @since 2024/7/31 上午2:41 v0.0.1-dev - * @return 消息文本 */ String toMessageString(); } diff --git a/src/main/java/cn/wzpmc/api/message/StringMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java similarity index 86% rename from src/main/java/cn/wzpmc/api/message/StringMessage.java rename to mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java index 2ec5d5c..6813fe4 100644 --- a/src/main/java/cn/wzpmc/api/message/StringMessage.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/StringMessage.java @@ -1,7 +1,7 @@ -package cn.wzpmc.api.message; +package cn.wzpmc.message; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; /** * 纯文本消息 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:34 @@ -20,22 +21,24 @@ import lombok.NoArgsConstructor; public class StringMessage implements MessageComponent, JsonMessagePart { @JSONField(name = "text") private String message; - @Override - public String toMessageString() { - return this.message; - } /** * 构建纯文本消息 - * @author wzp - * @since 2024/7/31 上午2:41 v0.0.1-dev + * * @param message 消息文本 * @return 文本消息对象 + * @author wzp + * @since 2024/7/31 上午2:41 v0.0.1-dev */ - public static StringMessage text(String message){ + public static StringMessage text(String message) { return new StringMessage(message); } + @Override + public String toMessageString() { + return this.message; + } + @Override public PartType getPartType() { return PartType.TEXT; diff --git a/src/main/java/cn/wzpmc/api/message/json/JsonMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/JsonMessage.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java index 201076a..56a3c18 100644 --- a/src/main/java/cn/wzpmc/api/message/json/JsonMessage.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessage.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json; +package cn.wzpmc.message.json; -import cn.wzpmc.api.message.MessageComponent; +import cn.wzpmc.message.MessageComponent; import com.alibaba.fastjson2.JSON; import lombok.Data; @@ -10,6 +10,7 @@ import java.util.stream.Collectors; /** * JSON消息 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:34 @@ -20,9 +21,10 @@ public class JsonMessage implements MessageComponent { /** * 将消息转为JSON文本 + * + * @return json文本 * @author wzp * @since 2024/8/23 21:36 v0.0.5-dev - * @return json文本 */ @Override public String toMessageString() { @@ -31,9 +33,10 @@ public class JsonMessage implements MessageComponent { /** * 将JSON消息转化为纯文本显示方式 + * + * @return 文本 * @author wzp * @since 2024/8/23 21:35 v0.0.5-dev - * @return 文本 */ public String toTextDisplay() { return this.messageParts.stream().map(JsonMessagePart::getTextDisplay).collect(Collectors.joining("")); @@ -41,11 +44,12 @@ public class JsonMessage implements MessageComponent { /** * 将JSON消息转换为CQ文本消息 + * + * @return 文本消息 * @author wzp * @since 2024/8/2 下午9:36 v0.0.3-dev - * @return 文本消息 */ - public String toCqString(){ + public String toCqString() { StringBuilder stringBuilder = new StringBuilder(); this.messageParts.stream().map(JsonMessagePart::getCQCode).forEach(stringBuilder::append); return stringBuilder.toString(); diff --git a/src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java index ff54325..6051a8c 100644 --- a/src/main/java/cn/wzpmc/api/message/json/JsonMessagePart.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/JsonMessagePart.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json; +package cn.wzpmc.message.json; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.parts.PartType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.annotation.JSONField; import com.alibaba.fastjson2.annotation.JSONType; /** * JSON消息段 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:36 @@ -15,31 +16,35 @@ import com.alibaba.fastjson2.annotation.JSONType; public interface JsonMessagePart { /** * 获取消息的类型 + * + * @return 消息类型 * @author wzp * @since 2024/7/31 上午2:40 v0.0.1-dev - * @return 消息类型 */ PartType getPartType(); + @JSONField(name = "type") - default String getStringPartType(){ + default String getStringPartType() { return this.getPartType().toString().toLowerCase(); } /** * 获取消息附带的数据 + * + * @return 数据 * @author wzp * @since 2024/7/31 上午2:40 v0.0.1-dev - * @return 数据 */ JSONObject getData(); /** * 获取当纯文本界面的代替文本 + * + * @return 文本 * @author wzp * @since 2024/7/31 上午2:45 v0.0.1-dev - * @return 文本 */ - default String getTextDisplay(){ + default String getTextDisplay() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(this.getPartType()) .append('(') @@ -54,11 +59,12 @@ public interface JsonMessagePart { /** * 获取消息段的CQ码 + * + * @return CQ码 * @author wzp * @since 2024/8/2 下午9:32 v0.0.3-dev - * @return CQ码 */ - default String getCQCode(){ + default String getCQCode() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("[CQ:").append(this.getPartType().toString().toLowerCase()).append(','); JSONObject data = getData(); diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java similarity index 86% rename from src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java index 3f5cf40..a716665 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Anonymous.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Anonymous.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 匿名发消息 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:19 @@ -16,9 +17,11 @@ import lombok.NoArgsConstructor; public class Anonymous implements JsonMessagePart { /** * 可选,表示无法匿名时是否继续发送 + * * @since 2024/8/3 下午5:55 v0.0.3-dev */ private boolean ignore = false; + @Override public PartType getPartType() { return PartType.ANONYMOUS; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/At.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java similarity index 86% rename from src/main/java/cn/wzpmc/api/message/json/parts/At.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java index e302530..4d96195 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/At.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/At.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; /** * "@"某人 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:22 @@ -18,6 +19,7 @@ import lombok.NoArgsConstructor; public class At implements JsonMessagePart { /** * "@"的 QQ 号,all 表示全体成员 + * * @since 2024/8/2 下午11:50 v0.0.3-dev */ private Long qq; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java similarity index 85% rename from src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java index 164406e..dd24ef8 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/CustomJSONMessage.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/CustomJSONMessage.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * JSON 消息 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:43 @@ -16,9 +17,11 @@ import lombok.NoArgsConstructor; public class CustomJSONMessage implements JsonMessagePart { /** * JSON 内容 + * * @since 2024/8/3 下午6:11 v0.0.3-dev */ private JSONObject data; + @Override public PartType getPartType() { return PartType.JSON; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Dice.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java similarity index 69% rename from src/main/java/cn/wzpmc/api/message/json/parts/Dice.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java index c4f6eaf..d3775be 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Dice.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Dice.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 掷骰子魔法表情 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:26 @@ -14,10 +15,11 @@ import lombok.NoArgsConstructor; @Data @NoArgsConstructor public class Dice implements JsonMessagePart { - public PartType getPartType(){ + public PartType getPartType() { return PartType.DICE; } - public JSONObject getData(){ + + public JSONObject getData() { return JSONObject.of(); } } diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Face.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java similarity index 87% rename from src/main/java/cn/wzpmc/api/message/json/parts/Face.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java index 1d85264..a3ae7a7 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Face.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Face.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * QQ表情 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:00 @@ -16,9 +17,11 @@ import lombok.NoArgsConstructor; public class Face implements JsonMessagePart { /** * qq表情ID + * * @since 2024/8/2 下午11:46 v0.0.3-dev */ private Short id; + @Override public PartType getPartType() { return PartType.FACE; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Forward.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java similarity index 86% rename from src/main/java/cn/wzpmc/api/message/json/parts/Forward.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java index e9327fd..dc1c7b6 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Forward.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Forward.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 合并转发 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:38 @@ -16,9 +17,11 @@ import lombok.NoArgsConstructor; public class Forward implements JsonMessagePart { /** * 合并转发 ID,需通过 get_forward_msg API 获取具体内容 + * * @since 2024/8/3 下午6:10 v0.0.3-dev */ private Long id; + @Override public PartType getPartType() { return PartType.FORWARD; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Image.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java similarity index 91% rename from src/main/java/cn/wzpmc/api/message/json/parts/Image.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java index 295d85a..3907eeb 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Image.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Image.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,6 +9,7 @@ import java.net.URL; /** * 图片 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:06 @@ -18,31 +19,37 @@ import java.net.URL; public class Image implements JsonMessagePart { /** * 图片文件名 + * * @since 2024/8/2 下午11:47 v0.0.3-dev */ private String file; /** * 图片类型,flash 表示闪照,无此参数表示普通图片 + * * @since 2024/8/2 下午11:47 v0.0.3-dev */ private String type = null; /** * 图片url + * * @since 2024/8/2 下午11:47 v0.0.3-dev */ private URL url; /** * 只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 true + * * @since 2024/8/2 下午11:47 v0.0.3-dev */ private Boolean cache = true; /** * 只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 true + * * @since 2024/8/2 下午11:48 v0.0.3-dev */ private Boolean proxy = true; /** * 只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时 + * * @since 2024/8/2 下午11:48 v0.0.3-dev */ private Float timeout = null; @@ -52,7 +59,7 @@ public class Image implements JsonMessagePart { return PartType.IMAGE; } - public JSONObject getData(){ + public JSONObject getData() { return new JSONObject() .fluentPut("file", this.file) .fluentPut("type", this.type) diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Location.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/parts/Location.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java index 549008d..2d9fc8b 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Location.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Location.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 位置 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:22 @@ -16,24 +17,29 @@ import lombok.NoArgsConstructor; public class Location implements JsonMessagePart { /** * 纬度 + * * @since 2024/8/3 下午6:06 v0.0.3-dev */ private Double lat; /** * 经度 + * * @since 2024/8/3 下午6:07 v0.0.3-dev */ private Double lon; /** * 发送时可选,标题 + * * @since 2024/8/3 下午6:07 v0.0.3-dev */ private String title = ""; /** * 发送时可选,内容描述 + * * @since 2024/8/3 下午6:07 v0.0.3-dev */ private String content = ""; + @Override public PartType getPartType() { return PartType.LOCATION; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java similarity index 77% rename from src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java index 17f1d86..3915ec5 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/MarkdownMessage.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/MarkdownMessage.java @@ -1,24 +1,27 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; -import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * Markdown格式消息 + * * @author wzp * @version 1.0.0 * @since 2024/8/25 15:19 */ @Data -@AllArgsConstructor +@NoArgsConstructor public class MarkdownMessage implements JsonMessagePart { /** * Markdown格式数据 + * * @since 2024/8/25 15:20 v1.0.0 */ private String data; + @Override public PartType getPartType() { return PartType.MARKDOWN; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/PartType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java similarity index 80% rename from src/main/java/cn/wzpmc/api/message/json/parts/PartType.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java index 915caf2..3499422 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/PartType.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/PartType.java @@ -1,126 +1,149 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.contact.Contact; -import cn.wzpmc.api.message.json.parts.music.Music; -import cn.wzpmc.api.message.json.parts.node.Node; -import cn.wzpmc.api.message.json.parts.poke.Poke; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.contact.Contact; +import cn.wzpmc.message.json.parts.music.Music; +import cn.wzpmc.message.json.parts.node.Node; +import cn.wzpmc.message.json.parts.poke.Poke; /** * 消息段类型 + * * @author wzp - * @since 2024/8/3 下午6:18 * @version 0.0.3-dev + * @since 2024/8/3 下午6:18 */ public enum PartType { /** * 文本消息 + * * @since 2024/8/23 21:37 v0.0.5-dev */ TEXT(StringMessage.class), /** * 表情消息 + * * @since 2024/8/23 21:37 v0.0.5-dev */ FACE(Face.class), /** * 图片消息 + * * @since 2024/8/23 21:37 v0.0.5-dev */ IMAGE(Image.class), /** * 语音 + * * @since 2024/8/23 21:37 v0.0.5-dev */ RECORD(Record.class), /** * 短视频 + * * @since 2024/8/23 21:37 v0.0.5-dev */ VIDEO(Video.class), /** * "@"某人 + * * @since 2024/8/23 21:37 v0.0.5-dev */ AT(At.class), /** * 拳魔法表情 + * * @since 2024/8/23 21:37 v0.0.5-dev */ - RPS(cn.wzpmc.api.message.json.parts.RPS.class), + RPS(cn.wzpmc.message.json.parts.RPS.class), /** * 掷骰子魔法表情 + * * @since 2024/8/23 21:38 v0.0.5-dev */ DICE(Dice.class), /** * 窗口抖动(戳一戳) + * * @since 2024/8/23 21:38 v0.0.5-dev */ SHAKE(Shake.class), /** * 戳一戳 + * * @since 2024/8/23 21:38 v0.0.5-dev */ POKE(Poke.class), /** * 匿名发消息 + * * @since 2024/8/23 21:39 v0.0.5-dev */ ANONYMOUS(Anonymous.class), /** * 链接分享 + * * @since 2024/8/23 21:39 v0.0.5-dev */ SHARE(Share.class), /** * 推荐好友/群 + * * @since 2024/8/23 21:39 v0.0.5-dev */ CONTACT(Contact.class), /** * 位置 + * * @since 2024/8/23 21:40 v0.0.5-dev */ LOCATION(Location.class), /** * 音乐分享 + * * @since 2024/8/23 21:40 v0.0.5-dev */ MUSIC(Music.class), /** * 回复 + * * @since 2024/8/23 21:40 v0.0.5-dev */ REPLY(Reply.class), /** * 合并转发 + * * @since 2024/8/23 21:40 v0.0.5-dev */ FORWARD(Forward.class), /** * 合并转发节点 + * * @since 2024/8/23 21:40 v0.0.5-dev */ NODE(Node.class), /** * XML消息 + * * @since 2024/8/23 21:40 v0.0.5-dev */ XML(XMLMessage.class), /** * JSON消息 + * * @since 2024/8/23 21:40 v0.0.5-dev */ JSON(CustomJSONMessage.class), /** * Markdown消息 + * * @since 2024/8/25 15:20 v1.0.0 */ MARKDOWN(MarkdownMessage.class); public final Class clazz; - PartType(Class clazz){ + + PartType(Class clazz) { this.clazz = clazz; } } diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/RPS.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java similarity index 82% rename from src/main/java/cn/wzpmc/api/message/json/parts/RPS.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java index 2377c80..af907a0 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/RPS.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/RPS.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 拳魔法表情 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:17 diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Record.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/parts/Record.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java index c59ed75..c2b6fb7 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Record.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Record.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,6 +9,7 @@ import java.net.URL; /** * 语音 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:16 diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Reply.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java similarity index 85% rename from src/main/java/cn/wzpmc/api/message/json/parts/Reply.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java index b8d65bc..6053d43 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Reply.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Reply.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 回复 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:33 @@ -16,9 +17,11 @@ import lombok.NoArgsConstructor; public class Reply implements JsonMessagePart { /** * 回复时引用的消息 ID + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private Long id; + @Override public PartType getPartType() { return PartType.REPLY; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Shake.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java similarity index 83% rename from src/main/java/cn/wzpmc/api/message/json/parts/Shake.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java index 9c354a1..138220c 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Shake.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Shake.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 窗口抖动(戳一戳) + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:18 diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Share.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/parts/Share.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java index efacadd..6482b0e 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Share.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Share.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,6 +9,7 @@ import java.net.URL; /** * 链接分享 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:30 @@ -18,21 +19,25 @@ import java.net.URL; public class Share implements JsonMessagePart { /** * URL + * * @since 2024/8/3 下午5:56 v0.0.3-dev */ private URL url; /** * 标题 + * * @since 2024/8/3 下午5:56 v0.0.3-dev */ private String title; /** * 发送时可选,内容描述 + * * @since 2024/8/3 下午5:56 v0.0.3-dev */ private String content; /** * 发送时可选,图片 URL + * * @since 2024/8/3 下午5:56 v0.0.3-dev */ private URL image; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/Video.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java similarity index 91% rename from src/main/java/cn/wzpmc/api/message/json/parts/Video.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java index 8294452..66f9c5d 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/Video.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/Video.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; @@ -9,6 +9,7 @@ import java.net.URL; /** * 短视频 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:16 @@ -18,29 +19,35 @@ import java.net.URL; public class Video implements JsonMessagePart { /** * 视频文件名 + * * @since 2024/8/2 下午11:49 v0.0.3-dev */ private String file; /** * 视频 URL + * * @since 2024/8/2 下午11:49 v0.0.3-dev */ private URL url; /** * 只在通过网络 URL 发送时有效,表示是否使用已缓存的文件,默认 true + * * @since 2024/8/2 下午11:49 v0.0.3-dev */ private Boolean cache = true; /** * 只在通过网络 URL 发送时有效,表示是否通过代理下载文件(需通过环境变量或配置文件配置代理),默认 true + * * @since 2024/8/2 下午11:49 v0.0.3-dev */ private Boolean proxy = true; /** * 只在通过网络 URL 发送时有效,单位秒,表示下载网络文件的超时时间 ,默认不超时 + * * @since 2024/8/2 下午11:49 v0.0.3-dev */ private Float timeout = null; + @Override public PartType getPartType() { return PartType.VIDEO; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java similarity index 86% rename from src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java index 69e81eb..d13da52 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/XMLMessage.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/XMLMessage.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.message.json.parts; +package cn.wzpmc.message.json.parts; -import cn.wzpmc.api.message.json.JsonMessagePart; +import cn.wzpmc.message.json.JsonMessagePart; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * XML消息 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:40 @@ -16,6 +17,7 @@ import lombok.NoArgsConstructor; public class XMLMessage implements JsonMessagePart { /** * XML 内容 + * * @since 2024/8/3 下午6:11 v0.0.3-dev */ private String data; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java similarity index 82% rename from src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java index aeb5f6f..2dbd070 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/contact/Contact.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/Contact.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.message.json.parts.contact; +package cn.wzpmc.message.json.parts.contact; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 推荐好友/群 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:21 @@ -17,14 +18,17 @@ import lombok.NoArgsConstructor; public class Contact implements JsonMessagePart { /** * 推荐类型 + * * @since 2024/8/3 下午5:57 v0.0.3-dev */ private ContactType type; /** * 被推荐人的 QQ 号 + * * @since 2024/8/3 下午5:57 v0.0.3-dev */ private Long id; + @Override public PartType getPartType() { return PartType.CONTACT; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java similarity index 82% rename from src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java index 96f53a6..c1d5ee6 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/contact/ContactType.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/contact/ContactType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.message.json.parts.contact; +package cn.wzpmc.message.json.parts.contact; /** * 推荐类型 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:34 @@ -9,11 +10,13 @@ package cn.wzpmc.api.message.json.parts.contact; public enum ContactType { /** * 推荐qq + * * @since 2024/8/2 下午11:36 v0.0.3-dev */ QQ, /** * 推荐群 + * * @since 2024/8/2 下午11:36 v0.0.3-dev */ GROUP diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java similarity index 80% rename from src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java index fc7c344..602559c 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/music/Music.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/Music.java @@ -1,13 +1,14 @@ -package cn.wzpmc.api.message.json.parts.music; +package cn.wzpmc.message.json.parts.music; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; import com.alibaba.fastjson2.JSONObject; import lombok.Data; import lombok.NoArgsConstructor; /** * 音乐分享 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:24 @@ -17,9 +18,11 @@ import lombok.NoArgsConstructor; public abstract class Music implements JsonMessagePart { /** * 音乐类型 + * * @since 2024/8/3 下午6:07 v0.0.3-dev */ protected MusicType musicType; + @Override public PartType getPartType() { return PartType.MUSIC; diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java index 83bbbb7..07fd501 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicAppShare.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicAppShare.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.message.json.parts.music; +package cn.wzpmc.message.json.parts.music; import com.alibaba.fastjson2.JSONObject; import lombok.Data; @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; /** * 音乐App分享 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:28 @@ -17,9 +18,11 @@ import lombok.NoArgsConstructor; public class MusicAppShare extends Music { /** * 歌曲 ID + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private Long id; + @Override public JSONObject getData() { return super.getData().fluentPut("id", this.id); diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java similarity index 93% rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java index da24c5c..7b5e9b7 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicCustomShare.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicCustomShare.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.message.json.parts.music; +package cn.wzpmc.message.json.parts.music; import com.alibaba.fastjson2.JSONObject; import lombok.Data; @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; /** * 音乐自定义分享 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:30 @@ -17,29 +18,35 @@ import lombok.NoArgsConstructor; public class MusicCustomShare extends Music { /** * 点击后跳转目标 URL + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private String url; /** * 音乐 URL + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private String audio; /** * 标题 + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private String title; /** * 发送时可选,内容描述 + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private String content = ""; /** * 发送时可选,图片 URL + * * @since 2024/8/3 下午6:08 v0.0.3-dev */ private String image = ""; + @Override public JSONObject getData() { return super.getData() diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java similarity index 84% rename from src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java index f4ef080..7556e03 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/music/MusicType.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/music/MusicType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.message.json.parts.music; +package cn.wzpmc.message.json.parts.music; /** * 音乐类型 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:25 @@ -9,27 +10,32 @@ package cn.wzpmc.api.message.json.parts.music; public enum MusicType { /** * qq音乐 + * * @since 2024/8/2 下午11:25 v0.0.3-dev */ QQ("qq", MusicAppShare.class), /** * 网易云音乐 + * * @since 2024/8/2 下午11:26 v0.0.3-dev */ NETEASE("163", MusicAppShare.class), /** * 虾米音乐 + * * @since 2024/8/2 下午11:27 v0.0.3-dev */ XM("xm", MusicAppShare.class), /** * 自定义 + * * @since 2024/8/2 下午11:30 v0.0.3-dev */ CUSTOM("custom", MusicCustomShare.class); public final String name; public final Class clazz; - MusicType(String name, Class clazz){ + + MusicType(String name, Class clazz) { this.name = name; this.clazz = clazz; } diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java similarity index 89% rename from src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java index b7f1478..2b753f3 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/node/CustomNode.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/CustomNode.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.message.json.parts.node; +package cn.wzpmc.message.json.parts.node; -import cn.wzpmc.api.message.MessageComponent; +import cn.wzpmc.message.MessageComponent; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.annotation.JSONField; import lombok.Data; @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; /** * 合并转发自定义节点 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:42 @@ -19,20 +20,24 @@ import lombok.NoArgsConstructor; public class CustomNode extends Node { /** * 发送者 QQ 号 + * * @since 2024/8/3 下午6:10 v0.0.3-dev */ @JSONField(name = "user_id") private Long userId; /** * 发送者昵称 + * * @since 2024/8/3 下午6:11 v0.0.3-dev */ private String nickname; /** * 消息内容 + * * @since 2024/8/3 下午6:11 v0.0.3-dev */ private MessageComponent content; + @Override public JSONObject getData() { return JSONObject.of("user_id", userId, "nickname", nickname, "content", content); diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java similarity index 67% rename from src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java index 4ebe010..3240e71 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/node/Node.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/Node.java @@ -1,11 +1,12 @@ -package cn.wzpmc.api.message.json.parts.node; +package cn.wzpmc.message.json.parts.node; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; import lombok.NoArgsConstructor; /** * 合并转发节点 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:39 diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java similarity index 84% rename from src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java index 0fcd90b..9f4f307 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/node/SingleNode.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/node/SingleNode.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.message.json.parts.node; +package cn.wzpmc.message.json.parts.node; import com.alibaba.fastjson2.JSONObject; import lombok.Data; @@ -7,6 +7,7 @@ import lombok.NoArgsConstructor; /** * 合并转发节点 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:41 @@ -14,12 +15,14 @@ import lombok.NoArgsConstructor; @EqualsAndHashCode(callSuper = true) @Data @NoArgsConstructor -public class SingleNode extends Node{ +public class SingleNode extends Node { /** * 转发的消息 ID + * * @since 2024/8/3 下午6:10 v0.0.3-dev */ private Long id; + @Override public JSONObject getData() { return JSONObject.of("id", this.id); diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java similarity index 82% rename from src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java index 687893b..e51f7f3 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/poke/Poke.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/Poke.java @@ -1,7 +1,7 @@ -package cn.wzpmc.api.message.json.parts.poke; +package cn.wzpmc.message.json.parts.poke; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; import com.alibaba.fastjson2.JSONObject; import lombok.AllArgsConstructor; import lombok.Data; @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; /** * 戳一戳 + * * @author MoYiJiangNan * @version 0.0.3-dev * @since 2024/8/2 下午11:28 diff --git a/src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java similarity index 90% rename from src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java rename to mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java index 1c291f0..90c3ce4 100644 --- a/src/main/java/cn/wzpmc/api/message/json/parts/poke/PokeType.java +++ b/mybot-api/src/main/java/cn/wzpmc/message/json/parts/poke/PokeType.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.message.json.parts.poke; +package cn.wzpmc.message.json.parts.poke; /** * 戳一戳类型 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午11:51 @@ -25,20 +26,24 @@ public enum PokeType { QIAO_MEN("敲门", 126, 2002); /** * 戳一戳名称 + * * @since 2024/8/3 下午6:18 v0.0.3-dev */ public final String name; /** * 戳一戳类型 + * * @since 2024/8/3 下午6:18 v0.0.3-dev */ public final Integer type; /** * 戳一戳ID + * * @since 2024/8/3 下午6:18 v0.0.3-dev */ public final Integer id; - PokeType(String name, Integer type, Integer id){ + + PokeType(String name, Integer type, Integer id) { this.name = name; this.type = type; this.id = id; diff --git a/src/main/java/cn/wzpmc/api/plugins/BasePlugin.java b/mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java similarity index 91% rename from src/main/java/cn/wzpmc/api/plugins/BasePlugin.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java index b167e02..3707693 100644 --- a/src/main/java/cn/wzpmc/api/plugins/BasePlugin.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/BasePlugin.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.plugins; +package cn.wzpmc.plugins; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.user.IBot; import org.apache.logging.log4j.Logger; import java.io.File; @@ -8,6 +8,7 @@ import java.io.InputStream; /** * 插件基类 + * * @author wzp * @version 0.0.2-dev * @since 2024/7/31 下午6:02 @@ -15,15 +16,16 @@ import java.io.InputStream; public interface BasePlugin { /** * 获取插件主类 + * + * @param pluginClass 插件主类类名 + * @param 插件主类类型 + * @return 插件主类 * @author wzp * @since 2024/7/31 下午7:07 v0.0.2-dev - * @param pluginClass 插件主类类名 - * @return 插件主类 - * @param 插件主类类型 */ - static T getPlugin(Class pluginClass){ + static T getPlugin(Class pluginClass) { ClassLoader loader = pluginClass.getClassLoader(); - if (loader instanceof IPluginClassLoader){ + if (loader instanceof IPluginClassLoader) { BasePlugin plugin = ((IPluginClassLoader) loader).getPlugin(); if (pluginClass.isInstance(plugin)) { return pluginClass.cast(plugin); @@ -31,11 +33,13 @@ public interface BasePlugin { } throw new RuntimeException(new IllegalAccessException("You shouldn't load plugin class without PluginClassLoader!!!")); } + /** * 获取Bot + * + * @return Bot对象 * @author wzp * @since 2024/7/31 下午7:06 v0.0.2-dev - * @return Bot对象 */ default IBot getBot() { IPluginClassLoader classLoader = this.getClassLoader(); @@ -44,14 +48,16 @@ public interface BasePlugin { /** * 获取插件所使用的类加载器 + * + * @return 类加载器 * @author wzp * @since 2024/7/31 下午7:11 v0.0.2-dev - * @return 类加载器 */ IPluginClassLoader getClassLoader(); /** * 当插件被加载时调用 + * * @author wzp * @since 2024/8/16 13:14 v0.0.5-dev */ @@ -59,6 +65,7 @@ public interface BasePlugin { /** * 当插件被卸载时调用 + * * @author wzp * @since 2024/8/16 13:14 v0.0.5-dev */ @@ -66,39 +73,44 @@ public interface BasePlugin { /** * 获取日志记录器 + * + * @return 日志记录器 * @author wzp * @since 2024/8/16 13:14 v0.0.5-dev - * @return 日志记录器 */ Logger getLogger(); /** * 从插件中读取资源 - * @author wzp - * @since 2024/8/16 13:14 v0.0.5-dev + * * @param name 资源路径 * @return 资源流 + * @author wzp + * @since 2024/8/16 13:14 v0.0.5-dev */ InputStream getResourceAsStream(String name); /** * 获取插件数据文件夹 + * + * @return 插件数据文件夹 * @author wzp * @since 2024/8/16 13:16 v0.0.5-dev - * @return 插件数据文件夹 */ File getDataFolder(); /** * 获取默认配置文件 + * + * @return 获取默认配置文件 * @author wzp * @since 2024/8/16 13:16 v0.0.5-dev - * @return 获取默认配置文件 */ File getDefaultConfigFile(); /** * 将插件默认配置文件保存到文件夹中 + * * @author wzp * @since 2024/8/16 13:16 v0.0.5-dev */ diff --git a/src/main/java/cn/wzpmc/api/plugins/ICommandManager.java b/mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java similarity index 77% rename from src/main/java/cn/wzpmc/api/plugins/ICommandManager.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java index 989e451..06d92fd 100644 --- a/src/main/java/cn/wzpmc/api/plugins/ICommandManager.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/ICommandManager.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.plugins; +package cn.wzpmc.plugins; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.commands.RawCommand; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.commands.RawCommand; /** * 指令管理器 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:40 @@ -12,17 +13,20 @@ import cn.wzpmc.api.commands.RawCommand; public interface ICommandManager { /** * 注册原始指令 + * + * @param rawCommand 原始指令 + * @param name 指令名称 * @author wzp * @since 2024/7/31 上午3:34 v0.0.1-dev - * @param rawCommand 原始指令 - * @param name 指令名称 */ void registerCommand(RawCommand rawCommand, String name); + /** * 注册Brigadier指令 + * + * @param brigadierCommand 指令对象 * @author wzp * @since 2024/7/31 上午3:35 v0.0.1-dev - * @param brigadierCommand 指令对象 */ void registerCommand(BrigadierCommand brigadierCommand); } diff --git a/src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java similarity index 92% rename from src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java index 75089ee..56f7566 100644 --- a/src/main/java/cn/wzpmc/api/plugins/IPluginClassLoader.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginClassLoader.java @@ -1,12 +1,13 @@ -package cn.wzpmc.api.plugins; +package cn.wzpmc.plugins; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.user.IBot; import java.net.URL; import java.net.URLClassLoader; /** * 插件类加载器 + * * @author wzp * @version 0.0.2-dev * @since 2024/7/31 下午6:59 @@ -14,9 +15,10 @@ import java.net.URLClassLoader; public abstract class IPluginClassLoader extends URLClassLoader { /** * 创建插件类加载器 + * + * @param urls jar文件路径 * @author wzp * @since 2024/8/23 21:41 v0.0.5-dev - * @param urls jar文件路径 */ public IPluginClassLoader(URL[] urls) { super(urls); @@ -24,33 +26,37 @@ public abstract class IPluginClassLoader extends URLClassLoader { /** * 获取当前插件 + * + * @return 插件 * @author wzp * @since 2024/7/31 下午7:15 v0.0.2-dev - * @return 插件 */ abstract public BasePlugin getPlugin(); /** * 获取Bot + * + * @return Bot对象 * @author wzp * @since 2024/7/31 下午7:15 v0.0.2-dev - * @return Bot对象 */ abstract public IBot getBot(); /** * 获取插件名称 + * + * @return 插件名称 * @author wzp * @since 2024/8/8 23:16 v0.0.4-dev - * @return 插件名称 */ abstract public String getName(); /** * 获取插件版本 + * + * @return 版本 * @author wzp * @since 2024/8/8 23:16 v0.0.4-dev - * @return 版本 */ abstract public String getVersion(); } diff --git a/src/main/java/cn/wzpmc/api/plugins/IPluginManager.java b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java similarity index 70% rename from src/main/java/cn/wzpmc/api/plugins/IPluginManager.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java index 967416b..23be3bf 100644 --- a/src/main/java/cn/wzpmc/api/plugins/IPluginManager.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/IPluginManager.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.plugins; +package cn.wzpmc.plugins; import java.lang.reflect.InvocationTargetException; import java.util.List; /** * 插件管理器 + * * @author wzp * @version 0.0.4-dev * @since 2024/8/6 下午3:19 @@ -12,18 +13,20 @@ import java.util.List; public interface IPluginManager { /** * 初始化插件主类 + * * @param 插件主类类型 * @param baseClass 插件主类 - * @param name 插件名称 - * @param version 插件版本 + * @param name 插件名称 + * @param version 插件版本 * @return 这个插件的实例 + * @throws NoSuchMethodException 初始化插件错误 + * @throws InvocationTargetException 初始化插件错误 + * @throws InstantiationException 初始化插件错误 + * @throws IllegalAccessException 初始化插件错误 * @author wzp * @since 2024/8/5 上午12:58 v0.0.4-dev - * @throws NoSuchMethodException 初始化插件错误 - * @throws InvocationTargetException 初始化插件错误 - * @throws InstantiationException 初始化插件错误 - * @throws IllegalAccessException 初始化插件错误 */ T initPlugin(Class baseClass, String name, String version) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException; + List getPlugins(); } diff --git a/src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java b/mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java similarity index 84% rename from src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java index ef12462..922d1d7 100644 --- a/src/main/java/cn/wzpmc/api/plugins/JavaPlugin.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/JavaPlugin.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.plugins; +package cn.wzpmc.plugins; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.user.IBot; import lombok.Getter; import lombok.Setter; import lombok.extern.log4j.Log4j2; @@ -14,6 +14,7 @@ import java.io.InputStream; /** * Java插件基类 + * * @author wzp * @version 0.0.2-dev * @since 2024/7/31 下午7:01 @@ -24,14 +25,16 @@ import java.io.InputStream; public abstract class JavaPlugin implements BasePlugin { /** * 日志处理器 + * * @since 2024/8/23 21:42 v0.0.5-dev */ private Logger logger; + @Override public IPluginClassLoader getClassLoader() { Class aClass = this.getClass(); ClassLoader loader = aClass.getClassLoader(); - if (loader instanceof IPluginClassLoader){ + if (loader instanceof IPluginClassLoader) { return (IPluginClassLoader) loader; } throw new RuntimeException(new IllegalAccessException("You shouldn't load plugin class without PluginClassLoader!!!")); @@ -42,7 +45,7 @@ public abstract class JavaPlugin implements BasePlugin { IPluginClassLoader classLoader = this.getClassLoader(); String name = classLoader.getName(); String version = classLoader.getVersion(); - if (this.logger == null){ + if (this.logger == null) { this.logger = LogManager.getLogger(name + "-" + version); } return this.logger; @@ -57,7 +60,7 @@ public abstract class JavaPlugin implements BasePlugin { IBot bot = this.getClassLoader().getBot(); File pluginsFolder = bot.getPluginsFolder(); File file = new File(pluginsFolder, this.getClassLoader().getName()); - if (!file.isDirectory()){ + if (!file.isDirectory()) { if (!file.mkdir()) { log.error("Failed to create plugin data folder"); return null; @@ -69,9 +72,9 @@ public abstract class JavaPlugin implements BasePlugin { @Override public File getDefaultConfigFile() { File file = new File(this.getDataFolder(), "config.yml"); - if (!file.isFile()){ + if (!file.isFile()) { try { - if (!file.createNewFile()){ + if (!file.createNewFile()) { log.error("cannot create default config file"); return null; } @@ -85,9 +88,9 @@ public abstract class JavaPlugin implements BasePlugin { @Override public void saveDefaultConfig() { - try(InputStream resourceAsStream = this.getResourceAsStream("config.yml")){ + try (InputStream resourceAsStream = this.getResourceAsStream("config.yml")) { File defaultConfigFile = this.getDefaultConfigFile(); - try(FileOutputStream fileOutputStream = new FileOutputStream(defaultConfigFile)){ + try (FileOutputStream fileOutputStream = new FileOutputStream(defaultConfigFile)) { resourceAsStream.transferTo(fileOutputStream); } } catch (IOException e) { diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java similarity index 89% rename from src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java index 5695cf8..153f460 100644 --- a/src/main/java/cn/wzpmc/api/plugins/configuration/IAuthorizationConfiguration.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IAuthorizationConfiguration.java @@ -1,23 +1,22 @@ -package cn.wzpmc.api.plugins.configuration; +package cn.wzpmc.plugins.configuration; /** - * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:42 */ public interface IAuthorizationConfiguration { /** + * @return 是否启用 * @author wzp * @since 2024/7/31 上午3:45 v0.0.1-dev - * @return 是否启用 */ boolean isEnable(); /** + * @return token * @author wzp * @since 2024/7/31 上午3:45 v0.0.1-dev - * @return token */ String getToken(); } diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java similarity index 93% rename from src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java index 58d2217..dfae53f 100644 --- a/src/main/java/cn/wzpmc/api/plugins/configuration/IConfiguration.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IConfiguration.java @@ -1,30 +1,31 @@ -package cn.wzpmc.api.plugins.configuration; +package cn.wzpmc.plugins.configuration; /** * 配置 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:42 */ public interface IConfiguration { /** + * @return WebSocket连接URL * @author wzp * @since 2024/7/31 上午3:48 v0.0.1-dev - * @return WebSocket连接URL */ String getWebsocket(); /** + * @return 通信验证 * @author wzp * @since 2024/7/31 上午3:48 v0.0.1-dev - * @return 通信验证 */ IAuthorizationConfiguration getAuthorization(); /** + * @return 失败消息提示 * @author wzp * @since 2024/7/31 上午3:49 v0.0.1-dev - * @return 失败消息提示 */ IFallbackConfiguration getFallback(); } diff --git a/src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java similarity index 91% rename from src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java index c1d279d..01103e8 100644 --- a/src/main/java/cn/wzpmc/api/plugins/configuration/IFallbackConfiguration.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/configuration/IFallbackConfiguration.java @@ -1,23 +1,24 @@ -package cn.wzpmc.api.plugins.configuration; +package cn.wzpmc.plugins.configuration; /** * 通信验证配置 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:43 */ public interface IFallbackConfiguration { /** + * @return 当指令执行失败时 * @author wzp * @since 2024/7/31 上午3:47 v0.0.1-dev - * @return 当指令执行失败时 */ String getCommand(); /** + * @return 当出现未捕获的异常时 * @author wzp * @since 2024/7/31 上午3:47 v0.0.1-dev - * @return 当出现未捕获的异常时 */ String getErrorUncaught(); } diff --git a/src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java b/mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java similarity index 91% rename from src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java rename to mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java index f4ecd40..1984f83 100644 --- a/src/main/java/cn/wzpmc/api/plugins/event/EventHandler.java +++ b/mybot-api/src/main/java/cn/wzpmc/plugins/event/EventHandler.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.plugins.event; +package cn.wzpmc.plugins.event; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -7,6 +7,7 @@ import java.lang.annotation.Target; /** * 使用此注解以指定一个方法为事件执行器 + * * @author wzp * @version 0.0.4-dev * @since 2024/8/15 23:47 diff --git a/src/main/java/cn/wzpmc/api/user/CommandSender.java b/mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java similarity index 88% rename from src/main/java/cn/wzpmc/api/user/CommandSender.java rename to mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java index 0805744..2be5956 100644 --- a/src/main/java/cn/wzpmc/api/user/CommandSender.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/CommandSender.java @@ -1,10 +1,11 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; -import cn.wzpmc.api.message.MessageComponent; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.message.MessageComponent; +import cn.wzpmc.user.permission.Permissions; /** * 命令发送者 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:32 @@ -12,66 +13,75 @@ import cn.wzpmc.api.user.permission.Permissions; public interface CommandSender { /** * 发送消息 + * + * @param messageComponent 消息组件 * @author wzp * @since 2024/7/31 上午2:42 v0.0.1-dev - * @param messageComponent 消息组件 */ void sendMessage(MessageComponent messageComponent); /** * 获取用户ID + * + * @return 用户ID * @author wzp * @since 2024/8/23 21:43 v0.0.5-dev - * @return 用户ID */ Long getId(); - /** - * 获取用户名 - * @author wzp - * @since 2024/8/23 21:43 v0.0.5-dev - * @return 用户名 - */ - String getName(); - - /** - * 获取用户权限 - * @author wzp - * @since 2024/8/23 21:43 v0.0.5-dev - * @return 权限 - */ - Permissions getPermissions(); - /** * 设置用户ID + * + * @param id 用户ID * @author wzp * @since 2024/8/23 21:43 v0.0.5-dev - * @param id 用户ID */ void setId(Long id); /** - * 设置用户名 + * 获取用户名 + * + * @return 用户名 * @author wzp * @since 2024/8/23 21:43 v0.0.5-dev + */ + String getName(); + + /** + * 设置用户名 + * * @param name 用户名 + * @author wzp + * @since 2024/8/23 21:43 v0.0.5-dev */ void setName(String name); + /** + * 获取用户权限 + * + * @return 权限 + * @author wzp + * @since 2024/8/23 21:43 v0.0.5-dev + */ + Permissions getPermissions(); + /** * 设置用户权限 + * + * @param permissions 用户权限 * @author wzp * @since 2024/8/23 21:44 v0.0.5-dev - * @param permissions 用户权限 */ void setPermissions(Permissions permissions); + /** * 指令发送者是否为管理员 + * + * @return 是否为管理员 * @author wzp * @since 2024/8/1 下午4:50 v0.0.2-dev - * @return 是否为管理员 */ - default boolean isAdmin(){ + default boolean isAdmin() { return this.getPermissions().isAdmin(); } } diff --git a/src/main/java/cn/wzpmc/api/user/Friend.java b/mybot-api/src/main/java/cn/wzpmc/user/Friend.java similarity index 74% rename from src/main/java/cn/wzpmc/api/user/Friend.java rename to mybot-api/src/main/java/cn/wzpmc/user/Friend.java index 4fe5cbe..1f3bec2 100644 --- a/src/main/java/cn/wzpmc/api/user/Friend.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/Friend.java @@ -1,9 +1,9 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.api.actions.message.send.SendPrivateMessageAction; -import cn.wzpmc.api.message.MessageComponent; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.api.IMainApi; +import cn.wzpmc.api.actions.message.send.SendPrivateMessageAction; +import cn.wzpmc.message.MessageComponent; +import cn.wzpmc.user.permission.Permissions; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -11,6 +11,7 @@ import lombok.SneakyThrows; /** * 好友 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:41 @@ -18,16 +19,17 @@ import lombok.SneakyThrows; @EqualsAndHashCode(callSuper = true) @Data @AllArgsConstructor -public class Friend extends IUser implements CommandSender{ +public class Friend extends IUser implements CommandSender { public Friend(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age) { super(id, name, permissions, nickname, sex, age); } /** * 发送消息 + * + * @param messageComponent 消息组件 * @author wzp * @since 2024/8/23 21:44 v0.0.5-dev - * @param messageComponent 消息组件 */ @SneakyThrows @Override diff --git a/src/main/java/cn/wzpmc/api/user/IBot.java b/mybot-api/src/main/java/cn/wzpmc/user/IBot.java similarity index 83% rename from src/main/java/cn/wzpmc/api/user/IBot.java rename to mybot-api/src/main/java/cn/wzpmc/user/IBot.java index 1d98eb5..98d2775 100644 --- a/src/main/java/cn/wzpmc/api/user/IBot.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/IBot.java @@ -1,10 +1,10 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.entities.Ops; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.plugins.ICommandManager; -import cn.wzpmc.api.plugins.configuration.IConfiguration; +import cn.wzpmc.api.IMainApi; +import cn.wzpmc.entities.Ops; +import cn.wzpmc.events.Event; +import cn.wzpmc.plugins.ICommandManager; +import cn.wzpmc.plugins.configuration.IConfiguration; import lombok.Getter; import java.io.File; @@ -12,6 +12,7 @@ import java.lang.reflect.InvocationTargetException; /** * 机器人接口 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:31 @@ -20,29 +21,45 @@ import java.lang.reflect.InvocationTargetException; public abstract class IBot extends MessageSender implements CommandSender { private static IBot instance = null; private String nickname; - protected IBot(){ - if (IBot.instance == null){ + + protected IBot() { + if (IBot.instance == null) { IBot.instance = this; } } + + /** + * 获取bot实例 + * + * @return 一个bot实例对象 + * @author wzp + * @since 2024/8/17 23:19 v0.0.5-dev + */ + public static IBot getInstance() { + return IBot.instance; + } + /** * 获取配置文件 + * + * @return 配置文件 * @author wzp * @since 2024/7/31 上午2:55 v0.0.1-dev - * @return 配置文件 */ public abstract IConfiguration getConfiguration(); /** * 获取指令管理器 + * + * @return 指令管理器 * @author wzp * @since 2024/7/31 上午3:42 v0.0.1-dev - * @return 指令管理器 */ public abstract ICommandManager getCommandManager(); /** * 停止Bot运行 + * * @author wzp * @since 2024/8/1 下午4:57 v0.0.2-dev */ @@ -50,57 +67,53 @@ public abstract class IBot extends MessageSender implements CommandSender { /** * 注册事件执行器 + * + * @param handler 事件执行器 * @author wzp * @since 2024/8/15 23:46 v0.0.4-dev - * @param handler 事件执行器 */ public abstract void registerEventHandler(Object handler); /** * 触发一个事件 - * @author wzp - * @since 2024/8/16 00:49 v0.0.4-dev + * * @param event 事件 * @throws InvocationTargetException 处理时出现错误 - * @throws IllegalAccessException 处理时出现错误 + * @throws IllegalAccessException 处理时出现错误 + * @author wzp + * @since 2024/8/16 00:49 v0.0.4-dev */ public abstract void triggerEvent(Event event) throws InvocationTargetException, IllegalAccessException; /** * 获取插件文件夹 + * + * @return 插件文件夹 * @author wzp * @since 2024/8/16 12:49 v0.0.5-dev - * @return 插件文件夹 */ public abstract File getPluginsFolder(); /** * 获取api接口 + * + * @return api接口 * @author wzp * @since 2024/8/16 17:34 v0.0.5-dev - * @return api接口 */ public abstract IMainApi getMainApi(); - /** - * 获取bot实例 - * @author wzp - * @since 2024/8/17 23:19 v0.0.5-dev - * @return 一个bot实例对象 - */ - public static IBot getInstance(){ - return IBot.instance; - } - public void setNickname(String nickname){ - if (this.nickname == null){ + public void setNickname(String nickname) { + if (this.nickname == null) { this.nickname = nickname; return; } throw new RuntimeException(new IllegalAccessException("Shouldn't set nickname after initialized")); } + @Override - public void setId(Long id){ - if (this.id == null){ + public void setId(Long id) { + if (this.id == null) { this.id = id; return; } @@ -109,65 +122,73 @@ public abstract class IBot extends MessageSender implements CommandSender { /** * 获取OP列表 + * + * @return OP列表 * @author wzp * @since 2024/8/25 14:11 v1.0.0 - * @return OP列表 */ abstract public Ops getOps(); /** * 添加一个OP用户 + * + * @param userId 用户ID * @author wzp * @since 2024/8/25 14:12 v1.0.0 - * @param userId 用户ID */ abstract public void addOp(Long userId); /** * 为一个群添加OP用户 + * + * @param groupId 群ID + * @param userId 用户ID * @author wzp * @since 2024/8/25 20:21 v1.0.0 - * @param groupId 群ID - * @param userId 用户ID */ abstract public void addOp(Long groupId, Long userId); /** * 移除一个用户的OP身份 - * @author wzp - * @since 2024/8/25 20:23 v1.0.0 + * * @param userId 用户ID * @return 是否移除 + * @author wzp + * @since 2024/8/25 20:23 v1.0.0 */ abstract public boolean removeOp(Long userId); + /** * 移除一个用户在群内的OP身份 + * + * @param groupId 群ID + * @param userId 用户ID + * @return 是否移除 * @author wzp * @since 2024/8/25 20:23 v1.0.0 - * @param groupId 群ID - * @param userId 用户ID - * @return 是否移除 */ abstract public boolean removeOp(Long groupId, Long userId); /** * 检查用户是否为OP - * @author wzp - * @since 2024/8/25 14:10 v1.0.0 + * * @param userId 用户ID * @return 是否为OP + * @author wzp + * @since 2024/8/25 14:10 v1.0.0 */ - public boolean isBotOp(Long userId){ + public boolean isBotOp(Long userId) { return getOps().isAdmin(userId); } /** * 检查用户在群内是否为OP + * + * @param groupId 群ID + * @param userId 用户ID + * @return 是否为OP * @author wzp * @since 2024/8/25 20:22 v1.0.0 - * @param groupId 群ID - * @param userId 用户ID - * @return 是否为OP */ public boolean isBotOp(Long groupId, Long userId) { return this.getOps().isAdmin(groupId, userId); diff --git a/src/main/java/cn/wzpmc/api/user/IUser.java b/mybot-api/src/main/java/cn/wzpmc/user/IUser.java similarity index 86% rename from src/main/java/cn/wzpmc/api/user/IUser.java rename to mybot-api/src/main/java/cn/wzpmc/user/IUser.java index 9f3c559..eecf749 100644 --- a/src/main/java/cn/wzpmc/api/user/IUser.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/IUser.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.user.permission.Permissions; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; /** * 用户接口 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/30 下午11:42 @@ -19,31 +20,37 @@ import lombok.NoArgsConstructor; public abstract class IUser extends MessageSender { /** * 玩家昵称 + * * @since 2024/8/1 下午8:34 v0.0.2-dev */ protected String nickname; /** * 用户性别 + * * @since 2024/8/1 下午8:25 v0.0.2-dev */ protected Sex sex; /** * 用户年龄 + * * @since 2024/8/1 下午8:25 v0.0.2-dev */ protected Integer age; + protected IUser(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age) { super(id, name, permissions); this.nickname = nickname; this.sex = sex; this.age = age; } + @Override - public String getName(){ + public String getName() { return this.nickname; } + @Override - public void setName(String name){ + public void setName(String name) { this.nickname = name; this.name = name; } diff --git a/src/main/java/cn/wzpmc/api/user/MessageSender.java b/mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java similarity index 88% rename from src/main/java/cn/wzpmc/api/user/MessageSender.java rename to mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java index c614fcf..8c94cfc 100644 --- a/src/main/java/cn/wzpmc/api/user/MessageSender.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/MessageSender.java @@ -1,6 +1,6 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.user.permission.Permissions; import com.alibaba.fastjson2.annotation.JSONField; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; /** * 消息发送者 + * * @author wzp * @version 0.0.5-dev * @since 2024/8/18 00:01 @@ -18,18 +19,21 @@ import lombok.NoArgsConstructor; public class MessageSender { /** * 用户ID + * * @since 2024/7/30 下午11:48 v0.0.1-dev */ @JSONField(name = "user_id") protected Long id; /** * 用户名 + * * @since 2024/7/30 下午11:48 v0.0.1-dev */ @JSONField(name = "nickname") protected String name; /** * 权限 + * * @since 2024/8/1 下午8:24 v0.0.2-dev */ protected Permissions permissions; diff --git a/src/main/java/cn/wzpmc/api/user/Sex.java b/mybot-api/src/main/java/cn/wzpmc/user/Sex.java similarity index 88% rename from src/main/java/cn/wzpmc/api/user/Sex.java rename to mybot-api/src/main/java/cn/wzpmc/user/Sex.java index 8f65d73..591d814 100644 --- a/src/main/java/cn/wzpmc/api/user/Sex.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/Sex.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.user; +package cn.wzpmc.user; /** * 用户性别 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:17 @@ -9,16 +10,19 @@ package cn.wzpmc.api.user; public enum Sex { /** * 男性 + * * @since 2024/8/1 下午8:17 v0.0.2-dev */ MALE, /** * 女性 + * * @since 2024/8/1 下午8:18 v0.0.2-dev */ FEMALE, /** * 未知 + * * @since 2024/8/1 下午8:18 v0.0.2-dev */ UNKNOWN diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java similarity index 78% rename from src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java index 5f3c473..68c8116 100644 --- a/src/main/java/cn/wzpmc/api/user/group/GroupCommandSender.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupCommandSender.java @@ -1,18 +1,17 @@ -package cn.wzpmc.api.user.group; +package cn.wzpmc.user.group; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.api.actions.message.send.SendGroupMessageAction; -import cn.wzpmc.api.events.message.group.GroupMessageEvent; -import cn.wzpmc.api.message.MessageComponent; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.message.json.JsonMessage; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.At; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.Sex; -import cn.wzpmc.api.user.permission.Permissions; -import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.api.IMainApi; +import cn.wzpmc.api.actions.message.send.SendGroupMessageAction; +import cn.wzpmc.events.message.group.GroupMessageEvent; +import cn.wzpmc.message.MessageComponent; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.message.json.JsonMessage; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.At; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.Sex; +import cn.wzpmc.user.permission.Permissions; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -29,33 +28,22 @@ import java.util.List; @Data @AllArgsConstructor public class GroupCommandSender extends GroupUser implements CommandSender { - public GroupCommandSender(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title, Long groupId){ - super(id, name, permissions, nickname, sex, age, card, area, level, role, title); - this.groupId = groupId; - } private Long groupId; - @SneakyThrows - @Override - public void sendMessage(MessageComponent messageComponent) { - IBot instance = IBot.getInstance(); - IMainApi mainApi = instance.getMainApi(); - JsonMessage jsonMessage = new JsonMessage(); - List messageParts = jsonMessage.getMessageParts(); - messageParts.add(new At(this.getId())); - messageParts.add(StringMessage.text(" " + messageComponent.toMessageString())); - SendGroupMessageAction sendGroupMessageAction = new SendGroupMessageAction(this.groupId, jsonMessage); - mainApi.doApiCall(sendGroupMessageAction); + public GroupCommandSender(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title, Long groupId) { + super(id, name, permissions, nickname, sex, age, card, area, level, role, title); + this.groupId = groupId; } /** * 将一个群消息事件转为一个群指令执行者 - * @author wzp - * @since 2024/8/23 21:42 v0.0.5-dev + * * @param event 群消息事件 * @return 指令执行者对象 + * @author wzp + * @since 2024/8/23 21:42 v0.0.5-dev */ - public static GroupCommandSender of(GroupMessageEvent event){ + public static GroupCommandSender of(GroupMessageEvent event) { GroupUser sender = event.getSender(); Long eventGroupId = event.getGroupId(); Long id = sender.getId(); @@ -69,10 +57,23 @@ public class GroupCommandSender extends GroupUser implements CommandSender { String level = sender.getLevel(); GroupUserRole role = sender.getRole(); String title = sender.getTitle(); - IBot instance = MyBot.getInstance(); + IBot instance = IBot.getInstance(); if (!permissions.isAdmin() && instance.isBotOp(eventGroupId, id)) { permissions = Permissions.ADMIN; } return new GroupCommandSender(id, name, permissions, nickname, sex, age, card, area, level, role, title, eventGroupId); } + + @SneakyThrows + @Override + public void sendMessage(MessageComponent messageComponent) { + IBot instance = IBot.getInstance(); + IMainApi mainApi = instance.getMainApi(); + JsonMessage jsonMessage = new JsonMessage(); + List messageParts = jsonMessage.getMessageParts(); + messageParts.add(new At(this.getId())); + messageParts.add(StringMessage.text(" " + messageComponent.toMessageString())); + SendGroupMessageAction sendGroupMessageAction = new SendGroupMessageAction(this.groupId, jsonMessage); + mainApi.doApiCall(sendGroupMessageAction); + } } diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUser.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java similarity index 88% rename from src/main/java/cn/wzpmc/api/user/group/GroupUser.java rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java index e93a05d..e4423d6 100644 --- a/src/main/java/cn/wzpmc/api/user/group/GroupUser.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUser.java @@ -1,8 +1,8 @@ -package cn.wzpmc.api.user.group; +package cn.wzpmc.user.group; -import cn.wzpmc.api.user.IUser; -import cn.wzpmc.api.user.Sex; -import cn.wzpmc.api.user.permission.Permissions; +import cn.wzpmc.user.IUser; +import cn.wzpmc.user.Sex; +import cn.wzpmc.user.permission.Permissions; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -10,6 +10,7 @@ import lombok.NoArgsConstructor; /** * 群内用户 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:19 @@ -21,29 +22,35 @@ import lombok.NoArgsConstructor; public class GroupUser extends IUser { /** * 群名片/备注 + * * @since 2024/8/1 下午8:54 v0.0.2-dev */ private String card; /** * 地区 + * * @since 2024/8/1 下午8:54 v0.0.2-dev */ private String area; /** * 成员等级 + * * @since 2024/8/1 下午8:53 v0.0.2-dev */ private String level; /** * 群角色 + * * @since 2024/8/1 下午8:53 v0.0.2-dev */ private GroupUserRole role; /** * 专属头衔 + * * @since 2024/8/1 下午8:53 v0.0.2-dev */ private String title; + public GroupUser(Long id, String name, Permissions permissions, String nickname, Sex sex, Integer age, String card, String area, String level, GroupUserRole role, String title) { super(id, name, permissions, nickname, sex, age); this.card = card; diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java similarity index 90% rename from src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java index d363d06..062aa80 100644 --- a/src/main/java/cn/wzpmc/api/user/group/GroupUserAnonymousInfo.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserAnonymousInfo.java @@ -1,9 +1,10 @@ -package cn.wzpmc.api.user.group; +package cn.wzpmc.user.group; import lombok.Data; /** * 匿名成员消息 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:57 @@ -12,16 +13,19 @@ import lombok.Data; public class GroupUserAnonymousInfo { /** * 匿名ID + * * @since 2024/8/1 下午8:58 v0.0.2-dev */ private Long id; /** * 匿名名称 + * * @since 2024/8/1 下午8:58 v0.0.2-dev */ private String name; /** * 匿名成员flag + * * @since 2024/8/1 下午8:58 v0.0.2-dev */ private String flag; diff --git a/src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java similarity index 87% rename from src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java rename to mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java index d111cce..d97db65 100644 --- a/src/main/java/cn/wzpmc/api/user/group/GroupUserRole.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/group/GroupUserRole.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.user.group; +package cn.wzpmc.user.group; /** * 成员角色 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午8:52 @@ -9,16 +10,19 @@ package cn.wzpmc.api.user.group; public enum GroupUserRole { /** * 群主 + * * @since 2024/8/1 下午8:52 v0.0.2-dev */ OWNER, /** * 群管理 + * * @since 2024/8/1 下午8:52 v0.0.2-dev */ ADMIN, /** * 群成员 + * * @since 2024/8/1 下午8:52 v0.0.2-dev */ MEMBER diff --git a/src/main/java/cn/wzpmc/api/user/permission/Permissions.java b/mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java similarity index 79% rename from src/main/java/cn/wzpmc/api/user/permission/Permissions.java rename to mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java index b1ad3ec..843a011 100644 --- a/src/main/java/cn/wzpmc/api/user/permission/Permissions.java +++ b/mybot-api/src/main/java/cn/wzpmc/user/permission/Permissions.java @@ -1,7 +1,8 @@ -package cn.wzpmc.api.user.permission; +package cn.wzpmc.user.permission; /** * 权限 + * * @author wzp * @version 0.0.2-dev * @since 2024/8/1 下午4:48 @@ -9,24 +10,29 @@ package cn.wzpmc.api.user.permission; public enum Permissions { /** * 普通用户 + * * @since 2024/8/1 下午4:49 v0.0.2-dev */ MEMBER(0), /** * 管理员 + * * @since 2024/8/1 下午4:49 v0.0.2-dev */ ADMIN(1), /** * 群主 + * * @since 2024/8/24 19:25 v0.0.6-dev */ OWNER(2); final int level; - Permissions(int level){ + + Permissions(int level) { this.level = level; } - public boolean isAdmin(){ + + public boolean isAdmin() { return this.level > 0; } } diff --git a/src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java b/mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java similarity index 82% rename from src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java rename to mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java index 7108d80..58f9144 100644 --- a/src/main/java/cn/wzpmc/api/utils/CqCodeUtils.java +++ b/mybot-api/src/main/java/cn/wzpmc/utils/CqCodeUtils.java @@ -1,12 +1,12 @@ -package cn.wzpmc.api.utils; +package cn.wzpmc.utils; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.message.json.parts.PartType; -import cn.wzpmc.api.message.json.parts.music.MusicType; -import cn.wzpmc.api.message.json.parts.node.CustomNode; -import cn.wzpmc.api.message.json.parts.node.SingleNode; -import cn.wzpmc.api.message.json.parts.poke.Poke; -import cn.wzpmc.api.message.json.parts.poke.PokeType; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.message.json.parts.PartType; +import cn.wzpmc.message.json.parts.music.MusicType; +import cn.wzpmc.message.json.parts.node.CustomNode; +import cn.wzpmc.message.json.parts.node.SingleNode; +import cn.wzpmc.message.json.parts.poke.Poke; +import cn.wzpmc.message.json.parts.poke.PokeType; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.annotation.JSONField; @@ -22,6 +22,7 @@ import java.util.Objects; /** * CQ码相关工具类 + * * @author wzp * @version 1.0.0 * @since 2024/8/26 14:06 @@ -30,23 +31,25 @@ import java.util.Objects; public class CqCodeUtils { /** * 判断一个字符串是否为CQ码 - * @author wzp - * @since 2024/8/26 14:08 v1.0.0 + * * @param word 一个词(不包含空格) * @return 是否为CQ码 + * @author wzp + * @since 2024/8/26 14:08 v1.0.0 */ - public static boolean isCQ(String word){ + public static boolean isCQ(String word) { return word.startsWith("[") && word.endsWith("]"); } /** * 解析CQ码为Map - * @author wzp - * @since 2024/8/26 14:08 v1.0.0 + * * @param word 一个词(不包含空格) * @return 解析后的Map + * @author wzp + * @since 2024/8/26 14:08 v1.0.0 */ - public static Map parse(String word){ + public static Map parse(String word) { StringBuilder key = new StringBuilder(); boolean keyDone = false; StringBuilder value = new StringBuilder(); @@ -58,7 +61,7 @@ public class CqCodeUtils { result.put(key.toString(), value.toString()); } if (keyDone) { - if (c == ','){ + if (c == ',') { result.put(key.toString(), value.toString()); key = new StringBuilder(); value = new StringBuilder(); @@ -68,7 +71,7 @@ public class CqCodeUtils { value.append(c); continue; } - if (c == ':' || c == '='){ + if (c == ':' || c == '=') { keyDone = true; continue; } @@ -79,10 +82,11 @@ public class CqCodeUtils { /** * 将文本转化为JsonMessagePart - * @author wzp - * @since 2024/8/26 14:34 v1.0.0 + * * @param word 一个词(不包含空格) * @return 消息文本段 + * @author wzp + * @since 2024/8/26 14:34 v1.0.0 */ @SneakyThrows public static JsonMessagePart parseToPart(String word) { @@ -92,40 +96,42 @@ public class CqCodeUtils { JSONObject jsonObj = JSONObject.of("type", cq, "data", jsonObject); return parsePart(jsonObj); } + /** * 将json解析为单个消息段 - * @author wzp - * @since 2024/8/26 14:40 v1.0.0 + * * @param jsonObject json数据 * @return 消息段 * @throws InvocationTargetException 调用构造方法失败时抛出 - * @throws InstantiationException 实例化错误时抛出 - * @throws IllegalAccessException 实例化错误时抛出 - * @throws NoSuchMethodException 找不到构造方法时抛出 + * @throws InstantiationException 实例化错误时抛出 + * @throws IllegalAccessException 实例化错误时抛出 + * @throws NoSuchMethodException 找不到构造方法时抛出 + * @author wzp + * @since 2024/8/26 14:40 v1.0.0 */ public static JsonMessagePart parsePart(JSONObject jsonObject) throws InvocationTargetException, InstantiationException, IllegalAccessException, NoSuchMethodException { PartType type = jsonObject.getObject("type", PartType.class); Class clazz = type.clazz; JSONObject dataObject = jsonObject.getJSONObject("data"); - if (type.equals(PartType.POKE)){ + if (type.equals(PartType.POKE)) { Integer pokeType = dataObject.getInteger("type"); Integer pokeId = dataObject.getInteger("id"); for (PokeType value : PokeType.values()) { - if (value.type.equals(pokeType) && value.id.equals(pokeId)){ + if (value.type.equals(pokeType) && value.id.equals(pokeId)) { return new Poke(value); } } log.warn("无法识别的戳一戳类型:type: {}, id: {}", pokeType, pokeId); return new Poke(); } - if (type.equals(PartType.NODE)){ - if (jsonObject.containsKey("content")){ + if (type.equals(PartType.NODE)) { + if (jsonObject.containsKey("content")) { clazz = CustomNode.class; - }else{ + } else { clazz = SingleNode.class; } } - if (type.equals(PartType.MUSIC)){ + if (type.equals(PartType.MUSIC)) { MusicType musicType = dataObject.getObject("type", MusicType.class); dataObject.put("musicType", musicType); clazz = musicType.clazz; diff --git a/src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java similarity index 91% rename from src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java rename to mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java index e81bf0e..ee659c3 100644 --- a/src/main/java/cn/wzpmc/api/utils/IncreasbleHashMap.java +++ b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleHashMap.java @@ -1,4 +1,4 @@ -package cn.wzpmc.api.utils; +package cn.wzpmc.utils; import java.util.ArrayList; import java.util.Collection; @@ -7,11 +7,12 @@ import java.util.List; /** * 一个单Key对应多Value的HashMap + * * @author wzp * @version 0.0.4-dev * @since 2024/8/16 00:02 */ -public class IncreasbleHashMap extends HashMap> implements IncreasbleMap>{ +public class IncreasbleHashMap extends HashMap> implements IncreasbleMap> { @Override public void add(K key, V value) { List newArrayList = super.getOrDefault(key, new ArrayList<>()); @@ -32,7 +33,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr public boolean delete(V value) { boolean has = false; for (List vs : super.values()) { - if (vs.contains(value)){ + if (vs.contains(value)) { has = true; vs.remove(value); } @@ -46,6 +47,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr this.addAll(entry.getKey(), entry.getValue()); } } + @Override public void addAll(K key, Collection values) { List list = this.getOrDefault(key, new ArrayList<>()); @@ -56,7 +58,7 @@ public class IncreasbleHashMap extends HashMap> implements Incr @Override public boolean containsValue(Object value) { for (List vs : super.values()) { - if (vs.contains(value)){ + if (vs.contains(value)) { return true; } } diff --git a/src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java similarity index 90% rename from src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java rename to mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java index 3a823ec..544deae 100644 --- a/src/main/java/cn/wzpmc/api/utils/IncreasbleMap.java +++ b/mybot-api/src/main/java/cn/wzpmc/utils/IncreasbleMap.java @@ -1,60 +1,66 @@ -package cn.wzpmc.api.utils; +package cn.wzpmc.utils; import java.util.Collection; import java.util.Map; /** * 一个单Key对应多Value的Map - * @author wzp - * @version 0.0.4-dev - * @since 2024/8/15 23:57 + * * @param 集合类型 * @param key类型 * @param value类型 + * @author wzp + * @version 0.0.4-dev + * @since 2024/8/15 23:57 */ public interface IncreasbleMap> extends Map { /** * 向一个Key中添加元素 + * + * @param key 键 + * @param value 值 * @author wzp * @since 2024/8/16 00:04 v0.0.4-dev - * @param key 键 - * @param value 值 */ void add(K key, V value); /** * 删除某个key中的对应元素 - * @author wzp - * @since 2024/8/16 00:05 v0.0.4-dev - * @param key 键 + * + * @param key 键 * @param value 值 * @return 是否删除成功 + * @author wzp + * @since 2024/8/16 00:05 v0.0.4-dev */ boolean delete(K key, V value); /** * 删除所有的对应value的值 - * @author wzp - * @since 2024/8/16 00:05 v0.0.4-dev + * * @param value 值 * @return 是否删除成功 + * @author wzp + * @since 2024/8/16 00:05 v0.0.4-dev */ boolean delete(V value); /** * 将两个表融合 + * + * @param increasbleMap 另一个表 * @author wzp * @since 2024/8/16 00:35 v0.0.4-dev - * @param increasbleMap 另一个表 */ void addAll(IncreasbleMap increasbleMap); /** * 将所有value添加到此key中 + * + * @param key 键 + * @param values 所有要添加的值的集合 * @author wzp * @since 2024/8/16 00:43 v0.0.4-dev - * @param key 键 - * @param values 所有要添加的值的集合 */ void addAll(K key, Collection values); } diff --git a/settings.gradle.kts b/settings.gradle.kts index 893e1f3..8fef55e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,3 @@ val projectName by extra("MyBot") -rootProject.name = projectName \ No newline at end of file +rootProject.name = projectName +include("mybot-api") diff --git a/src/main/java/cn/wzpmc/Main.java b/src/main/java/cn/wzpmc/Main.java index d89c481..2f59ae9 100644 --- a/src/main/java/cn/wzpmc/Main.java +++ b/src/main/java/cn/wzpmc/Main.java @@ -1,8 +1,7 @@ package cn.wzpmc; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.api.actions.message.get.GetLoginInfoAction; -import cn.wzpmc.api.plugins.BasePlugin; +import cn.wzpmc.api.IMainApi; +import cn.wzpmc.api.actions.message.get.GetLoginInfoAction; import cn.wzpmc.builtin.commands.DeOpCommand; import cn.wzpmc.builtin.commands.HelpCommand; import cn.wzpmc.builtin.commands.OpCommand; @@ -12,6 +11,7 @@ import cn.wzpmc.configuration.Configuration; import cn.wzpmc.console.MyBotConsole; import cn.wzpmc.entities.user.bot.MyBot; import cn.wzpmc.network.WebSocketConnectionHandler; +import cn.wzpmc.plugins.BasePlugin; import cn.wzpmc.plugins.CommandManager; import cn.wzpmc.plugins.PluginClassLoader; import cn.wzpmc.plugins.PluginManager; @@ -32,14 +32,16 @@ import java.net.URL; public class Main { private static final String DEFAULT_CONFIGURATION_FILE_PATH = "templates/config.yaml"; - public static void initializeJVM(){ + public static void initializeJVM() { System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager"); System.setProperty("terminal.jline", "true"); } - public static void initializeJsonUtils(){ + + public static void initializeJsonUtils() { JsonUtils.initReader(); JsonUtils.initWriter(); } + public static Configuration getConfiguration() { File configurationFile = new File("config.yaml"); if (TemplateFileUtils.saveDefaultConfig(Main.class.getClassLoader(), DEFAULT_CONFIGURATION_FILE_PATH, configurationFile)) { @@ -50,10 +52,12 @@ public class Main { log.debug("读取配置文件 {}", configurationFile.getAbsolutePath()); return YamlUtils.readYamlFile(configurationFile, Configuration.class); } - public static MyBot createBot(Configuration configuration){ + + public static MyBot createBot(Configuration configuration) { return new MyBot(configuration); } - public static URI getUriFromConfiguration(Configuration configuration){ + + public static URI getUriFromConfiguration(Configuration configuration) { URI uri; try { uri = new URI(configuration.getWebsocket()); @@ -62,6 +66,7 @@ public class Main { } return uri; } + public static void loadPlugins(MyBot myBot) throws MalformedURLException { File pluginsDir = new File("plugins"); if (TemplateFileUtils.createDefaultDirectory(pluginsDir)) { @@ -85,7 +90,7 @@ public class Main { URI fileURI = file.toURI(); PluginClassLoader pluginClassLoader = new PluginClassLoader(new URL[]{fileURI.toURL()}, myBot); BasePlugin load = ReflectionUtils.load(pluginClassLoader, file, pluginManager); - if (load == null){ + if (load == null) { log.info("插件{}加载失败!", name); continue; } @@ -98,27 +103,30 @@ public class Main { commandManager.registerCommand(new HelpCommand()); commandManager.registerCommand(new DeOpCommand()); } - public static WebSocketConnectionHandler createConnection(MyBot myBot, URI uri){ + + public static WebSocketConnectionHandler createConnection(MyBot myBot, URI uri) { WebSocketConnectionHandler webSocketConnectionHandler = new WebSocketConnectionHandler(myBot); webSocketConnectionHandler.connect(uri); return webSocketConnectionHandler; } - public static void startConsole(MyBot myBot, WebSocketConnectionHandler webSocketConnectionHandler){ + + public static void startConsole(MyBot myBot, WebSocketConnectionHandler webSocketConnectionHandler) { MyBotConsole myBotConsole = new MyBotConsole(myBot, webSocketConnectionHandler); myBotConsole.start(); } + @SneakyThrows public static void main(String[] args) { initializeJVM(); initializeJsonUtils(); log.info("启动MyBot..."); Configuration configuration = getConfiguration(); - if (configuration == null){ + if (configuration == null) { return; } MyBot myBot = createBot(configuration); URI uri = getUriFromConfiguration(configuration); - if (uri == null){ + if (uri == null) { log.error("无法解析websocket地址"); return; } diff --git a/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java index 8a11b4c..9bc4391 100644 --- a/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java +++ b/src/main/java/cn/wzpmc/builtin/commands/DeOpCommand.java @@ -1,13 +1,13 @@ package cn.wzpmc.builtin.commands; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.commands.arguments.UserIdArguments; -import cn.wzpmc.api.entities.Ops; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.group.GroupCommandSender; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.commands.arguments.UserIdArguments; +import cn.wzpmc.entities.Ops; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.group.GroupCommandSender; import com.mojang.brigadier.arguments.LongArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.RequiredArgumentBuilder; @@ -19,9 +19,11 @@ import com.mojang.brigadier.builder.RequiredArgumentBuilder; */ public class DeOpCommand implements BrigadierCommand { private final IBot instance; - public DeOpCommand(){ + + public DeOpCommand() { this.instance = MyBot.getInstance(); } + @Override public LiteralArgumentBuilder getCommandNode() { return LiteralArgumentBuilder. @@ -32,11 +34,11 @@ public class DeOpCommand implements BrigadierCommand { Ops ops = instance.getOps(); CommandSender source = e.getSource(); Long targetId = e.getArgument("user", Long.class); - if (source instanceof GroupCommandSender){ - if (ops.isAdmin(source.getId())){ + if (source instanceof GroupCommandSender) { + if (ops.isAdmin(source.getId())) { instance.removeOp(targetId); source.sendMessage(StringMessage.text("已为用户:" + targetId + "移除总OP权限")); - }else{ + } else { Long groupId = ((GroupCommandSender) source).getGroupId(); instance.removeOp(groupId, targetId); source.sendMessage(StringMessage.text("已为用户:" + targetId + "移除群:" + groupId + "的OP权限")); @@ -53,7 +55,7 @@ public class DeOpCommand implements BrigadierCommand { Long targetGroupId = e.getArgument("group", Long.class); Long targetId = e.getArgument("user", Long.class); CommandSender source = e.getSource(); - if (source instanceof GroupCommandSender){ + if (source instanceof GroupCommandSender) { if (!instance.isBotOp(targetGroupId, source.getId())) { source.sendMessage(StringMessage.text("权限不足!")); return 0; diff --git a/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java index c588c04..86f8468 100644 --- a/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java +++ b/src/main/java/cn/wzpmc/builtin/commands/HelpCommand.java @@ -1,12 +1,12 @@ package cn.wzpmc.builtin.commands; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.commands.RawCommand; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.commands.RawCommand; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.message.StringMessage; import cn.wzpmc.plugins.CommandManager; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.tree.CommandNode; @@ -22,6 +22,15 @@ import java.util.concurrent.ConcurrentHashMap; * @since 2024/8/25 15:07 */ public class HelpCommand implements BrigadierCommand { + private static void handlerNode(Collection> node, int tabCount, StringBuilder builder) { + for (CommandNode commandSenderCommandNode : node) { + builder.append("\t".repeat(Math.max(0, tabCount))); + builder.append(commandSenderCommandNode.getUsageText()); + builder.append('\n'); + handlerNode(commandSenderCommandNode.getChildren(), tabCount + 1, builder); + } + } + @Override public LiteralArgumentBuilder getCommandNode() { return LiteralArgumentBuilder.literal("help").executes(e -> { @@ -47,12 +56,4 @@ public class HelpCommand implements BrigadierCommand { return 0; }); } - private static void handlerNode(Collection> node, int tabCount, StringBuilder builder){ - for (CommandNode commandSenderCommandNode : node) { - builder.append("\t".repeat(Math.max(0, tabCount))); - builder.append(commandSenderCommandNode.getUsageText()); - builder.append('\n'); - handlerNode(commandSenderCommandNode.getChildren(), tabCount + 1, builder); - } - } } diff --git a/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java b/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java index 4e34685..d65f710 100644 --- a/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java +++ b/src/main/java/cn/wzpmc/builtin/commands/OpCommand.java @@ -1,13 +1,13 @@ package cn.wzpmc.builtin.commands; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.commands.arguments.UserIdArguments; -import cn.wzpmc.api.entities.Ops; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.group.GroupCommandSender; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.commands.arguments.UserIdArguments; +import cn.wzpmc.entities.Ops; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.group.GroupCommandSender; import com.mojang.brigadier.arguments.LongArgumentType; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.RequiredArgumentBuilder; @@ -21,9 +21,34 @@ import java.util.*; */ public class OpCommand implements BrigadierCommand { private final IBot instance; - public OpCommand(){ + + public OpCommand() { this.instance = MyBot.getInstance(); } + + private static String getFullOpListString(Collection admins) { + return "总管理:" + '\n' + + getOpListString(admins); + } + + private static String getGroupOpListString(Collection admins, Long groupId) { + return "群" + groupId + "的管理员:" + '\n' + + getOpListString(admins); + } + + private static StringBuilder getOpListString(Collection admins) { + StringBuilder builder = new StringBuilder(); + if (admins.isEmpty()) { + builder.append("无").append('\n'); + } + for (Long admin : admins) { + builder.append('\t').append(admin).append('\n'); + } + int lastLine = builder.lastIndexOf("\n"); + builder.deleteCharAt(lastLine); + return builder; + } + @Override public LiteralArgumentBuilder getCommandNode() { return LiteralArgumentBuilder. @@ -49,16 +74,16 @@ public class OpCommand implements BrigadierCommand { fullAdmin = true; } StringBuilder builder = new StringBuilder(); - if (fullAdmin){ + if (fullAdmin) { builder.append(getFullOpListString(fullAdmins)).append('\n'); for (Map.Entry> stringListEntry : groupAdmins.entrySet()) { builder.append(getGroupOpListString(stringListEntry.getValue(), Long.valueOf(stringListEntry.getKey()))).append('\n'); } builder.deleteCharAt(builder.lastIndexOf("\n")); - }else if (groupAdmin) { + } else if (groupAdmin) { builder.append(getGroupOpListString(sendGroupAdmins, sendGroupId)); - }else { + } else { builder.append("权限不足!"); } source.sendMessage(StringMessage.text(builder.toString())); @@ -118,11 +143,11 @@ public class OpCommand implements BrigadierCommand { Ops ops = instance.getOps(); CommandSender source = e.getSource(); Long targetId = e.getArgument("user", Long.class); - if (source instanceof GroupCommandSender){ - if (ops.isAdmin(source.getId())){ + if (source instanceof GroupCommandSender) { + if (ops.isAdmin(source.getId())) { instance.addOp(targetId); source.sendMessage(StringMessage.text("已为用户:" + targetId + "添加总OP权限")); - }else{ + } else { Long groupId = ((GroupCommandSender) source).getGroupId(); instance.addOp(groupId, targetId); source.sendMessage(StringMessage.text("已为用户:" + targetId + "添加群:" + groupId + "的OP权限")); @@ -139,7 +164,7 @@ public class OpCommand implements BrigadierCommand { Long targetGroupId = e.getArgument("group", Long.class); Long targetId = e.getArgument("user", Long.class); CommandSender source = e.getSource(); - if (source instanceof GroupCommandSender){ + if (source instanceof GroupCommandSender) { if (!instance.isBotOp(targetGroupId, source.getId())) { source.sendMessage(StringMessage.text("权限不足!")); return 0; @@ -160,24 +185,4 @@ public class OpCommand implements BrigadierCommand { ) ); } - private static String getFullOpListString(Collection admins){ - return "总管理:" + '\n' + - getOpListString(admins); - } - private static String getGroupOpListString(Collection admins, Long groupId){ - return "群" + groupId + "的管理员:" + '\n' + - getOpListString(admins); - } - private static StringBuilder getOpListString(Collection admins) { - StringBuilder builder = new StringBuilder(); - if (admins.isEmpty()){ - builder.append("无").append('\n'); - } - for (Long admin : admins) { - builder.append('\t').append(admin).append('\n'); - } - int lastLine = builder.lastIndexOf("\n"); - builder.deleteCharAt(lastLine); - return builder; - } } diff --git a/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java b/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java index 57e5094..c27ce4f 100644 --- a/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java +++ b/src/main/java/cn/wzpmc/builtin/commands/StopCommand.java @@ -1,10 +1,10 @@ package cn.wzpmc.builtin.commands; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.entities.Ops; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.entities.Ops; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import lombok.RequiredArgsConstructor; @@ -12,6 +12,7 @@ import java.util.Set; /** * /stop指令 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午2:26 @@ -19,6 +20,7 @@ import java.util.Set; @RequiredArgsConstructor public class StopCommand implements BrigadierCommand { private final IBot bot; + @Override public LiteralArgumentBuilder getCommandNode() { return LiteralArgumentBuilder.literal("stop") diff --git a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java index 91ecdcd..8fa55e4 100644 --- a/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java +++ b/src/main/java/cn/wzpmc/builtin/event/CommandEventHandler.java @@ -1,43 +1,45 @@ package cn.wzpmc.builtin.event; -import cn.wzpmc.api.events.message.group.GroupMessageEvent; -import cn.wzpmc.api.events.message.priv.PrivateMessageEvent; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.plugins.event.EventHandler; -import cn.wzpmc.api.user.Friend; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.group.GroupCommandSender; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.events.message.group.GroupMessageEvent; +import cn.wzpmc.events.message.priv.PrivateMessageEvent; +import cn.wzpmc.message.StringMessage; import cn.wzpmc.plugins.CommandManager; +import cn.wzpmc.plugins.event.EventHandler; +import cn.wzpmc.user.Friend; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.group.GroupCommandSender; import java.util.regex.Pattern; /** * 命令事件处理器 + * * @author wzp * @version 1.0.0 * @since 2024/8/25 13:40 */ public class CommandEventHandler { @EventHandler - public void onGroupMessage(GroupMessageEvent event){ + public void onGroupMessage(GroupMessageEvent event) { GroupCommandSender groupCommandSender = GroupCommandSender.of(event); IBot instance = MyBot.getInstance(); Long id = instance.getId(); String message = event.getRawMessage().getMessage(); Pattern compile = Pattern.compile("\\[CQ:at,qq=" + id + ".*?]\\s*?/.*"); - if (compile.asMatchPredicate().test(message)){ + if (compile.asMatchPredicate().test(message)) { CommandManager commandManager = (CommandManager) instance.getCommandManager(); commandManager.execute(groupCommandSender, message.replaceFirst("\\[CQ:at,qq=[0-9]{10}.*?]\\s*?/", "")); } } + @EventHandler - public void onPrivateMessage(PrivateMessageEvent event){ + public void onPrivateMessage(PrivateMessageEvent event) { Friend sender = event.getSender(); IBot instance = MyBot.getInstance(); StringMessage rawMessage = event.getRawMessage(); String message = rawMessage.getMessage(); - if (message.startsWith("/")){ + if (message.startsWith("/")) { CommandManager commandManager = (CommandManager) instance.getCommandManager(); commandManager.execute(sender, message.replaceFirst("/", "")); } diff --git a/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java b/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java index f7ce007..d44bc11 100644 --- a/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java +++ b/src/main/java/cn/wzpmc/configuration/AuthorizationConfiguration.java @@ -1,23 +1,26 @@ package cn.wzpmc.configuration; -import cn.wzpmc.api.plugins.configuration.IAuthorizationConfiguration; +import cn.wzpmc.plugins.configuration.IAuthorizationConfiguration; import lombok.Data; /** * 通信验证配置类 + * * @author wzp - * @since 2024/7/30 下午11:50 * @version 0.0.1-dev + * @since 2024/7/30 下午11:50 */ @Data public class AuthorizationConfiguration implements IAuthorizationConfiguration { /** * 是否启用 + * * @since 2024/7/30 下午11:50 v0.0.1-dev */ private boolean enable; /** * token + * * @since 2024/7/30 下午11:50 v0.0.1-dev */ private String token; diff --git a/src/main/java/cn/wzpmc/configuration/Configuration.java b/src/main/java/cn/wzpmc/configuration/Configuration.java index 3a010a3..bee90bc 100644 --- a/src/main/java/cn/wzpmc/configuration/Configuration.java +++ b/src/main/java/cn/wzpmc/configuration/Configuration.java @@ -1,28 +1,32 @@ package cn.wzpmc.configuration; -import cn.wzpmc.api.plugins.configuration.IConfiguration; +import cn.wzpmc.plugins.configuration.IConfiguration; import lombok.Data; /** * 配置类 + * * @author wzp - * @since 2024/7/30 下午11:48 * @version 0.0.1-dev + * @since 2024/7/30 下午11:48 */ @Data public class Configuration implements IConfiguration { /** * WebSocket连接URL + * * @since 2024/7/30 下午11:48 v0.0.1-dev */ private String websocket; /** * 通信验证 + * * @since 2024/7/30 下午11:49 v0.0.1-dev */ private AuthorizationConfiguration authorization; /** * 失败消息提示 + * * @since 2024/7/30 下午11:49 v0.0.1-dev */ private FallbackConfiguration fallback; diff --git a/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java b/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java index 8ffc946..1f87b3e 100644 --- a/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java +++ b/src/main/java/cn/wzpmc/configuration/FallbackConfiguration.java @@ -1,23 +1,26 @@ package cn.wzpmc.configuration; -import cn.wzpmc.api.plugins.configuration.IFallbackConfiguration; +import cn.wzpmc.plugins.configuration.IFallbackConfiguration; import lombok.Data; /** * 当失败时报错消息配置实现 + * * @author wzp - * @since 2024/7/31 上午3:44 * @version 0.0.1-dev + * @since 2024/7/31 上午3:44 */ @Data public class FallbackConfiguration implements IFallbackConfiguration { /** * 当指令执行失败时 + * * @since 2024/7/31 上午3:44 v0.0.1-dev */ private String command; /** * 当出现未捕获的异常时 + * * @since 2024/7/31 上午3:44 v0.0.1-dev */ private String errorUncaught; diff --git a/src/main/java/cn/wzpmc/console/MyBotConsole.java b/src/main/java/cn/wzpmc/console/MyBotConsole.java index 160ad41..43bacc2 100644 --- a/src/main/java/cn/wzpmc/console/MyBotConsole.java +++ b/src/main/java/cn/wzpmc/console/MyBotConsole.java @@ -12,6 +12,7 @@ import org.jline.reader.LineReaderBuilder; /** * 主控制台 + * * @author wzp * @version 0.0.2-dev * @since 2024/7/31 下午9:47 @@ -19,12 +20,13 @@ import org.jline.reader.LineReaderBuilder; @Log4j2 @RequiredArgsConstructor public class MyBotConsole extends SimpleTerminalConsole { - @Getter - private boolean running = true; private final MyBot bot; private final CommandManager commandManager; private final WebSocketConnectionHandler webSocketConnectionHandler; - public MyBotConsole(MyBot bot, WebSocketConnectionHandler webSocketConnectionHandler){ + @Getter + private boolean running = true; + + public MyBotConsole(MyBot bot, WebSocketConnectionHandler webSocketConnectionHandler) { this.bot = bot; this.commandManager = bot.getCommandManager(); this.webSocketConnectionHandler = webSocketConnectionHandler; diff --git a/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java b/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java index 5b997ab..de47891 100644 --- a/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java +++ b/src/main/java/cn/wzpmc/console/logger/PluginMessageFactory.java @@ -1,7 +1,7 @@ package cn.wzpmc.console.logger; -import cn.wzpmc.api.plugins.BasePlugin; -import cn.wzpmc.api.plugins.IPluginClassLoader; +import cn.wzpmc.plugins.BasePlugin; +import cn.wzpmc.plugins.IPluginClassLoader; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; @@ -11,22 +11,25 @@ import static org.apache.logging.log4j.spi.AbstractLogger.DEFAULT_FLOW_MESSAGE_F /** * 插件消息工厂 + * * @author wzp * @version 0.0.4-dev * @since 2024/8/9 00:35 */ public class PluginMessageFactory implements MessageFactory { - private final String tag; private static final MessageFactory baseFactory; static { try { baseFactory = (MessageFactory) DEFAULT_FLOW_MESSAGE_FACTORY_CLASS.getConstructor().newInstance(); - } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | InvocationTargetException e) { + } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | + InvocationTargetException e) { throw new RuntimeException(e); } } + private final String tag; + public PluginMessageFactory(BasePlugin plugin) { IPluginClassLoader classLoader = plugin.getClassLoader(); String name = classLoader.getName(); diff --git a/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java b/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java index f295fed..f3d631b 100644 --- a/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java +++ b/src/main/java/cn/wzpmc/entities/api/ApiResponseRequired.java @@ -1,26 +1,29 @@ package cn.wzpmc.entities.api; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.ActionResponse; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.ActionResponse; import lombok.Data; import java.util.concurrent.CompletableFuture; /** * api返回需求 + * * @author wzp - * @since 2024/8/16 22:08 * @version 0.0.5-dev + * @since 2024/8/16 22:08 */ @Data public class ApiResponseRequired { /** * 请求返回Promise + * * @since 2024/8/23 21:46 v0.0.5-dev */ private final CompletableFuture> future; /** * 请求体 + * * @since 2024/8/23 21:47 v0.0.5-dev */ private final Action request; diff --git a/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java b/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java index c514c04..1d96090 100644 --- a/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java +++ b/src/main/java/cn/wzpmc/entities/event/EventHandlerMethod.java @@ -6,6 +6,7 @@ import java.lang.reflect.Method; /** * 事件处理器 + * * @author wzp * @version 0.0.4-dev * @since 2024/8/15 23:53 @@ -14,11 +15,13 @@ import java.lang.reflect.Method; public class EventHandlerMethod { /** * 处理器类 + * * @since 2024/8/23 21:47 v0.0.5-dev */ private final Object object; /** * 处理的方法 + * * @since 2024/8/23 21:47 v0.0.5-dev */ private final Method method; diff --git a/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java b/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java index 4bc8360..d784f6a 100644 --- a/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java +++ b/src/main/java/cn/wzpmc/entities/user/bot/MyBot.java @@ -1,25 +1,25 @@ package cn.wzpmc.entities.user.bot; -import cn.wzpmc.api.api.ActionResponse; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.api.actions.message.get.GetGroupListAction; -import cn.wzpmc.api.entities.GroupInformation; -import cn.wzpmc.api.entities.Ops; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.message.MessageComponent; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.message.json.JsonMessage; -import cn.wzpmc.api.plugins.BasePlugin; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.permission.Permissions; -import cn.wzpmc.api.utils.IncreasbleHashMap; +import cn.wzpmc.api.ActionResponse; +import cn.wzpmc.api.IMainApi; +import cn.wzpmc.api.actions.message.get.GetGroupListAction; import cn.wzpmc.configuration.Configuration; import cn.wzpmc.console.MyBotConsole; +import cn.wzpmc.entities.GroupInformation; +import cn.wzpmc.entities.Ops; import cn.wzpmc.entities.event.EventHandlerMethod; +import cn.wzpmc.events.Event; +import cn.wzpmc.message.MessageComponent; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.message.json.JsonMessage; import cn.wzpmc.network.WebSocketConnectionHandler; +import cn.wzpmc.plugins.BasePlugin; import cn.wzpmc.plugins.CommandManager; import cn.wzpmc.plugins.PluginManager; import cn.wzpmc.plugins.api.MainApi; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.permission.Permissions; +import cn.wzpmc.utils.IncreasbleHashMap; import cn.wzpmc.utils.ReflectionUtils; import com.alibaba.fastjson2.JSON; import lombok.Getter; @@ -39,31 +39,33 @@ import java.util.Set; /** * 机器人实现类 + * * @author wzp - * @since 2024/7/30 下午11:46 * @version 0.0.1-dev + * @since 2024/7/30 下午11:46 */ @Log4j2 @Getter public class MyBot extends IBot { private final Configuration configuration; + private final CommandManager commandManager = new CommandManager(this); + private final PluginManager pluginManager = new PluginManager(); + private final IncreasbleHashMap, EventHandlerMethod> events = new IncreasbleHashMap<>(); + @Getter + private final Ops ops; + private final File opFile; @Setter private Long id; @Setter private String name; - private final CommandManager commandManager = new CommandManager(this); - private final PluginManager pluginManager = new PluginManager(); - private final IncreasbleHashMap, EventHandlerMethod> events = new IncreasbleHashMap<>(); private File pluginsFolder; @Setter private MyBotConsole console = null; @Getter private IMainApi mainApi; private WebSocketConnectionHandler connectionHandler; - @Getter - private final Ops ops; - private final File opFile; - public MyBot(Configuration configuration){ + + public MyBot(Configuration configuration) { Ops opsTmp; this.configuration = configuration; this.permissions = Permissions.ADMIN; @@ -75,18 +77,18 @@ public class MyBot extends IBot { log.error("无法创建OP文件!"); } } catch (IOException e) { - log.error("创建OP文件失败!",e); + log.error("创建OP文件失败!", e); throw new RuntimeException(e); } } else { - try(FileInputStream fis = new FileInputStream(this.opFile)) { + try (FileInputStream fis = new FileInputStream(this.opFile)) { opsTmp = JSON.parseObject(fis, Ops.class); } catch (IOException e) { log.error("读取OP文件失败!"); throw new RuntimeException(e); } } - if (opsTmp == null){ + if (opsTmp == null) { opsTmp = new Ops(); } this.ops = opsTmp; @@ -94,10 +96,10 @@ public class MyBot extends IBot { @Override public void sendMessage(MessageComponent messageComponent) { - if (messageComponent instanceof StringMessage){ + if (messageComponent instanceof StringMessage) { log.info(messageComponent.toMessageString()); } - if (messageComponent instanceof JsonMessage){ + if (messageComponent instanceof JsonMessage) { log.info(((JsonMessage) messageComponent).toTextDisplay()); } } @@ -121,15 +123,16 @@ public class MyBot extends IBot { @Override public void triggerEvent(Event event) throws InvocationTargetException, IllegalAccessException { List eventHandlerMethods = this.events.get(event.getClass()); - if (eventHandlerMethods == null){ + if (eventHandlerMethods == null) { return; } for (EventHandlerMethod eventHandlerMethod : eventHandlerMethods) { eventHandlerMethod.getMethod().invoke(eventHandlerMethod.getObject(), event); } } + public void setPluginsFolder(File pluginsFolder) { - if (this.pluginsFolder != null){ + if (this.pluginsFolder != null) { throw new IllegalStateException("This bot already initialized!"); } this.pluginsFolder = pluginsFolder; @@ -175,7 +178,7 @@ public class MyBot extends IBot { public boolean removeOp(Long groupId, Long userId) { boolean groupAdmin = this.ops.isAdmin(groupId, userId); boolean admin = this.ops.isAdmin(userId); - if (!groupAdmin && !admin){ + if (!groupAdmin && !admin) { return false; } Map> admins = this.ops.getGroupAdmins(); @@ -206,7 +209,7 @@ public class MyBot extends IBot { } private void flushOpsFile() { - try(FileOutputStream fos = new FileOutputStream(this.opFile)){ + try (FileOutputStream fos = new FileOutputStream(this.opFile)) { JSON.writeTo(fos, this.ops); } catch (IOException e) { log.error("写入OP文件失败!", e); diff --git a/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java b/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java index db8de59..50bf835 100644 --- a/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java +++ b/src/main/java/cn/wzpmc/network/HandshakePacketHandler.java @@ -12,6 +12,7 @@ import java.util.concurrent.CompletableFuture; /** * 握手包处理器 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:53 @@ -29,6 +30,7 @@ public class HandshakePacketHandler extends SimpleChannelInboundHandler { private final IBot bot; + private final ExecutorService threadPool = Executors.newFixedThreadPool(4); + @Override protected void channelRead0(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame webSocketFrame) { String text = webSocketFrame.text(); // System.out.println(text); - if (!JSON.isValidObject(text)){ + if (!JSON.isValidObject(text)) { log.warn("收到了无法处理的WebSocket数据包:{}", text); return; } @@ -45,15 +48,15 @@ public class PacketHandler extends SimpleChannelInboundHandler { try { @@ -67,13 +70,14 @@ public class PacketHandler extends SimpleChannelInboundHandler 请求类型 + * @param 返回类型 * @author wzp * @since 2024/8/23 21:48 v0.0.5-dev - * @param dataString 返回json文本 - * @param 请求类型 - * @param 返回类型 */ - private void handleApiEcho(String dataString){ + private void handleApiEcho(String dataString) { //noinspection unchecked ActionResponse actionResponse = JSON.parseObject(dataString, ActionResponse.class); UUID echo = actionResponse.getEcho(); @@ -89,13 +93,14 @@ public class PacketHandler extends SimpleChannelInboundHandler 请求体类型 + * @param 返回类型 * @author wzp * @since 2024/8/23 21:48 v0.0.5-dev - * @param echo 回调ID - * @param responsePromise 返回Promise - * @param request 请求体 - * @param 请求体类型 - * @param 返回类型 */ public void registerResponse(UUID echo, CompletableFuture> responsePromise, Action request) { ActionReader.tasks.put(echo, new ApiResponseRequired<>(responsePromise, request)); diff --git a/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java b/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java index e0470a7..578767a 100644 --- a/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java +++ b/src/main/java/cn/wzpmc/network/WebSocketChannelInitializer.java @@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor; /** * WebSocket连接初始化 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午1:19 @@ -19,6 +20,7 @@ import lombok.RequiredArgsConstructor; public class WebSocketChannelInitializer extends ChannelInitializer { private final ChannelHandler handler; private final HandshakePacketHandler handshakePacketHandler; + @Override protected void initChannel(SocketChannel socketChannel) { ChannelPipeline pipeline = socketChannel.pipeline(); diff --git a/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java b/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java index 424ae95..9355798 100644 --- a/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java +++ b/src/main/java/cn/wzpmc/network/WebSocketConnectionHandler.java @@ -1,8 +1,8 @@ package cn.wzpmc.network; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.ActionResponse; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.ActionResponse; +import cn.wzpmc.user.IBot; import com.alibaba.fastjson2.JSON; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; @@ -23,6 +23,7 @@ import java.util.concurrent.ExecutionException; /** * 此类用于建立WebSocket连接 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/30 下午11:54 @@ -35,13 +36,15 @@ public class WebSocketConnectionHandler { private ChannelFuture channelFuture; private PacketHandler packetHandler; private HandshakePacketHandler handshakePacketHandler; + /** * 建立连接 + * + * @param websocket websocket连接地址 * @author wzp * @since 2024/7/30 下午11:55 v0.0.1-dev - * @param websocket websocket连接地址 */ - public void connect(URI websocket){ + public void connect(URI websocket) { log.info("正在连接websocket"); Bootstrap bootstrap = new Bootstrap(); WebSocketClientHandshaker clientHandshaker = WebSocketClientHandshakerFactory.newHandshaker(websocket, WebSocketVersion.V13, null, false, new DefaultHttpHeaders()); @@ -53,23 +56,25 @@ public class WebSocketConnectionHandler { /** * 强制结束通信 + * * @author wzp * @since 2024/7/31 上午2:04 v0.0.1-dev */ - public void kill(){ + public void kill() { log.info("结束连接..."); this.eventLoopGroup.shutdownGracefully(); } /** * 发送请求 + * + * @param request 请求 + * @param 请求体类型 + * @param 返回类型 + * @return 返回 + * @throws InterruptedException 当请求进行时按下Ctrl+C时抛出 * @author wzp * @since 2024/8/23 21:49 v0.0.5-dev - * @param request 请求 - * @return 返回 - * @param 请求体类型 - * @param 返回类型 - * @throws InterruptedException 当请求进行时按下Ctrl+C时抛出 */ public ActionResponse sendRequest(Action request) throws InterruptedException { try { diff --git a/src/main/java/cn/wzpmc/plugins/CommandManager.java b/src/main/java/cn/wzpmc/plugins/CommandManager.java index 15c22d5..5aa6ca5 100644 --- a/src/main/java/cn/wzpmc/plugins/CommandManager.java +++ b/src/main/java/cn/wzpmc/plugins/CommandManager.java @@ -1,11 +1,10 @@ package cn.wzpmc.plugins; -import cn.wzpmc.api.commands.BrigadierCommand; -import cn.wzpmc.api.commands.RawCommand; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.plugins.ICommandManager; -import cn.wzpmc.api.user.CommandSender; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.commands.BrigadierCommand; +import cn.wzpmc.commands.RawCommand; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.user.CommandSender; +import cn.wzpmc.user.IBot; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.context.ParsedCommandNode; @@ -32,57 +31,52 @@ import java.util.stream.Collectors; /** * 指令管理器实现类 + * * @author wzp * @version 0.0.1-dev * @since 2024/7/31 上午3:13 */ @Log4j2 public class CommandManager implements ICommandManager, Completer, Highlighter { + private static final int[] COLORS = {AttributedStyle.CYAN, AttributedStyle.YELLOW, AttributedStyle.GREEN, AttributedStyle.MAGENTA, AttributedStyle.BLUE}; @Getter private final CommandDispatcher dispatcher = new CommandDispatcher<>(); @Getter private final ConcurrentHashMap rawCommands = new ConcurrentHashMap<>(); - private static final int[] COLORS = {AttributedStyle.CYAN, AttributedStyle.YELLOW, AttributedStyle.GREEN, AttributedStyle.MAGENTA, AttributedStyle.BLUE}; private final IBot bot; + public CommandManager(IBot bot) { this.bot = bot; } + @Override public void registerCommand(RawCommand rawCommand, String name) { - if (rawCommands.containsKey(name)){ + if (rawCommands.containsKey(name)) { log.error("指令{}已经被注册,注册失败!", name); return; } this.rawCommands.put(name, rawCommand); } + @Override - public void registerCommand(BrigadierCommand brigadierCommand){ + public void registerCommand(BrigadierCommand brigadierCommand) { dispatcher.register(brigadierCommand.getCommandNode()); } - @ToString - private static final class CommandPart { - private final String name; - private final List args; - public CommandPart(String rawCommandLine) { - List list = Arrays.asList(rawCommandLine.split(" ")); - this.name = list.get(0); - this.args = list.subList(1, list.size()); - } - } /** * 执行指令 - * @author wzp - * @since 2024/7/31 上午3:35 v0.0.1-dev - * @param sender 发送者 + * + * @param sender 发送者 * @param rawCommandLine 完整命令行 * @return 是否执行成功 + * @author wzp + * @since 2024/7/31 上午3:35 v0.0.1-dev */ - public boolean execute(CommandSender sender, String rawCommandLine){ + public boolean execute(CommandSender sender, String rawCommandLine) { CommandPart commandPart = new CommandPart(rawCommandLine); if (rawCommands.containsKey(commandPart.name)) { return rawCommands.get(commandPart.name).onExecute(sender, commandPart.args); - }else { + } else { try { dispatcher.execute(rawCommandLine, sender); } catch (CommandSyntaxException e) { @@ -99,15 +93,16 @@ public class CommandManager implements ICommandManager, Completer, Highlighter { /** * tab补全的结果 + * + * @param sender 消息发送者 + * @param rawCommandLine 完整命令行 + * @param cursor 当前光标位置 + * @return 所有被补全的指令 * @author wzp * @since 2024/7/31 上午3:36 v0.0.1-dev - * @param sender 消息发送者 - * @param rawCommandLine 完整命令行 - * @param cursor 当前光标位置 - * @return 所有被补全的指令 */ @SneakyThrows - public List tabComplete(CommandSender sender, String rawCommandLine, int cursor){ + public List tabComplete(CommandSender sender, String rawCommandLine, int cursor) { CommandPart commandPart = new CommandPart(rawCommandLine); List result = new ArrayList<>(); if (rawCommands.containsKey(commandPart.name)) { @@ -115,7 +110,7 @@ public class CommandManager implements ICommandManager, Completer, Highlighter { } for (Map.Entry stringRawCommandEntry : rawCommands.entrySet()) { String key = stringRawCommandEntry.getKey(); - if (key.contains(commandPart.name)){ + if (key.contains(commandPart.name)) { result.add(key); } } @@ -136,12 +131,12 @@ public class CommandManager implements ICommandManager, Completer, Highlighter { final AttributedStringBuilder builder = new AttributedStringBuilder(); String[] strings = s.split(" "); String commandName = strings[0]; - if (rawCommands.containsKey(commandName)){ + if (rawCommands.containsKey(commandName)) { builder.append(commandName, AttributedStyle.DEFAULT.foreground(AttributedStyle.GREEN)).append(' '); for (int i = 1; i < strings.length; i++) { builder.append(strings[i]).append(' '); } - }else { + } else { final ParseResults results = this.dispatcher.parse(s, this.bot); int pos = 0; if (s.startsWith("/")) { @@ -174,8 +169,22 @@ public class CommandManager implements ICommandManager, Completer, Highlighter { } @Override - public void setErrorPattern(Pattern pattern) {} + public void setErrorPattern(Pattern pattern) { + } @Override - public void setErrorIndex(int i) {} + public void setErrorIndex(int i) { + } + + @ToString + private static final class CommandPart { + private final String name; + private final List args; + + public CommandPart(String rawCommandLine) { + List list = Arrays.asList(rawCommandLine.split(" ")); + this.name = list.get(0); + this.args = list.subList(1, list.size()); + } + } } diff --git a/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java b/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java index 2d5c1e4..c443434 100644 --- a/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java +++ b/src/main/java/cn/wzpmc/plugins/PluginClassLoader.java @@ -1,8 +1,6 @@ package cn.wzpmc.plugins; -import cn.wzpmc.api.plugins.BasePlugin; -import cn.wzpmc.api.plugins.IPluginClassLoader; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.user.IBot; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.ToString; @@ -12,6 +10,7 @@ import java.util.Objects; /** * 插件类加载器实现 + * * @author wzp * @version 0.0.2-dev * @since 2024/7/31 下午7:12 @@ -24,12 +23,14 @@ public class PluginClassLoader extends IPluginClassLoader { private BasePlugin plugin; private String name; private String version; + public PluginClassLoader(URL[] urls, IBot bot) { super(urls); this.bot = bot; } - public void setPlugin(BasePlugin plugin, String name, String version){ - if (Objects.isNull(this.plugin)){ + + public void setPlugin(BasePlugin plugin, String name, String version) { + if (Objects.isNull(this.plugin)) { this.plugin = plugin; this.name = name; this.version = version; diff --git a/src/main/java/cn/wzpmc/plugins/PluginManager.java b/src/main/java/cn/wzpmc/plugins/PluginManager.java index cbac7ac..5d3502b 100644 --- a/src/main/java/cn/wzpmc/plugins/PluginManager.java +++ b/src/main/java/cn/wzpmc/plugins/PluginManager.java @@ -1,7 +1,5 @@ package cn.wzpmc.plugins; -import cn.wzpmc.api.plugins.BasePlugin; -import cn.wzpmc.api.plugins.IPluginManager; import lombok.Getter; import java.lang.reflect.Constructor; @@ -12,20 +10,22 @@ import java.util.Objects; /** * 插件管理器 + * * @author wzp - * @since 2024/8/4 下午2:38 * @version 0.0.4-dev + * @since 2024/8/4 下午2:38 */ @Getter public class PluginManager implements IPluginManager { private final List plugins = new ArrayList<>(); + public T initPlugin(Class baseClass, String name, String version) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { ClassLoader loader = baseClass.getClassLoader(); - if (!(loader instanceof PluginClassLoader)){ + if (!(loader instanceof PluginClassLoader)) { throw new IllegalArgumentException("baseClass " + baseClass.getName() + " must be loaded with plugin class loader!!!"); } PluginClassLoader pluginClassLoader = (PluginClassLoader) loader; - if (Objects.nonNull(pluginClassLoader.getPlugin())){ + if (Objects.nonNull(pluginClassLoader.getPlugin())) { throw new IllegalStateException("baseClass " + baseClass.getName() + " has already been initialization!!!"); } Constructor constructor = baseClass.getConstructor(); diff --git a/src/main/java/cn/wzpmc/plugins/api/MainApi.java b/src/main/java/cn/wzpmc/plugins/api/MainApi.java index 60446c3..1f226bb 100644 --- a/src/main/java/cn/wzpmc/plugins/api/MainApi.java +++ b/src/main/java/cn/wzpmc/plugins/api/MainApi.java @@ -1,10 +1,10 @@ package cn.wzpmc.plugins.api; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.ActionResponse; -import cn.wzpmc.api.api.IMainApi; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.ActionResponse; +import cn.wzpmc.api.IMainApi; import cn.wzpmc.network.WebSocketConnectionHandler; +import cn.wzpmc.user.IBot; import lombok.RequiredArgsConstructor; /** diff --git a/src/main/java/cn/wzpmc/utils/JsonUtils.java b/src/main/java/cn/wzpmc/utils/JsonUtils.java index 33c72a0..08cf06f 100644 --- a/src/main/java/cn/wzpmc/utils/JsonUtils.java +++ b/src/main/java/cn/wzpmc/utils/JsonUtils.java @@ -1,20 +1,20 @@ package cn.wzpmc.utils; -import cn.wzpmc.api.api.ActionResponse; -import cn.wzpmc.api.api.Actions; -import cn.wzpmc.api.entities.HonorType; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.events.message.MessageEvent; -import cn.wzpmc.api.events.meta.MetaEvent; -import cn.wzpmc.api.events.notice.NoticeEvent; -import cn.wzpmc.api.events.notice.notify.NotifyEvent; -import cn.wzpmc.api.events.request.RequestEvent; -import cn.wzpmc.api.message.StringMessage; -import cn.wzpmc.api.message.json.JsonMessage; -import cn.wzpmc.api.user.Friend; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.IUser; -import cn.wzpmc.api.user.group.GroupUser; +import cn.wzpmc.api.ActionResponse; +import cn.wzpmc.api.Actions; +import cn.wzpmc.entities.HonorType; +import cn.wzpmc.events.Event; +import cn.wzpmc.events.message.MessageEvent; +import cn.wzpmc.events.meta.MetaEvent; +import cn.wzpmc.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.notify.NotifyEvent; +import cn.wzpmc.events.request.RequestEvent; +import cn.wzpmc.message.StringMessage; +import cn.wzpmc.message.json.JsonMessage; +import cn.wzpmc.user.Friend; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.IUser; +import cn.wzpmc.user.group.GroupUser; import cn.wzpmc.utils.json.action.ActionReader; import cn.wzpmc.utils.json.action.ActionWriter; import cn.wzpmc.utils.json.event.*; @@ -30,6 +30,7 @@ import com.alibaba.fastjson2.JSON; /** * JSON相关工具类 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午2:04 @@ -37,6 +38,7 @@ import com.alibaba.fastjson2.JSON; public class JsonUtils { /** * 初始化JSON反序列化相关 + * * @author wzp * @since 2024/8/23 21:50 v0.0.5-dev */ @@ -48,6 +50,7 @@ public class JsonUtils { /** * 初始化JSON序列化相关 + * * @author wzp * @since 2024/8/23 21:50 v0.0.5-dev */ diff --git a/src/main/java/cn/wzpmc/utils/ReflectionUtils.java b/src/main/java/cn/wzpmc/utils/ReflectionUtils.java index 18152e6..602e971 100644 --- a/src/main/java/cn/wzpmc/utils/ReflectionUtils.java +++ b/src/main/java/cn/wzpmc/utils/ReflectionUtils.java @@ -1,12 +1,10 @@ package cn.wzpmc.utils; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.plugins.BasePlugin; -import cn.wzpmc.api.plugins.IPluginManager; -import cn.wzpmc.api.plugins.event.EventHandler; -import cn.wzpmc.api.utils.IncreasbleHashMap; -import cn.wzpmc.api.utils.IncreasbleMap; import cn.wzpmc.entities.event.EventHandlerMethod; +import cn.wzpmc.events.Event; +import cn.wzpmc.plugins.BasePlugin; +import cn.wzpmc.plugins.IPluginManager; +import cn.wzpmc.plugins.event.EventHandler; import com.alibaba.fastjson2.JSONObject; import lombok.extern.log4j.Log4j2; import org.yaml.snakeyaml.Yaml; @@ -24,17 +22,18 @@ import java.util.jar.JarFile; /** * 反射工具类 + * * @author wzp - * @since 2024/8/5 上午1:42 * @version 0.0.4-dev + * @since 2024/8/5 上午1:42 */ @Log4j2 public class ReflectionUtils { - public static BasePlugin load(URLClassLoader loader, File file, IPluginManager pluginManager){ + public static BasePlugin load(URLClassLoader loader, File file, IPluginManager pluginManager) { String absolutePath = file.getAbsolutePath(); - try(JarFile jarFile = new JarFile(file)){ + try (JarFile jarFile = new JarFile(file)) { Optional first = jarFile.stream().filter((e) -> "plugin.yml".equals(e.getName())).findFirst(); - if (first.isEmpty()){ + if (first.isEmpty()) { log.error("cannot find plugin.yml in plugin {}", absolutePath); return null; } @@ -44,7 +43,7 @@ public class ReflectionUtils { String main = jsonObject.getString("main"); String version = jsonObject.getString("version"); String name = jsonObject.getString("name"); - try{ + try { Class aClass = loader.loadClass(main); if (!BasePlugin.class.isAssignableFrom(aClass)) { log.error("插件{}-{}的主类{}未继承cn.wzpmc.api.plugins.JavaPlugin", name, version, main); @@ -60,7 +59,7 @@ public class ReflectionUtils { log.error(e); return null; } - }catch (ClassNotFoundException e) { + } catch (ClassNotFoundException e) { log.error("无法为插件{}-{}加载主类{}!", name, version, main); return null; } @@ -70,17 +69,18 @@ public class ReflectionUtils { return null; } } - public static IncreasbleMap, EventHandlerMethod, List> loadEvents(Object eventHandlerObject){ + + public static IncreasbleMap, EventHandlerMethod, List> loadEvents(Object eventHandlerObject) { Class eventHandlerClass = eventHandlerObject.getClass(); IncreasbleMap, EventHandlerMethod, List> result = new IncreasbleHashMap<>(); for (Method declaredMethod : eventHandlerClass.getDeclaredMethods()) { declaredMethod.setAccessible(true); - if (!declaredMethod.isAnnotationPresent(EventHandler.class)){ + if (!declaredMethod.isAnnotationPresent(EventHandler.class)) { continue; } if (declaredMethod.getParameterCount() == 1) { Class eventType = declaredMethod.getParameterTypes()[0]; - if (Event.class.isAssignableFrom(eventType)){ + if (Event.class.isAssignableFrom(eventType)) { //noinspection unchecked result.add((Class) eventType, new EventHandlerMethod(eventHandlerObject, declaredMethod)); continue; diff --git a/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java b/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java index c7ce6a3..357a574 100644 --- a/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java +++ b/src/main/java/cn/wzpmc/utils/TemplateFileUtils.java @@ -6,32 +6,34 @@ import java.io.*; /** * 模板文件工具类 + * * @author wzp - * @since 2024/07/30 23:28:25 * @version 0.0.1-dev + * @since 2024/07/30 23:28:25 */ @Log4j2 public class TemplateFileUtils { /** * 写入默认配置文件 + * * @param loader 读取默认配置所使用的类加载器 - * @param path 默认配置的路径 - * @param saved 保存到的文件 + * @param path 默认配置的路径 + * @param saved 保存到的文件 * @return 是否写入 */ - public static boolean saveDefaultConfig(ClassLoader loader, String path, File saved){ + public static boolean saveDefaultConfig(ClassLoader loader, String path, File saved) { log.debug("创建默认配置文件从ClassLoader {} -> {} ==> {}", loader, path, saved); - try(InputStream sourceInputStream = loader.getResourceAsStream(path)){ - if (sourceInputStream == null){ + try (InputStream sourceInputStream = loader.getResourceAsStream(path)) { + if (sourceInputStream == null) { throw new RuntimeException(new FileNotFoundException("Didn't find " + path + " from class loader: " + loader.getName())); } - if (saved.exists()){ + if (saved.exists()) { return false; } if (!saved.createNewFile()) { throw new IOException("Cannot create file " + saved.getAbsolutePath()); } - try(FileOutputStream targetFileStream = new FileOutputStream(saved)){ + try (FileOutputStream targetFileStream = new FileOutputStream(saved)) { sourceInputStream.transferTo(targetFileStream); } return true; @@ -43,16 +45,17 @@ public class TemplateFileUtils { /** * 创建默认文件夹,当其不存在时会被创建 - * @author wzp - * @since 2024/8/4 下午2:36 v0.0.4-dev + * * @param path 文件夹路径 * @return 是否创建 + * @author wzp + * @since 2024/8/4 下午2:36 v0.0.4-dev */ - public static boolean createDefaultDirectory(File path){ - log.debug("创建文件夹:{}", path.getAbsolutePath()); - if (path.isDirectory()){ - return false; - } + public static boolean createDefaultDirectory(File path) { + log.debug("创建文件夹:{}", path.getAbsolutePath()); + if (path.isDirectory()) { + return false; + } if (path.mkdir()) { return true; } diff --git a/src/main/java/cn/wzpmc/utils/YamlUtils.java b/src/main/java/cn/wzpmc/utils/YamlUtils.java index ea3b2e3..511ba5c 100644 --- a/src/main/java/cn/wzpmc/utils/YamlUtils.java +++ b/src/main/java/cn/wzpmc/utils/YamlUtils.java @@ -10,22 +10,24 @@ import java.io.IOException; /** * Yaml工具类 + * * @author wzp - * @since 2024/7/30 下午11:46 * @version 0.0.1-dev + * @since 2024/7/30 下午11:46 */ @Log4j2 public class YamlUtils { /** * 读取Yaml文件并将其序列化为一个类 - * @param file yaml文件 + * + * @param file yaml文件 * @param clazz 需要序列化的类 + * @param 序列化的类型(需要空参构造方法) * @return 一个对象 - * @param 序列化的类型(需要空参构造方法) */ - public static T readYamlFile(File file, Class clazz){ + public static T readYamlFile(File file, Class clazz) { log.debug("读取Yaml文件 {},并写入到类 {}", file, clazz); - try(FileInputStream fis = new FileInputStream(file)){ + try (FileInputStream fis = new FileInputStream(file)) { Yaml yaml = new Yaml(); return yaml.loadAs(fis, clazz); } catch (IOException e) { @@ -36,13 +38,14 @@ public class YamlUtils { /** * 将一个类序列化为Yaml文件 + * * @param file yaml文件 - * @param obj 数据类 - * @param 序列化的对象 + * @param obj 数据类 + * @param 序列化的对象 */ - public static void writeYamlFile(File file, T obj){ + public static void writeYamlFile(File file, T obj) { log.debug("将对象:{} 写入Yaml文件:{}中", obj, file); - try(FileWriter writer = new FileWriter(file)){ + try (FileWriter writer = new FileWriter(file)) { Yaml yaml = new Yaml(); yaml.dump(obj, writer); } catch (IOException e) { diff --git a/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java b/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java index 0a9cf73..c694718 100644 --- a/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java +++ b/src/main/java/cn/wzpmc/utils/json/action/ActionReader.java @@ -1,8 +1,8 @@ package cn.wzpmc.utils.json.action; -import cn.wzpmc.api.api.Action; -import cn.wzpmc.api.api.ActionResponse; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Action; +import cn.wzpmc.api.ActionResponse; +import cn.wzpmc.api.Actions; import cn.wzpmc.entities.api.ApiResponseRequired; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; @@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentHashMap; */ public class ActionReader implements ObjectReader> { public static final ConcurrentHashMap> tasks = new ConcurrentHashMap<>(); + @Override public ActionResponse readObject(JSONReader jsonReader, Type type, Object o, long l) { JSONObject jsonObject = jsonReader.readJSONObject(); @@ -30,12 +31,12 @@ public class ActionReader implements ObjectReader> { String status = jsonObject.getString("status"); short retcode = jsonObject.getShort("retcode"); Object dataObj = null; - if (action.array){ + if (action.array) { JSONArray data = jsonObject.getJSONArray("data"); dataObj = data.toJavaList(action.responseClass); } else { JSONObject data = jsonObject.getJSONObject("data"); - if (data != null){ + if (data != null) { dataObj = data.to(action.responseClass); } } diff --git a/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java b/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java index 8425b8f..bc51adf 100644 --- a/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java +++ b/src/main/java/cn/wzpmc/utils/json/action/ActionWriter.java @@ -1,6 +1,6 @@ package cn.wzpmc.utils.json.action; -import cn.wzpmc.api.api.Actions; +import cn.wzpmc.api.Actions; import com.alibaba.fastjson2.JSONWriter; import com.alibaba.fastjson2.writer.ObjectWriter; diff --git a/src/main/java/cn/wzpmc/utils/json/event/EventReader.java b/src/main/java/cn/wzpmc/utils/json/event/EventReader.java index 7958705..4972fe5 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/EventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/EventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.events.EventPostType; +import cn.wzpmc.events.Event; +import cn.wzpmc.events.EventPostType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * event类型JSON反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午2:07 diff --git a/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java index a130af3..c8fbedd 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/MessageEventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.message.MessageEvent; -import cn.wzpmc.api.events.message.MessageType; +import cn.wzpmc.events.message.MessageEvent; +import cn.wzpmc.events.message.MessageType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * 消息事件反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午8:56 diff --git a/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java index bc893fd..c83030f 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/MetaEventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.meta.MetaEvent; -import cn.wzpmc.api.events.meta.MetaEventType; +import cn.wzpmc.events.meta.MetaEvent; +import cn.wzpmc.events.meta.MetaEventType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * 元事件反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午8:56 diff --git a/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java index c7eacae..c813227 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/NoticeEventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.notice.NoticeEvent; -import cn.wzpmc.api.events.notice.NoticeType; +import cn.wzpmc.events.notice.NoticeEvent; +import cn.wzpmc.events.notice.NoticeType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * 提醒类型事件反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午8:48 diff --git a/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java index 7983ea4..18490d9 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/NotifyNoticeEventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.notice.notify.NotifyEvent; -import cn.wzpmc.api.events.notice.notify.NotifySubType; +import cn.wzpmc.events.notice.notify.NotifyEvent; +import cn.wzpmc.events.notice.notify.NotifySubType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * 群提醒事件反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午8:53 diff --git a/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java b/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java index 91aec05..428c63e 100644 --- a/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java +++ b/src/main/java/cn/wzpmc/utils/json/event/RequestEventReader.java @@ -1,7 +1,7 @@ package cn.wzpmc.utils.json.event; -import cn.wzpmc.api.events.request.RequestEvent; -import cn.wzpmc.api.events.request.RequestEventType; +import cn.wzpmc.events.request.RequestEvent; +import cn.wzpmc.events.request.RequestEventType; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -10,6 +10,7 @@ import java.lang.reflect.Type; /** * 请求事件反序列化 + * * @author wzp * @version 0.0.3-dev * @since 2024/8/2 下午8:56 diff --git a/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java b/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java index 6966545..667f124 100644 --- a/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java +++ b/src/main/java/cn/wzpmc/utils/json/honor/HonorWriter.java @@ -1,6 +1,6 @@ package cn.wzpmc.utils.json.honor; -import cn.wzpmc.api.entities.HonorType; +import cn.wzpmc.entities.HonorType; import com.alibaba.fastjson2.JSONWriter; import com.alibaba.fastjson2.writer.ObjectWriter; diff --git a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java index 1984a93..dc55203 100644 --- a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java +++ b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageReader.java @@ -1,8 +1,8 @@ package cn.wzpmc.utils.json.message; -import cn.wzpmc.api.message.json.JsonMessage; -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.utils.CqCodeUtils; +import cn.wzpmc.message.json.JsonMessage; +import cn.wzpmc.message.json.JsonMessagePart; +import cn.wzpmc.utils.CqCodeUtils; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; @@ -15,9 +15,10 @@ import java.util.List; /** * json消息解析器 + * * @author wzp - * @since 2024/8/3 下午6:25 * @version 0.0.3-dev + * @since 2024/8/3 下午6:25 */ @Log4j2 public class JsonMessageReader implements ObjectReader { diff --git a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java index 741d775..ffcb90d 100644 --- a/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java +++ b/src/main/java/cn/wzpmc/utils/json/message/JsonMessageWriter.java @@ -1,6 +1,6 @@ package cn.wzpmc.utils.json.message; -import cn.wzpmc.api.message.json.JsonMessage; +import cn.wzpmc.message.json.JsonMessage; import com.alibaba.fastjson2.JSONWriter; import com.alibaba.fastjson2.writer.ObjectWriter; @@ -8,9 +8,11 @@ import java.lang.reflect.Type; /** * JSON格式消息反序列化 + * * @author wzp + * @version 0.0.3-dev * @since 2024/8/3 下午6:28 - * @version 0.0.3-dev */ + */ public class JsonMessageWriter implements ObjectWriter { @Override public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) { diff --git a/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java b/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java index 60eaa63..fbcfea7 100644 --- a/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java +++ b/src/main/java/cn/wzpmc/utils/json/message/StringMessageReader.java @@ -1,6 +1,6 @@ package cn.wzpmc.utils.json.message; -import cn.wzpmc.api.message.StringMessage; +import cn.wzpmc.message.StringMessage; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -9,13 +9,13 @@ import java.lang.reflect.Type; /** * @author wzp - * @since 2024/8/3 下午8:38 * @version 0.0.3-dev + * @since 2024/8/3 下午8:38 */ public class StringMessageReader implements ObjectReader { @Override public StringMessage readObject(JSONReader jsonReader, Type fieldType, Object fieldName, long features) { - if (jsonReader.isObject()){ + if (jsonReader.isObject()) { JSONObject jsonObject = jsonReader.readJSONObject(); return new StringMessage(jsonObject.getJSONObject("data").getString("text")); } diff --git a/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java index b37383f..814a09a 100644 --- a/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java +++ b/src/main/java/cn/wzpmc/utils/json/user/FriendUserReader.java @@ -1,9 +1,9 @@ package cn.wzpmc.utils.json.user; -import cn.wzpmc.api.user.Friend; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.permission.Permissions; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.user.Friend; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.permission.Permissions; import com.alibaba.fastjson2.JSONFactory; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; diff --git a/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java index b4bd5d2..296dfcd 100644 --- a/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java +++ b/src/main/java/cn/wzpmc/utils/json/user/GroupUserReader.java @@ -1,9 +1,9 @@ package cn.wzpmc.utils.json.user; -import cn.wzpmc.api.user.IBot; -import cn.wzpmc.api.user.group.GroupUser; -import cn.wzpmc.api.user.permission.Permissions; import cn.wzpmc.entities.user.bot.MyBot; +import cn.wzpmc.user.IBot; +import cn.wzpmc.user.group.GroupUser; +import cn.wzpmc.user.permission.Permissions; import com.alibaba.fastjson2.JSONFactory; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; diff --git a/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java b/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java index b0e37c1..ca6e7d6 100644 --- a/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java +++ b/src/main/java/cn/wzpmc/utils/json/user/IBotReader.java @@ -1,6 +1,6 @@ package cn.wzpmc.utils.json.user; -import cn.wzpmc.api.user.IBot; +import cn.wzpmc.user.IBot; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; @@ -19,7 +19,7 @@ public class IBotReader implements ObjectReader { Long userId = Long.parseLong(map.get("user_id").toString()); String nickname = (String) map.get("nickname"); IBot instance = IBot.getInstance(); - if (instance.getNickname() == null && instance.getId() == null){ + if (instance.getNickname() == null && instance.getId() == null) { instance.setId(userId); instance.setName(nickname); } @@ -30,7 +30,7 @@ public class IBotReader implements ObjectReader { public IBot readObject(JSONReader jsonReader, Type type, Object o, long l) { JSONObject jsonObject = jsonReader.readJSONObject(); IBot instance = IBot.getInstance(); - if (instance.getNickname() == null && instance.getId() == null){ + if (instance.getNickname() == null && instance.getId() == null) { instance.setId(jsonObject.getLong("user_id")); instance.setName(jsonObject.getString("nickname")); } diff --git a/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java b/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java index add3e97..bccdd8d 100644 --- a/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java +++ b/src/main/java/cn/wzpmc/utils/json/user/IUserReader.java @@ -1,8 +1,8 @@ package cn.wzpmc.utils.json.user; -import cn.wzpmc.api.user.Friend; -import cn.wzpmc.api.user.IUser; -import cn.wzpmc.api.user.group.GroupUser; +import cn.wzpmc.user.Friend; +import cn.wzpmc.user.IUser; +import cn.wzpmc.user.group.GroupUser; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.reader.ObjectReader; diff --git a/src/test/java/DemoEventHandler.java b/src/test/java/DemoEventHandler.java deleted file mode 100644 index e664b84..0000000 --- a/src/test/java/DemoEventHandler.java +++ /dev/null @@ -1,42 +0,0 @@ -import cn.wzpmc.api.events.Event; -import cn.wzpmc.api.events.message.priv.PrivateMessageEvent; -import cn.wzpmc.api.events.notice.notify.PokeNotifyEvent; -import cn.wzpmc.api.plugins.event.EventHandler; - -/** - * @author wzp - * @version 0.0.4-dev - * @since 2024/8/16 01:02 - */ -public final class DemoEventHandler { - @EventHandler - public void onMessage(PrivateMessageEvent event) { - System.out.println(event); - System.out.println("Called 1"); - } - @EventHandler - public void onMessage2(PrivateMessageEvent event) { - System.out.println(event); - System.out.println("Called 2"); - } - @EventHandler - public void onPoke(PokeNotifyEvent event) { - System.out.println(event); - System.out.println("Called poke"); - } - public void otherMethod(Event event){ - System.err.println(event); - System.err.println("otherMethod shouldn't called!"); - } - @EventHandler - public void wrongMethod(Event event, String wrongArgs){ - System.err.println(event); - System.err.println(wrongArgs); - System.err.println("wrongMethod shouldn't called!"); - } - @EventHandler - public void wrongMethod(String wrongArgs){ - System.err.println(wrongArgs); - System.err.println("wrongMethod2 shouldn't called!"); - } -} diff --git a/src/test/java/TestCqUtils.java b/src/test/java/TestCqUtils.java deleted file mode 100644 index 7fa15ff..0000000 --- a/src/test/java/TestCqUtils.java +++ /dev/null @@ -1,29 +0,0 @@ -import cn.wzpmc.api.message.json.JsonMessagePart; -import cn.wzpmc.api.utils.CqCodeUtils; -import org.junit.jupiter.api.Test; - -import java.util.Map; - -/** - * @author wzp - * @version 1.0.0 - * @since 2024/8/26 14:14 - */ -public class TestCqUtils { - @Test - public void testIsCq(){ - System.out.println(CqCodeUtils.isCQ("[CQ:at,qq=123456789]")); - } - @Test - public void testCqParser(){ - Map parse = CqCodeUtils.parse("[CQ:at,qq=123456789,name=123]"); - for (Map.Entry stringStringEntry : parse.entrySet()) { - System.out.println(stringStringEntry); - } - } - @Test - public void testParseCq(){ - JsonMessagePart jsonMessagePart = CqCodeUtils.parseToPart("[CQ:at,qq=123456789,name=123]"); - System.out.println(jsonMessagePart); - } -} diff --git a/src/test/java/TestEventHandle.java b/src/test/java/TestEventHandle.java deleted file mode 100644 index 678dac2..0000000 --- a/src/test/java/TestEventHandle.java +++ /dev/null @@ -1,32 +0,0 @@ -import cn.wzpmc.Main; -import cn.wzpmc.api.events.message.priv.PrivateMessageEvent; -import cn.wzpmc.api.events.notice.notify.PokeNotifyEvent; -import cn.wzpmc.api.user.Friend; -import cn.wzpmc.configuration.Configuration; -import cn.wzpmc.entities.user.bot.MyBot; -import org.junit.jupiter.api.Test; - -import java.lang.reflect.InvocationTargetException; - -/** - * @author wzp - * @version 0.0.4-dev - * @since 2024/8/16 01:01 - */ -public class TestEventHandle { - @Test - public void testEventHandle() throws InvocationTargetException, IllegalAccessException { - Configuration configuration = Main.getConfiguration(); - Friend targetUser = new Friend(); - targetUser.setNickname("test"); - targetUser.setId(Long.valueOf(0)); - MyBot bot = Main.createBot(configuration); - bot.registerEventHandler(new DemoEventHandler()); - PokeNotifyEvent pokeNotifyEvent = new PokeNotifyEvent(); - pokeNotifyEvent.setTargetId(Long.valueOf(0)); - bot.triggerEvent(pokeNotifyEvent); - PrivateMessageEvent privateMessageEvent = new PrivateMessageEvent(); - privateMessageEvent.setSender(targetUser); - bot.triggerEvent(privateMessageEvent); - } -} diff --git a/src/test/java/TestEventHandler.java b/src/test/java/TestEventHandler.java deleted file mode 100644 index 8e1d084..0000000 --- a/src/test/java/TestEventHandler.java +++ /dev/null @@ -1,14 +0,0 @@ -import cn.wzpmc.utils.ReflectionUtils; -import org.junit.jupiter.api.Test; - -/** - * @author wzp - * @version 0.0.4-dev - * @since 2024/8/16 00:12 - */ -public class TestEventHandler { - @Test - public void testEventHandler() { - System.out.println(ReflectionUtils.loadEvents(new DemoEventHandler())); - } -}