Skip to content
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

Welcome Issue #1

Open
Syl2010 opened this issue Sep 9, 2023 · 0 comments
Open

Welcome Issue #1

Syl2010 opened this issue Sep 9, 2023 · 0 comments
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@Syl2010
Copy link
Collaborator

Syl2010 commented Sep 9, 2023

Welcome to any new developer, this issue is there to explain the structure of the plugin

Introduction

This plugin is a Redstone Puzzle Plugin. It permit to link puzzle rooms to the plugin and assign a team on each parkour to automatized the Gameplay between each of the puzzle

Puzzle Management Structure

Each room should be build and registered as a structure, then assign to a Room object through the RoomManager of the plugin. A spawnpoint will automatically be set on each Room, to act as a teleport point when the players start the room, or if the players end up dying in the room. To detect the success of a Room, a command should validate the steps of the Room (through a CommandBlock). It is possible to create as many steps as you want, and they should all be validated and alimented to complete the Room puzzle.

To link a Rooms into the parkour, they have to be assigned into the RoadmapManager. When the game start, the Roadmap will be duplicated with all his rooms in different worlds for each team, before they get sended to the first Room spawnpoint of their assigned world

All the Configuration (Room, Roadmap, Teams) is manageable through a configuration GUI, and will be saved into the plugin data folder

When the game is started, Rooms and the roadmap would be converted into RoomInstances and RoadmapInstances, to keep track of the teams progress

State System

The plugin use a state driven design, there is currently 5 states :

  • LoadingState : Enable just before the creation of the internal Managers
  • LobbyState : Enable when the plugin is fully loaded and can accept players, and where the game can be configured
  • PlayingState : Enable when the game is start (through command)
  • EndingState : Enable when the game is ended, to display results and the victory of a team
  • DisableState : Enable when the plugin is about to shutdown (through a reload or a server stop)

It is preferable to initialize and manage game loop logic and game listeners through theses states

Puzzle Management GUI

Puzzle Rooms, Roadmaps and Teams are managed through GUI. This gui is only accessible to an operator of the server, and they are developed with the RiseInventory Api

@Syl2010 Syl2010 added the good first issue Good for newcomers label Sep 9, 2023
@Syl2010 Syl2010 pinned this issue Sep 9, 2023
@Syl2010 Syl2010 added the documentation Improvements or additions to documentation label Oct 7, 2023
@Syl2010 Syl2010 assigned Syl2010 and unassigned Syl2010 Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

1 participant