Giter Site home page Giter Site logo

nyxx_extensions's People

Contributors

abitofevrything avatar doeggi avatar l7ssha avatar mogyuchi avatar rapougnac avatar virtual-designer avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

nyxx_extensions's Issues

Add `Message.sendReply()` method

Hello,
I've discovered Nyxx recently and I love it.

One thing I'd like to see in this library is a sendReply() method on the Message class. When listening to the messageCreate event, currently it is possible to achieve the same thing with event.message.channel.sendMessage() but the problem is, the developer needs to manually specify the replyId: parameter.

In my opinion, a sendReply() method on the Message class would make this a bit better. If this seems ok, then I'd like to make a PR implementing it.

Thanks.

3.0 plugin system

Implement new plugin system in nyxx_extensions where possible.

  • Check where is possible to rewrite to new plugin system
  • Implement new plugin system

Ref: nyxx-discord/nyxx#243

Suggested package restructuring

Currently, nyxx_extensions doesn't have a well-defined folder structure and features are often implemented in their own file, with their own extensions. This leads to the generated API documentation being hard to navigate, especially since many of these extensions lack documentation comments.

Therefore, I suggest we reorganise the package structure (without any breaking changes):

  • lib/src/extensions/*.dart contains files each containing one extension on one type or multiple closely related types (e.g partials and complete models) from nyxx or otherwise, e.g DateTime has extensions for formatting them according to TimestampStyles.
  • lib/src/utils/ contains either files or directories, each containing extra classes or functions needed to implement the extensions in lib/extensions/.

For example, #29 would be organised as such:

  • The computePermissions function would be placed in lib/src/utils/compute_permissions.dart.
  • A computePermissionsIn method would be added to extension PartialMemberExtensions on PartialMember, which would be placed in lib/src/extensions/member.dart.
  • A computePermissionsFor method would be added to extension GuildChannelExtensions on GuildChannel, which would be placed in lib/src/extensions/guild_channel.dart.

These would all still be exported from lib/nyxx_extensions.dart, leading to no visible breaking changes for users of the package.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.