Requirements for publishing in pub
[ci skip]
This commit is contained in:
parent
c7493b4629
commit
d3d06ad8b5
52
README.md
52
README.md
|
@ -8,7 +8,6 @@
|
|||
[![documentation](https://img.shields.io/badge/Documentation-nyxx-yellow.svg)](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
|
||||
Simple, robust framework for creating discord bots for Dart language.
|
||||
This is a fork of [Hackzzila's](https://github.com/Hackzzila) [nyx](https://github.com/Hackzzila/nyx).
|
||||
|
||||
<hr />
|
||||
|
||||
|
@ -25,16 +24,17 @@ This is a fork of [Hackzzila's](https://github.com/Hackzzila) [nyx](https://gith
|
|||
- **Complete** <br>
|
||||
Nyxx supports nearly all Discord API endpoints.
|
||||
|
||||
### Sample
|
||||
|
||||
## Quick example
|
||||
|
||||
Basic usage:
|
||||
```dart
|
||||
void main() {
|
||||
final bot = NyxxVm(Platform.environment['DISCORD_TOKEN']);
|
||||
|
||||
bot.onMessageReceived.listen((MessageEvent e) {
|
||||
if (e.message.content == "!ping") {
|
||||
e.message.channel.send(content: "Pong!");
|
||||
var bot = Nyxx("TOKEN");
|
||||
|
||||
bot.onMessageReceived.listen((event) {
|
||||
if (event.message.content == "!ping") {
|
||||
event.message.channel.send(content: "Pong!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -43,32 +43,46 @@ void main() {
|
|||
Commands:
|
||||
```dart
|
||||
void main() {
|
||||
final bot = NyxxVm(Platform.environment['DISCORD_TOKEN']);
|
||||
|
||||
CommandsFramework('!', bot)
|
||||
..admins = [nyxx.Snowflake("302359032612651009")]
|
||||
..registerLibraryCommands();
|
||||
}
|
||||
final bot = Nyxx("TOKEN");
|
||||
|
||||
@Command(name: "single")
|
||||
Future<void> single(CommandContext context) async {
|
||||
await context.reply(content: "WORKING");
|
||||
Commander(bot, prefix: "!!!")
|
||||
..registerCommand("ping", (context, message) => context.reply(content: "Pong!"));
|
||||
}
|
||||
```
|
||||
|
||||
## More examples
|
||||
|
||||
Nyxx examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx/example).
|
||||
|
||||
Commander examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx.commander/example)
|
||||
|
||||
### Example bots
|
||||
- [Running on Dart](https://github.com/l7ssha/running_on_dart)
|
||||
|
||||
## Documentation, help and examples
|
||||
|
||||
**Dartdoc documentation is hosted on [pub](https://www.dartdocs.org/documentation/nyxx/latest/).
|
||||
This wiki just fills gap in docs with more descriptive guides and tutorials.**
|
||||
|
||||
#### [Discord API docs](https://discordapp.com/developers/docs/intro)
|
||||
Discord API documentation features rich descriptions about all topics that nyxx covers.
|
||||
|
||||
#### [Discord API Guild](https://discord.gg/discord-api)
|
||||
Unofficial guild for Discord Bot developers. To get help with nyxx check `#dart_nyxx` channel.
|
||||
The unofficial guild for Discord Bot developers. To get help with nyxx check `#dart_nyxx` channel.
|
||||
|
||||
#### [Dartdocs](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
The dartdocs page will always have the documentation for the latest release.
|
||||
|
||||
#### [Dev docs](https://l7ssha.github.io/nyxx)
|
||||
You can read about upcoming changes to the library on my website.
|
||||
#### [Dev docs](https://nyxx.l7ssha.xyz)
|
||||
You can read about upcoming changes in the library on my website.
|
||||
|
||||
#### [Wiki](https://github.com/l7ssha/nyxx/wiki)
|
||||
Wiki documentation are designed to match the latest Nyxx release.
|
||||
|
||||
## Contributing to Nyxx
|
||||
|
||||
Read [contributing document](https://github.com/l7ssha/nyxx/blob/development/CONTRIBUTING.md)
|
||||
|
||||
## Credits
|
||||
|
||||
* [Hackzzila's](https://github.com/Hackzzila) for [nyx](https://github.com/Hackzzila/nyx).
|
222
nyxx.commander/CHANGELOG.md
Normal file
222
nyxx.commander/CHANGELOG.md
Normal file
|
@ -0,0 +1,222 @@
|
|||
## [1.0.0](https://github.com/l7ssha/nyxx/compare/0.30.0...1.0.0)
|
||||
_24.08.2020_
|
||||
|
||||
> **Stable release - breaks with previous versions - this version required Dart 2.9 stable and non-nullable experiment to be enabled to function**
|
||||
|
||||
> **`1.0.0` drops support for browser. Nyxx will now run only on VM**
|
||||
|
||||
- `nyxx` package contains only basic functionality - everything else is getting own package
|
||||
- `main lib package`
|
||||
* Fixed errors and exceptions to be more self-explanatory
|
||||
* Added new and fixed old examples. Added additional documentation, fixed code to be more idiomatic
|
||||
* Logger fixes. User is now able to use their logger implementation. Or disable logging whatsover
|
||||
* New internal http submodule - errors got from discord are always returned to end user. Improved ratelimits and errors hadling
|
||||
* Now initial presence can be specified
|
||||
* Added support for conneting to voice channel. No audio support by now tho
|
||||
* Cache no longer needed for bot to function properly
|
||||
- There is now difference between cached and uncached objects
|
||||
- Events will provide objects if cache but also raw data received from websocket (etc. snowflakes)
|
||||
- Better cache handling with better events performance
|
||||
* Implemented missing API features
|
||||
* **Added support for sharding. Bot now spawn isolate per shard to handle incoming data**
|
||||
* Fixed websocket connectin issues. Now lib should reliably react to websocket errors
|
||||
* Added `MemberChunkEvent` to client. Invoked when event is received on websocket.
|
||||
|
||||
* Lib will try to properly close ws connections when process receives SIGTERM OR SIGINT.
|
||||
* Added support to shutdown hooks. Code in these hooks will be run before disposing and closed shards and/or client
|
||||
* Fixed and moved around docs
|
||||
* New internal structure of lib
|
||||
* Added extensions for `String` and `int` for more convenient way to convert them to `Snowflake`
|
||||
* Added support for gateway intents
|
||||
* `Snowflake` objects are now ints
|
||||
* Implemented member search endpoints for websocket and API
|
||||
* Added missing wrappers for data from discord
|
||||
* `==` operator fixes for objects
|
||||
- `nyxx.commander` - new commands module
|
||||
* `dart:mirrors` no longer required to function
|
||||
* Support for command and command groups
|
||||
* Allows to run code before and after invoking command. Allows to run code before matching command.
|
||||
* Fixed and added new functionality to `CommandContext`
|
||||
- Support for extracting quoted text, parameters and code blocks
|
||||
- Getter for shard that command is executed
|
||||
* Improved performance and extensibility
|
||||
- `nyxx.extensions` - contains utils for interactive features and utils for emojis
|
||||
* New emoji module for fetching available emoji info
|
||||
* Pagination module for created paginated messages
|
||||
* Scheduler module for invoking repeatable actions
|
||||
* Additional general utils
|
||||
* Message resolver module for resolving raw message content into human readable form
|
||||
* Attachment extensions for vm
|
||||
|
||||
## [0.30.0](https://github.com/l7ssha/nyxx/compare/0.24.0...0.30.0)
|
||||
_Tue 07.02.2019_
|
||||
|
||||
*This version drops support for Dart SDK 1.x; Nyxx now only supports Dart 2.0+ including dev sdk.*
|
||||
|
||||
*Changelog can be incomplete - it's hard to track changes across few months*
|
||||
|
||||
- **Features added**
|
||||
* **SUPPORT FOR DART 2.0+**
|
||||
* **ADDED SUPPORT FOR VOICE via Lavalink**
|
||||
* **PERMISSIONS OVERHAUL**
|
||||
- Proper permissions handling
|
||||
* **COMMANDS FRAMEWORK REWRITTEN**
|
||||
- Dispatch pipe is completely rewritten. Bot should operate about 2-8x faster
|
||||
- Allowed to declare single method commands without using classes
|
||||
- Added support for specify custom restrictions to commands handlers
|
||||
- Classes now have to be annotated with `Module` instead of `Command`
|
||||
- `Remainder` can now called data to `List<String>` or `String`
|
||||
- Added `Preprocessor` and `Posprocessor`
|
||||
- Removed help system
|
||||
* **COMMANDS PARSER**
|
||||
- Allows to define simple commands handlers
|
||||
* **Nyxx can be now used in browser**
|
||||
* Many additions to `Member` and `User` classes
|
||||
* Changed internal library structure
|
||||
* Implemented Iterable for Channel to query messages
|
||||
* Added typing event per channel
|
||||
* Using `v7` api endpoint
|
||||
* Added support for zlib compressed gateway payload
|
||||
* Added endpoints for Guild, Emoji, Role, Member
|
||||
* Added utils module
|
||||
* Allowed to download attachments. (`Downloadable` interface)
|
||||
* Implemented new Discord features (Priority speaker, Slowmode)
|
||||
* Added `DiscordColor` class
|
||||
* Added `Binder` util
|
||||
* Added `Cache`
|
||||
* Added `MessageBuilder`
|
||||
* Added interfaces `Downloadable`, `Mentionable`, `Debugable`, `Disposable`, `GuildEntity`
|
||||
- **Bug fixes**
|
||||
* **Lowered memory usage**
|
||||
* **Websocket fixed**
|
||||
* Fixed Emojis comparing
|
||||
* Fixed searching in Emojis unicode
|
||||
* Code cleanup and style fixes
|
||||
* Proper error handling for `CommandsFramework`
|
||||
* Gateway fixes
|
||||
* Object deserializing fixes
|
||||
* Memory and performance improvements
|
||||
* Random null exceptions
|
||||
* Emojis CDN fixes
|
||||
* Few fixes for ratelimitter
|
||||
- **Changes**
|
||||
* **Docs are rewritten**
|
||||
* **Faster deserialization**
|
||||
* **Embed builders rewritten**
|
||||
* Removed autosharding.
|
||||
* Every object which has id is now subclass of `SnowflakeEntity`.
|
||||
* Snowflakes are default id entities
|
||||
* Internal nyxx API changes
|
||||
* Cooldown cache rewritten
|
||||
* Presence sending fixes
|
||||
* Title is not required for EmbedBuilder
|
||||
* Removed unnecessary dependencies
|
||||
|
||||
## [0.24.0](https://github.com/l7ssha/nyxx/compare/0.23.1...0.24.0)
|
||||
_Tue 03.08.2018_
|
||||
|
||||
- **Changes**
|
||||
* nyxx now supports Dart 2.0
|
||||
* Added Interactivity module
|
||||
* Added few methods to `CommandContext`
|
||||
* Rewritten `CooldownCache`
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `Command` help generating error
|
||||
* Fixed Emojis equals operator
|
||||
|
||||
## [0.23.1](https://github.com/l7ssha/nyxx/compare/0.23.0...0.23.1)
|
||||
_Tue 31.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `MessageDeleteEvent` deserializing error
|
||||
* Fixed checking for channel nsfw for CommandsFramework
|
||||
|
||||
## [0.23.0](https://github.com/l7ssha/nyxx/compare/0.22.1...0.23.0)
|
||||
_Mon 30.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for services - DEPENDENCY INJECTION
|
||||
* Support for type parsing
|
||||
* Logging support
|
||||
* Listener for messages for channel
|
||||
* Automatic registering Services and Commands
|
||||
* `Remainder` annotation which captures all remaining text
|
||||
* Permissions are now **READ/WRITE** - added PermissionsBuilder
|
||||
* Checking for topics and if channel is nsfw for commands
|
||||
- **Bug fixes**
|
||||
* Fixed error throwing
|
||||
* Text in quotes is one String
|
||||
* Fixed StreamControllers to be broadcast
|
||||
* Removed unnecessary fields from DMChannel and GroupDMChannel
|
||||
* Big performance improvement of CommandFramework
|
||||
* Fixed Permissions opcode
|
||||
* `delay()` changed to `nextMessage()`
|
||||
- **Deprecations**
|
||||
* Deprecated browser target
|
||||
* Removed MirrorsCommandFramework and InstanceCommandFramework
|
||||
|
||||
## [0.22.1](https://github.com/l7ssha/nyxx/compare/0.22.0...0.22.1)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed bug with sending Emoji. `toString()` now return proper representation ready to send via message
|
||||
- **New features**
|
||||
* Searching in `EmojisUnicode` is now handled by future.
|
||||
* toString() in `User`, `Channel`, `Role` now returns mention instead of content, name etc.
|
||||
|
||||
## [0.22.0](https://github.com/l7ssha/nyxx/compare/0.21.5...0.22.0)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Next serialization bug fixes
|
||||
- **New features**
|
||||
* Added support for [audit logs](https://discordapp.com/developers/docs/resources/audit-log)
|
||||
* Searching in `EmojisUnicode` based on shortcode
|
||||
|
||||
## [0.21.5](https://github.com/l7ssha/nyxx/compare/0.21.4...0.21.5)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
## [0.21.4](https://github.com/l7ssha/nyxx/compare/0.21.3...0.21.4)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
|
||||
## [0.21.3](https://github.com/l7ssha/nyxx/compare/0.21.2...0.21.3)
|
||||
_Fri 08.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
- **Added few Docs**
|
||||
|
||||
|
||||
## [0.21.2](https://github.com/l7ssha/nyxx/compare/0.21.1...0.21.2)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Added overrides
|
||||
* Implemented hashCode
|
||||
* Fixed return type for `delay()` in Command class
|
||||
|
||||
|
||||
## [0.21.1](https://github.com/l7ssha/nyxx/compare/0.21.0...0.21.1)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed constructors in MessageChannel and TextChannel
|
||||
|
||||
|
||||
## [0.21.0](https://github.com/l7ssha/nyxx/compare/0.20.0...0.21.0)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for sending files, attaching files in embed
|
||||
* Added missing gateway events
|
||||
* Replaced String ids with `Snowflake` type
|
||||
- **Bug fixes**
|
||||
|
336
nyxx.commander/LICENSE
Normal file
336
nyxx.commander/LICENSE
Normal file
|
@ -0,0 +1,336 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 2018, Szymon Uglis, Zach Vacura
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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
|
||||
this service 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.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
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
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE 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.
|
||||
|
||||
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
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
88
nyxx.commander/README.md
Normal file
88
nyxx.commander/README.md
Normal file
|
@ -0,0 +1,88 @@
|
|||
<div align="center">
|
||||
<br />
|
||||
<p> <img width="600" src="https://l7ssha.github.io/nyxx0.png" />
|
||||
<br />
|
||||
|
||||
[![Build Status](https://travis-ci.org/l7ssha/nyxx.svg?branch=master)](https://travis-ci.org/l7ssha/nyxx)
|
||||
[![Pub](https://img.shields.io/pub/v/nyxx.svg)](https://pub.dartlang.org/packages/nyxx)
|
||||
[![documentation](https://img.shields.io/badge/Documentation-nyxx-yellow.svg)](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
|
||||
Simple, robust framework for creating discord bots for Dart language.
|
||||
|
||||
<hr />
|
||||
|
||||
</div>
|
||||
|
||||
### Features
|
||||
|
||||
- **Commands framework included** <br>
|
||||
A fast way to create a bot with command support. Implementing the framework is simple - and everything is done automatically.
|
||||
- **Cross Platform** <br>
|
||||
Nyxx works on the command line, in the browser, and on mobile devices.
|
||||
- **Fine Control** <br>
|
||||
Nyxx allows you to control every outgoing HTTP request or WebSocket message.
|
||||
- **Complete** <br>
|
||||
Nyxx supports nearly all Discord API endpoints.
|
||||
|
||||
|
||||
## Quick example
|
||||
|
||||
Basic usage:
|
||||
```dart
|
||||
void main() {
|
||||
var bot = Nyxx("TOKEN");
|
||||
|
||||
bot.onMessageReceived.listen((event) {
|
||||
if (event.message.content == "!ping") {
|
||||
event.message.channel.send(content: "Pong!");
|
||||
}
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Commands:
|
||||
```dart
|
||||
void main() {
|
||||
final bot = Nyxx("TOKEN");
|
||||
|
||||
Commander(bot, prefix: "!!!")
|
||||
..registerCommand("ping", (context, message) => context.reply(content: "Pong!"));
|
||||
}
|
||||
```
|
||||
|
||||
## More examples
|
||||
|
||||
Nyxx examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx/example).
|
||||
|
||||
Commander examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx.commander/example)
|
||||
|
||||
### Example bots
|
||||
- [Running on Dart](https://github.com/l7ssha/running_on_dart)
|
||||
|
||||
## Documentation, help and examples
|
||||
|
||||
**Dartdoc documentation is hosted on [pub](https://www.dartdocs.org/documentation/nyxx/latest/).
|
||||
This wiki just fills gap in docs with more descriptive guides and tutorials.**
|
||||
|
||||
#### [Discord API docs](https://discordapp.com/developers/docs/intro)
|
||||
Discord API documentation features rich descriptions about all topics that nyxx covers.
|
||||
|
||||
#### [Discord API Guild](https://discord.gg/discord-api)
|
||||
The unofficial guild for Discord Bot developers. To get help with nyxx check `#dart_nyxx` channel.
|
||||
|
||||
#### [Dartdocs](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
The dartdocs page will always have the documentation for the latest release.
|
||||
|
||||
#### [Dev docs](https://nyxx.l7ssha.xyz)
|
||||
You can read about upcoming changes in the library on my website.
|
||||
|
||||
#### [Wiki](https://github.com/l7ssha/nyxx/wiki)
|
||||
Wiki documentation are designed to match the latest Nyxx release.
|
||||
|
||||
## Contributing to Nyxx
|
||||
|
||||
Read [contributing document](https://github.com/l7ssha/nyxx/blob/development/CONTRIBUTING.md)
|
||||
|
||||
## Credits
|
||||
|
||||
* [Hackzzila's](https://github.com/Hackzzila) for [nyx](https://github.com/Hackzzila/nyx).
|
|
@ -1,4 +1,4 @@
|
|||
library nyxx.commander;
|
||||
library nyxx_commander;
|
||||
|
||||
import "dart:async";
|
||||
import "dart:io";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
part of nyxx.commander;
|
||||
part of nyxx_commander;
|
||||
|
||||
/// Helper class which describes context in which command is executed
|
||||
class CommandContext {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
part of nyxx.commander;
|
||||
part of nyxx_commander;
|
||||
|
||||
/// Base object for [CommandHandler] and [CommandGroup]
|
||||
abstract class CommandEntity {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
part of nyxx.commander;
|
||||
part of nyxx_commander;
|
||||
|
||||
/// Used to determine if command can be executed in given environment.
|
||||
/// Return true to allow executing command or false otherwise.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
part of nyxx.commander;
|
||||
part of nyxx_commander;
|
||||
|
||||
// TODO: FIX. I think that is just awful but is does its job
|
||||
extension _CommandMatcher on Iterable<CommandEntity> {
|
||||
|
|
|
@ -1,26 +1,19 @@
|
|||
name: nyxx.commander
|
||||
name: nyxx_commander
|
||||
version: 1.0.0
|
||||
description: A Discord library for Dart.
|
||||
authors:
|
||||
- Szymon Uglis <szymon.uglis@tuta.io>
|
||||
- Zach Vacura <admin@hackzzila.com>
|
||||
homepage: https://github.com/l7ssha/nyxx
|
||||
repository: https://github.com/l7ssha/nyxx
|
||||
documentation: https://github.com/l7ssha/nyxx/wiki
|
||||
issue_tracker: https://github.com/l7ssha/nyxx/issue
|
||||
|
||||
environment:
|
||||
sdk: '>=2.9.0'
|
||||
sdk: '>=2.9.0 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
nyxx: "^1.0.0"
|
||||
logging: "^0.11.4"
|
||||
w_transport: "^3.2.8"
|
||||
|
||||
dependency_overrides:
|
||||
nyxx:
|
||||
path: "../nyxx"
|
||||
|
||||
dev_dependencies:
|
||||
dart_style:
|
||||
analyzer:
|
|
@ -2,7 +2,7 @@ import "dart:async";
|
|||
import "dart:io";
|
||||
|
||||
import "package:nyxx/nyxx.dart";
|
||||
import "package:nyxx.commander/commander.dart";
|
||||
import "package:nyxx_commander/commander.dart";
|
||||
|
||||
void main() {
|
||||
final bot = Nyxx(Platform.environment["DISCORD_TOKEN"]!, ignoreExceptions: false);
|
||||
|
|
222
nyxx.extensions/CHANGELOG.md
Normal file
222
nyxx.extensions/CHANGELOG.md
Normal file
|
@ -0,0 +1,222 @@
|
|||
## [1.0.0](https://github.com/l7ssha/nyxx/compare/0.30.0...1.0.0)
|
||||
_24.08.2020_
|
||||
|
||||
> **Stable release - breaks with previous versions - this version required Dart 2.9 stable and non-nullable experiment to be enabled to function**
|
||||
|
||||
> **`1.0.0` drops support for browser. Nyxx will now run only on VM**
|
||||
|
||||
- `nyxx` package contains only basic functionality - everything else is getting own package
|
||||
- `main lib package`
|
||||
* Fixed errors and exceptions to be more self-explanatory
|
||||
* Added new and fixed old examples. Added additional documentation, fixed code to be more idiomatic
|
||||
* Logger fixes. User is now able to use their logger implementation. Or disable logging whatsover
|
||||
* New internal http submodule - errors got from discord are always returned to end user. Improved ratelimits and errors hadling
|
||||
* Now initial presence can be specified
|
||||
* Added support for conneting to voice channel. No audio support by now tho
|
||||
* Cache no longer needed for bot to function properly
|
||||
- There is now difference between cached and uncached objects
|
||||
- Events will provide objects if cache but also raw data received from websocket (etc. snowflakes)
|
||||
- Better cache handling with better events performance
|
||||
* Implemented missing API features
|
||||
* **Added support for sharding. Bot now spawn isolate per shard to handle incoming data**
|
||||
* Fixed websocket connectin issues. Now lib should reliably react to websocket errors
|
||||
* Added `MemberChunkEvent` to client. Invoked when event is received on websocket.
|
||||
|
||||
* Lib will try to properly close ws connections when process receives SIGTERM OR SIGINT.
|
||||
* Added support to shutdown hooks. Code in these hooks will be run before disposing and closed shards and/or client
|
||||
* Fixed and moved around docs
|
||||
* New internal structure of lib
|
||||
* Added extensions for `String` and `int` for more convenient way to convert them to `Snowflake`
|
||||
* Added support for gateway intents
|
||||
* `Snowflake` objects are now ints
|
||||
* Implemented member search endpoints for websocket and API
|
||||
* Added missing wrappers for data from discord
|
||||
* `==` operator fixes for objects
|
||||
- `nyxx.commander` - new commands module
|
||||
* `dart:mirrors` no longer required to function
|
||||
* Support for command and command groups
|
||||
* Allows to run code before and after invoking command. Allows to run code before matching command.
|
||||
* Fixed and added new functionality to `CommandContext`
|
||||
- Support for extracting quoted text, parameters and code blocks
|
||||
- Getter for shard that command is executed
|
||||
* Improved performance and extensibility
|
||||
- `nyxx.extensions` - contains utils for interactive features and utils for emojis
|
||||
* New emoji module for fetching available emoji info
|
||||
* Pagination module for created paginated messages
|
||||
* Scheduler module for invoking repeatable actions
|
||||
* Additional general utils
|
||||
* Message resolver module for resolving raw message content into human readable form
|
||||
* Attachment extensions for vm
|
||||
|
||||
## [0.30.0](https://github.com/l7ssha/nyxx/compare/0.24.0...0.30.0)
|
||||
_Tue 07.02.2019_
|
||||
|
||||
*This version drops support for Dart SDK 1.x; Nyxx now only supports Dart 2.0+ including dev sdk.*
|
||||
|
||||
*Changelog can be incomplete - it's hard to track changes across few months*
|
||||
|
||||
- **Features added**
|
||||
* **SUPPORT FOR DART 2.0+**
|
||||
* **ADDED SUPPORT FOR VOICE via Lavalink**
|
||||
* **PERMISSIONS OVERHAUL**
|
||||
- Proper permissions handling
|
||||
* **COMMANDS FRAMEWORK REWRITTEN**
|
||||
- Dispatch pipe is completely rewritten. Bot should operate about 2-8x faster
|
||||
- Allowed to declare single method commands without using classes
|
||||
- Added support for specify custom restrictions to commands handlers
|
||||
- Classes now have to be annotated with `Module` instead of `Command`
|
||||
- `Remainder` can now called data to `List<String>` or `String`
|
||||
- Added `Preprocessor` and `Posprocessor`
|
||||
- Removed help system
|
||||
* **COMMANDS PARSER**
|
||||
- Allows to define simple commands handlers
|
||||
* **Nyxx can be now used in browser**
|
||||
* Many additions to `Member` and `User` classes
|
||||
* Changed internal library structure
|
||||
* Implemented Iterable for Channel to query messages
|
||||
* Added typing event per channel
|
||||
* Using `v7` api endpoint
|
||||
* Added support for zlib compressed gateway payload
|
||||
* Added endpoints for Guild, Emoji, Role, Member
|
||||
* Added utils module
|
||||
* Allowed to download attachments. (`Downloadable` interface)
|
||||
* Implemented new Discord features (Priority speaker, Slowmode)
|
||||
* Added `DiscordColor` class
|
||||
* Added `Binder` util
|
||||
* Added `Cache`
|
||||
* Added `MessageBuilder`
|
||||
* Added interfaces `Downloadable`, `Mentionable`, `Debugable`, `Disposable`, `GuildEntity`
|
||||
- **Bug fixes**
|
||||
* **Lowered memory usage**
|
||||
* **Websocket fixed**
|
||||
* Fixed Emojis comparing
|
||||
* Fixed searching in Emojis unicode
|
||||
* Code cleanup and style fixes
|
||||
* Proper error handling for `CommandsFramework`
|
||||
* Gateway fixes
|
||||
* Object deserializing fixes
|
||||
* Memory and performance improvements
|
||||
* Random null exceptions
|
||||
* Emojis CDN fixes
|
||||
* Few fixes for ratelimitter
|
||||
- **Changes**
|
||||
* **Docs are rewritten**
|
||||
* **Faster deserialization**
|
||||
* **Embed builders rewritten**
|
||||
* Removed autosharding.
|
||||
* Every object which has id is now subclass of `SnowflakeEntity`.
|
||||
* Snowflakes are default id entities
|
||||
* Internal nyxx API changes
|
||||
* Cooldown cache rewritten
|
||||
* Presence sending fixes
|
||||
* Title is not required for EmbedBuilder
|
||||
* Removed unnecessary dependencies
|
||||
|
||||
## [0.24.0](https://github.com/l7ssha/nyxx/compare/0.23.1...0.24.0)
|
||||
_Tue 03.08.2018_
|
||||
|
||||
- **Changes**
|
||||
* nyxx now supports Dart 2.0
|
||||
* Added Interactivity module
|
||||
* Added few methods to `CommandContext`
|
||||
* Rewritten `CooldownCache`
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `Command` help generating error
|
||||
* Fixed Emojis equals operator
|
||||
|
||||
## [0.23.1](https://github.com/l7ssha/nyxx/compare/0.23.0...0.23.1)
|
||||
_Tue 31.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `MessageDeleteEvent` deserializing error
|
||||
* Fixed checking for channel nsfw for CommandsFramework
|
||||
|
||||
## [0.23.0](https://github.com/l7ssha/nyxx/compare/0.22.1...0.23.0)
|
||||
_Mon 30.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for services - DEPENDENCY INJECTION
|
||||
* Support for type parsing
|
||||
* Logging support
|
||||
* Listener for messages for channel
|
||||
* Automatic registering Services and Commands
|
||||
* `Remainder` annotation which captures all remaining text
|
||||
* Permissions are now **READ/WRITE** - added PermissionsBuilder
|
||||
* Checking for topics and if channel is nsfw for commands
|
||||
- **Bug fixes**
|
||||
* Fixed error throwing
|
||||
* Text in quotes is one String
|
||||
* Fixed StreamControllers to be broadcast
|
||||
* Removed unnecessary fields from DMChannel and GroupDMChannel
|
||||
* Big performance improvement of CommandFramework
|
||||
* Fixed Permissions opcode
|
||||
* `delay()` changed to `nextMessage()`
|
||||
- **Deprecations**
|
||||
* Deprecated browser target
|
||||
* Removed MirrorsCommandFramework and InstanceCommandFramework
|
||||
|
||||
## [0.22.1](https://github.com/l7ssha/nyxx/compare/0.22.0...0.22.1)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed bug with sending Emoji. `toString()` now return proper representation ready to send via message
|
||||
- **New features**
|
||||
* Searching in `EmojisUnicode` is now handled by future.
|
||||
* toString() in `User`, `Channel`, `Role` now returns mention instead of content, name etc.
|
||||
|
||||
## [0.22.0](https://github.com/l7ssha/nyxx/compare/0.21.5...0.22.0)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Next serialization bug fixes
|
||||
- **New features**
|
||||
* Added support for [audit logs](https://discordapp.com/developers/docs/resources/audit-log)
|
||||
* Searching in `EmojisUnicode` based on shortcode
|
||||
|
||||
## [0.21.5](https://github.com/l7ssha/nyxx/compare/0.21.4...0.21.5)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
## [0.21.4](https://github.com/l7ssha/nyxx/compare/0.21.3...0.21.4)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
|
||||
## [0.21.3](https://github.com/l7ssha/nyxx/compare/0.21.2...0.21.3)
|
||||
_Fri 08.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
- **Added few Docs**
|
||||
|
||||
|
||||
## [0.21.2](https://github.com/l7ssha/nyxx/compare/0.21.1...0.21.2)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Added overrides
|
||||
* Implemented hashCode
|
||||
* Fixed return type for `delay()` in Command class
|
||||
|
||||
|
||||
## [0.21.1](https://github.com/l7ssha/nyxx/compare/0.21.0...0.21.1)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed constructors in MessageChannel and TextChannel
|
||||
|
||||
|
||||
## [0.21.0](https://github.com/l7ssha/nyxx/compare/0.20.0...0.21.0)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for sending files, attaching files in embed
|
||||
* Added missing gateway events
|
||||
* Replaced String ids with `Snowflake` type
|
||||
- **Bug fixes**
|
||||
|
336
nyxx.extensions/LICENSE
Normal file
336
nyxx.extensions/LICENSE
Normal file
|
@ -0,0 +1,336 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 2018, Szymon Uglis, Zach Vacura
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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
|
||||
this service 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.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
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
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE 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.
|
||||
|
||||
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
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
88
nyxx.extensions/README.md
Normal file
88
nyxx.extensions/README.md
Normal file
|
@ -0,0 +1,88 @@
|
|||
<div align="center">
|
||||
<br />
|
||||
<p> <img width="600" src="https://l7ssha.github.io/nyxx0.png" />
|
||||
<br />
|
||||
|
||||
[![Build Status](https://travis-ci.org/l7ssha/nyxx.svg?branch=master)](https://travis-ci.org/l7ssha/nyxx)
|
||||
[![Pub](https://img.shields.io/pub/v/nyxx.svg)](https://pub.dartlang.org/packages/nyxx)
|
||||
[![documentation](https://img.shields.io/badge/Documentation-nyxx-yellow.svg)](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
|
||||
Simple, robust framework for creating discord bots for Dart language.
|
||||
|
||||
<hr />
|
||||
|
||||
</div>
|
||||
|
||||
### Features
|
||||
|
||||
- **Commands framework included** <br>
|
||||
A fast way to create a bot with command support. Implementing the framework is simple - and everything is done automatically.
|
||||
- **Cross Platform** <br>
|
||||
Nyxx works on the command line, in the browser, and on mobile devices.
|
||||
- **Fine Control** <br>
|
||||
Nyxx allows you to control every outgoing HTTP request or WebSocket message.
|
||||
- **Complete** <br>
|
||||
Nyxx supports nearly all Discord API endpoints.
|
||||
|
||||
|
||||
## Quick example
|
||||
|
||||
Basic usage:
|
||||
```dart
|
||||
void main() {
|
||||
var bot = Nyxx("TOKEN");
|
||||
|
||||
bot.onMessageReceived.listen((event) {
|
||||
if (event.message.content == "!ping") {
|
||||
event.message.channel.send(content: "Pong!");
|
||||
}
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Commands:
|
||||
```dart
|
||||
void main() {
|
||||
final bot = Nyxx("TOKEN");
|
||||
|
||||
Commander(bot, prefix: "!!!")
|
||||
..registerCommand("ping", (context, message) => context.reply(content: "Pong!"));
|
||||
}
|
||||
```
|
||||
|
||||
## More examples
|
||||
|
||||
Nyxx examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx/example).
|
||||
|
||||
Commander examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx.commander/example)
|
||||
|
||||
### Example bots
|
||||
- [Running on Dart](https://github.com/l7ssha/running_on_dart)
|
||||
|
||||
## Documentation, help and examples
|
||||
|
||||
**Dartdoc documentation is hosted on [pub](https://www.dartdocs.org/documentation/nyxx/latest/).
|
||||
This wiki just fills gap in docs with more descriptive guides and tutorials.**
|
||||
|
||||
#### [Discord API docs](https://discordapp.com/developers/docs/intro)
|
||||
Discord API documentation features rich descriptions about all topics that nyxx covers.
|
||||
|
||||
#### [Discord API Guild](https://discord.gg/discord-api)
|
||||
The unofficial guild for Discord Bot developers. To get help with nyxx check `#dart_nyxx` channel.
|
||||
|
||||
#### [Dartdocs](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
The dartdocs page will always have the documentation for the latest release.
|
||||
|
||||
#### [Dev docs](https://nyxx.l7ssha.xyz)
|
||||
You can read about upcoming changes in the library on my website.
|
||||
|
||||
#### [Wiki](https://github.com/l7ssha/nyxx/wiki)
|
||||
Wiki documentation are designed to match the latest Nyxx release.
|
||||
|
||||
## Contributing to Nyxx
|
||||
|
||||
Read [contributing document](https://github.com/l7ssha/nyxx/blob/development/CONTRIBUTING.md)
|
||||
|
||||
## Credits
|
||||
|
||||
* [Hackzzila's](https://github.com/Hackzzila) for [nyx](https://github.com/Hackzzila/nyx).
|
|
@ -1,23 +1,18 @@
|
|||
name: nyxx.extensions
|
||||
name: nyxx_extensions
|
||||
version: 1.0.0
|
||||
description: Extensions for Nyxx library
|
||||
authors:
|
||||
- Szymon Uglis <szymon.uglis@tuta.io>
|
||||
- Zach Vacura <admin@hackzzila.com>
|
||||
homepage: https://github.com/l7ssha/nyxx
|
||||
repository: https://github.com/l7ssha/nyxx
|
||||
documentation: https://github.com/l7ssha/nyxx/wiki
|
||||
issue_tracker: https://github.com/l7ssha/nyxx/issue
|
||||
|
||||
environment:
|
||||
sdk: '>=2.9.0'
|
||||
sdk: '>=2.9.0 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
nyxx: "^1.0.0"
|
||||
|
||||
dependency_overrides:
|
||||
nyxx:
|
||||
path: "../nyxx"
|
||||
w_transport: "^3.2.8"
|
||||
http: "^0.12.2"
|
||||
|
||||
dev_dependencies:
|
||||
dart_style:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import "package:nyxx.extensions/emoji.dart";
|
||||
import "package:nyxx_extensions/emoji.dart";
|
||||
|
||||
main() async {
|
||||
final emojis = await getAllEmojiDefinitions();
|
||||
|
|
222
nyxx/CHANGELOG.md
Normal file
222
nyxx/CHANGELOG.md
Normal file
|
@ -0,0 +1,222 @@
|
|||
## [1.0.0](https://github.com/l7ssha/nyxx/compare/0.30.0...1.0.0)
|
||||
_24.08.2020_
|
||||
|
||||
> **Stable release - breaks with previous versions - this version required Dart 2.9 stable and non-nullable experiment to be enabled to function**
|
||||
|
||||
> **`1.0.0` drops support for browser. Nyxx will now run only on VM**
|
||||
|
||||
- `nyxx` package contains only basic functionality - everything else is getting own package
|
||||
- `main lib package`
|
||||
* Fixed errors and exceptions to be more self-explanatory
|
||||
* Added new and fixed old examples. Added additional documentation, fixed code to be more idiomatic
|
||||
* Logger fixes. User is now able to use their logger implementation. Or disable logging whatsover
|
||||
* New internal http submodule - errors got from discord are always returned to end user. Improved ratelimits and errors hadling
|
||||
* Now initial presence can be specified
|
||||
* Added support for conneting to voice channel. No audio support by now tho
|
||||
* Cache no longer needed for bot to function properly
|
||||
- There is now difference between cached and uncached objects
|
||||
- Events will provide objects if cache but also raw data received from websocket (etc. snowflakes)
|
||||
- Better cache handling with better events performance
|
||||
* Implemented missing API features
|
||||
* **Added support for sharding. Bot now spawn isolate per shard to handle incoming data**
|
||||
* Fixed websocket connectin issues. Now lib should reliably react to websocket errors
|
||||
* Added `MemberChunkEvent` to client. Invoked when event is received on websocket.
|
||||
|
||||
* Lib will try to properly close ws connections when process receives SIGTERM OR SIGINT.
|
||||
* Added support to shutdown hooks. Code in these hooks will be run before disposing and closed shards and/or client
|
||||
* Fixed and moved around docs
|
||||
* New internal structure of lib
|
||||
* Added extensions for `String` and `int` for more convenient way to convert them to `Snowflake`
|
||||
* Added support for gateway intents
|
||||
* `Snowflake` objects are now ints
|
||||
* Implemented member search endpoints for websocket and API
|
||||
* Added missing wrappers for data from discord
|
||||
* `==` operator fixes for objects
|
||||
- `nyxx.commander` - new commands module
|
||||
* `dart:mirrors` no longer required to function
|
||||
* Support for command and command groups
|
||||
* Allows to run code before and after invoking command. Allows to run code before matching command.
|
||||
* Fixed and added new functionality to `CommandContext`
|
||||
- Support for extracting quoted text, parameters and code blocks
|
||||
- Getter for shard that command is executed
|
||||
* Improved performance and extensibility
|
||||
- `nyxx.extensions` - contains utils for interactive features and utils for emojis
|
||||
* New emoji module for fetching available emoji info
|
||||
* Pagination module for created paginated messages
|
||||
* Scheduler module for invoking repeatable actions
|
||||
* Additional general utils
|
||||
* Message resolver module for resolving raw message content into human readable form
|
||||
* Attachment extensions for vm
|
||||
|
||||
## [0.30.0](https://github.com/l7ssha/nyxx/compare/0.24.0...0.30.0)
|
||||
_Tue 07.02.2019_
|
||||
|
||||
*This version drops support for Dart SDK 1.x; Nyxx now only supports Dart 2.0+ including dev sdk.*
|
||||
|
||||
*Changelog can be incomplete - it's hard to track changes across few months*
|
||||
|
||||
- **Features added**
|
||||
* **SUPPORT FOR DART 2.0+**
|
||||
* **ADDED SUPPORT FOR VOICE via Lavalink**
|
||||
* **PERMISSIONS OVERHAUL**
|
||||
- Proper permissions handling
|
||||
* **COMMANDS FRAMEWORK REWRITTEN**
|
||||
- Dispatch pipe is completely rewritten. Bot should operate about 2-8x faster
|
||||
- Allowed to declare single method commands without using classes
|
||||
- Added support for specify custom restrictions to commands handlers
|
||||
- Classes now have to be annotated with `Module` instead of `Command`
|
||||
- `Remainder` can now called data to `List<String>` or `String`
|
||||
- Added `Preprocessor` and `Posprocessor`
|
||||
- Removed help system
|
||||
* **COMMANDS PARSER**
|
||||
- Allows to define simple commands handlers
|
||||
* **Nyxx can be now used in browser**
|
||||
* Many additions to `Member` and `User` classes
|
||||
* Changed internal library structure
|
||||
* Implemented Iterable for Channel to query messages
|
||||
* Added typing event per channel
|
||||
* Using `v7` api endpoint
|
||||
* Added support for zlib compressed gateway payload
|
||||
* Added endpoints for Guild, Emoji, Role, Member
|
||||
* Added utils module
|
||||
* Allowed to download attachments. (`Downloadable` interface)
|
||||
* Implemented new Discord features (Priority speaker, Slowmode)
|
||||
* Added `DiscordColor` class
|
||||
* Added `Binder` util
|
||||
* Added `Cache`
|
||||
* Added `MessageBuilder`
|
||||
* Added interfaces `Downloadable`, `Mentionable`, `Debugable`, `Disposable`, `GuildEntity`
|
||||
- **Bug fixes**
|
||||
* **Lowered memory usage**
|
||||
* **Websocket fixed**
|
||||
* Fixed Emojis comparing
|
||||
* Fixed searching in Emojis unicode
|
||||
* Code cleanup and style fixes
|
||||
* Proper error handling for `CommandsFramework`
|
||||
* Gateway fixes
|
||||
* Object deserializing fixes
|
||||
* Memory and performance improvements
|
||||
* Random null exceptions
|
||||
* Emojis CDN fixes
|
||||
* Few fixes for ratelimitter
|
||||
- **Changes**
|
||||
* **Docs are rewritten**
|
||||
* **Faster deserialization**
|
||||
* **Embed builders rewritten**
|
||||
* Removed autosharding.
|
||||
* Every object which has id is now subclass of `SnowflakeEntity`.
|
||||
* Snowflakes are default id entities
|
||||
* Internal nyxx API changes
|
||||
* Cooldown cache rewritten
|
||||
* Presence sending fixes
|
||||
* Title is not required for EmbedBuilder
|
||||
* Removed unnecessary dependencies
|
||||
|
||||
## [0.24.0](https://github.com/l7ssha/nyxx/compare/0.23.1...0.24.0)
|
||||
_Tue 03.08.2018_
|
||||
|
||||
- **Changes**
|
||||
* nyxx now supports Dart 2.0
|
||||
* Added Interactivity module
|
||||
* Added few methods to `CommandContext`
|
||||
* Rewritten `CooldownCache`
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `Command` help generating error
|
||||
* Fixed Emojis equals operator
|
||||
|
||||
## [0.23.1](https://github.com/l7ssha/nyxx/compare/0.23.0...0.23.1)
|
||||
_Tue 31.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed `MessageDeleteEvent` deserializing error
|
||||
* Fixed checking for channel nsfw for CommandsFramework
|
||||
|
||||
## [0.23.0](https://github.com/l7ssha/nyxx/compare/0.22.1...0.23.0)
|
||||
_Mon 30.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for services - DEPENDENCY INJECTION
|
||||
* Support for type parsing
|
||||
* Logging support
|
||||
* Listener for messages for channel
|
||||
* Automatic registering Services and Commands
|
||||
* `Remainder` annotation which captures all remaining text
|
||||
* Permissions are now **READ/WRITE** - added PermissionsBuilder
|
||||
* Checking for topics and if channel is nsfw for commands
|
||||
- **Bug fixes**
|
||||
* Fixed error throwing
|
||||
* Text in quotes is one String
|
||||
* Fixed StreamControllers to be broadcast
|
||||
* Removed unnecessary fields from DMChannel and GroupDMChannel
|
||||
* Big performance improvement of CommandFramework
|
||||
* Fixed Permissions opcode
|
||||
* `delay()` changed to `nextMessage()`
|
||||
- **Deprecations**
|
||||
* Deprecated browser target
|
||||
* Removed MirrorsCommandFramework and InstanceCommandFramework
|
||||
|
||||
## [0.22.1](https://github.com/l7ssha/nyxx/compare/0.22.0...0.22.1)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed bug with sending Emoji. `toString()` now return proper representation ready to send via message
|
||||
- **New features**
|
||||
* Searching in `EmojisUnicode` is now handled by future.
|
||||
* toString() in `User`, `Channel`, `Role` now returns mention instead of content, name etc.
|
||||
|
||||
## [0.22.0](https://github.com/l7ssha/nyxx/compare/0.21.5...0.22.0)
|
||||
_Wed 11.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Next serialization bug fixes
|
||||
- **New features**
|
||||
* Added support for [audit logs](https://discordapp.com/developers/docs/resources/audit-log)
|
||||
* Searching in `EmojisUnicode` based on shortcode
|
||||
|
||||
## [0.21.5](https://github.com/l7ssha/nyxx/compare/0.21.4...0.21.5)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
## [0.21.4](https://github.com/l7ssha/nyxx/compare/0.21.3...0.21.4)
|
||||
_Fri 09.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
|
||||
|
||||
## [0.21.3](https://github.com/l7ssha/nyxx/compare/0.21.2...0.21.3)
|
||||
_Fri 08.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed embed serialization
|
||||
- **Added few Docs**
|
||||
|
||||
|
||||
## [0.21.2](https://github.com/l7ssha/nyxx/compare/0.21.1...0.21.2)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Added overrides
|
||||
* Implemented hashCode
|
||||
* Fixed return type for `delay()` in Command class
|
||||
|
||||
|
||||
## [0.21.1](https://github.com/l7ssha/nyxx/compare/0.21.0...0.21.1)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **Bug fixes**
|
||||
* Fixed constructors in MessageChannel and TextChannel
|
||||
|
||||
|
||||
## [0.21.0](https://github.com/l7ssha/nyxx/compare/0.20.0...0.21.0)
|
||||
_Fri 06.07.2018_
|
||||
|
||||
- **New features**
|
||||
* Support for sending files, attaching files in embed
|
||||
* Added missing gateway events
|
||||
* Replaced String ids with `Snowflake` type
|
||||
- **Bug fixes**
|
||||
|
336
nyxx/LICENSE
Normal file
336
nyxx/LICENSE
Normal file
|
@ -0,0 +1,336 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 2018, Szymon Uglis, Zach Vacura
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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
|
||||
this service 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.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
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
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE 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.
|
||||
|
||||
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
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
88
nyxx/README.md
Normal file
88
nyxx/README.md
Normal file
|
@ -0,0 +1,88 @@
|
|||
<div align="center">
|
||||
<br />
|
||||
<p> <img width="600" src="https://l7ssha.github.io/nyxx0.png" />
|
||||
<br />
|
||||
|
||||
[![Build Status](https://travis-ci.org/l7ssha/nyxx.svg?branch=master)](https://travis-ci.org/l7ssha/nyxx)
|
||||
[![Pub](https://img.shields.io/pub/v/nyxx.svg)](https://pub.dartlang.org/packages/nyxx)
|
||||
[![documentation](https://img.shields.io/badge/Documentation-nyxx-yellow.svg)](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
|
||||
Simple, robust framework for creating discord bots for Dart language.
|
||||
|
||||
<hr />
|
||||
|
||||
</div>
|
||||
|
||||
### Features
|
||||
|
||||
- **Commands framework included** <br>
|
||||
A fast way to create a bot with command support. Implementing the framework is simple - and everything is done automatically.
|
||||
- **Cross Platform** <br>
|
||||
Nyxx works on the command line, in the browser, and on mobile devices.
|
||||
- **Fine Control** <br>
|
||||
Nyxx allows you to control every outgoing HTTP request or WebSocket message.
|
||||
- **Complete** <br>
|
||||
Nyxx supports nearly all Discord API endpoints.
|
||||
|
||||
|
||||
## Quick example
|
||||
|
||||
Basic usage:
|
||||
```dart
|
||||
void main() {
|
||||
var bot = Nyxx("TOKEN");
|
||||
|
||||
bot.onMessageReceived.listen((event) {
|
||||
if (event.message.content == "!ping") {
|
||||
event.message.channel.send(content: "Pong!");
|
||||
}
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
Commands:
|
||||
```dart
|
||||
void main() {
|
||||
final bot = Nyxx("TOKEN");
|
||||
|
||||
Commander(bot, prefix: "!!!")
|
||||
..registerCommand("ping", (context, message) => context.reply(content: "Pong!"));
|
||||
}
|
||||
```
|
||||
|
||||
## More examples
|
||||
|
||||
Nyxx examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx/example).
|
||||
|
||||
Commander examples can be found [here](https://github.com/l7ssha/nyxx/tree/development/nyxx.commander/example)
|
||||
|
||||
### Example bots
|
||||
- [Running on Dart](https://github.com/l7ssha/running_on_dart)
|
||||
|
||||
## Documentation, help and examples
|
||||
|
||||
**Dartdoc documentation is hosted on [pub](https://www.dartdocs.org/documentation/nyxx/latest/).
|
||||
This wiki just fills gap in docs with more descriptive guides and tutorials.**
|
||||
|
||||
#### [Discord API docs](https://discordapp.com/developers/docs/intro)
|
||||
Discord API documentation features rich descriptions about all topics that nyxx covers.
|
||||
|
||||
#### [Discord API Guild](https://discord.gg/discord-api)
|
||||
The unofficial guild for Discord Bot developers. To get help with nyxx check `#dart_nyxx` channel.
|
||||
|
||||
#### [Dartdocs](https://www.dartdocs.org/documentation/nyxx/latest/)
|
||||
The dartdocs page will always have the documentation for the latest release.
|
||||
|
||||
#### [Dev docs](https://nyxx.l7ssha.xyz)
|
||||
You can read about upcoming changes in the library on my website.
|
||||
|
||||
#### [Wiki](https://github.com/l7ssha/nyxx/wiki)
|
||||
Wiki documentation are designed to match the latest Nyxx release.
|
||||
|
||||
## Contributing to Nyxx
|
||||
|
||||
Read [contributing document](https://github.com/l7ssha/nyxx/blob/development/CONTRIBUTING.md)
|
||||
|
||||
## Credits
|
||||
|
||||
* [Hackzzila's](https://github.com/Hackzzila) for [nyx](https://github.com/Hackzzila/nyx).
|
|
@ -1,20 +1,18 @@
|
|||
name: nyxx
|
||||
version: 1.0.0
|
||||
description: A Discord library for Dart.
|
||||
authors:
|
||||
- Szymon Uglis <szymon.uglis@tuta.io>
|
||||
- Zach Vacura <admin@hackzzila.com>
|
||||
homepage: https://github.com/l7ssha/nyxx
|
||||
repository: https://github.com/l7ssha/nyxx
|
||||
documentation: https://github.com/l7ssha/nyxx/wiki
|
||||
issue_tracker: https://github.com/l7ssha/nyxx/issue
|
||||
|
||||
environment:
|
||||
sdk: '>=2.9.0'
|
||||
sdk: '>=2.9.0 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
logging: "^0.11.4"
|
||||
w_transport: "^3.2.8"
|
||||
path: "^1.7.0"
|
||||
|
||||
dev_dependencies:
|
||||
dart_style:
|
||||
|
|
20
release.sh
Executable file
20
release.sh
Executable file
|
@ -0,0 +1,20 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Copy readme
|
||||
cp README.md nyxx/README.md
|
||||
cp README.md nyxx.commander/README.md
|
||||
cp README.md nyxx.extensions/README.md
|
||||
|
||||
# Copy changelog
|
||||
cp CHANGELOG.md nyxx/CHANGELOG.md
|
||||
cp CHANGELOG.md nyxx.commander/CHANGELOG.md
|
||||
cp CHANGELOG.md nyxx.extensions/CHANGELOG.md
|
||||
|
||||
echo "Publish nyxx"
|
||||
cd nyxx || exit; pub publish;
|
||||
|
||||
echo "Publish nyxx"
|
||||
cd ../nyxx.commander || exit; pub publish;
|
||||
|
||||
echo "Publish nyxx"
|
||||
cd ../nyxx.extensions || exit; pub publish;
|
Loading…
Reference in a new issue