Accessing Player Stages
Link to accessing-player-stages
When GameStages is installed you will be able to access the stage data of a player in your scripts. This can be done any time you have access to a player in your scripts, for example inside a player event listener.
New Player Methods
Link to new-player-methods
These are all of the new player methods added by GameStages.
Adding Stages
Link to adding-stages
Any time you have access to a player you can add a stage using the following method.
ZenScript Copy// player.addGameStage(String stageName);
player.addGameStage("stage_one");
Removing Stages
Link to removing-stages
Any time you have access to a player you can remove a stage using the following method.
ZenScript Copy// player.removeGameStage(String stageName);
player.removeGameStage("stage_one");
You can also clear all stages granted to a player using the clear method.
ZenScript Copyplayer.clearGameStages();
Checking GameStages
Link to checking-gamestages
Any time you have access to a player you can check if they have a specific stage.
ZenScript Copy//player.hasGameStage(String stageName);
player.hasGameStage("stage_one");
You can also check if the player has any stage from an array of potential stages.
ZenScript Copy//player.hasAnyGameStages(String... stageNames);
player.hasAnyGameStages("stage_one", "stage_two", "defeated_boss_a");
// Alternatively
var validStagesForX as string[] = [ "stage_one", "stage_two", "defeated_boss_a" ];
player.hasAnyGameStages(validStagesForX);
You can also check if the player has all of the stages from an array.
ZenScript Copy//player.hasllGameStages(String... stageNames);
player.hasAllGameStages("stage_one", "stage_two", "defeated_boss_a");
// Alternatively
var requiredStagesForX as string[] = [ "stage_one", "stage_two", "defeated_boss_a" ];
player.hasAllGameStages(requiredStagesForX);
Example 1 - Event Listeners
Link to example-1---event-listeners
This example registers a new event listener that will will give a player a stage when they join the game if they haven't already unlocked it.
ZenScript Copyimport crafttweaker.api.events.CTEventManager;
import crafttweaker.api.event.entity.player.MCPlayerLoggedInEvent;
// Registers an event listener for the MCPlayerLoggedInEvent.
CTEventManager.register<MCPlayerLoggedInEvent>((event) => {
// The code in here will be ran every time any player loggs in.
// Gets the player from the event context.
var player = event.player;
// Only give the stage to the player if they don't have it already. This
// is not required but it is considered best practice.
if (!player.hasGameStage("one")) {
// Gives the stage "one" to the player.
player.addGameStage("one");
// Tell the player they unlocked a stage.
player.sendMessage("You logged in! Here is stage 'one'.");
}
});