ServerTours - "Tutorial-paths" for new server members

ServerTours[API v5]

##Description
This plugin allows you to create ‘Tours’ that can be gone through by a player. A Tour has ‘Waypoints’. When a player starts a Tour, he can teleport himself by clicking on “text buttons” in the text GUI. When he is teleported to a Waypoint, the plugin also displays an info text(in chat or as title). When the player reached the last Waypoint of the Tour, the plugin gives him the possibility to teleport himself back to the point where he started the Tour.
All this can be created mostly through the text GUI.

##Screenhots
Starting a Tour and teleporting throught it:




Editing:

##Commands

  • /serverTours is the only important commands. It is the entry to point to the text GUI this plugin has. The text GUI calls the other commands of this plugin, so one still could automate things by calling these ‘internal’ commands.

##Text GUI
Self explanatory. One thing to note: Critical operations like deleting Waypoints or Tours must be confirmed by manually executing the commands. But don’t fear typing any command! By clicking on the delete button the delete command gets placed in your chat. :smirk:

##Permissions

  • servertours.edit for creating/editing/deleting Tours/Waypoints
  • servertours.view.<tourUUID> for starting a specific Tour, the UUID can be found before the curly brackets of a Tour in the config. The Tour from the following example has the UUID of f01205e7-13a0-407c-8695-ffef80f8e83f.

##Config
Some things can only be configured in the config file: Names, info texts, info text placement, freeze player on waypoint and completionCommand. Name and texts can contain color codes. The completionCommand can also contain them but the executed command must support color codes to correctly display them.
The completionCommand will be executed every time a player is done with a Tour. The command can contain $player which will be replaced by the name of the player that completed the Tour.
Keep in mind that a player can complete it more than one time! To prevent this, remove the permission to view the Tour when completionCommand is executed.
Here is an example config(everything generated by the plugin; names, info texts and completionCommand edited by hand):

tours {
    f01205e7-13a0-407c-8695-ffef80f8e83f {
        completionCommand="tell $player You have completed the Tour!"
        name="&cBeginners &fTour"
        waypoints=[
            {
                infotext="Here is the spawn."
                infotext-placement=chat
                freeze-player=true
                location {
                    position=[
                        210,
                        66,
                        196
                    ]
                    worldUUID="25d7f504-2ca8-4019-b875-28484c97eecf"
                }
                rotation=[
                    22,
                    -265,
                    0
                ]
            },
            {
                infotext="Here is a path to the water."
                infotext-placement=title
                freeze-player=false
                location {
                    position=[
                        200,
                        64,
                        191
                    ]
                    worldUUID="25d7f504-2ca8-4019-b875-28484c97eecf"
                }
                rotation=[
                    13,
                    -318,
                    0
                ]
            },
            {
                infotext="And here is the &9water!"
                infotext-placement=chat
                freeze-player=true
                location {
                    position=[
                        179,
                        63,
                        201
                    ]
                    worldUUID="25d7f504-2ca8-4019-b875-28484c97eecf"
                }
                rotation=[
                    15,
                    -343,
                    0
                ]
            }
        ]
    }
}

##Download
##Source
I appreciate feedback!

Suggestions for changing the short description in the title of this post are welcome!

RandomByte

5 Likes

##v0.1.1 released: Download

Changes:

  • Added mcmod.info file(thanks to @Minecrell)
  • Changed name of plugin from de.randombyte.servertours.ServerTours to ServerTours

Oh cool man, more and more awesome plugins for sponge :smiley: Good job on this.

1 Like

For new plugins I’d recommend you don’t use qualified plugin IDs anymore because we essentially changed our recommendation with API 4.1 - unqualified plugin IDs (and qualified plugin IDs too) are compatible with API 5, although we will remove the special support for it once API 5 becomes the main branch.

E.g. once API 5 is out the qualified command to access commands for your plugin would be /de.randombyte.servertours:servertours instead of /servertours:servertours like it is right now.

1 Like

So for future plugins I should use just e.g. ‘pluginname’ as the id? What if two plugins have the same id?

… Then they have the plugin same ID and can’t be loaded simultaneously. You can check our discussion on GitHub:

2 Likes

Can this plugin be set to automatically run a command to set players to a certain permissionsex rank when they complete a specified tour?
I ask because I am looking for a way to automatically rankup guests once they read the rules.
I currently would have to set it to a tiny amount of time, say 5 to 15 minutes.

I can add a config value for a command that should be run after tour completion. In the command you then can use something like “$player” to get the player name.

tours {
    tourUUID {
        completionCommand = "rankup $player"
    }
}

Do you mean that?

Yes, something like that.

Edit: As a matter of fact, if this feature is added I will definitely add your tours plugin to my server…actually, I think I’ll add it anyway.

-snip-

@Valorn_Exhio, sorry for that delay.


##v1.1 released!
The changelog is at the above linked page. Also read the changelog of v1.0!

How do i set it so that when a player joins, he goes through that tutorial.
It would also be cool to be able to set an ending point, and change the text so that it shows infront of your face instead of chat. My chat moves to fast for this plugin.

Also, anyway to freeze the player, so I can have them overlook stuff and not just fall when going to that waypoint.

That means, an other plugin can let the player go through a tour. That’s so small, I think that should be scripted instead of making a plugin: SpongeJavaScript.
I won’t add that into this plugin because it’s so specific.

Edit:
Ending point, freezing players and text as a title may be implemented soon™

I’ll just get another one then, this lacks to many features for a “server tutorial.”

What about a feature where servertours mutes chat while the player is on tour?

Also, RandomByte mentioned freezing players and text on the screen instead of chat as a feature they would be adding soon.

1 Like

Setting an ending point already is possible:
In the config, see completionCommand for a Tour and set it to something like tp $player 100 100 -200. $player gets replaced with the player name that completed the tour.

##v1.2 released!
The changelog can be found on the above linked page.

##v1.2.1 released!
The changelog can be found on the download page.

Interested in updating 1.12.2?
i need

I am full with commissions, sorry, I don’t have time for that right now.

P.S.: PR’s are welcome as always.

any plan to 1.12.2 update ?