PaperMC / PaperMC/Paper

Split plugins config dir and data dir

Open
#13,599 0 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: needs triage
Dominant language
Java
Stars
12.7k
Forks
3.5k
Avg merge
3d 13h
Merged PRs (30d)
11

Description

Is your feature request related to a problem?

Having a clean separation between data and configurations.

Describe the solution you'd like.

The idea is to have a separation between the plugins config directory and the data directory.

In Minecraft 26.1 a refactoring is done where the data is saved.
So basically the data can be saved under data/<namespace>/ following the new structure suggested by Minecraft. e.g.:

data/fastasyncworldedit/editsessions/2c771d16-f492-4f7a-adb7-61c38a9c9bfb.session
data/fastasyncworldedit/editsessions/98bec4ae-53e1-4031-8268-4cda1efc9d5b.session

Data saved in the data folder is now namespaced
This means that all that data will now be stored in a namespace subfolder in the corresponding data folder
All existing vanilla data files have been moved accordingly
Example: data/scoreboard.dat -> data/minecraft/scoreboard.dat
Command storage is now stored in namespace subfolders instead of having a namespace suffix
Example: data/command_storage_foo.dat -> data/foo/command_storage.dat
chunks.dat has been renamed to chunk_tickets.dat
Data for maps is now stored in the data/minecraft/maps subfolder
Map index files have been renamed to only the number
Example: map_1.dat -> 1.dat
idcounts.dat has been renamed to last_id.dat
There is no more raids_end.dat special case
The End now uses raids.dat as well

https://www.minecraft.net/en-us/article/minecraft-26-1-snapshot-6

Describe alternatives you've considered.

Resolving the path to a separate plugin defined data dir myself.
The above is just good practices separating data and configurations.

Other

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Minecraft 26.1 Snapshot 6 reference linked in the issue and the server's existing plugin configuration and data-directory handling. Define the affected API or entry points before implementation; done means plugin configuration and namespaced plugin data are stored separately, following the requested data// structure.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.