Add Title API.
This commit is contained in:
@@ -283,4 +283,14 @@ public abstract class ProxyServer
|
||||
*/
|
||||
public abstract Collection<ProxiedPlayer> matchPlayer(String name);
|
||||
|
||||
/**
|
||||
* Creates a new empty title configuration.
|
||||
* In most cases you will want to {@link #reset()} the current title first so
|
||||
* your title won't be affected by a previous one.
|
||||
*
|
||||
* @return A new empty title configuration.
|
||||
* @see Title
|
||||
*/
|
||||
public abstract Title createTitle();
|
||||
|
||||
}
|
||||
|
109
api/src/main/java/net/md_5/bungee/api/Title.java
Normal file
109
api/src/main/java/net/md_5/bungee/api/Title.java
Normal file
@@ -0,0 +1,109 @@
|
||||
package net.md_5.bungee.api;
|
||||
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
/**
|
||||
* Represents a configuration of a title.
|
||||
* A title in Minecraft consists of a main title and a sub title.
|
||||
* It will {@link #fadeIn(int)}, {@link #stay(int)}, and {@link #fadeOut(int)}
|
||||
* for a specified amount of time.
|
||||
* In most cases you will want to {@link #reset()} the current title first so
|
||||
* your title won't be affected by a previous one.
|
||||
* <p>
|
||||
* You can create a new configuration by calling {@link ProxyServer#createTitle()}.
|
||||
*/
|
||||
public interface Title
|
||||
{
|
||||
/**
|
||||
* Set the title to send to the player.
|
||||
*
|
||||
* @param text The text to use as the title.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title title(BaseComponent text);
|
||||
|
||||
/**
|
||||
* Set the title to send to the player.
|
||||
*
|
||||
* @param text The text to use as the title.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title title(BaseComponent... text);
|
||||
|
||||
|
||||
/**
|
||||
* Set the subtitle to send to the player.
|
||||
*
|
||||
* @param text The text to use as the subtitle.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title subTitle(BaseComponent text);
|
||||
|
||||
/**
|
||||
* Set the subtitle to send to the player.
|
||||
*
|
||||
* @param text The text to use as the subtitle.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title subTitle(BaseComponent... text);
|
||||
|
||||
|
||||
/**
|
||||
* Set the duration in ticks of the fade in effect of the title.
|
||||
* Once this period of time is over the title will stay for the amount
|
||||
* of time specified in {@link #stay(int)}.
|
||||
* The default value for the official Minecraft version is 20 (1 second).
|
||||
*
|
||||
* @param ticks The amount of ticks (1/20 second) for the fade in effect.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title fadeIn(int ticks);
|
||||
|
||||
/**
|
||||
* Set the duration in ticks how long the title should stay on the screen.
|
||||
* Once this period of time is over the title will fade out using the duration
|
||||
* specified in {@link #fadeOut(int)}.
|
||||
* The default value for the official Minecraft version is 60 (3 seconds).
|
||||
*
|
||||
* @param ticks The amount of ticks (1/20 second) for the fade in effect.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title stay(int ticks);
|
||||
|
||||
/**
|
||||
* Set the duration in ticks of the fade out effect of the title.
|
||||
* The default value for the official Minecraft version is 20 (1 second).
|
||||
*
|
||||
* @param ticks The amount of ticks (1/20 second) for the fade out effect.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title fadeOut(int ticks);
|
||||
|
||||
|
||||
/**
|
||||
* Remove the currently displayed title from the player's screen.
|
||||
* This will keep the currently used display times and will only remove the title.
|
||||
*
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title clear();
|
||||
|
||||
/**
|
||||
* Remove the currently displayed title from the player's screen
|
||||
* and set the configuration back to the default values.
|
||||
*
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title reset();
|
||||
|
||||
|
||||
/**
|
||||
* Send this title configuration to the specified player.
|
||||
* This is the same as calling {@link ProxiedPlayer#sendTitle(Title)}.
|
||||
*
|
||||
* @param player The player to send the title to.
|
||||
* @return This title configuration.
|
||||
*/
|
||||
public Title send(ProxiedPlayer player);
|
||||
}
|
@@ -3,6 +3,7 @@ package net.md_5.bungee.api.connection;
|
||||
import java.util.Locale;
|
||||
import net.md_5.bungee.api.Callback;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.Title;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
import net.md_5.bungee.api.config.ServerInfo;
|
||||
import java.util.UUID;
|
||||
@@ -141,4 +142,13 @@ public interface ProxiedPlayer extends Connection, CommandSender
|
||||
* Clears the header and footer displayed in the tab player list.
|
||||
*/
|
||||
void resetTabHeader();
|
||||
|
||||
/**
|
||||
* Sends a {@link Title} to this player.
|
||||
* This is the same as calling {@link Title#send(ProxiedPlayer)}.
|
||||
*
|
||||
* @param title The title to send to the player.
|
||||
* @see Title
|
||||
*/
|
||||
void sendTitle(Title title);
|
||||
}
|
||||
|
Reference in New Issue
Block a user