Skip to content

feat: minestom server and plugin api - #435

Merged
twisti-dev merged 22 commits into
version/26.3from
feat/minestom-server-api
Oct 16, 2026
Merged

twisti-dev merged 22 commits into
version/26.3from
feat/minestom-server-api

Conversation

@TheBjoRedCraft

Copy link
Copy Markdown
Contributor

No description provided.

@TheBjoRedCraft TheBjoRedCraft self-assigned this Oct 4, 2026
TheBjoRedCraft and others added 6 commits October 4, 2026 11:26
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…strap

- integrate gremlin for managing dependencies at runtime
- implement bootstrap logger for library installation feedback
- update build configuration to include gremlin runtime and related dependencies
- add gremlin gradle plugin for enhanced dependency handling
- update documentation to clarify that surf modules are included in the server jar
- specify that third-party libraries are downloaded instead of being shaded
…ncies support

- change version from 2.2.1-PR435 to 2.2.2 in build.gradle.kts
- update version from 3.46.1-PR435 to 3.47.0 in gradle.properties
- add support for plugin dependencies in MinestomServerSurfExtension
- enhance plugin loading mechanism in PluginManagerImpl and PluginsFeature
@TheBjoRedCraft

Copy link
Copy Markdown
Contributor Author

gecko läuft jetzt als proof of concept auf dem system

@mergify mergify Bot added the conflict label Oct 6, 2026
@mergify

mergify Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

👋 TheBjoRedCraft your PR is conflicting and needs to be updated to be merged

TheBjoRedCraft and others added 4 commits October 13, 2026 15:59
- update minestom-server and minestom-testing versions to experimental 26_3-SNAPSHOT
- exclude net.minestom group from npc dependency
- add minestom snapshots repository to build.gradle.kts
- update Minestom dependency to 26_3-SNAPSHOT
- add experimental snapshot repository for Minestom 26.3 builds
@mergify mergify Bot added conflict and removed conflict labels Oct 13, 2026
@mergify

mergify Bot commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

👋 TheBjoRedCraft your PR is conflicting and needs to be updated to be merged

@mergify

mergify Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

👋 TheBjoRedCraft your PR is conflicting and needs to be updated to be merged

…-server-api

# Conflicts:
#	gradle.properties
#	surf-api-gradle-plugin/build.gradle.kts
@mergify mergify Bot removed the conflict label Oct 16, 2026
@twisti-dev
twisti-dev self-requested a review October 16, 2026 10:35
…nization

- introduce InstrumentationMixinService and IGlobalPropertyService for mixin management
- implement EntityTrackerEntryDuck and ConnectionManagerDuck for entity tracking
- add NpcDisplaySync to optimize NPC display updates
- create mixin configurations for NPC and entity tracking features
- update build.gradle.kts to include new dependencies for mixins
- add detailed descriptions for methods in EventRegistrar, MannequinNpcBuilder, and PlayerFlightListener
- improve readability of comments in PlayerJoinEvent and PlayerQuitEvent
- enhance understanding of functionality in various event-related classes
- update chatSpamThresholdSeconds to allow disabling the check by setting it to 0 or less
- modify isIncrementAndUnderThreshold to accommodate the new threshold logic
- add TickThrottlerTest to validate new threshold behavior
twisti-dev and others added 6 commits October 16, 2026 15:21
…nnotation

- update internal API annotations across multiple files to use InternalSurfApi
- ensure consistency in marking internal API elements
🔧 chore: bump version to 3.49.0 in gradle.properties
```
🔧 chore: bump version to 2.4.1 in build.gradle.kts
```
…mmands and plugins

- runtime: publish the inventory loader only after registration, roll back a failed start,
  guard every shutdown step, clear the current runtime in finally and make shutdown atomic
- runtime: guard core enable, log late mixin failures, set the mixin agent's installed flag
  only after success
- runtime: discard a rejected CommandAPI platform and restore the previous one
- player events: register admission as a standalone global listener; key configuration
  futures by Player instead of UUID
- signed chat: create chat session holders on first spawn, reset them when a player
  re-enters configuration, and skip broadcasts once the sender has left
- signed chat: apply vanilla command signature rules (reject unsigned commands under
  enforceSecureProfile, report signature mismatches instead of kicking, count spam on all
  paths) and send player chat only to recipients with FULL chat visibility
- signed chat: use Minestom's DeleteChatPacket, remove the custom packet override stack and
  the unused outbound signing code
- commands: declare command arguments as greedy strings, apply subcommand permissions to
  the subcommand literal, reject sibling path conflicts at registration
- commands: filter tab-complete suggestions with canUse, split namespaced labels like
  execution does, answer failed suggestion futures, grant permissions to ServerSender
- commands: drop dead-end prefix nodes from declared trees, remove the declaration cache,
  rebuild the dispatcher lazily and route default-value failures to the executor handler
- arguments: quote string suggestions with escapeIfRequired, format decimals without
  scientific notation, use the parsed MiniMessage value, honor nullable types in get
- arguments: validate MultiLiteralArgument/EnumArgument values at construction and reject
  Literal or SignedMessage bases for custom arguments
- suggestions: stop failing providers from cancelling siblings or throwing
- executors/events: treat a listener's or executor's own timeout as a failure
- selectors: add @n, type=#tag and x_rotation/y_rotation, use bounding-box volume checks,
  sort around the x/y/z origin, reject negative distance/level ranges, skip dead entities
- parsers: round time values and reject overflow, reject over-wide UUID groups
- visibility: create the handler during configuration or on first use, check Player
  identity on removal and close removed handlers
- coroutines: return nullable results from asyncSuspend, fail fast in withEntity for
  removed or instance-less entities
- highlights/npc: track pending highlight placement, attach one process-wide NPC node on
  load and detach it on disable
- tick mixin: keep running the scheduler of entities whose ticking is disabled
- plugins: skip enabling plugins whose hard dependency failed, ignore optional edges in the
  load order, close class loaders of failed plugins, set the thread context class loader
- bootstrap: propagate optionality to transitive requirements of optional plugins, skip
  plugin jars without a valid id, append libraries in sorted order
- gradle: resolve the runServer toolchain launcher in doFirst
- tests: nest platform cleanup in finally blocks, add a 2-minute default JUnit timeout, use
  an independent oracle for viewer lookup tests, remove the NPC test order dependency

BREAKING CHANGE: sibling path conflicts, MultiLiteralArgument/EnumArgument values outside
brigadier's unquoted character set, custom arguments over Literal or SignedMessage bases,
negative selector ranges and over-wide UUID groups now throw; unsigned commands with
signable arguments are rejected under enforceSecureProfile; withEntity on a removed entity
throws; brigadier's ENABLE_COMMAND_STACK_TRACES is disabled process-wide
…nd patch application

- add pre-build command to initialize submodules recursively
- set git author information for patch application in vendor directory
- update comments to clarify CI build requirements for LuckPerms feature
@twisti-dev
twisti-dev marked this pull request as ready for review October 16, 2026 16:10
Copilot AI balanced review requested due to automatic review settings October 16, 2026 16:10
@twisti-dev
twisti-dev merged commit 7978ddd into version/26.3 Oct 16, 2026
7 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@twisti-dev
twisti-dev deleted the feat/minestom-server-api branch October 16, 2026 16:10
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-16T16:11:40.003412Z 3ddf953 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants