Skip to content

Feat/resourcepack#49

Merged
yhs0602 merged 3 commits intomainfrom
feat/resourcepack
Apr 17, 2025
Merged

Feat/resourcepack#49
yhs0602 merged 3 commits intomainfrom
feat/resourcepack

Conversation

@yhs0602
Copy link
Copy Markdown
Owner

@yhs0602 yhs0602 commented Apr 17, 2025

Pull

Coverage Badge

Summary by CodeRabbit

  • New Features

    • Added support for specifying a resource zip file path in environment configuration, enabling automatic copying of resource packs to the Minecraft server.
    • Introduced a utility to check for the presence of the "vglrun" executable on the system.
  • Bug Fixes

    • No bug fixes included in this release.
  • Documentation

    • No documentation updates included in this release.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 17, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This update introduces a new optional field, resourceZipPath, to the InitialEnvironmentMessage protobuf schema, along with corresponding changes across the codebase to support this addition. The field allows specifying a resource zip file path as part of the environment configuration. The server-side logic in EnvironmentInitializer is updated to handle copying the specified resource zip file to the server's resources directory during world ticks. Supporting changes are made to Python and Kotlin code to propagate the new field, and a utility function for checking the presence of vglrun is added.

Changes

File(s) Summary of Changes
src/proto/initial_environment.proto Added optional string field resourceZipPath (field 32) to InitialEnvironmentMessage.
src/craftground/proto/initial_environment_pb2.py, src/craftground/proto/initial_environment_pb2.pyi Updated generated protobuf files to include resourceZipPath field, field number, and constructor support.
src/craftground/MinecraftEnv/src/main/java/com/kyhsgeekcode/minecraftenv/proto/InitialEnvironment.java Added resourceZipPath field and accessors to Java protobuf message and builder.
src/craftground/MinecraftEnv/src/main/java/com/kyhsgeekcode/minecraftenv/proto/InitialEnvironmentMessageKt.kt Added resourceZipPath property and clear method to Kotlin DSL for the protobuf message.
src/craftground/initial_environment_config.py Added resource_zip_path parameter to config class and set it in protobuf message construction.
src/craftground/MinecraftEnv/src/main/java/com/kyhsgeekcode/minecraftenv/EnvironmentInitializer.kt Updated onWorldTick to copy resource zip file to server if resourceZipPath is provided.
src/craftground/utils.py Added new utility function check_vglrun to check for "vglrun" executable.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant PythonConfig
    participant ProtobufMessage
    participant Server (EnvironmentInitializer)
    participant FileSystem

    Client->>PythonConfig: Set resource_zip_path in InitialEnvironmentConfig
    PythonConfig->>ProtobufMessage: to_initial_environment_message() (sets resourceZipPath)
    ProtobufMessage->>Server: Send InitialEnvironmentMessage (with resourceZipPath)
    Server->>FileSystem: Check if resourceZipPath exists
    alt resourceZipPath exists
        Server->>FileSystem: Copy resource zip to server's resource save path
    else resourceZipPath missing
        Server->>Server: Log warning, skip copy
    end
Loading

Poem

In the land of blocks and code so neat,
A zip of resources now makes us complete!
From Python to Kotlin, the message is clear—
Copy the file, let new worlds appear.
With vglrun checked and paths set right,
The server prepares for a resourceful night.
🐇✨ Zip-a-dee-doo-dah, all systems in sight!

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e46fe32 and d1772db.

📒 Files selected for processing (1)
  • pyproject.toml (1 hunks)

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@yhs0602 yhs0602 merged commit 7f03859 into main Apr 17, 2025
18 of 19 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Apr 17, 2025
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.

1 participant