-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reflections daily driving EnderChest #25
Comments
Here's what I'm thinking in terms of revised file/folder layout. In this example, we have one client instance and one server instance that are potentially sharing assets across two shulker boxes.
with configuration files that read: ; instances.cfg
[minecraft_20]
minecraft = 2.0
loader = fabric
role = client
tags = vanillaplus
[/opt/mc_servers/myserver]
minecraft = 2.0
loader = fabric
role = server ; 01 red/shulker.cfg
[instances]
trendy
[groups.vanillaplus]
minecraft = 2.0
loader = fabric
role = client
tags = vanillaplus
[link_folders]
backups
logs
screenshots ; 02 orange/shulker.cfg
[groups.clients]
minecraft = 2.0
loader = fabric
role = client
[groups.servers]
minecraft = 2.0
loader = fabric
role = server Some key features:
Still missing from this proposal is a way pulling in assets from each instance. That's needed to resolve #24 and could also be generalized as an easy method of onboarding existing instances that weren't previously managed by EnderChest. |
I think I've captured everything I needed from this into other issues. |
I've been daily driving EnderChest for about six months now.
What I like
options.txt
) in one instance changes it everywhere that file is linked, not just on one computer, but all of my computers. For things like resourcepack selection, keybinds, mod options (like disabling replaymod recording by default), this has been aceenderchest open && enderchest place
at the start of each session (andenderchest close
at the end of it), which are steps that can absolutely be scripted.What I dislike
place
. The easy way to do it is to drop it into the instance folder directly, which can cause all sorts of issues (see also: EnderChest interferes with auto-updating systems #24)options.txt
andiris.properties
specifically in a way to share individual settings while not sharing others...What I've learned
The common theme running through is: symlinks good; syncing good; intent captured in filenames bad
What's next
It's time to rethink the design paradigm and move from a system that directly links individual files to individual instances to one that maps groups of files to groups of instances. I'm branding this approach Shulker Boxes. This will restructure the EnderChest file system from its current state:
EnderChest/README.md
Lines 32 to 42 in 0f17b4f
to one where the EnderChest top-level will be populated by uniquely named Shulker Boxes (folders) that each contain a config file that specifies the intent of where the files inside should be deployed.
At its most basic, that config could just be a list of instances crossed with global/server/client/local, but it could also specify, say,
or even include tags such as
with the instances that those tags link to being controlled either centrally (inside an
instance.cfg
file stored in the EnderChest root, or anenderchest.cfg
file stored in the.minecraft
folder of each instance)The core idea is that Shulker Boxes should map to instances many-to-many--files across many shulkers can feed into a single instance, and many instances can share files stored in a shulker
The advantages of this approach are:
The disadvantages is:
I have to think through how to solve #24 specifically. I'm wondering if I just need to employ a cleaning lady
The text was updated successfully, but these errors were encountered: