Thank you for taking the time to contribute! All contributions must adhere to our Code of Conduct.
If you encounter a bug, glitch, or any unexpected behavior, please report it by opening an issue. When reporting an issue:
- Check for duplicates: Search existing issues to see if the problem has already been reported.
- Provide a clear title: A concise summary helps others understand the issue at a glance.
- Describe the issue in detail: Include steps to reproduce, expected behavior, and actual behavior.
- Attach relevant logs or screenshots: If applicable, provide console output, error messages, or images to clarify the issue.
- Specify your environment: Mention your OS, Wintry version, and any other relevant setup details.
Contributions can be made via pull requests. If you're unfamiliar with Git, check this guide to learn how to submit a pull request.
Writing a plugin is the primary way to contribute to Wintry.
Before starting your plugin:
- Check existing pull requests to see if someone is already working on a similar plugin.
- Ensure your plugin adheres to the Plugin Guidelines
- No simple slash command plugins like
/cat. Instead, make a user-installable Discord bot. - No simple text replacement plugins like "Let me Google that for you."
- No FakeDeafen, FakeMute or any types of plugins can mislead other users and cause unnecessary confusion or moderation issues.
- No plugins that interact with specific Discord bots (official Discord apps like YouTube WatchTogether are allowed).
- No selfbots or API spam (e.g., animated status, message pruner, auto-reply, Nitro snipers, etc.).
- No untrusted third-party APIs. Popular services like Google or GitHub are fine, but absolutely no self-hosted ones.
- No plugins requiring users to enter their own API keys.
- Avoid introducing new dependencies unless absolutely necessary.
If you have ideas for improving Wintry or want to propose a new plugin API, open a feature request to start a discussion.
Found a bug or typo? Feel free to fix it!
To develop Wintry, you need Bun (v1.2.3+) installed.
- Install dependencies:
bun install
- Start the development server:
A local development server will start:
bun run serve
Serving local development server on: http://192.168.0.157:4040/ http://127.0.0.1:4040/ Press Ctrl+C to stop the server. - Ensure your client is on the same network and has Wintry installed.
- Configure Wintry:
- Navigate to Settings > Developer (under Wintry section).
- Set Custom Endpoint to your server.
- Make sure to enable Force Update and Automatic Updates (under Wintry > Wintry Info).
- Reload the Wintry client. If successful, you should see output in the server console:
Rebuilding /bundle.96.hbc... Bundle compilation took: 626.08ms Serving build: File: dist/bundle.96.hbc Status: fresh-build Revision: 7b18e62a91186d7e0e1924bd5d59faf74e205fa9 Hash: 19a9c0c9ff68f6b386893cfeccaa335d4c85da3f Time taken: 1527.01ms
Now, your client should load the bundle built by the server. You can verify this by checking the revision value in the About page.
Note
At the moment, i18n is not fully implemented. You can only add strings in the base file, which is en.
To add new strings, update src/i18n/en/index.ts.
Please run the i18n watcher so the i18n types are up-to-date:
bun run typesafe-i18n