diademiemi / Lineation

Minecraft Spigot Plugin to create start and finish lines! Easily keep track of competition winners!

Home Page:https://diademiemi.github.io/Lineation/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[TRACKING] Lineation 2.0 feature tracking

diademiemi opened this issue · comments

This issue describes what will be implemented in Lineation 2.0.0 in further detail with a masterlist of syntax that will be changed.

In Lineation 2.0 the separation between finish and start type lines will be removed, and there will only just be a line, with all options. Because of this, there is no need for a link command.

The command syntax needs to be drastically changed, because the command is too cluttered, while still having options too hidden away.

Line defaults should be able to be set for every option, and should act functionally the same as just configuring any line, just one that can't actually be started/stopped, but is used as a template.
The command to configure it should be /ln config default followed by the usual syntax.
The command to reload the config file will stay as /ln config reload.
The maxwins feature should be explained in a better way ingame without needing the docs. So it should be renamed to /ln config prevent-winning. To set the limit the command should be /ln config prevent-winning after-wins 3, and to forget a player it should be /ln config prevent-winning forget <user>
It should also be possible to change the listener type without a restart, as there's no technical reason this shouldn't be possible, just as long as all lines are stopped. The aggressive-listener option should be removed in favour of optimised-listener which is set to true by default instead. Being the opposite option to the aggressive-listener. This is easier to understand and better indicates this is preferred in most cases. It can also be set with /ln config optimised-listener <true/false>`

Since finish and start lines will be consolidated, there doesn't need to be a split start/finish border, these were linked in most cases anyway. The command to add/remove borders should be /ln line abc border add and /ln line abc border remove. Instead of removing a border by a number, it should also be done with WorldEdit by making a selection at where the border is defined. This can be done by checking the selection made and seeing if the difference between the borders area and the selection is -1, 0 or +1 in all corners. That should make it less finicky and not require exact selections.

From 2.0 onwards the area of the line should be set across the entire track, not just the start. This is to allow for other upcoming features. The method to define this should still be /ln line abc setarea. Since it should encompass the entire area of the game. any border/checkpoint/etc set outside the area should prompt the user to expand the area.

Every line should also have a teleport location in the line itself, which can be set with /ln line abc teleport setlocation. To set if players should be teleported to this point on start the command should be /ln line abc teleport onstart <true/false>
Illegal areas should be in the teleport command, this more accurately describes what they do. The syntax to add them should be /ln line abc teleport trigger area add and remove them with /ln line abc teleport trigger area remove 1

Checkpoints will have a major change to allow more functionality with the teleport trigger areas feature, and making them easier to use.
The command to add a checkpoint should be /ln line abc checkpoint add. To redefine a checkpoint you can use /ln line abc checkpoint 1 redefine
Checkpoints should also be possible to insert in an existing sequence. With /ln line abc checkpoint add before 3 or /ln line abc checkpoint add after 2 both adding a checkpoint after 2, moving the rest over.
Checkpoints should have an optional name that can be set with /ln line abc checkpoint modify 1 name firstCheckpoint.
To remove it should be /ln line abc checkpoint remove <number/name>.
Checkpoints should have an optional teleport point possible which when a player triggers a teleport trigger will teleport them back to here, instead of the starting line. This should be set with /ln line abc checkpoint modify firstCheckpoint teleport setlocation, which enables it. It can also be disabled without removing the teleport with /ln line abc checkpoint modify firstCheckpoint teleport disable, and enabled again with /ln line abc checkpoint modify firstCheckpoint teleport enable. To teleport to these manually you can do /ln line abc checkpoint modify firstCheckpoint teleport tp.
For this when creating the first checkpoint a guide message mentioning the use of checkpoints, and its integration with teleport triggers should be mentioned.
#21

To set the detection area for the finish the command should be /ln line abc setfinish with a worldedit selection.
The command to set the block sequence should be removed in favour of a countdown command.
/ln line abc countdown time 3, the blocks can be set with /ln line abc countdown blocks glass,red_stained_glass,yellow_stained_glass,green_stained_glass. This means that the countdown time can be set separately from the border opening.

The command to remove a line should be /ln remove <line>. it should also be possible to rename a line with /ln rename <line> <name>. To list lines, the command should be /ln list or /ln list started

This makes the new command tree:
) = optional

* lineation
	  * remove  
		  * <name>  
	  * list  
		  * ) started  
	  * rename  
		  * <line>  
			  * <name>  
	  * config  
		  * reload  
		  * prevent-winning  
			  * after-wins  
				  * <number>  
			  * forget  
				  * <user>  
				  * all  
			  * set  
				  * <user>  
					  * <number>  
		  * optimised-listener  
			  * <true/false>  
		  * default   
			  * [see line command]  
	  * line  
		  * <name>  
			  * teleport  
				  * trigger  
					  * start  
						  * <true/false>  
					  * finish  
						  * <true/false>  
					  * area  
						  * remove  
							  * <number>  
							  * add  
				  * setlocation  
				  * tp  
			  * setarea  
		      * border  
			      * add  
			      * remove  
		      * checkpoint  
			      * add  
				      * before  
					      * <number/name>  
				      * after  
					      * <number/name>  
			      * remove  
				      * <number/name>  
			      * modify  
				      * <number/name>  
					  	      * name  
						  	      * <name>  
					  	      * teleport  
						  	      * setlocation  
						  	      * disable  
						  	      * enable  
						  	      * tp  
						      * redefine  
		      * setfinish  
			  * option  
				  * countdown  
					  * time  
						  * <seconds>  
					  * blocks  
						  * <block1,block2,...>  
					  * gamemodes  
						  * <survival,adventure,...>  
					  * laps  
						  * <number>  
					  * winners  
						  * <number>  
					  * autoclose  
						  * <true/false>  
					  * message  
						  * <all/area/world/range/none>