
feat(wip): online service for easier region management
Z0rdak opened this issue ยท 0 comments
Description
Region properties are quite complex and will be getting only more features. It can be much effort to setup regions by hand/commands. Even with features like region templates or others on the way.
An online service which provides an editor for region data would be a great tool for users.
I am thinking about an web based editor. Similar to the LuckPerms editor.
With an online variant, hosted on a public server which could alternatively be self hosted locally.
The YAWP mod running on the server should connect to the service and establish a session. The region data of the server would be send to the service for editing.
On demand (save) it would send the data back to the server and update it accordingly.
Alternatively, it could work without a connection to a YAWP mod instance, but just providing an interface to upload a region file, edit it and download it again.
Since it already exists a domain specific for this mod, it would be easy to use it to deploy such a online service.
Functional Requirements
Session-Based Access
The service must generate a unique session link (similar to the LuckPerms online editor) when the YAWP mod connects.
Region Data Integration
The YAWP mod sends region data to the service upon establishing a session.
The service provides an interface for viewing and modifying the data in real-time.
Alternatively it should be possible to use the service standalone by uploading a region file and downloading the edited files again.
Interactive Editing Interface
The interface should be web-based, interactive, and intuitive, offering:
A list of editable regions (CuboidRegion, SphereRegion) with specific attributes.
Ensure all edits are validated before they can be applied.
Optional: Drag-and-drop or point-and-click tools for adjusting region boundaries. A visual representation (e.g., grid or 3D view) to preview changes.
Real-Time Synchronization
Changes made in the interface must sync with the mod in on command (e.g., a "Save" button).
Temporary Persistence & Version Control
Store session data temporarily on the service while the session is active. Session is kept until actively closed or 15 mins have passed.
Once the session is closed, the data should be optionally retained for versioning.
Maintain a basic history of changes during the session to allow undo/redo functionality and offer a complete reset.
Non-Functional Requirements
Performance
The service should remain responsive even with multiple concurrent sessions.
Real-time synchronization delays must not exceed 200ms. Designed to handle a high number of sessions and users, scaling as demand increases.
Session links should be secure and expire after a configurable time or when manually terminated. Data transmission must occur over HTTPS.
Usability
The interface should be simple to navigate and similar in design to the LuckPerms editor for familiarity.
Include basic tooltips or a quick-start guide for new users.
Metadata collection
Opt-In meta-data collection to give an overview on how the mod is used. Which flags are used, how are they used, etc.
Data Synchronization
Synchronize efficiently, ensuring minimal disruption to the YAWP mod.
Provide a "Sync Now" option for manual updates in case of connectivity issues.
Localization
Support multiple languages for the user interface.