From c2ca182aae5ba91c7fa02ec174f2c7ac532d4181 Mon Sep 17 00:00:00 2001 From: BakaXiluo Date: Fri, 26 Jul 2024 17:10:43 +0800 Subject: [PATCH] Initial commit --- .editorconfig | 5 + .github/WhereIsTheGreenButton.png | Bin 0 -> 97482 bytes .github/workflows/Gradle CI.yml | 47 ++ .gitignore | 8 + .run/RunMiraiKt.run.xml | 10 + LICENSE | 661 ++++++++++++++++++ README.md | 5 + build.gradle.kts | 17 + gradle.properties | 1 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 +++++ gradlew.bat | 89 +++ settings.gradle.kts | 1 + .../example/mirai/plugin/JavaPluginMain.java | 91 +++ src/main/kotlin/PluginMain.kt | 118 ++++ ...t.mamoe.mirai.console.plugin.jvm.JvmPlugin | 1 + src/test/kotlin/RunMirai.kt | 36 + 18 files changed, 1280 insertions(+) create mode 100644 .editorconfig create mode 100644 .github/WhereIsTheGreenButton.png create mode 100644 .github/workflows/Gradle CI.yml create mode 100644 .gitignore create mode 100644 .run/RunMiraiKt.run.xml create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts create mode 100644 src/main/java/org/example/mirai/plugin/JavaPluginMain.java create mode 100644 src/main/kotlin/PluginMain.kt create mode 100644 src/main/resources/META-INF/services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin create mode 100644 src/test/kotlin/RunMirai.kt diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..45645ad --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +[*.{kt, kts}] +max_line_length = 120 +tab_width = 4 +ij_continuation_indent_size = 4 +indent_size = 4 \ No newline at end of file diff --git a/.github/WhereIsTheGreenButton.png b/.github/WhereIsTheGreenButton.png new file mode 100644 index 0000000000000000000000000000000000000000..00cdcf3136527f0f8575a478e14b06e946c8468e GIT binary patch literal 97482 zcmcG#XIPV45H5;ki;93KMY@6%C4h7(0W5$LdhaN`1*Ai0A_CGyAasxtAPGfE=tZS> zfh2Sgke1L(fY46Z?tAa~ai8aTq-lOA%gz*M~r0r-^ zCn8`2XoK*wQn$G#9;@8X>hQa$tLv+=l0aUp!mr?$N@g-)F^BXKUAS9c9gaHngAt^@x7;*R-wdm)hdnUQ&ef~;^E`mm z`^BFvu5PgB=NDWeiFWbhI1ZM&{`ZmWw>

