
QUIPT
QUIPT (Quick's Univeral Integrated Plugin Toolkit) is an ambitious project that aims to provide a handful of tools to both server owners and developers.
Автор: QuickScythe13,8 тыс.2обновлён 18 окт. 2026 г.
БиблиотекиУправлениеУтилиты
Описание
QUIPT 
QUIPT is a multi-module toolkit for Minecraft servers and developers. It provides:
- Paper and Fabric integration layers
- An embedded HTTP server (Jetty) for callbacks/resources
- Resource pack auto-updates via webhooks
- A Discord bot integration with plugin loading
- Developer APIs for events, registries, messaging, placeholders, and ephemeral advancements
Quick Links
- Overview: docs/OVERVIEW.md
- Installation: docs/INSTALLATION.md
- Configuration Reference: docs/CONFIGURATION.md
- Modules: docs/MODULES.md
- Developer Guide: docs/DEVELOPER.md
- Contributing: docs/CONTRIBUTING.md
Getting Started (Paper)
- Download a release from Modrinth or GitHub and place the JAR in plugins/.
- Start your server once to generate default configs.
- Edit configs under plugins/quipt-paper/ (see docs/CONFIGURATION.md).
- Restart the server. QUIPT will start the embedded web server and Discord bot if enabled.
Server Owner Features
- Resource Pack Management: Configure resources.json with your pack repo and server IP. Trigger updates via /resourcepack update or a webhook to http://:/resources/update/.
- Teleportation Management: Simple P2P teleports and configurable warps/homes.
Developer Features
- Events and Listeners: Ready-to-use listeners and an event system to hook into.
- Ephemeral Advancements: Send toast-like updates to players using Bukkit advancements under the hood.
- Embedded Web Server: Mount your own handlers at custom routes.
- Discord Integration: Post server status and extend via bot plugins.
Building From Source
- Requirements: Java 21, Git
- Windows PowerShell: .\gradlew.bat build
- Other platforms: ./gradlew build
- Artifacts are available under each module's build/libs directory.
Support and Community
Versioning
- See gradle.properties for project_version and supported_minecraft_versions.
License
- Copyright © QuickScythe.
- See repository license file for details.
Последние версии
Все версии →beta
2.0.0-beta.9-MC26.1.2
2.0.0-beta.9-MC26.1.218 окт. 2026 г.22Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3velocity
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.9-MC26.1.2
2.0.0-beta.9-MC26.1.218 окт. 2026 г.10Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3paper
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.9-MC26.1.2
2.0.0-beta.9-MC26.1.218 окт. 2026 г.24Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3fabric
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.8-MC26.1.2
2.0.0-beta.8-MC26.1.218 окт. 2026 г.3Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3velocity
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.8-MC26.1.2
2.0.0-beta.8-MC26.1.218 окт. 2026 г.3Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3paper
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.8-MC26.1.2
2.0.0-beta.8-MC26.1.218 окт. 2026 г.6Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3fabric
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.7-MC26.1.2
2.0.0-beta.7-MC26.1.218 окт. 2026 г.3Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3velocity
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.7-MC26.1.2
2.0.0-beta.7-MC26.1.218 окт. 2026 г.3Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3paper
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.7-MC26.1.2
2.0.0-beta.7-MC26.1.218 окт. 2026 г.5Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3fabric
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.
beta
2.0.0-beta.6-MC26.1.2
2.0.0-beta.6-MC26.1.218 окт. 2026 г.4Minecraft: 26.1, 26.1.1, 26.1.2, 26.2, 26.3velocity
Что нового
# Unreleased (2025-09-28)
## Highlights
- NetworkUtils: added binary download support via generic GET with BodyHandlers.ofInputStream and a save helper to write streams to disk.
- NetworkUtils: POST/PUT methods are now null-safe for the JSON body (null sends an empty body). This avoids NullPointerExceptions and aligns with common API expectations.
- NetworkUtils: expanded Javadoc across methods to better document configuration, timeouts, and body handling.
- QueueManager/Queue: introduced as experimental utilities. These are non-functional stubs intended for preview; APIs are unstable and subject to change.
## Implementation Guide (How to update your code)
- Downloading images/files (recommended):
```java
// Using a custom HttpConfig if needed
HttpConfig config = HttpConfig.config(Duration.ofSeconds(10), 3000, false, false, "image/png", "UTF-8");
HttpResponse<InputStream> resp = NetworkUtils.get(config, "https://example.com/image.png", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp, new File("./image.png"));
// Or, with the default config
HttpResponse<InputStream> resp2 = NetworkUtils.get(NetworkUtils.DEFAULT, "https://example.com/file.bin", HttpResponse.BodyHandlers.ofInputStream());
NetworkUtils.save(resp2, new File("./file.bin"));
```
- Existing GET/POST usage continues to work without changes. If you previously handled only String responses, you can keep doing so with BodyHandlers.ofString(). Only add the InputStream handler when you need binary data.
- POST/PUT with optional body:
```java
// body may be null – an empty request body will be sent instead of throwing
HttpResponse<String> r = NetworkUtils.post(NetworkUtils.DEFAULT, "https://api.example.com/endpoint", null);
```
- QueueManager/Queue (experimental):
- These components are stubs and currently non-functional.
- No migration or code changes are required at this time.
- Do not rely on them in production; APIs may change or be removed.
## Compatibility
- This update is not API-breaking. All existing public methods retain their signatures and behavior; the binary-download pattern is additive through BodyHandlers.
- Safe to backport: these changes can be applied on top of the previous release line without breaking existing integrations.
---
# Version 1.0.8-MC1.21.8-alpha.1-SS.5
## Build Log
### BUILD 1-SS.5
#### Embeds
Webhook Embeds must now be built using the `Embed.Builder` class. The old `Embed` class has been changed to remove its constructor and now has a static `builder` method that returns a new `Embed.Builder` instance.
BEFORE:
```java
Embed embed = new Embed()
.title("Title")
.description("Description")
.color(0xFF0000);
```
AFTER:
```java
Embed embed = Embed.builder()
.title("Title")
.description("Description")
.color(0xFF0000)
.build();
```
Embeds can now accept java.awt.Color objects for setting colors.