Yet Another World Protector

Yet Another World Protector

247k Downloads

feat(wip): online service for easier region management

Z0rdak opened this issue ยท 0 comments

commented

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.