Skip to content

feat: DataSet RPC — server-side endpoint for client dataset queries#334

Draft
Copilot wants to merge 4 commits intomainfrom
copilot/feat-data-set-rpc
Draft

feat: DataSet RPC — server-side endpoint for client dataset queries#334
Copilot wants to merge 4 commits intomainfrom
copilot/feat-data-set-rpc

Conversation

Copy link
Contributor

Copilot AI commented Mar 24, 2026

Clients currently hardcode Minecraft Bedrock dataset values (blocks, entities, items, etc.). This adds a custom LSP request so clients can query any dataset directly from the server.

Changes

ide/shared/src/constants.ts

  • RequestTypes.DataSet — LSP method name: 'bc/minecraft/dataset'
  • DataSets namespace — typed string constants for all queryable dataset IDs, organized as:
    • DataSets.Vanilla.BehaviorPack.* / DataSets.Vanilla.ResourcePack.*
    • DataSets.Edu.BehaviorPack.* / DataSets.Edu.ResourcePack.*
    • DataSets.General.* (biomes, blocks, effects, enchantments, potions, etc.)

ide/base/server/src/lsp/dataset/service.ts (new)

DataSetService registers connection.onRequest(RequestTypes.DataSet, ...) and maps the datatype param to the corresponding MinecraftData entry. An optional id field can be provided to filter results within the dataset — for string arrays it matches by equality, for object arrays it matches on the .id property.

ide/base/server/src/lsp/server/setup.ts

Registers DataSetService with the service manager.

Usage

import { RequestTypes, DataSets } from '@blockception/ide-shared';

// Fetch all vanilla block definitions
const blocks = await client.sendRequest(RequestTypes.DataSet, {
  datatype: DataSets.Vanilla.BehaviorPack.Blocks,
});

// Fetch a specific block by id
const dirt = await client.sendRequest(RequestTypes.DataSet, {
  datatype: DataSets.Vanilla.BehaviorPack.Blocks,
  id: 'minecraft:dirt',
});
Original prompt

This section details on the original issue you should resolve

<issue_title>feat: DataSet RPC</issue_title>
<issue_description>Is your feature request related to a problem? Please describe.
custom RPC that allows client to query datasets, so we can remove hardcoded stuff from the client

</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

Copilot AI changed the title [WIP] Add custom RPC for querying datasets feat: DataSet RPC — server-side endpoint for client dataset queries Mar 24, 2026
Copilot AI requested a review from DaanV2 March 24, 2026 15:00
Copilot AI requested a review from DaanV2 March 24, 2026 15:40
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.

feat: DataSet RPC

2 participants