4Hv(&F0KFG_|9(l`0wAy4mm;p{P!4S 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 + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c0285b4 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# mirai-console-plugin-template + +[Mirai Console](https://github.com/mamoe/mirai-console) 插件模板, 使用 Kotlin + Gradle. + +[如何使用](https://github.com/project-mirai/how-to-use-plugin-template) diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..de06fa0 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + val kotlinVersion = "1.6.10" + kotlin("jvm") version kotlinVersion + kotlin("plugin.serialization") version kotlinVersion + + id("net.mamoe.mirai-console") version "2.13.2" +} + +group = "org.example" +version = "0.1.0" + +repositories { + if (System.getenv("CI")?.toBoolean() != true) { + maven("https://maven.aliyun.com/repository/public") // 阿里云国内代理仓库 + } + mavenCentral() +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..29e08e8 --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +kotlin.code.style=official \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..3cd8500 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..e47c53b --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "mirai-console-plugin-template" \ No newline at end of file diff --git a/src/main/java/org/example/mirai/plugin/JavaPluginMain.java b/src/main/java/org/example/mirai/plugin/JavaPluginMain.java new file mode 100644 index 0000000..a32d52e --- /dev/null +++ b/src/main/java/org/example/mirai/plugin/JavaPluginMain.java @@ -0,0 +1,91 @@ +package org.example.mirai.plugin; + +import kotlin.Lazy; +import kotlin.LazyKt; +import net.mamoe.mirai.console.permission.*; +import net.mamoe.mirai.console.plugin.jvm.JavaPlugin; +import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription; +import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescriptionBuilder; +import net.mamoe.mirai.contact.Member; +import net.mamoe.mirai.contact.User; +import net.mamoe.mirai.event.Event; +import net.mamoe.mirai.event.EventChannel; +import net.mamoe.mirai.event.GlobalEventChannel; +import net.mamoe.mirai.event.events.FriendMessageEvent; +import net.mamoe.mirai.event.events.GroupMessageEvent; + + +/** + * 使用 Java 请把 + * {@code /src/main/resources/META-INF.services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin} + * 文件内容改成 {@code org.example.mirai.plugin.JavaPluginMain}
+ * 也就是当前主类全类名 + *

+ * 使用 Java 可以把 kotlin 源集删除且不会对项目有影响 + *

+ * 在 {@code settings.gradle.kts} 里改构建的插件名称、依赖库和插件版本 + *

+ * 在该示例下的 {@link JvmPluginDescription} 修改插件名称,id 和版本等 + *

+ * 可以使用 {@code src/test/kotlin/RunMirai.kt} 在 IDE 里直接调试, + * 不用复制到 mirai-console-loader 或其他启动器中调试 + */ + +public final class JavaPluginMain extends JavaPlugin { + public static final JavaPluginMain INSTANCE = new JavaPluginMain(); + + private JavaPluginMain() { + super(new JvmPluginDescriptionBuilder("org.example.mirai-example", "0.1.0") + .info("EG") + .build()); + } + + @Override + public void onEnable() { + getLogger().info("日志"); + EventChannel eventChannel = GlobalEventChannel.INSTANCE.parentScope(this); + eventChannel.subscribeAlways(GroupMessageEvent.class, g -> { + //监听群消息 + getLogger().info(g.getMessage().contentToString()); + + }); + eventChannel.subscribeAlways(FriendMessageEvent.class, f -> { + //监听好友消息 + getLogger().info(f.getMessage().contentToString()); + }); + + myCustomPermission.getValue(); // 注册权限 + } + + // region mirai-console 权限系统示例 + public static final Lazy myCustomPermission = LazyKt.lazy(() -> { // Lazy: Lazy 是必须的, console 不允许提前访问权限系统 + // 注册一条权限节点 org.example.mirai-example:my-permission + // 并以 org.example.mirai-example:* 为父节点 + + + // @param: parent: 父权限 + // 在 Console 内置权限系统中, 如果某人拥有父权限 + // 那么意味着此人也拥有该权限 (org.example.mirai-example:my-permission) + // @func: PermissionIdNamespace.permissionId: 根据插件 id 确定一条权限 id + try { + return PermissionService.getInstance().register( + INSTANCE.permissionId("my-permission"), + "一条自定义权限", + INSTANCE.getParentPermission() + ); + } catch (PermissionRegistryConflictException e) { + throw new RuntimeException(e); + } + }); + + public static boolean hasCustomPermission(User usr) { + PermitteeId pid; + if (usr instanceof Member) { + pid = new AbstractPermitteeId.ExactMember(((Member) usr).getGroup().getId(), usr.getId()); + } else { + pid = new AbstractPermitteeId.ExactUser(usr.getId()); + } + return PermissionService.hasPermission(pid, myCustomPermission.getValue()); + } + // endregion +} diff --git a/src/main/kotlin/PluginMain.kt b/src/main/kotlin/PluginMain.kt new file mode 100644 index 0000000..c5fcbab --- /dev/null +++ b/src/main/kotlin/PluginMain.kt @@ -0,0 +1,118 @@ +package org.example.mirai.plugin + +import net.mamoe.mirai.console.permission.AbstractPermitteeId +import net.mamoe.mirai.console.permission.PermissionService +import net.mamoe.mirai.console.permission.PermissionService.Companion.hasPermission +import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription +import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin +import net.mamoe.mirai.contact.Member +import net.mamoe.mirai.contact.User +import net.mamoe.mirai.event.GlobalEventChannel +import net.mamoe.mirai.event.events.BotInvitedJoinGroupRequestEvent +import net.mamoe.mirai.event.events.FriendMessageEvent +import net.mamoe.mirai.event.events.GroupMessageEvent +import net.mamoe.mirai.event.events.NewFriendRequestEvent +import net.mamoe.mirai.message.data.Image +import net.mamoe.mirai.message.data.Image.Key.queryUrl +import net.mamoe.mirai.message.data.PlainText +import net.mamoe.mirai.utils.info + +/** + * 使用 kotlin 版请把 + * `src/main/resources/META-INF.services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin` + * 文件内容改成 `org.example.mirai.plugin.PluginMain` 也就是当前主类全类名 + * + * 使用 kotlin 可以把 java 源集删除不会对项目有影响 + * + * 在 `settings.gradle.kts` 里改构建的插件名称、依赖库和插件版本 + * + * 在该示例下的 [JvmPluginDescription] 修改插件名称,id和版本,etc + * + * 可以使用 `src/test/kotlin/RunMirai.kt` 在 ide 里直接调试, + * 不用复制到 mirai-console-loader 或其他启动器中调试 + */ + +object PluginMain : KotlinPlugin( + JvmPluginDescription( + id = "org.example.mirai-example", + name = "插件示例", + version = "0.1.0" + ) { + author("作者名称或联系方式") + info( + """ + 这是一个测试插件, + 在这里描述插件的功能和用法等. + """.trimIndent() + ) + // author 和 info 可以删除. + } +) { + override fun onEnable() { + logger.info { "Plugin loaded" } + //配置文件目录 "${dataFolder.absolutePath}/" + val eventChannel = GlobalEventChannel.parentScope(this) + eventChannel.subscribeAlways { + //群消息 + //复读示例 + if (message.contentToString().startsWith("复读")) { + group.sendMessage(message.contentToString().replace("复读", "")) + } + if (message.contentToString() == "hi") { + //群内发送 + group.sendMessage("hi") + //向发送者私聊发送消息 + sender.sendMessage("hi") + //不继续处理 + return@subscribeAlways + } + //分类示例 + message.forEach { + //循环每个元素在消息里 + if (it is Image) { + //如果消息这一部分是图片 + val url = it.queryUrl() + group.sendMessage("图片,下载地址$url") + } + if (it is PlainText) { + //如果消息这一部分是纯文本 + group.sendMessage("纯文本,内容:${it.content}") + } + } + } + eventChannel.subscribeAlways { + //好友信息 + sender.sendMessage("hi") + } + eventChannel.subscribeAlways { + //自动同意好友申请 + accept() + } + eventChannel.subscribeAlways { + //自动同意加群申请 + accept() + } + + myCustomPermission // 注册权限 + } + + // region console 权限系统示例 + private val myCustomPermission by lazy { // Lazy: Lazy 是必须的, console 不允许提前访问权限系统 + // 注册一条权限节点 org.example.mirai-example:my-permission + // 并以 org.example.mirai-example:* 为父节点 + + // @param: parent: 父权限 + // 在 Console 内置权限系统中, 如果某人拥有父权限 + // 那么意味着此人也拥有该权限 (org.example.mirai-example:my-permission) + // @func: PermissionIdNamespace.permissionId: 根据插件 id 确定一条权限 id + PermissionService.INSTANCE.register(permissionId("my-permission"), "一条自定义权限", parentPermission) + } + + public fun hasCustomPermission(sender: User): Boolean { + return when (sender) { + is Member -> AbstractPermitteeId.ExactMember(sender.group.id, sender.id) + else -> AbstractPermitteeId.ExactUser(sender.id) + }.hasPermission(myCustomPermission) + } + // endregion +} diff --git a/src/main/resources/META-INF/services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin b/src/main/resources/META-INF/services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin new file mode 100644 index 0000000..0bed70b --- /dev/null +++ b/src/main/resources/META-INF/services/net.mamoe.mirai.console.plugin.jvm.JvmPlugin @@ -0,0 +1 @@ +org.example.mirai.plugin.PluginMain \ No newline at end of file diff --git a/src/test/kotlin/RunMirai.kt b/src/test/kotlin/RunMirai.kt new file mode 100644 index 0000000..b4837db --- /dev/null +++ b/src/test/kotlin/RunMirai.kt @@ -0,0 +1,36 @@ +package org.example.mirai.plugin + +import net.mamoe.mirai.alsoLogin +import net.mamoe.mirai.console.MiraiConsole +import net.mamoe.mirai.console.plugin.PluginManager.INSTANCE.enable +import net.mamoe.mirai.console.plugin.PluginManager.INSTANCE.load +import net.mamoe.mirai.console.terminal.MiraiConsoleTerminalLoader + +suspend fun main() { + if (true) { + + error(""" + DEPRECATED: + 此启动方法已经被弃用, 请使用 ./gradlew runConsole 启动测试环境 + + 详见: + https://docs.mirai.mamoe.net/console/plugin/JVMPlugin.html#%E8%B0%83%E8%AF%95 + https://github.com/mamoe/mirai/blob/dev/mirai-console/docs/plugin/JVMPlugin.md#%E8%B0%83%E8%AF%95 + """.trimIndent()) + } + + MiraiConsoleTerminalLoader.startAsDaemon() + + //如果是Kotlin + PluginMain.load() + PluginMain.enable() + //如果是Java +// JavaPluginMain.INSTANCE.load() +// JavaPluginMain.INSTANCE.enable() + + val bot = MiraiConsole.addBot(123456, "") { + fileBasedDeviceInfo() + }.alsoLogin() + + MiraiConsole.job.join() +} \ No newline at end of file